From: Chet Ramey Date: Thu, 10 Oct 2013 19:51:35 +0000 (-0400) Subject: bash-4.3-beta file cleanup X-Git-Tag: bash-4.3-beta2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=aaa810a212f5942b700f4017da2474ab584a4003;p=thirdparty%2Fbash.git bash-4.3-beta file cleanup --- diff --git a/CWRU/-i b/CWRU/-i deleted file mode 100644 index e69de29bb..000000000 diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog deleted file mode 100644 index 4986e4e65..000000000 --- a/CWRU/CWRU.chlog +++ /dev/null @@ -1,5089 +0,0 @@ - 2/14/2011 - --------- -[bash-4.2 released] - - 2/15 - ---- -lib/glob/gmisc.c - - fix wmatchlen and umatchlen to avoid going past the end of the - string on an incomplete bracket expression that ends with a - NUL. Partial fix for bug reported by Clark Wang - - 2/16 - ---- -subst.h - - new string extract flag value: SX_WORD. Used when calling - extract_dollar_brace_string to skip over the word in - ${param op word} from parameter_brace_expand - -subst.c - - change parameter_brace_expand to add SX_WORD to flags passed to - extract_dollar_brace_string - - change parameter_brace_expand to use SX_POSIXEXP for all non-posix - word expansion operators that treat single quotes as special, not - just % and # - - change extract_dollar_brace_string to initialize dolbrace_state to - DOLBRACE_WORD if SX_WORD flag supplied and we shouldn't use - DOLBRACE_QUOTE. Fixes bug reported by Juergen Daubert - -doc/{bash.1,bashref.texi} - - document the exact expansions here strings undergo - - 2/17 - ---- -lib/readline/vi_mode.c - - make sure that `dd', `cc', and `yy' call vidomove_dispatch from - rl_domove_read_callback. Fixes bug reported by Clark Wang - - -lib/readline/callback.c - - make sure _rl_internal_char_cleanup is called after the - vi-motion callbacks (rl_vi_domove_callback) in rl_callback_read_char. - Companion to above fix - -doc/{bash.1,bashref.texi} - - make sure that the text describing the rhs of the == and =~ - operators to [[ states that only the quoted portion of the pattern - is matched as a string - - 2/18 - ---- -lib/glob/gmisc.c - - better fix for umatchlen/wmatchlen: keep track of the number of - characters in a bracket expression as the value to increase - matchlen by if the bracket expression is not well-formed. Fixes - bug reported by Clark Wang - -subst.c - - change expand_string_for_rhs so that it sets the W_NOSPLIT2 flag - in the word flags. We will not perform word splitting or quote - removal on the result, so we do not want to add quoted nulls if - we see "" or ''. Fixes bug reported by Mike Frysinger - - - 2/19 - ---- -variables.c - - new function, int chkexport(name), checks whether variable NAME is - exported and remakes the export environment if necessary. Returns - 1 if NAME is exported and 0 if not - - call chkexport(name) to get tzset to look at the right variable in - the environment when modifying TZ in sv_tz. Don't call tzset if - chkexport doesn't indicate that the variable is exported - -variables.h - - new extern declaration for chkexport - - -{parse.y,builtins/printf.def} - - call sv_tz before calling localtime() when formatting time strings - in prompt strings or using printf. Fixes bug reported by - Dennis Williamson - -execute_cmd.c - - modify fix of 2/9 to add casts when those variables are passed to - functions; some compilers throw errors instead of warnings. Report - and fix from Joachim Schmitz - -support/shobj-conf - - add a stanza for nsk on the Tandem from Joachim Schmitz - - -{shell,lib/readline/shell}.c - - Tandem systems should use getpwnam (getlogin()); for some reason - they don't do well with using getuid(). Fix from Joachim Schmitz - - - 3/1 - --- -variables.c - - make sure that the return value from find_variable is non-null - before trying to use it in chkexport. Fixes bug reported by - Evangelos Foutras - - 3/3 - --- -parse.y - - when adding $$ to the current token buffer in read_token_word(), - don't xmalloc a buffer for two characters and then strcpy it, just - copy the characters directly into the token buffer. Fix from - Michael Whitten - -execute_cmd.c - - fix expand_word_unsplit to add the W_NOSPLIT2 flag to the word to - be expanded, so "" doesn't add CTLNUL. Similar to fix of 2/18 to - expand_string_for_rhs. Fixes bug reported by Nathanael D. Noblet - and Matthias Klose - -parse.y - - fix extended_glob case of read_token_word to allocate an extra - space in the buffer for the next character read after the extended - glob specification if it's a CTLESC or CTLNUL. Report and fix from - Michael Witten - - fix shell expansions case of read_token_word to allocate an extra - space in the buffer for the next character read after the shell - expansion if it's a CTLESC or CTLNUL. Report and fix from - Michael Witten - - TENTATIVE: fix read_token_word to reduce the amount of buffer space - required to hold the translated and double-quoted value of $"..." - strings. Report and fix from Michael Witten - - change code around got_character and got_escaped_character labels to - make sure that we call RESIZE_MALLOCED_BUFFER before adding the - CTLESC before a CTLESC or CTLNUL, and before adding the character if - we're not adding a CTLESC. Report and fix from - Michael Witten - -subst.c - - new param flags value, PF_ASSIGNRHS, mirrors W_ASSIGNRHS, noting that - parameter expansion is on rhs of assignment statement. That inhibits - word splitting - - change param_expand to call string_list_dollar_at with quoted == 1 - if PF_ASSIGNRHS is set, so it will quote IFS characters in the - positional parameter before separating them with the first char of - $IFS. This keeps the rhs from being split inappropriately. Fixes - bug reported by Andres Perera - - 3/4 - --- -lib/readline/bind.c - - add a missing free of `names' in rl_function_dumper. Bug report - and fix from Michael Snyder - - 3/5 - --- -lib/readline/rltty.c - - change rl_deprep_terminal so it uses fileno (stdin) for the tty fd - if rl_instream is not set, like rl_prep_terminal - - 3/6 - --- -lib/readline/display.c - - fix rl_message to use a dynamically-allocated buffer instead of a - fixed-size buffer of 128 chars for the `local message prompt'. Bug - report and fix from Micah Cowan - - 3/7 - --- -jobs.c - - add sentinel to wait_sigint_handler so it only sets wait_sigint_received - if waiting_for_child is non-zero; otherwise, it restores the old - SIGINT handler and sends itself the SIGINT - - set waiting_for_child around the calls to waitchld that use it to - synchronously wait for a process - - change logic that decides whether or not the child process blocked - or handled SIGINT based on whether or not waitpid returns -1/EINTR - and the shell receives a SIGINT and the child does not exit. If - the child later exits due to SIGINT, cancel the assumoption that it - was handled - - instead of testing whether or not the child exited due to SIGINT - when deciding whether the shell should act on a SIGINT it received - while waiting, test whether or not we think the child caught - SIGINT. If it did, we let it go (unless the shell has it trapped); - if it did not catch it, the shell acts on the SIGINT. Fix from - Linus Torvalds , bug report originally - from Oleg Nesterov - - 3/8 - --- -shell.c - - initialize no_line_editing to 1 if READLINE is not defined -- we - can't have line editing without readline - - 3/12 - ---- -lib/readline/signals.c - - add SIGHUP to the set of signals readline handles - -lib/readline/doc/rltech.texi - - document that SIGHUP is now part of the set of signals readline - handles - -lib/readline/input.c - - if _rl_caught_signal indicates that read() was interrupted by a - SIGHUP or SIGTERM, return READERR or EOF as appropriate - - call rl_event_hook, if it's set, if call to read in rl_getc - returns -1/EINTR. If rl_event_hook doesn't do anything, this - continues the loop as before. This handles the other fatal - signals - -execute_cmd.c - - add a couple of QUIT; calls to execute_disk_command and - execute_simple_command to improve responsiveness to interrupts - and fatal signals - -input.c - - rearrange getc_with_restart so that the return values from read() - are handled right - -parse.y - - don't need to set terminate_immediately in yy_stream_get, since - getc_with_restart checks for terminating signals itself - - since readline returns READERR on SIGHUP or SIGTERM, don't need - to set terminate_immediately. Still doesn't handle other - signals well -- will have to check that some more - -bashline.c - - new function, bash_event_hook, for rl_event_hook. Just checks for - terminating signals and acts on them using CHECK_TERMSIG. - - set rl_event_hook to bash_event_hook - -builtins/read.def - - take out setting terminate_immediately; add calls to CHECK_TERMSIG - after read calls - -doc/{bash.1,bashref.texi} - - move the text describing the effect of negative subscripts used to - reference indexed array elements to the paragraphs describing - ${parameter[subscript]}, since that's where they are implemented. - Pointed out by Christopher F. A. Johnson - -arrayfunc.[ch],subst.c - - array_expand_index now takes a new first argument: a SHELL_VAR * - of the array variable being subscripted. Can be used later to fully - implement negative subscripts - - 3/14 - ---- -lib/glob/glob.c - - fix mbskipname to not turn the directory entry name into a wide char - string if the conversion of the pattern to a wide char string fails - - fix mbskipname to call skipname if either the pattern or the filename - can't be converted into a wide-char string - -lib/glob/xmbsrtowcs.c - - fix xdupmbstowcs2 to handle return value of 0 from mbsnrtowcs and - short-circuit with failure in that case. Fixes bug reported by - Roman Rakus - - 3/15 - ---- -bashline.c - - new variable, bash_filename_quote_characters to store the value - assigned to rl_filename_quote_characters so it can be restored - if changed. - - change bashline_reset and attempt_shell_completion to restore - rl_filename_quote_characters if not set to default - - 3/22 - ---- -lib/glob/glob.c - - wdequote_pathname falls back to udequote_pathname if xdupmbstowcs - fails to convert the pathname to a wide-character string - -lib/glob/xmbsrtowcs.c - - xdupmbstowcs2: change to fix problem with leading '\\' (results in - nms == 0, which causes it to short-circuit with failure right - away). Fixes bug pointed out by Werner Fink - - xdupmbstowcs2: compensate for mbsnrtowcs returning 0 by taking the - next single-byte character and going on - - xdupmbstowcs2: change memory allocation to increase by WSBUF_INC - bytes; try to avoid calls to realloc (even if they don't actually - result in more memory being allocated) - - 3/24 - ---- -doc/{bash.1,bashref.texi} - - slightly modify BASH_SUBSHELL description based on complaint from - Sam Liddicott - - 3/25 - ---- -trap.c - - change free_trap_strings to not call free_trap_string for signals - that are being ignored, like reset_or_restore_signal_handlers. - Fixes bug reported by Satoshi Takahashi - - 3/26 - ---- -lib/readline/rltypedefs.h - - remove old Function/VFunction/CPFunction/CPPFunction typedefs as - suggested by Tom Tromey - -lib/readline/rlstdc.h - - move defines for USE_VARARGS/PREFER_STDARG/PREFER_VARARGS from - config.h.in to here because declaration of rl_message in - readline.h uses the defines. This makes it hard for another packages - to use after the header files are installed, since config.h is not - one of the installed files. Suggested by Tom Tromey - - - 3/27 - ---- -print_cmd.c - - change indirection_string from a static buffer to a dynamic one - managed by indirection_level_string(), so we don't end up truncating - PS4. Suggested by Dennis Williamson - -lib/readline/shell.c - - change sh_set_lines_and_columns to use static buffers instead of - allocating the buffers to pass to setenv/putenv - -lib/readline/terminal.c - - change _rl_get_screen_size to not call sh_set_lines_and_columns if - ignore_env == 0 - - _rl_sigwinch_resize_terminal: new function to just retrieve terminal - size, ignoring environment - -lib/readline/rlprivate.h - - new external declaration for _rl_sigwinch_resize_terminal() (currently - unused) - -lib/readline/signals.c - - rl_sigwinch_handler: set _rl_caught_signal to SIGWINCH - - rl_sigwinch_handler: don't immediately call rl_resize_terminal; just - leave _rl_caught_signal set for RL_CHECK_SIGNALS to handle - - _rl_signal_handler: call rl_resize_terminal if sig == SIGWINCH. - Should fix hang when sending multiple repeated SIGWINCH reported by - Henning Bekel - - 3/29 - ---- -lib/sh/snprintf.c - - include math.h for any defines for isinf/isnan - - use code from gnulib documentation to implement isinf/isnan if they - are not defined - -configure.in - - don't check for isinf or isnan; c99 says they're macros anyway - -config.h.in - - remove defines for ISINF_IN_LIBC and ISNAN_IN_LIBC, no longer used - by snprintf.c - - 4/2 - --- -braces.c - - brace_gobbler: fix to understand double-quoted command substitution, - since the shell understands unquoted comsubs. Fixes bug reported - by Michael Whitten - -lib/readline/display.c - - include on MDOS - - get and set screen size using DJGPP-specific calls on MSDOS - - move cursor up clear screen using DJGPP-specific calls - - don't call tputs on DJGPP; there is no good terminfo support - -lib/readline/terminal.c - - include on MDOS - - get and set screen size using DJGPP-specific calls on MSDOS - - use DJGPP-specific initialization on MSDOS, zeroing all the - _rl_term_* variables - - don't call tputs on DJGPP; there is no good terminfo support - DJGPP support from Eli Zaretskii - - 4/6 - --- - -config-top.h - - change DEFAULT_PATH_VALUE to something more useful and modern - - 4/8 - --- -tests/printf2.sub - - make sure LC_ALL and LC_CTYPE are set so LANG assignment takes effect. - Reported by Cedric Arbogast - - 4/11 - ---- -include/chartypes.h - - fix a couple of dicey defines (though ones that don't cause any - compiler warnings) in IN_CTYPE_DOMAIN - -doc/{bashref.texi,bash.1} - - add note referring to duplicating file descriptors in sections - describing redirecting stdout and stderr and appending to stdout - and stderr. Suggested by Matthew Dinger - -pcomplete.c - - it_init_helptopics: new function to support completing on help topics, - not just builtins - - it_helptopics: new programmable completion list of help topics - - build list of helptopic completions in gen_action_completions on - demand - -pcomplete.h - - new extern declaration for it_helptopics - -builtins/complete.def - - the `helptopic' action now maps to CA_HELPTOPIC intead of CA_BUILTIN, - since there are more help topics than just builtins. Suggested by - Clark Wang - - 4/12 - ---- -print_cmd.c - - fix print_arith_for_command to add a call to PRINT_DEFERRED_HEREDOCS - before ending the body of the command, so heredocs get attached to - the right command instead of to the loop. From gentoo bug 363371 - http://bugs.gentoo.org/show_bug.cgi?id=363371 - -execute_cmd.c - - change coproc_pidchk to unset the appropriate shell variables when - the (currently single) known coproc pid terminates - - cleanup and new functions to fully support multiple coprocesses when - and if I decide to go there - - 4/13 - ---- -print_cmd.c - - fix print_group_command to add a call to PRINT_DEFERRED_HEREDOCS - after call to make_command_string_internal before printing closing - `}' - - fix make_command_string_internal to add a call to - PRINT_DEFERRED_HEREDOCS after recursive call to - make_command_string_internal in case cm_subshell before printing - closing `)' - - 4/14 - ---- -print_cmd.c - - change overlapping strcpy in named_function_string to memmove - -sig.h - - UNBLOCK_SIGNAL: convenience define, same as UNBLOCK_CHILD, just - restores an old signal mask - -trap.c - - set_signal: instead of setting the signal handler to SIG_IGN while - installing the new trap handler, block the signal and unblock it - after the new handler is installed. Fixes bug reported by Roman - Rakus - - 4/15 - ---- -doc/{bash.1,bashref.texi} - - make it clear that enabling monitor mode means that all jobs run in - separate process groups - - 4/18 - ---- -builtins/fc.def - - update fix of 4/15/2010 to not take saved_command_line_count into - account when stepping down the history list to make sure that - last_hist indexes something that is valid. Fixes bug reported by - - - 4/19 - ---- -builtins/fc.def - - fc_gethnum: make sure the calculation to decide the last history - entry is exactly the same as fc_builtin. Fixes bug uncovered by - fix of 4/18 to stop seg fault - - 4/22 - ---- -lib/readline/terminal.c - - change _rl_enable_meta_key to set a flag indicating that it sent the - enable-meta sequence - - _rl_disable_meta_key: new function to turn off meta mode after we - turned it on with _rl_enable_meta_key - -lib/readline/rlprivate.h - - extern declaration for _rl_disable_meta_key - -configure.in - - if not cross-compiling, set CFLAGS_FOR_BUILD from any CFLAGS inherited - from the environment. Fixes HP/UX build problem reported by - "Daniel Richard G." - - 4/26 - ---- -config-top.h - - define MULTIPLE_COPROCS to 0 so the code is still disabled but easy - to enable via configure option or editing this file - - 4/29 - ---- -lib/sh/eaccess.c - - freebsd provides faccessat, with the same misfeature as their eaccess - and access implementations (X_OK returns true for uid==0 regardless - of the actual file permissions), so reorganize code to check the - file permissions as with eaccess. Report and fix from Johan Hattne - - - 5/2 - --- -doc/{bash.1,bashref.texi} - - add forward reference to `Pattern Matching' from `Pathname - Expansion', suggested by Greg Wooledge - - 5/5 - --- -pcomplib.c - - the bash_completion project now distributes over 200 completions - for various programs, with no end in sight, so increase the value - of COMPLETE_HASH_BUCKETS from 32 to 128 - -pathexp.c - - quote_string_for_globbing: make sure CTLESC quoting CTLESC is - translated into \ even if the flags include QGLOB_REGEXP. - We don't want to process the second CTLESC as a quote character. - Fixes bug reported by Shawn Bohrer - - 5/6 - --- -builtins/printf.def - - change PRETURN to not call fflush if ferror(stdout) is true - - if a call to one of the stdio functions or printstr leaves - ferror(stdout) true, and PRETURN is going to be called, let PRETURN - print the error message rather than doubling up the messages. Fixes - problem reported by Roman Rakus - - 5/9 - --- -doc/{bash.1,bashref.texi} - - add note to the effect that lists inside compound command can be - terminated by newlines as well as semicolons. Suggested by - Roman Byshko - - 5/10 - ---- -subst.c - - remove_quoted_nulls: fix problem that caused it to skip over the - character after a CTLNUL, which had the effect of skipping every - other of a series of CTLNULs. Fixes bug reported by - Marten Wikstrom - - 5/11 - ---- -subst.c - - extract_process_subst: add SX_COMMAND flag to call to - extract_delimited_string, since we're expanding the same sort of - command as command substitution. Fixes bug reported in Ubuntu - bug 779848 - - 5/12 - ---- -configure.in - - set the prefer_shared and prefer_static variables appropriately - depending on the value of $opt_static_link - -aclocal.m4 - - AC_LIB_LINKFLAGS_BODY: change to not prefer shared versions of the - libraries it's searching for if the prefer_shared variable is "no". - Fixes problem reported by Cedric Arbogast - - 5/13 - ---- -lib/readline/readline.c - - _rl_internal_teardown: add call to _rl_disable_meta_key to make the - meta key active only for the duration of the call to readline() - - _rl_internal_setup: move call to _rl_enable_meta_key here from - readline_initialize_everything so the meta key is active only for - the duration of the call to readline(). Suggestion from Miroslav - Lichvar - -builtins/help.def - - help_builtin: change strncmp to strcmp so that `help read' no longer - matches `readonly'. Suggested by Clark Wang - -config.h.in - - add define for GLIBC21, checked using jm_GLIBC21 as part of the tests - for libintl - -lib/malloc/malloc.c - - internal_free: don't use the cached value of memtop when deciding - whether or not to adjust the break and give memory back to the kernel - when using the GNU C library, since glibc uses sbrk for its own - internal purposes. From Debian bug 614815, reported by Samuel - Thibault - -aclocal.m4 - - BASH_STRUCT_WEXITSTATUS_OFFSET: change AC_RUN_IFELSE to AC_TRY_RUN - to avoid warning about not using AC_LANG_SOURCE - - 5/14 - ---- -bashline.[ch] - - two new functions, bashline_set_event_hook and bashline_reset_event_hook, - to set rl_event_hook to bash_event_hook and back to NULL, respectively - - don't set rl_event_hook unconditionally - -sig.c - - termsig_sighandler: if the shell is currently interactive and - readline is active, call bashline_set_event_hook to cause - termsig_handler to be called via bash_event_hook when the shell - returns from the signal handler - - 5/15 - ---- -lib/readline/display.c - - _rl_col_width: Mac OS X has a bug in wcwidth: it does not return 0 - for UTF-8 combining characters. Added workaround dependent on - MACOSX. Fixes problem pointed out by Thomas De Contes - - - 5/16 - ---- -lib/readline/rlmbutil.h - - WCWIDTH: wrapper for wcwidth that returns 0 for Unicode combining - characters on systems where wcwidth is broken (e.g., Mac OS X). - -lib/readline/{complete,display,mbutil}.c - - use WCWIDTH instead of wcwidth - - 5/17 - ---- -lib/readline/display.c - - update_line: after computing ofd and nfd, see whether the next - character in ofd is a zero-width combining character. If it is, - back ofd and nfd up one, so the base characters no longer compare - as equivalent. Fixes problem reported by Keith Winstein - - -lib/readline/nls.c - - _rl_utf8locale: new flag variable, set to non-zero if the current - locale is UTF-8 - - utf8locale(): new function, returns 1 if the passed lspec (or the - current locale) indicates that the locale is UTF-8. Called from - _rl_init_eightbit - -lib/readline/rlprivate.h - - extern declaration for _rl_utf8locale - -locale.c - - locale_utf8locale: new flag variable, set to non-zero if the current - locale is UTF-8 (currently unused) - - locale_isutf8(): new function, returns 1 if the passed lspec (or the - current locale) indicates that the locale is UTF-8. Should be called - whenever the locale or LC_CTYPE value is modified - -aclocal.m4 - - BASH_WCWIDTH_BROKEN: new test for whether or not wcwidth returns - zero-width characters like unicode combining characters as having - display length 1; define WCWIDTH_BROKEN in this case - -config.h.in - - WCWIDTH_BROKEN: new define - -lib/readline/rlmbutil.h - - change WCWIDTH macro to use _rl_utf8locale and the full range of - Unicode combining characters (U+0300-U+036F) - - 5/19 - ---- -lib/readline/rlprivate.h - - _rl_search_context: new member, prevc, will hold character read - prior to lastc - -lib/readline/isearch.c - - _rl_isearch_dispatch: if the character causes us to index into - another keymap, save that character in cxt->prevc - - _rl_isearch_dispatch: if we index into another keymap, but don't - find a function that's special to i-search, and the character that - caused us to index into that keymap would have terminated the - search, push back cxt->prevc and cxt->lastc to make it appear as - if `prevc' terminated the search, and execute lastc as a command. - We have to push prevc back so we index into the same keymap before - we read lastc. Fixes bug report from Davor Cubranic - - - 5/20 - ---- -expr.c - - expr_bind_variable: pay attention to the return value from - bind_variable and check whether or not we should error out due to - a readonly or noassign variable. Fixes bug reported by Eric - Blake - - 5/26 - ---- - -lib/readline/search.c - - include histlib.h for ANCHORED_SEARCH defines - - rl_history_search_flags: new variable, holds ANCHORED_SEARCH flag for - the duration of a history search - - rl_history_search_reinit: takes a new flags variable, defines whether - or not the search is anchored; assigned to rl_history_search_flags - - rl_history_serarch_reinit: if ANCHORED_SEARCH flag passed, add ^ to - beginning of search string; otherwise search string is unmodified - - rl_history_search_internal: set rl_point appropriately based on - whether or not rl_history_search_flags includes ANCHORED_SEARCH - - rl_history_substr_search_forward: new function, for non-anchored - substring search forward through history for string of characters - preceding rl_point - - rl_history_substr_search_backward: new function, for non-anchored - substring search backward through history for string of characters - preceding rl_point. Original code from Niraj Kulkarni - - -lib/readline/readline.h - - extern declarations for rl_history_substr_search_{for,back}ward - -lib/readline/funmap.c - - history-substring-search-forward: new bindable command, invokes - rl_history_substr_search_forward - - history-substring-search-backward: new bindable command, invokes - rl_history_substr_search_backward - -lib/readline/doc/{rluser.texi,readline.3} - - document history-substring-search-forward and - history-substring-search-backward - - 5/27 - ---- -{nojobs,jobs}.c - - add support for DONT_REPORT_SIGTERM so that the shell doesn't print - a message when a job exits due to SIGTERM since that's the default - signal sent by the kill builtin. Suggested by Marc Herbert - - -config-top.h - - DONT_REPORT_SIGTERM: new user-modifiable setting. Commented out - by default - - 5/28 - ---- -lib/readline/bind.c - - _rl_skip_to_delim: skip to a closing double quote or other delimiter, - allowing backslash to quote any character, including the delimiter - - rl_parse_and_bind: call _rl_skip_to_delim instead of using inline - code - - rl_parse_and_bind: allow quoted strings as the values of string - variables. Variable values without double quotes have trailing - whitespace removed (which still allows embedded whitespace, for - better or worse). Fixes problem with string variables not matching - in `set' command if values happen to have trailing spaces or tabs - (debian bash bug #602762), but introduces slight incompatibility. - - 5/29 - ---- -doc/{bash.1,bashref.texi} - - clarify unset description to specify that without options, a - variable, then a shell function if there is no variable by that - name, is unset. Fixes discrepancy reported by Mu Qiao - - - 6/4 - ---- -doc/{bash.1,bashref.texi} - - clarify description of LINES and COLUMNS (and checkwinsize shopt - option) to make it clear that only interactive shells set a - handler for SIGWINCH and update LINES and COLUMNS. Original - report submitted by Jonathan Nieder - -arrayfunc.c - - expand_compound_array_assignment: defer expansion of words between - parens when performing compound assignmnt to an associative array - variable - - assign_compound_array_list: perform the same expansions when doing - a compound array assignment to an associative array variable as - when doing a straight array index assignment. The idea is that - foo=( [ind1]=bar [ind2]=quux) - is the same as - foo[ind1]=bar ; foo[ind2]=quux - - This fixes problems with double-expansion and quote removal being - performed on the array indices - - 6/13 - ---- -doc/{bash.1,bashref.texi} - - Add a little text to make it clear that the locale determines how - range expressions in glob patterns are handled. - - - 6/21 - ---- -builtins/read.def - - display a message and return error status if -a is used with an - existing associative array. Fixes bug reported by Curtis Doty - - - 6/24 - ---- -{jobs,nojobs}.c - - non-interactive shells now react to the setting of checkwinsize - and set LINES and COLUMNS after a foreground job exits. From a - suggestion by Leslie Rhorer - -doc/{bash.1,bashref.texi} - - checkwinsize: remove language saying that only interactive shells - check the window size after each command - -lib/readline/histfile.c - - history_backupfile: new file, creates a backup history file name - given a filename (appending `-') - - history_do_write: when overwriting the history file, back it up - before writing. Restore backup file on a write error. Suggested - by chkno@chkno.net - -bashline.c - - find_cmd_name: two new arguments, return the start and end of the - actual text string used to find the command name, without taking - whitespace into account - - attempt_shell_completion: small changes to make sure that completion - attempted at the beginning of a non-empty line does not find a - programmable completion, even if the command name starts at point - - attempt_shell_completion: small change to make sure that completion - does not find a progcomp when in whitespace before the command - name - - attempt_shell_completion: small change to make sure that completion - does not find a progcomp when point is at the first character of a - command name, even when there is leading whitespace (similar to - above). Fixes problems noted by Ville Skytta - -subst.c - - brace_expand_word_list: since the individual strings in the strvec - returned by brace_expand are already allocated, don't copy them to - newly-allocated memory when building the WORD_LIST, just use them - intact - -locale.c - - locale_mb_cur_max: cache value of MB_CUR_MAX when we set or change - the locale to avoid a function call every time we need to read it - -shell.h - - new struct to save shell_input_line and associated variables: - shell_input_line_state_t - - add members of sh_parser_state_t to save and restore token and the - size of the token buffer - -parse.y - - {save,restore}_input_line_state: new functions to save and restore - shell_input_line and associated variables - - {save,restore}_parser_state: add code to save and restore the token - and token buffer size - - xparse_dolparen: call save_ and restore_input_line_state to avoid - problems with overwriting shell_input_line when we recursively - call the parser to parse a command substitution. Fixes bug - reported by Rui Santos - -include/shmbutil.h - - use locale_mb_cur_max instead of MB_CUR_MAX in ADVANCE_CHAR and - similar macros - -lib/glob/smatch.c - - rangecmp,rangecmp_wc: change to take an additional argument, which - forces the use of strcoll/wscoll when non-zero. If it's 0, a new - variable `glob_asciirange' controls whether or not we use strcoll/ - wscoll. If glob_asciirange is non-zero, we use straight - C-locale-like ordering. Suggested by Aharon Robbins - - - 6/30 - ---- -execute_cmd.c - - execute_pipeline: make sure the lastpipe code is protected by - #ifdef JOB_CONTROL. Fixes problem reported by Thomas Cort - - - 7/2 - --- -lib/readline/complete.c - - EXPERIMENTAL: remove setting of _rl_interrupt_immediately around - completion functions that touch the file system. Idea from Jan - Kratochvil and the GDB development - team - -lib/readline/signals.c - - rl_signal_handler: if we're in callback mode, don't interrupt - immediately on a SIGWINCH - - 7/3 - --- -bashline.c - - set_directory_hook: and its siblings are a new set of functions to - set, save, and restore the appropriate directory completion hook - - change callers to use {set,save,restore}_directory_hook instead of - manipulating rl_directory_rewrite_hook directly - - dircomplete_expand: new variable, defaults to 0, if non-zero causes - directory names to be word-expanded during word and filename - completion - - change {set,save,restore}_directory_hook to look at dircomplete_expand - and change rl_directory_completion_hook or rl_directory_rewrite_hook - appropriately - -bashline.h - - extern declaration for set_directory_hook so shopt code can use it - - 7/6 - --- -builtins/shopt.def - - globasciiranges: new settable shopt option, makes glob ranges act - as if in the C locale (so b no longer comes between A and B). - Suggested by Aharon Robbins - - 7/7 - --- -doc/{bash.1,bashref.texi} - - document new `globasciiranges' shopt option - - 7/8 - --- -builtins/shopt.def - - direxpand: new settable option, makes filename completion expand - variables in directory names like bash-4.1 did. - - shopt_set_complete_direxpand: new function, does the work for the - above by calling set_directory_hook - -doc/{bash.1,bashref.texi} - - document new `direxpand' shopt option - - 7/15 - ---- -lib/readline/isearch.c - - _rl_isearch_dispatch: when adding character to search string, use - cxt->lastc (which we use in the switch statement) instead of c, - since lastc can be modified earlier in the function - - 7/18 - ---- -lib/readline/rlprivate.h - - _rl_search_context: add another member to save previous value of - (multibyte) lastc: pmb is to mb as prevc is to lastc - -lib/readline/isearch.c: - - _rl_isearch_dispatch: if a key sequence indexes into a new keymap, - but doesn't find any bound function (k[ind].function == 0) or is - bound to self-insert (k[ind].function == rl_insert), back up and - insert the previous character (the one that caused the index into a - new keymap) and arrange things so the current character is the next - one read, so both of them end up in the search string. Fixes bug - reported by Clark Wang - - _rl_isearch_dispatch: a couple of efficiency improvements when adding - characters to the isearch string - - 7/24 - ---- -lib/readline/isearch.c - - _rl_isearch_dispatch: save and restore cxt->mb and cxt->pmb - appropriately when in a multibyte locale - -doc/{bash.1,bashref.texi} - - correct description of {x}>file (and other redirection operators - that allocate a file descriptor) to note the the fd range is - greater than or equal to 10. Fixes problem reported by - Christian Ullrich - -lib/readline/signals.c - - rl_signal_handler: don't interrupt immediately if in callback mode - -lib/readline/callback.c - - rl_callback_read_char: install signal handlers only when readline - has control in callback mode, so readline's signal handlers aren't - called when the application is active (e.g., between the calls to - rl_callback_handler_install and rl_callback_read_char). If the - readline signal handlers only set a flag, which the application - doesn't know about, the signals will effectively be ignored until - the next time the application calls into the readline callback - interface. Fixes problem of calling unsafe functions from signal - handlers when in callback mode reported by Jan Kratochvil - - -execute_cmd.c - - fix_assignment_words: when in Posix mode, the `command' builtin - doesn't change whether or not the command name it protects is an - assignment builtin. One or more instances of `command' - preceding `export', for instance, doesn't make `export' treat its - assignment statement arguments differently. Posix interpretation - #351 - -doc/{bash.1,bashref.texi} - - document new Posix-mode behavior of `command' when preceding builtins - that take assignment statements as arguments - -builtins/printf.def - - printstr: if fieldwidth or precision are < 0 or > INT_MAX when - supplied explicitly (since we take care of the `-' separately), - clamp at INT_MAX like when using getint(). Fixes issue reported - by Ralph Coredroy - - 7/25 - ---- -lib/readline/chardefs.h - - isxdigit: don't define if compiling with c++; declared as a c++ - template function. Fixes bug reported by Miroslav Lichvar - - -builtins/printf.def - - getint: if garglist == 0, return whatever getintmax returns (0). - Fixes bug reported by Ralph Coredroy - - 7/28 - ---- -doc/{bash.1,bashref.texi} - - minor changes to the descriptions of the cd and pushd builtins - -lib/sh/zread.c - - zsyncfd: change variable holding return value from lseek to - off_t. Bug report and fix from Gregory Margo - - 8/1 - --- -expr.c - - don't check for division by 0 when in a context where no evaluation - is taking place. Fixes bug reported by dnade.ext@orange-ftgroup.com - - 8/6 - --- -execute_cmd.c - - execute_command_internal: the parent branch of the subshell code - (where the child calls execute_in_subshell) should not close all - open FIFOs with unlink_fifo_list if it's part of a shell function - that's still executing. Fixes bug reported by Maarten Billemont - - - 8/9 - --- -builtins/common.c - - get_exitstat: return EX_BADUSAGE (2) on a non-numeric argument - -builtins/return.def - - return_builtin: just call get_exitstat to get the return status, - let it handle proper parsing and handling of arguments. Fixes - issue most recently raised by Linda Walsh . - Reverses change from 9/11/2008 (see above) - - 8/16 - ---- -doc/{bash.1,bashref.texi} - - clean up `set -e' language to make it clearer that any failure of - a compound command will cause the shell to exit, not just subshells - and brace commands - - 8/17 - ---- -configure.in - - make the various XXX_FOR_BUILD variables `precious' to autoconf to - avoid stale data - - change how CC_FOR_BUILD is initialized when cross-compiling and not, - but do not change behavior - - initialize CFLAGS_FOR_BUILD to -g when cross-compiling - - initialize LIBS_FOR_BUILD to $(LIBS) when not cross-compiling, empty - when cross-compiling - - create AUTO_CFLAGS variable to hold basic CFLAGS defaults; used when - CFLAGS not inherited from environment (like effect of old - auto_cflags variable) - - substitute LIBS_FOR_BUILD into output Makefiles - [changes inspired by bug report from Nathan Phillip Brink - -- gentoo bug 378941] - -builtins/Makefile.in - - substitute LIBS_FOR_BUILD from configure, not strictly initialized - to $(LIBS) - - 8/27 - ---- -doc/{bash.1,bashref.texi} - - minor changes to the here string description to clarify the - expansions performed on the word - -support/shobj-conf - - handle compilation on Lion (Mac OS X 10.7/darwin11) with changes - to darwin stanzas. Fixes readline bug reported by Vincent - Sheffer - -lib/sh/strtrans.c - - ansic_wshouldquote: check a string with multi-byte characters for - characters that needs to be backslash-octal escaped for $'...' - - ansic_shouldquote: if is_basic fails for one character, let - ansic_wshouldquote examine the rest of the string and return what - it returns. From a patch sent by Roman Rakus - - 8/30 - ---- -lib/sh/strtrans.c - - ansic_quote: changes to quote (or not) multibyte characters. New - code converts them to wide characters and uses iswprint to check - valid wide chars. From a patch sent by Roman Rakus - - - 9/7 - --- -lib/sh/shquote.c - - sh_backslash_quote: change to be table-driven so we can use a - different table if we want to - - sh_backslash_quote: takes a second char table[256] argument; - -externs.h - - sh_backslash_quote: add second argument to function prototype - -bashline.c,braces.c,parse.y,builtins/printf.def - - change callers of sh_backslash_quote to add second argument - -bashline.c - - filename_bstab: table of characters to pass to sh_backslash_quote; - characters with value 1 will be backslash-quoted - - set_filename_bstab: turn on characters in filename backslash-quote - table according to passed string argument - - call set_filename_bstab every time rl_filename_quote_characters is - assigned a value - - bash_quote_filename: call sh_backslash_quote with filename_bstab - as second argument. This allows other characters in filenames to - be quoted without quoting, for instance, a dollar sign in a shell - variable reference - - 9/8 - --- -bashline.c - - complete_fullquote: new variable, controls table passed to - sh_backslash_quote. If non-zero (the default), the standard set - of shell metacharacters -- as in bash versions up to and including - bash-4.2 -- gets backslash-quoted by the completion code. If zero, - sh_backslash_quote gets the table with the characters in the - variable reference removed, which means they are removed from the - set of characters to be quoted in filenames - - 9/10 - ---- -bashline.c - - bash_filename_stat_hook: new function, designed to expand variable - references in filenames before readline passes them to stat(2) - to determine whether or not they are a directory - - 9/15 - ---- -builtins/declare.def - - if assign_array_element fails due to a bad (or empty) subscript, mark - it as an assignment error and don't attempt any further processing - of that declaration. Fixes segfault bug reported by Diego Augusto - Molina - - 9/19 - ---- -expr.c - - exppower: replace the simple exponentiation algorithm with an - implementation of exponentiation by squaring. Inspired by report - from Nicolas ARGYROU - -bashline.c - - bash_quote_filename: check for rtext being non-null before - dereferencing it - - set_saved_history: operate_and_get_next assumes that the previous - line was added to the history, even when the history is stifled and - at the max number of entries. If it wasn't, make sure the history - number is incremented properly. Partial fix for bug reported by - gregrwm - -doc/{bash.1,bashref.texi},lib/readline/doc/{hsuser,rluser}.texi - - minor editorial changes inspired by suggestions from - Roger Zauner - - 9/20 - ---- -lib/intl/localealias.c - - read_alias_file: close resource leak (fp) when returning on error - - 9/22 - ---- -execute_command.c - - execute_intern_function: implement Posix interpretation 383 by making - it an error to define a function with the same name as a special - builtin when in Posix mode. - http://austingroupbugs.net/view.php?id=383#c692 - - 9/25 - ---- -doc/{bash.1,bashref.texi} - - formatting and some content changes from Benno Schulenberg - - - document new posix-mode behavior from interp 383 change of 9/22 - - 9/30 - ---- -execute_cmd.c - - shell_execve: add strerror to error message about executable file - that shell can't execute as a shell script. From suggestion by - daysleeper - - 10/1 - ---- -bashhist.c - - maybe_add_history: act as if literal_history is set when parser_state - includes PST_HEREDOC, so we save the bodies of here-documents just - as they were entered. Fixes bug reported by Jonathan Wakely - - - bash_add_history: make sure that the second and subsequent lines of - a here document don't have extra newlines or other delimiting - chars added, since they have the trailing newline preserved, when - `lithist' is set and history_delimiting_chars isn't called - -execute_cmd.c - - execute_command_internal: avoid fd exhaustion caused by using - process substitution in loops inside shell functions by using - copy_fifo_list and close_new_fifos (). Fixes debian bash bug - 642504 - -lib/readline/complete.c - - new variable, rl_filename_stat_hook, used by append_to_match. If - filename completion is desired, and rl_filename_stat_hook points - to a function, call that function to expand the filename in an - application-specific way before calling stat. - -bashline.c - - bash_default_completion: if variable completion returns a single - match, use bash_filename_stat_hook and file_isdir to determine - whether or not the variable name expands to a directory. If it - does, set the filename_append_character to `/'. This is not - perfect, so we will see how it works out. Adds functionality - requested by Peter Toft and Patrick Pfeifer - - - rl_filename_stat_hook: assigned bash_filename_stat_hook, so things - like $HOME/Downloads (after completion) have a slash appended. - In general, this causes the stat hook to be called whenever - filename completion is appended. Adds functionality requested by - Patrick Pfeifer - -lib/readline/readline.h - - new extern declaration for rl_filename_stat_hook - -lib/readline/doc/rltech.texi - - rl_directory_rewrite_hook: now documented - - rl_filename_stat_hook: document - -pcomplete.c - - gen_action_completions: in the CA_DIRECTORY case, turn off - rl_filename_completion_desired if it was off before we called - rl_filename_completion_function and we didn't get any matches. - Having it on causes readline to quote the matches as if they - were filenames. Adds functionality requested by many, - including Clark Wang - -assoc.[ch] - - assoc_replace: new function, takes the same arguments as - assoc_insert, but returns the old data instead of freeing it - - assoc_insert: if the object returned by hash_insert doesn't have - the same value for its key as the key passed as an argument, we - are overwriting an existing value. In this case, we can free the - key. Fixes bug reported by David Parks - - 10/5 - ---- -print_cmd.c - - indirection_level_string: small change to only re-enable `x' - option after calling decode_prompt_string if it was on before. In - normal mode, it will be, but John Reiser - has a novel use for that code in conjunction with a pre-loaded - shared library that traces system call usage in shell scripts - - 10/10 - ----- -Makefile.in - - Fix from Mike Frysinger to avoid trying to - build y.tab.c and y.tab.h with two separate runs of yacc if - parse.y changes. Problem with parallel makes - - Fix from Mike Frysinger to avoid subdirectory - builds each trying to make version.h (and all its dependencies) - -lib/sh/Makefile.in - - remove some dependencies on version.h where it doesn't make sense - -variables.c - - initialize_shell_variables: while reading the environment, a shell - running in posix mode now checks for SHELLOPTS being readonly (it - gets set early on in main()) before trying to assign to it. It - saves an error message and the variable gets parsed as it should. - Fixes bug reported by Len Giambrone - - 10/14 - ----- -doc/{bash.1,bashref.texi} - - add to the "duplicating file descriptors" description that >&word - doesn't redirect stdout and stderr if word expands to `-' - - add to the "appending standard output and standard error" - description a note that >&word, where word is a number or `-', - causes other redirection operators to apply for sh and Posix - compatibility reasons. Suggested by Greg Wooledge - - - 10/15 - ----- -pcomplete.c - - change pcomp_filename_completion_function to only run the filename - dequoting function in the cases (as best as it can figure) where - readline won't do it via rl_filename_completion_function. Based - on reports from - - 10/19 - ----- -bashline.c - - attempt_shell_completion: add call to set_directory_hook() to make - sure the rewrite functions are correct. It's cheap and doesn't - hurt - - command_word_completion_function: if completing a command name that - starts with `.' or `..', temporarily suppress the effects of the - `direxpand' option and restore the correct value after calling - rl_filename_completion_function. If it's enabled, the directory - name will be rewritten and no longer match `./' or `../'. Fixes - problem reported by Michael Kalisz - - 10/22 - ----- -builtins/history.def - - push_history: make sure remember_on_history is enabled before we - try to delete the last history entry -- the `history -s' command - might not have been saved. Fixes bug reported by - lester@vmw-les.eng.vmware.com - -lib/readline/complete.c - - rl_callback_read_char: add calls to a macro CALLBACK_READ_RETURN - instead of straight return; add same call at end of function. - Placeholder for future work in deinstalling signal handlers when - readline is not active - - 10/25 - ----- -expr.c - - exp2: catch arithmetic overflow when val1 == INTMAX_MIN and val2 == -1 - for DIV and MOD and avoid SIGFPE. Bug report and pointer to fix - from Jaak Ristioja - - expassign: same changes for arithmetic overflow for DIV and MOD - - 10/28 - ----- -subst.c - - parameter_brace_expand: allow pattern substitution when there is an - expansion of the form ${var/} as a no-op: replacing nothing with - nothing - - parameter_brace_patsub: don't need to check for PATSUB being NULL; - it never is - -flags.c - - if STRICT_POSIX is defined, initialize history_expansion to 0, since - history expansion (and its treatment of ! within double quotes) is - not a conforming posix environment. From austin-group issue 500 - -lib/readline/histexpand.c - - history_expand: when processing a string within double quotes - (DQUOTE == 1), make the closing double quote inhibit history - expansion, as if the word were outside double quotes. In effect, - we assume that the double quote is followed by a character in - history_no_expand_chars. tcsh and csh seem to do this. This - answers a persistent complaint about history expansion - - 10/29 - ----- -make_cmd.c - - make_arith_for_command: use skip_to_delim to find the next `;' - when breaking the string between the double parens into three - separate components instead of a simple character loop. Fixes - bug reported by Dan Douglas - - 11/2 - ---- -Makefile.in - - make libbuiltins.a depend on builtext.h to serialize its creation - and avoid conflict between multiple invocations of mkbuiltins. - Fix from Mike Frysinger - - 11/5 - ---- -findcmd.c - - user_command_matches: if stat(".", ...) returns -1, set st_dev - and st_ino fields in dotinfo to 0 to avoid same_file matches - - find_user_command_in_path: check stat(2) return the same way - -lib/glob/glob.c - - glob_vector: don't call strlen(pat) without checking pat == 0 - - glob_dir_to_array: make sure to free `result' and all allocated - members before returning error due to malloc failure - - glob_vector: make sure to free `nextname' and `npat' on errors - (mostly when setting lose = 1) - - glob_vector: if flags & GX_MATCHDIRS but not GX_ALLDIRS, make - sure we free `subdir' - - glob_filename: when expanding ** (GX_ALLDIRS), make sure we - free temp_results (return value from glob_vector) - -lib/glob/xmbsrtowcs.c - - xdupmbstowcs: fix call to realloc to use sizeof (char *) instead - of sizeof (char **) when assigning idxtmp - -execute_cmd.c - - print_index_and_element: return 0 right away if L == 0 - - is_dirname: fix memory leak by freeing `temp' - - time_command: don't try to deref NULL `command' when assigning - to `posix_time' - - shell_execve: null-terminate `sample' after READ_SAMPLE_BUF so it's - terminated for functions that expect that - -builtins/read.def - - read_builtin: don't call bind_read_variable with a potentially-null - string - -pcomplete.c - - gen_command_matches: don't call dispose_word_desc with a NULL arg - - gen_compspec_completions: fix memory leak by freeing `ret' before - calling gen_action_completions (tcs, ...). happens when - performing directory completion as default and no completions - have been generated - - gen_progcomp_completions: make sure to set foundp to 0 whenever - returning NULL - - it_init_aliases: fix memory leak by freeing alias_list before - returning - -bashline.c - - command_word_completion_function: don't call restore_tilde with a - NULL directory_part argument - - bash_directory_expansion: bugfix: don't throw away results of - rl_directory_rewrite_hook if it's set and returns non-zero - - bind_keyseq_to_unix_command: free `kseq' before returning error - -arrayfunc.c - - assign_array_element_internal: make sure `akey' is freed if non-null - before returning error - - assign_compound_array_list: free `akey' before returning error - - array_value_internal: free `akey' before returning error - - unbind_array_element: free `akey' before returning error - -subst.c - - array_length_reference: free `akey' before returning error in case - of expand_assignment_string_to_string error - - array_length_reference: free `akey' after call to assoc_reference - - skip_to_delim: if skipping process and command substitution, free - return value from extract_process_subst - - parameter_brace_substring: free `val' (vtype == VT_VARIABLE) before - returning if verify_substring_values fails - - parameter_brace_expand: remove two duplicate lines that allocate - ret in parameter_brace_substring case - - parameter_brace_expand: convert `free (name); name = xmalloc (...)' - to use `xrealloc (name, ...)' - - parameter_brace_expand: free `name' before returning when handling - ${!PREFIX*} expansion - - split_at_delims: fix memory leak by freeing `d2' before returning - -redir.c - - redirection_error: free `filename' if the redirection operator is - REDIR_VARASSIGN by assigning allocname - -eval.c - - send_pwd_to_eterm: fix memory leak by freeing value returned by - get_working_directory() - -builtins/cd.def - - change_to_directory: fix memory leak by freeing return value from - resetpwd() - - cd_builtin: fix memory leak by freeing value returned by dirspell() - - cd_builtin: fix memory leak by freeing `directory' if appropriate - before overwriting with return value from resetpwd() - -builtins/type.def - - describe_command: free `full_path' before overwriting it with return - value from sh_makepath - -builtins/complete.def - - compgen_builtin: fix memory leak by calling strlist_dispose (sl) - before overwriting sl with return value from completions_to_stringlist - -builtins/hash.def - - list_hashed_filename_targets: fix memory leak by freeing `target' - -make_cmd.c - - make_arith_for_command: free `init', `test', and `step' before - returning error on parse error - -jobs.c - - initialize_job_control: don't call move_to_high_fd if shell_tty == -1 - -general.c - - check_dev_tty: don't call close with an fd < 0 - - legal_number: deal with NULL `string' argument, return invalid - -lib/sh/fmtulong.c - - fmtulong: if the `base' argument is invalid, make sure we index - buf by `len-1' at maximum - -print_cmd.c - - print_deferred_heredocs: don't try to dereference a NULL `cstring' - - cprintf: make sure to call va_end (args) - -variables.c - - push_dollar_vars: fix call to xrealloc to use sizeof (WORD_LIST *) - instead of sizeof (WORD_LIST **) - -lib/sh/zmapfd.c - - zmapfd: if read returns error, free result and return -1 immediately - instead of trying to reallocate it - - 11/6 - ---- -execute_cmd.c - - cpl_reap: rewrote to avoid using pointer after freeing it; now builds - new coproc list on the fly while traversing the old one and sets the - right values for coproc_list when done - - 11/12 - ----- -builtins/set.def - - if neither -f nor -v supplied, don't allow a readonly function to - be implicitly unset. Fixes bug reported by Jens Schmidt - - -lib/readline/callback.c - - change CALLBACK_READ_RETURN to clear signal handlers before returning - from rl_callback_read_char so readline's signal handlers aren't - installed when readline doesn't have control. Idea from Jan - Kratochvil and the GDB development - team - -pcomplete.h - - COPT_NOQUOTE: new complete/compgen option value - -builtins/complete.def - - noquote: new complete/compgen option; will be used to disable - filename completion quoting - -pcomplete.c - - pcomp_set_readline_variables: pay attention to COPT_NOQUOTE; turns - of rl_filename_quoting_desired if set; turns it on if unset (value - is inverted, since default is on) - -doc/bash.1,lib/readline/doc/rluser.texi - - document new -o noquote option to complete/compgen/compopt - -pathexp.c - - quote_string_for_globbing: if QGLOB_REGEXP, make sure characters - between brackets in an ERE bracket expression are not inappropriately - quoted with backslashes. This is a pretty substantial change, - should be stressed when opening bash up for alpha and beta tests. - Fixes bug pointed out by Stephane Chazleas - - -doc/{bash.1,bashref.texi} - - document that regexp matches can be inconsistent when quoting - characters in bracket expressions, since usual quoting characters - lose their meaning within brackets - - note that regular expression matching when the pattern is stored - in a shell variable which is quoted for expansion causes string - matching - -redir.h - - RX_SAVEFD: new flag value; notes that a redirection denotes an - fd used to save another even if it's not >= SHELL_FD_BASE - -redir.c - - do_redirection_internal: when deciding whether or not to reset the - close-on-exec flag on a restored file descriptor, trust the value - of redirect->flags & RX_SAVCLEXEC even if the fd is < SHELL_FD_BASE - if the RX_SAVEFD flag is set - - add_undo_redirect: set the RX_SAVEFD flag if the file descriptor - limit is such that the shell can't duplicate to a file descriptor - >= 10. Fixes a limitation that tripped a coreutils test reported - by Paul Eggert - - 11/19 - ----- -doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi - - make it clear that bash runs HISTFILESIZE=$HISTSIZE after reading - the startup files - - make it clear that bash runs HISTSIZE=500 after reading the - startup files - - make it clear that setting HISTSIZE=0 causes commands to not be - saved in the history list - - make it clear that setting HISTFILESIZE=0 causes the history file - to be truncated to zero size - -variables.c - - sv_histsize: change so setting HISTSIZE to a value less than 0 - causes the history to be `unstifled' - - sv_histsize: change so setting HISTFILESIZE to a value less than 0 - results in no file truncation - - make it clear that numeric values less than 0 for HISTFILESIZE or - HISTSIZE inhibit the usual functions - - 11/23 - ----- -parse.y - - save_input_line_state: add missing `return ls' at the end, since the - function is supposed to return its argument. Pointed out by - Andreas Schwab - -builtins/read.def - - skip over NUL bytes in input, as most modern shells seem to. Bug - report by Matthew Story - -lib/readline/vi_mode.c - - rl_vi_replace: set _rl_vi_last_key_before_insert to invoking key - - 11/25 - ----- -builtins/read.def - - read_builtin: if xrealloc returns same pointer as first argument, - don't bother with the remove_unwind_protect/add_unwind_protect pair - - read_builtin: set a flag (`reading') around calls to zread/zreadc - and readline() - - sigalrm: change to set flag (`sigalrm_seen') and only longjmp if - currently in read(2) (reading != 0) - - CHECK_ALRM: new macro, checks sigalrm_seen and longjmps if non-zero, - behavior of old SIGALRM catching function - - read_builtin: call CHECK_ALRM in appropriate places while reading - line of input. Fixes bug reported by Pierre Gaston - - -lib/readline/vi_mode.c - - rl_vi_replace: initialize characters before printing characters in - vi_replace_keymap to their default values in vi_insertion_keymap, - since we're supposed to be in insert mode replacing characters - - rl_vi_replace: call rl_vi_start_inserting to set last command to - `R' for undo - - rl_vi_replace: set _rl_vi_last_key_before_insert to `R' for future - use by _rl_vi_done_inserting - - vi_save_insert_buffer: new function, broke out code that copies text - into vi_insert_buffer from _rl_vi_save_insert - - _rl_vi_save_replace: new function, saves text modified by - rl_vi_replace (using current point and vi_replace_count to figure - it out) to vi_replace_buffer - - _rl_vi_save_insert: call vi_save_insert_buffer - - _rl_vi_done_inserting: if _rl_vi_last_key_before_insert == 'R', call - _rl_vi_save_replace to save text modified in replace mode (uses - vi_save_insert_buffer) - - _rl_vi_replace_insert: new function, replaces the number of chars - in vi_insert_buffer after rl_point with contents ov vi_insert_buffer - - rl_vi_redo: call _rl_vi_replace_insert if last command == 'R' and - there's something in vi_insert_buffer. Fixes bug with `.' not - redoing the most recent `R' command, reported by Geoff Clare - in readline area on savannah - - 11/26 - ----- -lib/readline/rlprivate.h - - RL_SIG_RECEIVED(): evaluate to non-zero if there is a pending signal - to be handled - - RL_SIGINT_RECEIVED(): evaluate to non-zero if there is a pending - SIGINT to be handled - -lib/readline/complete.c - - remove all mention of _rl_interrupt_immediately - - rl_completion_matches: check RL_SIG_RECEIVED after each call to - the entry function, call RL_CHECK_SIGNALS if true to handle the - signal - - rl_completion_matches: if RL_SIG_RECEIVED evaluates to true, free - and zero out the match_list this function allocated - - rl_completion_matches: if the completion entry function is - rl_filename_completion_function, free the contents of match_list, - because that function does not keep state and will not free the - entries; avoids possible memory leak pointed out by - Garrett Cooper - - gen_completion_matches: if RL_SIG_RECEIVED evalutes to true after - calling rl_attempted_completion_function, free the returned match - list and handle the signal with RL_CHECK_SIGNALS; avoids - possible memory leak pointed out by Garrett Cooper - - - gen_completion_matches: if RL_SIG_RECEIVED evaluates to true after - calling rl_completion_matches, free the returned match list and - handle the signal with RL_CHECK_SIGNALS - -lib/readline/util.c - - rl_settracefp: new utility function to set the tracing FILE * - -lib/readline/signals.c - - _rl_sigcleanup: pointer to a function that will be called with the - signal and a void * argument from _rl_handle_signal - - _rl_sigcleanarg: void * that the rest of the code can set to have - passed to the signal cleanup function - - _rl_handle_signal: if _rl_sigcleanup set, call as - (*_rl_sigcleanup) (sig, _rl_sigcleanarg) - -lib/readline/rlprivate.h - - extern declarations for _rl_sigcleanup and _rl_sigcleanarg - -lib/readline/complete.c - - _rl_complete_sigcleanup: signal cleanup function for completion code; - calls _rl_free_match_list on _rl_sigcleanarg if signal == SIGINT - - rl_complete_internal: before calling display_matches if what_to_do - == `?', set _rl_sigcleanup to _rl_complete_sigcleanup so the match - list gets freed on SIGINT; avoids possible memory leak pointed out - by Garrett Cooper - - rl_complete_internal: in default switch case, call _rl_free_match_list - before returning to avoid memory leak - -doc/bashref.texi - - start at a set of examples for the =~ regular expression matching - operator, touching on keeping the pattern in a shell variable and - quoting portions of the pattern to remove their special meaning - - 12/1 - ---- -lib/glob/gmisc.c - - extglob_pattern: new function, returns 1 if pattern passed as an - argument looks like an extended globbing pattern - -lib/glob/glob.c - - skipname: return 0 immediately if extglob_pattern returns non-zero, - let the extended globbing code do the right thing with skipping - names beginning with a `.' - - mbskipname: return 0 immediately if extglob_pattern returns non-zero, - let the extended globbing code do the right thing with skipping - names beginning with a `.'. Fixes bug reported by Yongzhi Pan - - - 12/2 - ---- -lib/glob/smatch.c - - patscan, patscan_wc: no longer static so other parts of the glob - library can use them, renamed to glob_patscan, glob_patscan_wc - -lib/glob/glob.c - - extern declarations for glob_patscan, glob_patscan_wc - - wchkname: new function, does skipname on wchar_t pattern and dname, - old body of mbskipname after converting to wide chars - - extglob_skipname: new function, checks all subpatterns in an extglob - pattern to determine whether or not a filename should be skipped. - Calls skipname for each subpattern. Dname is only skipped if all - subpatterns indicate it should be. Better fix for bug reported by - Yongzhi Pan - - wextglob_skipname: wide-char version of extglob_skipname, calls - wchkname instead of calling back into mbskipname for each - subpattern to avoid problems with char/wchar_t mismatch - - skipname: call extglob_skipname if extglob_pattern returns non-zero - - mbskipname: call wextglob_skipname if extglob_pattern returns non-zero - - mbskipname: short-circuit immediately if no multibyte chars in - pattern or filename - -execute_cmd.c - - execute_cond_node: added parens to patmatch assignment statement to - make intent clearer - - 12/3 - ---- -configure.in,config.h.in - - check for imaxdiv, define HAVE_IMAXDIV if present - -expr.c - - expassign, exp2: use imaxdiv if available. Doesn't help with checks - for overflow from 10/25 - - 12/6 - ---- -lib/readline/complete.c - - compute_lcd_of_matches: if we're ignoring case in the matches, only - use what the user typed as the lcd if it matches the first match - (after sorting) up to the length of what was typed (if what the - user typed is longer than the shortest of the possible matches, use - the shortest common length of the matches instead). If it doesn't - match, use the first of the list of matches, as if case were not - being ignored. Fixes bug reported by Clark Wang - - - 12/7 - ---- -builtins/cd.def - - cd_builtin: add code to return error in case cd has more than one - non-option argument, conditional on CD_COMPLAINS define (which is - not defined anywhere) - -doc/{bash.1,bashref.texi} - - note that additional arguments to cd following the directory name - are ignored. Suggested by Vaclav Hanzl - - 12/10 - ----- -lib/readline/input.c - - rl_read_key: don't need to increment key sequence length here; doing - it leads to an off-by-one error - -lib/readline/macro.c - - rl_end_kbd_macro: after off-by-one error with rl_key_sequence_length - fixed, can decrement current_macro_index by rl_key_sequence_length - (length of key sequence that closes keyboard macro) - -lib/readline/readline.c - - _rl_dispatch_subseq: fix extra increment of rl_key_sequence_length - when ESC maps to a new keymap and we're converting meta characters - to ESC+key - - _rl_dispatch_subseq: better increment of rl_key_sequence_length - before we dispatch to a function in the ISFUNC case (where the - second increment above should have happened) - - rl_executing_keyseq: the full key sequence that ended up executing - a readline command. Available to the calling application, maintained - by _rl_dispatch_subseq, indexed by rl_key_sequence_length - - rl_executing_key: the key that was bound to the currently-executing - readline command. Same as the `key' argument to the function - -lib/readline/readline.h - - rl_executing_keyseq: extern declaration - - rl_executing_key: extern declaration - - rl_key_sequence_length: declaration moved here from rlprivate.h, - now part of public interface - -lib/readline/rlprivate.h - - new extern declaration for _rl_executing_keyseq_size, buffer size - for rl_executing_keyseq - -lib/readline/doc/rltech.texi - - documented new variables: rl_executing_key, rl_executing_keyseq, - rl_key_sequence_length - - 12/13 - ----- -bashline.c - - bash_execute_unix_command: replace ad-hoc code that searches - cmd_xmap for correct command with call to rl_function_of_keyseq - using rl_executing_keyseq; now supports key sequences longer - than two characters. Fixes bug reported by Michael Kazior - - - 12/15 - ----- -make_cmd.c - - make_function_def: don't null out source_file before calling - make_command so it can be used later on when the function definition - is executed - -execute_cmd.c - - execute_intern_function: second argument is now FUNCTION_DEF * - instead of COMMAND * - - execute_command_internal: call execute_intern_function with the - new second argument (the entire FUNCTION_DEF instead of just the - command member) - - execute_intern_function: if DEBUGGER is defined, call - bind_function_def before calling bind_function, just like - make_function_def does (might be able to take out the call in - make_function_def depending on what the debugger does with it). - Fixes bug reported by - -expr.c - - more minor changes to cases of INTMAX_MIN % -1 and INTMAX_MIN / 1; - fix typos and logic errors - - 12/16 - ----- -bashline.c - - find_cmd_start: change flags to remove SD_NOSKIPCMD so it skips over - command substitutions and doesn't treat them as command separators - - attempt_shell_completion: instead of taking first return from - find_cmd_name as command name to use for programmable completion, - use loop to skip over assignment statements. Fixes problem reported - by Raphael Droz - - attempt_shell_completion: if we don't find a command name but the - command line is non-empty, assume the other words are all assignment - statements and flag that point is in a command position so we can - do command name completion - - attempt_shell_completion: if the word being completed is the first - word following a series of assignment statements, and the - command line is non-empty, flag that point is in a command position - so we can do command name completion - -lib/readline/history.c - - history_get_time: atol -> strtol - - 12/18 - ----- -parse.y - - parser_in_command_position: external interface to the - command_token_position macro for use by other parts of the shell, - like the completion mechanism - -externs.h - - extern declaration for parser_in_command_position - - 12/19 - ----- - -builtins/read.def - - read_builtin: make sure all calls to bind_read_variable are passed - a non-null string. Fixes bug reported by Dan Douglas - - -bashline.c - - attempt_shell_completion: mark that we're in a command position if - we're at the start of the line and the parser is ready to accept - a reserved word or command name. Feature most recently suggested - by Peng Yu - - 12/21 - ----- -lib/readline/bind.c - - _rl_escchar: return the character that would be backslash-escaped - to denote the control character passed as an argument ('\n' -> 'n') - - _rl_isescape: return 1 if character passed is one that has a - backslash escape - - _rl_untranslate_macro_value: new second argument: use_escapes, if - non-zero translate to backslash escapes where possible instead of - using straight \C-x for control character `x'. Change callers - - _rl_untranslate_macro_value: now global - -lib/readline/rlprivate.h - - _rl_untranslate_macro_value: extern declaration - -lib/readline/{macro.c,readline.h} - - rl_print_last_kbd_macro: new bindable function, inspired by patch - from Mitchel Humpherys - -lib/readline/funmap.c - - print-last-kbd-macro: new bindable command, bound to - rl_print_last_kbd_macro - -lib/readline/doc/{rluser.texi,readline.3},doc/bash.1 - - print-last-kbd-macro: document. - -lib/readline/text.c - - _rl_insert_next: if we're defining a macro, make sure the key gets - added to the macro text (should really audit calls to rl_read_key() - and make sure the right thing is happening for all of them) - -bashline.[ch] - - print_unix_command_map: new function, prints all bound commands in - cmd_xmap using rl_macro_dumper in a reusable format - -builtins/bind.def - - new -X option: print all keysequences bound to Unix commands using - print_unix_command_map. Feature suggested by Dennis Williamson - (2/2011) - -doc/{bash.1,bashref.texi} - - document new `bind -X' option - - 12/24 - ----- - -doc/{bash.1,bashref.texi} - - add a couple of sentences to the description of the case modification - operators making it clearer that each character of parameter is - tested against the pattern, and that the pattern should only attempt - to match a single character. Suggested by Bill Gradwohl - - - 12/28 - ----- -shell.c - - init_noninteractive: instead of calling set_job_control(0) to - unconditionally turn off job control, turn on job control if - forced_interactive or jobs_m_flag is set - - shell_initialize: call initialize_job_control with jobs_m_flag as - argument so `bash -m script' enables job control while running the - script - -jobs.c - - initialize_job_control: if the `force' argument is non-zero, turn on - job control even if the shell is not currently interactive - (interactive == 0) - - 12/29 - ----- - -flags.h - - new extern declaration for jobs_m_flag - -builtins/{cd,set}.def,doc/{bash.1,bashref.texi} - - added text clarifying the descriptions of cd -L and -P, suggested by - Padraig Brady - - slight change to the description of `set -P' about resolving symbolic - links - -lib/readline/doc/rluser.texi - - Added an example to the programmable completion section: _comp_cd, - a completion function for cd, with additional verbiage. Text - includes a reference to the bash_completion project - - 1/1/2012 - -------- -jobs.c - - set_job_status_and_cleanup: note that a job is stopped due to - SIGTSTP (any_tstped) if job_control is set; there's no need to - test interactive - - 1/5 - --- -quit.h - - LASTSIG(): new macro, expands to signal number of last terminating - signal received (terminating_signal or SIGINT) - -trap.c - - first_pending_trap: returns lowest signal number with a trap pending - - trapped_signal_received: set to the last trapped signal the shell - received in trap_handler(); reset to 0 in run_pending_traps - -builtins/read.def - - read_builtin: changes to posix-mode (posixly_correct != 0) to make - `read' interruptible by a trapped signal. After the trap runs, - read returns 128+sig and does not assign the partially-read line - to the named variable(s). From an austin-group discussion started - by David Korn - - 1/11 - ---- -doc/{bash.1,bashref.texi} - - slight changes to the descriptions of the compat32 and compat40 shell - options to clarify their meaning - - 1/12 - ---- -lib/readline/{colors.[ch],parse-colors.[ch]} - - new files, part of color infrastructure support - -Makefile.in,lib/readline/Makefile.in - - arrange to have colors.o and parse-colors.o added to readline - library - -{configure,config.h}.in - - check for stdbool.h, define HAVE_STDBOOL_H if found - - 1/14 - ---- -lib/readline/bind.c - - colored_stats: new bindable variable, enables using colors to - indicate file type when listing completions - -lib/readline/complete.c - - _rl_colored_stats: new variable, controlled by colored-stats bindable - variable - - colored_stat_start, colored_stat_end: new functions to set and reset - the terminal color appropriately depending on the type of the - filename to be printed - - print_filename: changes to print colors if `colored-stats' variable - set. Changes contributed by Raphael Droz - - -lib/readline/readline.c - - rl_initialize_everything: add call to _rl_parse_colors to parse - color values out of $LS_COLORS. May have to add to rl_initialize - to make more dynamic if LS_COLORS changes (which doesn't happen - very often, if at all) - -lib/readline/rlprivate.h - - _rl_colored_stats: new extern declaration - -lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 - - colored-stats: document new bindable readline variable - -lib/readline/colors.c - - _rl_print_color_indicator: call rl_filename_stat_hook before calling - lstat/stat so we can get color indicators for stuff like - $HOME/Applications - -lib/readline/complete.c - - stat_char: call rl_filename_stat_hook before calling lstat/stat - -findcmd.[ch],execute_cmd.c - - search_for_command: now takes a second `flags' argument; changed - header function prototype and callers - - search_for_command: if (flags & 1), put the command found in $PATH - into the command hash table (previous default behavior) - -execute_cmd.c - - is_dirname: call search_for_command with flags argument of 0 so it - doesn't try to put something in the command hash table - -bashline.c - - bash_command_name_stat_hook: a hook function for readline's - filename_stat_hook that does $PATH searching the same way that - execute_cmd.c:execute_disk_command() does it, and rewrites the - passed filename if found. Does not put names into command hash - table. This allows command name completion to take advantage - of `visible-stats' and `colored-stats' settings. - - executable_completion: new function, calls the directory completion - hook to expand the filename before calling executable_file or - executable_or_directory; change command_word_completion_function to - call executable_completion. This allows $HOME/bin/[TAB] to do - command completion and display alternatives - - 1/17 - ---- -pcomplete.c - - gen_command_matches: now takes a new second argument: the command - name as deciphered by the programmable completion code and used - to look up the compspec; changed callers (gen_compspec_completions) - - gen_shell_function_matches: now takes a new second argument: the - command that originally caused the completion function to be - invoked; changed callers (gen_compspec_completions)) - - build_arg_list: now takes a new second argument: the command name - corresponding to the current compspec; changed callers - (gen_command_matches, gen_shell_function_matches) - - build_arg_list: now uses `cmd' argument to create $1 passed to - invoked command or shell function - - gen_compspec_completions: if we skipped a null command at the - beginning of the line (e.g., for completing `>'), add a new word for - it at the beginning of the word list and increment nw and cw - appropriately. This is all a partial fix for the shortcoming - pointed out by Sung Pae - - 1/18 - ---- - -{configure,config.h}.in - - new check: check for AUDIT_USER_TTY defined in , - define HAVE_DECL_AUDIT_USER_TTY if both are found - -lib/readline/rlconf.h - - ENABLE_TTY_AUDIT_SUPPORT: new define, allows use of the Linux kernel - tty auditing system if it's available and enabled - -lib/readline/util.c - - _rl_audit_tty: new function, send a string to the kernel tty audit - system - -lib/readline/rlprivate.h - - _rl_audit_tty: new extern declaration - -lib/readline/readline.c - - readline: call _rl_audit_tty with line to be returned before returning - it if the Linux tty audit system is available and it's been enabled - in rlconf.h Original patch from Miroslav Trmac; recent request - from Miroslav Lichvar - - 1/21 - ---- - -lib/readline/readline.c: - - _rl_dispatch_subseq: add an inter-character timeout for multi-char - key sequences. Suggested by . Still needs - work to make a user-settable variable - -parse.y - - shell_getc: make code that uses the pop_alias dependent on ALIAS - define - -variables.h - - sv_tz: extern define should only depend on HAVE_TZSET - -expr.c - - expr_streval: if ARRAY_VARS is not defined, set lvalue->ind to -1; - move assignment to `ind' inside define - - expr_bind_array_element: declaration and uses need to be #ifdef - ARRAY_VARS - -arrayfunc.h - - AV_ALLOWALL, AV_QUOTED, AV_USEIND: define to 0 if ARRAY_VARS not - defined; used in subst.c unconditionally - -sig.h - - make the signal blocking functions not dependent on JOB_CONTROL - -sig.c - - sigprocmask: make the replacement definition not dependent on - JOB_CONTROL - -trap.c - - use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on - HAVE_POSIX_SIGNALS and BSD signals - - 1/24 - ---- - -print_cmd.c - - print_redirection_list: change the conditions under which - r_duplicating_output_word is mapped to r_err_and_out to more or - less match those used in redir.c. Fixes bug pointed out by - Dan Douglas - - - 1/29 - ---- -lib/readline/signals.c - - _rl_block_sigwinch,_rl_release_sigwinch: don't compile in bodies - unless SIGWINCH is defined. Fixes bug reported by Pierre Muller - - -doc/{bash.1,bashref.texi} - - small modifications to the introduction to the REDIRECTION section - to describe how redirections can modify file handles - - small modification to the section describing base#n to make it - clearer that n can be denoted using non-numerics. From a posting - by Linda Walsh - - 2/2 - --- -builtins/printf.def - - printf_builtin: make sure vbuf is intialized and non-null when -v - is supplied, since other parts of the code assume that it's not - null (e.g., bind_printf_variable()). Fixes bug reported by Jim - Avera - - 2/4 - --- -lib/readline/undo.c - - _rl_free_undo_list: new function, old body of rl_free_undo_list, - frees undo entries in UNDO_LIST * passed as argument - - rl_free_undo_list: call _rl_free_undo_list - -lib/readline/rlprivate.h - - _rl_free_undo_list: new extern declaration - - _rl_keyseq_timeout: new extern declaration (see below) - -lib/readline/misc.c - - rl_clear_history: new function. Clears the history list and frees - all associated data similar to history.c:clear_history(), but - takes rl_undo_list into account and frees and UNDO_LISTs saved as - `data' members of a history list entry - -lib/readline/doc/rltech.texi - - rl_clear_history: documented - -lib/readline/readline.c - - _rl_keyseq_timeout: new variable to hold intra-key timeout value - from 1/21 fix; specified in milliseconds. Default value is 500 - - _rl_dispatch_subseq: change to use _rl_keyseq_timeout as intra-key - timeout if it's greater than 0; no timeout if <= 0 - - _rl_dispatch_subseq: don't check for queued keyboard input if we have - pushed or pending input, or if we're reading input from a macro - -lib/readline/bind.c - - keyseq-timeout: new bindable variable, shadows _rl_keyseq_timeout - - string_varlist: add keyseq-timeout - - sv_seqtimeout: new function to modify value of _rl_keyseq_timeout; - clamps negative values at 0 for now - - _rl_get_string_variable_value: return value for keyseq-timeout - -doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} - - keyseq-timeout: documented - -lib/readline/isearch.c - - _rl_isearch_dispatch: modification to fix from 7/18 to not use - cxt->keymap and cxt->okeymap, since by the time this code is - executed, they are equal. Use `f' to check for rl_insert or - unbound func - - _rl_isearch_dispatch: if we're switching keymaps, not in - callback mode, and don't have pending or pushed input, use - _rl_input_queued to resolve a potentially ambiguous key sequence. - Suggested by Roger Zauner - - _rl_isearch_dispatch: if we have changed keymaps and resolved to - an editing function (not self-insert), make sure we stuff the - right characters back onto the input after changing the keymap - back so the right editing function is executed after the search - is terminated. Rest of fix for bug reported by Roger Zauner - - - 2/5 - --- -builtins/gen-helpfiles.c - - new file: reads struct builtin and writes the long docs to files - in the `helpdirs' subdirectory. The filename is given in the - previously-unused `handle' member of the struct builtin. Links - with `tmpbuiltins.o', which is created by Makefile to have the - right long documentation. When not cross-compiling, gets the - right #defines based on configuration options from config.h instead - of trying to parse conditional parts of def files. Fixes - shortcoming pointed out by Andreas Schwab - -builtins/Makefile.in - - tmpbuiltins.c: new generated file, created to enable creation of - separate helpfiles based on correct #defines instead of trying to - parse conditional parts of def files - - gen-helpfiles: new program to generate helpfiles, links with - tmpbuiltins.o - - HELPFILES_TARGET: new target, substituted by configure to `helpdoc' - if separate helpfiles requested - - targets: new target, libbuiltins.a and $(HELPFILES_TARGET) - - CREATED_OBJECTS: new variable, holds created object files for - make clean; changed make clean to remove created objects - - helpdoc: changed to call gen-helpfiles instead of mkbuiltins - -Makefile.in - - when building libbuiltins.a, recursively call make with `targets' - argument to make sure separate helpfiles get built - -configure.in - - substitute `helpdoc' as value of HELPFILES_TARGET if - --enable-separate-helpfiles supplied as configure argument - -builtins/mkbuiltins.c - - `-nofunctions': new argument, causes mkbuiltins to not write value - for function implementing a particular builtin to struct builtin - and to write document file name to `handle' member of struct builtin - - no longer writes separate helpfiles; that is left to gen-helpfiles - - 2/8 - --- -subst.c - - make sure last_command_exit_value is set to a non-zero value before - any calls to report_error, since `-e' set will short-circuit - report_error. Fixes bug reported by Ewan Mellor - - -variables.c - - make_local_array_variable: added second argument; if non-zero, - function will return an existing local associative array variable - instead of insisting on an indexed array - -variable.h,subst.c - - make_local_array_variable: changed prototype and caller - -builtins/declare.def - - declare_internal: add second arg to call to make_local_array_variable; - making_array_special, which indicates we're processing an - assignment like declare a[b]=c. Fixes seg fault resulting from - a being an already-declared local associative array variable in a - function. Ubuntu bash bug 928900. - - 2/14 - ---- - -execute_cmd.c - - execute_command_internal: if redirections into or out of a loop fail, - don't try to free ofifo_list unless saved_fifo is non-zero. It's - only valid if saved_fifo is set - - 2/15 - ---- -{arrayfunc,braces,variables}.c - - last_command_exit_value: make sure it's set before any calls to - report_error, since -e will cause that to exit the shell - -builtins/common.c - - get_job_by_name: call internal_error instead of report_error so this - doesn't exit the shell - - 2/18 - ---- -builtins/evalstring.c - - parse_and_execute: make sure the file descriptor to be redirected to - is 1 before calling cat_file. One fix for bug reported by Dan Douglas - - -parse.y - - read_token_word: don't return NUMBER if a string of all digits - resolves to a number that overflows the bounds of an intmax_t. - Other fix for bug reported by Dan Douglas - - 2/19 - ---- -lib/sh/strtrans.c - - ansicstr: use 0x7f as the boundary for characters that translate - directly from ASCII to unicode (\u and \U escapes) instead of - UCHAR_MAX, since everything >= 0x80 requires more than one byte. - Bug and fix from John Kearney - -builtins/printf.def - - tescape: ditto for printf \u and \U escape sequences - - 2/20 - ---- -lib/sh/unicode.c - - u32toutf8: fix to handle encodings up to six bytes long correctly - (though technically UTF-8 only has characters up to 4 bytes long). - Report and fix from John Kearney - - u32toutf8: first argument is now an unsigned 32-bit quantity, - changed callers (u32cconv) to pass c instead of wc - - u32reset: new function, resets local static state to uninitialized - (locale information, currently) - -locale.c - - call u32reset whenever LC_CTYPE/LC_ALL/LANG is changed to reset the - cached locale information used by u32cconv. From a report from - John Kearney - - 2/21 - ---- -doc/{bash,builtins}.1 - - minor changes from Bjarni Ingi Gislason - -lib/sh/unicode.c - - u32cconv: only assume you can directly call wctomb on the passed - value if __STDC_ISO_10646__ is defined and the value is <= - 0x7fffffff - - stub_charset: return locale as default instead of "ASCII", let - rest of code decide what to do with it - -lib/readline/parens.c - - _rl_enable_paren_matching: make paren matching work in vi insert - mode. Bug report from - - 2/22 - ---- -lib/sh/shquote.c - - sh_backslash_quote: quote tilde in places where it would be - expanded. From a report from John Kearney - - 2/23 - ---- -execute_cmd.c - - execute_pipeline: wrap the discard_unwind_frame call in #ifdef - JOB_CONTROL, since the frame is only created if JOB_CONTROL is - defined. Bug and fix from Doug Kehn - - 2/25 - ---- -error.c - - report_error: make sure last_command_exit_value is non-zero before - we call exit_shell, since the exit trap may reference it. Call - exit_shell with last_command_exit_value to allow exit statuses - other than 1 - -unicode.c - - stub_charset: use local static buffer to hold charset, don't change - value returned by get_locale_var. Based on idea and code from - John Kearney - - u32toutf16: function to convert unsigned 32-bit value (unicode) to - UTF-16. From John Kearney - - u32cconv: call u32toutf16 if __STDC_ISO_10646__ defined and wchar_t - is two bytes, send result to wcstombs, return if not encoding error. - From John Kearney - - u32cconv: return UTF-8 conversion if iconv conversion to local - charset is unsupported - - 3/2 - --- -lib/readline/complete.c - - print_filename: if there is no directory hook, but there is a stat - hook, and we want to append a slash to directories, call the stat - hook before calling path_isdir on the expanded directory name. - Report and pointer to fix from Steve Rago - - 3/3 - --- -builtins/evalstring.c - - parse_and_execute: fix to change of 2/18: make sure the file - descriptor being redirected to is 0 before calling cat_file when - we see something like $(< file). Real fix for bug reported by - Dan Douglas - -subst.c - - parameter_brace_patsub: run the replacement string through quote - removal even if the expansion is within double quotes, because - the parser and string extract functions treat the quotes and - backslashes as special. If they're treated as special, quote - removal should remove them (this is the Posix position and - compatible with ksh93). THIS IS NOT BACKWARDS COMPATIBLE. - - 3/4 - --- -lib/readline/complete.c - - rl_menu_complete: fix to make show-all-if-ambiguous and - menu-complete-display-prefix work together if both are set. Fix - from Sami Pietila - - 3/5 - --- -bashline.c - - dircomplete_expand_relpath: new variable, if non-zero, means that - `shopt -s direxpand' should expand relative pathnames. Zero by - default, not user-settable yet - - bash_directory_completion_hook: if we have a relative pathname that - isn't changed by canonicalization or spell checking after being - appended to $PWD, then don't change what the user typed. Controlled - by dircomplete_expand_relpath - - 3/7 - --- -m4/timespec.m4 - - new macros, cribbed from gnulib and coreutils: find out whether we - have `struct timespec' and what file includes it - -m4/stat-time.m4 - - new macros, cribbed from gnulib and coreutils: find out whether the - mtime/atime/ctime/etctime fields of struct stat are of type - struct timespec, and what the name is - -include/stat-time.h - - new file, cribbed from gnulib, with additions from coreutils: include - the right file to get the struct timespec define, or provide our own - replacement. Provides a bunch of inline functions to turn the - appropriate members of struct stat into `struct timespec' values, - zeroing out the tv_nsec field if necessary - -test.c - - include "stat-time.h" for the nanosecond timestamp resolution stuff - - stat_mtime: new function, returns struct stat and the mod time - normalized into a `struct timespec' for the filename passed as the - first argument - - filecomp: call stat_mtime instead of sh_stat for each filename - argument to get the mtime as a struct timespec - - filecomp: call timespec_cmp instead of using a straight arithmetic - comparison for the -nt and -ot operators, using timespec returned by - stat_mtime. Added functionality requested by by Werner Fink - for systems that can support it - - 3/10 - ---- -include/posixdir.h - - REAL_DIR_ENTRY: remove dependency on _POSIX_SOURCE, only use feature - test macros to decide whether dirent.d_ino is present and usable; - define D_INO_AVAILABLE. Report and fix from Fabrizion Gennari - - - D_FILENO_AVAILABLE: define if we can use dirent.d_fileno - -lib/sh/getcwd.c - - use D_FILENO_AVAILABLE to decide whether or not to compile in - _path_checkino and whether or not to call it. Report and initial - fix from Fabrizion Gennari - -lib/readline/signals.c - - make sure all occurrences of SIGWINCH are protected by #ifdef - -sig.c - - make sure all occurrences of SIGCHLD are protected by #ifdef - -nojobs.c - - make sure SA_RESTART is defined to 0 if the OS doesn't define it - -version.c - - show_shell_version: don't use string literals in printf, use %s. - Has added benefit of removing newline from string to be translated - -trap.c - - queue_sigchld_trap: new function, increments the number of pending - SIGCHLD signals by the argument, which is by convention the number - of children reaped in a call to waitchld() - -trap.h - - queue_sigchld_trap: new extern declaration - -jobs.c - - waitchld: if called from the SIGCHLD signal handler (sigchld > 0), - then call queue_sigchld_trap to avoid running the trap in a signal - handler context. Report and original fix from Siddhesh Poyarekar - - -lib/sh/unicode.c - - u32tocesc: take an unsigned 32-bit quantity and encode it using - ISO C99 string notation (\u/\U) - - u32cconv: call u32tocesc as a fallback instead of u32cchar - - u32cconv: call u32tocesc if iconv cannot convert the character. - Maybe do the same thing if iconv_open fails - - u32reset: call iconv_close on localconv if u32init == 1 - - 3/11 - ---- -config-top.h - - CHECKWINSIZE_DEFAULT: new define, set to initial value of - check_window_size (shopt checkwinsize): 0 for off, 1 for on. - Default is 0 - -{jobs,nojobs}.c - - check_window_size: default initial value to CHECKWINSIZE_DEFAULT - - 3/13 - ---- -doc/bashref.texi - - change text referring to the copying restrictions to that - recommended by the FSF (no Front-Cover Texts and no Back-Cover - Texts) - -lib/readline/doc/{history,rlman,rluserman}.texi - - change text referring to the copying restrictions to that - recommended by the FSF (no Front-Cover Texts and no Back-Cover - Texts) - - 3/15 - ---- -array.c - - LASTREF_START: new macro to set the starting position for an array - traversal to `lastref' if that's valid, and to the start of the array - if not. Used in array_reference, array_insert, array_remove - - array_remove: try to be a little smarter with lastref instead of - unconditionally invalidating it - - 3/16 - ---- -array.c - - array_insert: fix memory leak by deleting element to be added in the - case of an error - - 3/18 - ---- -lib/sh/mbschr.c - - mbschr: don't call mbrlen unless is_basic is false; devolves to a - straight character-by-character run through the string - - 3/19 - ---- -stringlib.c - - substring: use memcpy instead of strncpy, since we know the length - and are going to add our own NUL terminator - - 3/20 - ---- -subst.c - - parameter_brace_expand_rhs: if expand_string_for_rhs returns a quoted - null string (a list with one element for which - QUOTED_NULL(list->word->word) returns true), return the quoted null - and set the flags in the returned word to indicate it. Fixes bug - reported by Mark Edgar - -lib/sh/tmpfile.c - - use random(3) instead of get_random_number to avoid perturbing the - random sequence you get using $RANDOM. Bug report and fix from - Jurij Mihelic - - 3/21 - ---- -config-top.h - - OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT: define to 1 to optimize - sequential indexed array assignment patterns. Defined to 1 by - default - -array.c - - array_insert: if OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT is defined, - start the search at lastref (see change from 3/15) - - 3/27 - ---- -print_cmd.c - - debug_print_word_list: new debugging function, prints a word list - preceded by an optional string and using a caller-specified - separator - - 4/1 - --- -command.h - - W_ASSNGLOBAL: new flag, set to indicate declare -g - -execute_cmd.c - - fix_assignment_words: note that we have a -g argument to an assignment - builtin and set the W_ASSNGLOBAL flag in the variable word - -subst.c - - dump_word_flags: print out W_ASSNGLOBAL if present - - do_assignment_internal: only set ASS_MKLOCAL if W_ASSIGNARG is set - and W_ASSNGLOBAL is not. Don't want to create a local variable even - if variable_context is non-zero if ASSNGLOBAL is set. Fixes bug - reported by Bill Gradwohl - - 4/7 - --- -lib/readline/readline.c - - _rl_dispatch_subseq: make the `keyseq-timeout' variable apply to - ESC processing when in vi mode. After hitting ESC, readline will - wait up to _rl_keyseq_timeout*1000 microseconds (if set) for - additional input before dispatching on the ESC and switching to - command/movement mode. Completes timeout work suggested by - ; this prompted by report from Barry Downes - - -lib/sh/shmbchar.c - - sh_mbsnlen: new function, returns the number of (possibly multibyte) - characters in a passed string with a passed length, examining at most - maxlen (third argument) bytes - -externs.h - - sh_mbsnlen: extern declaration for new function - -shell.c - - exit_shell: call maybe_save_shell_history if remember_on_history is - set, not just in interactive shells. That means the history is - saved if history is enabled, regardless of whether or not the shell - is interactive - -doc/{bash.1,bashref.texi} - - TMOUT: fix description to make it explicit that TMOUT is the timeout - period for a complete line of input, not just any input. Fixes - problem reported in Ubuntu bug 957303: - https://bugs.launchpad.net/ubuntu/+source/bash/+bug/957303 - - HISTFILE: document change to write history list to history file in - any shell with history enabled, not just interactive shells. This - seems to be more logical behavior. Suggested by Greg Wooledge - - - 4/12 - ---- -lib/readline/colors.h - - only include stdbool.h if HAVE_STDBOOL_H is defined - - if HAVE_STDBOOL_H is not defined, provide enough definition for the - library to use `bool', `true', and `false' - -lib/readline/parse-colors.[ch] - - don't try to include at all; rely on colors.h to do it - -lib/sh/snprintf.c - - vsnprintf_internal: only treat '0' as a flag to indicate zero padding - if `.' hasn't been encountered ((flags&PF_DOT) == 0); otherwise treat - it as the first digit of a precision specifier. Fixes bug reported - by Petr Sumbera - - 4/15 - ---- -lib/sh/snprintf.c - - vsnprintf_internal: if the '0' and '-' flags both occur, the '0' - flag is ignored -- Posix. Start of a series of fixes based on - tests and patches from Petr Sumbera - - PUT_PLUS: make sure PF_PLUS flag is specified before putting the `+' - - vsnprintf_internal: when '+' is read as a flag, don't set right- - justify flag if the LADJUST (`-') flag has already been supplied - - floating: make sure to output space padding before the `+', zero - padding after - - exponent: make sure to output space padding before the `+', zero - padding after - - exponent: only subtract one from the width for the decimal point - if we're really going to print one - - floating: use presence of PF_PLUS flag to decide whether to account - for the `+' in the padded field width. Ditto for exponent() - - 4/16 - ---- -lib/sh/snprintf.c - - vsnprint_internal: only reduce precision by 1 when processing the `g' - format if it's > 0. A precision of 0 should stay 0; otherwise it - gets set to -1 (NOT_FOUND) and converted to the default - - number, lnumber: if an explicit precision is supplied, turn off the - zero-padding flag and set the pad character back to space - - number, lnumber: only account for a `+' when performing the field - width calculation if the coversion is base 10; we don't add a `+' - for other bases - - 4/18 - ---- -tests/printf3.sub - - try using "perl -e 'print time'" to get the current time in seconds - since the epoch if "date +%s" is not available (solaris 8-10) - - 4/19 - ---- -tests/run-printf - - use cat -v instead of relying on diff -a being available to convert - control characters to ascii and avoid the dreaded "Binary files - /tmp/xx and printf.right differ" - - 4/20 - ---- -lib/sh/strftime.c - - incoporated new version from Aharon Robbins - - 4/22 - ---- -doc/{bash.1,bashref.texi} - - slight change to the description of /dev/tcp and /dev/udp - -subst.c - - match_wpattern: logic fix to the calculation of `simple' (was |=, - needs to be &=). Bug report from Mike Frysinger , - fix from Andreas Schwab - -bashline.c - - bash_filename_stat_hook: add code from bash_directory_completion_hook - that performs pathname canonicalization in the same way that cd and - other builtins will do - - 4/25 - ---- -execute_cmd.c - - execute_pipeline: change the call to move_to_high_fd to make it use - getdtablesize() and to not stomp on existing open file descriptors, - like the fd the shell is using to read a script. Bug report from - Greg Wooledge - - 5/6 - --- -subst.c - - expand_word_internal: case '$': after calling param_expand and - setting had_quoted_null, set TEMP to null. The code that builds the - returned string at the end of the function will take care of making - and returning a quoted null string if there's nothing else in - ISTRING. If there is, the quoted null should just go away. Part of - fix for bug reported by Ruediger Kuhlmann - - expand_word_internal: when processing ISTRING to build return value, - only set W_HASQUOTEDNULL in the returned word flags if the word is - a quoted null string AND had_quoted_null is set. Rest of fix - - 5/9 - --- -variables.c - - bind_variable_internal: if we get an array variable here (implicit - assignment to index 0), call make_array_variable_value, which - dummies up a fake SHELL_VAR * from array[0]. This matters when - we're appending and have to use the current value - - bind_variable_internal: after computing the new value, treat assoc - variables with higher precedence than simple array variables; it - might be that a variable has both attributes set - -arrayfunc.c - - bind_array_var_internal: break code out that handles creating the - new value to be assigned to an array variable index into a new - function, make_array_variable_value. This handles creating a - dummy SHELL_VAR * for implicit array[0] assignment. Fixes bug - reported by Dan Douglas - -arrayfunc.h - - make_array_variable_value: new extern declaration - - 5/19 - ---- -variables.c - - bind_int_variable: if an assignment statement like x=y comes in - from the expression evaluator, and x is an array, handle it like - x[0]=y. Fixes bug reported by Dan Douglas - - 5/24 - ---- - -braces.c - - mkseq: handle possible overflow and break the sequence generating - loop if it occurs. Fixes OpenSUSE bug 763591: - https://bugzilla.novell.com/show_bug.cgi?id=763591 - - 5/25 - ---- -Makefile.in - - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools - buildversion, mksignames, mksyntax - - LDFLAGS_FOR_BUILD: add to compilation recipes for test tools - recho, zecho, printenv, xcase - -builtins/Makefile.in - - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools - gen-helpfiles, psize.aux - -variables.c - - bind_int_variable: if LHS is a simple variable name without an array - reference, but resolves to an array variable, call - bind_array_variable with index 0 to make x=1 equivalent to x[0]=1. - Fixes bug reported by Dan Douglas - - 5/27 - ---- -subst.c - - expand_word_internal: make sure has_dollar_at doesn't get reset before - recursive calls to param_expand or expand_word_internal, since it has - to save state of what came before. Use temp variable and make sure - has_dollar_at is incremented if recursive call processes "$@". - Fixes bug reported by gregrwm and - supplemented by Dan Douglas - -doc/{bash.1,bashref.texi} - - changes to the description of substring expansion inspired by - suggestions from Bill Gradwohl - -doc/bashref.texi - - added substring expansion examples inspired by suggestions from - Bill Gradwohl - -variables.c - - find_shell_variable: search for a variable in the list of shell - contexts, ignore the temporary environment - - find_variable_tempenv: search for a variable in the list of shell - contexts, force search of the temporary environment - - find_variable_notempenv: search for a variable in the list of shell - contexts, don't force search of the temporary environment - -variables.h - - find_shell_variable: extern declaration - - find_variable_tempenv: extern declaration - - find_variable_notempenv: extern declaration - -arrayfunc.c - - bind_array_variable: call find_shell_variable instead of calling - var_lookup directly - -findcmd.c - - search_for_command: call find_variable_tempenv instead of - find_variable_internal directly - - _find_user_command_internal: call find_variable_tempenv instead of - find_variable_internal directly - -builtins/setattr.def - - set_var_attribute: call find_variable_notempenv instead of - find_variable_internal directly - - show_name_attributes: call find_variable_tempenv instead of - find_variable_internal directly - - 6/1 - --- -sig.c - - termsig_handler: don't try to save the shell history on a terminating - signal any more, since it just causes too many problems on Linux - systems using glibc and glibc malloc - -lib/readline/vi_mode.c - - rl_vi_change_to: change to correctly redo `cc', since `c' is not a vi - motion character. From Red Hat bug 813289 - - rl_vi_delete_to: change to correctly redo `dd', since `d' is not a vi - motion character - - rl_vi_yank_to: change to correctly redo `yy', since `y' is not a vi - motion character - - 6/4 - --- -lib/sh/mktime.c - - current versions of VMS do not need to include . Fix from - John E. Malmberg - - 6/5 - --- -lib/sh/eaccess.c - - sh_stat: instead of using a static buffer to do the DEV_FD_PREFIX - translation, use a dynamically-allocated buffer that we keep - resizing. Fixes potential security hole reported by David Leverton - - - 6/5 - --- -braces.c - - expand_seqterm: check errno == ERANGE after calling strtoimax for - rhs and incr. Part of a set of fixes from Scott McMillan - - - expand_seqterm: incr now of type `intmax_t', which changes - arguments to mkseq - - mkseq: a better fix for detecting overflow and underflow since it's - undefined in C and compilers `optimize' out overflow checks. Uses - ADDOVERFLOW and SUBOVERFLOW macros - - mkseq: use sh_imaxabs (new macro) instead of abs() for intmax_t - variables - - mkseq: don't allow incr to be converted to -INTMAX_MIN - - mkseq: make sure that strvec_create isn't called with a size argument - greater than INT_MAX, since it only takes an int - - 6/6 - --- -braces.c - - mkseq: try and be smarter about not overallocating elements in - the return array if the increment is not 1 or -1 - - 6/7 - --- -parse.y - - history_delimiting_chars: if the parser says we're in the middle of - a compound assignment (PST_COMPASSIGN), just return a space to avoid - adding a stray semicolon to the history entry. Fixes bug reported - by "Davide Brini" - - 6/8 - --- -bashline.c - - bash_directory_completion_hook: don't attempt spelling correction - on the directory name unless the direxpand option is set and we are - going to replace the directory name with the corrected one in the - readline line. Suggested by Linda Walsh - -lib/sh/shquote.c - - sh_backslash_quote: now takes a third argument: flags. If non-zero, - tildes are not backslash-escaped. Have to handle both printf %q, - where they should be escaped, and filename completion, where they - should not when used as usernames - -externs.h - - sh_backslash_quote: declaration now takes a third argument - -builtins/printf.def - - printf_builtin: call sh_backslash_quote with 1 as third argument - so tildes get escaped - -{bashline,bracecomp}.c - - call sh_backslash_quote with 0 as third argument so tildes are not - escaped in completed words - -doc/bash.1 - - add `coproc' to the list of reserved words. From a report by - Jens Schweikhardt - - 6/10 - ---- -execute_cmd.c - - line_number_for_err_trap: now global, so parse_and_execute can save - and restore it with unwind-protect - -builtins/evalstring.c - - parse_prologue: save and restore line_number_for_err_trap along - with line_number - - restore_lastcom: new function, unwind-protect to restore - the_printed_command_except_trap - - parse_prologue: use restore_lastcom to save and restore the value - of the_printed_command_except_trap around calls to parse_and_execute - (eval/source/.) - - 6/15 - ---- -lib/readline/complete.c - - complete_fncmp: change filename comparison code to understand - multibyte characters, even when doing case-sensitive or case-mapping - comparisons. Fixes problem reported by Nikolay Shirokovskiy - - - 6/20 - ---- -builtins/mapfile.def - - mapfile: move the line count increment and check for having read - the specified number of lines to the end of the loop to avoid - reading an additional line with zgetline. Fixes bug reported by - Dan Douglas - - 6/21 - ---- - -execute_cmd.c - - execute_pipeline: make sure `lastpipe_flag' is initialized to 0 on - all systems, since it's tested later in the function. Fixes bug - reported by John E. Malmberg - - 6/22 - ---- -mailcheck.c - - file_mod_date_changed: return 0 right away if mailstat() does not - return success. Fixes bug with using uninitialized values reported - by szymon.kalasz@uj.edu.pl - -builtins/set.def - - the `monitor' option is not available when the shell is compiled - without job control, since the underlying `m' flag is not available - -nojobs.c - - job_control: now declared as int variable, initialized to 0, never - modified - -jobs.h - - job_control: extern declaration no longer dependent on JOB_CONTROL - -execute_cmd.c - - execute_pipeline: made necessary changes so `lastpipe' shell option - is now available in all shells, even those compiled without - JOB_CONTROL defined - - 6/23 - ---- -lib/glob/glob.c - - glob_filename: check for interrupts before returning if glob_vector - returns NULL or an error. Bug reported by Serge van den Boom - , fix from Andreas Schwab - - call run_pending_traps after each call to QUIT or test of - interrupt_state, like we do in mainline shell code - - glob_vector: don't call QUIT; in `if (lose)' code block; just free - memory, return NULL, and let callers deal with interrupt_state or - other signals and traps - - 6/25 - ---- -lib/readline/input.c - - rl_read_key: restructure the loop that calls the event hook a little, - so that the hook is called only after rl_gather_tyi returns no input, - and any pending input is returned first. This results in better - efficiency for processing pending input without calling the hook - on every input character as bash-4.1 did. From a report from - Max Horn - - 6/26 - ---- -trap.c - - signal_is_pending: return TRUE if SIG argument has been received and - a trap is waiting to execute - -trap.h - - signal_is_pending: extern declaration - -lib/glob/glob.c - - glob_vector: check for pending SIGINT trap each time through the loop, - just like we check for interrupt_state or terminating_signal, and - set `lose = 1' so we clean up after ourselves and interrupt the - operation before running the trap. This may require a change later, - maybe call run_pending_traps and do that if run_pending_traps returns? - -variables.c - - sv_histtimefmt: set history_comment_character to default (`#') if - it's 0 when we're turning on history timestamps. The history code - uses the history comment character to prefix timestamps, and - leaving it at 0 effectively removes them from the history. From a - report to help-bash by Dennis Williamson - - 6/27 - ---- -lib/readline/signals.c - - rl_maybe_restore_sighandler: new function, sets handler for SIG to - HANDLER->sa_handler only if it's not SIG_IGN. Needs to be called - on same signals set using rl_maybe_set_sighandler, which does not - override an existing SIG_IGN handler (SIGALRM is ok since it does - the check inline; doesn't mess with SIGWINCH) - - 6/30 - ---- -variables.h - - additional defines for the new `nameref' variable attribute - (att_nameref): nameref_p, nameref_cell, var_setref - -variables.c - - find_variable_nameref: resolve SHELL_VAR V through chain of namerefs - - find_variable_last_nameref: resolve variable NAME until last in a - chain of possibly more than one nameref starting at shell_variables - - find_global_variable_last_nameref: resolve variable NAME until last - in a chain of possibly more than one nameref starting at - global_variables - - find_nameref_at_context: resolve SHELL_VAR V through chain of namerefs - in a specific variable context (usually a local variable hash table) - - find_variable_nameref_context: resolve SHELL_VAR V through chain of - namerefs following a chain of varible contexts - - find_variable_last_nameref_context: resolve SHELL_VAR V as in - find_variable_last_context, but return the final nameref instead of - what the final nameref resolves to - - find_variable_tempenv, find_variable_notempenv, find_global_variable, - find_shell_variable, find_variable: modified to follow namerefs - - find_global_variable_noref: look up a global variable without following - any namerefs - - find_variable_noref: look up a shell variable without following any - namerefs - - bind_variable_internal: modify to follow a chain of namerefs in the - global variables table; change to handle assignments to a nameref by - following nameref chain - - bind_variable: modify to follow chain of namerefs when binding to a - local variable - - unbind_variable: changes to unset nameref variables (unsets both - nameref and variable it resolves to) - -subst.c - - parameter_brace_expand_word: change to handle expanding nameref whose - value is x[n] - - parameter_brace_expand_indir: change to expand in ksh93-compatible - way if variable to be indirected is nameref and a simple (non-array) - expansion - - param_expand: change to expand $foo where foo is a nameref whose value - is x[n] - -execute_cmd.c - - execute_for_command: changes to implement ksh93 semantics when index - variable is a nameref - -builtins/setattr.def - - show_var_attributes: change to add `n' to flags list if att_nameref - is set - -builtins/set.def - - unset_builtin: changes to error messages to follow nameref variables - -builtins/declare.def - - document new -n option - - declare_internal: new `-n' and `+n' options - - declare_internal: handle declare -n var[=value] and - declare +n var[=value] for existing and non-existant variables. - Enforce restriction that nameref variables cannot be arrays. - Implement semi-peculiar ksh93 semantics for typeset +n ref=value - - 7/5 - --- -variables.c - - unbind_variable: unset whatever a nameref resolves to, leaving the - nameref variable itself alone - - unbind_nameref: new function, unsets a nameref variable, not the - variable it references - -variables.h - - unbind_nameref: extern declaration - -builtins/set.def - - unset_builtin: modify to add -n option, which calls unbind_nameref - leaving unbind_variable for the usual case. This required slight - changes and additions to the test suite - -doc/{bash.1,bashref.texi} - - document namerefs and typeset/declare/local/unset -n - - 7/13 - ---- -lib/sh/casemod.c - - include shmbchar.h for is_basic and supporting pieces - - sh_casemod: use _to_wupper and _to_wlower to convert wide character - case instead of TOUPPER and TOLOWER. Fixes bug reported by - Dennis Williamson , fix from - Andreas Schwab - - cval: short-circuit and return ascii value if is_basic tests true - - sh_casemod: short-circuit and use non-multibyte case modification - and toggling code if is_basic tests true - -lib/readline/signals.c - - _rl_{block,release}_sigint: remove the code that actually blocks and - releases the signals, since we defer signal handling until calls to - RL_CHECK_SIGNALS() - -lib/readline/{callback,readline,util}.c - - if HAVE_POSIX_SIGSETJMP is defined, use sigsetjmp/siglongjmp without - saving and restoring the signal mask instead of setjmp/longjmp - -lib/readline/rltty.c - - prepare_terminal_settings: don't mess with IXOFF setting if - USE_XON_XOFF defined - -doc/{bash.1,bashref.texi} - - add some text to the description of set -e clarifying its effect - on shell functions and shell function execution. Suggested by - Rainer Blome - -bashline.c - - edit_and_execute_command: increment current_command_line_count before - adding partial line to command history (for command-oriented-history - because of rl_newline at beginning of function), then reset it to 0 - before adding the dummy history entry to make sure the dummy entry - doesn't get added to previous incomplete command. Partial fix for - problem reported by Peng Yu - - 7/24 - ---- -configure.in - - interix: define RECYCLES_PIDS. Based on a report from Michael - Haubenwallner - - 7/26 - ---- -jobs.c - - make_child: call bgp_delete on the newly-created pid unconditionally. - Some systems reuse pids before cycling through an entire set of - CHILD_MAX/_SC_CHILD_MAX unique pids. This is no longer dependent - on RECYCLES_PIDS. Based on a report from Michael Haubenwallner - - -support/shobj-conf - - Mac OS X: drop MACOSX_DEPLOYMENT_TARGET=10.3 from the LDFLAGS. We - can finally kill Panther - - 7/28 - ---- -subst.c - - command_substitute: make sure last_made_pid gets reset if make_child - fails - -execute_cmd.c - - execute_command_internal: case cm_simple: decide whether or not to - wait_for a child if already_making_children is non-zero, indicates - that there is an unwaited-for child. More of fix for bug report - from Michael Haubenwallner - -jobs.c - - make_child: call delete_old_job (new_pid) unconditionally, don't - bother to check whether or not pid wrap occurred. Rest of fix for - bug report from Michael Haubenwallner - - - 7/29 - ---- -shell.c - - subshell_exit: new function, exits the shell (via call to sh_exit()) - after calling any defined exit trap - -externs.h - - subshell_exit: new extern declaration - -execute_cmd.c - - execute_command_internal: make sure to call subshell_exit for - {} group commands executed asynchronously (&). Part of fix for - EXIT trap bug reported by Maarten Billemont - -sig.c - - reset_terminating_signals: make sure to set termsigs_initialized back - to 0, so a subsequent call to initialize_terminating_signals works - right. Rest of fix for bug reported by Maarten Billemont - - -{execute_cmd,general,jobs,mailcheck,mksyntax,test}.c -builtins/{cd,fc,pushd,ulimit}.def -lib/malloc/getpagesize.h -lib/sh/{clktck,fpurge,inet_aton,mailstat,oslib,pathcanon,pathphys,spell,strerror}.c - - make inclusion of dependent on HAVE_SYS_PARAM_H - consistently - - 8/6 - --- -lib/readline/histexpand.c - - history_expand_internal: now takes an additional argument saying - whether the history expansion occurs within a quoted string, set to - the open quote character - - history_expand_internal: use new argument instead of checking prev - char and initializing quoted_search_delimiter, pass qc directly to - get_history_event, where it allows a matching quote to terminate a - string defining an event - - history_expand: change single-quote handling code so that if - history_quotes_inhibit_expansion is 0, single quotes are treated - like double quotes - - history_expand: change call to history_expand_internal to pass new - argument of `"' if double-quoted string, `'' if single-quoted string; - this lets history_expand decide what is a quoted string and what - is not - - 8/7 - --- -configure.in - - AC_CANONICAL_BUILD: invoke for later use - -lib/readline/macro.c - - _rl_prev_macro_key: new function, inverse of _rl_next_macro_key: - backs up the index into the current macro by 1 - -lib/readline/rlprivate.h - - _rl_prev_macro_key: extern declaration - - -lib/readline/readline.c - - _rl_dispatch_subseq, _rl_subseq_result: don't call _rl_unget_char - if we're currently reading from a macro; call _rl_prev_macro_key - instead. Fixes bug reported by Clark Wang - - 8/13 - ---- -builtins/evalstring.c - - evalstring(): new function, wrapper around parse_and_execute. - make sure we handle cases where parse_and_execute can call `return' - and short-circuit without cleaning up properly. We call - parse_and_execute_cleanup() then jump to the previous-saved return - location - -builtins/common.h - - extern declaration for evalstring() - -builtins/eval.def - - eval_builtin: make sure we handle `eval " ... return"' in contexts - where `return' is valid by calling evalstring(). Fixes bug with - `eval return' in sourced files reported by Clark Wang - - -trap.c - - run_pending_traps: call evalstring instead of parse_and_execute. - XXX - still needs to handle saving and restoring token state in the - presence of `return'; could use unwind_protects for that - -builtins/mapfile.def - - run_callback: call evalstring instead of parse_and_execute - - 8/15 - ---- -bashline.c - - bash_filename_stat_hook: make sure we don't free local_dirname - before using it to canonicalize any expanded filename. Make sure - it always points to *dirname and only free it if we're replacing - it. - -lib/readline/complete.c - - append_to_match: make sure we call rl_filename_stat_hook with - newly-allocated memory to avoid problems with freeing it twice - - 8/17 - ---- -variables.c,config-top.h - - if ARRAY_EXPORT is defined to 1 when variables.c is compiled, the - code that allows indexed arrays to be exported is enabled and - included - - 8/19 - ---- -shell.c - - call start_debugger from main() only if dollar_vars[1] != 0 (close - enough to a non-interactive shell, since we can be interactive with - -i while running a shell script). Fixes oddity reported by - Techlive Zheng - - 8/20 - ---- -arrayfunc.c - - quote_array_assignment_chars: don't bother quoting if the word has - not been marked as an assignment (W_ASSIGNMENT) - - quote_array_assignment_chars: turn on W_NOGLOB in the word flags - so assignment statements don't undergo globbing. Partial fix for - problems reported by Dan Douglas - - 8/21 - ---- -command.h - - W_NOBRACE: new word flag that means to inhibit brace expansion - -subst.c - - brace_expand_word_list: suppress brace expansion for words with - W_NOBRACE flag - - 8/22 - ---- -builtins/read.def - - read_builtin: don't call dequote_string on what we've read, even if - we saw an escape character, unless (input_string && *input_string). - We may have escaped an IFS whitespace character. Fixes seg fault - reported by - -execute_cmd.c - - execute_command_internal: set the_printed_command_except trap when - about to execute a ( ... ) user subshell. For now, set it only if - ERR is trapped; can relax that later. Fixes bug reported by - Mike Frysinger - - 8/23 - ---- -jobs.c - - remove references to first_pid and pid_wrap, since we're not using - them for anything anymore - - 8/24 - ---- -subst.c - - changes for W_NOBRACE everywhere appropriate: so it can be displayed - for debugging, and passed out of expand_word_internal - -doc/{bash.1,bashref.texi} - - small changes to make it clearer that the = and == operators are - equivalent, and will cause pattern matching when used with [[. - From a question from Michal Soltys - -doc/bashref.texi - - some small formatting changes from Karl Berry - - 8/27 - ---- -lib/readline/doc/{history,rlman,rluserman}.texi - - some small formatting changes from Karl Berry - -arrayfunc.c - - assign_array_element_internal, assign_compound_array_list, - unbind_array_element, array_value_internal: changes to make - assignment statements to negative indices (a[-1]=2) and unsetting - array elements using negative indices (unset 'a[-1]') work. - From suggestions by Dennis Williamson - and Chris F. A. Johnson - -subst.c - - array_length_reference: changes to make length references to array - elements using negative indices (${#a[-1]}) work - - 8/28 - ---- -doc/{bash.1,bashref.texi} - - document new treatment of negative indices to indexed arrays when - assigning, referencing, calculating length, and unsetting - - 8/29 - ---- -shell.c - - show_shell_usage: add -l to list of shell invocation options (short - for --login). From Red Hat bug 852469 - -configure.ac - - renamed from configure.in, as latest autoconf versions want. Patches - Stefano Lattarini - -MANIFEST,Makefile.in,doc/bashref.texi,support/mkconffiles - - configure.in -> configure.ac - - 9/1 - --- - -parse.y - - read_token_word: allow words like {array[ind]} to be valid redirection - words for constructs like {x} - -lib/readline/display.c - - update_line: if the first difference between the old and new lines - is completely before any invisible characters in the prompt, we - should not adjust _rl_last_c_pos, since it's before any invisible - characters. Fixed in two places - - prompt_modechar: return a character indicating the editing mode: - emacs (@), vi command (:), or vi insert (+) - - _rl_reset_prompt: new function, just calls rl_expand_prompt. Will be - inlined, placeholder for more changes - - expand_prompt: if show-mode-in-prompt is enabled, add a character to - the front of the prompt indicating the editing mode, adjusting the - various variables as appropriate to keep track of the number of - visible characters and number of screen positions - -lib/readline/bind.c - - show-mode-in-prompt: new bindable boolean variable, shadowed by - _rl_show_mode_in_prompt variable - - hack_special_boolean_var: call _rl_reset_prompt when toggling or - setting show-mode-in-prompt - -lib/readline/readline.c - - readline_internal_setup: make sure the correct vi mode keymap is set - before expanding the prompt string for the first time - -lib/readline/misc.c - - rl_emacs_editing_mode: make sure to call _rl_reset_prompt if we're - showing the editing mode in the prompt - -lib/readline/rlprivate.h - - _rl_reset_prompt, _rl_show_mode_in_prompt: extern declarations - -lib/readline/vi_mode.c - - rl_vi_insertion_mode: call _rl_reset_prompt - - rl_vi_movement_mode: call _rl_reset_prompt. Finishes changes for - showing mode in prompt string, originally requested by Miroslav - Koskar and most recently by Jordan Michael - Ziegler - -doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} - - document new show-mode-in-prompt variable, off by default - - 9/3 - --- - -jobs.c - - set_childmax: new function, external mechanism for other parts of - the shell to set js.c_childmax, the number of saved exited child - statuses to remember -jobs.h - - set_childmax: extern declaration - -variables.c - - CHILD_MAX: new special variable, with sv_childmax function to - run when it changes. Setting CHILD_MAX to a value greater than - zero but less than some maximum (currently 8192) sets the number of - exited child statuses to remember. set_childmax (jobs.c) ensures - that the number does not drop below the posix-mandated minimum - (CHILD_MAX) - -doc/{bash.1,bashref.texi} - - CHILD_MAX: document new meaning and action when variable is set - - 9/5 - --- -redir.c - - redir_varassign: call stupidly_hack_special_variables after - assigning fd number to specified variable, so we can use constructs - like {BASH_XTRACEFD}>foo. Suggested by Pierre Gaston - - - 9/8 - --- -expr.c - - readtok: invalidate previous contents of `curlval' before freeing - and reallocating tokstr (which, chances are, will get the same - pointer as before and render curlval inconsistent). Fixes other - bug reported by Dan Douglas - - 9/9 - --- -lib/readline/complete.c - - rl_username_completion_function: protect call to setpwent() with - #ifdef (HAVE_GETPWENT)/#endif. Fixes bug reported by - Gerd Hofmann - -lib/readline/display.c - - rl_message: second and subsequent calls to rl_message can result in - local_prompt being overwritten with new values (e.g., from the - successive calls displaying the incremental search string). Need - to free before overwriting if it's not the same as the value saved - in saved_local_prompt. Fixes memory leak reported by - Wouter Vermaelen - -lib/readline/{terminal.c,rlprivate.h} - - move CUSTOM_REDISPLAY_FUNC and CUSTOM_INPUT_FUNC defines from - terminal.c to rlprivate.h so other files can use them - -expr.c - - expr_streval: if noeval is non-zero, just return 0 right away, - short-circuiting evaluation completely. readtok will leave curtok - set correctly without re-entering the evaluator at all. Rest of - fix for bug reported by Dan Douglas - - 9/11 - ---- - -parse.y - - parse_comsub: make sure the `reserved word ok in this context' flag - is preserved after we read `do' followed by whitespace. Fixes bug - reported by Benoit Vaugon - - 9/13 - ---- -configure.ac,config.h.in - - enable-direxpand-default: new configure option, turns the `direxpand' - shell option on by default - -bashline.c - - dircomplete_expand, dircomplete_expand_relpath: initialize to 1 if - DIRCOMPLETE_EXPAND_DEFAULT is defined and non-zero - -doc/bashref.texi - - enable-direxpand-default: document new configure option - - 9/14 - ---- -shell.c - - --protected: make option valid only when wordexp is compiled into - the shell. Fix from Roman Rakus - -configure.ac - - HP NonStop (*-nsk*): compile --without-bash-malloc. Change from - Joachim Schmitz - - 9/16 - ---- -subst.c,execute_cmd.c,lib/glob/sm_loop.c,lib/sh/shquote.c - - minor code cleanups from Joachim Schmitz - -lib/readline/colors.h - - workaround for HP NonStop compiler issue with from - Joachim Schmitz - - 9/17 - ---- -builtins/printf.def - - printf_builtin: handle localtime returning NULL, as can happen when - encountering overflow. Bug report and initial fix from - Eduardo A. Bustamante López - -doc/{bash.1,bashref.texi} - - emphasize that brace expansion using character ranges ({a..c}) acts - as if the C locale were in use. Prompted by message from - Marcel Giannelia - - 9/20 - ---- -lib/sh/wcsnwidth.c - - wcsnwidth: new function, variant of wcwidth, returns the number of - wide characters from a string that will be displayed to not exceed - a specified max column position - - 9/21 - ---- -builtins/help.def - - show_builtin_command_help: break code that displays the short-doc - for each builtin in two columns into a new function: dispcolumn - - wdispcolumn: multibyte-char version of dispcolumn; uses wide - chars and printf "%ls" format. Fixes problem reported by - Nguyá»n Thái Ngá»c Duy - - 9/22 - ---- -execute_cmd.c - - execute_disk_command: before running the command-not-found hook, - call kill_current_pipeline() to make sure we don't add processes - to an existing pipeline or wait for processes erroneously - - 9/23 - ---- -lib/readline/input.c - - rl_input_available_hook: new hook function, called from - _rl_input_available (or _rl_input_queued) to return whether or not - input is available wherever the input source is - -lib/readline/doc/rltech.texi - - rl_input_available_hook: document - - 9/27 - ---- -lib/glob/sm_loop.c: - - GMATCH: after one or more `*', an instance of ?(x) can match zero or - 1 times (unlike ?, which has to match one character). The old code - failed if it didn't match at least once. Fixes `a*?(x)' bug. - - GMATCH: if we hit the end of the search string, but not the end of - the pattern, and the rest of the pattern is something that can - match the NUL at the end of the search string, we should successfully - match. Fixes `a*!(x)' bug reported by - - 10/2 - ---- -command.h - - add c_lock member to coproc structure for future use to tell who is - manipulating it - -execute_cmd.c - - execute_coproc: block SIGCHLD while parent is forking coproc - process and adding pid to sh_coproc struct to avoid race condition - where child is reaped before the pid is assigned and the coproc is - never marked as having died. Fixes race condition identified by - Davide Baldini - - add assignments to c_lock member of struct coproc in various - functions that manipulate it; was used to identify race condition - - coproc_pidchk: don't call coproc_dispose to avoid using malloc and - other functions in a signal handler context - - coproc_dispose: call BLOCK_SIGNAL/UNBLOCK_SIGNAL for SIGCHLD while - manipulating the sh_coproc struct - - 10/6 - ---- -lib/readline/complete.c - - rl_display_match_list: if printing completions horizontally, don't - bother with spacing calculations if limit == 1, which means we are - printing one completion per line no matter what. Fixes bug - reported by David Kaasen - - 10/7 - ---- -builtins/declare.def - - declare_internal: add error checking for nameref attribute and - variable assignments: self-references, attempts to make an array - variable a nameref - -subst.c - - parameter_brace_expand: handle parameter_brace_expand_word returning - &expand_param_fatal or &expand_param_error and return the appropriate - error value - - parameter_brace_expand_word: if a nameref variable's value is not a - valid identifier, return an error - - param_expand: if a nameref variable's value is not a valid identifier, - return an error - -test.c - - unary_operator: add new -R variable, returns true if variable is set - and has the nameref attribute. From ksh93 - -builtins/test.def - - add -R to description of conditional commands for help test - -doc/{bash.1,bashref.texi} - - document new -R unary conditional operator - - 10/13 - ----- -trap.c - - check_signals_and_traps: new function, convenience function for the - rest of the shell to check for pending terminating and interrupt - signals, and to check for and process any pending traps - - any_signals_trapped: new function, returns non-zero if any signals - are trapped and -1 if not - -trap.h - - extern declaration for check_signals_and_traps - -bashline.c - - bashline_reset: make sure we reset the event hook - - bash_event_hook: call check_signals_and_traps instead of just - checking for terminating signals so we can run pending traps and - react to interrupts, and reset the event hook when we're done - - - 10/14 - ----- -trap.c - - trap_handler: if executing in a readline signal handler context, - call bashline_set_event_hook to install bash_event_hook to process - the signal (if bash cares about it) - -sig.c - - sigint_sighandler: call bashline_set_event_hook to set the event - hook if we're executing in a readline signal handler context - -lib/readline/input.c - - rl_getc: call RL_CHECK_SIGNALS if read returns -1/EINTR and the caught - signal is SIGINT or SIGQUIT rather than waiting until the next time - around the loop - - rl_getc: call rl_event_hook after calling RL_CHECK_SIGNALS to allow - an application signal handler to set the event hook in its own - signal handler (e.g., like bash trap_handler or sigint_sighandler) - - -parse.y - - yy_readline_get: don't set interrupt_immediately before we call - readline(). Inspired by report from lanshun zhou - - -input.c - - getc_with_restart: add call to run_pending_traps after call to - CHECK_TERMSIG - -lib/sh/zread.c - - zread: call check_signals_and_traps if read() returns -1/EINTR - instead of just ignoring the EINTR and deferring handling any - signal that generated it - -builtins/mapfile.def - - mapfile: don't set interrupt_immediately before calling zgetline() - (which uses zread internally) - -builtins/read.def - - read_builtin: don't set interrupt_immediately before calling zread - (moved code around so that it was only being set right around calls - to zread to avoid signal handler conflicts). Inspired by report - from lanshun zhou - - edit_line: don't set interrupt_immediately around call to readline() - - include shmbutil.h - - read_builtin: don't call read_mbchar unless is_basic(c) returns - false for the character we just read - - 10/15 - ----- -sig.c - - throw_to_top_level: if interrupt_state is non-zero, make sure that - last_command_exit_value reflects 128+SIGINT if it's not already - greater than 128 - - 10/20 - ----- -builtins/wait.def - - WAIT_RETURN: set wait_signal_received back to 0 for the potential - next call to wait - -quit.h - - CHECK_WAIT_INTR: macro to check whether trap_handler handled a - signal and set wait_signal_received; longjmp to wait_intr_buf in - that case - -jobs.c - - wait_for, waitchld: call CHECK_WAIT_INTR at the same places we call - CHECK_TERMSIG to check for terminating signals - - wait_sigint_handler: don't longjmp out of the wait builtin unless - interrupt_immediately is set; otherwise just SIGRETURN from the - handler - - wait_sigint_handler: if interrupt_immediately not set, but we are - executing in the wait builtin and SIGINT is not trapped, treat it - as a `normally received' SIGINT: restore the signal handler and - send SIGINT to ourselves - - waitchld: when in posix mode and running SIGCHLD traps, don't longjmp - to wait_intr_buf (and let wait be interrupted) if we're running from - a signal handler. Wait for CHECK_WAIT_INTR to do the longjmp. - run_pending_traps will run the SIGCHLD trap later - -nojobs.c - - reap_zombie_children, wait_for_single_pid, wait_for: call - CHECK_WAIT_INTR where we call CHECK_TERMSIG - - wait_sigint_handler: don't longjmp out of the wait builtin unless - interrupt_immediately is set; otherwise just SIGRETURN from the - handler - -trap.c - - trap_handler: make sure wait_signal_received is set if the wait - builtin is executing, and only longjmp if interrupt_immediately is - set. This whole set of fixes was prompted by report from - lanshun zhou - - 10/24 - ----- -lib/glob/glob.c - - glob_filename: only check directory_name for globbing chars if - it's of non-zero length - -lib/sh/strchrnul.c - - new simpler implementation - -subst.c - - command_substitute: call set_shellopts after turning off errexit - in subshells so it's reflected in $SHELLOPTS - - 11/7 - ---- -builtins/evalstring.c - - parse_and_execute: treat ERREXIT case like reader_loop does: set - variable_context to 0 before longjmping back to top_level. Don't - run the unwind-protect context to avoid side effects from popping - function contexts. Part of fix for problem reported by Nikolai - Kondrashov - -execute_cmd.c - - execute_simple_command: call unlink_fifo_list only if this is the - last element of a pipeline (or not in a pipeline), rather than for - every child. Fixes difference in behavior between /dev/fd and - FIFOs reported by Zev Weiss - - execute_null_command: do the same thing in the parent branch after - make_child - - 11/14 - ----- -subst.c - - parameter_brace_expand: a variable is null if it's special ($@, $*), - the expansion occurs within double quotes, and the expansion turns - into a quoted null. Fixes debian bug 692447 reported by - Matrosov Dmitriy - -jobs.c - - run_sigchld_trap: make sure `running_trap' sentinel is set - appropriately - - waitchld: only run the sigchld trap if we're not in a signal - handler, not running a trap, and executing the wait builtin. - Otherwise, queue for later handling. We still run one instance - of the trap handler per exited child. Bulk of fix for bug - reported by Elliott Forney - -trap.c - - queue_sigchld_trap: set catch_flag so run_pending_traps notices, - and set trapped_signal_received for completeness. Rest of fix - for bug reported by Elliott Forney - -lib/malloc/malloc.c - - block_signals: renamed to _malloc_block_signals, made public - - unblock_signals: renamed to _malloc_unblock_signals, made public - -lib/malloc/imalloc.h - - extern declarations for _malloc_{un,}block_signals - -lib/malloc/table.c - - mregister_alloc, mregister_free: block signals around table - manipulation - - 11/15 - ----- -trap.c - - run_pending_traps: set SIG_INPROGRESS flag around calls to - run_sigchld_handler so other parts of the shell know that the - SIGCHLD trap handler is executing - - run_pending_traps: if we get a situation where we are looking at - running a SIGCHLD trap but the trap string is IMPOSSIBLE_TRAP_HANDLER - and the SIG_INPROGRESS flag is set, just skip it. This is possible - if run_pending_traps is called from a SIGCHLD trap handler run by - run_sigchld_trap - -doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} - - corrected description of the effect of `set history-size 0'. Report - from Vesa-Matti J Kari - -include/stdc.h - - CPP_STRING: new define, replaces __STRING - -lib/malloc/{malloc.c,imalloc.h} - - replace __STRING with CPP_STRING - - 11/16 - ----- -lib/readline/bind.c - - sv_histsize: if argument evaluates to a value < 0, unstifle the - history - - 11/22 - ----- -redir.c - - do_redirection_internal: if we have REDIR_VARASSIGN set in the - redirection flags and we set up `redirector' using fcntl or dup2, - don't add a redirect to make sure it stays open. Let the - script programmer manage the file handle. Fixes bug reported by - Sam Liddicott - - 11/24 - ----- -jobs.c - - wait_for_any_job: new function, waits for an unspecified background - job to exit and returns its exit status. Returns -1 on no background - jobs or no children or other errors. Calls wait_for with new - sentinel value ANY_PID - - wait_for: changes to handle argument of ANY_PID: don't look up or - try to modify the child struct, only go through the wait loop once. - Return -1 if waitpid returns no children - -jobs.h - - ANY_PID: new define - -builtins/wait.def - - new option: -n. Means to wait for the next job and return its exit - status. Returns 127 if there are no background jobs (or no - children). Feature most recently requested by Elliott Forney - - -doc/{bash.1,bashref.texi} - - document new `wait -n' option - -execute_cmd.c - - execute_command_internal: save make_command_string () result in a - temp variable before calling savestring() on it; avoids evaluating - make_command_string() result twice. Fix from John E. Malmberg - - - 11/28 - ----- - -builtins/declare.def - - declare_internal: if an array variable is declared using `declare -a' - or `declare -A', but not assigned a value, set the `invisible' - attribute so the variable does not show up as set. Fix for bug - about variable initialization reported by Tim Friske - -builtins/{mapfile,read}.def - - after calling find_or_make_array_variable, make sure the invisible - flag is turned off, in case the variable was declared previously - using `declare -a' or `declare -A'. Side effect of above change to - declare_internal - -subst.c - - shell_expand_word_list: handle the W_ASSNGLOBAL flag and put -g into - the list of options passed to make_internal_declare as appropriate. - Fix for bug reported by Tim Friske - - 11/30 - ----- -test.c - - unary_op: make sure -v and -n check that the variable is not marked - as invisible before calling var_isset. Fix for bug reported by Tim - Friske - - 12/2 - ---- -subst.c - - process_substitute: turn off the `expanding_redir' flag, which - controls whether or not variables.c:find_variable_internal uses the - temporary environment to find variables. We want to use the - temp environment, since we don't have to worry about order of - evaluation in a subshell. Fixes bug reported by Andrey Borzenkov - - - 12/4 - ---- -lib/glob/glob.c - - glob_filename: changes to avoid null filenames and multiple entries - returned for patterns like **/** (globstar enabled). Fixes bug - reported by Ulf Magnusson - - 12/10 - ----- -lib/glob/glob.c - - glob_filename: finish up a series of changes to make globstar-style - globbing more efficient, avoid more duplicate filenames, and be more - compatible with other shells that implement it - o collapse a sequence of **/**/** to one ** - o note when the directory name is all ** or ends in ** so we - can treat it specially when the filename is ** - All inspired by report from Andrey Borzenkov - -lib/sh/zread.c - - zreadn: new function, like zread, but takes an additional argument - saying how many bytes to read into the local buffer. Can be used to - implement `read -N' without so many one-byte calls to zreadc. Code - from Mike Frysinger - - 12/12 - ----- -lib/glob/sm_loop.c - - PATSCAN (glob_patscan): if passed string already points to end of - pattern, return NULL immediately. Fixes problem with - extglob_skipname reported by Raphaël Droz - - 12/13 - ----- -execute_cmd.c - - execute_coproc: handle the command's exit status being inverted - (an oversight). Fixes bug reported by DJ Mills - and Andreas Schwab - - 12/14 - ----- -lib/readline/readline.c - - bind_arrow_keys_internal: add MINGW key bindings for Home, End, - Delete, and Insert keys. Fix from Pierre Muller - - -builtins/printf.def - - printf_builtin: '%()T' conversion: if there is no argument supplied, - behave as if -1 had been supplied (current time). ksh93-like feature - suggested by Clark Wang - -doc/{bash.1,bashref.texi} - - document new printf %()T default argument behavior - - 12/15 - ----- -lib/readline/display.c - - displaying_prompt_first_line: new variable, indicates whether or - not the first line of output is displaying the prompt. Always true - in normal mode, sometimes false in horizontal scrolling mode - - rl_redisplay: set displaying_prompt_first_line to true unless we - are in horizontal mode; set to false in horizontal mode if the left - margin of the displayed line is greater than the end of the prompt - string - - rl_redisplay: when in horizontal scroll mode, don't adjust - _rl_last_c_pos by the wrap offset unless the line is displaying - a prompt containing invisible chars - - update line: don't adjust _rl_last_c_pos by the wrap offset unless - the line is displaying a prompt containing invisible chars - - update_line: if shrinking the line by reducing the number of - displayed characters, but we have already moved the cursor to the - beginning of the line where the first difference starts, don't - try to delete characters - -builtins/read.def - - unbuffered_read: set to 2 if invoked as `read -N' - - if unbuffered_read is set to 2, compute the number of chars we - need to read and read that many with zreadn. Posix mode still - uses zreadintr. Code from Mike Frysinger - -doc/{bash.1,bashref.texi} - - read: make it clear that if read times out, it saves any input - read to that point into the variable arguments. Report from - Fiedler Roman - -subst.c - - command_substitute: change direct assignment of exit_immediately_on_error - to use change_flag ('e', FLAG_OFF) instead - -flags.c - - use errexit_flag as the variable modified by changes to the -e - option, reflect those changes to exit_immediately_on_error - -execute_cmd.c - - execute_builtin: new global variable, builtin_ignoring_errexit, set - to 0 by default and set to 1 if eval/source/command executing in a - context where -e should be ignored - - execute_builtin: set exit_immediately_on_error to errextit_flag - after executing eval/source/command in a context where -e should - be ignored - -flags.c - - if builtin_ignoring_errexit is set, changes to errexit_flag are - not reflected in the setting of exit_immediately_on_error. Fixes - bug reported by Robert Schiele - - 12/23 - ----- -include/posixjmp.h - - setjmp_nosigs: new define, call setjmp in such a way that it will - not manipulate the signal mask - -{expr,test,trap}.c - - setjmp_nosigs: call instead of setjmp; don't need to manipulate - signal mask - -builtins/read.def - - read_builtin: setjmp_nosigs: call instead of setjmp; don't need - to manipulate signal mask - -builtins/evalstring.c: - - parse_and_execute: setjmp_nosigs: call instead of setjmp; don't need - to manipulate signal mask - - parse_string: setjmp_nosigs: call instead of setjmp; don't need - to manipulate signal mask - - parse_and_execute: save and restore the signal mask if we get a - longjmp that doesn't cause us to return or exit (case DISCARD) - - 12/24 - ----- -general.c - - bash_tilde_expand: only set interrupt_immediately if there are no - signals trapped; we want to jump to top level if interrupted but - not run any trap commands - - 12/25 - ----- -jobs.c - - run_sigchld_trap: no longer set interrupt_immediately before calling - parse_and_execute, even if this is no longer run in a signal handler - context - -input.c - - getc_with_restart: add call to QUIT instead of CHECK_TERMSIG - -parse.y - - yy_stream_get: now that getc_with_restart calls QUIT, don't need to - set interrupt_immediately (already had call to run_pending_traps) - -execute_cmd.c - - execute_subshell_builtin_or_function,execute_function,execute_in_subshell: - setjmp_nosigs: call instead of setjmp when saving return_catch; don't - need to manipulate signal mask - - execute_subshell_builtin_or_function,execute_in_subshell: - setjmp_nosigs: call instead of setjmp where appropriate when saving - top_level; don't need to manipulate signal mask if we're going to - exit right away - -subst.c - - command_substitute: setjmp_nosigs: call instead of setjmp when saving - return_catch; don't need to manipulate signal mask - - command_substitute: setjmp_nosigs: call instead of setjmp where - appropriate when saving top_level; don't need to manipulate signal - mask if we're going to exit right away - -trap.c - - run_exit_trap: setjmp_nosigs: call instead of setjmp when saving - return_catch; don't need to manipulate signal mask - - run_exit_trap: setjmp_nosigs: call instead of setjmp where - appropriate when saving top_level; don't need to manipulate signal - mask if we're going to exit right away - - _run_trap_internal: setjmp_nosigs: call instead of setjmp when saving - return_catch; don't need to manipulate signal mask - -builtins/evalfile.c - - _evalfile: setjmp_nosigs: call instead of setjmp when saving - return_catch; don't need to manipulate signal mask - -builtins/evalstring.c - - evalstring: setjmp_nosigs: call instead of setjmp when saving - return_catch; don't need to manipulate signal mask - -shell.c - - main: setjmp_nosigs: call instead of setjmp where appropriate when - saving top_level; don't need to manipulate signal mask if we're - going to exit right away - - run_one_command: setjmp_nosigs: call instead of setjmp where - appropriate when saving top_level; don't need to manipulate signal - mask if we're going to exit right away - - run_wordexp: setjmp_nosigs: call instead of setjmp where - appropriate when saving top_level; don't need to manipulate signal - mask if we're going to exit right away - -eval.c - - reader_loop: save and restore the signal mask if we get a longjmp - that doesn't cause us to return or exit (case DISCARD) - - 12/26 - ----- -parse.y - - shell_input_line_{index,size,len}: now of type size_t; in some cases - the unsigned property makes a difference - - STRING_SAVER: saved_line_{size,index} now of type size_t - - shell_getc: don't allow shell_input_line to grow larger than SIZE_MAX; - lines longer than that are truncated until read sees a newline; - addresses theoretical buffer overflow described by Paul Eggert - - - set_line_mbstate: size_t changes like shell_getc - - shell_getc: if shell_input_line is larger than 32K, free it and - start over to avoid large memory allocations sticking around - -variables.c - - bind_global_variable: new function, binds value to a variable in - the global shell_variables table - -variables.h - - bind_global_variable: new extern declaration - -builtins/declare.def - - declare_internal: if -g given with name=value, but variable is not - found in the global variable table, make sure to call - bind_global_variable so the variable is created and modified at - global scope. Fixes a bug where declare -g x=y could modify `x' - at a previous function scope - -command.h - - W_ASSIGNARRAY: new word flag, compound indexed array assignment - -subst.h - - ASS_MKGLOBAL: new assignment flag, forcing global assignment even in - a function context, used by declare -g - -execute_cmd.c - - fix_assignment_words: set W_ASSIGNARRAY flag if -a option given to - declaration builtin - -subst.c - - do_assignment_internal: explicitly handle case where we are - executing in a function and we want to create a global array or - assoc variable - - shell_expand_word_list: call make_internal_declare if -a option - given to declaration builtin (W_ASSIGNARRAY); handle -g option with - it (W_ASSNGLOBAL). Fixes inconsistency noticed by Vicente Couce - Diaz , where declare -ag foo=(bar) could modify - array variable foo at previous function scope, not global scope - - 12/27 - ----- -bashline.c - - Minix needs the third argument to tputs to be a void funtion taking - an int argument, not an int-returning function. Fix from - John E. Malmberg as part of VMS bash port - - 12/29 - ----- -configure.ac,version.c,patchlevel.h - - bash-4.3-devel: new version, new shell compatibility level (43) - -subst.c - - parameter_brace_patsub: put the bash-4.2 code back in from the - change of 3/3 that runs the replacement string through quote - removal, make it dependent on shell_compatibility_level <= 42 - -builtins/shopt.def - - compat42: new shopt option - - set_compatibility_level: change logic to set and unset various - compat variables and shell_compatibility_level - -COMPAT - - new documentation for bash-4.3 compatibility changes - -doc/{bash.1,bashref.texi} - - compat42: document new shopt option - -builtins/shopt.def - - set_compatibility_opts: new function, sets the various shopt - compat variables based on the value of shell_compatibility_level - -builtins/common.h - - set_compatibility_opts: new extern declaration - -variables.c - - BASH_COMPAT: new special variable; sets the shell compatibility - level. Accepts values in decimal (4.2) or integer (42) form; - Unsetting variable, setting it to empty string, or setting it to - out-of-range value sets the shell's compatibility level to the - default for the current version. Valid values are 3.1/31 through - the current version - - sv_shcompat: new function implementing logic for BASH_COMPAT - -variables.h - - sv_shcompat: new extern declaration - -doc/{bash.1,bashref.texi} - - BASH_COMPAT: description of new variable - -lib/readline/complete.c - - _rl_colored_stats: default back to 0 for 4.3 release branch - - 1/5/2013 - -------- -quit.h - - remove spurious call to itrace in CHECK_WAIT_INTR - -bashline.c - - bash_event_hook: if we're going to jump to top_level, make sure we - clean up after readline() by calling rl_cleanup_after_signal(). - Fixes bug reported against devel branch by Raphaël Droz - - - bash_event_hook: reset the event hook before checking for signals - or traps in case we longjmp - -doc/{bash.1,bashref.texi} - - small additions to the set -e section to make it more clear that - contexts where -e is ignored extend to compound commands as well - as shell functions - -lib/readline/readline.h - - rl_signal_event_hook: new extern declaration - -lib/readline/input.c - - rl_signal_event_hook: new variable, hook function to call when a - function (currently just read(2)) is interrupted by a signal and - not restarted - - rl_getc: call rl_signal_event_hook instead of rl_event_hook - -lib/readline/doc/rltech.texi - - rl_signal_event_hook: document new function - -bashline.c - - changes to set rl_signal_event_hook instead of rl_event_hook - -lib/readline/readline.h - - change readline version numbers to 6.3 - - 1/6 - --- -doc/{bash.1,bashref.texi} - - a couple of changes to the descriptions of the ERR trap and its - effects based on a message from Rob Nagler - - 1/9 - --- -expr.c - - expassign: invalidate curlval before freeing and NULLing tokstr to - avoid aliasing issues. Fixes bug reported by Eduardo A. Bustamante - López and Dan Douglas - -braces.c - - array_concat: don't be so aggressive in trying to short-circuit. We - can only short-circuit if we have a single-element array where the - element is an empty string (array[0] == "" array[1] = 0x0). Existing - practice requires us to replicate arrays and prefix or append empty - strings. Fixes bug reported by Eduardo A. Bustamante López - - - 1/11 - ---- -execute_cmd.c - - execute_builtin: since mapfile uses evalstring() to run its callbacks - internally, just like eval, so it needs to handle the case where the - temp environment given to mapfile persists throughout the entire - set of callback commands. This might be a problem with trap also, but - trap isn't run in the same way. Fixes bug reported by Dan Douglas - - - 1/13 - ---- -redir.c - - redirection_error: before expanding the redirection word (if - expandable_redirection_filename returns true), disable command - substitution during expansion. Fixes bug reported by Dan Douglas - - -subst.c - - expand_word_internal: case '\\': if the next character is an IFS - character, and the expansion occurs within double quotes, and the - character is not one for which backslash retains its meaning, add - the (escaped) '\' and the (escaped) character. Fixes bug reported - by Dan Douglas - - 1/15 - ---- -builtins/cd.def - - cd_builtin: make sure call to internal_getopt handles -e option. - Fixes bug reported by - - 1/17 - ---- -subst.c - - expand_word_list_internal: make sure tempenv_assign_error is - initialized to 0 - -execute_cmd.c - - execute_simple_command: make sure tempenv_assign_error is reset to 0 - after it's tested to see if an error should force the shell to exit. - Fixes problem where a the failure of a tempenv assignment preceding - a non-special builtin `sticks' and causes the next special builtin - to exit the shell. From a discussion on bug-bash started by - douxin - - 1/20 - ---- -subst.c - - parameter_brace_expand_rhs: call stupidly_hack_special_variables - after assigning with ${param[:]=word} even if IFS is changing. - Suggested by Dan Douglas [TENTATIVE, needs work - on IFS side effects] - -command.h - - W_GLOBEXP (which was unused) is now W_SPLITSPACE (which isn't used - yet) - -{execute_cmd,subst,variables}.c - - removed all code that mentioned W_GLOBEXP - - removed mention of gnu_argv_flags and code that set it - - 1/22 - ---- -subst.c - - param_expand: set W_SPLITSPACE if we expand (unquoted) $* and - IFS is unset or null so we can be sure to split this on spaces - no matter what happens with IFS later - - expand_word_internal: note that param_expand returns W_SPLITSPACE - in the returned word flags and keep track of that state with - `split_on_spaces' - - 1/23 - ---- -subst.c - - expand_word_internal: if split_on_spaces is non-zero, make sure - we split `istring' on spaces and return the resultant word. The - previous expansions should have quoted spaces in the positional - parameters where necessary. Suggested by Dan Douglas - - -execute_cmd.c - - execute_command_internal: make sure any subshell forked to run a - group command or user subshell at the end of a pipeline runs any - EXIT trap it sets. Fixes debian bash bug 698411 - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698411 - -subst.c - - shell_expand_word_list: fix code that creates args for and calls - make_internal_declare to avoid calling it twice (missing `else' - in 12/26 change) - - do_assignment_internal: fix code from 12/26 change to fix problem - where an existing assoc variable could be converted to an array - without checking `mkassoc' - - 1/24 - ---- -builtins/evalfile.c - - _evalfile: add missing `close (fd)' calls before returning to - avoid fd leaks. Bug and fix from Roman Rakus - - 1/25 - ---- -builtins/read.def - - read_builtin: don't try to play tricks with the top of the unwind- - protect stack after read gets a SIGALRM; save input_string to new - memory, run the stack, then restore input_string and assign the - variables. Part of fix for bug reported by konsolebox - ; the rest of the fix is with the changes in - trap and signal handling and doing away with interrupt_immediately - - 1/26 - ---- -redir.c - - redirection_expand, write_here_string, write_here_document: before - calling any of the word expansion functions, after setting - expanding_redir to 1 (which bypasses the temp environment in the - variable lookup functions), call sv_ifs to reset the cached IFS- - related variables set by subst.c:setifs(). This ensures that - redirections will not get any IFS values that are set in the - temporary environment, as Posix specifies. Then, after the word - expansions, after resetting expanding_redir to 0, call sv_ifs - again to make sure the cached IFS values are set from any - assignments in the temporary environment. We force executing_builtin - to 1 to `fool' the variable lookup functions into using any temp - environment, then reset it to its old value after sv_ifs returns. - This is what allows read() to use the (cached) IFS variables set - in the temp environment. Fixes inconsistency reported by Dan Douglas - - - 1/29 - ---- -lib/readline/display.c - - update_line: fix off-by-one error when updating vis_lbreaks array - in a multibyte locale that occurs when moving multibyte chars from - one line down to another. Bug report and fix from Egmont - Koblinger - - 1/30 - ---- -configure.ac - - changed version to 4.3-alpha - -redir.c - - redir_open: handle open returning -1/EINTR, which seems to happen - a lot with FIFOs and SIGCHLD, and call QUIT to handle other - signals that can interrupt open(2). Bug report and initial fix - from Mike Frysinger - - 1/31 - ---- -subst.c - - parameter_brace_expand: make sure to propagate the PF_ASSIGNRHS flag - to parameter_brace_expand_word - - parameter_brace_expand_word: make sure that if the PF_ASSIGNRHS flag - is set and we are expanding ${a[@]} or ${a[*]} we set quoted to - include Q_DOUBLE_QUOTES before calling array_value_internal, mirroring - what we do for $@ and $*. Fixes inconsistency reported by Dan - Douglas - -configure.ac - - use AC_CHECK_TOOL instead of AC_CHECK_PROG to check for ar, since it - will find $host-prefixed versions of utilities. Report and fix from - Mike Frysinger - -builtins/setattr.def - - set_var_attribute: check whether bind_variable (called when the - variable whose attributes are being modified is found in the temp - environment) just modified a read-only global variable, and don't - bother marking the temporary variable for propagation if so. The - propagation is superfluous and will result in a strange error - message - - 2/2 - --- -variables.c - - initialize_shell_variables: don't try to import function definitions - with invalid names from the environment if already in posix mode, - but create them as (invisible) exported variables so they pass - through the environment. Print an error message so user knows - what's wrong. Fixes bug reported by Tomas Trnka - - 2/9 - --- - -builtins/read.def - - sigalrm_seen, alrmbuf: now global so the rest of the shell (trap.c) - can use them - - sigalrm: just sets flag, no longer longjmps to alrmbuf; problem was - longjmp without manipulating signal mask, leaving SIGALRM blocked - -quit.h - - move CHECK_ALRM macro here from builtins/read.def so trap.c: - check_signals() can call it - -trap.c - - check_signals: add call to CHECK_ALRM before QUIT - - check_signals_and_traps: call check_signals() instead of including - CHECK_ALRM and QUIT inline. Integrating check for read builtin's - SIGALRM (where zread call to check_signals_and_traps can see it) - fixes problem reported by Mike Frysinger - - 2/12 - ---- -lib/glob/xmbsrtowcs.c - - xdupmbstowcs2: fixed but where end of string was not handled - correctly, causing loop to go past end of string in a bunch of cases. - Fixes bug reported by "Dashing" - - - 2/13 - ---- -builtins/pushd.def - - popd_builtin: treat any argument that isn't -n or of the form - [-+][[:digit:]]* as an error. Fixes problem reported by Bruce - Korb - - 2/14 - ---- -configure.ac - - add check for sig_atomic_t; already a placeholder for it in - config.h.in - - 2/15 - ---- -subst.c - - do_compound_assignment: don't call assign_compound_array_list with - a NULL variable in case make_local_xxx_variable returns NULL - (it will if you try to shadow a readonly or noassign variable). - Fixes bug reported by Richard Tollerton - - 2/16 - ---- -variables.c - - make_local_variable: print error messager if an attempt is made to - create a local variable shadowing a `noassign' variable. Previously - we just silently refused to do it - -trap.[ch] - - get_original_signal: now global so rest of the shell can use it - -sig.c - - initialize_shell_signals: install a signal handler for SIGTERM - that does nothing except set a sigterm_received flag instead of - ignoring it with SIG_IGN, as long as SIGTERM is not ignored when - the shell is started. Use get_original_signal early to get the - original handler, since we will do that later anyway - - set_signal_handler: if installing sigterm_sighandler as the SIGTERM - handler, make sure to add SA_RESTART flag to make it as close to - SIG_IGN as possible - -sig.h - - sigterm_sighandler: new extern declaration - -quit.h - - RESET_SIGTERM: set sigterm_receved to 0 - - CHECK_SIGTERM: check sigterm_received; if it's non-zero, treat it - as a fatal signal and call termsig_handler to exit the shell - -jobs.c - - make_child: call RESET_SIGTERM just before fork() so we can detect - if the child process received a SIGTERM before it's able to change - the signal handler back to what it was when the shell started - (presumably SIG_DFL). Only has effect if the shell installed - sigterm_sighandler for SIGTERM, interactive shells that were not - started with SIG_IGN as the SIGTERM handler - - make_child: call RESET_SIGTERM in the parent after fork() so the - rest of the shell won't react to it - -execute_cmd.c - - execute_simple_command: call CHECK_SIGTERM after make_child in child - to catch SIGTERM received after fork() and before restoring old - signal handlers - - execute_disk_command: call CHECK_SIGTERM after make_child in child - process after restoring old signal handlers and again just before - calling shell_execve. Fixes race condition observed by - Padraig Brady when testing with his `timeout' - program - -lib/readline/display.c - - open_some_spaces: new function, subset of insert_some_chars that just - opens up a specified number of spaces to be overwritten - - insert_some_spaces: now just calls to open_some_spaces followed by - _rl_output_some_chars - - update_line: use col_temp instead of recalculating it using - _rl_col_width in the case where we use more columns with fewer bytes - - update_line: use open_some_spaces and then output the right number - of chars instead of trying to print new characters then overwrite - existing characters in two separate calls. This includes removing - some dodgy code and making things simpler. Fix from Egmont - Koblinger - - use new variable `bytes_to_insert' instead of overloading temp in - some code blocks (nls - nfd, bytes that comprise the characters - different in the new line from the old) - - 2/18 - ---- -redir.c - - do_redirection_internal: add undoable redirection for the implicit - close performed by the <&n- and >&n- redirections. Fixes bug - reported by Stephane Chazelas - - 2/19 - ---- -sig.c - - termsig_handler: an interactive shell killed by SIGHUP and keeping - command history will try to save the shell history before exiting. - This is an attempt to preserve the save-history-when-the-terminal- - window-is-closed behavior - - 2/21 - ---- -braces.c - - brace_expand: if a sequence expansion fails (e.g. because the - integers overflow), treat that expansion as a simple string, including - the braces, and try to process any remainder of the string. The - remainder may include brace expansions. Derived from SuSE bug - 804551 example (https://bugzilla.novell.com/show_bug.cgi?id=804551) - - 2/23 - ---- -{quit,sig}.h,sig.c - - sigterm_received declaration now in sig.h; type is sig_atomic_t - - sigwinch_received type now sig_atomic_t - - sig.h includes bashtypes.h and if SIG_DFL not defined - (same logic as trap.h) to pick up sig_atomic_t - -unwind_prot.c - - include sig.h before quit.h (reverse order) - - 2/27 - ---- -builtins/shopt.def - - reset_shopt_options: make sure check_window_size is reset to the - default from config.h, not unconditionally to 0 - -jobs.[ch] - - last_made_pid, last_asynchronous_pid: now volatile. Change from SuSE - -jobs.c - - wait_for: if we're using sigaction to install a handler for SIGCHLD, - make sure we specify SA_RESTART - -lib/{tilde,readline}/shell.c - - get_home_dir: instead of looking in the password file every time, - look once and cache the result - -sig.[ch] - - sigwinch_received, sigterm_received: now `volatile' qualified - -sig.c,quit.h - - interrupt_state,terminating_signal: now sig_atomic_t - - 3/1 - --- -MANIFEST,examples/* - - removed around 120 files without FSF copyrights; requested by - Karl Berry in early January - - 3/2 - --- -lib/malloc/malloc.c - - morecore: only check whether SIGCHLD is trapped if SIGCHLD is defined - -doc/bashref.texi - - Fixed most of the examples in the GNU Parallel section to use better - shell idioms following complaints on bug-bash; added a couple of - examples and smoothed out the text - -quit.h - - include "sig.h" for sig_atomic_t - -lib/readline/display.c - - update_line: when inserting one or more characters at the end of - the display line in a non-multibyte environment, just write from the - first difference to the end of the line and return. We don't have - to adjust _rl_last_c_pos. This is needed to adjust from the old - two-part copy to a single call to _rl_output_some_chars (change of - 2/16) - - 3/4 - --- -Makefile.in,doc/Makefile.in - - PACKAGE_TARNAME, docdir: new variables substituted by autoconf - - OTHER_DOCS,OTHER_INSTALLED_DOCS: new variables with auxiliary - documentation files to be installed into $(docdir) - - install: add new rule to install $(OTHER_DOCS) - - uninstall: add new rule to uninstall $(docdir)/$(OTHER_INSTALLED_DOCS) - -doc/bash.1 - - add URL to `POSIX' file in `SEE ALSO' section; put pointer to that - section in --posix and set -o posix descriptions - -examples/ - - removed around 110 examples at the request of the FSF due to copyright - issues - - 3/5 - --- -builtins/setattr.def - - readonly: modified help text slightly to make it clearer that - functions aren't changed or displayed unless the -f option is given. - Report from - - 3/9 - --- -include/typemax.h - - SIZE_MAX: define to 65535 (Posix minimum maximum) if not defined - -parse.y - - include "typemax.h" for possible SIZE_MAX definition, make sure we - include it after shell.h - -{braces,expr}.c - - include "typemax.h" for possible INTMAX_MIN and INTMAX_MAX definitions - - 3/10 - ---- -bashline.c - - bash_default_completion: make sure completion type of `!' (same as - TAB but with show-all-if-ambiguous set) and glob-word-completion - sets rl_filename_completion_desired to 0 so extra backslashes don't - get inserted by `quoting' the completion. We can't kill all the - matches because show-all-if-ambiguous needs them. Bug report from - Marcel (Felix) Giannelia - -[bash-4.3-alpha frozen] - - 3/14 - ---- -general.c - - trim_pathname: use memmove instead of memcpy since the source and - destination pathnames may overlap. Report and fix from Matthew - Riley - - 3/18 - ---- -configure.ac - - socklen_t is defined as `unsigned int' if configure can't find it - - 3/20 - ---- -lib/readline/complete.c - - S_ISVTX: since it's not defined on all platforms (Minix), make sure - its use is protected with #ifdef - - 3/21 - ---- -doc/{bash.1,bashref.texi} - - Added mention of ${!name[@]} and ${!name[*]} expansions to get all - indices of an array. Suggested by Jonathan Leffler - - - 3/24 - ---- -subst.h - - SD_IGNOREQUOTE: new define for skip_to_delim; if set, means that - single quotes (for now) will be treated as ordinary characters - -subst.c - - skip_to_delim: handle SD_IGNOREQUOTE. no callers use it for now - - 3/25 - ---- -support/config.{guess,sub} - - updated to versions from autoconf-2.69 - - 3/31 - ---- -lib/sh/shquote.c - - sh_single_quote: short-circuit quoting a single "'" instead of - creating a long string with empty single-quoted strings - -parser.h - - DOLBRACE_QUOTE2: new define, like DOLBRACE_QUOTE, but need to single- - quote results of $'...' expansion because quote removal will be - done later. Right now this is only done for ${word/pat/rep} - -parse.y - - parse_matched_pair: set state to DOLBRACE_QUOTE2 for pattern - substitution word expansion so we don't treat single quote specially - in the pattern or replacement string - - parse_matched_pair: if we're parsing a dollar-brace word expansion - (${...}) and we're not treating single quote specially within - double quotes, single-quote the translation of $'...' ansi-c - escaped strings. Original report and fix from Eduardo A. - Bustamante López - -subst.c - - extract_dollar_brace_string: ${word/pat/rep} scanning now sets the - DOLBRACE_QUOTE2 flag instead of DOLBRACE_QUOTE so we don't treat - single quotes specially within a double-quoted string - -execute_cmd.c - - fix_assignment_words: skip over assignment statements preceding a - command word before trying to figure out whether or not assignment - statements following a possible declaration command should be - treated specially. Fixes bug reported by Dan Douglas - - - 4/4 - --- -lib/readline/readline.c - - _rl_dispatch_subseq: only call _rl_vi_set_last (and check whether - the key is a text modification command) if the key sequence length - is 1. That keeps the arrow keys from setting the last command - when called in vi command mode. Fixes bug reported by Ian A. - Watson - - 4/6 - --- -lib/readline/bind.c - - rl_parse_and_bind: when parsing a double-quoted string as the value - of a variable, make sure we skip past the leading double quote. - Fix from Andreas Schwab - -variables.c - - hash_lookup: set new local variable last_table_searched to the table - a successful lookup appears in; tested in make_local_variable to - solve the problem below - - make_local_variable: if we find a variable with the tempenv flag - set at the same `level' as variable_context', but not found in the - temporary_env (temp environment preceding the builtin), return it. - The temp environment preceding the function call has already been - merged (in execute_function) into the list of variable contexts the - function sees as shell_variables by the time this is called. Fixes - inconsistency pointed out by Dan Douglas - -subst.c - - expand_arith_string: expanded out contents of expand_string, - expand_string_internal, expand_string_if_necessary to create a - WORD_DESC and call call_expand_word_internal() on it directly. - We don't want process substitution to be performed ( 1<(2) ) should - mean something different in an arithmetic expression context. - It doesn't work to just turn on the DQUOTE flag, since that means - that things like ${x["expression"]} are not expanded correctly. - Fixes problem pointed out by Dan Douglas - - 4/13 - ---- -subst.c - - process_substitute: run the EXIT trap before exiting, as other - shells seem to. Fixes problem pointed out by Dan Douglas - - -lib/readline/readline.c - - readline_internal_setup: call rl_vi_insertion_mode to enter vi - mode instead of rl_vi_insert_mode to avoid resetting the saved last - command information. Posix says that `.' can repeat a command - that was entered on a previous line so we need to save the info. - Fixes bug reported by Ian A. Watson - - 4/14 - ---- -lib/readline/complete.c - - rl_completion_matches: make sure xrealloc returns something non-null - (can happen when interrupted by a signal) before trying to add - matches to match_list - -subst.c - - array_remove_pattern: return NULL right away if array_variable_part - returns an invisible variable - - array_length_reference: handle array_variable_part returning an - invisible variable - - get_var_and_type: handle array_variable_part returning an invisible - variable - - 4/15 - ---- -execute_cmd.c - - execute_command_internal: make sure to run the EXIT trap for group - commands anywhere in pipelines, not just at the end. From a point - raised by Andreas Schwab - -variables.c - - bind_int_variable: make sure invisible flag is unset. Fixes problems - like "declare -ai a; : $(( a[4]=4 ));" - -arrayfunc.c - - array_variable_part: return variable even if invisible flag set, - callers must handle invisible vars - - 4/18 - ---- -builtins/set.def - - unset_builtin: if -n flag given, call unset_nameref instead of - unset_variable - -variables.c - - find_variable_nameref: print warning message if nameref circular - reference detected, return NULL and let caller deal with it - -builtins/declare.def - - declare_builtin: only disallow global references at this point if - we are at the global scope - - 5/16 - ---- -configure.ac - - update release status to beta - - 5/23 - ---- -trap.c - - run_pending_traps: save and restore pipeline around calls to - evalstring() in case we get a trap while running a trap. Have to - figure out the recursive running traps issue elsewhere. Fixes - bug reported by Roman Rakus - - run_pending_traps: make sure to set running_trap to the appropriate - signal value when running a trap command - - run_pending_traps: short-circuit immediately if running_trap set - when invoked. Could change this later to only skip if it would - run the same trap as currently being run (running_trap == sig + 1) - -configure.ac - - add warning if bison not found - -lib/readline/doc/rltech.texi - - new section with an example program illustrating the callback - interface. Suggested by Peng Yu - -examples/loadables/Makefile.in - - remove references to `cut' and `getconf', which were removed in - early March - - 5/28 - ---- -lib/sh/pathphys.c - - sh_realpath: correct inverted two arguments to call to sh_makepath. - Report and fix from Julien Thomas - - 6/7 - --- -execute_cmd.c - - executing_line_number: the else clauses that are conditional on - various options being defined can simply be if clauses -- they are - mutually exclusive and all have `return' in the body. Fixes bug - reported by Flavio Medeiros - - 6/25 - ---- -lib/readline/readline.c - - readline_internal_setup: only sent the meta-key enable string to the - terminal if we've been told to use one and the terminal has been - successfully initialized (RL_ISSTATE (RL_STATE_TERMPREPPED) != 0). - Suggested by Dan Mick - -lib/readline/signals.c - - _rl_signal_handler: call any defined signal hook after calling - rl_resize_terminal when handling a SIGWINCH. We already have called - the original SIGWINCH handler but will not be resending the signal - to ourselves - - 6/27 - ---- -lib/readline/doc/history.3, doc/bash.1 - - fix description of the `$' modifier to note that it expands to the - last *word*, which is not always the last argument. Report from - ariyetz@gmail.com via gnu.org RT - - 6/29 - ---- -lib/glob/smatch.c - - glob_asciiranges: initialize to value of GLOBASCII_DEFAULT instead - of 0 (0 if not defined) - -configure.ac,config.h.in - - --enable-glob-asciiranges-default: new option, controls the value of - GLOBASCII_DEFAULT; use it to turn globasciiranges shopt option on - by default - -doc/bashref.texi - - document new --enable-glob-asciiranges-default configure option - -variables.c - - assign_in_env: implement += value appending semantics for assignments - preceding command names - - 7/4 - --- -expr.c - - set lasttok = NUM in all of the functions that result in a number, - even if it's a boolean, to avoid errors with constructs like - 1 * x = 1, which should be an asignment error. Fixes problem - pointed out by Dan Douglas - -parse.y - - decode_prompt_string: don't bother to call strcpy if - polite_directory_format returns its argument unchanged. It's not - necessary and Mac OS X 10.9 aborts because of a supposed overlapping - string copy. Bug and fix from simon@hitzemann.org - -subst.c - - parameter_brace_find_indir: new function, code from - parameter_brace_expand_indir that looks up the indirectly-referenced - variable, but does not expand it - - parameter_brace_expand_indir: call parameter_brace_find_indir to - look up indirected variable reference - - get_var_and_type: call parameter_brace_find_indir if it looks like we - are trying to manipulate an indirect variable reference like - ${!b%%foo}. This makes a difference if !b references an array - variable. Bug report from Dan Douglas - - 7/6 - --- -lib/sh/casemod.c - - sh_modcase: make sure argument passed to is_basic is <= UCHAR_MAX, - since cval can convert something to a wchar_t greater than UCHAR_MAX. - Fixes bug reported by Tomasz Tomasik - - 7/8 - --- -lib/readline/history.c - - add_history_time: if history_length == 0, referencing history_length - - 1 will result in an array bounds error, so make history_length be - at least 1 before going on. Fixes bug reported by Geng Sheng Liu - - -builtins/setattr.def - - show_func_attributes: display definition (if NODEFS argument is 0) and - attributes for a particular function; used by `declare -fp name' - -builtins/declare.def - - declare_internal: call show_func_attributes if -f supplied with -p. - Fixes inconsistency observed by Linda Walsh - -builtins/common.h - - new extern declaration for show_func_attributes - -builtins/read.def - - read_builtin: check the first supplied variable name for validity - before attempting to read any input, since we know we will have to - at least use that one. Don't check any other names yet. Suggested - by jidanni@jidanni.org - - 7/10 - ---- -redir.c - - do_redirection_internal: when closing a file descriptor with - r_close_this ([n]<&-) count close errors as redirection errors if - errno ends up as EIO or ENOSPC. Originally reported back in April - 2012 by Andrey Zaitsev - - 7/11 - ---- -redir.c - - do_redirection_internal: before calling check_bash_input, make sure - that we don't call check_bash_input for an asynchronous process that - is replacing stdin with something else. The seek backwards affects - the parent process as well, since parents and children share the - file pointer. Fixes problem originally reported in March 2013 by - Martin Jackson - - 7/13 - ---- -doc/{bash.1,bashref.texi} - - slight change to add a description of `shopt -o' suggested by Bruce - Korb - - 7/19 - ---- -lib/readline/histfile.c - - history_do_write: if close returns < 0, make sure we restore the - backup history file and return a non-zero value - - history_truncate_file: if write or close return < 0, make sure we - return a non-zero value diff --git a/CWRU/OS-BUGS/att-yacc-bug b/CWRU/OS-BUGS/att-yacc-bug deleted file mode 100644 index 4c1370b0f..000000000 --- a/CWRU/OS-BUGS/att-yacc-bug +++ /dev/null @@ -1,111 +0,0 @@ -From chet@cwns1.INS.CWRU.Edu Sun Aug 26 17:46:14 1990 -Flags: 50 -Received: from cwns1.INS.CWRU.Edu by cwjcc.INS.CWRU.Edu with SMTP (5.61+ida+/CWRU-1.3-decnet) - id AA17813; Sun, 26 Aug 90 17:46:14 -0400 (from chet@cwns1.INS.CWRU.Edu for /usr/local/bin/m2mbox /usr/homes/chet/mbox) -Received: by cwns1.INS.CWRU.Edu (5.61+ida+/CWRU-1.3-client) - id AA00962; Sun, 26 Aug 90 17:46:31 -0400 (from chet for chet@cwjcc.INS.CWRU.Edu) -Date: Sun, 26 Aug 90 17:01:56 -0400 -From: Chet Ramey -To: trent@jove.cs.pdx.edu -Subject: Re: bash on triton -Cc: chet@cwns1.INS.CWRU.Edu -Reply-To: chet@po.CWRU.Edu -In-Reply-To: Message from trent@jove.cs.pdx.edu of Fri, 24 Aug 90 16:07:19 PDT -Message-Id: <9008262101.AA00902.SM@cwns1.INS.CWRU.Edu> -Read-Receipt-To: chet@po.CWRU.Edu - -> Actually, it just that PSU gets the short end of the stick compared to -> the other state universities because we don't have a division I -> football team (no :-). - -Yeah, but didn't you guys produce Neil Lomax (lo these many years ago)? What -have the other schools given the NFL lately? - -> First thing I noticed is that this alias fails: -> alias .root=/usr/local/.root -> The error is: -> alias: .root: not a valid shell identifier - -This is correct according to Posix 1003.2a draft 5. An alias must obey this -pseudo-regexp: - [a-zA-Z_][a-zA-Z0-9_]* - -(That is, only letters, digits, and underscores, and it may not begin with an -underscore). This is in the latest version of the manual page, the one in -the documentation directory. - -> Also it crashes when PROMPT_COMMAND is set, thus: -> bash$ PROMPT_COMMAND="A=`pwd`" -> bash$ # just hit return -> bash: free: Called with already freed block argument - -I am sorting through this problem right now, and I've discovered a few things -(none complimentary to Sun). - -First of all, this crash happens because Sun's programmers are lazy. The Sun -malloc allows you to free things multiple times, instead of doing the old - - if (x) - free(x); - x = NULL; - -trick. The Gnu malloc disallows that. - -The root of this set of problems is that the Sun yyparse() is not reentrant -(`impure'). First of all, /usr/lib/yaccpar has changed a number of things -to be dynamically allocated that were once static arrays (the state stack -and the value stack are the two major ones). Second, some things that used -to be automatic variables to yyparse (like the state stack) are now -globally static variables in /usr/lib/yaccpar. This means no more -indirectly recursive calls to yyparse(). This is pure bogusness, and -breaks backwards compatibility in a major way. - -The first indirect call to yyparse() occurs when PROMPT_COMMAND is run -through parse_and_execute() (parse.y, around line 1200). The next call to -yyparse() in your example (hitting return) returns quickly, putting nothing -onto the state stack. Of course, YYACCEPT doesn't check whether anything -was put into the stack; it just goes ahead and frees it anyway. - -The next problem arises when PROMPT_COMMAND contains a backquoted command, -which is run through parse_and_execute() again. It doesn't matter that -this parse_and_execute is in a subshell; the data structures being built by -Sun's yacc come along for free when bash forks. The state stack gets all -screwed up and a segmentation fault is the inevitable result. If Sun (and, -I assume, AT&T, since the SCCS line at the top of /usr/lib/yaccpar -indicates that it is derived from S5R3.1) wants to do this kind of shit, -they should at least provide a convenience function to clear out the state -stack. - -Both of these problems are avoided by using bison. I have put bison on -triton (you'll have to redo it if you want it; it looks for the parser -skeletons in /home/chet/lib), and a bash compiled with a bison-generated -parser does not crash given the above setting of PROMPT_COMMAND. That bash -is in /home/chet/bin. I don't know how to solve these problems in a -simple way by using the Sun yacc. - -`Byacc' (Berkeley Yacc), the 4.4 BSD rewrite of Yacc by Bob Corbett (who -wrote the original version of bison), should also be OK, though I haven't -looked at it. - -> That brings up something else: Triton is set up as a mail-less -> machine (all mail is forwarded elsewhere). Do you want your mail -> forwarded to CWSU?? Right now the bug reports Bash generates are -> vanishing. (I don't touch sendmail, and, from what I'm told, I'm -> better off that way :-) - -(It's CWRU, by the way.) - -Don't worry, I get them all. Look at the end of shell.c (make_bug_report) -where it opens a pipe to `/bin/rmail chet@ins.cwru.edu'. - -Let me know of any more problems you encounter. - -Chet - - --- -Chet Ramey ``Levi Stubbs' tears run down -Network Services Group his face...'' -Case Western Reserve University -chet@ins.CWRU.Edu - diff --git a/CWRU/OS-BUGS/bsd-rshd-bug b/CWRU/OS-BUGS/bsd-rshd-bug deleted file mode 100644 index 54712d466..000000000 --- a/CWRU/OS-BUGS/bsd-rshd-bug +++ /dev/null @@ -1,46 +0,0 @@ -From chet@odin.INS.CWRU.Edu Sat Apr 27 19:54:13 1991 -Flags: 50 -Received: from odin.INS.CWRU.Edu by usenet.INS.CWRU.Edu with SMTP (5.65b+ida+/CWRU-1.5-UUCPGW) - id AA05700; Sat, 27 Apr 91 19:54:13 -0400 (from chet@odin.INS.CWRU.Edu for /usr/local/bin/m2mbox /usr/homes/chet/mbox) -Received: by odin.INS.CWRU.Edu (5.65b+ida+/CWRU-1.4-ins) - id AA17732; Sat, 27 Apr 91 19:54:06 -0400 (from chet for chet@usenet.INS.CWRU.Edu) -Date: Sat, 27 Apr 91 19:31:16 -0400 -From: Chet Ramey -To: bfox@ai.mit.edu -Subject: Re: [pedz@aixwiz.austin.ibm.com: fd 9 left open bug] -Cc: chet@odin.INS.CWRU.Edu, pedz@aixwiz.austin.ibm.com -Reply-To: chet@po.CWRU.Edu -In-Reply-To: Message from bfox@bears.ece.ucsb.edu of Wed, 24 Apr 91 12:49:33 PDT -Message-Id: <9104272331.AA17706.SM@odin.INS.CWRU.Edu> -Read-Receipt-To: chet@po.CWRU.Edu - -> Below is something I call Xemacs which goes across the net, sets up the -> display variable and then kicks off emacs in such a way that rshd -> terminates. The trick is that the shell must die and all file -> descriptors going back to rshd must be closed. The same basic script -> works with csh but I had to add in the "9>&-" part at the end to make -> it work with bash. This is because somehow, file descriptor 9 is left -> open and I guess it must be a dup of stdin, stdout, or stderr. - -This is a bug alright, but it's a bug with rshd that's not fixed until -4.3-reno. - -rshd sets up a pipe (int pv[2]; if you have the source to the tahoe rshd) -to the process it executes and uses it to manage error and control output -from over the net. In the child process, it does a dup2(pv[1], 2), but -never calls close(pv[1]). Adding that code to the 4.3-tahoe rshd makes it -(and the Xemacs script) work right. - -I don't know how to solve this cleanly in bash. Doing a blanket close of -all open file descriptors < 2, < 20 is a no-no, especially when we're not -interactive. csh `works' because it does the blanket close on startup, but -csh can get away with doing that because it doesn't let you manipulate -arbitrary file descriptors. - -Chet - --- -Chet Ramey Internet: chet@po.CWRU.Edu -Case Western Reserve University NeXT Mail: chet@macbeth.INS.CWRU.Edu - -``Now, somehow we've brought our sins back physically -- and they're pissed.'' diff --git a/CWRU/OS-BUGS/bsd-tty-driver b/CWRU/OS-BUGS/bsd-tty-driver deleted file mode 100644 index 2083e7c62..000000000 --- a/CWRU/OS-BUGS/bsd-tty-driver +++ /dev/null @@ -1,38 +0,0 @@ -From chet Thu Aug 13 10:42:35 1992 -Flags: 50 -Received: by odin.INS.CWRU.Edu (5.65b+ida+/CWRU-1.5-ins) - id AA07004; Thu, 13 Aug 92 10:42:35 -0400 (from chet for /usr/homes/chet/bin/mailfilter.sh /usr/homes/chet/mbox) -Date: Thu, 13 Aug 1992 10:34:47 -0400 -From: Chet Ramey -To: przemek@rrdstrad.nist.gov -Subject: Re: output of background jobs in BASH -Cc: bug-bash@prep.ai.mit.edu, chet -Reply-To: chet@po.CWRU.Edu -In-Reply-To: Message from przemek@rrdstrad.nist.gov of 12 Aug 92 18:15:53 GMT -Message-Id: <9208131434.AA00639.SM@odin.INS.CWRU.Edu> -Read-Receipt-To: chet@po.CWRU.Edu - -> I believe that this changed when I installed bash 1.12: when I put a job that -> prints on stdout in background (^Z/bg or directly by &), the output comes out -> staggered, as if the CR wasn't being added to the LF at the end of the lines. - -This is a result of bash using the BSD-style tty driver on Ultrix. The BSD -driver ties input and output carriage return translation together with the -CRMOD bit. (The CRMOD bit causes CR->LF translation on input and LF->CRLF -translation on output.) Unless the CRMOD bit is cleared, it is impossible -to get a literal ^M in an input line. Unfortunately, one of the effects of -clearing it is the loss of output processing you've observed. - -The Ultrix Posix-style tty driver can't be used because it has serious -problems with losing typeahead when ICANON is switched on and off. These -characters seem to reappear later without warning, usually when a -program that uses the BSD-style ioctls turns on CBREAK (e.g., `more'). - -Chet - --- -``The use of history as therapy means the corruption of history as history.'' - -- Arthur Schlesinger - -Chet Ramey, Case Western Reserve University Internet: chet@po.CWRU.Edu - diff --git a/CWRU/OS-BUGS/hpux-ulimit-bug b/CWRU/OS-BUGS/hpux-ulimit-bug deleted file mode 100644 index 7c9a34153..000000000 --- a/CWRU/OS-BUGS/hpux-ulimit-bug +++ /dev/null @@ -1,3 +0,0 @@ -The HP/UX manual page for ulimit(2) reports that ulimit(1, 0L) will return -the maximum file size in terms of 512-byte blocks. It lies, at least on -HP/UX 6.5; the number of bytes is returned. diff --git a/CWRU/OS-BUGS/isc-posix-bug b/CWRU/OS-BUGS/isc-posix-bug deleted file mode 100644 index 5acf4165b..000000000 --- a/CWRU/OS-BUGS/isc-posix-bug +++ /dev/null @@ -1,137 +0,0 @@ -Article 7946 of comp.unix.sysv386: -Newsgroups: comp.unix.sysv386 -Path: usenet.ins.cwru.edu!agate!stanford.edu!snorkelwacker.mit.edu!think.com!zaphod.mps.ohio-state.edu!rpi!batcomputer!cornell!rochester!lubkin -From: lubkin@cs.rochester.edu (Saul Lubkin) -Subject: Binary patch to os.o fixes POSIX panics using VP/ix with job controlled bash -Message-ID: <1991Apr30.034006.24056@cs.rochester.edu> -Organization: Computer Science Department University of Rochester -Date: Tue, 30 Apr 1991 03:40:06 GMT - - -Recently, Uwe Doering posted the following article: - - Article 6891 of comp.unix.sysv386: - Path: nancy!uunet!math.fu-berlin.de!fub!geminix.in-berlin.de!gemini - From: gemini@geminix.in-berlin.de (Uwe Doering) - Newsgroups: comp.unix.sysv386 - Subject: Re: NAMEI panic - trap "E", address and info follows (+ patch) - Message-ID: - Date: 13 Apr 91 00:55:41 GMT - References: <1991Apr10.040146.645@ddsw1.MCS.COM> - Organization: Private UNIX Site - Lines: 92 - - karl@ddsw1.MCS.COM (Karl Denninger) writes: - - >Is anyone else having problems with a "namei" panic in ISC 2.2 (with NFS, - >the NFS/lockd patches, and POSIX patches applied)? - > - >I have been getting these nearly daily. Trap type "E", address is d007962f. - >That's right near the end of "namei"; here's the relavent line from a "nm" - >on the kernel: - > - >namei |0xd007919c|extern| *struct( )|0x0608| |.text - > - >Needless to say, I am most displeased with the crashes! - > - >Near as I can determine, the hardware is fine. - > - >All pointers or ideas appreciated... - - I found this bug a few days ago and was about to send a bug report - to ISC. The problem is "simply" a NULL pointer reference in the - namei() function. The machine I found this on runs ISC 2.21 with - the security fix installed. I fixed this bug with a binary patch. It - is for the module /etc/conf/pack.d/kernel/os.o. I disassembled the - original and then the fixed version of os.o and ran a context diff - over the output. Depending on what version of the kernel config kit - you have the addresses might be off some bytes. You can apply this - patch with every binary file editor. - - *************** - *** 35349,35364 **** - [%al,%al] - cf71: 74 1e je 0x1e - [0xcf91] - ! cf73: 0f b7 07 movzwl (%edi),%eax - [%edi,%eax] - ! cf76: 3d 11 00 00 00 cmpl $0x11,%eax - [$0x11,%eax] - ! cf7b: 74 14 je 0x14 - [0xcf91] - ! cf7d: c7 45 e8 00 00 00 00 movl $0x0,0xe8(%ebp) - ! [$0x0,-24+%ebp] - ! cf84: eb 19 jmp 0x19 - ! [0xcf9f] - cf86: 90 nop - [] - cf87: 90 nop - --- 35349,35372 ---- - [%al,%al] - cf71: 74 1e je 0x1e - [0xcf91] - ! cf73: 85 ff testl %edi,%edi - ! [%edi,%edi] - ! cf75: 74 1a je 0x1a - ! [0xcf91] - ! cf77: 0f b7 07 movzwl (%edi),%eax - [%edi,%eax] - ! cf7a: 3d 11 00 00 00 cmpl $0x11,%eax - [$0x11,%eax] - ! cf7f: 74 10 je 0x10 - [0xcf91] - ! cf81: eb 15 jmp 0x15 - ! [0xcf98] - ! cf83: 90 nop - ! [] - ! cf84: 90 nop - ! [] - ! cf85: 90 nop - ! [] - cf86: 90 nop - [] - cf87: 90 nop - - I'm not absolutely sure whether the action that is now taken in case of - a NULL pointer is the right one, but I haven't noticed any problems, - and most important, there are no more kernel panics! At least not from - that spot. :-) The action that is taken if the pointer in _not_ NULL - hasn't changed (this is not very obvious from the patch, but look - in the disassembler listing of your own kernel for more details). - I use this modified kernel for over a week now and it works for - me. Of course, as always, I can't give you any guaranty that this - patch does something useful on your machine. :-) - - Hope this helps you. - - Uwe - - PS: ISC, if you see this posting, could you drop me a note on whether - you have put this on your to-do list? This would save me the time - needed to file an official bug report. - -- - Uwe Doering | INET : gemini@geminix.in-berlin.de - Berlin |---------------------------------------------------------------- - Germany | UUCP : ...!unido!fub!geminix.in-berlin.de!gemini - ======================================================================= - - -Here is a copy of my recent note to Uwe: - - - I've applied the binary patch that you recently poosted to comp.unix.sysv386 - for os.o. - - It works beautifully. Previously, I had compiled bash1.07CWRU, and it worked - well (using POSIX job control), job control and all -- but running VP/ix under - this bash caused a system panic. This evidently is the (now infamous) "POSIX - namei bug". After rebuilding the kernel with a patched os.o, the problem - simply disappeared. VP/ix, like everything else, now works fine under - bash1.07CWRU. - - - Yours sincerely, - - Saul Lubkin - - diff --git a/CWRU/OS-BUGS/next-rlogind-bug b/CWRU/OS-BUGS/next-rlogind-bug deleted file mode 100644 index 09d0c3131..000000000 --- a/CWRU/OS-BUGS/next-rlogind-bug +++ /dev/null @@ -1,63 +0,0 @@ -From chet@odin.INS.CWRU.Edu Thu Mar 7 19:16:25 1991 -Flags: 50 -Received: from odin.INS.CWRU.Edu by usenet.INS.CWRU.Edu with SMTP (5.61+ida+/CWRU-1.4-UUCPGW) - id AA00967; Thu, 7 Mar 91 19:16:25 -0500 (from chet@odin.INS.CWRU.Edu for /usr/local/bin/m2mbox /usr/homes/chet/mbox) -Received: by odin.INS.CWRU.Edu (5.65+ida+/CWRU-1.4-ins) - id AA04437; Thu, 7 Mar 91 19:15:31 -0500 (from chet for chet@usenet.INS.CWRU.Edu) -Date: Thu, 7 Mar 91 19:10:00 -0500 -From: Chet Ramey -To: jacob@blackbox.gore.com -Subject: Re: Library function redefinition -Cc: chet@odin.INS.CWRU.Edu, bfox@ai.mit.edu -Reply-To: chet@po.CWRU.Edu -In-Reply-To: Message from jacob@blackbox.gore.com of Sun, 3 Mar 91 19:18:54 MST -Message-Id: <9103080010.AA04427.SM@odin.INS.CWRU.Edu> -Read-Receipt-To: chet@po.CWRU.Edu - -> Now that you're working on bash for NeXT, let me ask you if you've run into -> this bug under 2.0: bash, as a login shell, hangs on rlogin into the NeXT. -> But it works fine on telnet. On rlogin, I even get no output to stdout -> from the 'tset' (or debugging 'echo's) in my startup files. - -It's getting stuck in initialize_jobs (). There is a bug in the NeXT -/usr/etc/rlogind that causes bash to be started with the terminal still -belonging to the rlogind process, and its process group set to 0 (so -that getpgrp() returns 0 (!)). It looks like there's a stray setpgrp(0, 0) -in the rlogind code that NeXT is not handling like 4.3 BSD. - -(Another bug that I've found with NeXT 2.0 is that Terminal starts up the -shell underneath it with argc == 0 and argv[0] = "-". Not polite. -`mount -vat nfs' seems to be broken too. Any more good ones I should look -for?) - -Here's a diff to jobs.c to work around it. Your line numbers will certainly -vary (for all I know, the code might, too). - -Chet - -*** jobs.c~ Tue Mar 5 17:41:00 1991 ---- jobs.c Thu Mar 7 18:50:12 1991 -*************** -*** 1839,1842 **** ---- 1839,1852 ---- - } - -+ #if defined (NeXT) -+ /* This is to compensate for a bug in the NeXT 2.0 /usr/etc/rlogind. */ -+ if (shell_pgrp == 0) -+ { -+ shell_pgrp = getpid (); -+ setpgid (0, shell_pgrp); -+ tcsetpgrp (shell_tty, shell_pgrp); -+ } -+ #endif /* NeXT */ -+ - while ((terminal_pgrp = tcgetpgrp (shell_tty)) != -1) - { - --- -Chet Ramey ``Now, somehow we've brought our sins -Network Services Group back physically -- and they're -Case Western Reserve University pissed.'' -chet@ins.CWRU.Edu My opinions are just those, and mine alone. - diff --git a/CWRU/OS-BUGS/sco-3.2.4-bug b/CWRU/OS-BUGS/sco-3.2.4-bug deleted file mode 100644 index 7378d3c2c..000000000 --- a/CWRU/OS-BUGS/sco-3.2.4-bug +++ /dev/null @@ -1,57 +0,0 @@ -From gnulists@ai.mit.edu Mon Feb 22 20:41:24 1993 -Flags: 50 -Received: from po.CWRU.Edu by odin.INS.CWRU.Edu with SMTP (5.65b+ida+/CWRU-1.5.4-ins) - id AA17713; Mon, 22 Feb 93 20:41:24 -0500 (from gnulists@ai.mit.edu for /usr/homes/chet/bin/mailfilter.sh /usr/homes/chet/mbox) -Return-Path: -Received: from life.ai.mit.edu by po.CWRU.Edu with SMTP (5.65b+ida+/CWRU-1.9) - id AA29616; Mon, 22 Feb 93 20:41:17 -0500 (from gnulists@ai.mit.edu for chet@odin.INS.CWRU.Edu) -Received: from raisin-nut (raisin-nut.ai.mit.edu) by life.ai.mit.edu (4.1/AI-4.10) id AA01858; Mon, 22 Feb 93 20:40:47 EST -Received: by raisin-nut (4.1/AI-4.10) id AA06708; Mon, 22 Feb 93 20:40:46 EST -Resent-Date: Mon, 22 Feb 1993 13:29:57 -0500 -Resent-Message-Id: <9302230140.AA06708@raisin-nut> -Received: from odin.INS.CWRU.Edu by life.ai.mit.edu (4.1/AI-4.10) id AA19283; Mon, 22 Feb 93 13:36:48 EST -Received: by odin.INS.CWRU.Edu (5.65b+ida+/CWRU-1.5.4-ins) - id AA27765; Mon, 22 Feb 93 13:36:44 -0500 (from chet for bug-bash@prep.ai.mit.edu) -Date: Mon, 22 Feb 1993 13:29:57 -0500 -From: Chet Ramey -Sender: gnulists@ai.mit.edu -To: pat@bcserv.wustl.edu -Subject: Re: bash for SCO Unix 3.2.2/4 -Cc: bug-bash@prep.ai.mit.edu, chet@odin.ins.cwru.edu -Reply-To: chet@po.cwru.edu -In-Reply-To: Message from pat@bcserv.wustl.edu of 22 Feb 93 06:23:34 GMT (id ) -Message-Id: <9302221829.AA27553.SM@odin.INS.CWRU.Edu> -Read-Receipt-To: chet@po.CWRU.Edu -Mime-Version: 1.0 -Content-Type: text/plain; charset=us-ascii -Resent-From: bug-bash-request@prep.ai.mit.edu - -> I've had no luck making either bash-1.11 or bash-1.12 for -> SCO Unix v 3.2.2 or 3.2.4... -> -> bash-1.12 says (specifically) that it's making for 3.2.2, but -> still has problems. -> -> It locks up after a few commnds... -> -> I don't have GCC right now, so I did have to tell it that I don't -> have 'alloca' by undefining it in machines.h - if that could be a problem. - -You can't run bash-1.12 on a 3.2.4 system if it's been compiled on a -3.2.2 system. Bash contains a fix for the broken sigsuspend in 3.2.2 -that breaks bash on 3.2.4, because 3.2.4 has the bug fixed. - -Bash 1.12 should build and run OK out of the box on 3.2.2. For 3.2.4 -you need to locate the code at around line 1250 of jobs.c and change -#if !defined (SCO) to #if 1 so that sigsuspend is used. Then take out -the SCO defines in flush_child(). - -Chet - --- -``The use of history as therapy means the corruption of history as history.'' - -- Arthur Schlesinger - -Chet Ramey, Case Western Reserve University Internet: chet@po.CWRU.Edu - - diff --git a/CWRU/OS-BUGS/sequent-fcntl-dup2-bug b/CWRU/OS-BUGS/sequent-fcntl-dup2-bug deleted file mode 100644 index 7676d495b..000000000 --- a/CWRU/OS-BUGS/sequent-fcntl-dup2-bug +++ /dev/null @@ -1,28 +0,0 @@ -From chet@odin.INS.CWRU.Edu Fri May 3 17:22:41 1991 -Flags: 50 -Received: from odin.INS.CWRU.Edu by usenet.INS.CWRU.Edu with SMTP (5.65b+ida+/CWRU-1.5-UUCPGW) - id AA22515; Fri, 3 May 91 17:22:41 -0400 (from chet@odin.INS.CWRU.Edu for /usr/local/bin/m2mbox /usr/homes/chet/mbox) -Received: by odin.INS.CWRU.Edu (5.65b+ida+/CWRU-1.4-ins) - id AA07171; Fri, 3 May 91 17:22:21 -0400 (from chet for chet@usenet.INS.CWRU.Edu) -Date: Fri, 3 May 91 17:18:03 -0400 -From: Chet Ramey -To: jp@lysator.liu.se -Subject: fixed sequent bug -Cc: chet@odin.INS.CWRU.Edu -Reply-To: chet@po.CWRU.Edu -Message-Id: <9105032118.AA07167.SM@odin.INS.CWRU.Edu> -Read-Receipt-To: chet@po.CWRU.Edu - - -I fixed it. Sequent's fcntl and dup2 are both messed up. They do not set -the new descriptor to be open-on-exec. For dup2 it's OK; that's the way -4.2 BSD did it. fcntl doing it is a bug, and a bad one. - -Chet - --- -Chet Ramey Internet: chet@po.CWRU.Edu -Case Western Reserve University NeXT Mail: chet@macbeth.INS.CWRU.Edu - -``Now, somehow we've brought our sins back physically -- and they're pissed.'' - diff --git a/CWRU/OS-BUGS/sun-yp-bug b/CWRU/OS-BUGS/sun-yp-bug deleted file mode 100644 index 5b84ec007..000000000 --- a/CWRU/OS-BUGS/sun-yp-bug +++ /dev/null @@ -1,52 +0,0 @@ -From chet Mon Jul 27 14:54:45 1992 -Flags: 50 -Received: by odin.INS.CWRU.Edu (5.65b+ida+/CWRU-1.5-ins) - id AA15494; Mon, 27 Jul 92 14:54:45 -0400 (from chet for /usr/homes/chet/bin/mailfilter.sh /usr/homes/chet/mbox) -Date: Mon, 27 Jul 1992 14:29:55 -0400 -From: Chet Ramey -To: stud7b43@x400gate.bnr.ca -Subject: Re: Bug in Bash 1.12.1 -Cc: bug-bash@ai.mit.edu, chet -Reply-To: chet@po.CWRU.Edu -In-Reply-To: Message from stud7b43@x400gate.bnr.ca of Mon, 27 Jul 1992 12:30:00 +0000 -Message-Id: <9207271829.AA14484.SM@odin.INS.CWRU.Edu> -Read-Receipt-To: chet@po.CWRU.Edu - -> I seem to have found a bug in Bash. -> -> How to cause the bug to appear: -> 1) Start a long username-completion, e.g. -> cat ~user -> Let it run for a while (don't know exactly how long...) -> Before it's finished, hit ^C (or whatever the break character -> is set to) -> 2) As the next command, run a filename completion with a username in it, eg. -> cat ~username/.log -> -> Error message: "free: Called with already freed block argument - -This is a bug in the Sun YP code that everyone seems to have picked up. - -Sun keeps static state in the YP library code -- a pointer into the -data returned from the server. When YP initializes itself (setpwent), -it looks at this pointer and calls free on it if it's non-null. So far, -so good. - -If one of the YP functions is interrupted during getpwent (the exact function -is interpretwithsave()), and returns NULL, the pointer is freed without being -reset to NULL, and the function returns. The next time getpwent is called, -it sees that this pointer is non-null, calls free, and the Gnu free() -blows up because it's being asked to free freed memory. - -The traditional Unix mallocs allow memory to be freed multiple times; that's -probably why this has never been fixed. You can probably stop it by adding -an #undef USE_GNU_MALLOC to the appropriate machine description in machines.h. - -Chet - --- -``The use of history as therapy means the corruption of history as history.'' - -- Arthur Schlesinger - -Chet Ramey, Case Western Reserve University Internet: chet@po.CWRU.Edu - diff --git a/CWRU/OS-BUGS/ultrix-bugs b/CWRU/OS-BUGS/ultrix-bugs deleted file mode 100644 index f9fb82c6c..000000000 --- a/CWRU/OS-BUGS/ultrix-bugs +++ /dev/null @@ -1,74 +0,0 @@ -From chet@odin.INS.CWRU.Edu Fri Dec 21 10:56:27 1990 -Flags: 50 -Received: from odin.INS.CWRU.Edu by usenet.INS.CWRU.Edu with SMTP (5.61+ida+/CWRU-1.3-UUCPGW) - id AA27089; Fri, 21 Dec 90 10:56:27 -0500 (from chet@odin.INS.CWRU.Edu for /usr/local/bin/m2mbox.test /usr/homes/chet/mbox) -Received: by odin.INS.CWRU.Edu (5.61+ida+/CWRU-1.4-ins) - id AA17558; Fri, 21 Dec 90 10:56:18 -0500 (from chet for chet@usenet.INS.CWRU.Edu) -Date: Fri, 21 Dec 90 10:36:58 -0500 -From: Chet Ramey -To: dbrooks@osf.org -Subject: Re: bash and OSF/1 -Cc: chet@odin.INS.CWRU.Edu -Reply-To: chet@po.CWRU.Edu -In-Reply-To: Message from dbrooks@osf.org of Fri, 21 Dec 90 10:28:26 EST -Message-Id: <9012211536.AA17531.SM@odin.ins.cwru.edu> -Read-Receipt-To: chet@po.CWRU.Edu - -> Michael Meissner has been suddenly asked to do Real Work (TM) so it's -> unlikely he'll get to do anything with OSF/1 until the new year. We -> talked about it, however, and there are a few issues. - -Not (gasp) Real Work! - -> The upshot of the above is: expect a block of #defines based on -> __OSF1__, and expect it possibly not to work under all -> implementations. - -Works for me. - -> I have two new bugs for you in 1.06. -> -> - Typeahead is very weird. Often, I will be in a state where a -> command is busy, and I type a new one. The shell prompts and -> nothing happens; I have to type the line again. Later, if I enter -> an interactive command (such as "mail") the missing keystrokes get -> delivered to it instead. This is on a pmax, Ultrix 3.1, with some -> patches of my own and Michael's fignore patch (that may have caused -> it; I haven't investigated yet. Just wanted to see if this rang a bell.) - -Typeahead under Ultrix is wierd. This doesn't happen anywhere else. Here's -what it does for me: - -cwjcc$ sleep 4 -echo hi ; echo hi <----- typeahead while sleeping -cwjcc$ <----- nothing comes out -cwjcc$ more readline.c -readline.c: No such file or directory -cwjcc$ echo hi ; echo hi <----- now it does... -hi -hi - -I'll look at it today. - -> - The sequence -> echo foo > /dev/tty -> cat bar -> produces: -> cat: write error: Bad file number - -This only happens under Ultrix, too. It's another consequence of Dec's -dup2 fuckup (I am *really*pissed*off* about it; it's caused me to waste a -lot of time already). File descriptor 1 is getting set to close-on-exec. -I haven't decided whether to hack around it in the code or to just make -Ultrix use the dup2 emulation in general.c. - -Cheers, - -Chet - --- -Chet Ramey ``I die, Horatio'' -Network Services Group, Case Western Reserve University -chet@ins.CWRU.Edu - My opinions are just those, and mine alone. - diff --git a/CWRU/audit-patch b/CWRU/audit-patch deleted file mode 100644 index 3e14cccf6..000000000 --- a/CWRU/audit-patch +++ /dev/null @@ -1,339 +0,0 @@ -Date: Tue, 06 Feb 2007 16:06:58 -0500 -From: Steve Grubb -Subject: Re: bash and linux audit -To: chet.ramey@case.edu -Organization: Red Hat - -OK, I released audit 1.4 Sunday which has the logging function for user -commands. It produces audit events like this: - -type=USER_CMD msg=audit(01/30/2007 18:23:45.793:143) : user pid=22862 uid=root -auid=root subj=system_u:system_r:unconfined_t:s0-s0:c0.c1023 -msg='cwd=/root/test dir cmd=ls -l (terminal=tty1 res=success)' - -diff -urp bash-3.2.orig/config-bot.h bash-3.2/config-bot.h ---- bash-3.2.orig/config-bot.h 2007-01-03 09:01:05.000000000 -0500 -+++ bash-3.2/config-bot.h 2007-01-20 11:59:23.000000000 -0500 -@@ -97,6 +97,11 @@ - # define RESTRICTED_SHELL_NAME "rbash" - #endif - -+/* If the shell is called by this name, it will become audited. */ -+#if defined (AUDIT_SHELL) -+# define AUDIT_SHELL_NAME "aubash" -+#endif -+ - /***********************************************************/ - /* Make sure feature defines have necessary prerequisites. */ - /***********************************************************/ -diff -urp bash-3.2.orig/config.h.in bash-3.2/config.h.in ---- bash-3.2.orig/config.h.in 2007-01-03 09:01:05.000000000 -0500 -+++ bash-3.2/config.h.in 2007-01-20 11:59:23.000000000 -0500 -@@ -81,6 +81,11 @@ - flag. */ - #undef RESTRICTED_SHELL - -+/* Define AUDIT_SHELL if you want the generated shell to audit all -+ actions performed by root account. The shell thus generated can become -+ audited by being run with the name "aubash". */ -+#undef AUDIT_SHELL -+ - /* Define DISABLED_BUILTINS if you want "builtin foo" to always run the - shell builtin "foo", even if it has been disabled with "enable -n foo". */ - #undef DISABLED_BUILTINS -diff -urp bash-3.2.orig/configure.in bash-3.2/configure.in ---- bash-3.2.orig/configure.in 2007-01-03 09:01:05.000000000 -0500 -+++ bash-3.2/configure.in 2007-01-20 11:59:23.000000000 -0500 -@@ -162,6 +162,7 @@ opt_history=yes - opt_bang_history=yes - opt_dirstack=yes - opt_restricted=yes -+opt_audit=yes - opt_process_subst=yes - opt_prompt_decoding=yes - opt_select=yes -@@ -195,8 +196,8 @@ dnl a minimal configuration turns everyt - dnl added individually - 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_history=no opt_bang_history=no opt_dirstack=no opt_restricted=no -+ opt_audit=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 -@@ -227,6 +228,7 @@ AC_ARG_ENABLE(progcomp, AC_HELP_STRING([ - AC_ARG_ENABLE(prompt-string-decoding, AC_HELP_STRING([--enable-prompt-string-decoding], [turn on escape character decoding in prompts]), opt_prompt_decoding=$enableval) - AC_ARG_ENABLE(readline, AC_HELP_STRING([--enable-readline], [turn on command line editing]), opt_readline=$enableval) - AC_ARG_ENABLE(restricted, AC_HELP_STRING([--enable-restricted], [enable a restricted shell]), opt_restricted=$enableval) -+AC_ARG_ENABLE(audit, AC_HELP_STRING([--enable-audit], [enable an audited shell]), opt_audit=$enableval) - AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select], [include select command]), opt_select=$enableval) - AC_ARG_ENABLE(separate-helpfiles, AC_HELP_STRING([--enable-separate-helpfiles], [use external files for help builtin documentation]), opt_separate_help=$enableval) - AC_ARG_ENABLE(single-help-strings, AC_HELP_STRING([--enable-single-help-strings], [store help documentation as a single string to ease translation]), opt_single_longdoc_strings=$enableval) -@@ -254,6 +256,10 @@ fi - if test $opt_restricted = yes; then - AC_DEFINE(RESTRICTED_SHELL) - fi -+if test $opt_audit = yes; then -+AC_DEFINE(AUDIT_SHELL) -+AUDIT_LIB='-laudit' -+fi - if test $opt_process_subst = yes; then - AC_DEFINE(PROCESS_SUBSTITUTION) - fi -@@ -355,6 +361,8 @@ AC_SUBST(HELPDIRDEFINE) - AC_SUBST(HELPINSTALL) - AC_SUBST(HELPSTRINGS) - -+AC_SUBST(AUDIT_LIB) -+ - echo "" - echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}" - echo "" -diff -urp bash-3.2.orig/doc/bash.1 bash-3.2/doc/bash.1 ---- bash-3.2.orig/doc/bash.1 2007-01-03 09:01:05.000000000 -0500 -+++ bash-3.2/doc/bash.1 2007-01-20 11:59:23.000000000 -0500 -@@ -155,6 +155,12 @@ single-character options to be recognize - .PP - .PD 0 - .TP -+.B \-\-audit -+The shell logs all commands run by the root user (see -+.SM -+.B "AUDIT SHELL" -+below). -+.TP - .B \-\-debugger - Arrange for the debugger profile to be executed before the shell - starts. -@@ -8770,6 +8776,17 @@ turns off any restrictions in the shell - script. - .\" end of rbash.1 - .if \n(zY=1 .ig zY -+.SH "AUDIT SHELL" -+.zY -+.PP -+If -+.B bash -+is started with the name -+.BR aubash , -+or the -+.B \-\-audit -+option is supplied at invocation, the shell logs all commands issued by the root user to the audit system. -+.if \n(zY=1 .ig zY - .SH "SEE ALSO" - .PD 0 - .TP -diff -urp bash-3.2.orig/eval.c bash-3.2/eval.c ---- bash-3.2.orig/eval.c 2007-01-03 09:01:06.000000000 -0500 -+++ bash-3.2/eval.c 2007-01-20 11:59:23.000000000 -0500 -@@ -45,6 +45,11 @@ - # include "bashhist.h" - #endif - -+#if defined (AUDIT_SHELL) -+# include -+# include -+#endif -+ - extern int EOF_reached; - extern int indirection_level; - extern int posixly_correct; -@@ -58,6 +63,38 @@ extern int rpm_requires; - static void send_pwd_to_eterm __P((void)); - static sighandler alrm_catcher __P((int)); - -+#if defined (AUDIT_SHELL) -+static int audit_fd = -1; -+ -+static int -+audit_start () -+{ -+ audit_fd = audit_open (); -+ if (audit_fd < 0) -+ return -1; -+ else -+ return 0; -+} -+ -+static int -+audit (cmd, result) -+ char *cmd; -+ int result; -+{ -+ int rc; -+ -+ if (audit_fd < 0) -+ return 0; -+ -+ rc = audit_log_user_command (audit_fd, AUDIT_USER_CMD, cmd, -+ NULL, !result); -+ close (audit_fd); -+ audit_fd = -1; -+ return rc; -+} -+#endif -+ -+ - /* Read and execute commands until EOF is reached. This assumes that - the input source has already been initialized. */ - int -@@ -145,7 +182,25 @@ reader_loop () - - executing = 1; - stdin_redir = 0; -+#if defined (AUDIT_SHELL) -+ if (audited && interactive_shell && getuid () == 0) -+ { -+ if (audit_start () < 0) -+ { -+ if (errno != EINVAL && errno != EPROTONOSUPPORT && -+ errno != EAFNOSUPPORT) -+ return EXECUTION_FAILURE; -+ } -+ } -+#endif -+ - execute_command (current_command); -+#if defined (AUDIT_SHELL) -+ { -+ extern char *shell_input_line; -+ audit (shell_input_line, last_command_exit_value); -+ } -+#endif - - exec_done: - QUIT; -diff -urp bash-3.2.orig/externs.h bash-3.2/externs.h ---- bash-3.2.orig/externs.h 2007-01-03 09:01:06.000000000 -0500 -+++ bash-3.2/externs.h 2007-01-20 12:05:00.000000000 -0500 -@@ -77,6 +77,10 @@ extern int shell_is_restricted __P((char - extern int maybe_make_restricted __P((char *)); - #endif - -+#if defined (AUDIT_SHELL) -+extern int maybe_make_audited __P((char *)); -+#endif -+ - extern void unset_bash_input __P((int)); - extern void get_current_user_info __P((void)); - -diff -urp bash-3.2.orig/flags.c bash-3.2/flags.c ---- bash-3.2.orig/flags.c 2007-01-03 09:01:06.000000000 -0500 -+++ bash-3.2/flags.c 2007-01-20 11:59:23.000000000 -0500 -@@ -142,6 +142,12 @@ int restricted = 0; /* currently restri - int restricted_shell = 0; /* shell was started in restricted mode. */ - #endif /* RESTRICTED_SHELL */ - -+#if defined (AUDIT_SHELL) -+/* Non-zero means that this shell is audited. An audited shell records -+ each command that the root user executes. */ -+int audited = 0; /* shell was started in audit mode. */ -+#endif /* AUDIT_SHELL */ -+ - /* Non-zero means that this shell is running in `privileged' mode. This - is required if the shell is to run setuid. If the `-p' option is - not supplied at startup, and the real and effective uids or gids -diff -urp bash-3.2.orig/flags.h bash-3.2/flags.h ---- bash-3.2.orig/flags.h 2007-01-03 09:01:06.000000000 -0500 -+++ bash-3.2/flags.h 2007-01-20 11:59:23.000000000 -0500 -@@ -66,6 +66,10 @@ extern int restricted; - extern int restricted_shell; - #endif /* RESTRICTED_SHELL */ - -+#if defined (AUDIT_SHELL) -+extern int audited; -+#endif /* AUDIT_SHELL */ -+ - extern int *find_flag __P((int)); - extern int change_flag __P((int, int)); - extern char *which_set_flags __P((void)); -Only in bash-3.2: .made -diff -urp bash-3.2.orig/Makefile.in bash-3.2/Makefile.in ---- bash-3.2.orig/Makefile.in 2007-01-03 09:01:06.000000000 -0500 -+++ bash-3.2/Makefile.in 2007-01-20 11:59:23.000000000 -0500 -@@ -366,6 +366,8 @@ MALLOC_LIBRARY = @MALLOC_LIBRARY@ - MALLOC_LDFLAGS = @MALLOC_LDFLAGS@ - MALLOC_DEP = @MALLOC_DEP@ - -+AUDIT_LIB = @AUDIT_LIB@ -+ - ALLOC_HEADERS = $(ALLOC_LIBSRC)/getpagesize.h $(ALLOC_LIBSRC)/shmalloc.h \ - $(ALLOC_LIBSRC)/imalloc.h $(ALLOC_LIBSRC)/mstats.h \ - $(ALLOC_LIBSRC)/table.h $(ALLOC_LIBSRC)/watch.h -@@ -386,7 +388,7 @@ BASHINCFILES = $(BASHINCDIR)/posixstat. - $(BASHINCDIR)/ocache.h - - LIBRARIES = $(SHLIB_LIB) $(READLINE_LIB) $(HISTORY_LIB) $(TERMCAP_LIB) $(GLOB_LIB) \ -- $(TILDE_LIB) $(MALLOC_LIB) $(INTL_LIB) $(LOCAL_LIBS) -+ $(TILDE_LIB) $(MALLOC_LIB) $(INTL_LIB) $(LOCAL_LIBS) $(AUDIT_LIB) - - LIBDEP = $(SHLIB_DEP) $(INTL_DEP) $(READLINE_DEP) $(HISTORY_DEP) $(TERMCAP_DEP) $(GLOB_DEP) \ - $(TILDE_DEP) $(MALLOC_DEP) -diff -urp bash-3.2.orig/parse.y bash-3.2/parse.y ---- bash-3.2.orig/parse.y 2007-01-03 09:01:06.000000000 -0500 -+++ bash-3.2/parse.y 2007-01-20 11:59:23.000000000 -0500 -@@ -258,7 +258,7 @@ 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; -+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) */ -diff -urp bash-3.2.orig/shell.c bash-3.2/shell.c ---- bash-3.2.orig/shell.c 2007-01-03 09:01:06.000000000 -0500 -+++ bash-3.2/shell.c 2007-01-20 12:04:23.000000000 -0500 -@@ -240,6 +240,9 @@ struct { - #if defined (RESTRICTED_SHELL) - { "restricted", Int, &restricted, (char **)0x0 }, - #endif -+#if defined (AUDIT_SHELL) -+ { "audit", Int, &audited, (char **)0x0 }, -+#endif - { "verbose", Int, &echo_input_at_read, (char **)0x0 }, - { "version", Int, &do_version, (char **)0x0 }, - { "wordexp", Int, &wordexp_only, (char **)0x0 }, -@@ -644,6 +647,10 @@ main (argc, argv, env) - maybe_make_restricted (shell_name); - #endif /* RESTRICTED_SHELL */ - -+#if defined (AUDIT_SHELL) -+ maybe_make_audited (shell_name); -+#endif -+ - if (wordexp_only) - { - startup_state = 3; -@@ -1143,6 +1150,29 @@ maybe_make_restricted (name) - } - #endif /* RESTRICTED_SHELL */ - -+#if defined (AUDIT_SHELL) -+/* Perhaps make this shell an `audited' one, based on NAME. If the -+ basename of NAME is "aubash", then this shell is audited. The -+ name of the audited shell is a configurable option, see config.h. -+ In an audited shell, all actions performed by root will be logged -+ to the audit system. -+ Do this also if `audited' is already set to 1 maybe the shell was -+ started with --audit. */ -+int -+maybe_make_audited (name) -+ char *name; -+{ -+ char *temp; -+ -+ temp = base_pathname (name); -+ if (*temp == '-') -+ temp++; -+ if (audited || (STREQ (temp, AUDIT_SHELL_NAME))) -+ audited = 1; -+ return (audited); -+} -+#endif /* AUDIT_SHELL */ -+ - /* Fetch the current set of uids and gids and return 1 if we're running - setuid or setgid. */ - static int diff --git a/CWRU/devfd.c b/CWRU/devfd.c deleted file mode 100644 index e5a357487..000000000 --- a/CWRU/devfd.c +++ /dev/null @@ -1,43 +0,0 @@ -#include - -#include -#include - -#include -#include -#include - -#if defined (S_IFDIR) && !defined (S_ISDIR) -#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) /* directory */ -#endif - -main(c, v) -int c; -char **v; -{ - struct stat sb; - int r, fd; - char fbuf[32]; - - r = stat("/dev/fd", &sb); - /* test -d /dev/fd */ - if (r == -1 || S_ISDIR (sb.st_mode) == 0) - exit (1); - /* test -r /dev/fd/0 */ - r = access ("/dev/fd/0", R_OK); - if (r == -1) - exit (1); - /* exec 3 - -#include -#include - -#include -#include -#include - -#if defined (S_IFDIR) && !defined (S_ISDIR) -#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) /* directory */ -#endif - -main(c, v) -int c; -char **v; -{ - struct stat sb; - int r, fd; - char fbuf[32]; - - r = stat("/dev/fd", &sb); - /* test -d /dev/fd */ - if (r == -1 || S_ISDIR (sb.st_mode) == 0) - exit (1); - /* test -r /dev/stdin < /dev/null */ - fd = open("/dev/null", O_RDONLY, 0666); - if (fd == -1) - exit (2); - if (dup2(fd, 0) == -1) - exit (1); - r = access("/dev/stdin", R_OK); - if (r == -1) - exit (1); - exit (0); -} - - diff --git a/CWRU/history-syslog.1 b/CWRU/history-syslog.1 deleted file mode 100644 index d5240d371..000000000 --- a/CWRU/history-syslog.1 +++ /dev/null @@ -1,47 +0,0 @@ -#Date: Mon, 14 Dec 1998 23:10:43 -0800 -#From: John Kinsella -#To: chet@po.cwru.edu -#Subject: Re: bash patch - -diff -c bash-2.02.1-old/bashhist.c bash-2.02.1/bashhist.c -*** bash-2.02.1-old/bashhist.c Fri Feb 27 09:34:33 1998 ---- bash-2.02.1/bashhist.c Mon Dec 14 22:39:23 1998 -*************** -*** 50,55 **** ---- 50,65 ---- - # include "bashline.h" - #endif - -+ /* SYSLOG_HISTORY - define this if you want all commands entered into -+ * the shell to be echoed to syslog. -+ * (feature added by John Kinsella) -+ */ -+ #define SYSLOG_HISTORY 1 -+ -+ #if defined (SYSLOG_HISTORY) -+ # include -+ #endif -+ - #if !defined (errno) - extern int errno; - #endif -*************** -*** 566,571 **** ---- 576,587 ---- - { - hist_last_line_added = 1; - add_history (line); -+ /* next 3 lines added by John Kinsella -+ * Sends history line to syslog. -+ */ -+ #if defined( SYSLOG_HISTORY ) -+ syslog( LOG_INFO, "%d - %s", current_user.euid, line ); -+ #endif - history_lines_this_session++; - } - using_history (); -# -#-- -#John Kinsella UNIX ISA -#jlk@digex.net DIGEX West Coast Facility -#voice 408-873-4278 pager 888-751-7595 diff --git a/CWRU/intmax.c b/CWRU/intmax.c deleted file mode 100644 index cd1411165..000000000 --- a/CWRU/intmax.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include - -#ifndef INTMAX_MAX -# ifdef LLONG_MAX -# define INTMAX_MAX LLONG_MAX -# else -# define INTMAX_MAX LONG_MAX -# endif -#endif - -main(int c, char **v) -{ - printf ("%d\n", INT_MAX); - printf ("%ld\n", LONG_MAX); - printf ("%lld\n", INTMAX_MAX); - exit(0); -} diff --git a/CWRU/mh-folder-comp b/CWRU/mh-folder-comp deleted file mode 100644 index 905000c7a..000000000 --- a/CWRU/mh-folder-comp +++ /dev/null @@ -1,449 +0,0 @@ -From jwe@che.utexas.edu Wed Sep 21 17:23:40 1994 -Flags: 10 -Return-Path: jwe@che.utexas.edu -Received: from po.CWRU.Edu (root@po.CWRU.Edu [129.22.4.2]) by odin.INS.CWRU.Edu with ESMTP (8.6.8.1+cwru/CWRU-2.1-ins) - id RAA04010; Wed, 21 Sep 1994 17:23:39 -0400 (from jwe@che.utexas.edu for ) -Received: from life.ai.mit.edu (life.ai.mit.edu [128.52.32.80]) by po.CWRU.Edu with SMTP (8.6.8.1+cwru/CWRU-2.2) - id RAA02121; Wed, 21 Sep 1994 17:23:28 -0400 (from jwe@che.utexas.edu for ) -Received: from schoch.che.utexas.edu by life.ai.mit.edu (4.1/AI-4.10) for chet@po.cwru.edu id AA09989; Wed, 21 Sep 94 17:23:17 EDT -Received: from localhost (jwe@localhost) by schoch.che.utexas.edu (8.6.8.1/8.6) with SMTP id QAA05737; Wed, 21 Sep 1994 16:22:01 -0500 -Message-Id: <199409212122.QAA05737@schoch.che.utexas.edu> -To: march@tudor.com -Cc: bug-bash@prep.ai.mit.edu -Subject: Re: Completion feature possible? -In-Reply-To: Your message of 21 Sep 94 13:30:22 EDT -Date: Wed, 21 Sep 94 16:22:00 EDT -From: John Eaton - -Gregory F. March wrote: - -: I was having a discussion about MH with one of my friends the other -: day and I got to thinking that the +folder/subfolder scheme for naming -: mail folders is a real pain because completion doesn't work on -: them. Someone then mentioned that zsh (I think) has the ability to -: specify how to complete (I guess where to look for the files) for -: different prefixes. Bash right now knows about '@', '~', and '$' (any -: others?). It would be really helpful if one could define something -: like: -: -: completion '+' "$HOME/Mail" -: -: in a config file someplace. Would this be easy? Is there a list of -: TODO item that someone might want to add this to? - -It would be nice to have a general completion feature like this. - -Until that happens, maybe you will find the following patch useful. -It makes MH folder name completion work with bash. The diffs are -relative to version 1.14.2. - -I realize that changes to readline.c and and complete.c are not good -since they add some MH-specific stuff to the readline code and not to -bash, but when I first wrote this, I had no idea what else to do. - -Chet, would you consider adding this if it were cleaned up a bit? -Made optional with cpp conditionals? - -This feature has been very useful to me for the last several years -(since about 1.05 or 1.06, I think). - -Thanks, - --- -John W. Eaton | 4.3BSD is not perfect. -- Leffler, et al. (1989). -jwe@che.utexas.edu | - - --------------------------------cut here------------------------------- -diff -rc bash-1.14.2/bashline.c bash-1.14.2.local/bashline.c -*** bash-1.14.2/bashline.c Wed Aug 3 09:32:45 1994 ---- bash-1.14.2.local/bashline.c Wed Sep 21 15:39:04 1994 -*************** -*** 58,63 **** ---- 58,64 ---- - static char *hostname_completion_function (); - static char *command_word_completion_function (); - static char *command_subst_completion_function (); -+ static char *mh_folder_completion_function (); - - static void snarf_hosts_from_file (), add_host_name (); - static void sort_hostname_list (); -*************** -*** 90,95 **** ---- 91,98 ---- - bash_complete_username_internal (), - bash_complete_hostname (), bash_possible_hostname_completions (), - bash_complete_hostname_internal (), -+ bash_complete_mh_folder (), bash_possible_mh_folder_completions (), -+ bash_complete_mh_folder_internal (), - bash_complete_variable (), bash_possible_variable_completions (), - bash_complete_variable_internal (), - bash_complete_command (), bash_possible_command_completions (), -*************** -*** 134,140 **** - rl_terminal_name = get_string_value ("TERM"); - rl_instream = stdin; - rl_outstream = stderr; -! rl_special_prefixes = "$@"; - - /* Allow conditional parsing of the ~/.inputrc file. */ - rl_readline_name = "Bash"; ---- 137,143 ---- - rl_terminal_name = get_string_value ("TERM"); - rl_instream = stdin; - rl_outstream = stderr; -! rl_special_prefixes = "$@+"; - - /* Allow conditional parsing of the ~/.inputrc file. */ - rl_readline_name = "Bash"; -*************** -*** 193,198 **** ---- 196,207 ---- - rl_bind_key_in_map ('@', bash_possible_hostname_completions, - emacs_ctlx_keymap); - -+ rl_add_defun ("complete-mh-folder", bash_complete_mh_folder, META('+')); -+ rl_add_defun ("possible-mh-folder-completions", -+ bash_possible_mh_folder_completions, -1); -+ rl_bind_key_in_map ('+', bash_possible_mh_folder_completions, -+ emacs_ctlx_keymap); -+ - rl_add_defun ("complete-variable", bash_complete_variable, -1); - rl_bind_key_in_map ('$', bash_complete_variable, emacs_meta_keymap); - rl_add_defun ("possible-variable-completions", -*************** -*** 656,661 **** ---- 665,677 ---- - if (!matches && *text == '@') - matches = completion_matches (text, hostname_completion_function); - -+ /* Another one. Why not? If the word starts in '+', then look for -+ matching mh folders for completion first. */ -+ if (!matches && *text == '+') -+ { -+ matches = completion_matches (text, mh_folder_completion_function); -+ } -+ - /* And last, (but not least) if this word is in a command position, then - complete over possible command names, including aliases, functions, - and command names. */ -*************** -*** 1077,1082 **** ---- 1093,1185 ---- - return ((char *)NULL); - } - -+ /* How about a completion function for mh folders? */ -+ static char * -+ mh_folder_completion_function (text, state) -+ int state; -+ char *text; -+ { -+ extern int rl_filename_completion_desired; -+ -+ extern char *get_mh_path (); -+ -+ static char *mh_path = (char *)NULL; -+ static int len; -+ static int istate; -+ static char *val; -+ char *hint; -+ -+ static char *mh_folder_hint = (char *)NULL; -+ -+ /* If we don't have any state, make some. */ -+ if (!state) -+ { -+ val = (char *)NULL; -+ -+ if (mh_path) -+ free (mh_path); -+ -+ mh_path = get_mh_path (); -+ if (!mh_path && !(hint[1] == '/' || hint[1] == '.')) -+ return ((char *)NULL); -+ -+ len = strlen (mh_path); -+ } -+ -+ if (mh_folder_hint) -+ free (mh_folder_hint); -+ -+ hint = text; -+ if (*hint == '+') -+ hint++; -+ -+ mh_folder_hint = (char *)xmalloc (2 + len + strlen (hint)); -+ if (*hint == '/' || *hint == '.') { -+ len = -1; -+ sprintf (mh_folder_hint, "%s", hint); -+ } else -+ sprintf (mh_folder_hint, "%s/%s", mh_path, hint); -+ -+ istate = (val != (char *)NULL); -+ -+ again: -+ val = filename_completion_function (mh_folder_hint, istate); -+ istate = 1; -+ -+ if (!val) -+ { -+ return ((char *)NULL); -+ } -+ else -+ { -+ char *ptr = val + len + 1, *temp; -+ struct stat sb; -+ int status = stat (val, &sb); -+ -+ if (status != 0) -+ return ((char *)NULL); -+ -+ if ((sb.st_mode & S_IFDIR) == S_IFDIR) -+ { -+ temp = (char *)xmalloc (2 + strlen (ptr)); -+ *temp = '+'; -+ strcpy (temp + 1, ptr); -+ -+ free (val); -+ val = ""; -+ -+ rl_filename_completion_desired = 1; -+ -+ return (temp); -+ } -+ else -+ { -+ free (val); -+ } -+ goto again; -+ } -+ } -+ - /* History and alias expand the line. */ - static char * - history_expand_line_internal (line) -*************** -*** 1628,1633 **** ---- 1731,1773 ---- - { - bash_specific_completion - (what_to_do, (Function *)username_completion_function); -+ } -+ -+ static void -+ bash_complete_mh_folder (ignore, ignore2) -+ int ignore, ignore2; -+ { -+ bash_complete_mh_folder_internal (TAB); -+ } -+ -+ static void -+ bash_possible_mh_folder_completions (ignore, ignore2) -+ int ignore, ignore2; -+ { -+ bash_complete_mh_folder_internal ('?'); -+ } -+ -+ static void -+ bash_complete_mh_folder_internal (what_to_do) -+ int what_to_do; -+ { -+ Function *orig_func; -+ CPPFunction *orig_attempt_func; -+ char *orig_rl_completer_word_break_characters; -+ extern char *rl_completer_word_break_characters; -+ -+ orig_func = rl_completion_entry_function; -+ orig_attempt_func = rl_attempted_completion_function; -+ orig_rl_completer_word_break_characters = rl_completer_word_break_characters; -+ rl_completion_entry_function = (Function *)mh_folder_completion_function; -+ rl_attempted_completion_function = (CPPFunction *)NULL; -+ rl_completer_word_break_characters = " \t\n\"\'"; -+ -+ rl_complete_internal (what_to_do); -+ -+ rl_completion_entry_function = orig_func; -+ rl_attempted_completion_function = orig_attempt_func; -+ rl_completer_word_break_characters = orig_rl_completer_word_break_characters; - } - - static void -Only in bash-1.14.2.local: bashline.c.orig -diff -rc bash-1.14.2/lib/readline/complete.c bash-1.14.2.local/lib/readline/complete.c -*** bash-1.14.2/lib/readline/complete.c Tue Jul 26 12:59:57 1994 ---- bash-1.14.2.local/lib/readline/complete.c Wed Sep 21 15:41:19 1994 -*************** -*** 733,751 **** - if (rl_filename_completion_desired) - { - struct stat finfo; -! char *filename = tilde_expand (matches[0]); - -! if ((stat (filename, &finfo) == 0) && S_ISDIR (finfo.st_mode)) - { -! if (rl_line_buffer[rl_point] != '/') -! rl_insert_text ("/"); - } -! else - { -! if (rl_point == rl_end) -! rl_insert_text (temp_string); - } -- free (filename); - } - else - { ---- 733,768 ---- - if (rl_filename_completion_desired) - { - struct stat finfo; -! char *tilde_expand (); -! char *plus_expand (); -! char *filename = (char *) NULL; - -! switch (*matches[0]) - { -! case '+': -! filename = plus_expand (matches[0]); -! break; -! case '~': -! default: -! filename = tilde_expand (matches[0]); -! break; - } -! -! if (filename) - { -! if ((stat (filename, &finfo) == 0) -! && S_ISDIR (finfo.st_mode)) -! { -! if (rl_line_buffer[rl_point] != '/') -! rl_insert_text ("/"); -! } -! else -! { -! if (rl_point == rl_end) -! rl_insert_text (temp_string); -! } -! free (filename); - } - } - else - { -Only in bash-1.14.2.local/lib/readline: diffs -diff -rc bash-1.14.2/lib/readline/readline.c bash-1.14.2.local/lib/readline/readline.c -*** bash-1.14.2/lib/readline/readline.c Fri Aug 12 12:47:46 1994 ---- bash-1.14.2.local/lib/readline/readline.c Wed Sep 21 15:36:07 1994 -*************** -*** 23,28 **** ---- 23,29 ---- - #define READLINE_LIBRARY - - #include -+ #include - #include - #include - #if !defined (NO_SYS_FILE) -*************** -*** 3518,3523 **** ---- 3519,3616 ---- - } - - #endif /* TEST */ -+ -+ #define cr_whitespace(c) ((c) == '\r' || (c) == '\n' || whitespace(c)) -+ -+ char * -+ get_mh_path () -+ { -+ static FILE *fp = (FILE *)NULL; -+ char buf[512]; /* XXX */ -+ char profile[512]; /* XXX */ -+ char *bp; -+ char *temp_home; -+ char *temp_path; -+ -+ temp_home = (char *)getenv ("HOME"); -+ if (!temp_home) -+ return ((char *)NULL); -+ -+ strcpy (profile, temp_home); -+ strcat (profile, "/.mh_profile"); -+ -+ if (fp) -+ fclose (fp); -+ -+ fp = fopen (profile, "r"); -+ if (fp == (FILE *)NULL) -+ return ((char *)NULL); -+ -+ while (fgets (buf, 512, fp) != (char *)NULL) /* XXX */ -+ { -+ if ((bp = strstr (buf, "Path:")) != (char *)NULL) -+ { -+ bp += 5; -+ while (whitespace (*bp)) -+ bp++; -+ -+ if (*bp == '\0') -+ return ((char *)NULL); -+ -+ temp_path = (char *)xmalloc (3 + strlen (bp) + strlen (temp_home)); -+ -+ strcpy (temp_path, temp_home); -+ strcat (temp_path, "/"); -+ strcat (temp_path, bp); -+ -+ bp = temp_path; -+ -+ while (!(cr_whitespace (*bp))) -+ bp++; -+ -+ *bp = '\0'; -+ -+ return temp_path; -+ } -+ } -+ -+ return ((char *)NULL); -+ } -+ -+ /* Expand FILENAME if it begins with a plus. This always returns -+ a new string. */ -+ char * -+ plus_expand (filename) -+ char *filename; -+ { -+ static char *dirname = (char *)NULL; -+ -+ if (filename && *filename == '+') -+ { -+ char *mh_path = get_mh_path (); -+ -+ if (filename[1] == '/' || filename[1] == '.') -+ { -+ dirname = (char *)xmalloc (1 + strlen (filename)); -+ -+ strcpy(dirname, filename+1); -+ -+ return dirname; -+ } -+ -+ if (mh_path) -+ { -+ dirname = (char *)xmalloc (1 + strlen (filename) + strlen (mh_path)); -+ -+ strcpy (dirname, mh_path); -+ strcat (dirname, "/"); -+ strcat (dirname, filename+1); -+ -+ return dirname; -+ } -+ } -+ return (char *)NULL; -+ } - - - /* - diff --git a/CWRU/misc/asort.c b/CWRU/misc/asort.c deleted file mode 100644 index 5a3a304bd..000000000 --- a/CWRU/misc/asort.c +++ /dev/null @@ -1,52 +0,0 @@ -#include -#include - -#include -#include -#include - -static int -qsort_strcmp(s1, s2) -char **s1, **s2; -{ - return (strcoll(*s1, *s2)); -} - -static void -usage() -{ - fprintf(stderr, "asort: usage: asort [-v] args\n"); -} - -int -main(c, v) -int c; -char **v; -{ - int i, verbose; - char *dlocale; - - verbose = 0; - while ((i = getopt(c, v, "v")) != -1) { - switch (i) { - case 'v': - verbose = 1; break; - case '?': - default: - usage(); - exit(2); - } - } - c -= optind; - v += optind; - - dlocale = setlocale(LC_ALL, ""); - if (verbose) - printf("default locale = %s\n", dlocale ? dlocale : "''"); - qsort(v, c, sizeof(char *), qsort_strcmp); - for (i = 0; i < c; i++) { - printf("%s ", v[i]); - } - printf("\n"); - exit(0); -} diff --git a/CWRU/misc/copyright b/CWRU/misc/copyright deleted file mode 100644 index df1b6a7f1..000000000 --- a/CWRU/misc/copyright +++ /dev/null @@ -1,17 +0,0 @@ -/* Copyright (C) 2008,2009 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 3 of the License, 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. If not, see . -*/ diff --git a/CWRU/misc/endian.c b/CWRU/misc/endian.c deleted file mode 100644 index 3dd30b37d..000000000 --- a/CWRU/misc/endian.c +++ /dev/null @@ -1,21 +0,0 @@ -#include - -main() -{ - -union { - long int l; - char c[sizeof(long int)]; -} u; - int x0, x1, x2, x3; - - u.l = 1; - x0 = u.c[0]; - x3 = u.c[sizeof (long int) - 1]; - printf ("x0 = %d x3 = %d (%s)\n", x0, x3, x3 == 1 ? "bigendian" : "littleendian"); - x0 = u.l >> 24; - x1 = u.l >> 16; - x2 = u.l >> 8; - x3 = u.l & 0xff; - printf ("x0:x3: %d %d %d %d\n", x0, x1, x2, x3); -} diff --git a/CWRU/misc/endian2.c b/CWRU/misc/endian2.c deleted file mode 100644 index b84754bbd..000000000 --- a/CWRU/misc/endian2.c +++ /dev/null @@ -1,13 +0,0 @@ -#include - -int -main() -{ - int i = 0x12345678; - char *x; - - x = (char *)&i; - printf ("0x%x\n", *x); - printf ((*x == 0x78) ? "little endian\n" : "big endian\n"); - return 0; -} diff --git a/CWRU/misc/endian3.c b/CWRU/misc/endian3.c deleted file mode 100644 index 86b478bd9..000000000 --- a/CWRU/misc/endian3.c +++ /dev/null @@ -1,21 +0,0 @@ -#include - -main() -{ - - union { - int l; - char c[sizeof(int)]; - } u; - int x0, x1, x2, x3; - - u.l = 0x012345678; - x0 = u.c[0]; - x3 = u.c[sizeof (int) - 1]; - printf ("x0 = 0x%x x3 = 0x%x (%s)\n", x0, x3, x3 == 0x78 ? "bigendian" : "littleendian"); - x0 = (u.l >> 24) & 0xff; - x1 = (u.l >> 16) & 0xff; - x2 = (u.l >> 8) & 0xff; - x3 = u.l & 0xff; - printf ("big endian x0:x3: %x %x %x %x\n", x0, x1, x2, x3); -} diff --git a/CWRU/misc/getwd.bsd44.c b/CWRU/misc/getwd.bsd44.c deleted file mode 100644 index f5dd39bba..000000000 --- a/CWRU/misc/getwd.bsd44.c +++ /dev/null @@ -1,254 +0,0 @@ -/* - * Copyright (c) 1989, 1991 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)getcwd.c 5.11 (Berkeley) 2/24/91"; -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include -#if defined (HAVE_DIRENT_H) -#include -#else -#include -#endif -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifndef HAVE_DIRENT_H -# define dirent direct -#endif - -#define ISDOT(dp) \ - (dp->d_name[0] == '.' && (dp->d_name[1] == '\0' || \ - dp->d_name[1] == '.' && dp->d_name[2] == '\0')) - -#ifndef dirfd -# define dirfd(d) ((d)->dd_fd) -#endif - -char * -getcwd(pt, size) - char *pt; - size_t size; -{ - register struct dirent *dp; - register DIR *dir; - register dev_t dev; - register ino_t ino; - register int first; - register char *bpt, *bup; - struct stat s; - dev_t root_dev; - ino_t root_ino; - size_t ptsize, upsize; - int save_errno; - char *ept, *eup, *up; - - /* - * If no buffer specified by the user, allocate one as necessary. - * If a buffer is specified, the size has to be non-zero. The path - * is built from the end of the buffer backwards. - */ - if (pt) { - ptsize = 0; - if (!size) { - errno = EINVAL; - return((char *)NULL); - } - ept = pt + size; - } else { - if (!(pt = (char *)malloc(ptsize = 1024 - 4))) - return((char *)NULL); - ept = pt + ptsize; - } - bpt = ept - 1; - *bpt = '\0'; - - /* - * Allocate bytes (1024 - malloc space) for the string of "../"'s. - * Should always be enough (it's 340 levels). If it's not, allocate - * as necessary. Special * case the first stat, it's ".", not "..". - */ - if (!(up = (char *)malloc(upsize = 1024 - 4))) - goto err; - eup = up + MAXPATHLEN; - bup = up; - up[0] = '.'; - up[1] = '\0'; - - /* Save root values, so know when to stop. */ - if (stat("/", &s)) - goto err; - root_dev = s.st_dev; - root_ino = s.st_ino; - - errno = 0; /* XXX readdir has no error return. */ - - for (first = 1;; first = 0) { - /* Stat the current level. */ - if (lstat(up, &s)) - goto err; - - /* Save current node values. */ - ino = s.st_ino; - dev = s.st_dev; - - /* Check for reaching root. */ - if (root_dev == dev && root_ino == ino) { - *--bpt = '/'; - /* - * It's unclear that it's a requirement to copy the - * path to the beginning of the buffer, but it's always - * been that way and stuff would probably break. - */ - (void)bcopy(bpt, pt, ept - bpt); - free(up); - return(pt); - } - - /* - * Build pointer to the parent directory, allocating memory - * as necessary. Max length is 3 for "../", the largest - * possible component name, plus a trailing NULL. - */ - if (bup + 3 + MAXNAMLEN + 1 >= eup) { - if (!(up = (char *)realloc(up, upsize *= 2))) - goto err; - eup = up + upsize; - } - *bup++ = '.'; - *bup++ = '.'; - *bup = '\0'; - - /* Open and stat parent directory. */ - if (!(dir = opendir(up)) || fstat(dirfd(dir), &s)) - goto err; - - /* Add trailing slash for next directory. */ - *bup++ = '/'; - - /* - * If it's a mount point, have to stat each element because - * the inode number in the directory is for the entry in the - * parent directory, not the inode number of the mounted file. - */ - save_errno = 0; - if (s.st_dev == dev) { - for (;;) { - if (!(dp = readdir(dir))) - goto notfound; - if (dp->d_fileno == ino) - break; - } - } else - for (;;) { - if (!(dp = readdir(dir))) - goto notfound; - if (ISDOT(dp)) - continue; - bcopy(dp->d_name, bup, dp->d_namlen + 1); - - /* Save the first error for later. */ - if (lstat(up, &s)) { - if (!save_errno) - save_errno = errno; - errno = 0; - continue; - } - if (s.st_dev == dev && s.st_ino == ino) - break; - } - - /* - * Check for length of the current name, preceding slash, - * leading slash. - */ - if (bpt - pt <= dp->d_namlen + (first ? 1 : 2)) { - size_t len, off; - - if (!ptsize) { - errno = ERANGE; - goto err; - } - off = bpt - pt; - len = ept - bpt; - if (!(pt = (char *)realloc(pt, ptsize *= 2))) - goto err; - bpt = pt + off; - ept = pt + ptsize; - (void)bcopy(bpt, ept - len, len); - bpt = ept - len; - } - if (!first) - *--bpt = '/'; - bpt -= dp->d_namlen; - bcopy(dp->d_name, bpt, dp->d_namlen); - (void)closedir(dir); - - /* Truncate any file name. */ - *bup = '\0'; - } - -notfound: - /* - * If readdir set errno, use it, not any saved error; otherwise, - * didn't find the current directory in its parent directory, set - * errno to ENOENT. - */ - if (!errno) - errno = save_errno ? save_errno : ENOENT; - /* FALLTHROUGH */ -err: - if (ptsize) - free(pt); - free(up); - return((char *)NULL); -} - -char * -getwd(buf) - char *buf; -{ - char *p; - - if (p = getcwd(buf, MAXPATHLEN)) - return(p); - (void)strcpy(buf, strerror(errno)); - return((char *)NULL); -} diff --git a/CWRU/misc/iptrt.c b/CWRU/misc/iptrt.c deleted file mode 100644 index b9d1e2acb..000000000 --- a/CWRU/misc/iptrt.c +++ /dev/null @@ -1,12 +0,0 @@ -#include - -main() -{ - if (sizeof(char *) == sizeof(long)) - printf("long\n"); - else if (sizeof(char *) == sizeof(short)) - printf("short\n"); - else - printf("int\n"); - exit(0); -} diff --git a/CWRU/misc/nofd0.c b/CWRU/misc/nofd0.c deleted file mode 100644 index 88cae1a8b..000000000 --- a/CWRU/misc/nofd0.c +++ /dev/null @@ -1,9 +0,0 @@ -main(c, v, e) -int c; -char **v, **e; -{ - close(0); - execv(v[1], v+1); -} - - diff --git a/CWRU/misc/pcat.c b/CWRU/misc/pcat.c deleted file mode 100644 index f5201280d..000000000 --- a/CWRU/misc/pcat.c +++ /dev/null @@ -1,239 +0,0 @@ -/* $Header:cat.c 12.0$ */ -/* $ACIS:cat.c 12.0$ */ -/* $Source: /ibm/acis/usr/src/bin/RCS/cat.c,v $ */ - -#ifndef lint -static char *rcsid = "$Header:cat.c 12.0$"; -#endif - -/* - * Copyright (c) 1980 Regents of the University of California. - * All rights reserved. The Berkeley software License Agreement - * specifies the terms and conditions for redistribution. - */ - -#ifndef lint -static char sccsid[] = "@(#)cat.c 5.2 (Berkeley) 12/6/85"; -#endif not lint - -/* - * Concatenate files. - */ - -#include -#include -#include - -/* #define OPTSIZE BUFSIZ /* define this only if not 4.2 BSD or beyond */ - -int bflg, eflg, nflg, sflg, tflg, uflg, vflg; -int spaced, col, lno, inline, ibsize, obsize; - -#include - -sigpipe() -{ - write(2, "pcat: caught SIGPIPE\n", 21); - exit(1); -} - -main(argc, argv) -char **argv; -{ - int fflg = 0; - register FILE *fi; - register c; - int dev, ino = -1; - struct stat statb; - int retval = 0; - - signal(SIGPIPE, sigpipe); - lno = 1; - for( ; argc>1 && argv[1][0]=='-'; argc--,argv++) { - switch(argv[1][1]) { - case 0: - break; - case 'u': - setbuf(stdout, (char *)NULL); - uflg++; - continue; - case 'n': - nflg++; - continue; - case 'b': - bflg++; - nflg++; - continue; - case 'v': - vflg++; - continue; - case 's': - sflg++; - continue; - case 'e': - eflg++; - vflg++; - continue; - case 't': - tflg++; - vflg++; - continue; - } - break; - } - if (fstat(fileno(stdout), &statb) == 0) { - statb.st_mode &= S_IFMT; - if (statb.st_mode!=S_IFCHR && statb.st_mode!=S_IFBLK) { - dev = statb.st_dev; - ino = statb.st_ino; - } -#ifndef OPTSIZE - obsize = statb.st_blksize; -#endif - } - else - obsize = 0; - if (argc < 2) { - argc = 2; - fflg++; - } - while (--argc > 0) { - if (fflg || (*++argv)[0]=='-' && (*argv)[1]=='\0') - fi = stdin; - else { - if ((fi = fopen(*argv, "r")) == NULL) { - perror(*argv); - retval = 1; - continue; - } - } - if (fstat(fileno(fi), &statb) == 0) { - if ((statb.st_mode & S_IFMT) == S_IFREG && - statb.st_dev==dev && statb.st_ino==ino) { - fprintf(stderr, "cat: input %s is output\n", - fflg?"-": *argv); - fclose(fi); - retval = 1; - continue; - } -#ifndef OPTSIZE - ibsize = statb.st_blksize; -#endif - } - else - ibsize = 0; - if (nflg||sflg||vflg) - copyopt(fi); - else if (uflg) { - while ((c = getc(fi)) != EOF) - putchar(c); - } else - retval |= fastcat(fileno(fi)); /* no flags specified */ - if (fi!=stdin) - fclose(fi); - else - clearerr(fi); /* reset sticky eof */ - if (ferror(stdout)) { - fprintf(stderr, "cat: output write error\n"); - retval = 1; - break; - } - } - exit(retval); -} - -copyopt(f) - register FILE *f; -{ - register int c; - -top: - c = getc(f); - if (c == EOF) - return; - if (c == '\n') { - if (inline == 0) { - if (sflg && spaced) - goto top; - spaced = 1; - } - if (nflg && bflg==0 && inline == 0) - printf("%6d\t", lno++); - if (eflg) - putchar('$'); - putchar('\n'); - inline = 0; - goto top; - } - if (nflg && inline == 0) - printf("%6d\t", lno++); - inline = 1; - if (vflg) { - if (tflg==0 && c == '\t') - putchar(c); - else { - if (c > 0177) { - printf("M-"); - c &= 0177; - } - if (c < ' ') - printf("^%c", c+'@'); - else if (c == 0177) - printf("^?"); - else - putchar(c); - } - } else - putchar(c); - spaced = 0; - goto top; -} - -fastcat(fd) -register int fd; -{ - register int buffsize, n, nwritten, offset; - register char *buff; - struct stat statbuff; - char *malloc(); - -#ifndef OPTSIZE - if (obsize) - buffsize = obsize; /* common case, use output blksize */ - else if (ibsize) - buffsize = ibsize; - else - buffsize = BUFSIZ; -#else - buffsize = OPTSIZE; -#endif - - if ((buff = malloc(buffsize)) == NULL) { - perror("cat: no memory"); - return (1); - } - - /* - * Note that on some systems (V7), very large writes to a pipe - * return less than the requested size of the write. - * In this case, multiple writes are required. - */ - while ((n = read(fd, buff, buffsize)) > 0) { - offset = 0; - do { - nwritten = write(fileno(stdout), &buff[offset], n); - if (nwritten <= 0) { - perror("cat: write error"); - exit(2); - } - offset += nwritten; - } while ((n -= nwritten) > 0); - } - - free(buff); - if (n < 0) { - perror("cat: read error"); - return (1); - } - return (0); -} diff --git a/CWRU/misc/pgrp.c b/CWRU/misc/pgrp.c deleted file mode 100644 index 507da56bb..000000000 --- a/CWRU/misc/pgrp.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -int pid; -int pg1; - -main() -{ - pid = getpid(); - pg1 = getpgrp(0); - - printf("pid = %d, pgrp = %d\n", pid, pg1); -} diff --git a/CWRU/misc/pid.c b/CWRU/misc/pid.c deleted file mode 100644 index 458fde435..000000000 --- a/CWRU/misc/pid.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -main() -{ - fprintf(stderr, "%d\n", getpid()); - exit(0); -} diff --git a/CWRU/misc/rangecmp.c b/CWRU/misc/rangecmp.c deleted file mode 100644 index 8c9650213..000000000 --- a/CWRU/misc/rangecmp.c +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include - -#include -#include -#include - -static void -usage() -{ - fprintf(stderr, "rangecmp: usage: rangecmp [-v] start test end\n"); -} - -int -main(c, v) -int c; -char **v; -{ - int i, verbose, r1, r2; - char *dlocale; - - verbose = 0; - while ((i = getopt(c, v, "v")) != -1) { - switch (i) { - case 'v': - verbose = 1; break; - case '?': - default: - usage(); - exit(2); - } - } - c -= optind; - v += optind; - - dlocale = setlocale(LC_ALL, ""); - if (verbose) - printf("default locale = %s\n", dlocale ? dlocale : "''"); - r1 = strcoll (v[1], v[0]); - printf("strcoll (%s, %s) -> %d\n", v[1], v[0], r1); - r2 = strcoll (v[1], v[2]); - printf("strcoll (%s, %s) -> %d\n", v[1], v[2], r2); - - exit(0); -} diff --git a/CWRU/misc/sigs.dSYM/Contents/Info.plist b/CWRU/misc/sigs.dSYM/Contents/Info.plist deleted file mode 100644 index 078424b90..000000000 --- a/CWRU/misc/sigs.dSYM/Contents/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleIdentifier - com.apple.xcode.dsym.sigs - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - dSYM - CFBundleSignature - ???? - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/CWRU/misc/sigs.dSYM/Contents/Resources/DWARF/sigs b/CWRU/misc/sigs.dSYM/Contents/Resources/DWARF/sigs deleted file mode 100644 index 09e76fd95..000000000 Binary files a/CWRU/misc/sigs.dSYM/Contents/Resources/DWARF/sigs and /dev/null differ diff --git a/CWRU/misc/sigstat.dSYM/Contents/Info.plist b/CWRU/misc/sigstat.dSYM/Contents/Info.plist deleted file mode 100644 index 801b23e99..000000000 --- a/CWRU/misc/sigstat.dSYM/Contents/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleIdentifier - com.apple.xcode.dsym.sigstat - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - dSYM - CFBundleSignature - ???? - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/CWRU/misc/sigstat.dSYM/Contents/Resources/DWARF/sigstat b/CWRU/misc/sigstat.dSYM/Contents/Resources/DWARF/sigstat deleted file mode 100644 index c7e7682c6..000000000 Binary files a/CWRU/misc/sigstat.dSYM/Contents/Resources/DWARF/sigstat and /dev/null differ diff --git a/CWRU/misc/stderr.c b/CWRU/misc/stderr.c deleted file mode 100644 index f1ec1dc47..000000000 --- a/CWRU/misc/stderr.c +++ /dev/null @@ -1,12 +0,0 @@ -#include - -main() -{ - fprintf(stdout, "to stdout\n"); - fprintf(stderr, "to stderr\n"); - fprintf(stdout, "to stdout\n"); - fprintf(stderr, "to stderr\n"); - exit(0); -} - - diff --git a/CWRU/misc/test-strtod.c b/CWRU/misc/test-strtod.c deleted file mode 100644 index e76f93a53..000000000 --- a/CWRU/misc/test-strtod.c +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include -#include - - -#ifndef errno -extern int errno; -#endif - -main(c, v) -int c; -char **v; -{ - double dv, dv2; - char *sv, *ep; - int r; - - sv = "4.2"; - dv = 4.2; - - errno = 0; - dv2 = strtod(sv, &ep); - if (*ep) - exit(1); - else if (errno == ERANGE) - exit(1); - if (dv != dv2) - exit(1); - exit(0); -} - - - diff --git a/CWRU/new/execute_cmd.c.lastpipe-first b/CWRU/new/execute_cmd.c.lastpipe-first deleted file mode 100644 index 6b7b53355..000000000 --- a/CWRU/new/execute_cmd.c.lastpipe-first +++ /dev/null @@ -1,3176 +0,0 @@ -/* execute_command.c -- Execute a COMMAND structure. */ - -/* Copyright (C) 1987,1991 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#include -#include -#include -#include -#include "posixstat.h" -#include "filecntl.h" -#include - -#if !defined (SIGABRT) -#define SIGABRT SIGIOT -#endif - -#include -#include - -#include "shell.h" -#include "y.tab.h" -#include "flags.h" -#include "hash.h" -#include "jobs.h" - -#include "sysdefs.h" -#include - -#if defined (BUFFERED_INPUT) -# include "input.h" -#endif - -#define CMD_NO_WAIT 0x40 /* XXX move to command.h */ -#define CMD_LAST_PIPE 0x80 /* XXX ditto */ - -#if !defined (errno) -extern int errno; -#endif - -extern int breaking, continuing, loop_level; -extern int interactive, login_shell; - -#if defined (JOB_CONTROL) -extern int job_control; -extern int set_job_control (); -#endif /* JOB_CONTROL */ - -extern int getdtablesize (); -extern int close (); -extern char *strerror (); -extern char *string_list (); - -#if defined (USG) -extern pid_t last_made_pid; -#endif - -struct stat SB; - -extern WORD_LIST *expand_words (), *expand_word (); -extern WORD_LIST *expand_word_leave_quoted (); -extern char *make_command_string (); - -extern Function *find_shell_builtin (), *builtin_address (); -extern SigHandler *set_sigint_handler (); - -#if defined (PROCESS_SUBSTITUTION) -void close_all_files (); -#endif /* PROCESS_SUBSTITUTION */ - -/* Static functions defined and used in this file. */ -static void close_pipes (), do_piping (), execute_disk_command (); -static void execute_subshell_builtin_or_function (); -static void cleanup_redirects (), cleanup_func_redirects (), bind_lastarg (); -static void add_undo_close_redirect (); -static int do_redirection_internal (), do_redirections (); -static int expandable_redirection_filename (), execute_shell_script (); -static int execute_builtin_or_function (), add_undo_redirect (); -static char *find_user_command_internal (), *find_user_command_in_path (); - -/* The value returned by the last synchronous command. */ -int last_command_exit_value = 0; - -/* The list of redirections to preform which will undo the redirections - that I made in the shell. */ -REDIRECT *redirection_undo_list = (REDIRECT *)NULL; - -/* Have we just forked, and are we now running in a subshell environment? */ -int subshell_environment = 0; - -/* Use this as the function to call when adding unwind protects so we - don't need to know what free() returns. */ -void -vfree (string) - char *string; -{ - free (string); -} - -#define FD_BITMAP_DEFAULT_SIZE 32 -/* Functions to allocate and deallocate the structures used to pass - information from the shell to its children about file descriptors - to close. */ -struct fd_bitmap * -new_fd_bitmap (size) - long size; -{ - struct fd_bitmap *ret; - - ret = (struct fd_bitmap *)xmalloc (sizeof (struct fd_bitmap)); - - ret->size = size; - - if (size) - { - ret->bitmap = (char *)xmalloc (size); - bzero (ret->bitmap, size); - } - else - ret->bitmap = (char *)NULL; - return (ret); -} - -void -dispose_fd_bitmap (fdbp) - struct fd_bitmap *fdbp; -{ - if (fdbp->bitmap) - free (fdbp->bitmap); - - free (fdbp); -} - -void -close_fd_bitmap (fdbp) - struct fd_bitmap *fdbp; -{ - register int i; - - if (fdbp) - { - for (i = 0; i < fdbp->size; i++) - if (fdbp->bitmap[i]) - { - close (i); - fdbp->bitmap[i] = 0; - } - } -} - -/* Execute the command passed in COMMAND. COMMAND is exactly what - read_command () places into GLOBAL_COMMAND. See "command.h" for the - details of the command structure. - - EXECUTION_SUCCESS or EXECUTION_FAILURE are the only possible - return values. Executing a command with nothing in it returns - EXECUTION_SUCCESS. */ -execute_command (command) - COMMAND *command; -{ - struct fd_bitmap *bitmap; - int result; - - bitmap = new_fd_bitmap (FD_BITMAP_DEFAULT_SIZE); - - /* Just do the command, but not asynchronously. */ - result = execute_command_internal (command, 0, NO_PIPE, NO_PIPE, bitmap); - - dispose_fd_bitmap (bitmap); - -#if defined (PROCESS_SUBSTITUTION) - unlink_fifo_list (); -#endif /* PROCESS_SUBSTITUTION */ - - return (result); -} - -/* Return 1 if TYPE is a shell control structure type. */ -int -shell_control_structure (type) - enum command_type type; -{ - switch (type) - { - case cm_for: - case cm_case: - case cm_while: - case cm_until: - case cm_if: - case cm_group: - return (1); - - default: - return (0); - } -} - -/* A function to use to unwind_protect the redirection undo list - for loops. */ -static void -cleanup_redirects (list) - REDIRECT *list; -{ - do_redirections (list, 1, 0, 0); - dispose_redirects (list); -} - -/* Function to unwind_protect the redirections for functions and builtins. */ -static void -cleanup_func_redirects (list) - REDIRECT *list; -{ - do_redirections (list, 1, 0, 0); -} - -#if defined (JOB_CONTROL) -/* A function to restore the signal mask to its proper value when the shell - is interrupted or errors occur while creating a pipeline. */ -static int -restore_signal_mask (set) - sigset_t set; -{ - return (sigprocmask (SIG_SETMASK, &set, (sigset_t *)NULL)); -} -#endif /* JOB_CONTROL */ - -/* A debugging function that can be called from gdb, for instance. */ -open_files () -{ - register int i; - int f, fd_table_size; - - fd_table_size = getdtablesize (); - - fprintf (stderr, "pid %d open files:", getpid ()); - for (i = 3; i < fd_table_size; i++) - { - if ((f = fcntl (i, F_GETFD, 0)) != -1) - fprintf (stderr, " %d (%s)", i, f ? "close" : "open"); - } - fprintf (stderr, "\n"); -} - -execute_command_internal (command, asynchronous, pipe_in, pipe_out, - fds_to_close) - COMMAND *command; - int asynchronous; - int pipe_in, pipe_out; - struct fd_bitmap *fds_to_close; -{ - int exec_result = EXECUTION_SUCCESS; - int invert, ignore_return; - REDIRECT *my_undo_list; - - if (!command || breaking || continuing) - return (EXECUTION_SUCCESS); - - run_pending_traps (); - - invert = (command->flags & CMD_INVERT_RETURN) != 0; - - /* If a command was being explicitly run in a subshell, or if it is - a shell control-structure, and it has a pipe, then we do the command - in a subshell. */ - - if ((command->flags & CMD_WANT_SUBSHELL) || - (command->flags & CMD_FORCE_SUBSHELL) || - (shell_control_structure (command->type) && - (pipe_out != NO_PIPE || pipe_in != NO_PIPE || asynchronous))) - { - pid_t paren_pid; - - /* Fork a subshell, turn off the subshell bit, turn off job - control and call execute_command () on the command again. */ - paren_pid = make_child (savestring (make_command_string (command)), - asynchronous); - if (paren_pid == 0) - { - int user_subshell, return_code; - -#if defined (JOB_CONTROL) - set_sigchld_handler (); -#endif /* JOB_CONTROL */ - - set_sigint_handler (); - - user_subshell = (command->flags & CMD_WANT_SUBSHELL) != 0; - command->flags &= ~(CMD_FORCE_SUBSHELL | CMD_WANT_SUBSHELL); - - /* If a command is asynchronous in a subshell (like ( foo ) & or - the special case of an asynchronous GROUP command where the - the subshell bit is turned on down in case cm_group: below), - turn off `asynchronous', so that two subshells aren't spawned. - - This seems semantically correct to me. For example, - ( foo ) & seems to say ``do the command `foo' in a subshell - environment, but don't wait for that subshell to finish'', - and "{ foo ; bar } &" seems to me to be like functions or - builtins in the background, which executed in a subshell - environment. I just don't see the need to fork two subshells. */ - - /* Don't fork again, we are already in a subshell. */ - asynchronous = 0; - - /* Subshells are neither login nor interactive. */ - login_shell = interactive = 0; - - subshell_environment = 1; - -#if defined (JOB_CONTROL) - /* Delete all traces that there were any jobs running. This is - only for subshells. */ - without_job_control (); -#endif /* JOB_CONTROL */ - do_piping (pipe_in, pipe_out); - - if (fds_to_close) - close_fd_bitmap (fds_to_close); - - /* Do redirections, then dispose of them before recursive call. */ - if (command->redirects) - { - if (do_redirections (command->redirects, 1, 0, 0) != 0) - exit (EXECUTION_FAILURE); - - dispose_redirects (command->redirects); - command->redirects = (REDIRECT *)NULL; - } - - return_code = execute_command_internal - (command, asynchronous, NO_PIPE, NO_PIPE, fds_to_close); - - /* If we were explicitly placed in a subshell with (), we need - to do the `shell cleanup' things, such as running traps[0]. */ - if (user_subshell) - run_exit_trap (); - - exit (return_code); - } - else - { - close_pipes (pipe_in, pipe_out); - - /* If we are part of a pipeline, and not the end of the pipeline, - then we should simply return and let the last command in the - pipe be waited for. If we are not in a pipeline, or are the - last command in the pipeline, then we wait for the subshell - and return its exit status as usual. */ - if (pipe_out != NO_PIPE) - return (EXECUTION_SUCCESS); - - if (command->flags & CMD_NO_WAIT) - return (EXECUTION_SUCCESS); - - stop_pipeline (asynchronous, (COMMAND *)NULL); - - if (!asynchronous) - { - last_command_exit_value = wait_for (paren_pid); - - /* If we have to, invert the return value. */ - if (invert) - { - if (last_command_exit_value == EXECUTION_SUCCESS) - return (EXECUTION_FAILURE); - else - return (EXECUTION_SUCCESS); - } - else - return (last_command_exit_value); - } - else - { - if (interactive) - describe_pid (paren_pid); - - run_pending_traps (); - - return (EXECUTION_SUCCESS); - } - } - } - - /* Handle WHILE FOR CASE etc. with redirections. (Also '&' input - redirection.) */ - if (do_redirections (command->redirects, 1, 1, 0) != 0) - return (EXECUTION_FAILURE); - - my_undo_list = (REDIRECT *)copy_redirects (redirection_undo_list); - - begin_unwind_frame ("loop_redirections"); - - if (my_undo_list) - add_unwind_protect ((Function *)cleanup_redirects, my_undo_list); - - ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0; - - switch (command->type) - { - case cm_for: - if (ignore_return) - command->value.For->flags |= CMD_IGNORE_RETURN; - exec_result = execute_for_command (command->value.For); - break; - - case cm_case: - if (ignore_return) - command->value.Case->flags |= CMD_IGNORE_RETURN; - exec_result = execute_case_command (command->value.Case); - break; - - case cm_while: - if (ignore_return) - command->value.While->flags |= CMD_IGNORE_RETURN; - exec_result = execute_while_command (command->value.While); - break; - - case cm_until: - if (ignore_return) - command->value.While->flags |= CMD_IGNORE_RETURN; - exec_result = execute_until_command (command->value.While); - break; - - case cm_if: - if (ignore_return) - command->value.If->flags |= CMD_IGNORE_RETURN; - exec_result = execute_if_command (command->value.If); - break; - - case cm_group: - - /* This code can be executed from either of two paths: an explicit - '{}' command, or via a function call. If we are executed via a - function call, we have already taken care of the function being - executed in the background (down there in execute_simple_command ()), - and this command should *not* be marked as asynchronous. If we - are executing a regular '{}' group command, and asynchronous == 1, - we must want to execute the whole command in the background, so we - need a subshell, and we want the stuff executed in that subshell - (this group command) to be executed in the foreground of that - subshell (i.e. there will not be *another* subshell forked). - - What we do is to force a subshell if asynchronous, and then call - execute_command_internal again with asynchronous still set to 1, - but with the original group command, so the printed command will - look right. - - The code above that handles forking off subshells will note that - both subshell and async are on, and turn off async in the child - after forking the subshell (but leave async set in the parent, so - the normal call to describe_pid is made). This turning off - async is *crucial*; if it is not done, this will fall into an - infinite loop of executions through this spot in subshell after - subshell until the process limit is exhausted. */ - - if (asynchronous) - { - command->flags |= CMD_FORCE_SUBSHELL; - exec_result = - execute_command_internal (command, 1, pipe_in, pipe_out, - fds_to_close); - } - else - { - if (ignore_return && command->value.Group->command) - command->value.Group->command->flags |= CMD_IGNORE_RETURN; - exec_result = - execute_command_internal (command->value.Group->command, - asynchronous, pipe_in, pipe_out, - fds_to_close); - } - break; - - case cm_simple: - { - pid_t last_pid = last_made_pid; - -#if defined (JOB_CONTROL) - extern int already_making_children; -#endif /* JOB_CONTROL */ - if (ignore_return && command->value.Simple) - command->value.Simple->flags |= CMD_IGNORE_RETURN; - exec_result = - execute_simple_command (command->value.Simple, pipe_in, pipe_out, - asynchronous, fds_to_close); - - /* The temporary environment should be used for only the simple - command immediately following its definition. */ - dispose_used_env_vars (); - -#if (defined (Ultrix) && defined (mips)) || !defined (HAVE_ALLOCA) - /* Reclaim memory allocated with alloca () on machines which - may be using the alloca emulation code. */ - (void) alloca (0); -#endif /* (Ultrix && mips) || !HAVE_ALLOCA */ - - if (command->flags & CMD_NO_WAIT) - break; - - /* If we forked to do the command, then we must wait_for () - the child. */ -#if defined (JOB_CONTROL) - if (already_making_children && pipe_out == NO_PIPE) -#else - if (pipe_out == NO_PIPE) -#endif /* JOB_CONTROL */ - { - if (last_pid != last_made_pid) - { - stop_pipeline (asynchronous, (COMMAND *)NULL); - - if (asynchronous) - { - if (interactive) - describe_pid (last_made_pid); - } - else -#if !defined (JOB_CONTROL) - /* Do not wait for asynchronous processes started from - startup files. */ - if (last_made_pid != last_asynchronous_pid) -#endif - /* When executing a shell function that executes other - commands, this causes the last simple command in - the function to be waited for twice. */ - exec_result = wait_for (last_made_pid); - } - } - } - if (!ignore_return && exit_immediately_on_error && !invert && - (exec_result != EXECUTION_SUCCESS)) - { - last_command_exit_value = exec_result; - run_pending_traps (); - longjmp (top_level, EXITPROG); - } - - break; - - case cm_connection: - switch (command->value.Connection->connector) - { - /* Do the first command asynchronously. */ - case '&': - { - COMMAND *tc = command->value.Connection->first; - REDIRECT *rp = tc->redirects; - - if (ignore_return && tc) - tc->flags |= CMD_IGNORE_RETURN; - - /* If this shell was compiled without job control, or if job - control is not active (e.g., if the shell is not interactive), - the standard input for an asynchronous command is /dev/null. */ -#if defined (JOB_CONTROL) - if (!interactive || !job_control) -#endif /* JOB_CONTROL */ - { - REDIRECT *tr = - make_redirection (0, r_inputa_direction, - make_word ("/dev/null")); - tr->next = tc->redirects; - tc->redirects = tr; - } - - exec_result = execute_command_internal (tc, 1, pipe_in, pipe_out, - fds_to_close); - -#if defined (JOB_CONTROL) - if (!interactive || !job_control) -#endif /* JOB_CONTROL */ - { - /* Remove the redirection we added above. It matters, - especially for loops, which call execute_command () - multiple times with the same command. */ - REDIRECT *tr, *tl; - - tr = tc->redirects; - do - { - tl = tc->redirects; - tc->redirects = tc->redirects->next; - } - while (tc->redirects && tc->redirects != rp); - - tl->next = (REDIRECT *)NULL; - dispose_redirects (tr); - } - - { - register COMMAND *second; - - second = command->value.Connection->second; - - if (second) - { - if (ignore_return) - second->flags |= CMD_IGNORE_RETURN; - - exec_result = execute_command_internal - (second, asynchronous, pipe_in, pipe_out, fds_to_close); - } - } - } - break; - - case ';': - /* Just call execute command on both of them. */ - if (ignore_return) - { - if (command->value.Connection->first) - command->value.Connection->first->flags |= CMD_IGNORE_RETURN; - QUIT; - if (command->value.Connection->second) - command->value.Connection->second->flags |= CMD_IGNORE_RETURN; - } - execute_command (command->value.Connection->first); - QUIT; - exec_result = - execute_command_internal (command->value.Connection->second, - asynchronous, pipe_in, pipe_out, - fds_to_close); - break; - - case '|': - { - int prev, fildes[2], new_bitmap_size, dummyfd; - COMMAND *cmd; - int outpipe; - struct fd_bitmap *fd_bitmap; - -#if defined (JOB_CONTROL) - COMMAND *lastcmd; - int lastpipe[2]; - pid_t lastpipe_pid; - - sigset_t set, oset; - BLOCK_CHILD (set, oset); -#endif /* JOB_CONTROL */ - -#if defined (JOB_CONTROL) - /* Fork the last command in the pipeline first, then the rest of - the commands, to avoid synchronization problems. */ - /* Find the last pipeline element */ - lastcmd = command; - while (lastcmd && lastcmd->type == cm_connection && - lastcmd->value.Connection && - lastcmd->value.Connection->connector == '|') - lastcmd = lastcmd->value.Connection->second; - - if (pipe (lastpipe) < 0) - { - report_error ("pipe error: %s", strerror (errno)); - terminate_current_pipeline (); - kill_current_pipeline (); - last_command_exit_value = EXECUTION_FAILURE; - throw_to_top_level (); - } - - /* Now execute the rightmost command in the pipeline, but do - not wait for it. */ - if (ignore_return && lastcmd) - lastcmd->flags |= CMD_IGNORE_RETURN; - lastcmd->flags |= (CMD_NO_WAIT | CMD_LAST_PIPE); - fds_to_close->bitmap[lastpipe[1]] = 1; - (void) execute_command_internal - (lastcmd, asynchronous, lastpipe[0], pipe_out, fds_to_close); - lastpipe_pid = last_made_pid; -#endif /* JOB_CONTROL */ - - prev = pipe_in; - cmd = command; - - while (cmd && - cmd->type == cm_connection && - cmd->value.Connection && - cmd->value.Connection->connector == '|') - { - /* Make a pipeline between the two commands. */ - if (pipe (fildes) < 0) - { - report_error ("pipe error: %s", strerror (errno)); -#if defined (JOB_CONTROL) - terminate_current_pipeline (); - kill_current_pipeline (); -#endif /* JOB_CONTROL */ - last_command_exit_value = EXECUTION_FAILURE; - /* The unwind-protects installed below will take care - of closing all of the open file descriptors. */ - throw_to_top_level (); - } - else - { - /* Here is a problem: with the new file close-on-exec - code, the read end of the pipe (fildes[0]) stays open - in the first process, so that process will never get a - SIGPIPE. There is no way to signal the first process - that it should close fildes[0] after forking, so it - remains open. No SIGPIPE is ever sent because there - is still a file descriptor open for reading connected - to the pipe. We take care of that here. This passes - around a bitmap of file descriptors that must be - closed after making a child process in - execute_simple_command. */ - - /* We need fd_bitmap to be at least as big as fildes[0]. - If fildes[0] is less than fds_to_close->size, then - use fds_to_close->size. */ - - if (fildes[0] < fds_to_close->size) - new_bitmap_size = fds_to_close->size; - else - new_bitmap_size = fildes[0] + 8; - - fd_bitmap = new_fd_bitmap (new_bitmap_size); - - /* Now copy the old information into the new bitmap. */ - bcopy (fds_to_close->bitmap, fd_bitmap->bitmap, - fds_to_close->size); - - /* And mark the pipe file descriptors to be closed. */ - fd_bitmap->bitmap[fildes[0]] = 1; - - /* In case there are pipe or out-of-processes errors, we - want all these file descriptors to be closed when - unwind-protects are run, and the storage used for the - bitmaps freed up. */ - begin_unwind_frame ("pipe-file-descriptors"); - add_unwind_protect (dispose_fd_bitmap, fd_bitmap); - add_unwind_protect (close_fd_bitmap, fd_bitmap); - if (prev >= 0) - add_unwind_protect (close, prev); - dummyfd = fildes[1]; - add_unwind_protect (close, dummyfd); - -#if defined (JOB_CONTROL) - add_unwind_protect (restore_signal_mask, oset); -#endif /* JOB_CONTROL */ - - if (ignore_return && cmd->value.Connection->first) - cmd->value.Connection->first->flags |= - CMD_IGNORE_RETURN; - -#if defined (JOB_CONTROL) - if (cmd->value.Connection->second == lastcmd) - { - outpipe = lastpipe[1]; - close (fildes[1]); - } - else -#endif /* JOB_CONTROL */ - outpipe = fildes[1]; - - execute_command_internal - (cmd->value.Connection->first, asynchronous, prev, - outpipe, fd_bitmap); - - if (prev >= 0) - close (prev); - - prev = fildes[0]; - close (outpipe); - - dispose_fd_bitmap (fd_bitmap); - discard_unwind_frame ("pipe-file-descriptors"); - } - cmd = cmd->value.Connection->second; -#if defined (JOB_CONTROL) - if (cmd == lastcmd) - break; -#endif - } - -#if !defined (JOB_CONTROL) - /* Now execute the rightmost command in the pipeline. */ - if (ignore_return && cmd) - cmd->flags |= CMD_IGNORE_RETURN; - exec_result = - execute_command_internal - (cmd, asynchronous, prev, pipe_out, fds_to_close); -#endif /* !JOB_CONTROL */ - - if (prev >= 0) - close (prev); - -#if defined (JOB_CONTROL) - UNBLOCK_CHILD (oset); -#endif - -#if defined (JOB_CONTROL) - /* Because we created the processes out of order, we have to - reorder the pipeline slightly. */ - rotate_the_pipeline (); - stop_pipeline (asynchronous, (COMMAND *)NULL); - if (asynchronous && interactive) - describe_pid (lastpipe_pid); - exec_result = wait_for (lastpipe_pid); - if (!ignore_return && exit_immediately_on_error && !invert && - (exec_result != EXECUTION_SUCCESS)) - { - last_command_exit_value = exec_result; - run_pending_traps (); - longjmp (top_level, EXITPROG); - } -#endif /* JOB_CONTROL */ - } - break; - - case AND_AND: - if (asynchronous) - { - /* If we have something like `a && b &', run the && stuff in a - subshell. Force a subshell and just call - execute_command_internal again. Leave asynchronous on - so that we get a report from the parent shell about the - background job. */ - command->flags |= CMD_FORCE_SUBSHELL; - exec_result = execute_command_internal (command, 1, pipe_in, - pipe_out, fds_to_close); - break; - } - - /* Execute the first command. If the result of that is successful, - then execute the second command, otherwise return. */ - - if (command->value.Connection->first) - command->value.Connection->first->flags |= CMD_IGNORE_RETURN; - - exec_result = execute_command (command->value.Connection->first); - QUIT; - if (exec_result == EXECUTION_SUCCESS) - { - if (ignore_return && command->value.Connection->second) - command->value.Connection->second->flags |= - CMD_IGNORE_RETURN; - - exec_result = - execute_command (command->value.Connection->second); - } - break; - - case OR_OR: - if (asynchronous) - { - /* If we have something like `a || b &', run the || stuff in a - subshell. Force a subshell and just call - execute_command_internal again. Leave asynchronous on - so that we get a report from the parent shell about the - background job. */ - command->flags |= CMD_FORCE_SUBSHELL; - exec_result = execute_command_internal (command, 1, pipe_in, - pipe_out, fds_to_close); - break; - } - - /* Execute the first command. If the result of that is successful, - then return, otherwise execute the second command. */ - - if (command->value.Connection->first) - command->value.Connection->first->flags |= CMD_IGNORE_RETURN; - - exec_result = execute_command (command->value.Connection->first); - QUIT; - if (exec_result != EXECUTION_SUCCESS) - { - if (ignore_return && command->value.Connection->second) - command->value.Connection->second->flags |= - CMD_IGNORE_RETURN; - - exec_result = - execute_command (command->value.Connection->second); - } - - break; - - default: - programming_error ("Bad connector `%d'!", - command->value.Connection->connector); - longjmp (top_level, DISCARD); - break; - } - break; - - case cm_function_def: - exec_result = intern_function (command->value.Function_def->name, - command->value.Function_def->command); - break; - - default: - programming_error - ("execute_command: Bad command type `%d'!", command->type); - } - - if (my_undo_list) - { - do_redirections (my_undo_list, 1, 0, 0); - dispose_redirects (my_undo_list); - } - - discard_unwind_frame ("loop_redirections"); - - /* Invert the return value if we have to */ - if (invert) - { - if (exec_result == EXECUTION_SUCCESS) - exec_result = EXECUTION_FAILURE; - else - exec_result = EXECUTION_SUCCESS; - } - - last_command_exit_value = exec_result; - run_pending_traps (); - return (last_command_exit_value); -} - -/* Execute a FOR command. The syntax is: FOR word_desc IN word_list; - DO command; DONE */ -execute_for_command (for_command) - FOR_COM *for_command; -{ - /* I just noticed that the Bourne shell leaves word_desc bound to the - last name in word_list after the FOR statement is done. This seems - wrong to me; I thought that the variable binding should be lexically - scoped, i.e., only would last the duration of the FOR command. This - behaviour can be gotten by turning on the lexical_scoping switch. */ - - register WORD_LIST *releaser, *list; - WORD_DESC *temp = for_command->name; - char *identifier; - SHELL_VAR *old_value = (SHELL_VAR *)NULL; /* Remember the old value of x. */ - int retval = EXECUTION_SUCCESS; - extern int dispose_words (); - extern int dispose_variable (); - - if (!check_identifier (temp)) - return (EXECUTION_FAILURE); - - loop_level++; - identifier = temp->word; - - list = releaser = expand_words (for_command->map_list, 0); - - begin_unwind_frame ("for"); - add_unwind_protect (dispose_words, releaser); - - if (lexical_scoping) - { - old_value = copy_variable (find_variable (identifier)); - if (old_value) - add_unwind_protect (dispose_variable, old_value); - } - - while (list) - { - QUIT; - bind_variable (identifier, list->word->word); - if (for_command->flags & CMD_IGNORE_RETURN) - for_command->action->flags |= CMD_IGNORE_RETURN; - execute_command (for_command->action); - retval = last_command_exit_value; - QUIT; - - if (breaking) - { - breaking--; - break; - } - - if (continuing) - { - continuing--; - if (continuing) - break; - } - - list = list->next; - } - - loop_level--; - - if (lexical_scoping) - { - if (!old_value) - makunbound (identifier, shell_variables); - else - { - SHELL_VAR *new_value; - - new_value = bind_variable (identifier, value_cell(old_value)); - new_value->attributes = old_value->attributes; - } - } - - run_unwind_frame ("for"); - return (retval); -} - -/* Execute a CASE command. The syntax is: CASE word_desc IN pattern_list ESAC. - The pattern_list is a linked list of pattern clauses; each clause contains - some patterns to compare word_desc against, and an associated command to - execute. */ -execute_case_command (case_command) - CASE_COM *case_command; -{ - extern int dispose_words (); - extern char *tilde_expand (); - register WORD_LIST *list; - WORD_LIST *wlist; - PATTERN_LIST *clauses; - char *word; - int retval; - - /* Posix.2 Draft 11.2 says that the word is tilde expanded. */ - if (member ('~', case_command->word->word)) - { - word = tilde_expand (case_command->word->word); - free (case_command->word->word); - case_command->word->word = word; - } - wlist = expand_word (case_command->word, 0); - clauses = case_command->clauses; - word = (wlist) ? string_list (wlist) : savestring (""); - retval = EXECUTION_SUCCESS; - - begin_unwind_frame ("case"); - add_unwind_protect (dispose_words, wlist); - add_unwind_protect ((Function *)vfree, word); - - while (clauses) - { - QUIT; - list = clauses->patterns; - while (list) - { - extern char *quote_string_for_globbing (); - char *t, *pattern; - WORD_LIST *es; - int match, freepat; - - /* Posix.2 draft 11.3 says to do tilde expansion on each member - of the pattern list. */ - if (member ('~', list->word->word)) - { - t = tilde_expand (list->word->word); - free (list->word->word); - list->word->word = t; - } - - es = expand_word_leave_quoted (list->word, 0); - if (es && es->word && es->word->word && *(es->word->word)) - { - pattern = quote_string_for_globbing (es->word->word, 1); - freepat = 1; - } - else - { - pattern = ""; - freepat = 0; - } - - /* Since the pattern does not undergo quote removal according to - Posix.2 section 3.9.4.3, the fnmatch() call must be able to - recognize backslashes as escape characters. */ - match = fnmatch (pattern, word, 0) != FNM_NOMATCH; - if (freepat) - free (pattern); - dispose_words (es); - - if (match) - { - if (clauses->action && - (case_command->flags & CMD_IGNORE_RETURN)) - clauses->action->flags |= CMD_IGNORE_RETURN; - execute_command (clauses->action); - retval = last_command_exit_value; - goto exit_command; - } - - list = list->next; - QUIT; - } - clauses = clauses->next; - } - exit_command: - run_unwind_frame ("case"); - return (retval); -} - -#define CMD_WHILE 0 -#define CMD_UNTIL 1 - -/* The WHILE command. Syntax: WHILE test DO action; DONE. - Repeatedly execute action while executing test produces - EXECUTION_SUCCESS. */ -execute_while_command (while_command) - WHILE_COM *while_command; -{ - return (execute_while_or_until (while_command, CMD_WHILE)); -} - -/* UNTIL is just like WHILE except that the test result is negated. */ -execute_until_command (while_command) - WHILE_COM *while_command; -{ - return (execute_while_or_until (while_command, CMD_UNTIL)); -} - -/* The body for both while and until. The only difference between the - two is that the test value is treated differently. TYPE is - CMD_WHILE or CMD_UNTIL. The return value for both commands should - be EXECUTION_SUCCESS if no commands in the body are executed, and - the status of the last command executed in the body otherwise. */ -execute_while_or_until (while_command, type) - WHILE_COM *while_command; - int type; -{ - extern int breaking; - extern int continuing; - int commands_executed = 0; - int return_value, body_status = EXECUTION_SUCCESS; - - loop_level++; - while_command->test->flags |= CMD_IGNORE_RETURN; - - while (1) - { - return_value = execute_command (while_command->test); - - if (type == CMD_WHILE && return_value != EXECUTION_SUCCESS) - break; - if (type == CMD_UNTIL && return_value == EXECUTION_SUCCESS) - break; - - QUIT; - commands_executed = 1; - - if (while_command->flags & CMD_IGNORE_RETURN) - while_command->action->flags |= CMD_IGNORE_RETURN; - body_status = execute_command (while_command->action); - - QUIT; - - if (breaking) - { - breaking--; - break; - } - - if (continuing) - { - continuing--; - if (continuing) - break; - } - } - loop_level--; - - return (body_status); -} - -/* IF test THEN command [ELSE command]. - IF also allows ELIF in the place of ELSE IF, but - the parser makes *that* stupidity transparent. */ -execute_if_command (if_command) - IF_COM *if_command; -{ - int return_value; - - if_command->test->flags |= CMD_IGNORE_RETURN; - return_value = execute_command (if_command->test); - - if (return_value == EXECUTION_SUCCESS) - { - QUIT; - if (if_command->true_case && (if_command->flags & CMD_IGNORE_RETURN)) - if_command->true_case->flags |= CMD_IGNORE_RETURN; - return (execute_command (if_command->true_case)); - } - else - { - QUIT; - - if (if_command->false_case && - (if_command->flags & CMD_IGNORE_RETURN)) - { - if_command->false_case->flags |= CMD_IGNORE_RETURN; - } - - return (execute_command (if_command->false_case)); - } -} - -/* The name of the command that is currently being executed. - `test' needs this, for example. */ -char *this_command_name; - -static void -bind_lastarg (arg) - char *arg; -{ - SHELL_VAR *var; - - if (!arg) - arg = ""; - var = bind_variable ("_", arg); - var->attributes &= ~att_exported; -} - -/* For catching RETURN in a function. */ -int return_catch_flag = 0; -int return_catch_value; -jmp_buf return_catch; - -/* The meaty part of all the executions. We have to start hacking the - real execution of commands here. Fork a process, set things up, - execute the command. */ -execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close) - SIMPLE_COM *simple_command; - int pipe_in, pipe_out; - struct fd_bitmap *fds_to_close; -{ - extern int command_string_index, variable_context, line_number; - extern char *the_printed_command; - extern pid_t last_command_subst_pid; - WORD_LIST *expand_words (), *copy_word_list (); - WORD_LIST *words, *lastword; - char *command_line, *lastarg; - int first_word_quoted, result; - pid_t old_last_command_subst_pid; - - result = EXECUTION_SUCCESS; - - /* If we're in a function, update the pseudo-line-number information. */ - if (variable_context) - line_number++; - - /* Remember what this command line looks like at invocation. */ - command_string_index = 0; - print_simple_command (simple_command); - command_line = (char *)alloca (1 + strlen (the_printed_command)); - strcpy (command_line, the_printed_command); - - first_word_quoted = - simple_command->words ? simple_command->words->word->quoted : 0; - - old_last_command_subst_pid = last_command_subst_pid; - - /* If we are re-running this as the result of executing the `command' - builtin, do not expand the command words a second time. */ - if ((simple_command->flags & CMD_INHIBIT_EXPANSION) == 0) - words = expand_words (simple_command->words); - else - words = copy_word_list (simple_command->words); - - lastarg = (char *)NULL; - begin_unwind_frame ("simple-command"); - - /* It is possible for WORDS not to have anything left in it. - Perhaps all the words consisted of `$foo', and there was - no variable `$foo'. */ - if (words) - { - extern int dispose_words (); - extern Function *last_shell_builtin, *this_shell_builtin; - Function *builtin; - SHELL_VAR *func; - - if (echo_command_at_execute) - { - extern char *indirection_level_string (); - char *line = string_list (words); - - if (line && *line) - fprintf (stderr, "%s%s\n", indirection_level_string (), line); - - if (line) - free (line); - } - - if (simple_command->flags & CMD_NO_FUNCTIONS) - func = (SHELL_VAR *)NULL; - else - func = find_function (words->word->word); - - add_unwind_protect (dispose_words, words); - - QUIT; - - /* Bind the last word in this command to "$_" after execution. */ - for (lastword = words; lastword->next; lastword = lastword->next); - lastarg = lastword->word->word; - -#if defined (JOB_CONTROL) - /* Is this command a job control related thing? */ - if (words->word->word[0] == '%') - { - int result; - - if (async) - this_command_name = "bg"; - else - this_command_name = "fg"; - - last_shell_builtin = this_shell_builtin; - this_shell_builtin = builtin_address (this_command_name); - result = (*this_shell_builtin) (words); - goto return_result; - } - - /* One other possiblilty. The user may want to resume an existing job. - If they do, find out whether this word is a candidate for a running - job. */ - { - char *auto_resume_value; - - if ((auto_resume_value = get_string_value ("auto_resume")) && - !first_word_quoted && - !words->next && - words->word->word[0] && - !simple_command->redirects && - pipe_in == NO_PIPE && - pipe_out == NO_PIPE && - !async) - { - char *word = words->word->word; - register int i, wl = strlen (word), exact; - - exact = strcmp (auto_resume_value, "exact") == 0; - for (i = job_slots - 1; i > -1; i--) - { - if (jobs[i]) - { - register PROCESS *p = jobs[i]->pipe; - do - { - if ((JOBSTATE (i) == JSTOPPED) && - (strncmp (p->command, word, - exact ? strlen (p->command) : wl) == 0)) - { - int started_status; - - run_unwind_frame ("simple-command"); - last_shell_builtin = this_shell_builtin; - this_shell_builtin = builtin_address ("fg"); - - started_status = start_job (i, 1); - - if (started_status < 0) - return (EXECUTION_FAILURE); - else - return (started_status); - } - p = p->next; - } - while (p != jobs[i]->pipe); - } - } - } - } -#endif /* JOB_CONTROL */ - - /* Remember the name of this command globally. */ - this_command_name = words->word->word; - - QUIT; - - /* Not a running job. Do normal command processing. */ - maybe_make_export_env (); - - /* This command could be a shell builtin or a user-defined function. - If so, and we have pipes, then fork a subshell in here. Else, just - do the command. */ - - if (func) - builtin = (Function *)NULL; - else - builtin = find_shell_builtin (this_command_name); - - last_shell_builtin = this_shell_builtin; - this_shell_builtin = builtin; - - if (builtin || func) - { - put_command_name_into_env (this_command_name); - if ((pipe_in != NO_PIPE) || (pipe_out != NO_PIPE) || async) - { - if (make_child (savestring (command_line), async) == 0) - { - execute_subshell_builtin_or_function - (words, simple_command->redirects, builtin, func, - pipe_in, pipe_out, async, fds_to_close, - simple_command->flags); - } - else - { - close_pipes (pipe_in, pipe_out); - goto return_result; - } - } - else - { - result = execute_builtin_or_function - (words, builtin, func, simple_command->redirects, fds_to_close, - simple_command->flags); - - goto return_result; - } - } - - execute_disk_command (words, simple_command->redirects, command_line, - pipe_in, pipe_out, async, fds_to_close); - - goto return_result; - } - else if (pipe_in != NO_PIPE || pipe_out != NO_PIPE || async) - { - /* We have a null command, but we really want a subshell to take - care of it. Just fork, do piping and redirections, and exit. */ - if (make_child (savestring (""), async) == 0) - { - do_piping (pipe_in, pipe_out); - - subshell_environment = 1; - - if (do_redirections (simple_command->redirects, 1, 0, 0) == 0) - exit (EXECUTION_SUCCESS); - else - exit (EXECUTION_FAILURE); - } - else - { - close_pipes (pipe_in, pipe_out); - result = EXECUTION_SUCCESS; - goto return_result; - } - } - else - { - /* Even if there aren't any command names, pretend to do the - redirections that are specified. The user expects the side - effects to take place. If the redirections fail, then return - failure. Otherwise, if a command substitution took place while - expanding the command or a redirection, return the value of that - substitution. Otherwise, return EXECUTION_SUCCESS. */ - - if (do_redirections (simple_command->redirects, 0, 0, 0) != 0) - result = EXECUTION_FAILURE; - else if (old_last_command_subst_pid != last_command_subst_pid) - result = last_command_exit_value; - else - result = EXECUTION_SUCCESS; - } - - return_result: - bind_lastarg (lastarg); - run_unwind_frame ("simple-command"); - return (result); -} - -/* Execute a shell builtin or function in a subshell environment. This - routine does not return; it only calls exit(). If BUILTIN is non-null, - it points to a function to call to execute a shell builtin; otherwise - VAR points at the body of a function to execute. WORDS is the arguments - to the command, REDIRECTS specifies redirections to perform before the - command is executed. */ -static void -execute_subshell_builtin_or_function (words, redirects, builtin, var, - pipe_in, pipe_out, async, fds_to_close, - flags) - WORD_LIST *words; - REDIRECT *redirects; - Function *builtin; - SHELL_VAR *var; - int pipe_in, pipe_out, async; - struct fd_bitmap *fds_to_close; - int flags; -{ - extern char **temporary_env, **function_env, **copy_array (); - extern int login_shell, interactive; -#if defined (JOB_CONTROL) - extern int jobs_builtin (); -#endif /* JOB_CONTROL */ - - /* A subshell is neither a login shell nor interactive. */ - login_shell = interactive = 0; - - subshell_environment = 1; - -#if defined (JOB_CONTROL) - /* Eradicate all traces of job control after we fork the subshell, so - all jobs begun by this subshell are in the same process group as - the shell itself. */ - - /* Allow the output of `jobs' to be piped. */ - if (builtin == jobs_builtin && !async && - (pipe_out != NO_PIPE || pipe_in != NO_PIPE)) - kill_current_pipeline (); - else - without_job_control (); - - set_sigchld_handler (); -#endif /* JOB_CONTROL */ - - set_sigint_handler (); - - do_piping (pipe_in, pipe_out); - - if (fds_to_close) - close_fd_bitmap (fds_to_close); - - if (do_redirections (redirects, 1, 0, 0) != 0) - exit (EXECUTION_FAILURE); - - if (builtin) - { - extern jmp_buf top_level; - int result; - - /* Give builtins a place to jump back to on failure, - so we don't go back up to main(). */ - result = setjmp (top_level); - - if (result == EXITPROG) - exit (last_command_exit_value); - else if (result) - exit (EXECUTION_FAILURE); - else - exit ((*builtin) (words->next)); - } - else - { - extern int variable_context, line_number; - extern void dispose_command (), dispose_function_env (); - COMMAND *fc, *tc; - int result, return_val; - - tc = (COMMAND *)function_cell (var); - fc = (COMMAND *)NULL; - - remember_args (words->next, 1); - line_number = 0; -#if defined (JOB_CONTROL) - stop_pipeline (async, (COMMAND *)NULL); -#endif - - begin_unwind_frame ("subshell_function_calling"); - unwind_protect_int (variable_context); - unwind_protect_int (return_catch_flag); - unwind_protect_jmp_buf (return_catch); - add_unwind_protect (dispose_command, fc); - - /* The temporary environment for a function is supposed to apply to - all commands executed in the function. If we have a temporary - environment, copy it to the special `function environment' and - get rid of the temporary environment. */ - if (temporary_env) - { - function_env = copy_array (temporary_env); - add_unwind_protect (dispose_function_env, (char *)NULL); - dispose_used_env_vars (); - } - else - function_env = (char **)NULL; - - /* We can do this because function bodies are always guaranteed to - be group commands, according to the grammar in parse.y. If we - don't do this now, execute_command_internal will graciously fork - another subshell for us, and we'll lose contact with the rest of - the pipeline and fail to get any SIGPIPE that might be sent. */ - - if (tc->type == cm_group) - fc = (COMMAND *)copy_command (tc->value.Group->command); - else - fc = (COMMAND *)copy_command (tc); - - if (fc && (flags & CMD_IGNORE_RETURN)) - fc->flags |= CMD_IGNORE_RETURN; - - /* result = execute_command (fc); doesn't work. - We need to explicitly specify the pipes in and out so that they - are closed in all the processes that rely on their being closed. - If they are not, it is possible to not get the SIGPIPE that we - need to kill all the processes sharing the pipe. */ - - variable_context++; - return_catch_flag++; - return_val = setjmp (return_catch); - - if (return_val) - result = return_catch_value; - else - result = - execute_command_internal (fc, 0, NO_PIPE, NO_PIPE, fds_to_close); - - run_unwind_frame ("subshell_function_calling"); - - exit (result); - } -} - -/* Execute a builtin or function in the current shell context. If BUILTIN - is non-null, it is the builtin command to execute, otherwise VAR points - to the body of a function. WORDS are the command's arguments, REDIRECTS - are the redirections to perform. FDS_TO_CLOSE is the usual bitmap of - file descriptors to close. - - If BUILTIN is exec_builtin, the redirections specified in REDIRECTS are - not undone before this function returns. */ -static int -execute_builtin_or_function (words, builtin, var, redirects, - fds_to_close, flags) - WORD_LIST *words; - Function *builtin; - SHELL_VAR *var; - REDIRECT *redirects; - struct fd_bitmap *fds_to_close; - int flags; -{ - extern int exec_builtin (), eval_builtin (); - extern char **temporary_env, **function_env, **copy_array (); - int result = EXECUTION_FAILURE; - REDIRECT *saved_undo_list; - - if (do_redirections (redirects, 1, 1, 0) != 0) - return (EXECUTION_FAILURE); - - saved_undo_list = redirection_undo_list; - - /* Calling the "exec" builtin changes redirections forever. */ - if (builtin == exec_builtin) - { - dispose_redirects (saved_undo_list); - saved_undo_list = (REDIRECT *)NULL; - } - else - { - begin_unwind_frame ("saved redirects"); - add_unwind_protect (cleanup_func_redirects, (char *)saved_undo_list); - } - - redirection_undo_list = (REDIRECT *)NULL; - - if (builtin) - { - int old_e_flag = exit_immediately_on_error; - - /* The eval builtin calls parse_and_execute, which does not know about - the setting of flags, and always calls the execution functions with - flags that will exit the shell on an error if -e is set. If the - eval builtin is being called, and we're supposed to ignore the exit - value of the command, we turn the -e flag off ourselves, then - restore it when the command completes. */ - if ((builtin == eval_builtin) && (flags & CMD_IGNORE_RETURN)) - { - begin_unwind_frame ("eval_builtin"); - unwind_protect_int (exit_immediately_on_error); - exit_immediately_on_error = 0; - } - - result = ((*builtin) (words->next)); - - if ((builtin == eval_builtin) && (flags & CMD_IGNORE_RETURN)) - { - exit_immediately_on_error += old_e_flag; - discard_unwind_frame ("eval_builtin"); - } - } - else - { - extern void dispose_command (), dispose_function_env (); - extern int pop_context (); - extern int line_number; - int return_val; - COMMAND *tc; - - tc = (COMMAND *)copy_command (function_cell (var)); - if (tc && (flags & CMD_IGNORE_RETURN)) - tc->flags |= CMD_IGNORE_RETURN; - - begin_unwind_frame ("function_calling"); - push_context (); - add_unwind_protect (pop_context, (char *)NULL); - add_unwind_protect (dispose_command, (char *)tc); - unwind_protect_int (return_catch_flag); - unwind_protect_int (line_number); - unwind_protect_jmp_buf (return_catch); - - /* The temporary environment for a function is supposed to apply to - all commands executed in the function. If we have a temporary - environment, copy it to the special `function environment' and - get rid of the temporary environment. */ - if (temporary_env) - { - function_env = copy_array (temporary_env); - add_unwind_protect (dispose_function_env, (char *)NULL); - dispose_used_env_vars (); - } - else - function_env = (char **)NULL; - - /* Note the second argument of "1", meaning that we discard - the current value of "$*"! This is apparently the right thing. */ - remember_args (words->next, 1); - - line_number = 0; - return_catch_flag++; - return_val = setjmp (return_catch); - - if (return_val) - result = return_catch_value; - else - result = - execute_command_internal (tc, 0, NO_PIPE, NO_PIPE, fds_to_close); - - run_unwind_frame ("function_calling"); - } - - redirection_undo_list = saved_undo_list; - if (builtin != exec_builtin) - discard_unwind_frame ("saved redirects"); - do_redirections (redirection_undo_list, 1, 0, 0); - - return (result); -} - -/* Execute a simple command that is hopefully defined in a disk file - somewhere. - - 1) fork () - 2) connect pipes - 3) look up the command - 4) do redirections - 5) execve () - 6) If the execve failed, see if the file has executable mode set. - If so, and it isn't a directory, then execute its contents as - a shell script. - - Note that the filename hashing stuff has to take place up here, - in the parent. This is probably why the Bourne style shells - don't handle it, since that would require them to go through - this gnarly hair, for no good reason. */ -static void -execute_disk_command (words, redirects, command_line, pipe_in, pipe_out, - async, fds_to_close) - WORD_LIST *words; - REDIRECT *redirects; - char *command_line; - int pipe_in, pipe_out, async; - struct fd_bitmap *fds_to_close; -{ - char **make_word_array (), *find_user_command (), *find_hashed_filename (); - char *hashed_file, *command, **args; - -#if defined (RESTRICTED_SHELL) - extern int restricted; - - if (restricted && strchr (words->word->word, '/')) - { - report_error ("%s: restricted: cannot specify `/' in command names", - words->word->word); - last_command_exit_value = EXECUTION_FAILURE; - return; - } -#endif /* RESTRICTED_SHELL */ - - hashed_file = command = (char *)NULL; - - /* Don't waste time trying to find hashed data for a pathname - that is already completely specified. */ - - if (!absolute_program (words->word->word)) - hashed_file = find_hashed_filename (words->word->word); - - /* XXX - this could be a big performance hit... */ - /* If a command found in the hash table no longer exists, we need to - look for it in $PATH. */ - if (hashed_file) - { - int st; - - st = file_status (hashed_file); - if ((st & (FS_EXISTS | FS_EXECABLE)) != (FS_EXISTS | FS_EXECABLE)) - { - remove_hashed_filename (words->word->word); - hashed_file = (char *) NULL; - } - } - - if (hashed_file) - command = savestring (hashed_file); - else - { - /* A command containing a slash is not looked up in PATH. */ - if (absolute_program (words->word->word)) - command = savestring (words->word->word); - else - { - command = find_user_command (words->word->word); - - /* A command name containing a slash is not saved in the - hash table. */ - if (command && !hashing_disabled) - { - extern int dot_found_in_search; - - remember_filename - (words->word->word, command, dot_found_in_search); - - /* Increase the number of hits to 1. */ - find_hashed_filename (words->word->word); - } - } - } - - if (command) - put_command_name_into_env (command); - - /* We have to make the child before we check for the non-existance - of COMMAND, since we want the error messages to be redirected. */ - if (make_child (savestring (command_line), async) == 0) - { - do_piping (pipe_in, pipe_out); - - /* Execve expects the command name to be in args[0]. So we - leave it there, in the same format that the user used to - type it in. */ - args = make_word_array (words); - - if (async) - { - begin_unwind_frame ("async_redirections"); - unwind_protect_int (interactive); - interactive = 0; - } - - subshell_environment = 1; - - if (do_redirections (redirects, 1, 0, 0) != 0) - { -#if defined (PROCESS_SUBSTITUTION) - /* Try to remove named pipes that may have been created as the - result of redirections. */ - unlink_fifo_list (); -#endif /* PROCESS_SUBSTITUTION */ - exit (EXECUTION_FAILURE); - } - - if (async) - run_unwind_frame ("async_redirections"); - - if (!command) - { - report_error ("%s: command not found", args[0]); - exit (EXECUTION_FAILURE); - } - - /* This functionality is now provided by close-on-exec of the - file descriptors manipulated by redirection and piping. - Some file descriptors still need to be closed in all children - because of the way bash does pipes; fds_to_close is a - bitmap of all such file descriptors. */ - if (fds_to_close) - close_fd_bitmap (fds_to_close); - - exit (shell_execve (command, args, export_env)); - } - else - { - /* Make sure that the pipes are closed in the parent. */ - close_pipes (pipe_in, pipe_out); - if (command) - free (command); - } -} - -/* If the operating system on which we're running does not handle - the #! executable format, then help out. SAMPLE is the text read - from the file, SAMPLE_LEN characters. COMMAND is the name of - the script; it and ARGS, the arguments given by the user, will - become arguments to the specified interpreter. ENV is the environment - to pass to the interpreter. - - The word immediately following the #! is the interpreter to execute. - A single argument to the interpreter is allowed. */ -static int -execute_shell_script (sample, sample_len, command, args, env) - unsigned char *sample; - int sample_len; - char *command; - char **args, **env; -{ - extern char *shell_name; - register int i; - char *execname, *firstarg; - int start, size_increment, larry; - - /* Find the name of the interpreter to exec. */ - for (i = 2; whitespace (sample[i]) && i < sample_len; i++) - ; - - for (start = i; - !whitespace (sample[i]) && sample[i] != '\n' && i < sample_len; - i++) - ; - - execname = (char *)xmalloc (1 + (i - start)); - strncpy (execname, sample + start, i - start); - execname[i - start] = '\0'; - size_increment = 1; - - /* Now the argument, if any. */ - firstarg = (char *)NULL; - for (start = i; - whitespace (sample[i]) && sample[i] != '\n' && i < sample_len; - i++) - ; - - /* If there is more text on the line, then it is an argument for the - interpreter. */ - if (i < sample_len && sample[i] != '\n' && !whitespace (sample[i])) - { - for (start = i; - !whitespace (sample[i]) && sample[i] != '\n' && i < sample_len; - i++) - ; - firstarg = (char *)xmalloc (1 + (i - start)); - strncpy (firstarg, sample + start, i - start); - firstarg[i - start] = '\0'; - - size_increment = 2; - } - - larry = array_len (args) + size_increment; - - args = (char **)xrealloc (args, (1 + larry) * sizeof (char *)); - - for (i = larry - 1; i; i--) - args[i] = args[i - size_increment]; - - args[0] = execname; - if (firstarg) - { - args[1] = firstarg; - args[2] = command; - } - else - args[1] = command; - - args[larry] = (char *)NULL; - - return (shell_execve (execname, args, env)); -} - -/* Call execve (), handling interpreting shell scripts, and handling - exec failures. */ -int -shell_execve (command, args, env) - char *command; - char **args, **env; -{ -#if defined (isc386) && defined (_POSIX_SOURCE) - __setostype (0); /* Turn on USGr3 semantics. */ - execve (command, args, env); - __setostype (1); /* Turn the POSIX semantics back on. */ -#else - execve (command, args, env); -#endif /* !(isc386 && _POSIX_SOURCE) */ - - /* If we get to this point, then start checking out the file. - Maybe it is something we can hack ourselves. */ - { - struct stat finfo; - - if (errno != ENOEXEC) - { - if ((stat (command, &finfo) == 0) && - (S_ISDIR (finfo.st_mode))) - report_error ("%s: is a directory", args[0]); - else - file_error (command); - - return (EXECUTION_FAILURE); - } - else - { - /* This file is executable. - If it begins with #!, then help out people with losing operating - systems. Otherwise, check to see if it is a binary file by seeing - if the first line (or up to 30 characters) are in the ASCII set. - Execute the contents as shell commands. */ - extern char *shell_name; - int larray = array_len (args) + 1; - int i, should_exec = 0; - - { - int fd = open (command, O_RDONLY); - if (fd != -1) - { - unsigned char sample[80]; - int sample_len = read (fd, &sample[0], 80); - - close (fd); - - if (sample_len == 0) - return (EXECUTION_SUCCESS); - - /* Is this supposed to be an executable script? */ - /* If so, the format of the line is "#! interpreter [argument]". - A single argument is allowed. The BSD kernel restricts - the length of the entire line to 32 characters (32 bytes - being the size of the BSD exec header), but we allow 80 - characters. */ - - if (sample_len > 0 && sample[0] == '#' && sample[1] == '!') - return (execute_shell_script (sample, sample_len, command, - args, env)); -#if defined (NOTDEF) -#if defined (HAVE_CSH) && ( defined (Bsd) || defined (Ultrix) ) - /* If this system has Csh, then keep the old - BSD semantics. */ - else if (sample_len > 0 && sample[0] == '#') - { - /* Scripts starting with a # are for Csh. */ - shell_name = savestring ("/bin/csh"); - should_exec = 1; - } -#endif /* HAVE_CSH */ -#endif /* NOTDEF */ - else if ((sample_len != -1) && - check_binary_file (sample, sample_len)) - { - report_error ("%s: cannot execute binary file", command); - return (EX_BINARY_FILE); - } - } - } -#if defined (JOB_CONTROL) - /* Forget about the way that job control was working. We are - in a subshell. */ - without_job_control (); -#endif /* JOB_CONTROL */ -#if defined (ALIAS) - /* Forget about any aliases that we knew of. We are in a subshell. */ - delete_all_aliases (); -#endif /* ALIAS */ - -#if defined (JOB_CONTROL) - set_sigchld_handler (); -#endif /* JOB_CONTROL */ - set_sigint_handler (); - - /* Insert the name of this shell into the argument list. */ - args = (char **)xrealloc (args, (1 + larray) * sizeof (char *)); - - for (i = larray - 1; i; i--) - args[i] = args[i - 1]; - - args[0] = shell_name; - args[1] = command; - args[larray] = (char *)NULL; - - if (args[0][0] == '-') - args[0]++; - - if (should_exec) - { - struct stat finfo; - -#if defined (isc386) && defined (_POSIX_SOURCE) - __setostype (0); /* Turn on USGr3 semantics. */ - execve (shell_name, args, env); - __setostype (1); /* Turn the POSIX semantics back on. */ -#else - execve (shell_name, args, env); -#endif /* isc386 && _POSIX_SOURCE */ - - /* Oh, no! We couldn't even exec this! */ - if ((stat (args[0], &finfo) == 0) && (S_ISDIR (finfo.st_mode))) - report_error ("%s: is a directory", args[0]); - else - file_error (args[0]); - - return (EXECUTION_FAILURE); - } - else - { - extern jmp_buf subshell_top_level; - extern int subshell_argc; - extern char **subshell_argv; - extern char **subshell_envp; - - subshell_argc = larray; - subshell_argv = args; - subshell_envp = env; - longjmp (subshell_top_level, 1); - } - } - } -} - -#if defined (PROCESS_SUBSTITUTION) -void -close_all_files () -{ - register int i, fd_table_size; - - fd_table_size = getdtablesize (); - - for (i = 3; i < fd_table_size; i++) - close (i); -} -#endif /* PROCESS_SUBSTITUTION */ - -static void -close_pipes (in, out) - int in, out; -{ - if (in >= 0) close (in); - if (out >= 0) close (out); -} - -/* Redirect input and output to be from and to the specified pipes. - NO_PIPE and REDIRECT_BOTH are handled correctly. */ -static void -do_piping (pipe_in, pipe_out) - int pipe_in, pipe_out; -{ - if (pipe_in != NO_PIPE) - { - dup2 (pipe_in, 0); - close (pipe_in); - } - if (pipe_out != NO_PIPE) - { - dup2 (pipe_out, 1); - close (pipe_out); - - if (pipe_out == REDIRECT_BOTH) - dup2 (1, 2); - } -} - -/* Defined in flags.c. Non-zero means don't overwrite existing files. */ -extern int noclobber; - -#define AMBIGUOUS_REDIRECT -1 -#define NOCLOBBER_REDIRECT -2 -#define RESTRICTED_REDIRECT -3 /* Only can happen in restricted shells. */ - -/* Perform the redirections on LIST. If FOR_REAL, then actually make - input and output file descriptors, otherwise just do whatever is - neccessary for side effecting. INTERNAL says to remember how to - undo the redirections later, if non-zero. If SET_CLEXEC is non-zero, - file descriptors opened in do_redirection () have their close-on-exec - flag set. */ -static int -do_redirections (list, for_real, internal, set_clexec) - REDIRECT *list; - int for_real, internal; -{ - register int error; - register REDIRECT *temp = list; - - if (internal && redirection_undo_list) - { - dispose_redirects (redirection_undo_list); - redirection_undo_list = (REDIRECT *)NULL; - } - - while (temp) - { - extern char *strerror (); - - error = do_redirection_internal (temp, for_real, internal, set_clexec); - - if (error) - { - char *redirection_expand (), *itos (); - char *filename; - - if (expandable_redirection_filename (temp)) - { - filename = redirection_expand (temp->redirectee.filename); - if (!filename) - filename = savestring (""); - } - else - filename = itos (temp->redirectee.dest); - - switch (error) - { - case AMBIGUOUS_REDIRECT: - report_error ("%s: Ambiguous redirect", filename); - break; - - case NOCLOBBER_REDIRECT: - report_error ("%s: Cannot clobber existing file", filename); - break; - -#if defined (RESTRICTED_SHELL) - case RESTRICTED_REDIRECT: - report_error ("%s: output redirection restricted", filename); - break; -#endif /* RESTRICTED_SHELL */ - - default: - report_error ("%s: %s", filename, strerror (error)); - break; - } - - free (filename); - return (error); - } - - temp = temp->next; - } - return (0); -} - -/* Return non-zero if the redirection pointed to by REDIRECT has a - redirectee.filename that can be expanded. */ -static int -expandable_redirection_filename (redirect) - REDIRECT *redirect; -{ - int result; - - switch (redirect->instruction) - { - case r_output_direction: - case r_appending_to: - case r_input_direction: - case r_inputa_direction: - case r_err_and_out: - case r_input_output: - case r_output_force: - case r_duplicating_input_word: - case r_duplicating_output_word: - result = 1; - break; - - default: - result = 0; - } - return (result); -} - -/* Expand the word in WORD returning a string. If WORD expands to - multiple words (or no words), then return NULL. */ -char * -redirection_expand (word) - WORD_DESC *word; -{ - char *result; - WORD_LIST *make_word_list (), *expand_words_no_vars (); - WORD_LIST *tlist1, *tlist2; - - tlist1 = make_word_list (copy_word (word), (WORD_LIST *)NULL); - tlist2 = expand_words_no_vars (tlist1); - dispose_words (tlist1); - - if (!tlist2 || tlist2->next) - { - /* We expanded to no words, or to more than a single word. - Dispose of the word list and return NULL. */ - if (tlist2) - dispose_words (tlist2); - return ((char *)NULL); - } - result = string_list (tlist2); - dispose_words (tlist2); - - return (result); -} - -/* Do the specific redirection requested. Returns errno in case of error. - If FOR_REAL is zero, then just do whatever is neccessary to produce the - appropriate side effects. REMEMBERING, if non-zero, says to remember - how to undo each redirection. If SET_CLEXEC is non-zero, then - we set all file descriptors > 2 that we open to be close-on-exec. */ -static int -do_redirection_internal (redirect, for_real, remembering, set_clexec) - REDIRECT *redirect; - int for_real, remembering; -{ - WORD_DESC *redirectee = redirect->redirectee.filename; - int fd, redirector = redirect->redirector; - char *redirectee_word; - enum r_instruction ri = redirect->instruction; - REDIRECT *new_redirect; - - if (ri == r_duplicating_input_word || ri == r_duplicating_output_word) - { - /* We have [N]>&WORD or [N]<&WORD. Expand WORD, then translate - the redirection into a new one and continue. */ - redirectee_word = redirection_expand (redirectee); - - if (redirectee_word[0] == '-' && redirectee_word[1] == '\0') - { - new_redirect = make_redirection (redirector, r_close_this, 0); - } - else if (all_digits (redirectee_word)) - { - if (ri == r_duplicating_input_word) - { - new_redirect = make_redirection - (redirector, r_duplicating_input, atoi (redirectee_word)); - } - else - { - new_redirect = make_redirection - (redirector, r_duplicating_output, atoi (redirectee_word)); - } - } - else if (ri == r_duplicating_output_word && redirector == 1) - { - new_redirect = make_redirection - (1, r_err_and_out, make_word (redirectee_word)); - } - else - { - free (redirectee_word); - return (AMBIGUOUS_REDIRECT); - } - - free (redirectee_word); - - /* Set up the variables needed by the rest of the function from the - new redirection. */ - if (new_redirect->instruction == r_err_and_out) - { - char *alloca_hack; - - /* Copy the word without allocating any memory that must be - explicitly freed. */ - redirectee = (WORD_DESC *)alloca (sizeof (WORD_DESC)); - bcopy (new_redirect->redirectee.filename, - redirectee, sizeof (WORD_DESC)); - - alloca_hack = (char *) - alloca (1 + strlen (new_redirect->redirectee.filename->word)); - redirectee->word = alloca_hack; - strcpy (redirectee->word, new_redirect->redirectee.filename->word); - } - else - /* It's guaranteed to be an integer, and shouldn't be freed. */ - redirectee = new_redirect->redirectee.filename; - - redirector = new_redirect->redirector; - ri = new_redirect->instruction; - - /* Overwrite the flags element of the old redirect with the new value. */ - redirect->flags = new_redirect->flags; - dispose_redirects (new_redirect); - } - - switch (ri) - { - case r_output_direction: - case r_appending_to: - case r_input_direction: - case r_inputa_direction: - case r_err_and_out: /* command &>filename */ - case r_input_output: - case r_output_force: - - if (!(redirectee_word = redirection_expand (redirectee))) - return (AMBIGUOUS_REDIRECT); - -#if defined (RESTRICTED_SHELL) - if (restricted && (ri == r_output_direction || - ri == r_input_output || - ri == r_err_and_out || - ri == r_appending_to || - ri == r_output_force)) - { - free(redirectee_word); - return (RESTRICTED_REDIRECT); - } -#endif /* RESTRICTED_SHELL */ - - /* If we are in noclobber mode, you are not allowed to overwrite - existing files. Check first. */ - if (noclobber && (ri == r_output_direction || - ri == r_input_output || - ri == r_err_and_out)) - { - struct stat buf; - int stat_result; - - stat_result = stat (redirectee_word, &buf); - if ((stat_result == 0) && (S_ISREG (buf.st_mode))) - { - free (redirectee_word); - return (NOCLOBBER_REDIRECT); - } - /* If the file was not there, make sure we use exclusive open so - that if it's created before we open it, our open will fail. */ - if (stat_result != 0) - redirect->flags |= O_EXCL; - fd = open (redirectee_word, redirect->flags, 0666); - if (fd < 0 && errno == EEXIST) - { - free (redirectee_word); - return (NOCLOBBER_REDIRECT); - } - } - else - { - fd = open (redirectee_word, redirect->flags, 0666); -#if defined (AFS_CREATE_BUG) - if (fd < 0 && errno == EACCES) - fd = open (redirectee_word, (redirect->flags & ~O_CREAT), 0666); -#endif /* AFS_CREATE_BUG */ - } - - free (redirectee_word); - - if (fd < 0 ) - return (errno); - - if (for_real) - { - if (remembering) - /* Only setup to undo it if the thing to undo is active. */ - if ((fd != redirector) && (fcntl (redirector, F_GETFD, 0) != -1)) - add_undo_redirect (redirector); - else - add_undo_close_redirect (redirector); - - if ((fd != redirector) && (dup2 (fd, redirector) < 0)) - return (errno); - -#if defined (BUFFERED_INPUT) - if (ri == r_input_direction || ri == r_inputa_direction || - ri == r_input_output) - duplicate_buffered_stream (fd, redirector); -#endif /* BUFFERED_INPUT */ - - /* - * If we're remembering, then this is the result of a while, for - * or until loop with a loop redirection, or a function/builtin - * executing in the parent shell with a redirection. In the - * function/builtin case, we want to set all file descriptors > 2 - * to be close-on-exec to duplicate the effect of the old - * for i = 3 to NOFILE close(i) loop. In the case of the loops, - * both sh and ksh leave the file descriptors open across execs. - * The Posix standard mentions only the exec builtin. - */ - if (set_clexec && (redirector > 2)) - SET_CLOSE_ON_EXEC (redirector); - } - - if (fd != redirector) - { -#if defined (BUFFERED_INPUT) - if (ri == r_input_direction || ri == r_inputa_direction || - ri == r_input_output) - close_buffered_fd (fd); - else -#endif /* !BUFFERED_INPUT */ - close (fd); /* Don't close what we just opened! */ - } - - /* If we are hacking both stdout and stderr, do the stderr - redirection here. */ - if (ri == r_err_and_out) - { - if (for_real) - { - if (remembering) - add_undo_redirect (2); - if (dup2 (1, 2) < 0) - return (errno); - } - } - break; - - case r_reading_until: - case r_deblank_reading_until: - { - /* REDIRECTEE is a pointer to a WORD_DESC containing the text of - the new input. Place it in a temporary file. */ - int document_index = 0; - char *document = (char *)NULL; - - /* Expand the text if the word that was specified had no quoting. - Note that the text that we expand is treated exactly as if it - were surrounded by double-quotes. */ - - if (!redirectee) - document = savestring (""); - else - { - if (!redirectee->quoted) - { - WORD_LIST *temp_word_list = - (WORD_LIST *)expand_string (redirectee->word, - Q_HERE_DOCUMENT); - - document = string_list (temp_word_list); - if (!document) - document = savestring (""); - dispose_words (temp_word_list); - } - else - { - document = redirectee->word; - } - document_index = strlen (document); - - { - char filename[40]; - pid_t pid = getpid (); - - /* Make the filename for the temp file. */ - sprintf (filename, "/tmp/t%d-sh", pid); - - fd = open (filename, O_TRUNC | O_WRONLY | O_CREAT, 0666); - if (fd < 0) - { - if (!redirectee->quoted) - free (document); - return (errno); - } - - write (fd, document, document_index); - close (fd); - - if (!redirectee->quoted) - free (document); - - /* Make the document really temporary. Also make it the - input. */ - fd = open (filename, O_RDONLY, 0666); - - if (unlink (filename) < 0 || fd < 0) - return (errno); - - if (for_real) - { - if (remembering) - /* Only setup to undo it if the thing to undo is active. */ - if ((fd != redirector) && - (fcntl (redirector, F_GETFD, 0) != -1)) - add_undo_redirect (redirector); - else - add_undo_close_redirect (redirector); - - if (dup2 (fd, redirector) < 0) - return (errno); - -#if defined (BUFFERED_INPUT) - duplicate_buffered_stream (fd, redirector); -#endif - - if (set_clexec && (redirector > 2)) - SET_CLOSE_ON_EXEC (redirector); - } - -#if defined (BUFFERED_INPUT) - close_buffered_fd (fd); -#else - close (fd); -#endif - } - } - } - break; - - case r_duplicating_input: - case r_duplicating_output: - if (for_real && ((int)redirectee != redirector)) - { - if (remembering) - /* Only setup to undo it if the thing to undo is active. */ - if (fcntl (redirector, F_GETFD, 0) != -1) - add_undo_redirect (redirector); - else - add_undo_close_redirect (redirector); - - /* This is correct. 2>&1 means dup2 (1, 2); */ - if (dup2 ((int)redirectee, redirector) < 0) - return (errno); - -#if defined (BUFFERED_INPUT) - if (ri == r_duplicating_input) - duplicate_buffered_stream ((int)redirectee, redirector); -#endif /* BUFFERED_INPUT */ - - /* First duplicate the close-on-exec state of redirectee. dup2 - leaves the flag unset on the new descriptor, which means it - stays open. Only set the close-on-exec bit for file descriptors - greater than 2 in any case, since 0-2 should always be open - unless closed by something like `exec 2<&-'. */ - /* if ((already_set || set_unconditionally) && (ok_to_set)) - set_it () */ - if (((fcntl ((int)redirectee, F_GETFD, 0) == 1) || set_clexec) && - (redirector > 2)) - SET_CLOSE_ON_EXEC (redirector); - } - break; - - case r_close_this: - if (for_real) - { - if (remembering && (fcntl (redirector, F_GETFD, 0) != -1)) - add_undo_redirect (redirector); - -#if defined (BUFFERED_INPUT) - close_buffered_fd (redirector); -#else /* !BUFFERED_INPUT */ - close (redirector); -#endif /* !BUFFERED_INPUT */ - } - break; - } - return (0); -} - -#define SHELL_FD_BASE 10 - -/* Remember the file descriptor associated with the slot FD, - on REDIRECTION_UNDO_LIST. Note that the list will be reversed - before it is executed. */ -static int -add_undo_redirect (fd) - int fd; -{ - int new_fd, clexec_flag; - REDIRECT *new_redirect, *closer; - - new_fd = fcntl (fd, F_DUPFD, SHELL_FD_BASE); - - if (new_fd < 0) - { - file_error ("redirection error"); - return (-1); - } - else - { - clexec_flag = fcntl (fd, F_GETFD, 0); - closer = make_redirection (new_fd, r_close_this, 0); - new_redirect = make_redirection (fd, r_duplicating_input, new_fd); - new_redirect->next = closer; - closer->next = redirection_undo_list; - redirection_undo_list = new_redirect; - /* - * File descriptors used only for saving others should always be - * marked close-on-exec. Unfortunately, we have to preserve the - * close-on-exec state of the file descriptor we are saving, since - * fcntl (F_DUPFD) sets the new file descriptor to remain open - * across execs. If, however, the file descriptor whose state we - * are saving is <= 2, we can just set the close-on-exec flag, - * because file descriptors 0-2 should always be open-on-exec, - * and the restore above in do_redirection() will take care of it. - */ - if (clexec_flag || fd < 3) - SET_CLOSE_ON_EXEC (new_fd); - } - return (0); -} - -/* Set up to close FD when we are finished with the current command - and its redirections. */ -static void -add_undo_close_redirect (fd) - int fd; -{ - REDIRECT *closer; - - closer = make_redirection (fd, r_close_this, 0); - closer->next = redirection_undo_list; - redirection_undo_list = closer; -} - -intern_function (name, function) - WORD_DESC *name; - COMMAND *function; -{ - SHELL_VAR *var; - - if (!check_identifier (name)) - return (EXECUTION_FAILURE); - - var = find_function (name->word); - if (var && readonly_p (var)) - { - report_error ("%s: readonly function", var->name); - return (EXECUTION_FAILURE); - } - - bind_function (name->word, function); - return (EXECUTION_SUCCESS); -} - -/* Make sure that identifier is a valid shell identifier, i.e. - does not contain a dollar sign, nor is quoted in any way. Nor - does it consist of all digits. */ -check_identifier (word) - WORD_DESC *word; -{ - if (word->dollar_present || word->quoted || all_digits (word->word)) - { - report_error ("`%s' is not a valid identifier", word->word); - return (0); - } - else - return (1); -} - -#define u_mode_bits(x) (((x) & 0000700) >> 6) -#define g_mode_bits(x) (((x) & 0000070) >> 3) -#define o_mode_bits(x) (((x) & 0000007) >> 0) -#define X_BIT(x) (x & 1) - -/* Return some flags based on information about this file. - The EXISTS bit is non-zero if the file is found. - The EXECABLE bit is non-zero the file is executble. - Zero is returned if the file is not found. */ -int -file_status (name) - char *name; -{ - struct stat finfo; - static int user_id = -1; - - /* Determine whether this file exists or not. */ - if (stat (name, &finfo) < 0) - return (0); - - /* If the file is a directory, then it is not "executable" in the - sense of the shell. */ - if (S_ISDIR (finfo.st_mode)) - return (FS_EXISTS); - - /* Find out if the file is actually executable. By definition, the - only other criteria is that the file has an execute bit set that - we can use. */ - if (user_id == -1) - user_id = geteuid (); - - /* Root only requires execute permission for any of owner, group or - others to be able to exec a file. */ - if (user_id == 0) - { - int bits; - - bits = (u_mode_bits (finfo.st_mode) | - g_mode_bits (finfo.st_mode) | - o_mode_bits (finfo.st_mode)); - - if (X_BIT (bits)) - return (FS_EXISTS | FS_EXECABLE); - } - - /* If we are the owner of the file, the owner execute bit applies. */ - if (user_id == finfo.st_uid && X_BIT (u_mode_bits (finfo.st_mode))) - return (FS_EXISTS | FS_EXECABLE); - - /* If we are in the owning group, the group permissions apply. */ - if (group_member (finfo.st_gid) && X_BIT (g_mode_bits (finfo.st_mode))) - return (FS_EXISTS | FS_EXECABLE); - - /* If `others' have execute permission to the file, then so do we, - since we are also `others'. */ - if (X_BIT (o_mode_bits (finfo.st_mode))) - return (FS_EXISTS | FS_EXECABLE); - else - return (FS_EXISTS); -} - -/* Return non-zero if FILE exists and is executable. - Note that this function is the definition of what an - executable file is; do not change this unless YOU know - what an executable file is. */ -int -executable_file (file) - char *file; -{ - if (file_status (file) & FS_EXECABLE) - return (1); - else - return (0); -} - -/* DOT_FOUND_IN_SEARCH becomes non-zero when find_user_command () - encounters a `.' as the directory pathname while scanning the - list of possible pathnames; i.e., if `.' comes before the directory - containing the file of interest. */ -int dot_found_in_search = 0; - -/* Locate the executable file referenced by NAME, searching along - the contents of the shell PATH variable. Return a new string - which is the full pathname to the file, or NULL if the file - couldn't be found. If a file is found that isn't executable, - and that is the only match, then return that. */ -char * -find_user_command (name) - char *name; -{ - return (find_user_command_internal (name, FS_EXEC_PREFERRED)); -} - -/* Locate the file referenced by NAME, searching along the contents - of the shell PATH variable. Return a new string which is the full - pathname to the file, or NULL if the file couldn't be found. This - returns the first file found. */ -char * -find_path_file (name) - char *name; -{ - return (find_user_command_internal (name, FS_EXISTS)); -} - -static char * -find_user_command_internal (name, flags) - char *name; - int flags; -{ - char *path_list = (char *)NULL; - SHELL_VAR *var; - - /* Search for the value of PATH in both the temporary environment, and - in the regular list of variables. */ - if (var = find_variable_internal ("PATH", 1)) - path_list = value_cell (var); - - if (!path_list) - return (savestring (name)); - - return (find_user_command_in_path (name, path_list, flags)); -} - -/* Return the next element from PATH_LIST, a colon separated list of - paths. PATH_INDEX_POINTER is the address of an index into PATH_LIST; - the index is modified by this function. - Return the next element of PATH_LIST or NULL if there are no more. */ -static char * -get_next_path_element (path_list, path_index_pointer) - char *path_list; - int *path_index_pointer; -{ - extern char *extract_colon_unit (); - char *path; - - path = extract_colon_unit (path_list, path_index_pointer); - - if (!path) - return (path); - - if (!*path) - { - free (path); - path = savestring ("."); - } - - return (path); -} - -char * -user_command_matches (name, flags, state) - char *name; - int flags, state; -{ - register int i; - char *path_list; - int path_index; - char *path_element; - char *match; - static char **match_list = NULL; - static int match_list_size = 0; - static int match_index = 0; - - if (!state) - { - /* Create the list of matches. */ - if (!match_list) - { - match_list = - (char **) xmalloc ((match_list_size = 5) * sizeof(char *)); - - for (i = 0; i < match_list_size; i++) - match_list[i] = 0; - } - - /* Clear out the old match list. */ - for (i = 0; i < match_list_size; i++) - match_list[i] = NULL; - - /* We haven't found any files yet. */ - match_index = 0; - - path_list = get_string_value ("PATH"); - path_index = 0; - - while (path_list && path_list[path_index]) - { - char *find_user_command_in_path (); - - path_element = get_next_path_element (path_list, &path_index); - - if (!path_element) - break; - - match = find_user_command_in_path (name, path_element, flags); - - free (path_element); - - if (!match) - continue; - - if (match_index + 1 == match_list_size) - match_list = (char **)xrealloc - (match_list, ((match_list_size += 10) + 1) * sizeof (char *)); - match_list[match_index++] = match; - match_list[match_index] = (char *)NULL; - } - - /* We haven't returned any strings yet. */ - match_index = 0; - } - - match = match_list[match_index]; - - if (match) - match_index++; - - return (match); -} - -/* Return 1 if PATH1 and PATH2 are the same file. This is kind of - expensive. If non-NULL STP1 and STP2 point to stat structures - corresponding to PATH1 and PATH2, respectively. */ -int -same_file (path1, path2, stp1, stp2) - char *path1, *path2; - struct stat *stp1, *stp2; -{ - struct stat st1, st2; - - if (stp1 == NULL) - { - if (stat (path1, &st1) != 0) - return (0); - stp1 = &st1; - } - - if (stp2 == NULL) - { - if (stat (path2, &st2) != 0) - return (0); - stp2 = &st2; - } - - return ((stp1->st_dev == stp2->st_dev) && (stp1->st_ino == stp2->st_ino)); -} - -/* This does the dirty work for find_path_file () and find_user_command (). - NAME is the name of the file to search for. - PATH_LIST is a colon separated list of directories to search. - FLAGS contains bit fields which control the files which are eligible. - Some values are: - FS_EXEC_ONLY: The file must be an executable to be found. - FS_EXEC_PREFERRED: If we can't find an executable, then the - the first file matching NAME will do. - FS_EXISTS: The first file found will do. -*/ -static char * -find_user_command_in_path (name, path_list, flags) - char *name; - char *path_list; - int flags; -{ - char *full_path, *path, *file_to_lose_on; - int status, path_index, name_len; - struct stat finfo; - - name_len = strlen (name); - - /* The file name which we would try to execute, except that it isn't - possible to execute it. This is the first file that matches the - name that we are looking for while we are searching $PATH for a - suitable one to execute. If we cannot find a suitable executable - file, then we use this one. */ - file_to_lose_on = (char *)NULL; - - /* We haven't started looking, so we certainly haven't seen - a `.' as the directory path yet. */ - dot_found_in_search = 0; - - if (absolute_program (name)) - { - full_path = (char *)xmalloc (1 + name_len); - strcpy (full_path, name); - - status = file_status (full_path); - - if (!(status & FS_EXISTS)) - return (0); - - if ((flags & FS_EXEC_ONLY) && (status & FS_EXECABLE)) - return (full_path); - else - { - free (full_path); - return ((char *)NULL); - } - } - - /* Find out the location of the current working directory. */ - stat (".", &finfo); - - path_index = 0; - while (path_list && path_list[path_index]) - { - /* Allow the user to interrupt out of a lengthy path search. */ - QUIT; - - path = get_next_path_element (path_list, &path_index); - - if (!path) - break; - - if (*path == '~') - { - char *tilde_expand (); - char *t = tilde_expand (path); - free (path); - path = t; - } - - /* Remember the location of "." in the path, in all its forms - (as long as they begin with a `.', e.g. `./.') */ - if ((*path == '.') && - same_file (".", path, &finfo, (struct stat *)NULL)) - dot_found_in_search = 1; - - full_path = (char *)xmalloc (2 + strlen (path) + name_len); - sprintf (full_path, "%s/%s", path, name); - free (path); - - status = file_status (full_path); - - if (!(status & FS_EXISTS)) - goto next_file; - - /* The file exists. If the caller simply wants the first file, - here it is. */ - if (flags & FS_EXISTS) - return (full_path); - - /* If the file is executable, then it satisfies the cases of - EXEC_ONLY and EXEC_PREFERRED. Return this file unconditionally. */ - if (status & FS_EXECABLE) - { - if (file_to_lose_on) - free (file_to_lose_on); - - return (full_path); - } - - /* The file is not executable, but it does exist. If we prefer - an executable, then remember this one if it is the first one - we have found. */ - if (flags & FS_EXEC_PREFERRED) - { - if (!file_to_lose_on) - file_to_lose_on = savestring (full_path); - } - - next_file: - free (full_path); - } - - /* We didn't find exactly what the user was looking for. Return - the contents of FILE_TO_LOSE_ON which is NULL when the search - required an executable, or non-NULL if a file was found and the - search would accept a non-executable as a last resort. */ - return (file_to_lose_on); -} - -/* Given a string containing units of information separated by colons, - return the next one pointed to by INDX, or NULL if there are no more. - Advance INDX to the character after the colon. */ -char * -extract_colon_unit (string, indx) - char *string; - int *indx; -{ - int i, start; - - i = *indx; - - if (!string || (i >= strlen (string))) - return ((char *)NULL); - - /* Each call to this routine leaves the index pointing at a colon if - there is more to the path. If I is > 0, then increment past the - `:'. If I is 0, then the path has a leading colon. Trailing colons - are handled OK by the `else' part of the if statement; an empty - string is returned in that case. */ - if (i && string[i] == ':') - i++; - - start = i; - - while (string[i] && string[i] != ':') i++; - - *indx = i; - - if (i == start) - { - if (string[i]) - (*indx)++; - - /* Return "" in the case of a trailing `:'. */ - return (savestring ("")); - } - else - { - char *value; - - value = (char *)xmalloc (1 + (i - start)); - strncpy (value, &string[start], (i - start)); - value [i - start] = '\0'; - - return (value); - } -} - -/* Return non-zero if the characters from SAMPLE are not all valid - characters to be found in the first line of a shell script. We - check up to the first newline, or SAMPLE_LEN, whichever comes first. - All of the characters must be printable or whitespace. */ - -#if !defined (isspace) -#define isspace(c) ((c) == ' ' || (c) == '\t' || (c) == '\n' || (c) == '\f') -#endif - -#if !defined (isprint) -#define isprint(c) (isletter(c) || digit(c) || ispunct(c)) -#endif - -int -check_binary_file (sample, sample_len) - unsigned char *sample; - int sample_len; -{ - register int i; - - for (i = 0; i < sample_len; i++) - { - if (sample[i] == '\n') - break; - - if (!isspace (sample[i]) && !isprint (sample[i])) - return (1); - } - return (0); -} diff --git a/CWRU/old-changelogs/-i b/CWRU/old-changelogs/-i deleted file mode 100644 index e69de29bb..000000000 diff --git a/CWRU/old-changelogs/CHANGES.051093 b/CWRU/old-changelogs/CHANGES.051093 deleted file mode 100644 index c7637b59b..000000000 --- a/CWRU/old-changelogs/CHANGES.051093 +++ /dev/null @@ -1,115 +0,0 @@ -This file details the changes between the previous release of CWRU bash -(3/10/93) and this release. - -1. Bugs Fixed - -New version of endian.c that handles 64-bit machines better - -added code to make readline reset itself when $TERMINFO changes - -fixed memory leaks in: - builtins/exec.def - lib/readline/history.c - lib/readline/readline.c - parse.y - subst.c - variables.c - dispose_cmd.c - mailcheck.c - bashline.c - execute_cmd.c - shell.c - -make sure that bash_symbolic_link_hook calls get_working_directory with a -non-empty string argument - -check the return value of getdtablesize() for bad values - -make the job control tty handlers print error message only if the shell is -currently interactive - -process substitution no longer tries to close every file descriptor - -fixed up the source to contain more extern function declarations rather than -casting the return values - -fixed up handling of embedded quoted strings by the parser so that $ is not -a special character while parsing one - -added escape handling to the read builtin so backslashes can escape $IFS -characters - -fixed the brace expansion code so that backslash can act as a delimiter and -can escape `"' in a double-quoted string - -the `<>' redirection needs to open the file O_RDWR|O_CREAT for Posix.2 -compatibility - -fixed up the here document reading code so that it will remove backslash- -quoted newlines if the document delimiter is not quoted - -fixed up the unwind_protect_var code so that the same strategy is used -for both saving and restoring variables - -completion functions may now tell readline not to attempt filename completion -by returning (char **) -1 - -improved the error message printed by get_working_directory - -Compile for solaris if either USGr4 or __svr4__ is defined - -bash does not perform a getwd() on startup unless the inherited value of -$PWD is wrong or $PWD was not in the environment - -fixed up the trap saving and restoring code so that savetrap=$(trap) works -like Posix.2 says it should - -non-interactive shells are now much better about cleaning up dead processes -and jobs on both job control and non job control systems - -fixed the code that saves and restores the dollar variables around a `.' -script so that if the script changes the positional parameters, the old -values are not restored - -fixed the tokenizer so that it will not return ASSIGNMENT_WORD while -parsing a case statement pattern list - -redid the implementation of cprintf for systems without varargs - -fixed up the variable expansion code so that illegal variable names in ${ } -expansion now generate errors rather than produce incorrect results - -fixed up some problems with default_buffered_input and the implicit redirection -of fd 0 to /dev/null for asynchronous commands without job control - -new function internal_error for shell internal error messages - -changed the sigint signal handler in nojobs.c to do nothing when it's called, -not even run a signal handler - -made the command substitution code more careful about file descriptors when -errors occur - -2. New Features - -SIGWINCH causes bash to reset the values of $LINES and $COLUMNS for both -readline and non-readline systems - -changed the code in readline that handled conditional parsing of `$if term=' -to test the terminal name given to $if against both the `long' and `short' -(portion up to the first `-') forms of the terminal name - -the completion code now single-quotes a match that contains a shell word -break character - -the readline code does not define USE_XON_XOFF. This causes output to be -swallowed when using bash over a relatively slow line (like a modem line). - -there is now a bindable readline function to do only history expansion; -bound to M-^ (M-! was already taken) - -ulimit now has a -u option to set and get the limit for the maximum number -of user processes - -config.h.mini is a `minimal' configuration file that compiles out just about -everything diff --git a/CWRU/old-changelogs/CHANGES.071193 b/CWRU/old-changelogs/CHANGES.071193 deleted file mode 100644 index 6d24c8f77..000000000 --- a/CWRU/old-changelogs/CHANGES.071193 +++ /dev/null @@ -1,63 +0,0 @@ -This file details the changes between the previous release of CWRU bash -(5/10/93) and this release. - -1. Bugs Fixed - -commas within backquotes inside matching braces are now treated as -quoted (e.g., echo {`echo foo:bar | sed s/:/,/`}) - -don't create the export env unless we are running a command with -shell_execve (in execute_disk_command), and don't create it anew -each time a child is forked - -make execute_disk_command look in the temp environment for an -assignment to PATH, and disable hash lookup for the command if -such an assignment is present - -fixed here documents so that backslash-quoted newlines are treated as -Posix.2 specifies - -removed a number of extraneous unwind-protects or moved them inside -if statements - -only call rl_reset_terminal in sv_term if we're actually using readline - -only run traps on SIGCHLD if job_control != 0 - -fixed readline so it won't try to pass memory allocated with alloca() to -a separate function - -cleaned up the readline global function and variable namespace, and split -some more code out from readline.c into separate files - -added header files that declare extern functions rather than having those -extern declarations littered throughout the code - -readline now allows ^T to be undone - -fixed readline so that characters whose screen representation is > 1 -character (e.g., \354) are erased correctly - -the read builtin no longer attempts to split its input into words if -$IFS is unset - -changed the terminating signals that bash catches so they're reset to -their original handlers when a child is forked - -the Gnu malloc library code was upgraded to Gnu libc version 1.06 - -the Gnu termcap library code was upgraded to Gnu termcap version 1.02 - -the man page was updated to cover the bind -m option - -2. New Features - -Bash now notices if it's running setuid or setgid and disables $ENV -processing and importing shell functions from the environment - -New flag: -p/-o privileged, set if the shell is running setuid or setgid. -Turning this off causes the effective uid and gid to be set to the -real uid and gid - -New machine descriptions for the Intel Paragon, Symmetric 375, NeXT 486, -and HP running 4.4 BSD diff --git a/CWRU/old-changelogs/CHANGES.090393 b/CWRU/old-changelogs/CHANGES.090393 deleted file mode 100644 index f38e5f219..000000000 --- a/CWRU/old-changelogs/CHANGES.090393 +++ /dev/null @@ -1,140 +0,0 @@ -This file details the changes between the previous release of CWRU bash -(07/11/93) and this release. - -1. Bugs Fixed - -Readline's vi-mode once again has TAB bound to completion; entering `posix -mode' changes it to self-insert - -Bash now binds its special emacs-mode functions directly into -emacs_meta_keymap so that eight-bit character handling does not interfere - -Some source restructuring: more extern functions are defined in header files -and not in C source files - -The handling of `line number' inside functions is now more correct and -closer to reality - -Some functions of `general use' were moved to general.c (vfree, -full_pathname) - -A bug that caused some redirections to be applied twice was fixed in -execute_command_internal (dispose of redirection_undo_list after copying it; -ditto for exec_redirection_undo_list) - -The exit status of a command that is not found is 126, as Posix.2 specifies - -More speed improvements -- bash now runs as fast as the SunOS sh on -Haertel's `shell benchmark' - -Instead of returning pointers to -1, bash and the readline, history, and -glob libraries now return pointers to special `error pointers', which the -calling code checks for in place of -1 - -Fixed a problem with canonicalize_pathname which made it get -confused with xxx/./yyy if yyy was `.' or `..' - -Fixes to make bash recognize SVR4.2 and set USGr4_2 for SVR4.2 systems - -Fixes to the HP/UX machine descriptions to make alloca work on HPUX_9 -and to avoid `M_MACHINE redefined' warnings - -Fixes to the CRAY machine description - -Fixes to the mailpath code to make it Posix.2-compliant -- backslash -may now quote `%' and `?' - -The namespace was further cleaned up, and more functions and variables -were made static - -On systems with S_IFSOCK or S_ISSOCK defined in sys/stat.h, bash checks -whether fd 0 is a socket to decide whether or not it's being started by -rshd and to run the startup files - -Bash now gives the signal mask it inherits to its children -- previously, -login shells cleared the signal mask - -cpp-Makefile and subst.c both used the `USE_GLOB_LIBRARY' define, but -with different meanings; subst.c now uses `USE_POSIX_GLOB_LIBRARY' - -Fixed pattern substitution so that ${a%%$b}, where b was unset, no longer -causes a core dump - -Changed the `test_exit' define in test.c to no longer use `longjmp' as -the rhs or a comma-ized expression; this causes core dumps on some -optimizer/machine combinations - -A speed hack in variables.c: if no local variables are defined for a level -of shell context, kill_all_local_variables does not need to search the -whole variable hash table when popping a context - -Fixed the `bind' builtin so that -m now changes the keymap for all of the -subsequent operations - -Changed some more builtins to use internal_getopt: bind, command, export, -readonly, declare, typeset - -Fixed fc to use the Posix.2 format for listing commands in the -history list - -Changed bg to set `!', as Posix.2 specifies - -Fixed ulimit.def to compile if RLIMIT_RSS is not defined, -as some systems seem to have it - -Replaced lib/malloc/alloca.c with the version from emacs 19. The old one -lives in alloca.c.old - -malloc.c now uses the ANSI C features to `stringize' macro arguments if -__STDC__ is defined - -Fixes to the GNU malloc library from glibc 1.06 and Mike Haertel - -Fixes to readline key binding and lookup for Cray systems, which don't -like the casting that readline does - -Fixes to all readline library source files to clean up the code: make sure -`int'-returning functions use `return x;' rather than `return;', declare all -arguments, even the `int' ones, and make some functions void. Cleaned up -the code formatting a little, too. - -The readline completer now double-quotes filenames with special word-break -characters, so that tilde expansion still works - -^C now breaks out of keyboard macros - -If being compiled as part of the shell, readline no longer attempts to -handle SIGTTIN, SIGTTOU, or SIGTSTP - -tilde_expansion_failure_hook is now a CPFunction rather than a Function, -since that's how it's used - -Readline vi-mode `change case' function now skips over characters which -are neither upper nor lower case - -Readline vi-mode now allows replacement to be redoable with `.' - -2. New Features - -A `strict Posix.2' mode, enabled with the -posix startup option or -setting the POSIXLY_CORRECT variable (see CWRU/POSIX.NOTES for a -description of the changed behavior) - -`ONESHOT' is now an option in config.h - -cpp-Makefile assumes that fixed header files are present if gcc is being -used - -The redirections attached to a function declaration are now part of that -function, applied when the function is executed, as specified by Posix.2. -This caused a change to parse.y that resulted in 66 shift/reduce -conflicts(!) - -All of the OP= functions that Posix.2 specifies are now implemented for -both `let' and arithmetic substitution - -The `command' builtin has acquired the Posix.2 `-v' and `-V' options -(this shares code with the `type' builtin) - -A new `bash_builtins' man page, like the `csh_builtins' page on some -systems diff --git a/CWRU/old-changelogs/CWRU.chlog.v10 b/CWRU/old-changelogs/CWRU.chlog.v10 deleted file mode 100644 index 9fe2a7ae5..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v10 +++ /dev/null @@ -1,3177 +0,0 @@ - -[code made available via ftp -- first redistributable version] - - 9/3 - --- -lib/readline/history.c - - removed stray extern declaration of strrchr() - - made get_history_word_specifier a static function - -lib/readline/readline.c - - removed redundant declaration of rl_visible_stats - -execute_cmd.c - - make sure that the subshell forked to execute ( xxx yyy ) & - sets original_pgrp to -1 so that ( exec xxx yyy ) & does not - make the exec builtin restore the original process group - - 9/4 - --- - -builtins/read.def - - free `t' *only if* it was assigned the value from - string_list_dollar_star when more words are read than variables - supplied - -variables.c - - moved some external function declarations to file scope - -test.c - - changed the unary_advance and advance macros to use the - do { ... } while (0) idiom rather than the comma operator - - 9/5 - --- -builtins/getopts.def - - if __GNU_LIBRARY__ is defined, change getopt_set_posix_option_order - to a macro, because getopt.c will not be compiled in - - 9/7 - --- -subst.c - - support $POSIX_PEDANTIC as a synonym for $POSIXLY_CORRRECT - -builtins/set.def - - added support for `set -o posix' - - changed list_long_opts to use a define (`MINUS_O_FORMAT') for - the format argument to printf - -bashline.c, execute_cmd.c, jobs.c, nojobs.c, print_cmd.c, subst.c, test.c, -variables.c - - moved extern declarations from function scope to file scope, or - removed extern function declarations already appearing in bash - header files - -bashline.c - - include alias.h if ALIAS defined - -lib/readline/history.h - - added extern declaration for history_tokenize - -shell.c - - changed run_startup_files to use the global value of - posixly_correct instead of the posix_env argument, which was - eliminated - -lib/readline/readline.c - - changed alphabetic() so we're not casting the return value - from strchr() to an int - - 9/8 - --- -builtins/ulimit.def - - disable the getrlimit stuff if GETRLIMIT_MISSING is defined - -machines.h - - define GETRLIMIT_MISSING for the Sequent Symmetry - - change the M_OS define to `Dynix_ptx' for the Sequent Symmetry - - take HAVE_ALLOCA out of the Symmetry definition - - removed extra HAVE_ALLOCA define from linux machine description - -cpp-Makefile - - add $OSTYPE to HOSTTYPE_DECL, defining it as ${OS_NAME} - -variables.c - - make a variable $OSTYPE analogous to $HOSTTYPE, set from the - OSTYPE define from cpp-Makefile - -documentation/bash.1 - - added description of $OSTYPE - -parse.y - - changed report_syntax_error so that syntax errors set $? to 2 - like sh and ksh do - -lib/readline/funmap.c - - added bindings for the non-incremental `search again' functions - like those that vi uses - -expr.c, general.c, builtins/trap.def, builtins/common.c - - removed some extraneous extern function declarations - - 9/9 - --- -jobs.h - - added some more extern function declarations exported by jobs.c - -parse.y, bashline.c, shell.c, builtins/common.c - - removed some extraneous extern function declarations - -builtins/common.h - - fixed the extern declaration of parse_and_execute_cleanup - -lib/readline/readline.h - - added more extern function declarations for functions in bind.c - and complete.c - - include tilde.h instead of redeclaring the tilde variables and - functions - -parse.y - - made with_input_from_stream and with_input_from_stdin void - functions - - made the yy_*_get and yy_*_unget functions static - -shell.c - - made all the initialize functions static void - -trap.h - - added extern declarations for the rest of the functions defined - in trap.c - -trap.c - - made initialize_traps a void function, since it has no return - value - -externs.h - - new file, with function declarations not mentioned in other header - files. Included by shell.h. - -cpp-Makefile, builtins/Makefile - - updated the dependencies to include new header files - -bashline.c, execute_cmd.c, jobs.c, general.c, mailcheck.c, make_cmd.c, -nojobs.c, parse.y, print_cmd.c, shell.c, subst.c, test.c, trap.c, -variables.c, builtins/common.c, builtins/bind.def, builtins/declare.def, -builtins/exec.def, builtins/hash.def, builtins/let.def, builtins/source.def, -builtins/trap.def, builtins/type.def, error.c - - removed extern function declarations already in externs.h - -lib/tilde/tilde.h, jobs.h - - protect against multiple inclusion with #ifdef __XXX_H__ - -jobs.h - - added extern declaration of job_control - -general.c - - include and remove all of the extern declarations - for the tilde variables - -lib/readline/history.h - - added extern declarations for variables exported by history.c - -execute_cmd.c - - don't bother trying to free the string passed to make_child in - the child if the command is not found - -bashhist.c, bashhist.h - - new files with bash interface to the history library. Moved code - from parse.y, shell.c, subst.c to here. - -parse.y, bashline.c, shell.c, subst.c, variables.c - - include bashhist.h - -error.c, bashhist.c, bracecomp.c - - added copyright comment - -machines.h - - changed hpux_8 and hpux_9 entries to #undef USE_GNU_MALLOC - because they have the same YP bug as SunOS - - 9/10 - ---- -print_cmd.c - - fixed the printing of functions declared within functions by - making print_function_def and named_function_string responsible - for printing the open and close braces and printing the `inside' - command rather than overloading print_group_command - -builtins/fc.def, builtins/history.def - - fixed up to use bashhist.h and removed extra declarations of - history stuff - -nojobs.c - - restore the top-level signal mask on Posix.1 systems after - forking in make_child - - make all children set the job control signals to SIG_DFL in - make_child - - 9/12 - ---- -documentation/texi2roff-2.0.shar - - removed from the source tree - - 9/13 - ---- -lib/doc-support - - new directory for building texindex - -lib/doc-support/texindex.c - - upgraded to version 1.45 from the texinfo-3.1 distribution - -documentation/Makefile - - fixed so that features.dvi would build correctly - -variables.c, subst.c, braces.c, flags.c, jobs.c, mailcheck.c, parse.y, -builtins/cd.def, builtins/common.c, lib/readline/history.c, -lib/readline/isearch.c, lib/readline/readline.c - - removed instances of `index' being used as a variable or - structure member - -cpp-Makefile - - pass HAVE_LIMITS_H through to the rest of the build in - SYSTEM_FLAGS and LIBRARY_CFLAGS - -maxpath.h - - removed inclusion of `sysdefs.h', since the only reason it was - included was to pick up HAVE_LIMITS_H - - 9/14 - ---- -bashhist.h - - add extern declaration of history_expansion_inhibited, dependent - on BANG_HISTORY - -execute_cmd.c, builtins/common.c, subst.c, variables.c, parse.y, jobs.c, -error.c, bashline.c - - moved all extern variable declarations to beginning of file, - giving them file scope - -execute_cmd.c - - changed the code so that /dev/null is used as fd 0 for async - jobs if the shell itself is not interactive (!interactive_shell) - rather than currently interactive (!interactive) - -builtins/break.def, builtins/cd.def, builtins/declare.def -builtins/exit.def, builtins/fc.def, builtins/fg_bg.def builtins/hash.def, -builtins/kill.def builtins/read.def, builtins/return.def, -builtins/setattr.def builtins/source.def, builtins/type.def, -builtins/wait.def - - moved all extern variable declarations to beginning of file, - giving them file scope - - 9/15 - ---- -support/mksysdefs - - change the test to set SCOREL so that it handles SCO v4.2 and - above (everything above and including 4.0) - -machines.h - - changed M_OS define of `Solaris' to `SunOS5'; added -DSolaris to - SYSDEP_CFLAGS for Solaris 2 systems - - 9/16 - ---- -print_cmd.c - - make sure cprintf() null-terminates the_printed_command correctly - -test.c - - changed the last two stray stat() calls to test_stat() - - made test_stat handle emulation of /dev/fd for systems that - don't have it: /dev/fd/x returns the result of fstat(x, finfo) - -documentation/bash.1 - - added -b to the usage line for the `set' builtin - - added description of `set -o posix' - - added -u, -v to the usage line for the `ulimit' builtin - - added text describing key bindings in ~/.inputrc to the - READLINE section - -documentation/texinfo.tex - - upgraded to the latest version from the texinfo-3.1 distribution - -documentation/features.texi, lib/readline/doc/rluser.texinfo, -lib/readline/doc/hsuser.texinfo - - a major overhaul and expansion - - 9/17 - ---- -bashline.c - - set rl_vi_comment_begin to "#" when in Posix.2 mode - -lib/readline/vi_mode.c - - set vi mode comment begin character string to "#" by default - - 9/18 - ---- -lib/readline/bind.c - - added `set keymap' command to the init file variable setting code - -documentation/bash.1, documentation/features.texi - - added description of `set keymap' command - -lib/readline/doc/rluser.texinfo - - completed description of init file and keybinding syntax - - 9/20 - ---- -variables.c - - if POSIXLY_CORRECT or POSIX_PEDANTIC are in the initial shell - environment, enter `Posix.2 mode' - -machines.h - - define SCO REQUIRED_LIBRARIES as `-lc_s -lc -lPW' to pick up - the functions in libc and libPW from libc (e.g. rename) - - - 9/21 - ---- -execute_cmd.c - - fixed X_BIT macro to protect its argument with parens in the - macro body - -maxpath.h - - include sys/param.h on Dynix machines if MAXPATHLEN is not - defined after including limits.h - -general.c - - moved the inclusion of on Posix.1 systems up with the - rest of the includes - -shell.c, lib/readline/complete.c, lib/tilde/tilde.c - - don't extern declare getpwuid on Dynix machines - -lib/readline/history.c - - make sure strlen() is cast to int whenever used in a comparison - - 9/23 - ---- -lib/readline/readline.c - - changed rl_call_last_kbd_macro to disallow recursive macro - execution - - 9/26 - ---- -bashline.c - - free rl_vi_comment_begin before assigning to it; make sure to - savestring() what we assign to it - - 9/28 - ---- -lib/readline/search.c - - in noninc_search, make the ^W and ^U bindings closer to what - Posix.2 specifies. (The ^W binding still uses unix_word_rubout, - which uses whitespace as the word boundary. This is what - ksh-88 does, too. Posix.2 says to use punctuation characters - as word boundaries also.) - -lib/readline/vi_mode.c - - fixed a bug in rl_vi_delete_to which caused c[wW] to delete one - extra character when there were multiple spaces between words. - Made the same change to rl_vi_change_to() and rl_vi_yank_to(). - -lib/readline/complete.c - - fixed quoted substring completion so that `\' can quote the - quote character - - fixed the quoted string completion mechanism by doing the - following: - o quoted word break characters do not break words for the - completer, so `"abcde"/xhy' no longer sends `/xhy' to - the rest of the completion code - o quotes are stripped after the application-specific - completion function is attempted if filename completion - is about to be performed. If needed, they are added - back later. This has the benefit of removing unneeded - quotes. - - 9/29 - ---- -siglist.h - - ICL DRS6000s need sys_siglist to be defined as _sys_siglist - -machines.h - - take the define of sys_siglist out of the DRS6000 entry - - added summary of available definitions for SYSDEP_CFLAGS - - added new SYSDEP_CFLAGS variable: HAVE_GETPW_DECLS to isc386, sgi, - Linux, Dynix descriptions - - changed isc386 description: added ISC_SYSDEPS to make the - SYSDEP_CFLAGS lines a little cleaner - -shell.c, lib/tilde/tilde.c, lib/readline/complete.c - - now uses HAVE_GETPW_DECLS define - -lib/tilde/tilde.c - - removed references to getpwent(), since it's not called - - add extern declaration for getpwnam() - -lib/readline/complete.c - - add a __STDC__ definition for getpwnam() for isc386 machines - -cpp-Makefile - - updated the dependencies: bashhist.h, bashansi.h, dependencies - on the library include files - - 9/30 - ---- -mailcheck.c - - cleaned up the name space by making functions not used by other - files static - - took out redundant test in check_mail after the goto next_mail_file - -variables.c - - cleaned up the code a bit by removing unnecessary { ... } pairs - enclosing some code blocks - - check for $IGNOREEOF at startup, call sv_ignoreeof if imported - -parse.y - - new variable `ignoreeof', non-zero if we are ignoring EOF, used - in handle_eof_input_unit -- keeps us from looking up $IGNOREEOF - and $ignoreeof on every EOF character - -subst.c - - sv_ignoreeof now sets or clears `ignoreeof' - -flags.h - - changed flags_alist `name' member to be a char, since we only - ever use one character - - added FLAG_UNKNOWN to be returned by find_flag, since (int *)-1 - is not portable, and (int *)0 is just as good a value - -flags.c - - changed find_flag, change_flag_char, change_flag, to take a - char as a parameter rather than a char * because we only use - one char and this is faster - -builtins/set.def - - changed calls to find_flag to pass a char instead of a char * - -shell.c, jobs.c, builtins/set.def - - changed instances of change_flag_char to change_flag, since the - two are now equivalent - -cpp-Makefile - - added BUILTIN_OBJS, made BUILTINS_LIB depend on them - - added dependencies for builtin objects on builtin .def files - - otherwise tightened up the dependencies - - 10/1 - ---- -support/mksysdefs - - handle SGI Irix 5.x by making SYSDEF="Irix5" - -parse.y - - made init_yy_io a void function - -input.h - - moved extern function declarations for parse.y and input.c to - this file from externs.h - -shell.c - - include input.h unconditionally, now that it has extern function - declarations - - check for $POSIX_PEDANTIC at shell startup, set posixly_correct - if found - -make_cmd.c - - include input.h for the extern function declarations - -execute_cmd.h - - new file, with extern declarations from execute_cmd.c - -subst.c, builtins/type.def, variables.h, builtins/exec.def, builtins/hash.def, -shell.c, buitlins/common.c, execute_cmd.c, mailcheck.c - - include execute_cmd.h - -cpp-Makefile, builtins/Makefile - - updated the dependencies as a result of the new and changed - include files - -execute_cmd.h, externs.h, input.h - - changed to use the __P(()) method of using prototypes for extern - functions - -nojobs.c - - include command.h - - 10/5 - ---- -bashline.c - - make sure test_for_directory frees the filename if stat(2) - fails - -lib/readline/vi_mode.c - - fixed the `c' command when used with the following motion - commands: `^', `0', `%', `b', `B'. The cursor was being - moved one position too far, resulting in too much erasure - -parse.y - - changed redirection_needing_here_document into a stack of - such redirections (redir_stack), indexed by need_here_doc, - to handle command lines with >1 redirection, e.g. - cat <word being non-null in dispose_word before trying - to free it - - 10/8 - ---- -variables.c - - made new_shell_variable static - - made set_var_read_only, set_func_read_only, set_var_auto_export, - set_func_auto_export, sort_char_array, maybe_make_export_env, - put_command_name_into_env void functions - -variables.h - - added declarations for all the missing extern functions - -builtins/hash.def - - include posixstat.h for definition of struct stat to use in - function prototype declarations - -expr.c - - renamed local function `assignment' to `expassign' to avoid - clashing with the global `assignment' defined in variables.c - -builtins/source.def - - include `execute_cmd.h' to pick up extern function declarations - -trap.h - - protected against multiple inclusion with __TRAP_H__ define - - added prototypes with __P - - 10/11 - ----- -support/mksysdefs - - check in /usr/include/ansi and /usr/include/bsd for NeXT 3.x - machines - -lib/readline/vi_mode.c - - include rldefs.h - - 10/12 - ----- -test.c - - changed the `-x' test to call access(2) when AFS is defined, - since `stat' doesn't work with AFS - -builtins/cd.def - - added code to dirs_builtin to implement dirs -n and dirs +n - -documentation/bash.1, documentation/features.texi - - updated description of `dirs' builtin - - 10/14 - ----- -lib/readline/bind.c - - new function _rl_bind_if_unbound, which binds a key sequence to a - readline function if that key sequence is unbound - -lib/readline/readline.c - - use _rl_bind_if_unbound to try to bind the arrow keys in - init_terminal_io - - - 10/15 - ----- - -lib/readline/display.c - - laid the groundwork for expanding special characters in - readline prompt strings: new function expand_prompt - - rl_redisplay now has static local prompt variables: - local_prompt: expanded prompt string after last newline - local_prompt_prefix: expanded prompt string before last newline - visible_length: number of visible chars in local_prompt - prefix_length: number of visible chars in local_prompt_prefix - changed when rl_display_prompt changes - - 10/18 - ----- -lib/readline/display.c - - new function: rl_expand_prompt, expands the prompt and sets the - local display variables to the right values for redisplay. - - changed rl_redisplay to use the values computed by rl_expand_prompt - if rl_display_prompt == rl_prompt and the old expansion code if - otherwise (for instance, if rl_display_prompt is set by rl_message) - -lib/readline/readline.c - - new function: rl_get_termcap to retrieve the value of any termcap - attribute that readline retrieves - - made readline_internal static, added appropriate declarations - - new global library variable: rl_visible_prompt_length - - added call to rl_expand_prompt in readline() before call to - rl_initialize - -lib/readline/search.c - - use rl_visible_prompt_length instead of strlen(rl_prompt) in - noninc_search () - - 10/19 - ----- -execute_cmd.c - - in execute_command_internal, mark an async job with a forced - subshell `( xxx ) &' as no longer an interactive shell, no - matter whether or not the original shell was interactive. This - allows jobs to be reaped without notification and fixes a mem - `leak' (not really a leak, but the shell keeps increasing the - size of the jobs table) - - 10/21 - ----- -machines.h - - updated the NEC EWS description with hints from Jim Blandy - - 10/23 - ----- - -lib/readline/display.c - - changed expand_prompt so that it understands `escape' characters - to mark the beginning and end of a sequence of non-visible - characters, and takes these into account when returning the - length of the prompt string - -lib/readline/readline.h - - new defines: RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE - - 10/24 - ----- - -parse.y - - removed check for $NO_PROMPT_VARS from decode_prompt_string() - -documentation/bash.1 - - removed reference to $NO_PROMPT_VARS - - 10/25 - ----- -machines.h - - add -lc_s to the AIX/PS2 REQUIRED_LIBRARIES definition - -lib/readline/readline.c - - removed the extra space that rl_yank_nth_arg adds before the - yanked string - - 10/26 - ----- -trap.c - - set_sigint_handler now sets the SIGINT handler to sigint_sighandler - only if `interactive' is set, rather than interactive_shell. This - fixes the `". x", then sigint' bug reported by Vasco Pedro. - -general.c - - removed `register' from variable declarations in function prologues - - some functions now take slightly different arguments: - delete_element takes a `char *' as the third argument - find_name_in_list takes a `char **' as the second argument - -general.h - - changed definition of REVERSE_LIST to cast the argument of the - call to reverse_list() - - added prototypes for all extern functions defined in general.c - - definition of BCOPY for use in general.c and elsewhere - -shell.c - - changed some calls to reverse_list to REVERSE_LIST - -shell.h, make_cmd.c, unwind_prot.c, input.c, builtins.h, error.c - - include command.h before general.h for declaration of WORD_LIST - -execute_cmd.c, expr.c, general.c, input.c, shell.c, unwind_prot.c, parse.y - - changed calls to bcopy to call xbcopy instead, and cast the - first two arguments to char * - -copy_cmd.c - - changed calls to bcopy to call BCOPY instead - -machines.h - - new machine definition for IBM AIX/ESA (OSF/1) from Sergio - Gelato - -support/mksysdefs - - If `uname -m' returns `ESA', the machine is an IBM ESA - -lib/posixheaders/memalloc.h - - new file, to unify the code to include if necessary - and declare alloca() - -config.h, config.h.mini, lib/readline/rldefs.h, lib/readline/history.c, -lib/readline/isearch.c, lib/readline/search.c, lib/tilde/tilde.c - - changed to include "memalloc.h" - -builtins/getopt.c - - don't include #pragma alloca line on IBM ESA systems - - include malloc.h rather than alloca.h for AIX/ESA - -support/getcppsyms.c - - new defines to support AIX/ESA - -cpp-Makefile, builtins/Makefile, lib/readline/Makefile - - updated dependency information to include memalloc.h - -lib/readline/vi_keymap.c - - `\' in vi insertion mode should be mapped to self-insert rather - than quoted-insert - - 10/27 - ----- -nojobs.c - - added variable `already_making_children', made a function - start_pipeline called from make_child to set it, value cleared - in stop_pipeline. This is how jobs.c treats it. - -execute_cmd.c - - in the `subshell' code in execute_command_internal, we need to - handle a possible `return' if in a function: - f() - { - echo x | ( read b ; return 1 ) - return 0 - } - and treat it like an `exit' - - already_making_children is no longer a job-control only variable - - made the code that decides whether or not to wait for a child - process in the simple_command case of execute_command_internal - be the same for job control and non-job control shells, since - already_making_children has been put into nojobs.c - -lib/readline/display.c - - changed the display code to handle invisible characters in the - prompt and still wrap lines at the correct column. wrap_offset - is the variable used to keep track of the number of invisible - characters in the buffer - - changed rl_redisplay to use `screenchars' from readline.c so we - don't have to compute (screenwidth * screenheight) on each - redisplay - -lib/readline/readline.c - - new variable `screenchars', set to the total number of characters - on the screen we can use (screenwidth * screenheight) - - changed rl_refresh_line so that it computes the line that the - cursor is on correctly, taking invisible characters into account - - 10/28 - ----- -general.h - - changed declaration of vfree to xfree - -general.c - - renamed vfree to xfree, since some systems already have a vfree() - in libc - -execute_cmd.c, jobs.c, builtins/read.def, builtins/common.c - - changed vfree to xfree - -shell.c - - for systems that don't define USG and define ENOTSOCK, try to - use getpeername() in issock() to find out whether or not an - fd is a socket - -documentation/bash.1, documentation/features.texi - - documented the new \[ and \] prompt string escape sequences - -documentation/bash.1, lib/readline/doc/rluser.texinfo - - documented the new `show-all-if-ambiguous' readline variable - -lib/readline/complete.c - - changed rl_complete to call rl_complete_internal with `!' if - the variable `_rl_complete_show_all' is non-zero - - changed rl_complete_internal to show all matches if there is - more than one and what_to_do is `!' - -lib/readline/bind.c - - new variable `show-all-if-ambiguous' to control the value of - _rl_complete_show_all - - changed a call to alloca() in rl_parse_and_bind to a - malloc/free pair (`seq' variable), since some systems do not - allow alloca'd memory to be passed to a function - - did the same alloca -> xmalloc/free in rl_generic_bind - (`keys' variable) - - 10/29 - ----- -dispose_cmd.h, make_cmd.h, command.h - - added prototypes for the extern function declarations - -variables.c - - BSD/386 needs getenv to have a `const char *' argument - -make_cmd.c - - changed make_until_or_while to a static function - -command.h - - removed extern declarations for functions in make_cmd.c; those - are in make_cmd.h - - 11/1 - ---- -input.c - - make sure that sync_buffered_stream returns a value - -test.c - - make sure that binary_operator returns a value - - 11/2 - ---- -cpp-Makefile - - added a definition of GCC_LINT_FLAGS and GCC_LINT_CFLAGS to - generate lint-like warnings from gcc - -siglist.h - - cast references to sys_siglist[] in the `strsignal' macro - for the benefit of Linux - -jobs.c, nojobs.c - - changed all absolute references to sys_siglist to call the - strsignal macro instead - -lib/readline/{readline.c,display.c,signals.c} - - _rl_output_character_function is an int - -lib/readline/rltty.c - - outchar should return an int - -general.c - - use %ld to printf longs - -builtins/trap.def - - reordered code and eliminated some brace groups - -builtins/ulimit.def - - open_files() should return a long - -shell.h - - include if HAVE_VARARGS_H is defined, not simply if - HAVE_VFPRINTF is defined - -parse.y, execute_cmd.c, subst.c, trap.c, jobs.c - - make sure that all function parameters are declared explicitly - and not defaulted to int - -builtins/fg_bg.def - - fixed a bug where last_asynchronous_pid could be set to a random - value if an unknown job or a non-job-control job was selected - -test.c - - added a missing `%s' to a call to test_syntax_error - -cpp-Makefile - - renamed `endian.h' to `bash-endian.h'; it seems that linux and - gnu libc use it in /usr/include. What a pain in the ass. - - 11/4 - ---- -machines.h - - add `#define HAVE_VARARGS_H' to the Linux machine description; - the auto-configuration process is unable to find it in the gcc - private include directories - - 11/5 - ---- -cpp-Makefile - - COMPRESS_EXT should be `.gz' - -general.h - - have the BCOPY define for USG machines use `memmove' rather than - `memcpy', since that handles overlapping objects correctly - -lib/readline/display.c - - fixed the line updating code that checked whether a new line was - shorter or had fewer invisible characters that the visible line, - and called clear_to_eol with the right value and only in the - right cases - -machines.h - - added separate machine descriptions for NetBSD and FreeBSD - -builtins/command.def - - don't try to call confstr() on NetBSD - - 11/6 - ---- -machines.h - - define HAVE_BCOPY for sgi - - define HAVE_GETHOSTNAME for Linux and HPUX machines later than - hpux 6.2 - -general.h - - remove the `if defined (sgi) from the clause that defines BCOPY - -general.c - - use new HAVE_BCOPY and HAVE_GETHOSTNAME defines instead of the - OS-specific symbols used before - - 11/8 - ---- -machines.h - - for i386 machines running aix/ps2, use USE_TERMCAP_EMULATION, - since the terminfo database is more up-to-date than termcap - -lib/readline/complete.c - - make sure that X_OK is defined for the VISIBLE_STATS code - -config.h, builtins/echo.def - - added a DEFAULT_ECHO_TO_USG option for the echo builtin - -lib/readline/rldefs.h - - Xenix 2.2 systems, while mostly USGr3, do not have `sighold' - and related functions - -lib/readline/isearch.c - - added a variable `prev_line_found' to keep the incremental - searches from finding the same line two or more times in a - row - -support/getcppsyms.c - - recognize `_M_XENIX' and `mc68k32' symbols from cpp - -tests/run-dollar-at-star-test - - use `../bash' to point at the bash executable rather than - `../../sun4/bash' - -general.h - - some systems have a `strerror' define, so we need to protect - the extern function declaration - -trap.h - - use SIG_DFL rather than NSIG as the test of whether or not to - include , since Posix.1 does not require NSIG - - 11/9 - ---- -subst.c - - new function get_word_from_string to slice a field off the front - of a string and skip trailing separators according to $IFS - -builtins/read.def - - changed read_builtin to use get_word_from_string to `incrementally' - do word splitting on the line read so that if fewer variable names - are given than words read, the separators in the original line are - preserved. This makes `read' Posix.2 compliant. - - 11/10 - ----- -cpp-Makefile - - add a sentinel file `parser-built' for y.tab.c and y.tab.h to - depend on, since there's no rule for telling make how to build - y.tab.h - -shell.c - - removed the #ifdef AUX code that sets up a 4.2 compatible - environment in favor of using the -ZP option to cc to create - a Posix executable (AUX 3.0) - -jobs.c - - changed sigwinch_sighandler so that it saves the window size - struct with the new values in shell_tty_info.c_winsize on AIX PS/2 - Since readline calls the old sigwinch handler, this code should - be called no matter when the signal is received - -support/mksysdefs - - add code to define AIX_13 on AIX PS/2 version 1.3 machines - -machines.h - - there are different SYSDEP_CFLAGS and REQUIRED_LIBRARIES for - AIX PS/2 1.2 and 1.3, so use the AIX_13 define to differentiate - - 11/11 - ----- -execute_cmd.c - - speedups and fixes for here document processing in - do_redirection_internal: don't do string processing we can - avoid, use stdio to help with write buffering if we're - expanding the document, close some file descriptor leaks - -make_cmd.c - - speed up gathering here documents: avoid expensive calls to - strncmp when possible, avoid a stupid strcpy when stripping - leading tabs, use BCOPY instead of strcpy - -print_cmd.c - - made varargs and non-varargs versions of cprintf() as similar - as possible - - redid the_printed_command_resize() to be a little smarter about - allocating memory - -subst.c - - sped up string_list_internal by allocating all the necessary - space before copying rather than using xrealloc, using BCOPY - and an `end ptr' instead of strcat, trying not to call strlen - to get the separator length - - sped up sub_append_string by using BCOPY instead of strcat, - being smarter about memory allocation, and cutting down calls - to strcpy - - sped up expand_string_internal by not calling the - make_word/dispose_word pair, but by filling in a local - WORD_DESC, short-circuiting if the string is null or empty - - don't bother trying to split words in expand_string_leave_quoted - if expand_string_internal returns a null list - - ditto for dequoting in expand_string_unsplit - -lib/readline/vi_mode.c - - removed `w' and `W' from the list of characters that do not - require the point to be moved after a call to rl_vi_domove - in rl_vi_delete_to (`d') and rl_vi_yank_to (`y'). Only the - `c' command (rl_vi_change_to) requires this behavior - - 11/12 - ----- -subst.c - - make sure all places which call expand_word_internal are - prepared to deal with error returns (expand_word_error - and expand_word_fatal) by adding a convenience function - call_expand_word_internal that performs the call and deals - with the possible error returns. This keeps the shell - from dumping core on some errors - -lib/readline/vi_mode.c - - make sure is included before rldefs.h - -parse.y - - changed read_a_line to use and re-use a static line buffer - -make_cmd.c - - no longer need to free full_line, since read_a_line (called - from read_secondary_line), does not allocate a new one on - each call - -builtins/psize.c, alias.c - - need to include command.h before general.h - - 11/15 - ----- -documentation/features.texi, lib/readline/doc/{hsuser,rluser}.texi - - fixed some spelling errors and typos - -endian.c - - include for size_t - -Makefile.inc - - new file, included in cpp-Makefile, providing biolerplate Gnu - make definitions - -cpp-Makefile - - include Makefile.inc - - added `distclean', `realclean' targets as per Gnu coding - standards - - 11/17 - ----- -cpp-Makefile - - `make install' now installs the documentation in $(mandir) and - $(infodir) - - `make documentation' now passes $(MFLAGS) to the sub-make - -documentation/Makefile - - now has an `install' target - -config.h - - RESTRICTED_SHELL is no longer automatically defined - -support/mksysdefs - - Intel paragons (uname -m = paragon) need MAKE_ANSI set to true - -lib/readline/history.c - - create the history file with mode 0600, since it's supposed to - be private information - -builtins/fc.def - - make sure we put in the tab and `*' only if the line is actually - being listed to stdout rather than to a file for reexecution - - 11/17 - ----- -machines.h - - fixed a typo in the hpux machine description - - added some SYSDEP_CFLAGS to the __BSD_4_4__ description - -README - - corrected mail address for bash-maintainers - -jobs.h - - don't declare fork (), getpid (), and getpgrp () on __BSD_4_4__ - - 11/18 - ----- -subst.c - - fix to string_list_internal to make it return a null string if - handed a null list - -parse.y - - fix to find_reserved_word: `word' is declared as the argument, but - `token' is what's used in the body - -lib/malloc/alloca.c - - Crays need to define _getb67() as CRAY_STACKSEG_END - -machines.h - - ISC machines should be using USE_TERMCAP_EMULATION - - 11/19 - ----- -lib/readline/Makefile, lib/tilde/Makefile, lib/glob/Makefile, cpp-Makefile - - change instances of `make' in recipes to `$(MAKE) $(MFLAGS)' - -machines.h - - SunOS4 needs `OPENDIR_NOT_ROBUST' - - recognize a Motorola M88100 if m88k and USGr4 are defined, since - support/mksysdefs sets SYSDEF to USGr4 rather than M88100 for - the Motorola V.4 - - changes to the ISC entry to handle ISC version 4 as well as - version 3 using cc and gcc to compile - -shell.c - - fixed a typo (__POSIX_VERSION -> _POSIX_VERSION) - - fixed a problem with reset_terminating_signals which caused the - wrong signal numbers to be checked for being trapped or - handled specially - -lib/readline/vi_keymap.c - - ^H in movement mode should by default be mapped to rl_backward - - delete (^?) should be unbound in the default movement mode keymap - -lib/readline/vi_mode.c - - rl_vi_last_arg should insert a space before inserting the last - argument, according to Posix.2 - -getcwd.c - - correctly declare the second argument as a size_t if __STDC__ - is defined - - 11/20 - ----- -builtins/fc.def - - go back to the ad-hoc option parsing style, because the builtin - getopt does not handle things like `fc -l -10' correctly - -support/mksysdefs - - fixed a typo problem defining $UnicosMachine that left a comment - unclosed - -lib/malloc/alloca.c - - bug fix from Bill Jones for CRAY_STACKSEG_END define - -config.h, execute_cmd.c - - fix for CRAY and defining `word' - -machines.h - - Crays need to define OPENDIR_NOT_ROBUST - -bashtypes.h - - sys/types.h with handling for multiple inclusion and Cray - peculiarities - -execute_cmd.c, make_cmd.c, parse.y, subst.c - - include `bashtypes.h' rather than - - 11/22 - ----- -machines.h - - add definitions of CRAY_STACKSEG_END for Cray XMP and YMP - - removed OLD_CRAY_DESCRIPTION stuff - -lib/readline/rldefs.h - - encapsulate CRAY peculiarities with casting pointers to ints - inside two defines: FUNCTION_TO_KEYMAP and KEYMAP_TO_FUNCTION - -lib/readline/bind.c, lib/readline/readline.c - - change code to use FUNCTION_TO_KEYMAP and KEYMAP_TO_FUNCTION - -maxpath.h - - include on the convex, but not on bsdi - -newversion.c - - overhauled and cleaned up - - added the `-patch' argument to set the patch level of the shell - - look in `.patchlevel' for the patch level and write it out as - PATCHLEVEL - -version.c - - new variable patch_level - -shell.c - - the version string is now `dist.patch(build)' - - new function shell_version_string returns a pointer to the - version string, show_shell_version changed to use it - -variables.c - - bind $BASH_VERSION to the value of shell_version_string () - - 11/23 - ----- -machines.h - - SCO machines now include -DPGRP_PIPE in the SYSDEP_CFLAGS define - - HPUX_9 needs an #undef HAVE_RESOURCE; it appears that they've - finally removed getrusage - -trap.c - - signal_name should return an error when passed NSIG - -parse.y - - add AND_AND and OR_OR to the list of tokens which are not followed - by a semicolon - - decrement current_command_line_count if pre_process_line returns - a null or empty string, otherwise the next input line may be - combined with the previous line inappropriately - - 11/24 - ----- -machines.h - - the KSR/1 section should be delimited by `__ksr1__', added some - SYSDEP_CFLAGS to that description - -support/mksysdefs - - quote all the arguments to expr - -support/getcppsyms.c - - recognize and pass on `__ksr1__' - -lib/readline/bind.c - - new inputrc variable `output-meta', which means output meta - chars without converting them to M- sequences - -lib/readline/readline.c - - new variable `_rl_output_meta_chars' to hold value of - `output-meta', initially off - - slight efficiency improvement to rl_insert_text, rl_forward, - rl_backward - - changed the order of args to rl_kill_text in rl_unix_word_rubout - so that multiple words can be killed and yanked out in the - `right' order - -lib/readline/display.c - - changes to use the value of `_rl_output_meta_chars' to decide how - to output characters with the eighth bit set - -documentation/bash.1, lib/readline/doc/rluser.texinfo - - documented new readline `output-meta' variable - -lib/readline/complete.c - - make the replacement of typed text by a completion match be a - single undoable event - -builtins/type.def - - call user_command_matches specifying FS_EXEC_ONLY as the search - criteria. This keeps test from finding directories - -bashhist.c - - changed maybe_save_shell_history so that if the history has - been stifled then the history file is replaced with the current - history list - - 11/29 - ----- -builtins/exec.def - - if the shell is restricted, exec is not allowed - -cpp-Makefile - - more changes for GNU standards: VPATH, libdir, srcdir - -jobs.h - - remove machine-specific undefining of HAVE_WAIT_H - -machines.h - - cadmus systems need to #undef HAVE_WAIT_H - - hpux_usg and hpux_6 systems need to #undef HAVE_WAIT_H - - added a section for `Irix5' to the sgi section - -documentation/Makefile - - fixed up the install for bash_builtins.1 so that it sets the .so - path correctly - -shell.c - - renamed issock to isnetconn and made its inclusion unconditional - - added a check for S_ISCHR for SVR4 and SVR4.2 systems to isnetconn - -subst.c - - added code so that `history_control=ignoreboth' works - -documentation/bash.1, documentation/features.texi - - added a description of `ignoreboth' to the text describing - `history_control' - - 11/30 - ----- -input.c - - don't print an error message in check_bash_input if the fnctl - to dup the file descriptor fails unless the file descriptor - is already active - -jobs.c, nojobs.c - - set bash_input.location.buffered_fd to -1 when setting - default_buffered_input to -1 in make_child. This fixes - the `( echo hi 1>&3 ) 3>&1 >/dev/null' spurious error message - -shell.c, error.c - - removed the automated bug report code - -support/bashbug.c - - is no more - -Makefile - - added GNU boilerplate definitions - -support/bashbug.sh, support/mkbashbug - - new files for a BSD sendbug-like bug reporting shell script - -cpp-Makefile - - changes to use $(SUPPORT_SRC) instead of $(SDIR) under some - circumstances - - removed references to support/bashbug.c - - new target to make bashbug from $(SUPPORT_SRC)/bashbug.sh using - $(SUPPORT_SRC)/mkbashbug - - bashbug is now created by default - - don't build endian.aux or create bash-endian.h if HAVE_WAIT_H - is defined, because it will end up being unused anyway - -machines.h - - add OPENDIR_NOT_ROBUST to the isc386 description - -signames.c - - make the signal_names array 2 * NSIG long to hack around HP/UX - misfeature - -builtins/test.def - - fixed the help text for -t to note the the fd argument is not - optional - - 12/1 - ---- -builtins/common.c - - changed parse_and_execute so that it no longer unconditionally - sets `interactive' to 0. It is now the responsibility of callers - of parse_and_execute to set it how they want, and reset it if - necessary - -shell.c, subst.c, builtins/source.def - - changed the functions that call parse_and_execute to manage the - value of `interactive' - -shell.c - - changed maybe_execute_file so that it takes a second argument - saying whether or not to force the value of `interactive' to 0 - - changed all calls to maybe_execute_file to add a second arg - -builtins/fc.def, builtins/exit.def - - changed all calls to maybe_execute_file to add the second arg - Now background jobs re-run with `fc -s' echo the job number - -externs.h - - changed the function prototype for maybe_execute_file - - 12/2 - ---- -execute_cmd.c - - rewrote the auto-resume code in execute_simple_command for clarity - - added the `substring' value for auto_resume to cause a command that - matches a substring of a stopped job to restart that job - -documentation/bash.1, documentation/features.texi - - added a description of the possible values for `auto_resume' and - their effects on the shell's behavior - -machines.h - - added a generic desription for SVR4 running on the sparc from - Ian Stewartson - -Makefile - - added a command to the bash-Makefile target that will remove - bash-Makefile and (hopefully) stop the make if something happens - and bash-Makefile is created with zero length - - 12/3 - ---- -machines.h - - add -DOPENDIR_NOT_ROBUST to the SYSDEP_CFLAGS for SCO - - if compiling with gcc on SCO, link with -lc_s and -lc in - REQUIRED_LIBRARIES - - 12/6 - ---- -builtins/source.def - - new variable `sourcelevel' which is incremented each time `.' - is called and decremented before source_builtin returns - -variables.c - - find_variable should call find_variable with a second parameter - of 1 if `builtin_env' is non-null, so it will search it. This - ensures that all builtins inside a script read with `.' with a - temporary environment will get the right values - -subst.c - - fix for get_word_from_string: white space should be removed from - the beginning of the string if $IFS is " \t\n" - -execute_cmd.c - - in `Posix.2 mode', redirections should not perform filename - expansion when the shell is not interactive - - 12/7 - ---- -support/getcppsyms.c - - recognize `__i386__' - -lib/readline/bind.c - - only free and reassign `last_readline_init_file' if it has - changed (`filename' points to something different) in - rl_read_init_file - -builtins/ulimit.def - - add a `$DEPENDS_ON !MINIX' line so that this won't be built - under MINIX - -config.h - - Minix machines need JOB_CONTROL undefined - -cpp-Makefile - - don't define libraries with absolute pathnames; use -llibname - instead - - make sure MALLOC_LIBRARY is defined even if the Gnu malloc is - not being used for the benefit of `LD_HAS_NO_DASH_L' - -general.c - - use a `TIMEVAL_MISSING' define to decide whether or not to - try to print a struct timeval * rather than simply `USG' - -lib/readline/parens.c - - don't try to include unless FD_SET is defined - -lib/readline/vi_keymap.c - - fix incorrect cast of rl_abort in vi_movement_keymap - -signames.c - - make sure NSIG is defined - -siglist.c - - include `trap.h' to pick up definition of NSIG if it's undefined - -siglist.h - - minix uses _sys_siglist and does not need an external declaration - for it - - 12/8 - ---- -lib/readline/readline.c - - add `ks' and `ke' to the termcap attributes that readline retrieves - -lib/readline/rltty.c - - new function `control_keypad' to enable and disable keypad keys. - Some systems need this before the arrow keys will work - - call control_keypad to enable and disable the keypad from the - terminal prep and deprep code - - 12/9 - ---- -support/mksysdefs - - added code a la trn `Configure' to search a list of include - directories for each .h file of interest. Done by defining a - variable containing the code fragement we want to execute and - calling `eval' on this string for each file - -lib/readline/bind.c - - slightly changed the filenames used by rl_read_init_file. Now - the filename used is the first non-null file from this list: - 1. the filename used for the previous call - 2. the value of the shell variable `INPUTRC' - 3. ~/.inputrc - -documentation/bash.1 - - added descriptions of INPUTRC to the shell variables and - readline sections - -documentation/features.texi - - added a description of INPUTRC to the shell variables section - -lib/readline/doc/rluser.texi - - added description of the INPUTRC environment variable - - changed instances of ~/.inputrc to the more generic `init file' - or `inputrc file' - -lib/readline/complete.c - - added #defines for the possible values of `do_replace' rather - than relying on magic numbers - - if a completion that needs double quotes starts with a tilde, - rl_complete_internal now performs tilde expansion before - quoting the string, since the shell allows double quotes to - inhibit tilde expansion - - 12/10 - ----- -lib/readline/readline.c - - new function to kill the whole line no matter what point is: - rl_kill_full_line () - -lib/readline/readline.h - - extern declaration for rl_kill_full_line () - -lib/readline/funmap.c - - rl_kill_full_line is available as `kill-entire-line' - -cpp-Makefile - - remove `.machine' when `make clean' run - -subst.c, subst.h - - made expand_string_leave_quoted static again - - 12/14 - ----- -shell.c - - use HAVE_SOCKETS define to decide whether to include - and call getsockname(); defined automatically for non-USG systems - if ENOTSOCK is defined - - 12/15 - ----- -bashline.c, flags.c, flags.h, jobs.c, subst.c, builtins/common.c, -builtins/cd.def - - changed `follow_symbolic_links' to `no_symbolic_links', with an - opposite meaning - -flags.c, flags.h - - new shell option, -P/-o physical set if no_symbolic_links is set - - changed a sequence of `if' statements into a switch statement in - change_flag - -documentation/bash.1, documentation/features.texi - - added documentation for the -P/-o physical option - -builtins/cd.def - - follow_symbolic_links is now declared in flags.c and declared - extern here - -builtins/set.def - - code to set and get the value of -P/-o physical - - fixed up the help text and short documentation string - - made `set -?' print a usage message - -subst.c - - made sv_nolinks set the new variable `no_symbolic_links' - - 12/17 - ----- -machines.h - - add -DUSG to HPUX_CFLAGS - - hpux 9 does not need -lPW and can use the gnu malloc if gcc - is being used - -config.h - - remove the code that defines USG for HPUX, Xenix, and UNIXPC - in favor of putting it into the machines.h entry - - 12/19 - ----- -flags.h - - added prototypes for the extern function declarations from flags.c - -*.h - - added copyrights to the include files which were missing them - -lib/readline/vi_mode.c - - rl_vi_yank_nth arg inserted the space in the wrong spot before - yanking the last argument - - removed the call to rl_vi_insertion_mode because of changes to - rl_yank_nth_arg - -lib/readline/readline.c - - changed rl_yank_nth_arg so that vi mode inserts a space in the - right spot - - fixed rl_yank_nth_arg so that yanking into an empty line does - not corrupt the buffer - -lib/readline/search.c - - fixed noninc_search so that ^H and RUBOUT call rl_rubout - explicitly - -bashline.c - - fix for operate_and_get_next to make ^O work on the most - recent line even if the history is unstifled. From Seth - Robertson. XXX - may not be right - -parse.y - - set interactive to 0 before calling parse_and_execute in - execute_prompt_command to stop infinite recursion through - this function - -shell.c - - moved the code that executes PROMPT_COMMAND to parse_command - -parse.y - - removed the code that executes PROMPT_COMMAND from read_token - to avoid confusing non-reentrant versions of yacc - - made execute_prompt_command global, not static - -input.h - - new declaration for execute_prompt_command - -jobs.c - - made give_terminal_to return -1 if tcsetpgrp fails - - initialize_jobs now prints a message if job_control ends up being - set to 0 - -support/mkmachtype - - shell script stolen from emacs 19 that attempts to output the - `GNU-style' machine type, e.g. sparc-sun-sunos4.1.2. Named - `mkmachtype' because I envision people assigning its output to - a MACHTYPE variable - - - 12/20 - ----- -execute_cmd.c - - if a command is found in the temporary $PATH, don't add it to - the hash table - -error.c - - changed report_error so that the script name is echoed instead - of the shell name if the shell is not interactive - - 12/22 - ----- -machines.h - - made the Sun description unconditionally #undef USE_GNU_MALLOC - because memory access bugs are legion in libc in SunOS 4.x and 5.x - -jobs.c - - disabled printing an error message when the tcgetattr in - get_tty_state() fails - - 12/27 - ----- -cpp-Makefile, jobs.h - - renamed bash-endian.h to bash_endian.h - -machines.h - - NeXT machines need to #undef HAVE_DIRENT_H, since it requires - ANSI/POSIX defines that make the rest of the compilation fail - - SGI irix 5.x machines need -DNO_SBRK_DECL in SYSDEP_CFLAGS - - machine descriptions for OSF/1 running on i386 and MIPS machines - from Michael Meissner - - 12/28 - ----- -expr.c - - fixed so that blank expressions evaluate to 0 rather than an - error ($[ ] or $(( ))) - -lib/readline/readline.c - - new variable `_rl_bell_preference' replacing _rl_prefer_visible_bell - - changed ding() to use _rl_bell_preference - -lib/readline/rldefs.h - - definitions for NO_BELL, AUDIBLE_BELL, and VISIBLE_BELL - -lib/readline/bind.c - - changed rl_variable_bind to parse the `bell-style' variable and its - possible values (`none', `audible', or `visible'), keeping - `prefer-visible-bell' for backwards compatibility - -documentation/bash.1, lib/readline/doc/rluser.texinfo - - added descriptions of the `bell-style' and `expand-tilde' - readline variables - -general.c - - changed set_signal_handler for posix systems to attempt to - restart all interrupted system calls execept for SIGALRM - -trap.c - - changed restore_signal to use set_signal_handler() instead of - signal() - - added a new function set_signal_ignored to set the SIG_HARD_IGNORE - flag for a particular signal - -execute_cmd.c - - call set_signal_ignored for SIGINT and SIGQUIT in the child if - the command is asynchronous after calling restore_original_signals, - since restore_original_signals will undo work done by make_child - done in a new function setup_async_signals - -execute_cmd.h - - extern declaration for setup_async_signals - -subst.c - - call setup_async_signals when making the child for process - substitution - -jobs.c, nojobs.c - - removed code from make_child that sets SIGINT and SIGQUIT to - SIG_IGN, since setup_async_signals now does that - -shell.c - - let throw_to_top_level call longjmp with DISCARD if the shell - is an interactive shell, but not yet initialized - - 12/29 - ----- -config.h - - define PROCESS_SUBSTITUTION if HAVE_DEV_FD is defined, even if - MKFIFO_MISSING is also defined - -execute_cmd.c - - close pipes created using /dev/fd for process substitution at - the same time as the pipes for conventional piping are closed - -subst.c - - when the /dev/fd list is initialized, clamp the total number of - file descriptors at 256, but make sure there is room enough to - store a bit for the fd passed to add_fifo_list - - 12/30 - ----- -lib/readline/readline.c - - change a strncpy() in rl_delete_text to a for loop, since some - versions of strncpy can't handle overlapping arguments - -lib/readline/chardefs.h - - definition for digit_value(x) - -lib/readline/history.c - - changed calls to sscanf followed by an empty for loop that consumes - the digits to a for loop that computes the value as it goes along - in get_history_word_specifier() - - added `x*' and `x-' history word designators from csh - - added new `&' modifier to repeat previous substitution - - experimental implementation of `q' modifier to quote substituted - words by calling single_quote on the substituted string - -lib/readline/history.c, builtins/fc.def - - changed a loop using strncmp() to find one string in another for - substitution to test the current character against the first - character of the pattern before calling strncmp() - -documentation/bash.1, lib/readline/doc/hsuser.texinfo - - documented the new history word designators - - documented new `&' and `q' history modifiers - - 1/1 - --- -parse.y - - broke the code that parses `( ... )' subshells out into its - own grammar production - -lib/readline/history.c - - rearranged some code to get rid of gotos and make the intent - clearer - - fixed a bug in history_truncate_file that tried to write to - a file opened O_RDONLY - - changed a stat-open in history_truncate_file into an open-fstat - pair - - removed gotos in history_search_internal - - changed straight strncmp() calls trying to find history line - matches to check the first character before calling strncmp in - history_search_internal - - changed a call to stat after an open (!) to fstat on the - returned file descriptor - - cleaned up the code in get_history_event - - cleaned up some code in get_history_word_specifier - - cleaned up some code and removed extra function calls in - history_arg_extract - - changed history_arg_extract to malloc enough space for the - entire string at one time, instead of doing xrealloc in a - loop - - cleaned up the code in history_tokenize, removing gotos and - other spaghetti constructs - - replaced a call to sprintf with assignment statements and a call - to strcpy in history_expand - -cpp-Makefile - - changed the `INDEX' target to a `TAGS' target - -lib/readline/emacs_keymap.c - - added a default binding for ESC-ESC to rl_complete, like ksh emacs - mode editing - - 1/3 - --- -machines.h - - make sure ISC_POSIX is defined as nothing when using gcc on isc386 - -parse.y - - made token_to_read, current_token, last_read_token, - token_before_that, EOF_reached, shell_input_line, - shell_input_line_*, token, token_buffer_size all static vars - - made prompt_again return immediately if the shell is not - currently interactive - - made yylex call prompt_again only if there is no token_to_read - and the shell is currently interactive - -jobs.c - - changed the NeXT || alliant define to use RLOGIN_PGRP_BUG - - use TERMIOS_LDISC define for systems with line discipline field - in struct termios - -shell.c - - use RLOGIN_PGRP_BUG instead of NeXT to fix machines that get - started without a controlling terminal - -machines.h - - added -DRLOGIN_PGRP_BUG to SYSDEP_CFLAGS for NeXT and alliant - - added -DTERMIOS_LDISC to SYSDEP_CFLAGS for Ultrix, Sun OS 4, - and aixpc - -support/mksysdefs - - look for sys/param.h, define HAVE_SYS_PARAM if found - -cpp-Makefile - - pass -DHAVE_SYS_PARAM via SYSTEM_FLAGS if it's found by mksysdefs - -maxpath.h - - include if HAVE_SYS_PARAM is defined - -lib/readline/history.c - - got rid of the get_which label in get_history_event - - got rid of the event_not_found label in history_expand - - new function hist_error, which takes care of printing history - expansion errors - - 1/4 - --- -lib/readline/history.c - - split the actual history expansion code out of history_expand into - history_expand_internal - - got rid of the do_add and add_char labels in history_expand - - history_expand now returns 2 if the `p' modifier was given and the - caller should just print the results - - new function `quote_breaks' to implement the `x' modifier - -bashhist.c - - if history expansion fails, make sure the error message is - printed in a standard way by calling internal_error - - print the results of history_expand and return NULL if - history_expand returns 2 - - 1/5 - --- -lib/readline/history.c - - rearranged some code in the `s' and `&' cases of the switch in - history_expand_internal, added the GET_SUBST_PATTERN macro - - 1/6 - --- -tests/* - - cleaned up the directory, made a runnable regression test suite - -cpp-Makefile - - added a `tests' target that runs all of the tests with a newly- - built bash - -subst.c - - made process substitution work only when unquoted - -bashhist.c - - new function history_number to return the history number of a - command - -bashhist.h - - extern declaration for history_number - -parse.y - - changed the `!' and `\!' code in decode_prompt_string to use - history_number - - replaced calls to sprintf/savestring with calls to itos() - -variables.c - - new dynamic variable $HISTCMD is current history number (what - you get with \! in a prompt string) - -documentation/bash.1 - - description of $HISTCMD - - 1/7 - --- - -execute_cmd.c - - new variable stdin_redir, incremented for subshells if stdin has - been redirected, saved for children so we don't redirect /dev/null - to fd 0 if it has already been the subject of a redirection. Makes - bash more sh-compatible, but I'm not sure it's the right thing. - - more changes to file_status for systems with AFS - -test.c - - changed calls to eaccess to EACCESS (not to be confused with the - EACCES error). EACCESS is defined as access on AFS machines, - eaccess on all others - -siglist.h - - don't declare sys_siglist on NetBSD - - 1/11 - ---- -lib/readline/history.c - - if `&' appears in the rhs of a history substitution, it is - replaced with the matched lhs. A single backslash protects - the `&' from lhs interpolation - - fixed ADD_CHAR macro to properly terminate the target string - - changed GET_SUBST_PATTERN so that a single backslash can - quote the substitution delimiter - - changed GET_SUBST_PATTERN so that subst_lhs is not changed if - the lhs pattern is empty - - if the lhs is empty and there is no previous substitution, the - last string used in a !?string? search is used - - turned the GET_SUBST_PATTERN macro into a real function, - get_subst_pattern() - - changed get_subst_pattern() so that backslashes quoting the - search delimiter are removed - - fixed get_history_word_specifier so that x- returns x-$ without - the last word - -documentation/bash.1, lib/readline/doc/hsuser.texinfo - - changes for the new history substitution features - - 1/13 - ---- -make_cmd.c - - new function fixup_async_list() which traverses a command list and - makes the last command asynchronous (`&'). This is to fix up a - problem with the yacc grammar productions - -parse.y - - call fixup_async_list if a list is followed by a bare `&' without - a second list - -builtins/fc.def - - fixed a bug in fc_gethnum that caused negative history - specifications (< 0) to be off by 1 when indexing against the - current history index - -lib/readline/funmap.c - - kill-entire-line -> kill-whole-line - - tilde-expand is now a bindable command that calls rl_tilde_expand - - added emacs-editing-mode as a bindable command - - added more bindable vi-mode readline commands: vi-redo, - vi-tilde-expand - -lib/readline/emacs_keymap.c - - M-C-H is now bound to backward-kill-word - -lib/readline/vi_keymap.c - - `0' is now bound to beginning-of-line in vi-movement-mode - -documentation/bash.1, lib/readline/doc/rluser.texinfo - - added documentation for some of the new readline functions - -test.c - - added definitions for whitespace, digit, and digit_value when - compiling -DSTANDALONE - - 1/14 - ---- -make_cmd.c, make_cmd.h, parse.y - - fixup_async_list -> connect_async_list - -parse.y - - have the productions for all async lists call connect_async_list, - even when followed by another async list - - don't save and restore the buffered stream in buffers[] in - push_stream and pop_stream if the default input fd is -1 - (like command substitution sets it to, for instance) - -cpp-Makefile - - added $(PURIFY) the final cc line, make PURIFY=purify to build - a `purified' bash - -builtins/read.def - - fixed a memory leak -- `input_string' was not being freed - -variables.c - - fixed a memory leak in assign_in_env -- free value - -subst.c - - process substitution and command substitution now call make_child - with a null first argument -- no need to save a string for the - call; it's never used - - 1/17 - ---- -lib/readline/{readline.h,complete.c} - - renamed rl_symbolic_link_hook to rl_directory_completion_hook, - which much more accurately reflects its purpose. Left a define - of the old name there is readline.h - -bashline.c - - use rl_directory_completion_hook instead of rl_symbolic_link_hook - - bash_symbolic_link_hook -> bash_directory_completion_hook - - bash_directory_completion_hook is now an `int' returning function - - bash_directory_completion_hook now tries to to variable expansion - and command and arithmetic substitution if the directory name - contains `$' or ``' - - fixed a bug in bash_directory_completion_hook which made it - remove the trailing slash on a directory name - - bash_directory_completion returns 1 if variable expansion is - performed, 0 otherwise - - when doing bash filename-specific completion, don't do any kind - of directory name expansion - - removed ``' and `$' from the completer word break characters; - they're not word break chars - -lib/readline/complete.c - - changed semantics for rl_directory_completion_hook -- if a non-zero - value is returned, the return value is put into the expanded - filename, replacing the directory name that the user typed - - changed filename_completion_function to quote a replacement if - it contains `$' or ``' in addition to characters appearing in - rl_completer_word_break_characters (#ifdef SHELL) - - 1/18 - ---- -shell.c - - take out different code for USG and BSD and mail checking. The - shell always calls remember_mail_dates on startup. - - 1/19 - ---- -execute_cmd.c - - changed executable_file into a simple return statement - -support/mksysdefs - - look for bison, define HAVE_BISON if found - -cpp-Makefile - - do not unconditionally define HAVE_BISON, let mksysdefs do - the work - - 1/20 - ---- -machines.h - - added -DNO_SBRK_DECL to hpux_8, hpux_9, and Solaris descriptions - -lib/malloc/malloc.c - - removed the code that defines NO_SBRK_DECL for some machines - -cpp-Makefile - - removed the definitions of PPROMPT and SPROMPT and their inclusion - as defines in CFG_FLAGS - - added definitions for man3dir and man3ext and passed them to - make install in the documentation directory - -config.h - - PPROMPT and SPROMPT are now defined here - -builtins/mkbuiltins.c - - plugged up a number of memory leaks (~35K worth) - -documentation/Makefile - - made readline.3 and readline.ps standard targets - - make install now installs readline.3 - -documentation/readline.3 - - new manual page documenting the readline library - -general.c - - don't define TIMEVAL_MISSING on USG systems if HAVE_TIMEVAL is - defined - - 1/21 - ---- -machines.h - - define HAVE_SOCKETS in HPUX_SYSDEP_CFLAGS for hpux_8 and hpux_9 - -Makefile - - add a `tests' target that just runs `make -f bash-Makefile tests' - -general.c - - include config.h before any other include files so - gets included if present - - 1/24 - ---- -cpp-Makefile - - make `bashbug' by using sed with multiple -e options rather than - a separate `mkbashbug' program - - 1/25 - ---- -machines.h - - sgi machines need HAVE_SOCKETS defined to make isnetconn() work - -lib/readline/isearch.c - - rewrote lots of rl_search_history to eliminate spaghetti and - increase speed - -lib/readline/history.c - - added defines for STREQ and STREQN to clean up the search code - -lib/readline/complete.c - - compare the first characters of the name and returned value from - getpwent when attempting username completion to avoid all those - calls to strncmp - - 1/26 - ---- -lib/readline/readline.h - - move definition of VISIBLE_STATS here so all files can see it - - extern definitions of rl_history_search_forward() and - rl_history_search_backward () - -lib/readline/search.c - - implementations of rl_history_search_forward() and - rl_history_search_backward (), which search through the history - list for lines beginning with the string of characters between - the beginning of the line and rl_point (history lines with a - common prefix) - - added definitions of STREQ and STREQN - -lib/readline/funmap.c - - added `history-search-forward' and `history-search-backward' as - bindable commands (names compatible with tcsh) - -lib/readline/complete.c - - make stat_char use lstat if S_ISLNK is defined to pick up symbolic - links - - split some common code out into auxiliary functions: printable_part - and print_filename - - expand filenames before calling stat_char if visible-stats is - active - -documentation/bash.1, documentation/readline.3, lib/readline/doc/rluser.texinfo - - documented new `history-search-forward' and `history-search-backward' - readline commands, by default unbound - -error.c - - changed get_name to get_name_for_error and made it externally - visible - -error.h - - extern declaration for get_name_for_error - -test.c - - call get_name_for_error in test_syntax_error if the shell is - not interactive - - 1/27 - ---- -lib/readline/emacs_keymap.c - - add M-~ as a binding for rl_tilde_expand, it's more intuitive - -lib/readline/bind.c, lib/readline/readline.h - - exported rl_invoking_keyseqs_in_map as a public interface - -lib/readline/rldefs.h - - don't include memalloc.h if PRAGMA_ALLOCA is defined - -lib/readline/readline.c, lib/readline/isearch.c, lib/tilde/tilde.c, -lib/readline/complete.c, lib/readline/search.c - - replaced all calls to alloca with xmalloc/free pairs or array - declarations - -lib/readline/history.c - - replaced some calls to alloca - -variables.c, subst.c, mailcheck.c, alias.c, parse.y, builtins/cd.def - - replaced all calls to alloca with xmalloc/free pairs or array - declarations - -builtins/source.def - - replaced call to alloca with xmalloc/free/unwind_protect - - replaced stat/open sequence with open/fstat - - 1/28 - ---- -lib/readline/history.c - - print an error message for an unrecognized history modifier - instead of just ignoring it - - replaced remaining calls to alloca() - -execute_cmd.c - - added a #pragma alloca at the head of the file if AIX and - RISC6000 are defined and __GNUC__ is not - - 1/31 - ---- -support/recho.c - - now a standard part of the distribution, needed for `make tests' - -cpp-Makefile - - make sure recho is built before the tests are run - - 2/1 - --- -builtins/command.def - - If subshell_environment is 1, we've already forked and are in - a subshell, so add CMD_NO_FORK to the flags of the command - to be executed and see if we can get away without forking - - 2/9 - --- -support/mksysdefs - - write the name of the maintainer to sysdefs.h surrounded by - double quotes - -cpp-Makefile - - removed the now-unnecessary double quotes around the MAINTAIN_DEFINE - variable value - -lib/readline/readline.h - - new variable rl_attempted_completion_over, set in the completion - attempt function to suppress the normal filename completion - -lib/readline/complete.c - - if rl_attempted_completion_over is set after the program-specific - completion function is called, don't do filename completion - -general.h - - new FREE and STRLEN convenience defines - -subst.c - - code cleanups, use of FREE and STRLEN - - 2/10 - ---- -execute_cmd.c, parse.y, jobs.c, variables.c, test.c - - changed code to use FREE, STRLEN, other code cleanups - - removed, wherever possible, calls to strncmp and strcmp - -builtins/set.def - - changed the `unset' builtin to use internal_getopt - -builtins/set.def, builtins/test.def, builtins/fg_bg.def, builtins/type.def, -builtins/enable.def, builtins/exec.def, builtins/declare.def, -builtins/ulimit.def, builtins/cd.def, builtins/fc.def - - removed calls to strcmp, strncmp wherever possible, replacing - them with incline - -builtins/common.h - - new define ISOPTION, to test whether a string s is setting - a specific option - -builtins/kill.def, builtins/read.def, builtins/trap.def, builtins/umask.def, -builtins/enable.def, builtins/alias.def, builtins/hash.def - - changed to use ISOPTION - -builtins/read.def - - moved option processing before all of the code that sets up - the input stream - - 2/11 - ---- -Makefile - - added `distclean' target to mirror one in cpp-Makefile - - 2/14 - ---- -documentation/bash.1, documentation/features.texi - - noted that `=' was not a valid character for an alias name - - 2/17 - ---- -builtins/common.c - - if parse_and_execute gets an interrupt during execution, make - sure that `interactive' is restored to the correct value (the - same value as `interactive_shell' before throwing control back - to the top level with throw_to_top_level so the shell does - not exit in throw_to_top_level - -builtins/reserved.def - - cleaned up the variables section, removing some and correcting - the descriptions - - 2/18 - ---- -cpp-Makefile - - provide alternate defintions for build_builtins_in_dir depending - on whether __STDC__ is defined and > 0. The `stdc' version uses - `##' to concatenate tokens - -machines.h - - new machine description for QNX 4.2 from pt@flard.ocunix.on.ca - -jobs.c, nojobs.c - - changed some calls to report_error to calls to internal_error - -test.c - - some systems may not define S_IFMT, so use an #ifdef to work around - -print_cmd.c - - combined the code for print_word_list and command_print_word_list - into an internal function that takes a pointer to a function to - use to print the words - -variables.c - - don't call savestring in bind_variable on the value if it's an - empty string - -nojobs.c - - changed wait_for to call waitpid with -1 for pid value on Posix - systems so all processes in a pipeline get reaped at the same - time (or at least most of them) - - 2/21 - ---- -lib/readline/{complete.c,display.c,readline.c,rltty.c,signals.c} - - changed _GO32_ to __GO32__ - -machines.h - - SunOS5 needs to add /usr/ccs/lib to the library search path - for the right termcap library - - 2/22 - ---- -shell.c - - make sure that a subshell sets sourced_env to 0 after longjmp - so that $ENV is sourced by subshells forked to execute scripts - without a leading `#!' line - -bashhist.c, bashhist.h - - make maybe_add_history a global interface -- new function - to add a line to the history file depending on the value - of history_control - -builtins/fc.def - - call maybe_add_history in fc_addhist rather than add_history - -machines.h - - new entry for concurrent machines in att universe from - geoffl@vallista.ca.boeing.com (Geoffrey A. Lowney) - - 2/23 - ---- -general.c, general.h - - new function string_to_long, which basically does the same - thing as atol(), which I don't believe is universal - -builtins/ulimit.def - - replaced a call to sscanf with calls to all_digits and - string_to_long - - non-root users can only raise a resource up to the hard limit, - even if they specify `unlimited', so shell_ulimit translates - RLIM_INFINITY into limit.rlim_max if euid != 0 - - 2/25 - ---- -shell.c - - make the default behavior of bash when invoked with -c command - to make the first argument after the command string $0 and the - rest $1...$N - -documentation/bash.1 - - document the change in -c behavior - - 3/2 - --- -mailcheck.c - - made add_mail_file return the index in the list of mail files, - so an immediate call to find_mail_file need not be made and - we are guaranteed that the index returned is never -1 - - added the check back in that changes the message to note that - *new* mail has arrived -- the test was not redundant after all - - fixed an off-by-one error in free_mail_files - - replaced an sprintf() in get_mailpaths with two calls to strcpy - -general.c - - changed getc_with_restart to do local buffering to reduce the - number of read(2) system calls - -subst.c - - changed do_assignment_internal to check for expansion and quoting - characters and only call expand_string when something needs - expansion, string_quote_removal when quotes appear, and savestring - for simple assignment statements - - 3/3 - --- -builtins/exit.def, documentation/bash.1 - - removed `bye' as a synonym for `exit' - -shell.h - - new exit value: EX_USAGE - -builtins/{bind,command,declare,fc,getopts,histctl,history,inlib,jobs,read, -setattr,trap,ulimit}.def - - changed to return EX_USAGE when a usage message is printed - -builtins/declare.def - - removed the `no_modifiers' code, changed argument name to local_var - -command.h, make_cmd.h - - declarations for the select command, inside #ifdef SELECT_COMMAND - -copy_cmd.c - - declarations for copying select commands - -dispose_cmd.c - - code to dispose of select command structures - -execute_cmd.c - - code to execute select commands - -make_cmd.c - - code to construct select command structures - - removed `coerce_to_word()' - -parse.y - - code to parse select commands in the grammar. The SELECT token is - returned by read_token only if SELECT_COMMAND is defined - -print_cmd.c - - code to print select commands - -config.h, config.h.mini - - make SELECT_COMMAND the #define that controls whether or not the - `select' command is compiled in - -documentation.bash,1, documentation/features.texi - - documented the `select' command and $PS3 - - 3/4 - --- -builtins/getopts.def - - removed a call to sprintf() in favor of expanding a number manually - -builtins/getopt.c - - make sure that we set nextchar to NULL when incrementing optind - so that it does not end up pointing to stale memory (freed, then - later reallocated) - - 3/7 - --- -builtins/common.c - - fixed parse_and_execute not to be overzealous in marking a command - as NO_FORK -- make sure there's nothing left in the string to be - executed before doing so - -machines.h - - change the string check for BSD/386 to __bsdi__ - - add INT_GROUPS_ARRAY to BSDI, SunOS4, 386bsd, FreeBSD, and NetBSD - descriptions - -test.c - - change to use INT_GROUPS_ARRAY - -execute_cmd.c - - tightened up the execution loop in execute_for_command and - removed a couple of unneeded variables - -lib/posixheaders/memalloc.h - - make sure to check for sun being defined when checking for sparc; - there are ICL DRS6000 machines running SVR4.2 out there that do - not have the file - - 3/8 - --- -execute_cmd.c - - make sure close_fd_bitmap is called before do_redirections, lest - the bitmap override some of the redirections - -cpp-Makefile - - supply an explicit suffix list, so make understands the .def.o - suffix rule as such - - 3/9 - --- -jobs.h - - added extern declarations for rest of global functions in jobs.c - - added prototypes - -jobs.c - - made delete_job, terminate_current_pipeline, kill_current_pipeline, - describe_pid, notify_and_cleanup, reap_dead_jobs, - initialize_job_signals , without_job_control void functions - - 3/10 - ---- -execute_cmd.c, execute_cmd.h - - moved check_identifier to general.c, general.h - -general.c - - check_identifier has acquired a second parameter; when set to 1 - this causes the word to be checked by legal_identifier - - for and select commands call check_identifier with a second arg - of 1, function names are checked with legal_identifier when in - Posix.2 mode - -general.h - - add second argument to extern declaration of check_identifier - -CWRU/POSIX.NOTES - - added description of new function name behavior - -lib/readline/readline.h - - include sys/ioctl.h on FreeBSD and NetBSD - -lib/readline/rlconf.h - - new file, with readline configuration variables - - included in rldefs.h - -lib/readline/{readline.c,readline.h,complete.c,display.c} - - took configuration defines out and put them into rlconf.h - -lib/readline/Makefile - - updated dependencies to include rlconf.h - - 3/14 - ---- -lib/readline/Makefile - - remove VI_MODE from the CFLAGS - -lib/readline/rlconf.h - - made VI_MODE a definable configuration option - -lib/readline/vi_mode.c - - include rlconf.h before testing whether or not VI_MODE is defined - -lib/readline./funmap.c - - include `rlconf.h' before `readline.h' - -lib/readline/keymaps.c - - include `rlconf.h' before `vi_keymap.c' and `keymaps.h' - -lib/readline/readline.c, lib/readline/vi_mode.c - - rl_vi_set_last -> _rl_vi_reset_last - - new function _rl_vi_set_last to set the vi-mode last command - information - - renamed vi_done_inserting to _rl_vi_done_inserting - -lib/readline/vi_mode.c - - _rl_vi_last_command, _rl_vi_last_repeat, _rl_vi_last_arg_sign, - and _rl_vi_doing_insert are now static - - 3/15 - ---- -bashline.c - - unbind C-M-m in emacs_meta_keymap so people don't accidentally - switch into vi editing mode - - 3/21 - ---- -builtins/cd.def - - `pwd' now follows the setting of nolinks/set -o physical; there - is an undocumented -P option to get the `real' working directory - - 3/28 - ---- -make_cmd.c - - only follow the command chain to the end of a list in - connect_async_list if the list is not being executed in the - background as a unit with CMD_WANT_SUBSHELL - -support/mksysdefs - - removed the define of HAVE_CSH - - added an additional check for SVR4 on i[34]86 machines from - mkmachtype - -lib/readline/vi_mode.c - - fix up rl_vi_delete_to so that cw deletes the character under - the cursor no matter what, as per Posix.2 - - any text modifying command that calls rl_vi_insertion_mode needs - to explicitly set the `last command' info for `.' - - rl_vi_movement_mode() no longer resets the `last command' info - so that things like `cw' can be redone with `.' - - 3/29 - ---- -general.h - - a new define MEMMOVE_MISSING to specify to use memcpy in the - define for BCOPY - - the defines for BCOPY don't need a trailing `;' - -machines.h - - isc386 needs -DMEMMOVE_MISSING in SYSDEP_CFLAGS - - 3/30 - ---- -bashline.c - - fix to set_saved_history to simplify the code by using - rl_get_previous_history - - 3/31 - ---- -error.c - - change the bug report message - -support/mksysdefs - - removed `WHOAMI' junk for setting the `maintainer' - -cpp-Makefile - - hardcode the maintainer to `bug-bash@prep.ai.mit.edu' - -subst.c - - call rl_reset_terminal in sv_terminal if interactive_shell - is nonzero - - split the code that checks whether or not expand_string_unsplit - needs to be called from do_assignment_internal into a separate - function that takes a function pointer to call as an additional - parameter - -trap.c - - make sure that set_signal_ignored also sets original_signals[sig] - to SIG_IGN - -bashline.c - - `{' is not a word break character for the completion functions - - 4/2 - --- -[first beta distribution of bash-1.14.0] - - 4/5 - --- -builtins/cd.def - - fixed a problem with CDPATH processing (used `dirlen' instead of - `pathlen') - -subst.c - - make sure that get_word_from_string updates `stringp' even if - it's nothing but separators - -builtins/read.def - - after the call to get_word_from_string, set *e to 0 only if t - is not null and a word was actually returned - -machines.h - - remove the NO_SBRK_DECL declaration for sgi machines from all - but Irix 5.x machines - - sgi needs __STDC__ defined if __EXTENSIONS__ is defined - -lib/posixheaders/stdc.h - - moved the #if defined (__P) inside the check for __STDC__, so - the other things get defined even if __P is already defined - - don't redefine const, inline, etc. if `const' is already defined - -cpp-Makefile - - add dependencies on stdc.h - - pass -DHAVE_SYS_STREAM_H through to builds in subdirs - -support/mksysdefs - - redirect error messages from subshell attempting to find and invoke - bison - - look for , define HAVE_SYS_STREAM_H if found - -lib/readline/rldefs.h - - include only of HAVE_SYS_STREAM_H is defined - -externs.h, print_cmd.c - - made print_command and print_simple_command void functions - -builtins/common.c, builtins/common.h - - builtin_error now a void function - - dispose_saved_dollar_vars now a void function - - bad_option now a void function - - initialize_shell_builtins now a void function - -variables.c - - initialize_shell_variables now a void function - - adjust_shell_level now a void function - - delete_all_variables now a void function - -jobs.c - - inserted some returns into `int'-valued functions lacking them - -hash.c - - initialize_hash_table now static void - -externs.h - - added declarations for functions from mailcheck.c - - 4/6 - --- -lib/readline/readline.c - - added missing function arguments - - -lib/readline/complete.c - - get_y_or_n now accepts space for `y' and rubout/del for `n' to - be more emacs-like - -lib/readline/history.c - - fixed an off-by-one error in history_expand_internal: checking - the wrong character for the history event or word specifier - - 4/7 - --- -lib/readline/complete.c - - make sure `max' is intialized to 0 when displaying the possible - completions, even if we've done `goto display_matches' - -lib/posixheaders/stdc.h - - if __STDC__ is defined but we're not using gcc (__GNUC__ not - defined), make `inline' expand to nothing - -lib/readline/isearch.c - - use STREQN to match the search string against the history line, - since we're not interested in exact matches, only matches of - the search string - - 4/8 - --- -machines.h - - description for a sparc running netbsd - - 4/11 - ---- -lib/readline/vi_mode.c - - make sure we're starting an undo group when we implicitly - enter insertion mode after a command like c[motion], so - we can get to the characters that were inserted - - new variable: vi_continued_command, set to 1 if we enter - insert mode implicitly - - 4/12 - ---- -machines.h - - generic entry for MIPS machines running SVR4, SVR4.2 - - changed sony entry to handle M_MACHINE already being - defined - -lib/malloclib/malloc.c - - fixes for malloc stats, from kboyce@bnr.ca - - 4/13 - ---- -machines.h - - changed the u370/USGr4 description: added -DNO_SBRK_DECL to - SYSDEP_CFLAGS - -lib/readline/readline.c - - add a call to rl_set_keymap_from_edit_mode after reading the - inputrc file in readline_initialize_everything to override - the effect of any `set keymap' assignments in the inputrc - file - -support/mksysdefs - - added a check for MIPS RISCos machines - - set the value of `dirlist' to /bsd43/usr/include if we're - building on a RISCos machine - -lib/readline/bind.c - - skip leading whitespace in lines read from the inputrc file - in rl_read_init_file - - call rl_set_keymap_from_edit mode after reading the inputrc - file in rl_re_read_init_file - - 4/14 - ---- -documentation/Makefile - - change bash_builtins.1 to builtins.1 in the recipe for `install' - - remove the dependency on texindex from features.dvi - -builtins/kill.def - - remove explicit inclusion of - -machines.h - - Xenix requires -DMEMMOVE_MISSING - - Xenix 2.3 requires -DLD_HAS_NO_DASH_L - - added #undef HAVE_RESOURCE to xenix descriptions just to be sure - -cpp-Makefile - - make sure texindex is built before trying to build the documentation - -lib/doc-support/texindex.c - - fixes for portability and to fit into the bash configuration - scheme - -support/mksysdefs - - fixed the Xenix section to make sure that sysdefs.h defines `i386' - for machines.h -- apparently the default xenix cc does not - predefine it - - 4/16 - ---- -shell.c - - regularized parsing of `-c' option so it can be bundled with other - options - - if bash is started with a `-o' without an argument, list the long - options with list_minus_o_opts - -builtins/set.def - - renamed `list_long_opts' to `list_minus_o_opts', made it global - -builtins/common.c - - builtin_error now calls get_name_for_error if this_command_name - is null or empty - -hash.c, hash.h - - made hash utility functions able to cope with being passed a - null hash table - - 4/18 - ---- -lib/readline/history.c - - changes to history_expand, history_expand_internal to allow - modifiers to be used with `!#' - - changes to get_history_event so that only `?' or newline can - terminate a substring search string. This is more csh-like. - -builtins/common.c - - get_working_directory now uses get_name_for_error when for_whom - is null and it needs to print an error message - -shell.c - - set no_rc and no_profile in shell_reinitialize to clarify our - intent about not running the .bashrc for shell scripts - - 4/19 - ---- -lib/readline/vi_mode.c - - change rl_vi_possible_completions to fix an inadvertent infinite - loop in code that attempts to move to the end of the current word - - 4/21 - ---- -lib/readline/vi_mode.c - - comment out rl_vi_possible_completions -- it's unused - -lib/readline/vi_keymap.c - - comment out vi_escape_keymap declaration -- it's unused - -parse.y, subst.c - - shells running in `posix mode' do not perform process substitution - - 4/22 - ---- -support/getcppsyms - - don't process and define __GNUC__ at all - - only test for and possibly define __STDC__ if __GNUC__ is not - defined (not using gcc) - - 4/25 - ---- -machines.h - - Make sure SunOS 4.x has INT_GROUPS_ARRAY defined - - 4/26 - ---- -lib/readline/readline.c - - make sure screenwidth is not set to 0 - - 4/27 - ---- -Makefile - - changed the text printed by the `.notified' target to refer to - `bashbug' - -[1.14.1 announced and made available for anonymous FTP] - - 4/28 - ---- -builtins/read.def - - unset the variables passed to `read' as arguments when EOF is - read from stdin (sh, Posix.2 compatibility) - -machines.h - - add HAVE_STRERROR to the solaris machine description - -print_cmd.c - - made declaration of printf depend on __GNUC__ being defined, since - only gcc seems to need it - -cpp-Makefile - - renamed DEBUG_FLAGS to CDEBUGFLAGS - - 4/29 - ---- -builtins/getopt.c - - fix for core dump problems - -parse.y, make_cmd.c, make_cmd.h, execute_cmd.c - - changed make_redirection to take a `REDIRECTEE', which is a union, - as its second argument, to avoid int/long/pointer problems - - changed all calls to make_redirction to pass a correctuly- - initialized REDIRECTEE argument - - 5/1 - --- -general.h - - Linux needs a slightly different declaration for gethostname() - -nojobs.c - - fix to arguments to stop_pipeline - - 5/3 - --- -alias.c, bashline.c, variables.c - - added casts to eliminate compiler warnings - -general.h - - removed __P type information from functions taking a GENERIC_LIST *, - since that is never what is passed - - changed prototype to show that xrealloc takes a `void *' - -general.c - - xrealloc takes a `void *' as its first argument - - 5/4 - --- -support/mksysdefs - - changed test -r to test -f when looking for ranlib - -lib/readline/readline.c - - cleaned up some casts before xmalloc/xrealloc calls - - make sure the arrow keys are bound into the vi movement keymap in - init_terminal_io - - set the keymap explicitly in init_terminal_io before trying to - bind the arrow keys - -lib/readline/vi_keymap.c - - bind ESC in vi_movement_keymap to 0 rather than rl_abort, since - the rl_abort binding keeps _rl_bind_if_unbound from working - -shell.c - - look in $PATH for an input file given on the command line only - if that file is not an `absolute program' (contains no slashes) - - 5/5 - --- -machines.h - - changed HPUX_SYSDEP_CFLAGS to HPUX_CFLAGS - -general.h, general.c, copy_cmd.c, make_cmd.c, print_cmd.c, parse.y, subst.c - - BCOPY -> FASTCOPY because some machines define or undef BCOPY in - system header files - -longest_sig.c, support/pagesize.{c,sh} - - removed from distribution, moved to CWRU/misc - -lib/readline/parens.c, lib/readline/bind.c - - don't compile in all of the paren-matching code if PAREN_MATCHING - is not defined in rlconf.h - - 5/9 - --- -lib/readline/rldefs.h - - new #define WINSIZE_IN_IOCTL_H, set for machines that need - to include to get TIOCGWINSZ and related definitions - - use `dirent' instead of `direct', define `dirent' as `direct' if - HAVE_DIRENT_H is not defined - -lib/readline/signals.c, lib/readline/readline.c - - changed to include if WINSIZE_IN_IOCTL_H defined - -lib/readline/readline.c - - strip high bit in rl_getc if __GO32__ is defined - -lib/readline/complete.c - - use `struct dirent' rather than `struct direct' in - filename_completion_function - -lib/readline/bind.c - - make sure that "" is not passed to open as the name of the inputrc - file - -general.c - - hpux_9 needs #undef HAVE_GETDTABLESIZE, just like hpux_8, on hppa - -builtins/times.def - - Posix.1 systems need to default to using `struct tms' and the - output of `times' - -jobs.c - - don't redefine _POSIX_SOURCE on sun systems if already defined - -parse.y - - changed a couple of calls to reverse_list to use the REVERSE_LIST - macro instead - -newversion.c - - now adds the `build version' as part of `SCCSVERSION' in the same - format as the shell prints the version string - - 5/12 - ---- -builtins/psize.sh - - if /tmp/pipesize is an empty file, default by defining PIPESIZE - to be 512. An empty file indicates that `psize.aux' did not - succeed for some reason - - 5/13 - ---- -machines.h - - dynix/ptx needs -DHAVE_SOCKETS added to SYSDEP_CFLAGS - -bashline.c - - changed some calls to strncmp to use STREQN - - 5/15 - ---- -print_cmd.c - - if the delimiter to a here document is supposed to be quoted, - print it single-quoted - - make if statements and while/until statements print similarly, - with the then/do on the same line as the first word, separated - from the command list by a semicolon - -make_cmd.c - - reverse the order of patterns in the case statement pattern - list in make_pattern_list, so it's printed in the same way - it was defined - -Makefile - - make sure that references to cpp-Makefile and ansi-Makefile - are prefixed with $(srcdir) or use CPP_MAKEFILE or ANSI_MAKEFILE - respectively - - make sure that srcdir is passed from Makefile to bash-Makefile - when making `all' - -support/mkdirs - - new program, clone of `mkdir -p' - -cpp-Makefile - - before running a make in a subdirectory, call `mkdirs' to ensure - that that subdirectory exists - - 5/16 - ---- -newversion.c - - added a `-dir' option to specify a directory prefix, like $(srcdir) - - 5/17 - ---- -builtins/mkbuiltins.c - - if the .def filename begins with a slash, don't prepend the name - of the `error directory' when printing error messages or writing - line number information to a generated c source file - -config.h - - don't include memalloc.h if BUILDING_MAKEFILE is defined - -lib/malloc/Makefile - - skeleton Makefile to make this directory more like other - library directories - -Makefile, cpp-Makefile, builtins/Makefile, lib/*/Makefile - - changes to make bash buildable in a directory without the source - present by running `make srcdir=xxx' - -support/srcdir - - new program, used to print the full path of the source directory; - it echoes the output of `pwd' if $1 is `.' - - 5/18 - ---- -cpp-Makefile - - CFLAGS -> CCFLAGS, CDEBUGFLAGS -> CFLAGS to obey the GNU standard - (which does not consider the possibility that other information - besides debugging could conceivably be passed to cc) - -general.h - - don't prototype gethostname() unless we're defining our own version - in general.c - -lib/readline/history.c - - fix hist_error to allocate and return a new string with the - error message; removed the `ret' argument - - 5/19 - ---- -subst.c - - new function char_is_quoted(s, i) returns 1 if character at - position i in s is quoted - -bashline.c - - removed `\' from rl_completer_word_break_characters - - make sure that a command separator character is not quoted in - attempt_shell_completion by calling char_is_quoted before calling - command_word_completion_function - - fixed a problem with detection of command separator characters - in attempt_shell_completion - -lib/readline/complete.c - - set found_quote if a backslash is found in the string in - rl_complete_internal - - if compiled for the shell, call char_is_quoted to find out - whether a character in rl_line_buffer is quoted when deciding - where to break a word for the completer - - 5/23 - ---- -machines.h - - made sure all definitions of M_OS were quoted - -lib/doc-support/Makefile - - more surgery to use ${topdir} and ${srcdir} - -documentation/bash.1 - - clarify that redirections may precede only simple commands - -support/fixlinks - - new script to make multiple copies of files links or symlinks - to a single master copy - -support/SYMLINKS - - name -> target symlink map for support/fixlinks - -support/fixlib - - modification of fixdist to move lib to ../lib and clone the files - in there like using lndir - -filecntl.h - - moved to lib/posixheaders, replaced with symlink - -support/getcppsyms.c - - removed support for outputting -D__STDC__; it's rarely right - -cpp-Makefile - - build_builtins_in_dir(directory, makefile) --> build_builtins(target) - to get rid of the need to know how cpp does token concatenation - -nojobs.c - - changed the printing of the pid for asynchronous jobs to be the - same as sh (no brackets) - - took a useless loop out of wait_for_background_pids - - 5/24 - ---- - -cpp-Makefile - - major surgery to replace #define with make variable assignments -- - now cpp is used only for inclusion and conditionals (and shorthand) - -machines.h - - new entry for Lynx 2.1 - -builtins/declare.def - - make sure that the name in command name=value is a legal variable - name (affects typeset/declare, export, readonly) - - 5/26 - ---- -machines.h - - make sure a 386/486 running Solaris2 is not misidentified as a - Sun 386i - - make sure a 486 running NeXT OS is identified as a `NeXT-i386' - - 5/27 - ---- -builtins/enable.def - - fixed an off-by-one error in option parsing - - improved option parsing to be Posix compliant (`--'), bad options - -Makefile - - call /bin/sh to run support/mksysdefs and create sysdefs.h, since - it's a shell script - - ditto for $(CPPMAGIC) - -cpp-Makefile - - newversion.aux does not need to be linked against the math - library - - 5/30 - ---- -machines.h - - set M_OS to `NeXTstep' for NeXT and i386 machines running NeXT OS - -[1.14.2 beta release made available for FTP] - - 5/31 - ---- -siglist.h - - don't define `strsignal' on SunOS5; it has its own - -builtins/setattr.def - - change set_or_show_attributes to check for legal variable names diff --git a/CWRU/old-changelogs/CWRU.chlog.v11 b/CWRU/old-changelogs/CWRU.chlog.v11 deleted file mode 100644 index 163247e06..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v11 +++ /dev/null @@ -1,8400 +0,0 @@ - 6/2 - --- -lib/readline/readline.c - - fixed an off-by-one error in the kill ring reallocation code - in rl_kill_text - -Makefile - - replaced instances of /bin/sh with $(SHELL) - -Makefile, cpp-Makefile, documentation/Makefile - - added a working `uninstall' target - -[1.14.0 FCS release made available for FTP] - - 6/3 - --- -README - - added note about building with gcc, same as in Makefile - -documentation/Makefile - - some versions of make don't understand `$*' in a regular recipe; - replace with features.dvi in the recipe for features.ps - - 6/4 - --- -subst.c - - fix up the calls to string_extract_double_quoted and - string_extract_single_quoted in char_is_quoted so the initial - value of the index is *after* the opening quote character - - make sure we only return 1 from char_is_quoted if the index - into the string after a call to string_extract_double_quoted or - string_extract_single_quoted is *greater than* `eindex' - -lib/readline/complete.c - - change the order and sense of the quoting tests in - rl_complete_internal so that the expensive char_is_quoted - is only called if `scan' actually is a word break character - -shell.c - - fixed a typo in the test for a restricted shell - -builtins/exec.def - - need to include flags.h - - 6/6 - --- -make_cmd.c - - make sure that we don't try to walk down a null command tree - in connect_async_list (tickled by `(command &) &') - - if a command has the CMD_WANT_SUBSHELL bit set in its flags, - don't even try to walk the command tree and move the `&'; - just connect the command with a null command using `&' - -execute_cmd.c - - make sure we don't try to reference a command struct without - first checking it (case '&') - - 6/7 - --- -machines.h - - fix a typo in the NeXT/i386 description; change the NeXT description - to #define HAVE_RESOURCE if not already defined rather than putting - -DHAVE_RESOURCE into the SYSDEP_CFLAGS - - 6/9 - --- -Makefile - - make sure all of the rules that reinvoke `make' have the - `-f bash-Makefile' before the assignment statements; some - versions of make like it that way - -variables.c - - make sure that `interactive' is set to 0 before evaluating the - string containing an exported function obtained from the - environment, so that it does not try to execute PROMPT_COMMAND - (this may not be the best fix) - - 6/13 - ---- -documentation/Makefile - - make sure all of the directories exist before trying to install - doc files into them - -lib/readline/history.c - - add a missing O_TRUNC to the open call for writing in - history_truncate_file - -trap.c - - run_interrupt_trap should only try to run the trap command if - the value is not IMPOSSIBLE_TRAP_HANDLER - -Makefile - - add `realclean' - -lib/readline/complete.c - - do the same kind of double-quoting a replacement string if the - user supplies the opening double quote as we would if we were - adding both quotes ourselves - -variables.c - - fixed the variable initialization so that history_control/HISTCONTROL - can be inherited from a parent shell - -INSTALL, README, cpp-Makefile, documentation/bash.1, documentation/readline.3 - - ai.mit.edu -> prep.ai.mit.edu - -shell.c - - fixed a problem with setting no_line_editing to the result of the - check for running inside emacs, thereby losing any value - initialized by the `-nolineediting' flag - -cpp-Makefile - - `make distclean' will now remove the `installed-bash' link - -print_cmd.c - - fixed a problem with undefined variables when HAVE_VARARGS_H is - not defined - - 6/14 - ---- -lib/readline/history.c - - fixed an error in the csh history expansion code so that the - `-y' word designator now expands to `0-y' rather than `1-y' - -lib/readline/isearch.c - - changed an absolute check for a character falling within the - ASCII 32-126 range (printable chars) with checks for CTRL_P - and META_CHAR and a check against the value RUBOUT - - changed a `break' to a `continue' so that the first non-matching - character in the search string does not cause the search to - end abruptly - - initialize prev_line_found to 0 at the top of rl_search_history - to avoid duplicate history lines being saved across searches - -lib/readline/rltty.c - - consolidated repeated code for setting special characters into - `SET_SPECIAL' defines - -lib/readline/readline.c - - include if VSTATUS is defined - - add bindable command rl_tty_status (unbound by default) - -lib/readline/funmap.c - - assign bindable command name `tty-status' to rl_tty_status - -INSTALL - - add note about compiling with gcc, same text as README - -lib/readline/display.c - - many changes and tweaks to make redisplay work better when the - prompt has invisible characters. These changes are non-optimal - in that the prompt is redrawn more than it needs to be, but - things are a hell of a lot better than they were - - 6/15 - ---- -documentation/Makefile - - make a variable NROFF that people can set to `groff -Tascii' if - they don't have real nroff - - changed the suffix rules to use $< - -support/bashbug.sh - - if rmail doesn't exist or fails, save the bug report in - ~/dead.bashbug - -execute_cmd.c - - in setup_async_signals, only ignore SIGINT and SIGQUIT if job - control is not active. If it is active and the job is restarted, - SIGINT remains ignored, and the now-foregrounded job is not - interruptible - -subst.c - - fixed up a problem with char_is_quoted that caused backslash- - escaped characters to cause incorrect results - -tests/run-dollars, tests/dollar-at.sh, tests/dollar-star.sh - - since the error messages produced by `cat' vary, changed `cat' - to `recho' and updated the correct answers file - -machines.h - - fixes to CRAY_STACKSEG_END definitions for different versions of - Unicos on the YMP (from Bill Jones) - - Motorola SVR4 machines have getcwd() and should not undef - HAVE_GETCWD - - on hpux 9.x, don't try to link with -lPW if compiling with gcc - (for alloca) - -parse.y - - an ugly fix for a compiler problem with structure assignment on - the cray - - 6/16 - ---- -builtins/wait.def - - replaced a call to sscanf with a validity check using all_digits() - and a call to atoi, since a pid_t is not necessarily an int, and - the sscanf clobbered the stack frame on systems where it is shorter - than an int (e.g., SCO) - -lib/readline/display.c - - since META_CHAR and the other macros only work with unsigned - chars, make rl_character_len convert its argument to an unsigned - char before testing it - -documentation/Makefile - - use $(INSTALL_DATA) instead of $(CP) to install the man pages and - info files - -cpp-Makefile - - use INSTALL_PROGRAM and INSTALL_DATA to install binaries and - documentation; pass both values to installs in subdirectories - - 6/18 - ---- -builtins/ulimit.def - - compensate for systems which define RLIMIT_OFILE instead of - RLIMIT_NOFILE, or don't provide such a compatibility define - themselves - -shell.c - - make maybe_execute_file check for directories and print an - appropriate error message, since it's doing an fstat anyway - -support/mksysdefs - - added support for a `-s srcdir' option so it can find - cpp-Makefile if ansi-Makefile is to be created - -Makefile - - call mksysdefs with -s $(srcdir) - -jobs.c - - add the magic #undef lines to avoid redefinition warnings on - SunOS 4 only - - 6/20 - ---- -cpp-Makefile - - install `bashbug' with `make install' - -trap.c - - make sure that `interactive' is set to 0 when running trap - commands - -builtins/umask.c - - fixed typo in usage error message - -subst.c - - fix process_substitute to set subshell_environment - -jobs.c, nojobs.c - - only mess with the terminal settings for an interactive shell - that is not in a subshell environment - - 6/21 - ---- -lib/readline/history.h - - add extern declaration of history_get - -builtins/fc.def - - make history replacement when using `r' or `fc -s' obey the - setting of HISTCONTROL - -general.c - - in canonicalize_pathname, preserve a double // at the start - of an absolute pathname, since that means something special - for the network directory system - -README, INSTALL - - updated information about submitting bug reports - -lib/readline/vi_mode.c, lib/readline/isearch.c - - make sure unistd.h is included before rldefs.h, if - HAVE_UNISTD_H is defined - - 6/24 - ---- -lib/readline/complete.c - - add `#' to the list of characters which cause a completed filename - to be quoted - -execute_cmd.c - - be more careful about closing pipe file descriptors in do_piping; - don't want to have `dup2(i, i); close(i);' problem - -lib/readline/{keymaps,readline}.h - - include local copies of include files if READLINE_LIBRARY is - defined, otherwise include the `official, installed' versions - using #include - -lib/readline/*.c - - define READLINE_LIBRARY before including any files - - include only `local' copies of include files using #include "xxx.h" - rather than #include - - 6/26 - ---- -execute_cmd.c - - check for clobbering the bash input stream before closing a file - descriptor due to an r_close_this redirection - -lib/readline/history.c - - made history_expand inhibit history expansion if the history - expansion char is set to 0 - -lib/readline/chardefs.h - - moved savestring() definition to rldefs.h - - changed lowercase_p, uppercase_p, to_lower, to_upper defines to - use macros rather than assume ASCII - -lib/readline/bind.c, general.c, general.h - - use strcasecmp, strncasecmp instead of str[n]icmp if - HAVE_STRCASECMP is defined - -cpp-Makefile - - pass -DHAVE_STRCASECMP to builds in the libraries, primarily - readline - -machines.h - - add HAVE_STRCASECMP to the entries for BSD/386, NetBSD, FreeBSD, - and 4.4 BSD - -builtins/hash.def - - add a fourth parameter to remember_filename, the initial value - of times_found (0 if we're just looking it up for `hash', 1 - for the command execution code) - -execute_cmd.c - - call remember_filename with an initial value of 1 for times_found - -builtins/wait.def - - handle a null argument with an error message - -builtins/common.c - - parse_and_execute now takes a third parameter: the value for - `interactive' while it is executing commands - -bashline.c, jobs.c, parse.y, shell.c, subst.c, trap.c, variables.c - - set the new third argument to parse_and_execute appropriately - -builtins/eval.def, builtins/fc.def, builtins/source.def - - set the new third argument to parse_and_execute appropriately - -builtins/help.def - - changed a call to strnicmp to strncmp when trying to find what - to give help on; it seems more correct - - 6/27 - ---- -machines.h - - cleaned up the SunOS section so it no longer relies on - HAVE_SHARED_LIBS being defined; it uses SunOS4 and SunOS5 - instead - -support/mksysdefs - - define SYSDEF to be SunOS4 or SunOS5 depending on the output - of uname rather than looking for ld.so - - 6/29 - ---- -machines.h - - minor change to the ardent titan machine description - - move the ardent and stardent descriptions before the - mips riscos description - -print_cmd.c - - ardent machines also need the extern declaration for printf - -make_cmd.c - - connect_async_list should do its work only if the lists to be - backgrounded are connected with `;'. This makes `;' bind tighter - than `&', so only the last job in the list is backgrounded. All - other lists should have the entire thing put in the background - -parse.y - - added a function `print_prompt' to take care of displaying the - prompt string if readline is not being used. This fixes problems - with the prompt being displayed before the status of completed - jobs is printed - - 6/30 - ---- -builtins/fg_bg.def - - `fg' and `bg' now print error messages if invoked when job control - is disabled - -lib/readline/rltty.c - - if not compiled into the shell, make get_tty_settings get and set - the window size. This noop stops the process if it is started in - the background - -lib/readline/readline.c - - provide a function version of savestring, if not being compiled - into the shell, since the macro has been removed from the - `public' header files - -lib/readline/readline.h - - provide all extern function declarations without checking whether - VI_MODE or PAREN_MATCHING are defined. It does not hurt to define - them if they are not used and not in the library, and other - applications using readline can't tell whether or not VI_MODE was - defined when the library was compiled anyway - - 7/1 - --- -machines.h - - add #undef HAVE_DIRENT_H to the ardent titan description - - 7/2 - --- -lib/readline/chardefs.h - - removed META_P define, renamed CTRL_P to CTRL_CHAR - -lib/readline/bind.c, lib/readline/isearch.c - - changed instances of CTRL_P to CTRL_CHAR - -lib/readline/search.c - - include before rldefs.h, if HAVE_UNISTD_H is defined - -lib/readline/readline.c - - declare PC, UP, and BC as extern rather than `local' to the - readline library - - 7/5 - --- -bashline.c - - implement command word completion inside of command substitution - with a new function: `command_subst_completion_function' - -subst.c - - new function to help with command subst completion: unclosed_pair - -lib/readline/complete.c - - new variable rl_filename_quoting_desired, which can be set to 0 - to inhibit the quoting of filenames after completion - -lib/readline/readline.h - - declare rl_filename_completion_desired and - rl_filename_quoting_desired - -builtins/bind.def - - don't save the old value of rl_outstream before initializing - readline -- it saves garbage values and screws up readline - -parse.y - - don't have private state telling whether or not readline has - been initialized -- use bash_readline_initialized like other - functions in bashline.c - -lib/readline/readline.c - - make the default 8-bit behavior be based on whether LC_CTYPE is - defined and its value (accept iso-8859-1 or iso_8859_1) - - 7/6 - --- -variables.c - - fix up the declaration of getenv() for convex machines - - 7/7 - --- -lib/readline/readline.c - - fixed up typos in the declaration of `savestring' - -lib/readline/history.c - - fixed an off-by-one error in the ADD_CHAR macro which caused one - extra character to be overwritten, causing the gnu malloc to abort - when that one character was at the end of an allocated block - - changed the ADD_STRING macro to avoid some unnecessary xreallocs - -lib/readline/display.c - - fixed a problem with move_cursor_relative -- function now returns - immediately if it has nothing to do - - fixed another problem with displaying prompts with invisible chars - -lib/readline/chardefs.h - - fixed the CTRL macro to be right (agree with the BSD kernel, for - example) - -cpp-Makefile - - fixed typo in the `install' recipe - - 7/8 - --- -support/srcdir - - fixed to handle srcdir when it begins with ./ or ../ to handle - $(srcdir) being a relative path better - -cpp-Makefile - - changed some include paths to $(BUILTIN_ABSSRC) when building in - `builtins' to handle $(srcdir) being a relative path - - change the `chmod' on bashbug to turn on read and execute for all - - added a couple of definitions to make it easier for a later - `configure' program - -support/mksysdefs - - added a -i option to specify an alternate set of directories to - search for include files - -lib/readline/bind.c - - in rl_read_init_file, when skipping whitespace at the start of - the line, decrement `i' so that we don't jump past the start - of the next line - -machines.h - - SCOv4 has a `robust' opendir that checks that you're actually - opening a directory - - 7/11 - ---- -lib/readline/complete.c - - make sure a word break character is unquoted before using it to - separate out the current word for completing - -machines.h - - new machine description: NetBSD on motorola m68k machines like - the hp300 - - undef HAVE_GETWD in the generic svr4 machine description, like - other svr4 descriptions - -lib/readline/rltty.c - - make sure to fflush (rl_outstream) after toggling the setting - of the keypad and meta key - -portbash/libc.sh - - add a test for OPENDIR_NOT_ROBUST - -support/getcppsyms.c - - output __svr4__ if we find __uxps__ (this makes the Fujitsu port of - SVR4 to the sparc build OK) - - 7/12 - ---- -lib/readline/display.c - - more display-related fixes when the prompt has invisible chars; - this time for screen updates when moving between screen lines - -lib/readline/readline.c, lib/readline/display.c - - changes to make readline work with terminals that have auto-wrap - from Per Bothner (new function _rl_update_final, term_xn changes, - some efficiency speedups, new function space_to_eol) - - 7/13 - ---- -lib/readline/display.c - - after moving up screen lines using term_up in _rl_move_vert, if - the new screen line is 0, _rl_last_c_pos needs to be adjusted - to take invisible characters into account. This was the source - of many bugs - - - 7/14 - ---- -documentation/Makefile - - change instances of `groff' to `${GROFF}', GROFF is set to - `groff' by default - -general.c, variables.c - - moved `qsort_string_compare' from variables.c to general.c - -general.h, variables.h - - moved declaration of `qsort_string_compare' from variables.h - to general.h - -alias.c, lib/readline/funmap.c - - moved qsort auxiliary functions after their use and added - forward declarations to avoid warnings from ANSI C compilers - -memalloc.h - - hpux_9 needs alloca declared as `extern void *' if __STDC__ - is defined - -support/mksysdefs - - removed HAVE_SHARED_LIBS entirely - - make a call to /bin/uname -X for SCO machines to avoid running - a different uname from the $PATH - -machines.h - - new descriptions: Intel i860 running SVR4, Tahoe running 4.3 BSD - - changed descriptions: Mips/RiscOS, DG AViiON, unknown machine - -jobs.c - - changes to how the shell handles foreground jobs dying of SIGINT: - an interactive shell using job control will no longer - act as if it received a SIGINT if the foreground job - dies from a SIGINT - - a non-interactive shell or shell without job control tries - to differentiate between SIGINTs it has seen (in - wait_sigint_handler) and a foreground job dying of a SIGINT - not sent from the keyboard, and runs the normal SIGINT code - only in the former case - - 7/15 - ---- -support/mksysdefs - - check for ${UNAME}${RELEASE} expanding to `SunOS4*' or `SunOS5*' - to set SYSDEF to SunOS4 or SunOS5, respectively. Apparently - this does not work for Solbourne - - 7/18 - ---- - -lib/readline/rltty.c - - if output is being flushed on termios systems, loop until the - FLUSHO bit is no longer set in the termios struct - -support/mksysdefs - - added a -A flag to force creation of ansi-Makefile - -machines.h - - new entry for Tandem machines running SVR3 - - 7/19 - ---- -lib/readline/rldefs.h - - include if HAVE_TERMCAP_H is defined - - use stuff if HAVE_TERMIO_H is defined and _POSIX_VERSION - is not defined - -lib/readline/rldefs.h, lib/readline/history.c - - include "config.h" if HAVE_CONFIG_H is defined - -lib/readline/{rldefs.h,signals.c,readline.c} - - WINSIZE_IN_IOCTL_H -> GWINSZ_IN_SYS_IOCTL for compatibility with - other GNU programs - -lib/readline/doc/Makefile - - fixed up to create the readline and history manuals in dvi and - ps format - -lib/readline/Makefile - - changes inspired by the standalone readline-2.0 distribution - - 7/20 - ---- -lib/readline/history.c - - new function, history_is_stifled (), returns history_stifled - - set history_state flags member in the history state functions - -lib/readline/history.h - - reorganized the function declarations, added missing declarations - - history_stifled is no longer exported by the library - - added a `flags' member to the HISTORY_STATE structure - -bashline.c - - use history_is_stifled () instead of history_stifled - -lib/readline/readline.c, lib/readline/vi_mode.c - - filled in correct argument declarations for functions called via - keymaps (count, key) - -lib/readline/complete.c - - efficiency improvement for compare_strings - - 7/21 - ---- -examples/dirfuncs - - new directory functions from ksh book, contributed by - Ken Konecki (kenk@wfg.com) - -machines.h - - hpux_8 and hpux_9 should both #undef HAVE_ALLOCA unless gcc is - being used - - 7/22 - ---- -bashline.c - - fixed up command_word_completion_function so that filenames with - leading tildes are completed correctly - - 7/26 - ---- -builtins/read.def - - if -r not given, make sure CTLESC is removed from input string - when reading \ - -lib/readline/readline.c - - new function bind_arrow_keys, which binds vt100/ansi arrow key - escape sequences after reading the termcap definition and the - inputrc file - - new function rl_yank_last_arg, which does what insert-last-arg - does in bash - -lib/readline/emacs_keymap.c - - remove default bindings to rl_arrow_keys for M-[ and M-O - - rl_yank_last_arg is now bound to `M-.' and `M-_' in - emacs_meta_keymap - -subst.c - - when performing process substitution on systems with /dev/fd, - make sure the child clears the slot in dev_fd_list it gets - from its parent so the file descriptor does not get closed - inappropriately if reallocated by, e.g., pipe(2) - -bashline.c - - removed insert_last_arg and the calls to bind in to `M-.' and `M-_'. - `insert-last-argument' is now bound to rl_yank_last_arg for - backwards compatibility - -lib/readline/funmap.c - - `yank-last-arg' is now a named command for rl_yank_last_arg - - -documentation/bash.1, documentation/readline.3 - - add description of yank-last-arg as one of the readline user - commands - -lib/readline/doc/rluser.texinfo - - added description of yank-last-arg - -builtins/getopts.def - - fixed a typo in the int-to-string code computing the value to set - OPTIND to: had '\0' instead of '0' - - made getopts handle the case where there are more than 9 dollar - variables (where rest_of_args is non-null) correctly - - 7/28 - ---- -lib/readline/display.c - - fixes to the display code for single-line-display in the presence - of prompts containing invisible characters - -lib/readline/readline.c - - if we are using horizontal scrolling and we have term_xn, decrement - the screenwidth by 1, since we won't be doing any line wrapping - - 7/31 - ---- -jobs.c - - new variable `freeze_jobs_list' to set when changes to the jobs - list or status of jobs in the list (other than calling something - like `jobs -n') are undesirable. This is set when execuing traps - on SIGCHLD - - 8/1 - --- -subst.c - - check that `~' is unquoted before performing tilde expansion in - an assignment statement - - 8/3 - --- -bracecomp.c - - keep brace completion from dumping core if there is only one - match - -lib/readline/chardefs.h - - add a define for digit_p, which returns the value of isdigit() - -lib/readline/readline.c - - added function equivalents for uppercase_p, lowercase_p, to_upper, - to_lower, pure_alphabetic, digit_p, and digit_value - - replaced calls to numeric () with calls to digit_p, removed - definition of numeric () - -lib/readline/history.c - - digit -> digit_p - -lib/readline/vi_mode.c - - replaced uses of the `isletter' define to use pure_alphabetic - from chartypes.h - - replaced uses of `numeric' with calls to digit_p - - added do...while(0) to `exchange' define - - - 8/4 - --- -execute_cmd.c - - make sure execute_function saves and restores the current loop - count with unwind_protect_int - -documentation/features.texi - - change the `Shell Command Line Options' section to `Invoking - Bash' to be closer to the GNU coding standards - - 8/5 - --- -builtins/read.def - - fixed up a memory leak and made behavior correct when no - variables given and backslash escaped at least one input char - - if we added CTLESC anywhere while reading the input string, - make sure we call dequote_string on each word of the input - before calling bind_variable with that string - - 8/6 - --- -lib/readline/readline.h - - removed definition of rl_show_star -- the variable no longer - exists - -lib/readline/readline.h, lib/readline/history.h - - reorganized to follow texinfo manual structure - -lib/readline/bind.c - - rl_function_dumper is now static - - rl_list_funmap names does not take any arguments - -builtins/bind.def - - rl_list_funmap names does not take any arguments - -lib/readline/readline.c, lib/readline/signals.c - - rl_init_argument ->_rl_init_argument - -lib/readline/rltty.c - - remove declaration and references to output_was_flushed - -support/getcppsyms.c - - if __uxps__ is defined, define __uxps__ and __svr4__ - - 8/9 - --- -support/mkdist - - added a -r option to set the `root name' of the distribution - (e.g., `bash' or `readline') - - 8/10 - ---- -input.c - - if check_bash_input sees that default_buffered_input is about - to be the target of a redirection, but the buffered input stream - is not the current input stream (e.g. as the result of an - `eval' while in a script, change default_buffered_input to a - new fd and use a new variable `bash_input_fd_changed' to note - the change - -parse.y - - if pop_stream sees that default_buffered_input has changed while - a buffered stream was on the save stack (because - bash_input_fd_changed is non-zero), then make the popped stream - and the corresponding buffer use the new fd - -test.c - - fixed an off-by-one error in test_stat when testing /dev/fd/n. - -cpp-Makefile - - add -I$(incdir) to CPPFLAGS - - add `incdir = $(prefix)/include' assignment - - 8/11 - ---- -lib/readline/signals.c - - changed some calls to signal () to call rl_set_sighandler() - - call _rl_redisplay_after_sigwinch from the sigwinch handler - to do better redisplay of wrapped command lines and multi-line - prompts - -builtins/suspend.def - - changed some calls to signal () to call set_signal_handler() - -lib/readline/*.c - - include config.h before anything else if HAVE_CONFIG_H is defined - -lib/readline/readline.c - - renamed rl_set_mark to _rl_set_mark_at_pos - - call _rl_vi_initialize_line from rl_initialize if the current - editing mode is vi mode - - only output a term_cr in crlf if term_cr is non-null - -lib/readline/readline.h - - added declarations for rl_vi_set_mark and rl_vi_goto_mark - -lib/readline/readline.c, lib/readline/readline.h - - added a new bindable command to set the mark, rl_set_mark - -lib/readline/funmap.c - - new bindable function with name `set-mark', bound to rl_set_mark - - new bindable vi-mode functions with names `vi-set-mark' and - `vi-goto-mark' - -documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo - - added documentation for `set-mark' (unbound) - -lib/readline/vi_mode.c - - new vi-command mode commands to save marks (the vi `m' command) - and go to saved marks (the ``' command) - - new function _rl_vi_initialize_line called from rl_initialize - to set up the line state in vi mode. Right now this just resets - all the marks - -lib/readline/vi_keymap.c - - new vi command-mode bindings to set the mark (`m') and to go to - a saved mark (``') - -documentation/readline.3 - - added vi-set-mark and vi-goto-mark to list of key bindings for - vi command mode - -lib/readline/{readline.c,display.c} - - renamed term_xn to _rl_term_autowrap - -lib/readline/display.c - - new function _rl_redisplay_after_sigwinch to encapsulate the - necessary redisplay code after a SIGWINCH is received - -variables.c - - only call find_user_command on the shell name in shell_initialize - if shell_name is not an absolute program name - - call canonicalize_pathname on the full shell pathname after - calling make_absolute on it if the shell name starts with a `.' - -siglist.h - - FreeBSD does not need a definition of sys_siglist[] - - 8/12 - ---- -lib/readline/rltty.c - - don't try to use FLUSHO unless FLUSHO is defined - -cpp-Makefile - - make sure to pass $(CC) to the make in the lib/malloc subdirectory - -lib/readline/readline.c - - don't declare PC, UP, and BC as extern; it causes too many problems - - 8/13 - ---- -machines.h - - add -DNO_SBRK_DECL to SYSDEP_CFLAGS for SVR4.2 on i386 - -support/mksysdefs - - new variable UNAME_S for the output of `uname -s' - - if uname -s does not output the same thing as uname, and uname -s - outputs UNIX_SV, then set UNAME to UNIX_SV. Some versions of i386 - SVR4.2 make `uname' equivalent to `uname -n' - -lib/readline/memalloc.h - - removed from the library; not needed since readline does not use - alloca - -lib/readline/{history.c,isearch.c,search.c,rldefs.h}, lib/tilde/tilde.c - - no longer include memalloc.h - -lib/readline/Makefile - - remove dependencies on memalloc.h - -lib/readline/signals.c - - overhauled signal handling based on ideas from Bruno Haible - (haible@ma2s2.mathematik.uni-karlsruhe.de) so that readline - saves and restores the signal mask and flags on Posix systems - - don't include fcntl.h, sys/file.h, errno.h, or stdlib.h - - ignore SIGALRM during rl_signal_handler like SIGINT until the - old handler is installed, on non-Posix or non-BSD systems - - new define SIGHANDLER_RETURN, dependent on the value of - VOID_SIGHANDLER - - use RETSIGTYPE instead of `sighandler' as the signal handler - return type; it's the name autoconf uses. If not defined, - set up from VOID_SIGHANDLER - -lib/readline/rltty.c - - call control_meta_key and control_keypad from rl_deprep_terminal - before putting the terminal back into ICANON mode to avoid - messing up the tty driver - - 8/15 - ---- -cpp-Makefile - - changes so that fewer -Idir arguments are passed to the make - in ./builtins - - 8/16 - ---- -lib/readline/bind.c - - use KEYMAP_SIZE instead of 128 in rl_invoking_keyseqs_in_map - -lib/readline/complete.c - - qsort the array of matches omitting matches[0], which must stay - in place no matter what, even if strcmp doesn't compare unsigned - chars correctly - - some fixes to the loop that prints the list of completions - -lib/readline/keymaps.c - - run the loop up to 127 when creating a new keymap in rl_make_keymap - -input.h, general.h, lib/readline/keymaps.h, lib/readline/tilde.h - - use _FUNCTION_DEF instead of __FUNCTION_DEF - -lib/readline/parens.c - - include "config.h" if HAVE_CONFIG_H is defined - - include if HAVE_SYS_SELECT_H is defined - - use HAVE_SELECT instead of FD_SET as the `configuring define'; - define HAVE_SELECT if it is not already defined but FD_SET is - -lib/readline/readline.c, lib/readline/rltty.c - - the __GO32__ include file is - -lib/tilde/tilde.c - - rewrote tilde_expand_word, eliminated static u_name array in - favor of using xmalloc - -lib/tilde/tilde.h - - use single leading underscore for file inclusion guard - -lib/readline/vi_mode.c - - use KEYMAP_SIZE rather than a literal 127 as the loop limit when - creating the overstrike keymap - -support/install.sh - - new file, from the make-3.71 distribution - - 8/17 - ---- -lib/readline/complete.c, lib/readline/readline.h - - new variable, rl_basic_quote_characters, used to see - if a word break character was a quoting character, so we can - do appropriate quoting after the completion - -lib/readline/parens.c - - use rl_basic_quote_characters when trying to find a matching - open paren - -lib/readline/doc/rltech.texinfo - - description of rl_basic_quote_characters - - 8/18 - ---- -newversion.c - - renamed to support/mkversion.c, which builds to mkversion - -cpp-Makefile - - changed to use support/mkversion - - removed instances of $< except in suffix rules -- some makes don't - handle those right - -lib/readline/rldefs.h - - make sure to #undef HAVE_DIRENT_H on NeXT machines - - - 8/19 - ---- -lib/readline/readline.h - - removed some duplicate function declarations - -trap.h - - define DEBUG_TRAP as NSIG for the last slot in trap_list - - define EXIT_TRAP as 0 - - declare trap_list as array of unknown size, since this is just a - header file - -trap.c - - extend trap_list and sigmodes to NSIG+1 - - initialize DEBUG_TRAP to do nothing; changes to functions to handle - DEBUG_TRAP - - let decode_signal return OK if NSIG is given, even though this will - vary between systems, for DEBUG_TRAP - - make reset_signal_handlers and restore_original_signals loop from - 1 to NSIG, not 0 to NSIG - - change GET_ORIGINAL_SIGNAL to try to get the original signal handler - only if `sig' is less than NSIG - - restore_default_signal just frees the trap string for both EXIT_TRAP - and DEBUG_TRAP - - run_debug_trap: new function to run traps on DEBUG - - free_trap_command: new function to free a trap string if it is - really a command and not one of the special trap values - - if a SIGINT trap resets the SIGINT trap string, free the old string - - new function: set_debug_trap(char *), which will reset the DEBUG - trap string, suitable for calling from an unwind-protect handler - -signames.c - - arrange things so that signal_names[NSIG] == "DEBUG" - -builtins/trap.def - - make sure traps on DEBUG are printed - -execute_cmd.c - - call run_debug_trap at the end of the `cm_simple' case in - execute_command_internal - - change execute_function so that traps on DEBUG do not propagate - into the function - -documentation/bash.1, documentation/features.texi - - documented the new DEBUG trap - - 8/20 - ---- -shell.c, config.h - - made the name of the restricted shell configurable in config.h; - the option is RESTRICTED_SHELL_NAME - -shell.c - - if the shell is invoked as `sh', enter Posix.2 mode after running - /etc/profile and ~/.profile - -builtins/read.def - - added a -p option for a prompt string, which is displayed before - trying to read anything - -documentation/bash.1 - - description of `read -p' - - description of new -r and -s options to `jobs' - -documentation/features.texi - - description of new -r and -s options to `jobs' - -jobs.c - - new functions: list_running_jobs, list_stopped_jobs - - list_jobs -> list_all_jobs - - new function `print_job' to do the work for all of the list*jobs - functions - - list_one_job type now void, calls print_job to do the work - -jobs.h - - new declarations for list_running_jobs, list_stopped_jobs - - list_one_job now void - - list_jobs -> list_all_jobs - -builtins/jobs.def - - new options: -r to print only running jobs, -s to print only - stopped jobs - - 8/22 - ---- -lib/readline/readline.c - - don't try to expand a null prompt string - -subst.c - - remove special handling of hostname_completion_file and - history_control; HOSTFILE and HISTCONTROL are the acceptable - names - - new function sv_histignore; call if HISTIGNORE variable is - assigned to - -bashhist.c - - new functions and declarations for handling HISTIGNORE variable - and its specifications for command lines to ignore - - change maybe_add_history to call history_should_ignore if the - HISTCONTROL tests are passed - -documentation/bash.1, documentation/features.texi - - removed mention of history_control and hostname_completion_file - - added description of HISTIGNORE - - 8/23 - ---- -array.c, array.h - - promoted to the shell mainline code; the `array' subdir is now - gone - -variables.h - - include `array.h' for the ARRAY typedef - -variables.c - - changes to assignment() to handle array assignments a[x]=b - - split off the creation of new variables into a new function: - make_new_variable - - split off the construction of variable values for assignments and - bindings into a new function: make_variable_value - - new function: bind_array_variable, to handle the addition of - new array variables and indices - -subst.c - - changes to do_assignment_internal to handle a[x]=b: - parse the subscript out of the name and call evalexp() on it - call bind_array_variable to do the value assignment - - change the printing of assignment statements when -x is in effect - to before the variable binding is attempted, so any error messages - look better - - new functions for referencing indexed arrays and to find the length - of arrays or array indices - - 8/24 - ---- -expr.c - - fixed up error reporting to use get_name_for_error if not executing - a builtin - -subst.c - - everywhere evalexp() is called, use maybe_expand_string to expand - the expression (calls expand_string if necessary) - -subst.h - - extern declarations for array convenience functions exported to the - rest of the shell - -variables.c - - more new convenience array functions: make_new_array_variable and - convert_var_to_array - -builtins/declare.def - - additions to declare_internal to add a -a flag which makes array - variables, and the requisite semantics (declare +a does not work, - declare -a name=value does not work, etc.) - - code to support the ksh-like declare a[] syntax to make array - variables - -builtins/setattr.def - - made set_or_show_attributes understand array variables and `-a' - -builtins/set.def - - changes to make `unset name' work, where name is an array variable - - changes to make `unset name[xxx]' work - - 8/25 - ---- - -lib/readline/readline.c - - make sure meta characters are added to a keyboard macro as - ESC-char if we are converting meta chars to ascii - - change rl_unix_word_rubout to handle repeat counts - - move the check of LC_CTYPE from rl_initialize to - readline_initialize_everything, where it should have been - all along - -error.c - - make sure is included before - -machines.h - - new entry for Bull DPX2 - -lib/tilde/tilde.c - - include before - -variables.c - - PS1 and PS2 are no longer non-unsettable - - 8/26 - ---- -variables.c - - PPID, UID, and EUID, since they are read-only, need not appear on - the `non-unsettable' list - - PATH and IFS now have the `nounset' attribute set rather than use - a separate `non-unsettable' list - - the non-unsettable list and non_unsettable() are gone - -variables.h - - new define `non_unsettable_p' to test nounset attribute - -builtins/set.def - - `unset' now uses non_unsettable_p to tell whether a variable can - be unset even if it's not readonly - -builtins/read.def - - read -a arrayname will read a list of values from stdin and assign - them to the array `arrayname', splitting on " \t\n" (honoring - backslash quoting if -r is not supplied) - -builtins/declare.def - - print values of arrays when `display -a' is invoked - -builtins/exit.def - - remove references to `bye' - - 8/28 - ---- -lib/readline/rltty.c - - removed calls to control_keypad; they cause problems on some - machines and should not really be performed by an application - -cpp-Makefile - - support for optionally linking array.o into the shell - -lib/glob/glob.c - - when returning an error after glob_filename on the directory name - returns an error result, make sure to free `result'. This fixes - a memory leak for names passed to glob_filename which contain - globbing characters before the first `/' but do not match any - existing files - - 8/29 - ---- -execute_cmd.c - - the `for' and `select' commands should expand their word lists - using expand_words_no_vars - -command.h, execute_cmd.c, general.c, make_cmd.c, print_cmd.c, subst.c,parse.y - - changed the `dollar_present', `quoted', and `assignment' members - of WORD_DESC to a single flags word - - 8/30 - ---- -variables.c - - make get_string_value return array[0] if called with a variable - that is an array - - 8/31 - ---- -lib/readline/display.c - - don't take the value of _rl_term_autowrap into account when - computing which screen line the cursor should be on; it screws - up wrapping on terminals without the `xn' capability - -lib/readline/examples/rltest.c - - new file, test code moved here from readline.c - -documentation/features.texi, lib/readline/doc/hsuser.texinfo - - fixed up printing of some of the shell options and the history - commands and modifiers - -subst.c - - make sure $name, where `name' is an array variable, returns - ${name[0]} - -variables.c - - convert a variable to an array even if index 0 is being assigned to, - instead of leaving it a `normal' variable - - 9/1 - --- - -builtins/setattr.def - - make sure that array variables printed by `declare' single-quote - the value after the `=' so the statement can be reused as input - -variables.c - - make sure array variables can be exported (name=(assignments)), and - that the export code works. The code is commented out because of - the possible confusion between an array and a regular string that - looks like an array assignment string. - - 9/2 - --- -variables.c - - make sure there is an executable file with the same name as - `shell' name in the current directory before assigning it to - $BASH at startup. If there is not, just make $BASH the login - shell name - - 9/3 - --- -parse.y - - removed a reduction from the `list0' production that could cause - statements which require semicolons to be allowed without error - (like before a `}' in a group command) - -lib/readline/display.c - - new functions: _rl_save_prompt and _rl_restore_prompt to save and - restore prompt invisible character info - - if the redisplay code encounters a line shorter than the old one - and containing invisible characters, make sure that the cursor is - at the end of the new text before calling clear_to_eol - - new variable last_invisible containing the index in the prompt - string of the last invisible character. We only have to redraw - the prompt string of _rl_last_c_pos is < last_invisible - - new function _rl_make_prompt_for_search to take care of setting - up the prompt string for a non-incremental search when the prompt - contains invisible characters - - fix so that a prompt string with invisible characters is not - redrawn each time through update_line (don't tputs term_cr unless - the cursor is before the last invisible character in the prompt - and will be moving past the last invisible char of the prompt - -lib/readline/isearch.c - - call _rl_save_prompt and _rl_restore_prompt when changing the prompt - to do i-search - - 9/4 - --- -lib/readline/readline.c - - doing_an_undo -> _rl_doing_an_undo for use by the vi-mode code - - rewrote rl_do_undo to reformat and eliminate a clumsy goto - - new split the add-to-kill-ring code off into a separate function, - _rl_copy_to_kill_ring - - added a new bindable function rl_copy_region_as_kill - - added a new bindable function rl_kill_region - - moved _rl_char_search_internal to here from vi_mode.c - - new bindable function rl_char_search - -lib/readline/vi_mode.c - - made `.' work for the `cw' and `[Ss]' commands, which implicitly - put the editor into insertion mode after they run - - split rl_vi_char_search code that actually searches for a character - into a new function, _rl_char_search_internal - -lib/readline/emacs_keymap.c - - bind M-= to possible-completions for ksh compatibility - - bind M-* to insert-completions - - bind C-x C-x to exchange-point-and-mark - - bind C-] to character-search - - bind C-@ to set-mark - -lib/readline/funmap.c - - new bindable function names: exchange-point-and-mark, kill-region, - copy-region-as-kill, character-search - -lib/readline/readline.h - - declare rl_exchange_point_and_mark, rl_copy_region_to_kill, - rl_kill_region, and rl_char_search externally - -documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo - - document new exchange-point-and-mark bindable command - - documented M-* default emacs-mode binding to insert-completions - - documented new copy-region-as-kill and kill-region commands - - documented new character search emacs-mode command - - documented new binding for set-mark - -lib/readline/rldefs.h - - moved values for `dir' when searching for characters in the line - from vi_mode.c to here - - 9/6 - --- -general.c - - new function ansicstr, which decodes ANSI-C backslash-escaped - characters (with the addition of \e and \E to mean escape) and - returns a new string - -subst.c - - new expansion $'...' which translates ANSI-C backslash escapes - in `...' and expands to the result - -builtins/echo.def - - ifdefs for ANSI-C for \a and \v rather than just expanding to - literal ASCII values - -documentation/bash.1 - - documented new $'...' expansion - - 9/7 - --- -builtins/enable.def - - fixed up the help text - - added a -s flag to restrict operation to Posix.2 `special' builtins - - removed -all option; -a is the way to do it now - - converted to use the builtin getopt - -builtins/common.c - - changed builtin_address_internal to return a pointer to a - struct builtin, which makes it much more useful. Changed - find_shell_builtin and builtin_address accordingly - - new function find_special_builtin, which returns special builtins - ((flags & SPECIAL_BUILTIN) != 0) - -execute_cmd.c - - in Posix.2 mode, find special builtins before shell functions - when performing command lookup - - in find_user_command_internal, return NULL if there is no $PATH - - in Posix.2 mode, failure of a special builtin causes a non- - interactive shell to exit - -variables.c - - allow $PATH to be unset - - 9/8 - --- -input.h - - added a new `input type': st_stdin, for use when using readline, - since readline is not properly a string - -parse.y - - surgery on the grammar: - o added new `compound_list' production: a list that can end - without a newline, `;' or `&' (used in subshell commands - and case clause commands) - o removed shell_command_1, folded rules into command - o eliminated pattern_list_1; changed case_clause_sequence to - directly incorporate the SEMI_SEMI token (a pattern_list_1 - was just a pattern_list with a trailing SEMI_SEMI) - o new `for_command' and `case_command' productions - o redirections -> redirection_list - o newlines -> newline_list - o redid the code that attaches redirections to the function - command rather than the function definition and eliminated - all of the shift/reduce conflicts - - changed with_input_from_stdin in the readline case to set - bash_input.type to st_stdin - -print_cmd.c - - a couple of changes to the way functions are printed - -shell.c - - only execute the PROMPT_COMMAND if input is not coming from a - string (bash_input.type != st_string). This fixes the problem - of PROMPT_COMMAND being executed by `eval' commands in an - interactive shell - - 9/12 - ---- -shell.c - - all interactive shells SIGHUP running jobs when exiting due to - a SIGHUP, not just login shells - - 9/13 - ---- -config.h, config.h.mini - - changed the default primary prompt (PPROMPT) to "\s\$ " - - removed the INTERACTIVE_COMMENTS define - -flags.c - - interactive comments are now enabled by default, regardless of the - INTERACTIVE_COMMENTS define - -input.h - - a new enum: stream_type, used in the BASH_INPUT struct - -parse.y - - bash_input.type is now initialized to st_none - -bashhist.c - - command_oriented_history is now the default - -documentation/bash.1 - - removed description of `nolinks' variable, updated set -P - description - - removed description of `notify' variable, updated set -b - description - - removed description of `noclobber' variable, updated set -C - description - -variables.c - - IFS may now be unset - -builtins/read.def - - now does the right thing if IFS is unset (acts as if it is - set to " \t\n") - -builtins/cd.def - - added a new parameter to change_to_directory () which says - whether or not to follow symlinks, instead of using the - global no_symbolic_links - - changed cd_builtin to accept a -P option to disable symlink - following temporarily - -builtins/ulimit.def - - instead of using a hardcoded `long' for the return type of the - rlimit functions, use RLIMTYPE, which defaults to long - - new defines string_to_rlimtype -> string_to_long and - print_rlimtype for systems which do not need `RLIMTYPE' defined - to something other than long - -general.c - - function replacements for string_to_rlimtype and print_rlimtype - for machines which have RLIMTYPE defined in the machine description - -general.h - - extern declarations for string_to_rlimtype and print_rlimtype - -shell.c - - don't source file named by $ENV at script startup if act_like_sh - is turned on - -machines.h - - new entry for amiga/netbsd - - change all the netbsd entries to add -DRLIMTYPE=quad_t to - SYSDEP_CFLAGS - -siglist.h - - define sys_siglist as _sys_siglist on the amiga only if USGr4 is - defined - -print_cmd.c - - change so that printf is not prototyped on LynxOS with gcc - -lib/readline/Makefile - - changed the `installdirs' target to not fail if the directories - do not need creating - -lib/readline/history.c - - fixed a bug in history_arg_extract which manifested itself when - !* was used after a command without arguments (e.g., pwd ; echo !*) - - 9/15 - ---- -subst.c - - expand_word_internal should preserve the flags (other than - W_QUOTED) from the word passed as a parameter on the word it returns - - expand_words_internal renamed to expand_word_list_internal - - expand_word_list_internal does not perform word splitting or - globbing on words with the W_ASSIGNMENT bit set - - removed special treatment of `notify', `command_oriented_history', - `history_control', and `nolinks' - - rewrote some of the sv_* functions to remove or avoid calls to - sscanf, one of the most expensive C library functions - -variables.c - - don't look for $command_oriented_history at startup, since it now - defaults to `on' - -general.h, general.c - - new function posix_initialize to do whatever is necessary to enable - `Posix mode' - -shell.c, subst.c - - call posix_initialize - -general.c - - rewrote replacements for strchr, strrchr to make them faster - -builtins/enable.def - - new -f option and necessary support to load builtins from a shared - object file on systems supporting both dlopen() and dlsym(). New - builtins loaded this way can replace existing shell builtins or - add completely new functionality - -builtins.h - - mkbuiltins.c creates `static_shell_builtins', which is a fixed - array, `shell_builtins' points to this array initially - - extern declaration for current_builtin - -builtins/mkbuiltins.c - - change to creat static_shell_builtins[] and declare shell_builtins - as a pointer to it - - change to declare `current_builtin' in created builtins.c - -builtins/source.def - - print an error message and return failure if no filename argument - is supplied - -builtins/common.c - - current_builtin is set by find_shell_builtin, find_special_builtin, - and builtin_address_internal - - new function builtin_usage, which prints the contents of - current_builtin->short_doc - -builtins/{bind,declare,enable,fc,getopts,hash,history,jobs,kill,read,set, - setattr,trap,ulimit,umask}.def - - changed the builtins in these files to use builtin_usage() to - print usage messages - -cpp-Makefile - - support for the HAVE_DLOPEN and HAVE_DLSYM defines - -machines.h - - added -ldl and -Bdynamic to the SunOS4 entry - -documentation/{bash.1,features.texi} - - documented new enable -f option to dynamically load builtins - - 9/16 - ---- -test.c - - added `==' as a synonym for `=' - - 9/18 - ---- -bashline.c - - include readline/rlconf.h so that VI_MODE is defined if - appropriate - -shell.c - - removed `-nobraceexpansion' option - -flags.c, flags.h - - added new -B flag; enabled if brace expansion is turned on - -subst.c - - use brace_expand instead of !no_brace_expand - -builtins/set.def - - change set -o braceexpand to be equivalent to set -B - -parse.y - - in with_input_from_stdin, do nothing if bash_input.type already - is st_stdin or if there is already a stream with type st_stdin - on the saved stream stack - - new function stream_on_stack to find out if there is a saved - stream of a specified type - -documentation/bash.1, documentation/features.texi - - doeumented new set -B option - - removed -nobraceexpansion shell startup option - - 9/19 - ---- -builtins/reserved.def - - made `help select' work - -cpp-Makefile - - removed references to the nonexistant `load.def' - - removed conditionals based on GETOPTS_BUILTIN - -builtins/getopts.def - - no longer $DEPENDS_ON GETOPTS_BUILTIN - -config.h, config.h.mini, builtins/help.def - - made the `help' builtin dependent on the HELP_BUILTIN define - - removed GETOPTS_BUILTIN - -builtins/mkbuiltins.c - - made the `$DEPENDS_ON' clause work for reserved words and - shell control structures in reserved.def by writing out - dependencies to builtext.h even if there is no `function' - - made the long_doc for each builtin and reserved word get - written out to builtins.c with #ifdef HELP_BUILTIN surrounding - the doc strings -- this makes the minimal shell much smaller - -shell.c, documentation/bash.1 - - removed `-quiet' long option - -parse.y - - make sure that word splitting is not performed on the prompt - string after expanding in prompt_string_decode by calling - expand_string_unsplit instead of expand_string - -lib/readline/bind.c - - new readline variable `mark-directories': if set, completed - directory names have a slash appended - -lib/readline/complete.c - - support for `mark-directories' - -documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo - - documented the new `mark-directories' variable - -builtins/bind.def - - new option `-r' to remove a binding for a specified key sequence - - make sure that a failure return from bind resets the keymap - correctly if a -m option was supplied - -documentation/{bash.1,features.texi} - - documented new bind -r option - - 9/20 - ---- -builtins/jobs.def - - new `disown' builtin - -documentation/{bash.1,features.texi} - - documented new `disown' builtin - -cpp-Makefile - - removed support for `MAKE_SHELL' cpp variable - - renamed endian.aux to mkendian, look for endian.c in support dir - - link in array.o, alias.o, braces.o, bracecomp.o - unconditionally, rely on cpp defines in the files to exclude code - - pass -DHAVE_SYS_SIGLIST if sys_siglist is defined - - pass -DHAVE_GETCWD if HAVE_GETCWD is defined in machines.h - - pass -DHAVE_VFPRINTF_EMUALTION through from machines.h to - compilation - -array.c - - don't compile in body of file unless ARRAY_VARS is defined - -braces.c - - don't compile in body of file unless BRACE_EXPANSION is defined - -alias.c - - don't compile in body of file unless ALIAS is defined - -bracecomp.c - - don't compile in body of file unless BRACE_EXPANSION and READLINE - are defined - -bashline.c - - don't compile in body of file unless READLINE is defined - -bashhist.c - - don't compile in body of file unless HISTORY is defined - -siglist.c - - don't compile in body of file unless HAVE_SYS_SIGLIST is not - defined - -getcwd.c - - don't compile in body of file unless HAVE_GETCWD is not defined - -vprint.c - - don't compile in body of file unless USE_VFPRINTF_EMULATION - is defined - -support/mksysdefs - - for SCO machines, define SYSDEF as SCO or SCOv4 - -lib/readline/readline.[ch] - - new function rl_push_macro_input (s), which makes s the current - macro input string - -endian.c - - renamed to support/endian.c - - 9/21 - ---- -lib/readline/complete.c - - more file types for the VISIBLE_STATS code: - | FIFOs - % character special devices - # block special devices - -lib/readline/isearch.c - - made RETURN an alternate search string terminator - -builtins/read.def - - removed use of stdio -- unbuffered stdio on a dup of fd 0 is - a big loss - -builtins/set.def - - new function: minus_o_option_value, returns 1, 0, or -1 given - a -o option name (-1 means a bad name) - - reorganized list_minus_o_options to be more efficient - -execute_cmd.c - - when expanding a here document, use maybe_expand_string rather - than a simple expand_string to try a speed things up a bit - -input.c - - don't compile in the body of the file unless BUFFERED_INPUT - is defined in config.h - - 9/22 - ---- -jobs.h, siglist.h - - replaced instances of Solaris with SunOS5 - -shell.c - - changed long option parsing code so that --arg is equivalent - to -arg, when `arg' is one of the recognized multichar options - -builtins/history.def - - rewrote to regularize the option parsing and use internal_getopt - - now allows only one of -awrn to be specified - - added a new -p option that adds each of its arguments to the - end of the history list, and deletes the `history -p' history - entry - -builtins/trap.def - - added new -p option to display specified trap values, or all - trap values if no other arguments supplied - -documentation/{bash.1,features.texi} - - documented new history -p option - - documented new trap -p option - - 9/25 - ---- -lib/readline/display.c - - fixed up the calcluation of the correct cursor line number (a `+' - and `-' were transposed in the calculation of `nleft') - - 9/26 - ---- -general.c - - moved isint() here from test.c, renamed to legal_number - -general.h - - extern declaration of legal_number - -test.c - - only compile isint() if SHELL is not defined, define it as - legal_number otherwise - -trap.c - - use legal_number in decode_signal instead of sscanf() - -builtins/common.c - - moved list_sigs to here from trap.def, renamed to - display_signal_list - - changed get_numeric_arg to use legal_number instead of doing - the parsing and calculation itself - -builtins/common.h - - extern declaration for display_signal_list - -builtins/{trap.def - - changed to use display_signal_list for trap -l - -builtins/kill.def - - changed to use display_signal_list for kill -l - - added new kill -n signum option - -documentation/bash.1 - - added description of new kill -l signame functionality - - added description of new kill -n signum feature - - added description of new enable -d option - -builtins.h - - added a char *handle member to `struct builtin' for later use - - new flags value: BUILTIN_DELETED - -builtins/mkbuiltins.c - - added code to inintialize the `handle' member to null in the - static builtin array definition - -builtins/common.c - - don't `find' a builtin if the BUILTIN_DELETED flag is set in the - flags word of the struct builtins array - -builtins/enable.def - - new option -d to remove a builtin loaded with -f, depends on - HAVE_DLCLOSE - -cpp-Makefile - - pass -DHAVE_DLCLOSE through from machines.h to compilation - -machines.h - - change SunOS4 machine description to define HAVE_DLCLOSE - - 9/27 - ---- -shell.c - - split shell exit code off into a separate function: exit_shell(status) - -builtins/exec.def - - rewrote for clarity and speed and to use the builtin getopt() - - added new -a, -c, and -l options - - now calls exit_shell if shell_execve fails and the shell is not - interactive - -documentation/bash.1 - - documented the new options to `exec' - - 9/28 - ---- -builtins/exec.def - - if the execve fails and the shell is not going to exit, reinitialize - traps and signals - - only call end_job_control if subshell_environment != 0 - - exec should exit unconditionally if the execve fails and - subshell_environment != 0 - -subst.c - - if valid_brace_expansion_word fails, make sure `temp' is set to - NULL before trying to free it after the `goto bad_substitution' - -cpp-Makefile - - add $(CPPFLAGS) to the compilation flags when making `mksignames' - -documentation/features.texi - - fixed a typo in the tilde expansion section - - 9/29 - ---- -machines.h - - DEC OSF/1 has the dlopen/dlsym/dlclose set of library functions - -shell.c - - don't execute /etc/profile if -noprofile given - -builtins/pushd.def - - new file, pushd/popd/dirs split off from cd.def - - replaced calls to sscanf with calls to legal_number - -builtins/Makefile, cpp-Makefile - - changes for pushd.def - -config.h, config.h.mini - - ALLOW_RIGID_POSIX_COMPLIANCE is no longer used - -subst.c, variables.c - - GETOPTS_BUILTIN is no longer used - -variables.c - - if the first character of argv[0] is not a `/', search the path - and canonicalize the result to find out how to set $BASH - - 10/2 - ---- -builtins/enable.def - - changed enable_shell_builtin to use builtin_address_internal to find - the builtin rather than searching the list itself - - list_some_builtins skips a builtin if flags & BUILTIN_DISABLED != 0 - - rewrote dyn_load_builtin to take a list of names to load from a - single filename - - don't dlclose the shared object in dyn_unload_builtin unless its - reference count drops to 0 - -builtins/test.def - - don't bother making new copies of everything in the argument list - when constructing the argc and argv for test_command; just make - sure not to free anything but ARGV - - 10/3 - ---- -bashline.c - - remove C-e binding in vi movement mode which switches into emacs - mode - -general.c - - make xfree only try to call free on non-null strings - - 10/4 - ---- -builtins/read.def - - new `-e' option that uses readline to read the line - - if one of the arguments is not a legal variable name, print an - error message and return failure - -builtins/reserved.def - - changed the `Variables' to `variables' so `help variables' works - -subst.c - - set startup_state to 2 in child of command substitution to try to - avoid some unneeded forks - -trap.c - - removed call to reset_terminating_signals in restore_original - signals; callers are now required to take care of that themselves, - if necessary - -execute_cmd.c, subst.c - - added necessary calls to reset_terminating_signals before calls - to restore_original_signals - -execute_cmd.c - - when executing a null command in a subshell, don't bother passing - a string to make_child; just pass NULL - - in execute_builtin_or_function, don't add so many unwind-protects - if `subshell' == 1 - - in command_substitute, call cleanup_the_pipeline to discard the - old pipeline, so pipeline_pgrp does not get set to 0 in - start_pipeline, which is called by make_child via making_children - -jobs.c, nojobs.c - - new function, ignore_tty_job_signals, to set SIGTTIN, SIGTTOU, and - SIGTSTP to SIG_IGN - - new function, default_tty_job_signals, to set those signals - to SIG_DFL - - new function, cleanup_the_pipeline to free up the_pipeline and - set it to NULL - - 10/5 - ---- -builtins/history.def - - the history -p option is now -s (to sort of parallel the ksh - print -s option) - - the -s option now combines all of its arguments into a single - string and appends the string to the history list - - new history -p option to history expand each argument and print - the result without modifying the history list - -documentation/bash.1, documentation/features.texi - - documented the new -e option to read - - documented the new history -s and -p options - - documented the new cd and pwd -L options - -builtins/cd.def - - changed cd and pwd to use internal_getopt - - added the -L option to cd and pwd to follow symlinks (like if - set +P were issued) - -builtins/pushd.def - - added text for dirs +N and dirs -N to the dirs builtin long doc - - added -v option to dirs to print dirstack one dir per line with - stack index prepended - - 10/6 - ---- -execute_cmd.c - - split the command searching code into a new function: - search_for_command - - removed a bunch of dead code from shell_execve - - removed call to reset_terminating_signals when executing a function - or builtin in a subshell (either via (xxx) or xxx &) - - don't add unwind protects at all in execute_function if subshell == 1 - -lib/readline/chardefs.h - - new macro ALPHABETIC(c), returns 1 if c is a letter or digit - -lib/readline/readline.c - - don't call abort() in rl_change_case(); it's impolite in a - library function - - new macro, SWAP, used to swap values of two integers - - changed alphabetic to use ALPHABETIC, made it slightly faster - - modified rl_change_case() so that word capitalization is the - same as GNU Emacs - -lib/readline/search.c - - in noninc_dosearch, don't reset the history positition to what - it was if we're currently in vi editing mode (as per Posix.2 - `/' and `?' vi-mode editing commands) - - 10/7 - ---- -builtins/common.c - - changed single_quote and double_quote to use char pointers - rather than string indexing - - new function backslash_quote(string), which quotes special - characters in STRING using backslashes - - 10/8 - ---- -alias.h - - added an extern declaration for alias_expand_word - -parse.y - - broke the alias expansion code off into a function - alias_expand_token; its return value says whether to re-read - a token or go on - - changed the alias expansion code to handle aliases that expand - to nothing better - - broke the code that does special-case token recognition off into - a function: special_case_tokens - - used the new functions to make sure that the special-case tokens - can be the expansion of an alias - - made sure that if in `posix mode' that reserved words cannot be - aliased and that all reserved words can be the values of aliases - and be recognized after expansion - - 10/10 - ----- -lib/readline/complete.c - - replaced #ifdef SHELL code with two new exported readline interfaces: - rl_filename_quoting_function and rl_filename_dequoting_function. - Both return a pointer to char. - - new extern variable rl_filename_quote_characters, containing a list - of characters that cause a word to be quoted by the completer if - they appear in a file name - -bashline.c - - new functions for rl_filename_quoting_function and - rl_filename_dequoting_function. - - initialize rl_filename_quoting_function and rl_filename_dequoting_function - in initialize_readline - - initialize rl_filename_quote_characters - -lib/readline/readline.h - - extern declarations for new public interfaces - rl_filename_quoting_function and rl_filename_dequoting_function - - added declarations for NO_MATCH, SINGLE_MATCH, and MULT_MATCH for - use by the filename quoting functions - - new extern declaration for rl_filename_quote_characters - -lib/readline/history.c - - made a version of single_quote be compiled in if SHELL is not - defined - - the `q' and `x' modifiers are now compiled in by default, not - just if SHELL is defined - - 10/11 - ----- -subst.c - - string_quote_removal was being a little overzealous in stripping - things within embedded quoted strings when `quoted' was == 1. - Only remove one level of quotes each time through the function - This fixes the problem of quotes being stripped incorrectly in - var="The text \"hello\" should show up inside double quotes." - -lib/readline/history.c - - made the behavior of single quotes inhibiting history expansion - configurable with a variable: history_quotes_inhibit_expansion, - not just shell-specific - - added a new variable: history_search_delimiter_chars, which is a - list of characters that can also delimit a history search string - -lib/readline/history.h - - extern declaration of history_quotes_inhibit_expansion - - extern declaration of history_search_delimiter_chars - -bashhist.c - - set history_quotes_inhibit_expansion to 1 in bash_initialize_history - - initialize history_search_delimiter_chars to ";&()|<>" - -lib/readline/doc/{rltech,hstech}.texinfo - - documented new readline and history library interfaces - -parse.y - - split the part of read_token that reads a single word off into - a new function: read_token_word - -lib/readline/chardefs.h - - include by default; only check HAVE_STRING_H if - HAVE_CONFIG_H is defined - - 10/12 - ----- -parse.y - - moved the `RESET' code out of read_token into reset_parser - - rewrote some of decode_prompt_string to make it more efficient - - rewrote more of read_token_word to make it more efficient - - make shell_getc cast its result to `unsigned char' before - returning it. This fixes the problem of \255 appearing in a - line - -machines.h - - new entry for m68k machines running Linux - - 10/13 - ----- -builtins/exec.def - - use search_for_command rather than find_user_command to look up - the path to exec, so the hash table and temp environment are used - -variables.c - - don't rebuild the export environment after binding a shell - function unless that function is exported - - make sure that copy_variable copies arrays correctly, using - dup_array() - - in assign_in_env, only call tilde_expand if a `~' appears somewhere - in the value - -execute_cmd.c - - if we found $PATH in the temp environment in search_for_command, - call find_user_command_in_path instead of find_user_command, so - we don't try to search the temporary env again. Call - find_user_command as normal if PATH is not in the temp environment - -subst.c - - char_is_quoted should not be compiled in if READLINE is not - defined - -lib/readline/complete.c - - add a new external interface: Function *rl_char_is_quoted_p, - which is called to find out whether a word break character is - quoted and should be skipped over when breaking words for - the completer - -lib/readline/readline.h - - extern declaration for rl_char_is_quoted_p - -bashline.c - - initialize rl_char_is_quoted_p to char_is_quoted - -lib/readline/doc/rltech.texinfo - - documented rl_char_is_quoted_p - -lib/readline/readline.c - - extend the undo records so that a `start' or `end' value of -1 - means rl_point and a value of -2 means rl_end. This is a start - to better support for undoing vi-mode commands like `C' - -lib/readline/vi_mode.c - - don't save what's entered in insert mode after a `C' command - for later insertion when doing a `redo' - - 10/16 - ----- -test.c - - rewrote unop() to use a switch statement instead of a call to - strchr - - remove #ifdef SHELL blocks by defining getuid, geteuid, getgid - and getegid as references to current_user.{uid,euid,gid,egid} - respectively - - change group_member to only fetch the group list once and to use - NGROUPS_MAX or NGROUPS to find the maximum number of groups - -documentation/bash.1 - - fixed description of ${#@} expansion - - 10/17 - ----- -support/bashbug.sh - - add a `From:' line to the mail message handed to rmail - - 10/18 - ----- -test.c - - rewrote binary_operator for speed and clarity - - removed age_of, added arithcomp(), filecomp() to support new - binary_operator - - removed support for `-l string' - -documentation/bash.1 - - removed mention of `-l string' from `test' description - - 10/19 - ----- -cpp-Makefile - - pass PROGRAM as the double-quoted shell name to compilation of - shell.c and error.c - - 10/20 - ----- -support/bashbug.sh - - don't try to use ${word:-expansion}; ultrix sh doesn't understand it - -hash.c - - new function: flush_hash_table (table, free_data) to delete the - contents of a given hash table. *free_data is called to free - each item's data, if free() is inappropriate - -builtins/hash.def - - new functions free_hashed_filenames and free_filename_data to - flush the table of hashed filenames - -subst.c - - change sv_path to call flush_hashed_filenames directly - -variables.c - - only sort arrays of variables or functions for the environment or - `set' output if `posixly_correct' is set. sh does it; ksh does - not, and there's no real requirement to do so - - rewrote delete_all_variables so it looks like flush_hash_table - -trap.c - - two new flag values for the `sigmodes' array: SIG_INPROGRESS, - which is set for sigmodes[sig] while a trap handler for sig - is executing, and SIG_CHANGED, which is set if a new trap - value is set when SIG_INPROGRESS is set. This should obviate - the need to set the trap value to IMPOSSIBLE_TRAP_HANDLER while - the trap handler is executing - -alias.c - - rewrote delete_all_aliases so it looks like flush_hash_table - - 10/21 - ----- -alias.c - - changed delete_all_aliases to call flush_hash_table directly - and use free_alias_data as the `free function' argument - -variables.c - - changed delete_all_variables to call flush_hash_table directly - -tests/run-test, tests/test-tests - - new scripts to run tests of the `test' builtin as part of the - regression test - - 10/24 - ----- -bashline.c - - initialize_hostname_list needs to look for HOSTFILE first - - hostname list is no longer sorted - - replaced binary search in hostnames_matching with a simple - linear search - - made the code that reads hostnames skip over the first word on - a line only if its first character is a digit, assuming it's - an Internet address - -copy_cmd.c - - removed copy_select_command; overload copy_for_command, since the - select and for command structs are exactly the same - -make_cmd.c - - combined make_for_command and make_select_command into a new - function, make_for_or_select - - rewrote make_here_document to remove the unneeded `switch' statement - -builtins/common.c, builtins/hash.def - - moved remove_hashed_filename from common.c to hash.def - -builtins/common.c - - remove the \r from error message printed by get_working_directory - - change parse_and_execute to call dispose_fd_bitmap directly then - discard the `pe_dispose' unwind-protect frame rather than running - the frame - -builtins/set.def - - changed how set -o options are set and retrieved, using set and get - functions to avoid all that special-case inline code - - 10/26 - ----- -test.c - - added unary operator `-o', which returns true of the shell option - name given as an argument is set - -lib/readline/readline.c - - added a definition of set_lines_and_columns to be called if the - library is not compiled -DSHELL - -shell.c - - added a --verbose startup long option - - renamed `--nolineediting' to `--noediting' - - 10/27 - ----- -lib/readline/util.c - - new file, for readline utility functions - -lib/readline/readline.c - - moved a bunch of functions to util.c - -subst.c - - make sure set_sigint_handler is called only by the subshells doing - command and process substitution - -builtins/read.def - - make sure that rlbuf is initialized to null - -trap.c - - new flag for sigmodes[] members: SIG_IGNORED, set when signal is - ignored, even if it's special or untrappable - - new function: signal_is_ignored (sig), which returns 1 if SIG - has been ignored with trap '' - -builtins/trap.def - - changed to use the builtin getopt - -shell.c - - added a check to sigint_sighandler for whether or not SIGINT has - been ignored with trap '' in an interactive shell. This fixes - the problem with `read' being interruptible in an interactive - shell even if SIGINT is being ignored - - 11/8 - ---- -lib/readline/Makefile - - added definition of INSTALLED_HEADERS, just in case - - 11/11 - ----- -variables.c - - change assign_in_env so that it doesn't use savestring ("") to - set `value' to a dummy value; don't call strcpy if there's - nothing to copy - - 11/15 - ----- -general.h - - new defines, legal_variable_starter and legal_variable_char - - new define SIGRETURN(n) which encapsulates the VOID_SIGHANDLER - differences when returning from a signal handler - -general.c, variables.c, subst.c, expr.c - - use legal_variable_starter and legal_variable_char - -shell.c, nojobs.c, trap.c, jobs.c, builtins/suspend.def - - change to use SIGRETURN macro - -subst.c - - massive changes to clean up the code and remove unused code and - variables - - expanded the ${#param} code so that all of the shell special - variables may have their length taken - -tests/run-tilde - - new test for tilde expansion - -bashline.c - - fix a bug in command_subst_completion_matches: make sure that - `matches' is static - -parse.y - - don't print a prompt when not using readline if the current - input type is st_string - -machines.h - - add -DINT_GROUPS_ARRAY to SYSDEP_CFLAGS on ultrix - - fixes to the cray machine description from Bill Jones - -braces.c - - fixed a bug in brace_gobbler that prevented a backslash from - escaping an open brace - - 11/16 - ----- -tests/braces-tests, tests/run-braces - - new regression tests for brace expansion - -builtins/pushd.def - - new -p option for `dirs' that prints dirstack on per line - without numbers - - 11/17 - ----- -command.h - - move redirection error values here from execute_cmd.c - - new defines INPUT_REDIRECT and OUTPUT_REDIRECT - -shell.c - - make the default MAINTAINER `bash-maintainers@prep.ai.mit.edu' - -execute_cmd.c - - many changes to clean up the code and remove unused variables and - functions - - new functions: redirection_error, find_in_path_element, - find_absolute_program - - fixes to redirection error reporting, so things like exec 4<&y* - and exec 4<&$FOO are displayed correctly - - removed the `lexical_scoping' code - -flags.c, flags.h - - removed the lexical_scoping code and variable - -documentation/{bash.1,features.texi} - - removed the description of the `-l' option to `set' - -jobs.c - - don't try to open /dev/tty to get the controlling tty, use - fd 2 like other job control shells - -lib/readline/vi_mode.c - - when using `d%', make sure the matching character found by - the `%' is deleted by the `d'. Ditto for `c%'. - - stub function for vi undo: rl_vi_undo. Right now it just - calls rl_undo_command - -lib/readline/vi_keymap.c - - change to call rl_vi_undo instead of rl_undo_command - -lib/readline/readline.h - - extern declaration for rl_vi_undo - - 11/21 - ----- -execute_cmd.c - - fix to print_select_list to avoid a possible divide-by-zero error - and subsequent core dump - - fix to execute_select_command to just return 0 if there is no - select list - -parse.y - - remove `in' from the list of tokens that cannot take trailing - semicolons - -builtins/read.def - - make sure that leading IFS whitespace is removed before calling - get_word_from_string the first time. This matters when IFS is - not " \t\n" but non-null - - make sure the array code uses IFS to split the input string - before assigning it to the array - - 11/22 - ----- -parse.y - - make sure that if \nnn expands to CTLESC or CTLNUL, the char - is protected by a CTLESC - - new variable `promptvars', which, if non-zero, causes all the - variable expansions to be performed in decode_prompt_string. - If zero, only quote removal is performed. - -builtins/source.def - - new variable: `source_uses_path', set to 1 by default. If - non-zero, the `.' builtin uses $PATH to find the script to - source - -builtins/getopt.h - - cut out everything not needed by bash - -builtins/getopt.c - - cut out everything not needed by bash - -builtins/getopts.def - - removed the call to getopt_set_posix_option_order, which is no - longer necessary - -execute_cmd.c - - split the code that writes out here documents to files out into - a separate function - - 11/23 - ----- -builtins/getopt.c, builtins/getopt.h, builtins/getopts.def, subst.c - - prefix all of the getopt variables and functions with `sh_' - (that is, optind becomes sh_optind and getopt becomes sh_getopt) - to avoid confusion with a system's getopt(3) implementation - -subst.c - - new functions: parameter_brace_substring and verify_substring_values - and changes to expand_word_internal to support the ksh-93 - ${var:exp1:exp2} substring syntax - -documentation/bash.1 - - documented the new ${var:exp1[:exp2]} syntax - - 11/25 - ----- -builtins/setattr.def - - don't allow readonly -n at all - -array.c - - split array_to_string into two parts; a new function - array_to_string_internal does the real work - - new function array_subrange () to return a subset of the elements - in an array - -subst.c - - augmented the substring code to handle the positional parameters - and array variables - - made quote_list and dequote_list return their WORD_LIST * - arguments so they can be used like - - z = string_list ((quoted ? quote_list (l) : l), xxx); - - - augmented the ${xxx} expansion code to do indirect variable - references if the first character of the variable name is `!' - -tests/new-exp.tests - - added regression tests for substring expansion - - added regression tests for indirect variable references - - 11/28 - ----- -builtins/set.def - - added set -o hashfunc and set -o onecmd, synonyms for set -h - and set -t, respectively - -builtins/shift.def - - changed shift so that the positional parameters are not changed - if the argument is > $# (this is ksh and Posix.2, unlike sh) - -documentation/bash.1 - - documented true behavior of `shift' - -lib/readline/kill.c - - split the kill ring management code and the kill commands out - from readline.c into this file - -lib/readline/undo.c - - split the code that does undoing out of readline.c into this file - -shell.c - - force the shell to exit with status 127 if a longjmp back to - run_one_command occurs with bash -c - - force the last command exit status to 1 if a - longjmp (top_level, DISCARD) is performed - -builtins/read.def - - don't throw away partial lines after reading EOF - -subst.c - - command substitution should not inherit the -e flag - -builtins/source.def - - make sure to set the exit status correctly when in posix mode - and the filename argument to `.' does not exist - - 11/29 - ----- -lib/readline/input.c - - split the input buffering and character input code out of - readline.c to here - -lib/readline/macro.c - - moved the keyboard macro management code to here from readline.c - -lib/readline/readline.c - - removed the STATIC_MALLOC code - -lib/readline/rltty.c - - return -1 in POSIX get_tty_settings if tcgetattr returns -1 and - errno != EINTR, even if output is being flushed - - 12/1 - ---- -machines.h - - fixes to the hpux_8 and hpux_9 machine descriptions - -trap.c - - make run_exit_trap return the right exit status - (last_command_exit_value) - - run_exit_trap no longer preserves the value of last_command_exit_value - around the execution of the trap commands - - run_exit_trap now turns off SIG_TRAPPED and sets SIG_INPROGRESS - and will not try to run anything if SIG_INPROGRESS is set - -trap.h - - change definition for run_exit_trap - -shell.c - - call run_exit_trap only if trap[0] is set and not ignored - -builtins/exit.def - - make sure we only source the .bash_logout file once, even if it - contains a call to `exit' - -execute_cmd.c - - if we run an exit trap in a (...) user subshell, allow it to - override the exit status of the subshell - -lib/readline/readline.c - - made rl_delete_text bounds check its `to' argument, and limit - it at rl_end - -lib/readline/vi_mode.c - - make rl_vi_subst call `rl_delete_text' directly for the `s' - command - -support/mksysdefs - - define a new variable for the sysdefs.h file for ISC machines: - ISC_release, which can be ISC_2, ISC_3, or ISC_4 - -machines.h - - don't `#undef' HAVE_GETCWD on ISC 4.x machines - - `#undef' HAVE_RESOURCE on ISC 4.x machines - -support/mkversion.c - - include "posixstat.h" rather than for the benefit - of ISC machines - - 12/5 - ---- -lib/readline/complete.c - - changed username_completion_function so that a null username - generates a list of all users as possible completions - -lib/readline/readline.h - - added definitions for STREQ, STREQN - -lib/readline/{search.c,isearch.c,kill.c} - - removed private definitions of STREQ, STREQN - -execute_cmd.c - - in find_user_command_internal, just return a copy of the pathname - passed as an argument if there is no PATH - - 12/6 - ---- -siglist.h - - NetBSD 1.0 does not need a define for strsignal() - - 12/8 - ---- -subst.c - - removed assignment_name, word_list_quote_removal, word_quote_removal, - and sub_append_number -- unused functions - - removed some unexecuted code from expand_word_internal - - 12/9 - ---- -execute_cmd.c - - if PATH is set to the empty string, find executables in the - current directory - -shell.c, parse.y, trap.c - - before setting the SIGINT sighandler unconditionally to one of - sigint_sighandler or termination_unwind_protect, check that it - is not ignored. Now trap '' 2 really sets the SIGINT signal - handler to SIG_IGN. [In 1.14.3] - -trap.c - - rewrote set_sigint_handler to use SIG_IGNORED rather than checking - against IGNORE_SIG - - changed ignore_signal, run_exit_trap, maybe_call_trap_handler, and - run_trap_internal to check SIG_IGNORED - -shell.c - - removed the check for signal_is_ignored(SIGINT) in sigint_sighandler - - 12/11 - ----- -sig.c, sig.h - - new files, moved signal-related definitions and code here from - shell.c, general.h, general.c, jobs.c, jobs.h, externs.h - -unwind_prot.c, shell.h, nojobs.c - - include sig.h - - 12/12 - ----- -jobs.c - - only break out of loops if SIGTSTP was used to stop a job in the - loop, the shell is currently interactive, and job control is on. - SIGSTOP does not break loops. [In 1.14.3] - - 12/13 - ----- -expr.c - - bases < 2 or > 36 are now accepted without silently being reset - to 10 - -braces.c - - make sure array_concat copies the array it returns if one of - the arguments is null [In 1.14.3] - - 12/14 - ----- -subst.c - - split the ${...} expansion code out into a separate function, - static char *parameter_brace_expand() - - changes to array_value so that any variable can be referred to - as an array with an integer subscript. The value will be - returned if a non-array variable is referred to as ${var[0]}; - if the subscript is > 0 a null string is returned - - 12/15 - ----- -machines.h - - fixes to freebsd description for FreeBSD 2 [In 1.14.3] - -support/bashbug.sh - - changed to use /usr/lib/sendmail if present or /usr/sbin/sendmail - if present, defaulting to rmail [In 1.14.3] - -bashhist.c - - HISTFILESIZE now controls how large the history file is after - it is written. After saving the shell history, sv_histfilesize - will truncate it if necessary. history -w can override this. - -documentation/bash.1 - - documented change to treatment of HISTSIZE when saving history - -lib/malloc/malloc.c - - removed the calls to sigsetmask() in malloc(). This should - result in a speed improvement - - 12/19 - ----- -builtins/enable.def - - don't allow -f or -d in a restricted shell - -builtins/alias.def - - rewrote alias and unalias to use the internal getopt - - added -p option to print the alias list to alias - - fixed up the documentation for `alias' - -documentation/{bash.1,features.texi} - - updated the documentation for `alias' - - updated the documentation for $_ - -array.c,array.h - - new function `empty_array (ARRAY *a)' removes all of the - elements in a without destroying the array variable in - preparation for overwriting it. Used by read -a. - -builtins/read.def - - call empty_array() before assigning list of values with read -a - - changed dispose_array to use empty_array to destroy the - array elements - -variables.c - - set $_ to argv[0] at variable initialization time - - 12/20 - ----- -subst.c - - broke the pattern removal code into a few separate functions: - getpatspec to get the pattern specifier, getpattern to do the - necessary word expansions and return the pattern to be matched - - new function: parameter_list_remove_pattern(), which implements - the ${param[#%][[%#]]pattern} where param is `@' or `*' - -documentation/bash.1 - - documented new pattern removal functionality for the positional - paramters - -general.c - - new function strsub (s, pat, rep, gflag) replaces PAT with REP - in S. All occurrences are replaced if GFLAG != 0; the first is - replaced otherwise - - changed strindex() to avoid multiple calls to strnicmp by - checking first character of the string - -builtins/fc.def - - changed to use builtin_getopt with a check for fc numbers as - arguments - - some code rearranging for efficiency and clarity - - fc_dosubs now just calls strsub(); fc_replace is gone - - 12/21 - ----- -subst.c - - new function, match_pattern, which matches a shell globbing - pattern anywhere in a string and returns the boundaries of the - match - -lib/readline/readline.h - - declarations for rl_insert_command and rl_backward_char_search - -lib/readline/readline.c - - new function rl_insert_comment, no longer vi-mode-specific - - new function rl_backward_char_search - -lib/readline/bind.c - - comment-begin now sets the comment char for emacs and vi modes - - variable holding the value is now _rl_comment_begin - -lib/readline/vi_mode.c - - move the `comment-begin' stuff to readline.c and bind.c - -lib/readline/funmap.c - - vi-comment is now insert-comment - - new bindable command character-search-backward - -lib/readline/vi_mode.c - - command mode `#' now invokes rl_insert_comment - -lib/readline/emacs_keymap.c - - M-# now bound to insert-comment - - M-space now bound to set-mark - - M-^] now bound to character-search-backward - -bashline.c - - posix_readline_initialize now calls rl_variable_bind to set the - value of comment-begin rather than directly modifying - _rl_comment_begin - -documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo - - added description of new bindable `insert-comment' command - - documented new M-space emacs mode binding - - documented new character-search-backward command and default - emacs mode binding to M-C-] - -shell.c - - only call posix_initialize if posixly_correct is set - - 12/22 - ----- -cpp-Makefile - - make $(Program) depend on $(srcdir)/.distribution, for the - benefit of systems where `make' does not have VPATH support - [In 1.14.3] - -jobs.c - - if a foreground job is killed by SIGINT while job control is - active, print a newline to compensate for the kernel printing - ^C without one [in 1.14.3] - -bashline.c - - make sure bashline_reinitialize resets rl_completion_entry_function - to NULL, as the comment says it should [In 1.14.3] - - 12/23 - ----- -test.c - - fix a problem that caused core dumps if a `)' was missing in a - parenthesized expression [In 1.14.3] - -jobs.c - - broke the code the manages the manipulation of the job table and - process status out of flush_child into a new function waitchld() - - flush_child now just calls waitchld() with a parameter that tells - it not to block - - wait_for calls waitchld() with the pid it's looking for and tells - it to block (don't call it with WNOHANG) - - cleaned up wait_for considerably -- turned the wait_loop: label - stuff into a do-while loop and removed the setting of job status - (that's now done only by waitchld). wait_for now calls - waitchld continuously until the job it is interested in is - marked JDEAD. - - 12/28 - ----- -subst.c - - fixed expand_word_internal so that any word that expands into - nothing and contains a double-quoted $@ is removed, like sh - and ksh - - new function: expand_string_for_rhs, which calls expand_word_internal - with a variable that lets it find out whether or not a $@ appeared - in the WORD in ${paramOPword} when expanding it, so that "$@" - and various other things are handled correctly on the rhs - - added params for parameter_brace_expand to tell expand_word_internal - if a quoted $@ was processed as part of the rhs (or even the lhs); - these new params are passed along to parameter_brace_expand_rhs - - pass the right value of quoted to parameter_brace_expand_rhs from - parameter_brace_expand. expand_string_for_rhs doesn't need to know - whether the brace expression is quoted - - 12/31 - ----- -support/printenv - - now an official part of the distribution, moved from CWRU/misc - [in 1.14.3] - -cpp-Makefile - - copy support/printenv into the `tests' directory when making tests - [in 1.14.3] - - change to understand GCC_STANDARD [in 1.14.3] - -support/bashbug.sh - - fixed a typo that caused it to not parse correctly [in 1.14.3] - -machines.h - - define GCC_STANDARD if the standard `cc' is gcc and you don't want - to use the compiler named `gcc' for some reason [in 1.14.3] - - 1/2 - --- -general.h - - added FS_DIRECTORY to the list of flags that file_status returns - -execute_cmd.c - - changed find_in_path_element to return null if the flags argument - specifies FS_EXEC_ONLY and the file is not executable - - return FS_DIRECTORY from file_status if the argument specifies a - directory - - new function, is_directory (char *), which returns non-zero if the - filename argument is a directory - -execute_cmd.h - - extern declaration for is_directory - -flags.c, flags.h - - hashing_disabled and locate_commands_in_functions were removed, - hashing_enabled added - -execute_cmd.c, builtins/common.c. builtins/hash.def - - use hashing_enabled instead of hashing_disabled, and reverse - the sense of tests of it - -documentation/bash.1, documentation/features.texi - - changed description of `set -h/set -o hashcmds', removed - set -d/set -o nohash - -bashline.c - - changed command_word_completion_function to return matches if names - are directories as well as if they are executable files - -support/mksysdefs - - look for `ranlib' in $PATH before searching the file system; - look in /usr/gnu/bin for it; default to `:' if not found - -general.c - - change ansicstr to accept a second argument telling it whether to - recognize \c and to pass back a non-zero value in it if \c is - seen - -general.h - - changed extern declaration of ansicstr - -subst.c - - call ansicstr with an extra argument - - 1/3 - --- -builtins/echo.def - - rewrote to use ansicstr() with the new argument - - 1/4 - --- -trap.c - - changed instances of signal() to set_signal_handler() [in 1.14.4] - - combined reset_signals and restore_signals into a single function, - since they were essentially identical - -subst.c - - if set -u is set, references to the positional parameters now - generate errors if that parameter is not set [in 1.14.4] - -lib/*/Makefile, builtins/Makefile - - since RANLIB can be just `ranlib', just try to run it without - checking that the file exists [in 1.14.4] - -builtins/set.def - - changed `hashcmds' to `hashall' - -documentation/{bash.1,features.texi} - - changed `hashcmds' to `hashall' - - 1/5 - --- -trap.c - - make the loop that restores signal handlers run from signal 0 to - make sure user subshells don't inherit traps on `exit' (to fix - for 1.14.3, change restore_original_signals so that the loop - starts from 0) [in 1.14.4] - -variables.c - - don't import exported function definitions at startup if the - shell is restricted - -builtins/source.def - - don't allow use of pathname arguments containing `/' in a - restricted shell - -execute_cmd.c - - when a shell is spawned to execute a shell script without a - #! line, turn off the -r flag if the shell is restricted - -shell.c - - added a new long option `--restricted' - -documentation/bash.1 - - added a section on the restricted shell, and documented the - new `--restricted' long invocation option - - 1/7 - --- -shell.c - - when using bash -c command, make run_one_command return - last_command_exit_value if a throw_to_top_level with value - EXITPROG occurs [in 1.14.4] - -print_cmd.c - - make sure to initialize arg_index in the non-varargs implementation - of cprintf [in 1.14.4] - -jobs.c - - don't try to change the state of the SIGCHLD handler before - calling waitchld() from wait_for, since SIGCHLD is blocked - while this code is executing [in 1.14.4] - - 1/11 - ---- -lib/readline/rltty.c - - call control_keypad iff the value of a new variable, - _rl_enable_keypad, is non-zero - -lib/readline/bind.c - - new readline variable `enable-keypad' to control whether readline - tries to manipulate the application keypad - -documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo - - documented new `enable-keypad' variable - - 1/12 - ---- -lib/readline/search.c - - make sure to call rl_unix_word_rubout and rl_unix_line_discard - with the correct arguments [in 1.14.4] - -make_cmd.h - - make sure make_select_command is declared even if SELECT_COMMAND - is not defined - -parse.y - - make sure the \[ and \] escape sequences are not recognized if - READLINE is not defined [in 1.14.4] - -config.h - - make sure HISTORY is defined if READLINE is; code moved here - from bashhist.c [in 1.14.4] - -bashhist.c - - removed check for READLINE being defined without HISTORY; now - in config.h - - new function, bash_history_reinit - -flags.h, flags.c, builtins/set.def - - the -H/-o histexpand flag should be compiled into the shell - only if BANG_HISTORY is defined [in 1.14.4] - -subst.c - - don't include sv_histchars unless BANG_HISTORY is defined - [in 1.14.4] - - if QUOTED is true in parameter_brace_expand_rhs, pre-process the - word on the rhs of the parameter expansion by a call to - string_extract_double_quoted with the STRIPDQ parameter set to 1 - - new arg for string_extract_double_quoted; causes it to strip - double quotes and alter its backslash handling behavior; designed - to be called from parameter_brace_expand_rhs - - changed all other instances of string_extract_double_quoted to - call it with STRIPDQ set to 0, to get old behavior - -shell.c - - call bash_history_reinit rather than manipulating history - variables directly - -variables.c - - don't auto-export $BASH [in 1.14.4] - -tests/rhs-exp.tests - - new test script to check for behavior fixed by changes to - string_extract_double_quoted and parameter_brace_expand_rhs - -parse.y - - `for' and `select' must now take non-empty lists between - `in' and `;' - - 1/16 - ---- -subst.c - - fixed string_quote_removal to do double-quoted string processing - itself rather than call string_extract_double_quoted, which - assumes that a call to expand_word_internal or the equivalent - will follow immediately and leaves some backslashes in place, - inappropriately for quote removal - - 1/23 - ---- -subst.c - - make sure to set `temp' to NULL after it's freed by sub_append_string - in expand_word_internal to keep it from pointing to newly-allocated - memory that will be subsequently freed, causing a `memory freed - twice' error [in 1.14.4] - -trap.c - - handle the EXIT_TRAP specially in reset_or_restore_signal_handlers, - since in both cases we simply want to free up the trap string and - mark the signal as not trapped - -shell.h - - added \n to the list of characters in slashify_in_double_quotes - - 1/26 - ---- -subst.c - - make string_extract_single_quoted and string_extract_double_quoted - `inline' - - new function skip_single_quoted, used when we used to call - string_extract_single_quoted and just throw the returned string - away - - new function skip_double_quoted for the same purpose - - 1/28 - ---- -subst.c - - fixed expand_word_internal so that if an assignment word - is expanded, no word splitting is performed [in 1.14.4] - -builtins/ulimit.def - - some systems lack RLIMIT_CPU; so `#ifdef' its use [in 1.14.4] - - some versions of cpp expand parameters like \n if `n' is an - argument to the macro; change `n' to `num' in the definition - of print_rlimtype to compensate [in 1.14.4] - -builtins/read.def - - make sure the read loop sets `saw_escape' to note that an - escape character was read if CTLESC or CTLNUL is read [in 1.14.4] - -shell.c, sig.c - - only test interactive_shell before calling maybe_save_shell_history - [in 1.14.4] -shell.c - - include if HAVE_LOCALE_H is defined - - call setlocale(LC_ALL, "") at the beginning of main() if - either _POSIX_VERSION or HAVE_SETLOCALE is defined - -support/mksysdefs - - look for , define HAVE_LOCALE_H if found - -cpp-Makefile - - pass HAVE_LOCALE_H through from sysdefs.h to the build process - -bashhist.c - - remove test against interactive_shell in maybe_save_shell_history - [in 1.14.4] - -variables.c - - moved definition of DEFAULT_MAIL_PATH to config.h - -config.h, config.h.mini - - now has definition of DEFAULT_MAIL_PATH [in 1.14.4] - - changed default value of PATH to - `/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.' - [in 1.14.4] - -documentation/bash.1 - - updated the example of the default path in the description of - the PATH variable - -lib/readline/readline.c - - set up a table of `legal' LC_CTYPE values and match the value of - $LC_CTYPE against it when deciding whether or not to default to - eight-bit input and output - - check for LC_ALL, LC_CTYPE, and LANG, in that order, for names to - check against the legal_lc_ctype_values table - -lib/readline/bind.c - - moved strindex, stricmp, and strnicmp to lib/readline/util.c, - added _rl_ prefix to names - - some miscellaneous code cleanups and speedups - -lib/readline/rldefs.h - - define _POSIX_VDISABLE as _SVR4_VDISABLE if there is a define - for the latter and not the former [in 1.14.4] - - moved defining _rl_stricmp and _rl_strnicmp as strcasecmp and - strncasecmp, respectively, here from bind.c, since the functions - are now defined in util.c and used in two files - -builtins/common.c - - removed the \n case in double_quote, so a backslash is not added - before an existing newline. The \ pair is removed by - the parser before anything else in the shell gets hold of it - except within single quotes [in 1.14.4] - - 1/30 - ---- -general.c - - make sure the string index in canonicalize_pathname never goes - < 0 (it can, in some cases, result in `start' being -1, and `i' - being set to that) [in 1.14.4] - - 2/1 - --- -execute_cmd.c - - fix a typo in a call to `access' in AFS-specific code [in 1.14.4] - - 2/3 - --- -builtins/shopt.def - - finally added new `shopt' builtin - -builtins/umask.def - - converted to use builtin_getopt - -bashhist.c - - support for storing literal newlines in the history list when - command_oriented_history is enabled, rather than using semicolons - -builtins/Makefile - - changed rule to make a .o file from a .def file to remove the - .c file if the compilation fails - - 2/6 - --- -bashhist.c - - added new variable `force_append_history' that will force the - history list to be appended to the history file at shell exit - - new function, maybe_append_history, to append any history lines - from the current session to the history file. Used by history -a - -builtins/bind.def - - changed the `-d' option to -p - -builtins/set.def - - added `allenv' as a -o synonym for `set -k'. Now all of the - single-letter shell options have -o equivalents - -builtins/shopt.def - - added -p option to display shell options, like other builtins - - added `interactive_comments' as a shell option, like set -o - -builtins/bind.def, builtins/history.def, builtins/enable.def - - changed use of multiple variables to hold option flag settings to - one variable with bits representing flag values - -documentation/bash.1, documentation/features.texi - - changed the description of the `bind' builtin for the new -p option - - changed the description of the `set' builtin for the new - `-o allenv' option - - updated the description of the `shopt' builtin - -builtins/history.def - - changed -a option to use maybe_append_history - -subst.c - - changed the substring/subarray code to make negative offsets - count backwards from the end of the string or array - -builtins/bashgetopt.c - - added option modifiers `;' (argument is optional) and `#' - (argument is optional, but if present must be numeric) - -builtins/hash.def - - converted to use builtin_getopt - - broke code out into a new function: add_hashed_command - - 2/7 - --- -builtins/getopt.c - - changed to save state to avoid relying on `nextchar' staying the - same across calls to sh_getopt [in 1.14.4] - - added a function to restore `nextchar' from this saved state - [in 1.14.4] - - removed some dead code - -builtins/getopts.def - - call function to restore sh_getopt state when parsing explicitly - supplied arguments rather than the positional parameters [in 1.14.4] - -lib/readline/vi_mode.c - - fixed an off-by-one error in _rl_vi_done_inserting that put the - \0 in vi_insert_buf at offset `len' instead of `len - 1' - -lib/readline/complete.c - - print_filename now filters out control characters and displays - them in printable format, rather than relying on the tty driver - to do the right thing [in 1.14.4] - - 2/8 - --- -lib/posixheaders/stdc.h - - test for each special keyword being defined individually, rather - than just testing on `const' [in 1.14.4] - -lib/readline/util.c - - new function _rl_abort_internal; rl_abort just calls this - -nojobs.c - - include error.h for extern function definitions [in 1.14.4] - -builtins/ulimit.def - - include if HAVE_UNISTD_H is defined - - use HAVE_LIMITS_H to decide whether or not to include - -variables.c, subst.c, builtins/set.def - - removed special handling of `noclobber' variable - -builtins/set.def - - new function set_shellopts to set up the $SHELLOPTS variable - based on the values of the set -o options; `set' calls this - function whenever one of the options is changed - - new function parse_shellopts to take the value of SHELLOPTS and - turn on each option found therein - - new function initialize_shell_options to parse any inherited - value of $SHELLOPTS and set up $SHELLOPTS - -shell.c - - call initialize_shell_options at the end of shell_initialize() - -execute_cmd.c, general.c - - moved extract_colon_unit from execute_cmd.c to general.c - -execute_cmd.h, general.h - - moved extern declaration of extract_colon_unit from - execute_cmd.h to general.h - -documentation/{bash.1,features.texi} - - documented SHELLOPTS - - 2/18 - ---- -builtins/{shopt,pushd,jobs,umask}.def - - removed the `longjobs', `longdirs', `pushd_home' and `symbolic_umask' - options - -lib/readline/{histexpand,histsearch,histfile}.c, lib/readline/histlib.h - - new files, split off from old history library history.c - -lib/readline/history.c, lib/readline/history.h - - new function clear_history() to clear the history list - -lib/readline/doc/hstech.texinfo - - documented clear_history () - -builtins/pushd.def - - new function clear_directory_stack() to delete all elements of - the dir stack - - new -c option for `dirs' to clear directory stack - - new function get_dirstack_index for dirs -N and dirs +N to use - - new function get_dirstack_element(i, dir) for use by other parts of - the shell that want the functionality of dirs -N and dirs +N - (dir is 1 for dirs +N, -1 for dirs -N) - - new function set_dirstack_element(i, dir, val) for use by other - parts of the shell to change values in the dirstack (dir is -1 - for dirs -N, +1 for dirs +N). Used when assigning to $DIRSTACK. - -builtins/history.def - - new -c option to clear the history list - -documentation/bash.1, documentation/features.texi - - removed no-longer-valid shopt options - - documented new dirs -c option - - documented new history -c option - - documented new \T and \H prompt escape sequences - - documented new $DIRSTACK dynamic array variable - - documented the new expand-glob and list-glob readline commands - -variables.c - - set PS4 to its default value of `+ ', so that unsetting it will - disable the tracing characters [in 1.14.4] - - new framework for dynamic array variables -- each place an - array index is assigned to, a test is made. if a dynamic - assignment function exists, it is called with args `self', - the index being assigned to, and the new value - - new variable `$DIRSTACK', a dynamic array variable that holds - the current contents of the directory stack. You can even - change the stack by assigning to thie variable - -shell.c - - changed indirection_level_string to return the null string if - $PS4 is unset or null [in 1.14.4] - -parse.y - - new \H prompt escape for hostname up to first `.'; changed \h - to return full hostname (like \w/\W) - - new \T prompt escape for 12-hour time - -bashline.c - - new readline functions to expand glob patterns and insert or - list the expansions (special completion functions) - - - 2/20 - ---- -builtins/pushd.def - - new code for `pushd -n' and `popd -n' to inhibit cd when - adding or removing directories from the stack - - broke functionality off into separate functions for use by the - $DIRSTACK manipulation functions - - 2/21 - ---- -lib/readline/kill.c - - new functions to copy words to the kill ring, backward or - forward - -lib/readline/readline.h - - extern declarations for rl_copy_{backward,forward}_word - - -lib/readline/funmap.c - - new bindable readline commands: copy-backward-word and - copy-forward-word to copy portions of the line to the kill - ring without deleting them - -documentation/{bash.1,readline.3}, lib/readline/doc/hsuser.texinfo - - documented the new copy-backward-word and copy-forward-word - readline commands - -mailcheck.c, config.h - - the declaration of DEFAULT_MAIL_PATH is now only in config.h - and used by mailcheck.c and variables.c. There is no need to - use DEFAULT_MAIL_PATH_LEN; `sizeof' does the job [in 1.14.4] - - 2/22 - ---- -support/mksysdefs - - changes to fix `RELEASE' if it ends up being set to the empty string - [in 1.14.4] - - check for amdahl UTS [in 1.14.4] - - check for SGI Irix version 6.x [in 1.14.4] - -machines.h - - new entry for Amdahl UTS [in 1.14.4] - - changes to the SGI entry for Irix 6.x [in 1.14.4] - - 2/23 - ---- -machines.h - - changes for BSD/OS 2.0 (M_OS now set to `BSD_OS') [in 1.14.4] - -support/mksysdefs - - change to recognize BSD/OS 2.0 and set SYSDEF to BSDI2 [in 1.14.4] - -siglist.h - - don't declare sys_siglist on BSD/OS 2.0 [in 1.14.4] - - 2/24 - ---- -parse.y - - if reset_parser is called while the prompt command is being - executed because of a syntax error in $PROMPT_COMMAND, an - infinite loop results. set token_to_read back to 0 at the - end of execute_prompt_command to stop the looping [in 1.14.4] - - 2/25 - ---- -mailcheck.h - - new header file for mail-checking and related definitions - - declaration of DEFAULT_MAIL_PATH is now here - -mailcheck.c - - new function, make_default_mailpath, which constructs a default - $MAILPATH string from DEFAULT_MAIL_PATH [in 1.14.4] - - change remember_mail_dates to call make_default_mailpath - [in 1.14.4] - -externs.h - - moved function declarations for functions in mailcheck.c to - mailcheck.h - -variables.c - - change initialize_shell_variables to call make_default_mailpath - [in 1.14.4] - - removed some unneeded variables in initialize_shell_variables - - 2/26 - ---- -lib/readline/callback.c - - new file with readline callback function interface - -lib/readline/rlconf.h - - new READLINE_CALLBACKS define for the readline callback code to - be compiled in and available - -lib/readline/readline.c - - broke readline_internal into three functions: readline_internal_setup, - readline_internal_charloop, and readline_internal_teardown - - changes for READLINE_CALLBACKS - -lib/readline/readline.h - - extern declarations for the readline callback code - -cpp-Makefile - - added lib/readline/callback.c to the list of readline files - -lib/readline/input.c - - added a layer of indirection to allow the user to specify the - function that reads a character from rl_instream. The variable - name is rl_getc_function, set by default to rl_getc - - 2/27 - ---- -lib/readline/display.c - - added a variable rl_redisplay_function to allow an application- - specified redisplay function, for those apps that want to control - redisplay - -lib/readline/readline.c - - extern declarations for rl_getc_function and rl_redisplay_function - -lib/readline/{readline,display,isearch,search,parens}.c - - changed to call through rl_redisplay_function rather than - rl_redisplay directly - -parse.y - - try to avoid some work in reset_readline_prompt and prompt_again - if the prompt is the empty or null string [in 1.14.4] - -lib/readline/readline.c - - call rl_expand_prompt unconditionally [in 1.14.4] - -lib/readline/display.c - - short-circuit out of rl_expand_prompt if the prompt string is null - after clearing out the saved local prompt values. This allows - $PS2 to be set to "" [in 1.14.4] - -lib/readline/doc/rltech.texinfo - - documented the callback code and functions - - documented rl_getc_function and rl_redisplay_function - -lib/readline/{callback,readline,rltty,signals}.c - - added layer of indirction for terminal prep and deprep, with - rl_term_prep_function and rl_term_deprep_function. These are - set by default to rl_prep_terminal and rl_deprep_terminal, - respectively - -lib/readline/readline.h - - make rl_term_prep_function and rl_term_deprep_function available - to callers - - 3/1 - --- -lib/readline/complete.c - - broke the (long, complicated) rl_complete_internal code into a - number of separate functions: - - find_completion_word - gen_completion_matches - remove_duplicate_matches - display_matches - insert_text - insert_match - append_to_match - insert_all_matches - - - made some efficiency improvments to filename_completion_function - - the completion ignore function is now called no matter what type - of completion is being performed (as it should have been all along) - -lib/readline/rldefs.h - - use #defines for the possible values ORed into `found_quote' by - the completion code - - 3/2 - --- -make_cmd.c, general.c - - moved make_word_array from make_cmd.c to general.c, renamed to - word_list_to_argv, extended it to optionally not malloc all of - the strings and to reserve space at the start of the array - -execute_cmd.c - - changed to use word_list_to_argv, not mallocing space for the - strings - -builtins/common.c, builtins/common.h - - new function make_builtin_argv, which uses word_list_to_argv - and reserves 1 slot at the beginning for the command name - -builtins/exec.def - - changed to use word_list_to_argv - -builtins/{getopts,test}.def - - changed to use make_builtin_argv - -subst.c - - new function match_pattern_char, to see if the first char of - a string has a chance to match a given pattern (test against - the first char of the pattern); used by match_pattern in the - MATCH_ANY case - - 3/3 - --- -jobs.c - - renamed flush_child to sigchld to capture the functionality better - -array.c - - new function array_pat_subst, to do pattern substitution on each - element in an array - -array.h - - extern declaration for array_pat_subst - -subst.c - - new function pat_subst to do pattern matching and substitution on - a string - - new function parameter_brace_pat_subst to implement - ${v/[/]pat[/sub]}; calls pat_subst for simple vars, - pos_params_pat_subst to do substitution on the positional params, - and array_pat_subst for things like ${v[@]/p/r} - -subst.h - - extern declaration for pat_subst so array.c can find it - - 3/6 - --- -parse.y - - <>filename now dups filename to file descriptor 0 for both input - and output even when not in posix.2 mode - -bashline.c - - add the globbing characters to the list of characters that need - to be quoted by filename completion - -jobs.h - - new convenience macros: - RUNNING, STOPPED, DEADJOB - to test a job's state - IS_FOREGROUND, IS_NOTIFIED, IS_JOBCONTROL - flags - -jobs.c, builtins/{kill,fg_bg}.def - - changed to use new jobs.h macros - - 3/7 - --- -array.c, array.h - - new function dup_array_subrange(a, s, e) to make a new array - out of the elements of array A between S and E, inclusive - - add `quoted' parameters to array_subrange and array_pat_subst - to preserve proper quoting of elements when expanding things - like "${av[@]/xx/yy}" - - new function array_quote to quote the members of an array like - the functions in subst.c - -subst.c - - pass the quoted flag to array_subrange and array_pat_subst - - quote_string is no longer static - -subst.h - - extern declaration for quote_string - -builtins/hash.def - - added a -p pathname option to specify a pathname for the command - name to be hashed. With -p, no path search is performed. - -lib/readline/histexpand.c - - broke history_tokenize off into history_tokenize_internal and - added two arguments: a character index and a word index. If - the char index is >= 0, the word index will be modified to point - into the returned array of strings to the word surrounding that - particular character index - - new function history_find_word(line, ind) to return the word - containing the character at index IND in LINE - - new variable search_match, found by history_find_word, to hold the - word last matched by a !?string? search - - corrected a problem with the `%' modifier: it should insert the - word last matched, not the last search string - - 3/8 - --- -cpp-Makefile - - changed INSTALL_PROGRAM and INSTALL_DATA to use support/install.sh - - changed `install' target to not explicitly save the old version of - bash in `bash.old'; let install take care of it - -shell.c - - new static variable `running_under_emacs', set to 1 if the - variable `EMACS' is in the startup environment, and to 2 if - we're running under the `eterm' terminal emulator - - send an escape sequence to eterm if running_under_emacs is 2 - after executing any $PROMPT_COMMAND to tell it the current - directory - - 3/9 - --- -builtins/ulimit.def - - made getting -u work for systems that have a MAXUPRC define. - it still cannot be set without RLIMIT_NPROC - -shell.c - - include trap.h for sig definitions - -builtins/common.h, subst.h, general.h, externs.h - - more extern function declarations - -bashhist.c - - new function, bash_history_disable(), to turn off history and - history expansion - - bash_history_disable now sets history_expansion_inhibited - -bashline.h - - new file with extern declarations from bashline.c - -parse.y, bashhist.c, builtins/bind.def, subst.c, sig.c - - include bashline.h - - 3/10 - ---- -lib/glob/glob.h - - new file with extern declarations for local glob library - -shell.c - - include glob.h, mailcheck.h - -cpp-Makefile - - changes to dependencies due to mailcheck.h, bashline.h, glob.h - - 3/13 - ---- -execute_cmd.c - - new function execute_connection to execute commands of type - cm_connection - - new function execute_pipeline, to execute pipelines - -lib/readline/rltty.c - - add a `tty' argument to the set_winsize function/macro, the - non-shell version needs it - - 3/14 - ---- -parse.y - - added \a (bell) and \e (escape) prompt string escape sequences - - 3/16 - ---- -lib/readline/display.c - - fixed bug in update_line that caused stray characters to be left on - lines after the first if characters are deleted so that the first - line becomes exactly as long as the screen width [in 1.14.4] - -lib/readline/doc-support - - brought in the GNU getopt because texindex needs it - -documentation/Makefile - - adopted the BSD convention of a suffix of `.0' for formatted - manual pages - - 3/17 - ---- -support/inpath - - a script to find out if a particular command name appears in - a directory in $PATH [in 1.14.4] - -support/mksysdefs - - changed to use inpath to find `ranlib' [in 1.14.4] - - 3/18 - ---- -bashline.c - - include bashline.h - - removed the DYNAMIC_HISTORY_COMPLETION define; that code is now - included unconditionally - - renamed ETCHOSTS to DEFAULT_HOSTS_FILE; moved definition to - bashline.h - - moved definition of BRACE_COMPLETION to config.h - -config.h - - conditional definition of BRACE_COMPLETION is now here - -pathnames.h - - new file with defines that are absolute pathnames - -shell.h - - include pathnames.h - -mailcheck.h - - def of DEFAULT_MAIL_PATH now moved to pathnames.h - -shell.c - - def of SYS_PROFILE moved to pathnames.h - -alias.h - - removed a bunch of extra definitions - -lib/readline/{vi_mode.c,bind.c} - - removed superfluous STATIC_MALLOC code - -variables.c - - removed SHADOWED_ENV code - - 3/20 - ---- -machines.h - - don't define USG or USGr3 for linux machines [in 1.14.4] - - change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf - compatibility - -shell.c - - change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf - compatibility - -support/mksysdefs, maxpath.h - - change HAVE_SYS_PARAM to HAVE_SYS_PARAM_H for autoconf - compatibility - -support/mksysdefs, jobs.h - - use HAVE_SYS_WAIT_H - -machines.h, error.c - - change HAVE_VFPRINTF to HAVE_VPRINTF for autoconf compatibility - -test.c - - replace UID_T and GID_T with GETGROUPS_T, the size of the elements - of the array returned by getgroups - -general.c - - define HAVE_KILLPG if killpg() is present; compile in a replacement - killpg if not - -machines.h, jobs.c - - change BSD_GETPGRP to HAVE_BSD_PGRP - -sig.c - - don't call initialize_siglist if HAVE_SYS_SIGLIST is defined, no - longer use INITIALIZE_SIGLIST - -machines.h, lib/malloc/malloc.c - - change NO_SBRK_DECL to SBRK_DECLARED - - 3/22 - ---- -machines.h - - BSD/OS 2.0 does not need INT_GROUPS_ARRAY in SYSDEP_CFLAGS - -lib/readline/rldefs.h - - don't check `Linux'; just include if HAVE_TERMCAP_H - is defined - -builtins/command.def - - changed get_standard_path to use HAVE_CONFSTR - -execute_cmd.c - - execute_simple_command no longer uses alloca - - don't check RISC6000 anymore when deciding whether to use - #pragma alloca - -execute_cmd.c, shell.c - - check for ultrix instead of Ultrix when calling alloca(0) - -jobs.h - - check HAVE_UNISTD_H to see whether to declare fork, getpid, - and getpgrp - -builtins/common.c - - include for NSIG - -sig.h - - don't define SIGABRT as SIGIOT unless SIGIOT is defined - -jobs.c - - check for ultrix instead of Ultrix - - 3/23 - ---- -general.c, general.h - - new function check_dev_tty, which makes sure we can open - /dev/tty - -shell.c - - call check_dev_tty instead of having the code inline - -posixstat.h - - removed references to isc386 - -general.h - - code to define one of TERMIOS_TTY_DRIVER, TERMIO_TTY_DRIVER, - or NEW_TTY_DRIVER - -jobs.c, nojobs.c - - use the general.h code to define the tty driver types - - 3/24 - ---- -builtins/declare.def - - new -p option to display variables and their values and attributes - `declare -p xxx' displays attribs and value of var `xxx' - -builtins/setattr.def - - new function to display the attributes and value of a particular - variable; used by set_or_show_attributes - - new function to look up a variable by name and show that name's - attributes and value - -builtins/common.c - - declarations for new functions in setattr.def - -variables.c - - don't set a default value for MAILPATH in initialize_shell_variables; - let remember_mail_dates take care of it [in 1.14.4] - -mailcheck.c - - fixed an off-by-one bug in make_default_mailpath [in 1.14.4] - - 3/28 - ---- -[changes for autoconf-generated config files] - -lib/malloc/malloc.c - - use HAVE_GETPAGESIZE, HAVE_BSD_SIGNALS, HAVE_POSIX_SIGNALS - -trap.c - - remove tests for USG and USGr4 - - test on HAVE_POSIX_SIGNALS rather than _POSIX_VERSION - - use MUST_REINSTALL_SIGHANDLERS define to decide whether trap_handler - should call signal again - -getcwd.c - - redid the directory includes for autoconf compatibility - - use HAVE_LSTAT instead of testing for S_ISLNK - - use STRUCT_DIRENT_HAS_D_INO - - include memalloc.h for alloca define - -general.h - - cleaned up strchr, strrchr definitions - - removed tests against USG - - use HAVE_MEMMOVE instead of MEMMOVE_MISSING - -jobs.c - - use HAVE_WAIT3, MUST_REINSTALL_SIGHANDLERS, GETPGRP_VOID - -mailcheck.h - - removed definition of DEFAULT_MAIL_DIRECTORY; now set by - autoconf in config.h - -shell.c - - remove checks on USG, just check for HAVE_GETPW_DECLS - - use C_ALLOCA define - - redid the isnetconn() code using HAVE_SYS_SOCKET_H, - HAVE_GETPEERNAME, SVR4 and SVR4_2 - -general.c - - use HAVE_KILLPG, HAVE_RESTARTABLE_SYSCALLS, HAVE_UNAME, - ULIMIT_MAXFDS, HAVE_TIMEVAL, HAVE_TIMES - -lib/readline/rldefs.h - - redid the tty driver definitions using HAVE_TERMIOS_H, etc. - - don't define anything having to do with signal type - -lib/glob/glob.c - - redid the DIRENT defines and includes - - redid other includes to remove dependencies on USG and system - type (e.g., NeXT) - -builtins/times.def - - changed to use HAVE_GETRUSAGE, HAVE_TIMEVAL, HAVE_TIMES, and - the autoconf way to include and - -builtins/ulimit.def - - changed to use HAVE_GETRLIMIT - - removed test of USG being defined - -siglist.h - - changed to use SYS_SIGLIST_DECLARED, HAVE_UNDER_SYS_SIGLIST, and - HAVE_STRSIGNAL - -print_cmd.c - - use PRINTF_DECLARED - -builtins/command.def - - use HAVE_CONFSTR along with _CS_PATH to get the standard path - -execute_cmd.c - - only compile in execute_shell_script if HAVE_HASH_BANG_EXEC is not - defined - -nojobs.c - - use HAVE_SIGINTERRUPT, HAVE_KILLPG, HAVE_POSIX_SIGNALS, - MUST_REINSTALL_SIGHANDLERS, HAVE_WAITPID, *_TTY_DRIVER defines - -test.c - - set up a new `getmaxgroups' define, moving the code out of inline - - eliminate use of GETGROUPS_T - -variables.c - - use CAN_REDEFINE_GETENV - -sig.c, sig.h - - use HAVE_POSIX_SIGNALS, MUST_REINSTALL_SIGHANDLERS - -pathnames.h - - removed the default mail directory defines; now set by autoconf - -oslib.c - - new file, functions from general.c that are unix-version variable - -general.h - - slightly changed function declarations for use by oslib.c - -support/bashbug.sh - - changed @xxx@ to !xxx! for sed substitutions to avoid conflicts - with autoconf substitutions in the Makefile - - added MACHTYPE variable - -mailcheck.c - - changed DEFAULT_MAIL_PATH to DEFAULT_MAIL_DIRECTORY, since that - more clearly defines its function - -lib/readline/rltty.h - - new file, to include the correct tty driver #include file - -lib/readline/rltty.c - - include rltty.h - -lib/malloc/malloc.c - - make systems with Posix signals block all signals while malloc - is executing - - 3/29 - ---- -input.c - - use off_t as the type of a seek offset, rather that int or long - -variables.c, oslib.c - - moved `getenv' from variables.c to oslib.c - - 3/31 - ---- -sig.c, sig.h - - new function, jump_to_top_level, which just calls longjmp with - top_level as an argument -- here to isolate calls to longjmp - -subst.c - - replaced calls to longjmp with jump_to_top_level - -bashjmp.h - - new file with setjmp/longjmp defines and declarations - -shell.h, nojobs.c - - include bashjmp.h in place of setjmp.h - -shell.c, sig.c, execute_cmd.c, unwind_prot.h, expr.c, -builtins/{return,source}.def - - change to use new defs in bashjmp.h - -subst.c - - make sure PAT and REP in pattern substitution are run through - expand_string_unsplit - -builtins/set.def - - don't try to blindly dereference the value returned by - find_flags in set_shellopts - - 4/2 - --- -aclocal.m4, config.h.in, config.h.top, config.h.bot, configure.in, -support/install.sh, support/config.guess, support/config.sub - - new files for (now official) autoconf-based configuration - -Makefile.in, builtins/Makefile.in, -lib/{doc-support,malloc,glob,termcap,tilde,readline}/Makefile.in - - new Makefiles for autoconf - -[additionally, all source files now include config.h] - - 4/3 - --- -array.c, array.h - - index_t --> arrayind_t, because some systems define index_t in - - - 4/4 - --- -aclocal.m4 - - fix test for broken dup2 - -lib/*/Makefile.in - - make all object files depend on $(BUILD_DIR)/config.h - - 4/5 - --- -array.c - - fixed problems in empty_array: need to reset max_index - and max_size, and remove the links in the element chain - after freeing them - -jobs.c - - new functions to save an array of status values for each - foreground job that exits (degenerate case is to have a - single-process job exit and have a 1-element array) - - new function to set a shell array variable `PIPESTATUS' - which holds the status values from each member of the - last-executed pipeline that spawned children - -documentation/bash.1 - - documented $PIPESTATUS - - 4/6 - --- -configure.in - - added new --with-afs argument to #define AFS for execute_cmd.c - - 4/10 - ---- -builtins/ulimit.def - - use sysconf(_SC_CHILD_MAX) to find the maximum number of child - proceeses per user if HAVE_SYSCONF and _SC_CHILD_MAX are both - defined and RLIMIT_NPROC is not - - 4/12 - ---- -lib/readline/undo.c - - new variable, local to library, to keep track of the number of - `open' undo groups (UNDO_BEGIN without corresponding UNDO_END) - - new function _rl_fix_last_undo_of_type to modify start and end - bounds of last undo record of a specified type - -lib/readline/vi_mode.c - - _rl_vi_done_inserting now calls rl_end_undo_group if the count - of unclosed groups is > 0 - - fixed rl_vi_change_to to save an undo record when redoing and - to fix the buffer corruption when doing `u' undo after a `.' - redo of `C' - - 4/13 - ---- -unwind_prot.h - - changed to use a union { char *s; int i; } when unwind-protecting - integers to force correct alignment on machines where ints and - pointers differ in size - -lib/readline/readline.c - - new variable Keymap rl_executing_keymap, which is set to the - keymap the last function was invoked out of - -lib/readline/bind.c - - new variable Keymap rl_binding_keymap, which is set to the last - keymap a function and key sequence were bound in - - 4/17 - ---- -general.c - - removed xmalloc, xrealloc, xfree to xmalloc.c - -lib/malloc/Makefile.in - - MALLOC and ALLOCA are both set by autoconf - - need to provide some empty stub file to make up the library - in case neither malloc.c and alloca.c are compiled into the - shell - -lib/malloc/gmalloc.c - - new file, GNU libc malloc code - -Makefile.in - - new source file, xmalloc.c, new object file, xmalloc.o - -general.h - - changed type of size argument to xmalloc, xrealloc to `size_t' - -configure.in - - changes for new argument `--with-glibc-malloc' that includes - gmalloc.o in libmalloc.a - - 4/18 - ---- -xmalloc.c - - if malloc or realloc return null, report in the error message - how many bytes have been allocated - -lib/readline/display.c - - changed redisplay code to use an array of positions in the visible - and invisible lines at which to break lines instead of simply - calculating based on the screenwidth and number of invisible - characters. In the future, this will allow newlines embedded in - the lines to display to be handled better - -[Bash-1.14.4 released to net] - - 4/19 - ---- -lib/readline/signals.c - - changed last call to signal() to call rl_set_sighandler() - - 4/20 - ---- -lib/readline/display.c - - changed some ascii-specific code to use CTRL_CHAR and UNCTRL - - finished up the changes that keep an array of line breaks - -shell.h - - moved #define constants for parameter pattern substitution here - from subst.c - -subst.c - - changed the pattern substitution functions to take a `flags' - parameter, which subsumes the match type, global replacement - flag, and quoted variables - - changed the pattern substitution functions to handle the `#' - and `%' match qualifiers, which anchor the match at the - beginning and end of the string, respectively - -shell.c - - moved the code that turns off privileged mode into a function - named `disable_priv_mode' - - if the shell is running setuid or setgid and `-p' is not - supplied, turn off privileged mode and reset the effective - uid/gid - - 4/21 - ---- -subst.c - - added a `quoted' paramter to parameter_brace_remove_pattern; - Posix.2 says that the pattern is parsed differently if the - entire expression is double-quoted - - `getpattern' now takes a second argument, `quoted' - - fixed `getpattern' to correctly handles a pattern spec when - the whole expression is double-quoted. Posix.2 says that - quote characters inside the pattern spec don't quote any - special pattern chars if the whole thing is double-quoted. - For example, the `*' in "${foo#'*'}" is not quoted, and the - single quotes must appear literally. - -Makefile.in - - add `documentation' as a dependency of `.made' - - 4/24 - ---- -Makefile.in - - added `installdirs' target that makes bindir, infodir, mandir, - and man3dir [in 1.14.5 cpp-Makefile] - - 4/25 - ---- -builtins/fc.def - - fixed problem with `fc -l' that occurred when fewer than 16 lines - were in the history list [in 1.14.5] - - 5/1 - --- -Makefile.in, {builtins,documentation}/Makefile.in, lib/*/Makefile.in - - fixed up the various `clean' targets to agree with Gnu coding - standards - - 5/2 - --- -lib/readline/complete.c - - made insert_all_matches correctly quote each of the filenames - inserted into the line, if necessary - -config.h.top - - surround definitions of DEFAULT_PATH_VALUE and STANDARD_UTILS_PATH - with #ifndef/#endif to allow them to be overridden from the command - line - -builtins/set.def - - changed set -o allenv to set -o keyword for ksh88 compatibility - -documentation/{bash.1,features.texi} - - changed set -o allenv to set -o keyword - -builtins/setattr.def - - added a `nodefs' attribute to set_or_show_attributes, - show_var_attributes, and show_name_attributes to inhibit printing - of definition as well as name - -builtins/declare.def - - changed calls to set_or_show_attributes, and show_var_attributes - accordingly - - 5/3 - --- -Makefile.in - - LIBPATH -> LIBSUBDIR - - 5/4 - --- -lib/readline/bind.c - - renamed readline variable meta-flag to be input-meta - -documentation/bash.1, lib/readline/doc/rluser.texinfo - - changed meta-flag to input-meta - -documentation/Makefile.in - - use groff -Tascii to convert .1 -> .0 - -subst.c - - new function, strip_trailing_ifs_whitespace, does the obvious - -builtins/read.def - - call strip_trailing_ifs_whitespace before assigning last - variable to remainder of input string [in 1.14.5] - - 5/5 - --- -builtins/hashcom.h - - changed check_dot member of the PATH_DATA struct to flags, and - added a HASH_CHKDOT define to replace the check_dot semantics - - add HASH_RELPATH define for flags value - -builtins/hash.def, builtins/common.c - - instead of xxx->check_dot, use (xxx->flags & HASH_CHKDOT) - -builtins/hash.def - - if the full pathname to which a command is being hashed does - not begin with a `/', set the HASH_RELPATH flag for it - -builtins/common.c - - if a hashed filename as HASH_RELPATH set, check ./filename, - returning null if that filename is not executable - -execute_cmd.c, general.c, execute_cmd.h, general.h - - moved same_file and check_binary_file from execute_cmd.c to - general.c - -hashlib.c, Makefile.in - - renamed hash.c to hashlib.c - -hashlib.h, Makefile.in, builtins/Makefile.in, alias.h, variables.h, -execute_cmd.c, hashlib.c, builtins/hashcom.h - - renamed hash.h to hashlib.h - -variables.c, alias.c - - removed inclusion of `hash.h'; header files already include - correct file - -Makefile.in - - new rule to remake all the Makefiles (`make Makefiles') - - more changes to adhere to GNU coding standards for the various - flavors of `clean' targets - - 5/8 - --- -documentation/Makefile.in - - use `texi2dvi' to make dvi files rather than tex and texindex - [in 1.14.5] - - don't install `bash_builtins.1' [in 1.14.5] - -Makefile.in - - removed instances of doc-support/texindex - - 5/9 - --- -make_cmd.c - - new function make_bare_word, to make a WORD_DESC from a string but - not to set any of its flags - - broke make_word into make_bare_word and make_word_flags - - fixed a bug in make_word_flags to make backslash-quoting a quoting - character work right to not set the W_QUOTED flags - -subst.c, array.c, execute_cmd.c - - call make_bare_word instead of make_word in situations where we - don't want the flags set inadvertently - - 5/11 - ---- -subst.c - - removed special handling of $POSIX_PEDANTIC - - 5/12 - ---- -shell.c - - broke the code that fetches the uids and gids into a new - function, uidget() - -subst.c - - EUID and UID are no longer handled specially, since they're - readonly - - removed sv_uids function - - merge sv_histfilesize into sv_histsize - -variables.c - - instead of calling sv_uids from initialize_shell_variables, - call uidset() instead - - sv_uids -> uidset with mods to make it faster and avoid an - extra call to free, malloc, and itos - -bashhist.c - - call sv_histsize instead of sv_histfilesize - - 5/13 - ---- -pathexp.c - - moved setup_ignore_patterns here from bashline.c, so GLOBIGNORE - works even when readline is compiled out of the shell - - changed the ignore data structure to a `struct ignorevar', - defined in pathexp.h - - added functions to implement GLOBIGNORE - -bashline.c - - setup_ignore_patterns now in pathexp.c - - renamed _ignore_names to ignore_completion_names - -subst.c - - new function sv_globignore to be called when GLOBIGNORE changes - value - -documentation/{bash.1,features.texi} - - documented GLOBIGNORE - - 5/15 - ---- -documentation/texinfo.tex - - upgraded to version 2.145 from autoconf-2.3 distribution - - 5/16 - ---- -lib/readline/display.c - - delicate surgery on rl_redisplay, update_line, and _rl_update_final - to convert to using the line breaks array instead of assuming that - lines wrap because they're too long and using absolute buffer - positioning calculated from the screen width. Now the `lithist' - shopt option works right - -lib/readline/complete.c - - make sure insert_match doesn't double an opening quote character - after make_quoted_replacement adds an opening quote [in 1.14.5] - - make sure append_match doesn't double a closing quote character - [in 1.14.5] - -quit.h - - new macros: SETINTERRUPT, CLRINTERRUPT, ADDINTERRUPT, DELINTERRUPT - to manipulate the value of interrupt_state - -trap.c, sig.c, jobs.c - - changes to use the new macros from quit.h - -jobs.c - - make an a job that exits due to SIGINT make the shell act as if - it received the interrupt itself, but only if SIGINT is not - trapped [in 1.14.5] - - 5/18 - ---- -builtins/common.c - - fix up find_hashed_filename and the HASH_RELPATH code. still need - to use `shopt -s checkhash' to check the hashed pathnames. could - fix this up more to make that unnecessary in the HASH_RELPATH case - -subst.c - - new function get_array_value that does array subscripting for - things like aa[1], for use by other parts of the shell like the - expression evaluator - -expr.c - - changes to make things like $(( aa[1] + aa[2])) work without - using ${aa[1]} - -bashhist.c - - converted the HISTIGNORE code to use the `struct ignorevar' - framework, with a callback function histignore_item_func to - set the HIGN_EXPAND flag if needed - -pathexp.c - - made the `globignore' variable static - - redid the code that removes ignored names from the `names' array - in ignore_globbed_names to make it more efficient - -bashline.c - - made the `fignore' variable static - - 5/20 - ---- -Makefile.in - - made the `distclean' target remove the Makefiles in subdirectories - created by autoconf - - 5/22 - ---- -builtins/command.def - - don't allow `command -p' if the shell is restricted - -documentation/bash.1 - - documented the restriction on command -p for rbash - - 5/23 - ---- -aclocal.m4 - - add a new macro BASH_CHECK_TYPE, based on AC_CHECK_TYPE, that - allows the caller to specify the header files to be included - in the test program and provides for a default value to be - defined if the type is found in the system files - -configure.in - - check for getrusage and gettimeofday functions/syscalls - - use BASH_CHECK_TYPE to check for clock_t in sys/types.h and - sys/times.h - - use BASH_CHECK_TYPE to check for sigset_t instead of a special - BASH_TYPE_SIGSET_T - - use BASH_CHECK_TYPE to check for quad_t instead of BASH_QUAD_T - - new argument --enable-command-timing to compile in the `time' - reserved word and command timing - -general.c - - print_time_in_hz takes a `clock_t', not a `time_t' - -execute_cmd.c - - support for timing pipelines with a new function time_command - - execute_command_internal calls time_command if it is passed a - command with the CMD_TIME_PIPELINE bit set in command->flags - - new functions difftimeval and addtimeval to do arithmetic on - timeval structs with overflow - -parse.y - - new production: pipeline_command, used by list1 and simple_list1 - - pipeline_command includes rules to handle `!' and time - - code to recognize `time' as a reserved word - -print_cmd.c - - new code to print `time ' before a command if the CMD_TIME_PIPELINE - flag bit is turned on - -builtins/test.def - - added description of string1 < string2 and string1 > string2 to - the long doc - -test.c - - added `<' and `>' string binary operators - -documentation/bash.1 - - documented the `time' reserved word and command timing - - documented the new test `<' and `>' binary operators - -documentation/features.texi - - documented the `time' reserved word and command timing - - added more to the section detailing the differences between bash - and sh - - added descriptions of LINENO and ENV to the Ksh variables section - - added description of echo to bash builtins section - - added PPID, BASH, SHLVL to the Bash variables section - -subst.c - - added a `quoted' parameter to extract_dollar_brace_string; changed - all calls to it - - 5/24 - ---- -builtins/let.def - - wrote code for an `exp' builtin that treats all of its arguments - as an expression, concatenates them like `eval', and runs the - expression evaluator - -expr.c - - added code to do the Posix.2 conditional operator: expr?expr:expr - - added a `noeval' flag to suppress evaluation. currently it only - suppresses assignment - - added code to the && and || functions so that evaluation is - suppressed in the part of the statement that is not supposed to - be executed (a && b: set noeval if a is false; a || b; set - noeval if a is true) - - 5/25 - ---- -documentation/{bash.1,features.texi} - - documented new `expr?expr:expr' conditional expression syntax - now arithmetic evaluation is Posix.2-conformant - -lib/readline/readline.c - - added several more locale names to the list of legal $LANG - values - -subst.c - - fixed a bug in parameter_brace_patsub: when replacing a string - with nothing, rep was set to "", and the code attempted to - free "", which the GNU malloc upchucked on - -bashhist.c - - just add a line to the history if command_oriented_history is - set to 1 and the current line in the command is > 1; don't - even bother checking history_ignore - -parse.y - - new variable `two_tokens_ago' to remember the token read before - `token_before_that' - - fix to history_delimiting_chars to make sure that no semicolon - is added after `()' (assume its a function definition), but that - a semicolon is added after other `)' (assume its a parenthesized - command) - - 5/31 - ---- -tests/run-all - - put `.' first in $PATH and don't export ENV - - set THIS_SH to ../bash if it's unset - -lib/readline/complete.c - - only try to find a word break character in rl_complete_internal - if we hit the end of the input string and found_quote == 0 - (the opening quote could have been the last character in the - string) - - 6/2 - --- -subst.c - - changed make_quoted_char to return CTLNUL\0 if passed a \0 - (this is what quote_string does, too) [in 1.14.5] - - changed list_string to use make_quoted_char when adding a quoted - null argument due to a null field when ifs != ' \t\n' - - added an `expandpat' argument to getpattern, which tells it to - call string_extract_double_quoted if the pattern expression is - double-quoted, and changed all calls to initially pass `1' as - its value - -jobs.c - - changed start_job so that an attempt to start a job marked as - JDEAD elicits an error message [in 1.14.5] - -Makefile.in - - fixed `distclean' target so that it removes Makefiles in subdirs - *after* descending into them to do submakes (!) - - fixed `realclean' target to remove everything that distclean does - - 6/5 - --- -builtins/declare.def - - fixed a typo that made `declare +r var' turn off read-only status - for a variable [in 1.14.5] - - added -p option to short doc and long doc - - added code to allow `declare -f -options name' to set and unset - attributes for the named functions. Only when no other options - are supplied will the named and value of the function be displayed - [in 1.14.5] - -variables.h - - new SETVARATTR macro to set or unset attributes for a specific - SHELL_VAR * - -builtins/setattr.def - - use SETVARATTR - - 6/7 - --- -execute_cmd.c - - moved the retrieval of $PS3 inside the loop in execute_select_command - so that PS3 can be modified in the select command's body - [in 1.14.5] - -execute_cmd.c - - changed execute_builtin and execute_function to not set - builtin_env and function_env, respectively, to NULL if there is - no temporary env. This makes the temp env persist across calls - to functions from other functions [in 1.14.5] - -configure.in - - Linux needs LOCAL_LDFLAGS set to -rdynamic - - 6/8 - --- -general.c - - canonicalize_pathname should not attempt to interpret backslash - quoting `/', since Unix doesn't really allow it [in 1.14.5] - -bashline.c - - added `\', `!', and `)' to the list of characters which - cause filenames to be quoted - - changed bash_quote_filename to use any of the three shell - quoting styles based on the value of a variable, - completion_quoting_style - - if *qcp is not 0 when passed to bash_quote_filename, adjust the - type of completion we're doing based on its value (i.e., - *qcp == '"' forces double quoting, *qcp == '\'' forces single) - - bash_quote_filename now leaves the quotes intact in the filename - it returns. The readline completion code takes care of avoiding - doubled open quotes - - if a filename containing a `!' is passed to bash_quote_filename - without an opening quote character, and we are performing history - expansion, use single quoting as the quoting style - -bashhist.c - - changed bash_history_disable to not call bash_history_reinit(0), - but do what it needs to directly - - new function bash_history_enable - - make history_expansion_inhibited exist only if BANG_HISTORY - is defined - -bashhist.h - - extern declaration for bash_history_enable - -lib/readline/complete.c - - make make_quoted_replacement set should_quote to 1 if the quote - character is `'' as well as if it's `"' - -test.c - - added the csh-like `=~' and `!~' pattern-matching binary operators - which match the string on the lhs against the shell pattern on - the rhs. PATTERN_MATCHING must be defined for this to work; it is - undefined and undocumented by default - -jobs.c - - broke the code that gets the new window size and sets $LINES and - $COLUMNS out of sigwinch_sighandler into a new function, - get_window_size, which sigwinch_sighandler calls - - 6/12 - ---- -parse.y - - new function, pop_expansion, to remove the top string on the - expanded token stack - - renamed save_expansion to push_expansion - -lib/readline/complete.c - - fixed a bug in find_completion_word that tested found_quote - instead of quote_char when trying to decide if we have an unclosed - quoted string [in 1.14.6] - - 6/26 - ---- -subst.c - - fixed expand_word_internal to remove all traces of $*, even if - it's quoted, if there are no positional parameters and there are - other characters in the expansion - -bashline.c - - don't attempt hostname completion if multiple consecutive `@' - characters appear - - 6/27 - ---- -shell.c - - initialize top_level early, and exit if a longjmp sends us there - before we reinitialize - -subst.c - - more fixes to expansion of quoted $* when no positional parameters - - broke the code that assigns a value to an array element (and parses - the array element reference) into a new function, - do_array_element_assignment - -builtins/read.def - - new function, bind_read_variable, to allow binding simple variables - and array elements to strings read (uses do_array_element_assignment) - - changed occurrences of bind_variable to bind_read_variable where - it matters - -variables.c - - tentative change to bind_variable to make x=y the same as x[0]=y - if x is already an array variable. This works for `read' as well. - This is what ksh does. - - 6/28 - ---- -alias.h - - added a `flags' member to the ASSOC struct and renamed it to - `alias_t' - -alias.c, bashline.c, builtins/alias.def, builtins/type.def - - changed ASSOC to alias_t - -alias.c - - changed add_alias to set the AL_EXPANDNEXT flag when the alias is - inserted into the hash table - -parse.y - - added a third parameter to push_string: a pointer to the alias_t - that is being expanded - - push_string marks the alias it's passed as being expanded - (AL_BEINGEXPANDED) - - pop_string marks the alias being popped as no longer being - expanded - - changed shell_getc to defer popping an alias expansion until - the parser has had a chance to catch up, since the parser reads - ahead and would cause the expansion to be popped before it - fully parsed the expanded string - - changed alias_expand_word to check the AL_BEINGEXPANDED flag - instead of the expanded_token_stack when checking whether an - alias is already being expanded - -oslib.c - - make the definition of bzero be surrounded by #ifdef HAVE_BZERO - rather than lumping it in with bcopy - -configure.in - - add a test for bzero - -config.h.in - - add a template for HAVE_BZERO - - 7/3 - --- -builtins/set.def - - added new meaning for `set +o' without options, as per the latest - draft of Posix.2. It means to list -o options as a series of set - commands to recreate the current settings - -documentation/bash.1 - - augmented description of the `set' builtin - - 7/6 - --- -jobs.c - - make sure that temp_handler is not set to SIG_DFL before calling - it from waitchld - -builtins/cd.def - - rewrote cd_builtin to make the code flow clearer - - broke full directory name construction out into a separate - function: mkpath - - cd_builtin now tests that a directory constructed from a $CDPATH - entry is actually a directory before trying to chdir to it - - added an error message if $HOME is not set - - added a descriptive error message if `cd -' used and OLDPWD unset - - changed the error messages to use builtin_error, not file_error - - moved the code at the bind_and_exit label into a function, - bindpwd (no_symlinks) - - Posix.2 says that when using $CDPATH, the resultant value of PWD - should have no symlinks - - 7/7 - --- -input.c - - if fd_to_buffered_stream fails in some way and returns a NULL - buffered stream, with_input_from_buffered_stream uses a function - that does nothing but return EOF as the `getter'. This keeps - the shell from crashing if invoked with fd 0 closed - -subst.c - - made the `quoted' parameter to expand_word_internal into a flags - word with flag values defined in shell.h. Each place where - `quoted' is tested for a non-zero value was changed to test - (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) != 0 instead - -mailcheck.c, shell.c, parse.y - - change calls to the expand_string* functions to pass an explicit - Q_DOUBLE_QUOTES where appropriate - - 7/9 - --- -subst.c - - getpattern now passes Q_NOQUOTE to expand_word_internal, indicating - that quotes in the pattern spec are not to be treated specially - - 7/12 - ---- -jobs.c - - fixed up the MUST_UNBLOCK_CHILD code in wait_for so that it now - unblocks all signals and sets the signal handler for SIGCHLD to - SIG_DFL. pre-v4 SCO machines seem to require this [in 1.14.5] - -[Bash-1.14.5 released to net 7/16] - - 7/17 - ---- -documentation/features.texi - - changed the Bourne Shell builtins section to have the same format - as the bash builtins section, with usage synopses - - added a section on the restricted shell - - 7/18 - ---- -documentation/features.texi - - changed the name of this document to the Bash Reference Manual - - added sections on POSIX mode and restricted shell - -lib/readline/doc/hsuser.texinfo - - added the text from the bash manual page about the bash history - facilities if BashFeatures is set - - 7/19 - ---- -documentation/features.texi - - added more stuff to the bash basics section - -lib/readline/doc/rluser.texinfo - - added a sample inputrc file - - 7/20 - ---- -documentation/features.texi - - added section on shell expansions to bash basics section - -builtins/Makefile.in, lib/glob/Makefile.in, lib/malloc/Makefile.in, -lib/readline/Makefile.in, lib/termcap/Makefile.in, lib/tilde/Makefile.in - - ar is now called with flags `cr' when building libraries - - 7/21 - ---- -lib/readline/complete.c - - fixed a bug in find_completion_word that resulted in the found_quote - flag and the delimiter character not being passed back to the - caller (tested (*fp) instead of (fp) before assigning found_quote; - similarly for dp). With this fix, the filename dequoting function - is properly called - - 7/25 - ---- -general.c - - renamed bash_tilde_expand to bash_tilde_expansion_failure_hook - - new function, bash_tilde_expand, that just sets interrupt_immediately - and calls tilde_expand, returning what tilde_expand returns - -subst.c, general.c, shell.c, execute_cmd.c, variables.c, bashline.c, -builtins/cd.def - - changed calls to tilde_expand to calls to bash_tilde_expand instead - - 7/27 - ---- -builtins/set.def - - added a -o history option to enable and disable command history - saving. This uses bash_history_enable() and bash_history_disable() - It's keyed off of remember_on_history. With this, shell scripts - can use the command history - -bashhist.c - - bash_history_enable now calls sv_history_control and sv_histignore - -builtins/fc.def - - if history_list() returns a null pointer, immediately return - [in 1.14.6] - -documentation/{bash.1,features.texi}, lib/readline/doc/hsuser.texinfo - - added a description of the `set -o history' option and changed - text to refer to it rather than strictly interactive shells - - 8/1 - --- -variables.c - - new builtin variable $HOSTNAME, initialized to current_host_name - as set in shell.c - -documentation/bash.1, documentation/features.texi - - documented $HOSTNAME - - 8/3 - --- -support/texi2html - - new program, a texinfo-html converter - -documentation/Makefile.in - - added directives to produce features.html from features.texi - -MANIFEST.doc - - added features.html and features_toc.html to the doc distribution - - 8/10 - ---- -lib/readline/bind.c - - new functions rl_variable_dumper and rl_dump_variables to print - readline variables and their values to rl_outstream - - new functions rl_get_keymap_name and rl_get_keymap_name_from_edit_mode - to get the name of the current keymap for the variable dumper - -lib/readline/readline.h - - extern declarations for rl_variable_dumper, rl_dump_variables, and - rl_get_keymap_name - -builtins/bind.def - - added -V flag to print variable names and bindings - - added -P flag to print variable names and bindings in the syntax - of the inputrc file - -lib/readline/funmap.c - - added new bindable `dump-variables' readline command - -documentation/{bash.{1,html},readline.3,features.html}, -lib/readline/doc/rluser.texinfo - - documented new `dump-variables' readline command - -documentation/{bash.{1,html},features.{texi,html} - - documented new bind -P and -V options - -documentation/bashbug.1 - - new manual page - -documentation/Makefile.in - - changes to build and install bashbug.1 - - 8/15 - ---- -print_cmd.c - - new function `xprintf' that just calls vfprintf(stdout, ...) - to avoid having to declare printf - -parse.y - - slight change in how read_token_word computes `all_digits' - - 8/21 - ---- - -subst.c - - new function dequote_escapes to remove CTLESC escaping - CTLESC and CTLNUL in a string, returning a new string - - 8/25 - ---- -shell.c - - execute the file SYS_BASHRC for interactive shells if SYS_BASHRC - is defined, before executing ~/.bashrc - -config.h.top - - add a dummy commented definition for SYS_BASHRC, defaulting to - /etc/bash.bashrc - -lib/readline/input.c - - added code to call select() in rl_gather_tyi() and return - immediately if it indicates that there is nothing to read on - the readline input fd (#ifdef HAVE_SELECT) - -lib/posixheaders/posixdir.h - - new file to localize the / and dirent/direct - mess - -posixdir.h, lib/readline/posixdir.h - - symlinks to lib/posixheaders/posixdir.h - -lib/readline/rldefs.h - - removed the posix dir includes and defines - -lib/readline/complete.c, getcwd.c - - include posixdir.h rather than having the code inline - -builtins/cd.def - - new code to do spelling correction on the directory name - modified from patch sent by Neil Russell (caret@c-side.com) - - 8/29 - ---- -builtins/shopt.def - - new option `cdspell' to toggle cd directory name spelling - correction - -documentation/{bash.{1,html},features.texi} - - documented new shopt `cdspell' option - - 9/5 - --- -subst.c - - $'' should expand to the same thing as '' (a quoted null string) - -shell.h - - changed CTLNUL to '\177'; some scripts use ^B for things like IFS - [in 1.14.6] - - 9/7 - --- -support/config.guess - - added code to identify a PPC running Solaris 2 - -doc - - new directory replacing documentation - -Makefile.in, MANIFEST, MANIFEST.doc, configure.in - - replaced `documentation' with `doc' - - 9/8 - --- -lib/readline/display.c - - fixed the code in _rl_update_final that decides whether or not the - cursor is at character position 0 on an otherwise-empty line and - adjusts _rl_vis_botlin accordingly - - 9/13 - ---- -general.c - - fixed canonicalize_pathname to make sure that intermediate - results correspond to directories before blindly chopping - off the last component when we see a `..'. This fixes the - `cd ../.../..' being equivalent to `cd ..' problem - -subst.c - - fixed make_named_pipe so that mkfifo is called with mode 0600 - for security reasons [in 1.14.6] - - changed the /dev/fd version of add_fifo_list to zero out new - entries to the fifo_list when it resizes it larger [in 1.14.6] - - changed make_dev_fd_filename to use DEV_FD_PREFIX - -aclocal.m4 - - changed BASH_HAVE_DEV_FD to check for /proc/self/fd and define - DEV_FD_PREFIX to either "/dev/fd/" or "/proc/self/fd/" as - appropriate - - 9/14 - ---- -lib/readline/display.c - - when displaying the first line of a multiline prompt, make sure - that the final \n is followed by a \r (outputting one if necessary) - so that we know we are starting at column 0 - -variables.h - - new attribute: att_local - -variables.c - - changed make_local_variable to set the att_local attribute - - changed makunbound to just make variables marked as `local' in - the current context invisible. This makes the local variable - persist throughout the function even if it is unset, so a - subsequent assignment preserves the `local' attribute - - changed kill_all_local_variables to unset the att_local attribute - before calling makunbound - - 9/18 - ---- -lib/readline/complete.c - - make sure the cursor is on the last line of a possibly-multiple- - line command line before listing the completions in - display_matches - - 9/19 - ---- -braces.c - - fixed the non-SHELL case in brace_gobbler so the loop exits when - it should - -lib/readline/bind.c, lib/readline/readline.h - - added functions to dump key sequences bound to macros and their - values - -builtins/bind.def - - added -S and -s options to dump the readline macros and their values - - changed the options so that -p and -P dump functions, -v and -V - dump variables, and -s and -S dump macros (s for string) - -doc/{bash.{1,html},readline.3,features.texi}, lib/readline/doc/rluser.texinfo - - added documentation for the new `bind' options - - added documentation for the new readline functions to dump macros - and the key sequences that output them - - 9/22 - ---- -print_cmd.c - - new function xtrace_print_word_list (WORD_LIST *) to print the - words of a simple command when set -x is on. This prints '' - when it encounters an empty string - -externs.h - - new extern declaration for xtrace_print_word_list - -execute_cmd.c - - call xtrace_print_word_list in execute_simple_command - - 9/25 - ---- -builtins/getopts.def - - make sure that the loop counter stops at 10 when stepping through - the dollar_vars array to count the number of positional parameters - [in 1.14.6] - - 9/30 - ---- -lib/readline/histsearch.c - - fixed history_search_internal to bail immediately if it gets a - null or empty search string. This fixes the !? core dumps. - [in 1.14.6] - - 10/3 - ---- -lib/readline/histexpand.c - - if there is a null string given with a !? search specifier, use - a previous search string if one exists, else fail immediately - -trap.c - - made run_exit_trap preserve $? around the call to execute the - trap string, unless the trap string contains an `exit' - command, in which case it can set the shell's exit status - [in 1.14.6] - - In other words: - - touch /tmp/z - trap 'rm /tmp/z ; exit 5' 0 - exit 1 - - exits with status 5; while - - touch /tmp/z - trap 'rm /tmp/z' 0 - exit 1 - - exits with status 1 - -subst.c, parse.y - - moved the $'...' code from subst.c to parse.y, more like ksh - does it - -doc/bash.1, doc/bash.html, doc/features.texi - - moved the description of $'...' from the expansion section to - the quoting section - - 10/4 - ---- -command.h - - added a `line' member to the function struct for the source line - the function definition starts on - -make_cmd.c - - initialize the `line' member in Function_def to 0 - - make_function_def takes a third parameter telling which line the - function definition started on and a fourth telling which line - the function body started on - -make_cmd.h - - changed prototype for make_function_def - -parse.y - - new variable `function_dstart', set by read_token and read_token_word - to keep track of where a function definition begins - - new variable `function_bstart' to keep track of where function - body begins - - pass function_dstart and function_bstart to make_function_def - - new function strtrans to do the $"..." locale-specific translation - of `...' - - call strtrans() to translate $"string". The translated string is - double-quoted - -doc/bash.{1,html} - - updated the description of LINENO now that line numbers within - functions are correct - -configure.in - - look for the `gettext' library function - -config.h.in - - define HAVE_GETTEXT if gettext(3) exists in a findable library - - 10/5 - ---- -builtins/common.c - - changed backslash_quote so that `#' is only quoted at the start - of a word - - new function contains_shell_metas returns 1 if the argument - string contains one or more shell meta-characters that require - quoting - -builtins/common.h - - extern declaration for contains_shell_metas - -print_cmd.c - - changed xtrace_print_word_list to print words containing - shell metacharacters within single quotes - -lib/termcap - - upgraded to GNU termcap version 1.3 - - 10/9 - ---- -lib/readline/readline.c - - call setlocale(LC_CTYPE, ...) after finding a legal value for - one of LC_ALL, LC_CTYPE, or LANG - - 10/11 - ----- -lib/readline/search.c - - make rl_history_search_internal just do previous-history or - next-history as appropriate when given a null search string - (rl_point == 0) - - 10/24 - ----- -subst.c - - fixed an off-by-one error in char_is_quoted that skipped a - characters after calling skip_single_quoted or skip_double_quoted - [in 1.14.6] - - fixed an off-by-one error in string_extract_verbatim so it - leaves *sindex at the separator character if the separator - character is "'" [in 1.14.6] - - 10/27 - ----- -parse.y - - in CHECK_FOR_RESERVED_WORD, make sure that reading a `}' - decrements open_brace_awaiting_satisfaction if it is non-zero - [in 1.14.6] - -shell.c - - don't run the shell startup files if the shell is running - setuid - - don't source $ENV if the shell is running setuid - -variables.c - - new parameter to initialize_shell_variables: no_functions. If - non-zero, don't import functions from the environment - -variables.h - - change to function prototype for initialize_shell_variables - -lib/readline/complete.c - - fix for the code that decides whether or not a char is quoted for - applications that don't supply a value for rl_char_is_quoted_p - - fixed insert_match to not remove a user-supplied opening quote - character if make_quoted_replacement does not return a string - beginning with that quote character - - 11/2 - ---- -general.c - - new function ungetc_with_restart that handles the local buffering - [in 1.14.6] - -parse.y - - changed yy_stream_unget to call ungetc_with_restart if the OS - does not have restartable syscalls [in 1.14.6] - - 11/3 - ---- -bashline.c - - rewrote _ignore_completion_names to actually free and remove - names from the array if more than one names in the array - passed is acceptable, instead of just bailing [in 1.14.6] - - 11/7 - ---- -bashline.c - - if no matches are acceptable to _ignore_completion_names, - free the entries in NAMES, set NAMES[0] == 0, and let the - caller clean up [in 1.14.6] - - fixed a problem with backslash-quoted characters in - bash_dequote_filename that caused the character after the - backslash to be interpreted - - bash_dequote_filename now takes a quote_char parameter that, - if non-zero, gives the quote character (`'' or `"') that - delimits the filename. Used to initialize the quoting state - -lib/readline/complete.c - - if the completion ignore function returns with MATCHES == 0 - or MATCHES[0] == 0, ring the bell and quit the completion - attempt [in 1.14.6] - - pass quote_char to gen_completion_matches so it can pass it - along to the app-specific filename dequoting function - - have gen_completion_matches pass quote_char to whatever function - is pointed to by rl_filename_dequoting_function - -pathexp.c - - rewrote ignore_globbed_names to be more like _ignore_completion_names - -lib/readline/doc/rltech.texinfo - - updated documentation for rl_filename_dequoting_function - - 11/10 - ----- -subst.c - - fixed remove_quoted_nulls so that it is now a full function that - removes unquoted CTLNUL chars from the string it is passed - [in 1.14.6] - - fixed expand_word_internal to avoid generating some unneeded - quoted nulls (if the string is partially quoted, note that we - have seen a quoted null and add one if the rest of the string - doesn't expand to anything) - - 11/13 - ----- -variables.c - - bind HOSTTYPE, OSTYPE, and HOSTNAME unconditionally - -pathexp.c - - new function quote_globbing_chars, adds `\' before globbing - chars in its string argument, returns new string - -pathexp.h - - extern declaration for quote_globbing_chars - -bashhist.c - - if the previous line contains globbing chars, run it through - quote_globbing_chars before trying to match. This affects - only HISTIGNORE patterns containing `&' - - 11/14 - ----- -bashhist.c - - if the history line to be added contains globbing chars, quote - them with backslashes by calling quote_globbing_chars in - history_should_ignore before comparing them against the - patterns in HISTIGNORE - -bashline.c - - make sure that we erase the current readline line after running - fc on it and executing the resultant commands in - vi_edit_and_execute_command, so the original readline line - doesn't get returned [in 1.14.6] - -jobs.h - - added a new job listing format: JLIST_NONINTERACTIVE -- like - JLIST_LONG, but does not print the job number - -jobs.c - - added code to pretty_print_job to handle JLIST_NONINTERACTIVE - - call notify_and_cleanup() from wait_for even if the shell is - running a script (interactive_shell == 0) - - changed notify_and_cleanup to call notify_of_job_status if - interactive or interactive_shell == 0, so scripts report - about jobs they run - - changed notify_of_job_status to call pretty_print_job with a - JLIST_NONINTERACTIVE format if interactive_shell is 0 and a - job is marked JDEAD, after printing the script name and line - number. This message is printed only if the job dies due to - a fatal signal - -support/mkversion.c - - added support for a `-status status' argument to set the - `release status' of the shell (alpha, beta, or release). It - defines `RELSTATUS' in version.h and changes the definition - of SCCSVERSION, if present - -Makefile.in - - set a RELSTATUS variable that is included when printing the build - message and passed to mkversion with the -status option - - make RELSTATUS one of the variables sed sets when it creates - bashbug from support/bashbug.sh - -version.c - - added a `release_status' variable that's set to RELSTATUS if - it's defined - -support/bashbug.sh - - added the `RELSTATUS' variable to the report with heading - `Release Status' - - set the bug address to chet@po.cwru.edu if the release status - is `alpha' or `beta' - - 11/15 - ----- - -shell.c, execute_cmd.c - - new variable expand_aliases to control alias expansion. For now, - this is set to the same value as interactive_shell when that is - set - -parse.y - - perform alias expansion if expand_aliases is non-zero rather than - checking the value of interactive_shell - - 11/16 - ----- -builtins/shopt.def - - new option `expand_aliases' to control the value of expand_aliases - -doc/bash.1, doc/bash.html - - updated the description of `shopt' with the `expand_aliases' option - - 11/28 - ----- -bashline.c - - if there is only one completion in _ignore_completion_names, see - if it is acceptable and return right away [in 1.14.6] - -configure.in - - change to define WAITPID_BROKEN on SCO 3.2v5 - - 12/6 - ---- -parse.y - - call prompt_again in read_token_word if a newline is read in an - interactive shell and bash_input.type is either st_stdin or - st_stream - - remove superfluous call to reset_readline_prompt in yy_readline_get - - 12/7 - ---- -parse.y - - combine delimiters, delimiter_depth, and delimiter_space into a - single structure of type `struct dstack' - - replace all references to delimiter* with dstack.delimiter* - - include parser.h for struct dstack - - new define pop_delimiter(), analogous to push_delimiter - - current_delimiter, push_delimiter, and pop_delimiter defines now - include the delimiter stack struct as the first parameter - -parser.h - - now includes definition of struct dstack - -bashline.c - - include parser.h for struct dstack - - refer to dstack.delimiter_depth instead of delimiter_depth - - 12/12 - ----- -execute_cmd.c - - before doing a longjmp(subshell_top_level,...) when executing a - shell script without a leading #!, set history_lines_this_session - to 0 to forget about the history and not save it on an exec - (we don't free the memory with clear_history(), though -- that - would slow bash down) - - 12/14 - ----- -jobs.c, nojobs.c - - cause the sigwinch handling code to be compiled into the shell - even if READLINE is defined - - new functions: set_sigwinch_handler and unset_sigwith_handler - to enable and disable catching of SIGWINCH and adjusting $LINES - and $COLUMNS - - changed initialize_job_signals to install a signal handler for - SIGWINCH with set_sigwinch_handler - -jobs.h - - extern declarations for set_sigwinch_handler and - unset_sigwinch_handler - - 12/20 - ----- -doc/bash.{1,html}, doc/readline.3, lib/readline/doc/rluser.texinfo - - documented the readline `visible-stats' variable - - 12/21 - ----- -trap.c - - new global variable `running_trap' incremented and decremented - around running a trap command in _run_trap_internal - -execute_cmd.c - - new variable currently_executing_command, set to the COMMAND * - currently being processed by execute_command_internal, unless a - trap command is being run (running_trap != 0) - - new function executing_line_number, which returns the line number - of the currently executing command (which may not be the same as - line_number) - - don't run the debug trap if it was not set before the current - simple command was executed, since we don't want to run it after - the trap command that sets the DEBUG trap - -variables.c - - new function assign_lineno, to assign a value to line_number - when LINENO is set - - changed get_lineno to call executing_line_number() rather than - returning line_number - -parse.y - - new argument for push_stream telling it whether or not to reset - line_number to 0 - -builtins/common.c - - change to parse_and_execute to call push_stream with an argument - - 12/29 - ----- -subst.c - - set subshell_environment in command_substitute and process_substitute - for the child process - - 1/2 - --- -trap.c - - made decode_signal recognize signal names case insensitively - -shell.c - - make the shell exit on a longjmp (DISCARD, ...) if - subshell_environment is non-zero - - 1/16 - ---- -lib/readline/histexpand.c - - let the `!' in ${!xxx} pass through without error - -shell.c - - new --help long option - - new function show_shell_usage() for use by --help - - 1/19 - ---- -parse.y - - changes to shell_getc to make sure that lines consisting of only a - newline get added to the history correctly when they are part of - a quoted string - - 1/24 - ---- -aclocal.m4, configure.in - - added a check for -lsocket (and -lnsl) to fix solaris problems - with isnetconn() - -shell.c - - rearranged the code in isnetconn to check for a socket using - getpeername() first, before any SVR4 or SVR4.2-specific checks - - added checks for ttys (isatty) and FIFOs (S_ISFIFO) to the - SVR4/SVR4.2 case of isnetconn() - -general.h - - new macro RESIZE_MALLOCED_BUFFER to check and see whether there - is enough room in a string to add a given number of characters - and to resize it if there is not - - 1/25 - ---- -parse.y, general.c, subst.c, bashhist.c, alias.c, array.c, variables.c - - use RESIZE_MALLOCED_BUFFER where appropriate - - 1/26 - ---- -support/config.{guess,sub} - - merged in latest changes from GNU master copies - - 1/30 - ---- - -jobs.c - - make sure to freeze the jobs list when calling a trap handler - for SIGINT - - added code to waitchld() so that a SIGINT trap handler is called - if the shell is running a shell script and a SIGINT is received - while waiting for a foreground job, even if that job does not - die from the SIGINT - -jobs.c, nojobs.c - - make get_tty_state reset $LINES and $COLUMNS after each process - exits if the variable `check_window_size' is non-zero - -builtins/shopt.def - - new variable `checkwinsize', which controls the value of - check_window_size - -doc/{bash.{1,html},features.texi} - - updated description of `shopt' to include `checkwinsize' - -execute_cmd.c, lib/readline,complete.c - - some changes from the GNU WIN32 project for the bash port to - Windows NT and Windows 95 - -bashwait.h - - new file, with `union wait' defines from jobs.h - -jobs.h - - include `bashwait.h' if is not present and - _POSIX_VERSION is not defined - - removed define of pid_t for non-Posix systems; now provided by - autoconf in config.h - - 1/31 - ---- -parse.y - - new temporary delimiter stack, used when decoding prompt strings. - This is needed so command substitutions in the prompt strings - (especially PS2) don't screw up the parser's quoting state - -lib/readline/complete.c - - new variable for readline library users: - rl_completion_append_character. The value of this variable is - the character appended to a completion when it occurs at the - end of a line. Setting it to '\0' causes nothing to be - appended. - -lib/readline/readline.h - - declaration for rl_completion_append_character - -lib/readline/doc/rltech.texinfo - - documented rl_completion_append_character as int variable available - to library users - -subst.c - - new code for maintaining a string array saying which words in the - output of expand_word_list_internal are the result of globbing - -variables.c - - new function put_gnu_argv_flags_into_env (pid, flags_string) - to put Roland's GNU getopt helper variable into the export_env - -execute_cmd.c - - in execute_disk_command, after forking the child, put the GNU - getopt helper environment variable into the child's export_env - -unwind_prot.c - - changed unwind_protect_var and restore_variable to do the - bcopy of the variable's value if it's shorter than the size of - an int, as well as if it's longer. This keeps stray data - from being copied if a short is being unwind-protected - -unwind_prot.h - - new define, unwind_protect_short, to protect variables smaller - than an int - -jobs.c - - in the code that handles SIGCHLD traps, call unwind_protect_short - if that is the size of a pid_t (for last_made_pid) - - 2/5 - --- -Makefile.in - - only try make distclean in HIST_LIBDIR if Makefile exists -- could - have already been removed if HIST_LIBDIR is the same as RL_LIBDIR - -general.c - - make canonicalize_pathname be more careful about what it checks - for being a directory name when processing a full pathname - -Makefile.in, configure.in, doc/Makefile.in - - small changes to get bash to build better in a directory not the - source directory - - 2/12 - ---- -Makefile.in - - added `install-strip' target - - 2/14 - ---- -doc/bash.{1,html}, doc/features.texi - - documented the `--verbose' startup option - -lib/readline/complete.c - - fix to gen_completion_matches to fix a memory leak - - fix to rl_complete_internal to fix a memory leak - - 2/15 - ---- -bashwait.h - - changed to use WORDS_BIGENDIAN instead of LITTLE_ENDIAN or - BIG_ENDIAN - -configure.in, config.h.in - - call AC_C_BIGENDIAN, define WORDS_BIGENDIAN - -Makefile.in - - remove all references to mkendian.c, mkendian, and bash_endian.h - - added a `symlinks' target that just runs support/fixlinks - -MANIFEST - - mkendian.c is no longer in the distribution - - 2/16 - ---- -execute_cmd.c - - include if HAVE_SYS_TIMES_H and HAVE_TIMES are - defined - -bashline.c - - fix to bash_directory_completion_hook to compensate for - canonicalize_pathname returning NULL - -variables.c - - fix to initialize_shell_variables to compensate for - canonicalize_pathname returning NULL - - 2/22 - ---- -tests/test-tests, tests/test.right - - changes to avoid writing in the source directory -- all temp files - are created in /tmp - -[First alpha release at Thu Feb 22 15:59:51 EST 1996] - - 2/23 - ---- -lib/readline/rldefs.h - - work around SVR4.2 bug including and - -lib/readline/chardefs.h - - fix to CTRL_CHAR macro for chars > 128 on systems with signed - characters - -builtins/ulimit.def - - protect more of the RLIMIT_* defines with checks - - new macro RETINVALID() to set errno and return the correct - value for an invalid request - -doc/Makefile.in - - add a definition for INSTALL, set by autoconf - - 2/26 - ---- -support/bashbug.sh - - if USER is unset, assign it the value of $LOGNAME or `whoami` - -Makefile.in,{lib/*,doc,builtins}/Makefile.in - - use `test' instead of `[' to conform to GNU coding standards - - `incdir' -> `includedir' as per latest GNU coding standards - -lib/readline/Makefile.in, lib/glob/Makefile.in - - use $(srcdir)/ instead of $(srcdir) in the CSOURCES variable - -general.h - - new define, FS_NODIRS, to not find directory names when searching - $PATH - -execute_cmd.c - - fix to find_in_path_element so it does not return directories - - executable_file() no longer returns directories as executable - - 2/27 - ---- -jobs.h - - new flag value: J_NOHUP - -jobs.c - - new function: nohup_job(job). Sets J_NOHUP flag for specified - job - - change hangup_all_jobs so that jobs marked J_NOHUP are not - sent SIGHUP. If stopped, the job still gets SIGCONT. - - changed calls to report_error to call internal_error, which will - not exit the shell - - changed FIND_CHILD define to call internal_error, restore the - SIGINT handler, set termination_state to 127 and return, rather - than aborting the shell - -builtins/jobs.def - - new option for disown: `-h'. Marks the specified jobs J_NOHUP. - -doc/{bash.{1,html},features.texi} - - added description of `disown -h' - -jobs.c, nojobs.c - - include some files needed for struct winsize by SCO - -lib/readline/input.c - - added some #ifdefs to avoid including on systems - with select but without - -configure.in - - check for , define HAVE_STDARG_H in config.h if found - -config.h.bot - - define USE_VARARGS and either PREFER_STDARG or PREFER_VARARGS - if one of or is present - -aclocal.m4 - - moved default mail directory check here from configure.in, macro - name is BASH_DEFAULT_MAIL_DIR - - rewrote BASH_CHECK_DEV_FD to cache the value - - minor fixes from Bruno Haible - -shell.c - - no longer includes - -builtins/Makefile.in - - add -I$(topdir)/builtins to list of includes - -execute_cmd.c, lib/glob/glob.c - - include memalloc.h for correct alloca definitions - -error.[ch], print_cmd.c, builtins/common.[ch] - - changes to include new ANSI-C stdargs code if PREFER_STDARG is - defined - - 2/28 - ---- -aclocal.m4 - - more minor fixes from Andreas Schwab - -doc/Makefile.in - - change TEXINPUTS makefile variables to TEXINPUTDIR to avoid - conflict with shell variable of the same name - -builtins/pushd.def - - fix to avoid a bad call to free after a call to - polite_directory_format does not change its argument string - -lib/readline/bind.c - - fixes to _rl_macro_dumper_internal so that it prints whatever - prefix it's passed, if any - - 2/29 - ---- -Makefile.in - - slight change to the rule for `stamp-h': it should be created by - running `config.status', not explicitly by the makefile rule - -builtins/Makefile.in - - replace `..' in the dependencies with `$(topdir)' - - replace `.' in the dependencies with `$(srcdir)' - - 3/1 - --- -Makefile.in - - add a rule to build builtins/builtext.h for the benefit of - deficient makes like the SunOS one - -variables.c - - fix to assign_in_env so that values in the environment are - properly null-terminated - -builtins/Makefile.in - - added dependencies for object files made from .c files in this - directory: common.o, getopt.o, bashgetopt.o. SunOS /bin/make - doesn't seem to be able to handle anything else - -support/mkclone - - new script to replace clone-bash that works from MANIFEST to link - only those files contained in a distribution - -support/mkversion.c - - change so that it doesn't try to get `.build' from the source - directory when that's different from the build directory - - 3/4 - --- -bashjmp.h - - #undef setjmp and longjmp before redefining them as sigsetjmp and - siglongjmp, respectively - -bashhist.c - - fixed an uninitialized variable problem in expand_histignore_pattern - -builtins/set.def - - used `on_or_off' where `value' was needed in minus_o_option_commands - -builtins/common.h - - added extern declaration for set_var_attribute - -print_cmd.c - - include `bashansi.h' instead of just string.h or strings.h - -builtins/*.def, builtins/common.c - - include `../bashansi.h' where appropriate - -parse.y - - fixed a parenthesization problem in alias_expand_token - -general.h - - added extern declaration for `ungetc_with_restart' - -lib/readline/readline.c - - renamed LibraryVersion to rl_library_version, made it extern, - assigned `2.1' to it - -lib/readline/readline.h - - extern declaration for `rl_library_version' - -lib/readline/doc/rltech.texinfo - - added description of `rl_library_version' - -lib/glob/glob.c - - changed call to sprintf in glob_dir_to_array to a couple of - calls to strcpy, since we keep the length of the first string - we copy - - 3/7 - --- -aclocal.m4 - - added new macro `BASH_FUNC_LSTAT' to check for lstat on Linux, - which defines it as an inline function in - -configure.in - - call BASH_FUNC_LSTAT if $ac_cv_func_lstat has value `no' - - 3/8 - --- -parse.y - - changed the occurrences of `list' in the if command productions - to use `compound_list' instead - - 3/11 - ---- -parse.y - - changed the occurrences of `list' in the while and until command - productions to use `compound_list' - -lib/readline/complete.c - - fix to filename_completion_function -- off-by-one error when - expand-tilde is enabled and a filename to be completed begins - with `~/' - - 3/12 - ---- -builtins/cd.def - - made the POSIX.2 behavior of PWD not containing symlinks after - using $CDPATH part of `posix mode', not default shell behavior - -lib/readline/display.c - - fix to update_line to handle update problems when using - horizontal scroll mode. This is a dumb update solution -- it - should use a better one - - 3/14 - ---- -examples/functions/csh-compat - - replaced the defintion for `alias' with a better one posted to - usenet by Mohit Aron - - 3/15 - ---- -jobs.c - - fix to wait_for_background_pids to keep `wait' from hanging - - 3/19 - ---- -lib/readline/input.c - - new function `_rl_input_available()' returns > 0 if there is - input available on the readline input file descriptor. Only - works if select(2) or FIONREAD are available - -lib/readline/isearch.c - - slight change to the isearch termination behavior -- ESC still - terminates the search, but if there is pending input or if input - arrives within 0.1 seconds (on systems with select(2)) it is - used as a prefix character with rl_execute_next - -shell.c - - the GNU coding standards say to write the output generated by - the --help command line option to stdout, not stderr - - show_shell_version now takes an `extended' option that displays - copyright information if non-zero - - show_shell_version now prints the value of `MACHTYPE' by default - - the `--version' option now causes the shell to exit successfully - after printing the extended version information - -externs.h - - changed prototype for show_shell_version - -shell.c, bashline.c, builtins/help.def - - changed calls to show_shell_version to add appropriate argument - -Makefile.in - - pass a `MACHTYPE' define to the compiler - - 3/22 - ---- -general.c - - changed print_timeval() and print_time_in_hz() to output three - fractional digits after the decimal point - -examples/loadables/sleep.c - - changed to an implementation that will sleep fractional portions - of seconds if select() is available - - 3/25 - ---- -builtins/shopt.def - - fixes to shopt -o from Andreas Schwab. Use FLAG_ON/FLAG_OFF - instead of SETOPT/UNSETOPT - - 3/26 - ---- -Makefile.in, builtins/Makefile.in - - use `@includedir@' instead of `@incdir' for autoconf 2.9 - -Makefile.in - - the `info', `dvi', and `ps' targets do not depend on `texindex' - - add a `dist' target that just prints a message describing how - distributions are constructed - -support/mkdirs - - replace uses of [...] with `test' - - 3/28 - ---- -parse.y - - fix for a problem with \@ prompt expansion from Tim Mooney - -jobs.c - - broke the code that prints a pipeline out into a separate - function: print_pipeline(). This gets called by - pretty_print_job and can be used for debugging - - two new functions to save and restore the_pipeline around calls - to make_child that you don't want to disturb the current pipeline, - for example in process substitution - -subst.c - - changed process_substitute to call save_pipeline and - restore_pipeline in the appropriate places - - 3/29 - ---- -general.c - - ansicstr now takes an additional parameter, the length of the - string to be translated. It's the second paramter. - -builtins/echo.def - - changed call to ansicstr to pass strlen(list->word->word) - -parse.y - - redid the $'...' expansion so it works like it's supposed to: - the quoted strings may appear anywhere in a token, and multiple - ansi-c quoted strings may appear in a token - - redid the $"..." expansion so it works like it's supposed to - -tests/nquote.{tests,right}, tests/run-nquote - - tests for the $'...' and $"..." quoting stuff -- simple-minded - -subst.c - - on systems without /dev/fd, open the named pipe for a `reading - in child' process substitution (>(...)) with O_NONBLOCK - -lib/posixheaders/filecntl.h - - add code to make sure the O_NONBLOCK is defined to O_NDELAY if - it is present and O_NONBLOCK is not defined by - -general.c - - don't bother handling both O_NONBLOCK and O_NDELAY in - unset_nodelay_mode, since filecntl.h defines O_NONBLOCK as - O_NDELAY for non-Posix systems - - 4/1 - --- -lib/readline/funmap.c - - made `vi-fetch-history' a bindable command name - -doc/readline.3 - - many cleanups, updated the list of default bindings - - 4/4 - --- -doc/bash.1, doc/readline.3 - - fixed up use of \-; now it is not used unless the text is being - printed in bold or italic - -configure.in, config.h.in - - add a configuration option, --enable-usg-echo-default, to turn - on DEFAULT_ECHO_TO_USG and make `echo' expand backslash-escaped - characters by default - - 4/8 - --- -parse.y - - another small change to localeexpand to handle backslash-escaped - double quotes in the double-quoted string - - 4/9 - --- -shell.c - - add the value of MACHTYPE to the text output by `--help' - - 4/11 - ---- -parse.y - - more changes to the $"..." and $'...' code to move it into - read_token - - don't try to check token[token_index - 1] unless token_index - is greater than 0 - - 4/12 - ---- -trap.c - - new function run_trap_cleanup to clean up after _run_trap_internal - in the event that parse_and_execute does not return normally - (e.g., if a `return' is executed in the trap command) - - set running_trap to the number of the signal whose trap is being - run plus one in _run_trap_internal - -trap.h - - extern declaration for run_trap_cleanup - -jobs.c - - new function `unfreeze_jobs_list' to set freeze_jobs_list back to 0. - called from parse_and_execute_cleanup so a `return' while running - an interrupt trap does not leave the jobs list frozen - -jobs.h - - new extern declaration for unfreeze_jobs_list - -builtins/common.c - - if running_trap is non-zero in parse_and_execute_cleanup, indicating - that parse_and_execute was running a trap command when it got a - `return', call run_trap_cleanup (running_trap - 1) - - parse_and_execute_cleanup now calls unfreeze_jobs_list - - 4/16 - ---- -Makefile.in - - don't try to make `doc' as a dependency of `install' - -doc/Makefile.in - - make `info' a dependency of `install' to make sure the info - document is present and up to date before installing it - - make the `install' target install the documents with a $(srcdir)/ - prefix in case we're building in another directory - -lib/glob/glob.c - - fixed an off-by-one error in glob_dir_to_array - -shell.c - - removed an extra increment of arg_index when setting up the - arguments for -c command - - 4/17 - ---- -pathexp.c - - made quote_globbing_chars backslash-quote backslashes as well as - `?*[]'; changed it to be a little faster - -bashhist.c - - call quote_globbing_chars to quote backslashes in the previous - history line even if no other globbing chars are present. This - is done only if we're matching against a HISTIGNORE pattern of `&' - - don't bother quoting globbing characters in the current history - line in history_should_ignore -- fnmatch ignores special chars in - its `string' argument - -[bash-2.0-alpha2 frozen] - - 4/18 - ---- -command.h - - new flag value for a word: W_NOSPLIT. A word with this bit set - in its flags will not have word splitting performed - -parse.y - - turn on the W_NOSPLIT flags for assignment statements appearing - where an assignment statement is acceptable (words that would - return ASSIGNMENT_WORD rather than WORD). This means that, for - the time being, assignment statement arguments to builtins like - `declare' or `alias' will be split unless they are quoted - -subst.c - - don't split a word in expand_word_internal if the W_NOSPLIT flag - is set, rather than checking W_ASSIGNMENT; do the same thing in - expand_word_list_internal - -builtins.h - - a new flag, ASSIGNMENT_BUILTIN, indicating that this builtin takes - assignment statements as arguments - - rearranged the values of the builtin flags, so the BUILTIN_* flags - come first, then the *_BUILTIN flags - -builtins/makebuiltins.c - - added code for an array of `assignment builtins' -- builtins that - take assignment statements as arguments -- and to add the - ASSIGNMENT_BUILTIN flag for those builtins - -execute_cmd.c - - added a hack function `fix_assignment_words', which checks the - first word of a builtin command to see if it is a builtin that - has the ASSIGNMENT_BUILTIN flag set, and adds W_NOSPLIT to the - flags for all words with the W_ASSIGNMENT bit set. This means - that word splitting is not done for any of the assignment - statements in commands like `declare z=$a' - - 4/19 - ---- -execute_cmd.c - - fixed a memory-freed-twice error in find_in_path_element - -lib/readline/rltty.c - - include if GWINSZ_IN_SYS_IOCTL is defined and - SHELL is not defined - -lib/readline/input.c - - changed a stray HAVE_FIONREAD to FIONREAD - - include if FIONREAD_IN_SYS_IOCTL is defined - -aclocal.m4 - - new macro, BASH_HAVE_FIONREAD, to check for a #define of - FIONREAD in or one of the files it includes; - defines FIONREAD_IN_SYS_IOCTL if present - -config.h.in - - new line for FIONREAD_IN_SYS_IOCTL - -configure.in - - call BASH_HAVE_FIONREAD - - 4/22 - ---- -builtins/cd.def - - fixed a memory-freed-twice error in mkpath() - -jobs.c - - don't print a job termination message for a non-interactive shell - with startup_state == 2 (those shells are started to run commands - when bash is invoked with `-c command') - - 4/23 - ---- -general.h - - definition for a `generic pointer' type PTR_T -- `void *' on ANSI - C systems, `char *' otherwise - -jobs.h - - new members of job struct: `j_cleanup', a function to call when the - job is marked JDEAD, and `cleanarg', argument to pass to j_cleanup - -jobs.c - - initialize j_cleanup and cleanarg to NULL in stop_pipeline - - call j_cleanup from waitchld() when a job is marked JDEAD - -test.c - - fixed binop() so it recognizes `<' and `>' as binary operators - - fixed a bug in binary_operator so `<' works correctly - -tests/test-tests - - fixed the tests so they no longer rely on the modes of files in - the file system to test -u, -g, -r, -x, -w, and so on, except - for a few `standard' files like /dev/tty and /dev/null - - added tests for string < string and string > string - -xmalloc.c - - include if HAVE_UNISTD_H is defined for a prototype - for sbrk - - add an extern declaration for sbrk if SBRK_DECLARED is not defined - - use PTR_T to cast the return value of sbrk() when finding out where - the break is and how many bytes of memory have been allocated - -lib/malloc/malloc.c - - added code to write 0xcf into memory as it's freed, to uncover - callers that try to refer to freed memory, and writes 0xdf into - newly-allocated memory, to uncover callers that assume something - about new allocations (e.g., that newmem[0] == 0) - -lib/malloc/gmalloc.c - - latest version from GNU sources - - 4/25 - ---- -doc/bash.1 - - changed the description of `unset' to include a description of - the `-v' option - -parse.y - - fixed a problem with conversion to 12-hour time in - decode_prompt_string that made 12:00pm show up as 00:00pm - - 4/26 - ---- -builtins/common.c, subst.c - - a couple of fixes from Andreas Schwab - -configure.in - - set up the minimal configuration after checking for - --enable-minimal-config with AC_ARG_ENABLE, before checking any - of the other options, instead of after checking all options. - This makes `--enable-minimal-config --enable-prompt-string-decoding' - work as documented - - changed AC_PREREQ to require autoconf version 2.8 or higher - - added some code to disable gnu malloc by default on the systems - listed in NOTES - - set MALLOC_SRC to have the $(ALLOC_LIBSRC)/ prefix to avoid having - a directory in the dependencies when making without the gnu - malloc - -lib/malloc/Makefile.in - - make gmalloc.o depend on $(BUILD_DIR)/config.h - - 4/30 - ---- -COMPAT - - new file listing user-visible incompatibilites between bash-1.14 - and bash-2.0 - -parse.y - - new prompt expansions, \v (version) and \V (version + patchlevel) - -config.h.top - - the default value of PS1 is now '\s-\v\$ ' - -doc/{bash.{1,html},features.texi} - - added descriptions of \v and \V prompt expansions - - changed default value of PS1 - -Makefile.in - - added dependencies on config.h.top for files that use definitions - included there - -builtins/exec.def - - removed reference to `no_exit_on_failed_exec' from the help text - - 5/3 - --- -builtins/cd.def - - fixed a typo in fix from 4/22 - - 5/7 - --- -builtins/common.c - - new function `no_options (WORD_LIST *)' to be called by builtins - that do not take options to check for options and -?. It returns - 0 on success, non-zero if an unwanted option is supplied - -builtins/common.h - - extern declaration for no_options - -builtins/return.def - - corrected the error message to include returning from a sourced - script - -builtins/{getopts,eval,wait,source,fg_bg,help}.def - - changed the following builtins to either call no_options or test - explicitly for options and return EX_USAGE if any are found: - - getopts eval wait source . fg bg help - -builtins/help.def - - error messages are now printed using builtin_error - - 5/8 - --- -builtins/jobs.def - - fixed an unitialized variable problem - -tests/more-exp.tests - - added additional tests for IFS problem uncovered by `iffe' - - 5/9 - --- -lib/malloc/Makefile.in - - use $(ALLOCA_SOURCE) instead of $< in rule that builds alloca.o. - Some makes don't expand the $< in non-suffix rules - -lib/readline/rldefs.h - - fix workaround for SVR4.2 bug - -shell.c - - even though SVR4.2 has getpeername(), isnetconn() should not use it - -maxpath.h - - rework to make sure PATH_MAX and NAME_MAX are defined, and remove - the BUILDING_MAKEFILE code - -general.c, parse.y, oslib.c, jobs.c, builtins/common.c, builtins/cd.def - - change uses of MAXPATHLEN to PATH_MAX - -examples/loadables/{{log,base,dir}name,tty,pathchk,tee}.c - - new loadable builtins: - - logname basename dirname tty pathchk tee - -configuure.in, config.h.in - - look for tzset(3), define HAVE_TZSET if found - -subst.c - - new special variable function, sv_tz, which calls tzset when - TZ is changed, if tzset(3) exists and the shell is compiled - to do prompt string decoding - -subst.h - - extern declaration for sv_tz - - 5/10 - ---- -builtins/echo.def - - only call printf if the string to print is non-null - - add an fflush(stdout) after the printf call to work around a - bug in SunOS 5.5 - - 5/16 - ---- -shell.c - - moved some variable declarations out of this file to more - logical places - -support/config.guess - - small fixes from rfg@monkeys.com - -version.c - - moved functions for getting, setting, and displaying shell version - information here from shell.c - -general.c - - moved set_lines_and_columns to variables.c - - moved getc_with_restart and ungetc_with_restart to input.c - - new function argv_to_word_list(), converts an array of strings - into a WORD_LIST - - renamed find_name_in_list to find_name_in_array to match rest - of functions that operate on arrays of strings - -configure.in, Makefile.in, jobs.c, nojobs.c - - changes so that jobs.c no longer includes nojobs.c, and the correct - object file (jobs.o or nojobs.o) is selected by configure - and substituted into the Makefile - -list.c - - new file, list manipulation functions from general.c - -externs.h, general.h - - moved extern declarations for functions defined in oslib.c and - list.c to externs.h from general.h - - 5/17 - ---- -locale.c - - new file, with locale code from parse.y and shell.c - -shell.c - - don't turn off job control if act_like_sh is set - - if an unknown option is supplied at startup or if -c is - supplied without an argument, exit with EX_USAGE - - call posix_initialize after parsing all the options, to - catch `bash -o posix' - - new functions: init_interactive(), init_noninteractive() - - exit with EX_NOTFOUND if a script argument is not found - - exit with EX_NOINPUT if a script file cannot be opened for - some reason - -shell.h - - new define for EX_NOINPUT exit status (126) - - 5/18 - ---- -lib/readline/bind.c - - fixed _rl_get_keyname() so that it properly handles C-\ and outputs - it as \C-\\ and C-" as \C-\". This fixes the improper binding - commands written by `bind -p' that caused weird things to happen - when people used the output of `bind -p' as a start for their - own inputrc files - - new function _rl_init_file_error to print error messages encountered - while parsing the inputrc file - - print out an error message if parsing an inputrc line and no closing - double quote is found for a key binding - -lib/readline/complete.c - - in rl_complete_internal, if the completion function results in - multiple matches, but none match up to even the first character, - use what the user typed in (which is presumably a glob pattern - that expanded into multiple files) as matches[0]. This makes - things like show-all-if-ambiguous work right, too - -oslib.c - - if we are providing our own version of getenv(), provide a function - _getenv() as well, which just calls getenv() - -builtins/ulimit.def - - #define _KERNEL before including if HPUX is - defined. This makes the full set of limits available on hpux - version 8 and above - -bashline.c - - new function, enable_hostname_completion, sets up readline to - perform or not perform hostname completion. Hostname completion - is on by default. - - don't attempt hostname completion in attempt_shell_completion() - unless perform_hostname_completion is set - -builtins/shopt.def - - add a `set_func' member to the shopt options structure, to provide - a hook for those variables that require a little more than just - toggling a variable on or off - - new shopt variable `hostcomplete', turns hostname completion on and - off - -doc/{bash.{1,html},features.texi} - - added description of new shopt `hostcomplete' variable - - 5/21 - ---- -sig.c - - don't try to save the shell history in termination_unwind_protect - if we're dying due to SIGABRT - -bashhist.c - - new functions: last_history_entry (static), last_history_line - -bashhist.h - - extern declarations for new functions in bashhist.c - -error.c - - have programming_error() report the last command in the history - before aborting - -builtins/fc.def - - if the editor returns a non-zero exit status when using `fc -e', - return immediately without trying to execute the commands, as - per Posix.2, 5.12.2 - - when using `fc -s', echo the command to be executed to stderr, - not stdout - -lib/readline/terminal.c - - new file, with all code related to termcap/terminfo - -lib/readline/{readline,rltty,display,util}.c - - moved functions dealing with termcap to terminal.c - -lib/readline/readline.c - - readline_initialize_everything now calls _rl_enable_meta_key() - to turn on the meta key, based on the value of _rl_enable_meta - (on by default) - -lib/readline/rltty.c - - do not enable and disable the meta key each time readline is - called; do it once at initialization - - 5/23 - ---- -bashhist.c - - when `hist_verify' is set, call re_edit with the expanded line, - not the original one, and do not print the results of the - expansion before re-editing - - 5/24 - ---- -support/config.guess - - recognize linux/sparc - -configure.in - - don't use GNU malloc on linux/sparc - -variables.c - - initialize a new $MACHTYPE variable to the value of MACHTYPE as - set by autoconf - -doc/{bash.{1,html},features.texi} - - documented $MACHTYPE - - 5/30 - ---- -builtins/ulimit.def - - allow the max vm size to be set via setrlimit() if RLIMIT_VMEM - is defined - - 5/31 - ---- -shell.h - - changed EX_USAGE to 258, EX_BADUSAGE is now 2 - - added a number of execution failure statuses, so that builtins - can indicate various failures. All are greater than 256, so - they cannot be returned by other utilities - -execute_cmd.c - - new function, builtin_status(), to translate the new return - status codes to something the shell can export - - changed execute_simple_command to call builtin_status after - execute_builtin_or_function to translate error codes if a - builtin is invoked. If a function or regular builtin is - invoked, all return values greater than EX_SHERRBASE get - translated to EXECUTION_FAILURE, with the exception that - EX_USAGE gets translated to EX_BADUSAGE. If a special - builtin failed with a status > EX_SHERRBASE, special_builtin_failed - is set to cause the shell to exit in POSIX mode - - changed execute_builtin_or_function to return EX_REDIRFAIL if - redirections fail - - changed execute_subshell_builtin_or_function to translate - EX_USAGE to EX_BADUSAGE if a builtin is executed - - set this_command_name to NULL in execute_for_command before binding - each member of the word list to the loop variable, to avoid - garbled error messages if the variable has the integer attribute - -builtins/{set,unset}.def - - return EX_USAGE instead of EXECUTION_FAILURE if a bad option is - supplied - -builtins/source.def - - return EX_USAGE instead of EXECUTION_FAILURE if the required - filename argument is missing - -builtins/setattr.def - - return EX_BADASSIGN if any assignment statements given as arguments - to readonly, export, etc. return failures (assignment to - non-identifier, assignment to readonly variable) - -builtins/declare.def - - don't allow `declare var=value' to assign value to a readonly - variable - -lib/readline/rldefs.h - - include if we're going to be using stdarg instead of - varargs - -lib/readline/display.c - - added `stdarg' version of rl_message - -lib/readline/readline.h - - changed extern declaration for rl_message to be in ANSI-C format - if __STDC__ is defined and we're using stdarg - -variables.c - - make sure this_command_name is set to null before calling - make_variable_value in assign_array_var_from_string so any - error messages are not garbled - - 6/2 - --- -builtins/common.c - - don't execute the command in parse_and_execute if -n has been - enabled and the shell is not interactive - - include flags.h for read_but_dont_execute - -[bash-2.0-alpha3 released] - - 6/5 - --- -subst.c - - array_length_reference and parameter_brace_expand_length now - return -1 on errors - - parameter_brace_expand now returns &expand_param_error if - paramter_brace_expand_length returns something < 0 - -variables.c - - assign_in_env now checks for assignments to readonly shell - variables and disallows them - - 6/6 - --- -xmalloc.c - - only do pointer arithmetic on pointers cast to (char *), since - it's not required that compilers support arithmetic on void * - -shell.c - - make sure is included with the same conditions - used to call getpeername(2) in isnetconn() - -parse.y - - added a new function, paren_match, to parse the contents of $(...) - constructs. This function correctly handles embedded quoted - strings, embedded command substitutions, embedded command - substitutions with embedded quoted strings, etc. The implementation - is much closer to that described in POSIX.2, section 3.6.3. - - changed read_token_word to call paren_match where appropriate - -subst.c - - rewrote extract_delimited_string so that it correctly understands - quoted strings inside command substitutions, a la paren_match - in parse.y. Corrected the description of the function's output - in the code. extract_delimited_string is now very recursive, and - does not try to do everything in one pass without recursion - - 6/7 - --- -test.c - - fixed three_arguments() to test the second argument for a valid - binary operator before checking whether or not the first argument - is `!'. This is what POSIX.2 says to do. - -lib/malloc/malloc.c - - don't compile in the memory scrambling code (#define MEMSCRAMBLE) - if NO_MEMSCRAMBLE is defined. - -configure.in - - define NO_MEMSCRAMBLE in LOCAL_CFLAGS for SCO 3.2v[45] - - 6/9 - --- -parse.y - - renamed paren_match to parse_matched_pair - - call parse_matched_pair to parse <(...) and >(...) constructs, - since those should be treated the same as $(...) for the purposes - of matching parens and skipping embedded quoted strings - - 6/13 - ---- -parse.y - - augmented parse_matched_pair - o fixed up backslash quoting and CTLESC handling after - backslashes - o match pairs of ${...} and $[...] inside double-quoted - strings or `` strings - o keep track of line number quoted string starts on for - better error messages - o push and pop delimiters when parsing quoted strings - inside $(...), ${...}, and $[...] for use by the - history code - o set EOF_Reached to 1 if we get an EOF before finding the - match closer - - rewrote read_token_word from scratch to use parse_matched_pair: - o shell quote characters use parse_matched_pair to find - the matching quote - o fixed up backslash parsing code - o compound array assignments use parse_matched_pair - o corrected all_digits and dollar_present computations, so, - for instance, 2''>/dev/null is no longer accepted as - identical to 2>/dev/null - o converted ${...} parsing to use parse_matched_pair - o removed printing of error messages about unmatched quotes; - now handled by parse_matched_pair - o converted $'...' and $"..." to use parse_matched_pair - o removed all of the delimited_xxx and dollar_xxx variables - and embedded_quoted_string - - modified report_syntax_error to regularize error messages: - o non-interactive shells and interactive shells running - scripts with `.' now always report line numbers - o unexpected EOF is always reported when EOF_Reached is true - o non-interactive shells no longer duplicate the script name - in error messages (e.g., `./z3: ./z3: line 3: syntax error') - -bashline.c - - make sure `newnames' is freed in _ignore_completion_names - -lib/readline/complete.c - - don't insert the first match on TAB completion in - rl_complete_internal() if matches[0] is the empty string -- - that will overwrite whatever the user has typed, if dequoting - what the user typed results in the empty string - -execute_cmd.c - - include if HAVE_LIMITS_H is defined for ARG_MAX - - only put the special environment variable for GNU getopt into - the environment if ARG_MAX exceeds 10240 - -subst.c - - rewrote extract_dollar_brace_string so that it fully obeys - the POSIX.2 rules for finding the closing `}' and uses - skip_{single,double}_quoted rather than trying to do it with - inline delimiters - - removed the INC_NEST and DEC_NEST defines - - 6/14 - ---- -jobs.c - - don't print status messages for background jobs that complete - successfully when running shell scripts - -builtins/shopt.def - - when using shopt -o as a synonym for set -o, make sure $SHELLOPTS - is updated - - make sure to update $SHELLOPTS when using shopt to set or unset - interactive comments - -execute_cmd.c - - fixed find_in_path_element to not return non-executable files - when FS_EXEC_PREFERRED is one of the flags, after saving such - a file as file_to_lose_on (fix from william@nscs.fast.net) - - 6/17 - ---- -lib/readline/complete.c - - after printing possible completions, all lines of a multi-line - prompt are redisplayed using rl_forced_update_display() - -subst.c - - in expand_word_internal, only do tilde expansion on words where - (flags & (W_ASSIGNMENT|W_QUOTED)) == W_ASSIGNMENT (unquoted - assignment statements) and contain unquoted `=~' or `:~', and - only if posixly_correct is off. POSIX.2 says that only the - assignments preceding the command name should be tilde-expanded. - - 6/18 - ---- -support/config.guess - - recognize the new Pyramid DC-OSx as `mips-pyramid-sysv4' - -configure.in - - set LOCAL_CFLAGS to -Xa for mips-pyramid-sysv4 as per - Peter Chubb - -subst.c - - variable assignment errors when there is not a command name - after the assignments now causes a non-interactive shell to - exit in POSIX.2 mode - -execute_cmd.c - - if the iteration variable in a for statement is a read-only - variable, a variable assignment error occurs. This causes - non-interactive shells to exit in posix mode, and a failure - status to be returned for other non-interactive shells and - interactive shells - - if the selection variable in a select statement is a read-only - variable, a variable assignment error occurs, with the same - consequences as a for statement variable assignment error - -doc/bashref.* - - renamed features.* to bashref.*, since that more accurately - reflects the current contents - - 6/19 - ---- -test.c - - changed three_arguments() to do one-argument tests on $1 and - $3 and return the appropriate values if -a or -o is given as - the second argument - - changed three_arguments() to perform a one-argument test on - $2 if $1 == '(' and $3 == ')' and return that result - - make sure test_stat translates /dev/fd/xx to DEV_FD_PREFIX/xx - so /dev/fd/0 always means the same thing, even on linux, - which uses /proc/self/fd - -aclocal.m4 - - added a check for libncurses in BASH_CHECK_LIB_TERMCAP - -configure.in - - added an initial message saying we're configuring for bash-2.0 - -lib/glob/fnmatch.c - - made a small change to fnmatch() to fix a bug matching patterns - with multiple consecutive `*'s - - 6/20 - ---- -parse.y - - inhibit history expansion when calling pre_process_line() from - shell_getc() if the current delimiter is a single quote, even - if we're on a different line than the opening quote - - make sure read_a_line prints a prompt if we're interactive and - not using readline, and make sure we call clearerr() if we - get EOF when interactive and not using readline - -bashhist.c - - new function history_expansion_p(char *) returns 1 if the string - passed contains the history expansion or history substitution - characters - - pre_process_line() now calls history_expansion_p and calls - the history expansion code only if that returns 1 - - 6/26 - ---- -lib/readline/isearch.c - - swap the behavior of ^J and ^M when i-searching. ^J now terminates - the search without accepting the line. ^M terminates the search - and accepts the line, executing the command - -examples/loadables/sprintf.c - - new `sprintf' builtin: sprintf var format [args...] - -lib/readline/readline.c - - added a line in _rl_dispatch that sets _rl_suppress_redisplay if - the function is rl_insert and there is input available - - 6/27 - ---- -builtins/getopts.def - - new function, getopts_bind_variable(), used when assigning a value - to the user-supplied variable passed to getopts(). It makes sure - that that variable name is legal and prints an error message if it - is not - -builtins/getopt.c - - don't increment sh_optind until after we've checked whether or not - the current option character appears in the list of options passed - to getopts by the user - - 6/28 - ---- -variables.c - - added a new parameter to print_var_value: QUOTE. If it's non-zero - and the variable's value contains shell metacharacters, quote the - value so it can be read back in - -variables.h - - changed extern declaration for print_var_value - -siglist.h - - if SYS_SIGLIST_DECLARED is not defined, but HAVE_UNDER_SYS_SIGLIST - is, only declare sys_siglist as extern char *sys_siglist[] if - sys_siglist is not `#define'd - -parse.y - - make sure a reserved word is acceptable before returning `}' as - a token from special_case_tokens, even if the token read so far - is "}" - - make reset_parser set allow_open_brace to 0 - - 7/1 - --- -test.c - - fixed binop to not try to read s[3] if s[2] == '\0'. There are - no one-character binary operators that begin with `-' - -variables.c - - fixed kill_all_local_variables to do nothing if variable_context - is >= local_variable_stack_size (indicating that we do have some - local variables, but not at this level of function nesting, and - we are beyond the end of the array allocated the last time we - had local variables) - - 7/2 - --- -execute_cmd.c - - non-interactive shells in posix mode should exit if the variable - in a for command is not a valid identifier. This should really - be caught by the parser - - non-interactive shells in posix mode should exit if a function - name is not a valid identifier. This should also be caught by - the parser - - 7/3 - --- -jobs.c - - non-interactive shells should ignore stopped children, so - waitchld() should set waitpid_flags to WUNTRACED only if the - shell is interactive and it's not a subshell environment - -lib/readline/signals.c - - if not being compiled as part of the shell, readline should - catch SIGTERM and clean up - -shell.c - - change to isnetconn: on Solaris 2.5, getpeername() can return - EINVAL rather than ENOTSOCK if the fd passed as the first - argument is not a socket - - 7/5 - --- -lib/readline/complete.c - - new variable, available to library users, to inhibit completion - and cause the completion character to be inserted into the - line with self-insert: rl_inhibit_completion. Set to 0 by default. - -lib/readline/readline.h - - extern declaration for rl_inhibit_completion - -lib/readline/doc/rltech.texinfo - - documented rl_inhibit_completion - -lib/readline/bind.c - - new readline user variable: disable-completion. This provides - users a way to toggle the value of rl_inhibit_completion - -doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo - - documented disable-completion variable - -lib/readline/doc/Makefile - - added `html' target to create html from rlman.texinfo and - hist.texinfo - - 7/8 - --- -builtins/cd.def - - only try cd spelling correction if the shell is currently - interactive, regardless of value of `cdspell' option - -lib/posixheaders/alloca.h - - AIX 4.2 needs `#pragma alloca' if gcc is not being used - - 7/9 - --- -builtins/getopts.def - - return EXECUTION_FAILURE from getopts if it's trying to assign - to a read-only variable - - reset sh_badopt to zero in getopts_reset() - -builtins/getopt.c - - new variable, sh_badopt, set to 1 if we find an illegal option - - do the increment of sh_optind if sh_badopt is non-zero and we're - at the end of the option string at the beginning of sh_getopt(). - The increment is deferred until the next call so $OPTIND is - correct - -builtins/getopt.h - - extern declaration of sh_badopt - - 7/10 - ---- -Makefile.in - - don't pass ALLOCA_SOURCE or ALLOCA_OBJECT to the make in lib/malloc - - don't make libmalloc.a depend on ALLOCA_DEP -- it causes some - compilers to build alloca.o in the top directory, and if ALLOCA - is not defined, makes the malloc library depend on a directory - -aclocal.m4 - - some small changes to make the output look better - -memalloc.h - - made some small changes suggested by the autoconf documentation - - 7/11 - ---- -parse.y - - swapped meanings of \h and \H in prompt_string_decode for - bash-1.14.6 compatibility - -doc/{bash.{1,html},bashref.texi} - - updated prompt string decoding section with swap of \h and \H - -general.c - - print_timeval and print_time_in_hz now accept a FILE * as the - first argument, so `times' can print to stdout while `time' - prints to stderr - -execute_cmd.c - - changed time_command to print the timing statistics to stderr - -builtins/times.def - - added the FILE * argument to the calls to print_timeval and - print_time_in_hz - -support/texi2html - - upgraded to version 1.50 - -error.c - - include bashhist.h if HISTORY is defined for declarations of - last_history_line() and remember_on_history - -lib/glob/glob.c - - add a `#pragma alloca' as the first thing in the file if we're - not using gcc and _AIX is defined - -lib/posixheaders/memalloc.h - - remove the `#pragma alloca' stuff; it is done in the C source - files now, to avoid problems with other AIX header file - declarations - - 7/12 - ---- -lib/readline/rltty.c - - some changes to work around AIX 4.2 bugs (sometimes OPOST is unset - in termios, sometimes FLUSHO is inexplicably set in termios, etc.) - - 7/15 - ---- -lib/readline/rltty.c - - make SETATTR use TCSADRAIN on POSIX machines. This setting is - supposed to be used for changes that affect output - -[bash-2.0-alpha4 released] - - 7/16 - ---- -trap.c - - changed reset_or_restore_signal_handlers to honor traps before - special signals, so that `trap "" 2' works right and causes - children to ignore SIGINT - -locale.c - - added lc_all variable to track the value of LC_ALL - - added new functions: set_default_locale_vars, set_locale_var, - set_lang, get_locale_var, removed get_current_messages_locale - -subst.h - - added extern declaration for sv_locale - -subst.c - - LC_ALL, LC_CTYPE, LC_MESSAGES, and LANG are now special variables; - sv_locale() is called when they are assigned a value - -shell.c - - call set_default_locale_vars after initializing the shell variables - in main(), so LC_CTYPE and LC_MESSAGES (if present) have values - - shell.c does not need to include - -general.c - - changed print_timeval and print_time_in_hz to format their output - as Posix.2 specifies for `time -p' if the new POSIX_TIME argument - is non-zero - -parse.y - - new grammar production: timespec, to handle `time' and `time -p' - - change to special_case_tokens so that -p after `time' returns - TIMEOPT - -execute_cmd.c - - set posix_time in time_command if the command's flags include - CMD_TIME_POSIX - - call print_timeval and print_time_in_hz with posix_time as - the new third argument - - use a space to separate the word (`real') and the time if we're - in posix mode. This is what POSIX.2 defines for `time -p' - -builtins/times.def - - call print_timeval and print_time_in_hz with 0 as the new third - argument - -command.h - - new flag: CMD_TIME_POSIX, used to handle `time -p' - -doc/{bash.{1,html},bashref.texi} - - documented `time -p' - - 7/17 - ---- -support/mkversion.c - - include `config.h' before any other include files - -parse.y - - initialize was_dollar to 0 in parse_matched_pair - -configure.in - - removed duplicate check for from call to - AC_HAVE_HEADERS - -sig.c - - include siglist.h so we can find out if it defines HAVE_SYS_SIGLIST - -siglist.h - - define HAVE_SYS_SIGLIST if we end up defining sys_siglist as - _sys_siglist (Solaris 2.[45]) - -siglist.c - - include "siglist.h" before testing whether or not HAVE_SYS_SIGLIST - is defined; it may be defined in there (Solaris 2.[45]) - - 7/19 - ---- -examples/misc/alias-conv.sh - - updated, now uses code from examples/functions/csh-compat to do - the alias conversion, uses `command' builtin in functions it - creates, does some substitution of csh special variables to - bash equivalents - -examples/misc/cshtobash - - a more ambitious script that attempts to convert csh aliases, - environment variables, and local variables to bash equivalents - - 7/22 - ---- -bashline.c - - added `:' to the set of completion word break characters so that - individual directories in $PATH assignments can be completed - -aclocal.m4 - - added a new macro, BASH_CC_WORKS, that aborts configuration if - ${CC} can't compile a simple program successfully - -configure.in - - call BASH_CC_WORKS before doing anything else - - 7/23 - ---- -execute_cmd.c - - fixed select_query to print the prompt ($PS3) to stderr - -support/bashbug.sh - - workaround for bug in SunOS 5.x /bin/sh that causes it to - not ignore interrupts while waiting for a foreground process - to exit - - 7/24 - ---- -general.c - - added new functions to decompose `timeval's and `clock_t's into - seconds and thousandths of seconds: timeval_to_secs and - clock_t_to_secs - - changed print_timeval and print_time_in_hz to call timeval_to_secs - and clock_t_to_secs, respectively - - removed no-longer-used third argument for print_timeval and - print_time_in_hz -- `time' output is now done in execute_cmd.c - -general.h - - new extern declarations for timeval_to_secs and clock_t_to_secs - -builtins/times.def - - changed calls to print_timeval and print_time_in_hz, removing the - no-longer-used third argument - -execute_cmd.c - - changed the way time_command prints its output: it now interprets - a format string, replacing several escape sequences prefixed with - a `%' with the real, user, and system times. There are options in - the format string to ask for the `long' format that `times' uses - as well as to specify the number of places after the decimal point, - and whether to output fractional seconds at all - - time_command now uses the value of the `TIMEFORMAT' variable, if - present, to format the timing output. This is flexible enough to - encompass the bash default, posix `time -p', BSD, and SV time - formats - - 7/25 - ---- -Makefile.in - - `make clean' should delete the files listed in $(CREATED_SUPPORT); - `make mostlyclean' should not - -doc/{bash.{1,html},bashref.texi} - - fixed an error in the description of the effect that setting and - unsetting GLOBIGNORE has on the setting of the `dotglob' option - -doc/bashref.texi - - updated the section listing the major differences between bash - and the SVR4.2 shell - -lib/readline/readline.c - - removed the setting of _rl_suppress_redisplay, since it doesn't - really do anything yet - -oslib.c - - new function get_clk_tck (void), returns the value of _SC_CLK_TCK - if sysconf(3) is available, otherwise returns the value of - CLOCKS_PER_SEC (default 60) - -general.c - - moved CLOCKS_PER_SEC defines to oslib.c - - changed clock_t_to_secs to call get_clk_tck once to get the - right value to use - -externs.h - - extern declaration for get_clk_tck - -execute_cmd.c - - changed print_formatted_time so that a `%' at the end of the string - is output literally - - changed print_formatted_time to output a newline after the - translated format string, so it does not need to be included in - the format - - changed BASH_TIMEFORMAT (the default time format) to have a leading - newline to match ksh93 - -configure.in - - use `shlicc2' on BSD/OS machines - - 7/26 - ---- -doc/bash.html - - major overhaul, cleaned up text, corrected some minor HTML errors - -variables.c - - call sv_optind and sv_opterr to initialize the getopts stuff in - initialize_shell_variables - - 7/29 - ---- -shell.c - - don't let maybe_execute_file try to read files that are not - `regular files' - - 7/30 - ---- -parse.y - - cast `string' in yy_string_get() to unsigned char * to avoid - sign extension bugs. For example, bash -c $'ls\377who' - - -builtins/reserved.def - - add help text for the `time' reserved word - - deleted description of `HISTCONTROL' - - added descriptions for HISTIGNORE, PWD, HOSTNAME, GLOBIGNORE, - MACHTYPE - - 7/31 - ---- -builtins/common.c - - parse_and_execute saves and restores the line number around - calls, and resets it to 0 when pushing the string onto the - input stack - -parse.y - - added code that parses `` within a double-quoted string as a - single word - - 8/6 - --- -configure.in, config.h.in - - look for `textdomain' as well as `gettext' for internationalization - -locale.c - - when LC_MESSAGES is set, call textdomain as well as setlocale - - new variable `default_domain', used to track the value of - $TEXTDOMAIN - -subst.c - - call sv_locale when TEXTDOMAIN changes - - 8/7 - --- -error.c - - new function, sys_error(), which prints a formatted string followed - by a colon and strerror(errno) to stderr - -error.h - - extern declaration for sys_error - -jobs.c, nojobs.c, input.c, execute_cmd.c, subst.c - - changes to use sys_error() - -[many files] - - changes to many of the literal strings in the code for consistency - and easier potential translation - - 8/8 - --- -parse.y - - new function debug_parser(int) to toggle the value of yydebug - if YYDEBUG != 0 - - 8/9 - --- -oslib.c - - don't use CLOCKS_PER_SEC, just try to get CLK_TCK (60 by default) - -bashline.c - - set saved_history_line_to_use to -1 when it's not going to be used - rather than 0. A value of 0 can be confused with the first - history line - -builtins/evalstring.c - - moved parse_and_execute and auxiliary functions here from - builtins/common.c - -builtins/evalfile.c - - moved maybe_execute_file here from shell.c - -Makefile.in, builtins/Makefile.in - - changes necessitated by the new files - - 8/12 - ---- -builtins/common.c - - fixed an off-by-one bug in single_quote that could make bash - run off the end of a string if it consisted entirely of single - quotes - - 8/13 - ---- -shell.c - - moved code from main() to a new function: open_shell_script - - don't try to fclose(default_input) if BUFFERED_INPUT is defined - - moved argument binding code out of two places in main() and - open_shell_script() to a new function: bind_args(). This takes - an additional argument telling whether to bind starting at $0 - or $1 - - moved the code that calls the with_input_from_* functions into - a new function: set_bash_input - - moved the normal shell command-line option parsing code out of - main() into a new function: parse_shell_options - - moved the long option parsing code out of main() into a new - function: parse_long_options() - -general.c - - new function: move_to_high_fd(fd), which tries to move FD to a - file descriptor close to the allowed maximum, returning the new - fd and closing the old one (or returning the old one if something - goes wrong) - -general.h - - new extern declaration for move_to_high_fd - -variables.c - - moved indirection_level_string() here from shell.c - -jobs.c - - change initialize_jobs to use move_to_high_fd() instead of the - inline code to do the same thing - - 8/14 - ---- -lib/readline/readline.c - - add `en_US.ISO8859-1' to the list of legal LANG values that turns - on readline's 8-bit mode - - 8/15 - ---- -builtins/evalfile.c - - combined source_file and maybe_execute_file into a new function - _evalfile(fname, flags), where the flags select the appropriate - behavior - -eval.c - - moved the functions that perform the read-eval loop here from - shell.c - -execute_cmd.c - - changed CPU calculation for printing timing statistics using - ideas and code from Deven Corzine (deven@ties.org) - -eval.c, builtins/evalstring.c - - make sure we dispose of global_command if set -n is on and the - shell is not interactive - - 8/16 - ---- -variables.c - - make a new array variable, BASH_VERSINFO, with version information: - - BASH_VERSINFO[0] = release (2) - BASH_VERSINFO[1] = version (00) - BASH_VERSINFO[2] = patch level (0) - BASH_VERSINFO[3] = build version (1058) - BASH_VERSINFO[4] = release status (beta1) - BASH_VERSINFO[5] = $MACHTYPE (sparc-sun-sunos4.1.4) - -doc/{bash.{1,html},bashref.texi} - - Documented BASH_VERSINFO - -configure.in, config.h.in - - look for bindtextdomain(), set HAVE_BINDTEXTDOMAIN if found - -subst.c - - call sv_locale if TEXTDOMAINDIR is set or changes - -locale.c - - handle TEXTDOMAINDIR in set_locale_var; call bindtextdomain if - it is present - -tests/array.tests - - added calls to egrep to filter out BASH_VERSINFO and PIPESTATUS, - which can vary from system to system - - 8/19 - ---- -shell.c - - moved line_buffer_stream from here to oslib.c, made it into a - replacement for setlinebuf() if that is not available - -externs.h - - extern declaration for setlinebuf() - -lib/readline/input.c - - in rl_gather_tyi, punt if chars_avail < 0 after checking input fd - - 8/20 - ---- -builtins/suspend.def - - send SIGSTOP instead of SIGTSTP - - 8/21 - ---- -builtins/colon.def - - added true and false as builtins (undocumented) - -CWRU/POSIX.NOTES, doc/bashref.texi - - note that process substitution is not available in posix mode - -bashintl.h - - new header file for internationalization, included by locale.c - - 8/22 - ---- -subst.c - - in command_substitute, set istring to NULL before trying to - make the pipe, so if that fails, the code at error_exit: - doesn't try to free it - -execute_cmd.c - - when executing a shell script without a leading `#!' internally, - and the shell is not interactive, close the fd to the script - we're reading. If this is called by the exec builtin, the shell - will not have forked, and the fd will not have been closed, even - though it's marked close-on-exec - - if subshell_argv is non-null, free its members (except 0) and - subshell_argv in shell_execve before reassigning it - - dispose of currently_executing_command before jumping back to - subshell_top_level - -builtins/hash.def - - use a sentinel variable so we only initialize the hash table - once in initialize_filename_hashing - -shell.c - - don't flush the filename hash table in shell_reinitialize - - free dollar_vars[0] in set_shell_name before assigning it - - don't fetch the current hostname more than once - - don't fetch the current user information more than once unless - the uid changes - -parse.y - - initialize_bash_input should free bash_input.name if it is - non-null before zeroing it - - 8/23 - ---- -aclocal.m4 - - changed BASH_CHECK_SOCKLIB: if -lsocket is present, check for - and cache the existence of -lnsl. Define LIBS appropriately - based on the values of the cache variables rather than relying - on the autoconf tests to do it - - 8/26 - ---- -parse.y - - fix up yy_readline_get and yy_stream_get to fix the sign - extension problem - -shell.c - - move the setjmp(top_level) that catches early SIGINTs to the - first statement in main() - -Makefile.in - - added a `strip' target to strip the binary - -[bash-2.0-beta1 frozen] - - 8/27 - ---- -parse.y - - replaced several static state variables with a single flags word: - parser_state - - 8/28 - ---- -parse.y - - in read_token_word, combined the ${...} case with the other - expansion cases -- the code was identical - - added code to handle ksh-style ((...)) -- equivalent to - `let "..."'. In fact, the above construct is translated internally - into `let "..."', so error messages output by the evaluator - will contain `let' - -expr.c - - changed evalerror to call internal_error so the name of the - shell script is prefixed to the message, if necessary - -Makefile.in - - changed RELSTATUS to `beta2' - -tests/{arith,new-exp}.{tests,right} - - changed the expected error message because of the change in format - of the arithmetic evaluation error messages in expr.c - -builtins/pushd.def - - changed pushd_builtin so `pushd -' is equivalent to `pushd $OLDPWD' - -externs.h - - changed the extern declaration for setlinebuf() to avoid having - to include stdio.h before externs.h everywhere - - 8/29 - ---- -error.c - - new function, parser_error, for use by parts of the parser that - don't want to call report_syntax_error - -error.h - - extern declaration for parser_error - -parse.y - - changed some parts of the parser to use parser_error - - made the ((...)) code #ifdef'd on DPAREN_ARITHMETIC - -shell.c - - added a line to the --help output saying to use `bashbug' to - report bugs - -configure.in - - added new option: --enable-dparen-arithmetic; it controls - the DPAREN_ARITHMETIC define in config.h - - changed $host_os check for SCO to only enable -DWAITPID_BROKEN - for sco3.2v5; all other SCO versions enable -DMUST_UNBLOCK_CHILD - -config.h.in - - added line for DPAREN_ARITHMETIC, modified by configure - -doc/{bash.{1,html},bashref.texi} - - documented new ((...)) command and new configuration option - -execute_cmd.c - - shell_execve should not try to close default_buffered_input unless - it is >= 0. Other code that closes it and deallocates the buffer - should set default_buffered_input to -1 - - 8/30 - ---- -configure.in - - more changes to LOCAL_CFLAGS for sco machines - -error.c - - changed parser_error to handle all cases of the shell being - interactive, not interactive, reading from a script, and reading - from some other file - -parse.y - - changed report_syntax_error to call parser_error for consistent - messages - -dispose_cmd.c - - change dispose_command to use programming_error instead of - report_error - -execute_cmd.c, input.c, general.c - - changed calls to report_error to internal_error, since we don't - want to possibly exit in any of those cases - - 9/3 - --- -input.c - - changed the `localbuf' type to `unsigned char' - -parse.y - - changed yy_stream_get to use feof to test for end of file when - not using getc_with_restart - - 9/6 - --- -config.h.top - - added a commented-out define for SYS_BASH_LOGOUT, which is a - system-wide .bash_logout file, run when a login shell exits - - added /sbin to STANDARD_UTILS_PATH - -builtins/exit.def - - added support for SYS_BASH_LOGOUT - - 9/10 - ---- -lib/readline/{{chardefs,histlib}.h,{bind,histexpand,readline,util,vi_mode}.c} - - changed to_upper to _rl_to_upper and to_lower to _rl_to_lower - - changed digit_value to _rl_digit_value - - changed digit_p to _rl_digit_p - - changed uppercase_p and lowercase_p to _rl_uppercase_p and - _rl_lowercase_p respectively - - changed pure_alphabetic to _rl_pure_alphabetic - -support/zecho.c - - new file, implements a bare-bones echo (no -n, no \-escapes), - to be used by tests - -tests/rhs-exp.tests - - changed calls to echo to use recho to avoid errors when bash is - configured with --enable-usg-echo-default - -tests/more-exp.tests - - changed some calls to echo to use zecho to avoid errors when bash - is configured with --enable-usg-echo-default - - 9/11 - ---- -lib/readline/histexpand.c - - fixed a possible off-by-one error in history_expand_internal when - deciding whether or not to reallocate `result' - -expr.c - - fixed expcond() so that an assignment may be supplied as the - token after the `?' - - illegal bases now cause an evaluation error - - multiple base specifications now cause an evaluation error - -tests/arith.tests - - added more tests for conditional operator and associativity - -tests/{run-heredoc,heredoc.{tests,right}} - - new set of tests for here-documents - -builtins/common.c - - print out the name returned by get_name_for_error in - builtin_error() - -subst.c - - set this_command_name to NULL before processing command-line - assignment statements so arithmetic evaluation errors don't - print garbage - - according to POSIX.2, echo ${foo?$x} should print the expanded - value of $x, even when it doesn't expand into anything - - 9/12 - ---- -shell.c - - changed the execution of startup files so that $ENV is never - run by a non-interactive shell and an interactive shell begun - as `sh' reads and executes $ENV, as posix specifies - -doc/{bash.{1,html},bashref.texi} - - updated description of startup file behavior - -doc/Makefile.in - - make sure references to bashref.texi are preceded by $(srcdir)/ - so we can build the documentation in another directory just by - typing `make'; e.g. after giving configure the --srcdir option - -subst.c - - change to array_remove_pattern to avoid evaluating the `param' - part of the ${param#word} spec twice when doing things like - echo ${A[x=(i+=1)]#${A[y=(i+=2)]}} - - 9/13 - ---- -builtins/bashgetopt.c - - fixed a problem with `;' option specifier (optional argument) - -support/config.{sub,guess} - - added cases to recognize CRAY C90 and T90 - -builtins/ulimit.def - - rewritten almost from scratch to use internal_getopt and to not - mask the return value from getrlimit/setrlimit, and to make it - easier to maintain - - added `-l' option for systems with RLIMIT_MEMLOCK (4.4 BSD) - -doc/{bash.{1,html},bashref.texi} - - documented new `-l' option to `ulimit' - - 9/24 - ---- -parse.y - - added `in' to the list of tokens that should not be followed by - a semicolon when combining history lines - - removed the special-case code in history_delimiting_chars that - tried to be smart about `()' - - 9/25 - ---- -print_cmd.c - - fixes to print_group_command from Andreas Schwab - - rewrote indent() to use a single malloced string for the spaces - to print, rather than calling cprintf multiple times - -shell.c - - make sure to set the strings in current_user to NULL after freeing - their contents in uidget(). - -parse.y - - make sure decode_prompt_string quotes the values inserted by the - \w and \W escape sequences using backslashes if the string will be - expanded later because promptvars is set - -support/mkdirs - - removed leading `^' from regular expressions to be matched by - `expr' on the advice of meyering@appaloosa.asic.sc.ti.com - - 9/26 - ---- -parse.y - - added a few more possible flag values for parser_state - - changed history_delimiting_chars to not add a semicolon after a - right paren if we're parsing a case statement - - 9/27 - ---- -builtins/ulimit.def - - a few minor cleanups - - 10/1 - ---- -builtins/trap.def - - make sure first_arg is non-empty before calling signal_object_p() - -[bash-2.0-beta2 frozen] - - 10/2 - ---- -bashintl.h - - if we have setlocale(), but don't have a definition for LC_ALL, - undefine HAVE_SETLOCALE - -configure.in - - set LOCAL_LDFLAGS on AIX 4.2 to allow dynamic loading of builtins - -builtins/enable.def - - use correct flags for AIX 4.2 in dlopen call if _AIX is defined - -examples/loadables/Makefile - - add sample commands for AIX 4.2 - - 10/3 - ---- -variables.c - - new functions: merge_temporary_env(), merge_builtin_env(), to - take temporary_env and builtin_env, respectively, and create - shell variables from them - -variables.h - - new extern declarations for merge_temporary_env() and - merge_builtin_env() - -execute_cmd.c - - if variable assignments preceds a posix special builtin, and the - shell is in posix mode, those assignments should persist in the - shell environment after the builtin completes - -doc/bashref.texi - - modified description of what's changed by posix mode to include - the persistance of assignment statements preceding special builtins - -doc/mkposix - - new script to create CWRU/POSIX.NOTES directly from the `Bash - POSIX Mode' node of bashref.texi, like INSTALL is created - - 10/4 - ---- -lib/{malloc,glob,readline}/Makefile.in, builtins/Makefile.in - - don't have autoconf substitute LOCAL_CFLAGS into the CFLAGS - assignment so people on SCO 3.2v[45] can still build with - NO_MEMSCRAMBLE even when they run `make CFLAGS=...' - -test.c - - renamed eaccess() to test_eaccess() to avoid conflict with SCO - -config.h.bot - - #undef HAVE_GETCWD if GETCWD_BROKEN is defined, so we use the - replacement in getcwd.c - -general.c - - fixed a small memory leak in full_pathname that occurs if - getcwd() returns NULL - -oslib.c - - new constant string variable: bash_getcwd_errstr, to use when - getcwd() returns NULL - -{general,jobs}.c, parse.y, builtins/{cd.def,common.c} - - change calls to getwd() to use getcwd() instead - -general.c, builtins/common.c, builtins/cd.def - - changed error behavior when getcwd() returns NULL to use - bash_getcwd_errstr, sys_error(), and strerror(errno) where - appropriate - -sig.c - - change a couple of calls to signal to set_signal_handler - -aclocal.m4 - - added definitions of _popen and _pclose to the BASH_FUNC_GETCWD - macro - -configure.in - - added -DPATH_MAX=1024 to LOCAL_CFLAGS for sco3.2v[45] on the - advice of - - removed check for getwd(3) - -externs.h - - removed extern declaration for getwd(), added extern declaration - for getcwd() if HAVE_GETCWD is not defined - -oslib.c - - removed definition of getwd(); it is no longer used - -lib/readline/rltty.c - - changed SETATTR macro for SCO POSIX systems to call tcsetattr - with TCSANOW, on advice of - - 10/7 - ---- -support/mkdirs - - slight change to work around a bug in the HP-UX `expr' - - 10/8 - ---- -lib/readline/vi_mode.c - - changes so that the text inserted with an `i' command is available - to be reinserted with `.' - -examples/functions/autoload.v2 - - new implementation: uses arrays, keeps a list of autoloaded - functions, allows autoloaded functions to be removed, allows - autoloaded functions to be listed - -execute_cmd.c - - when freeing the members of subshell_argv in shell_execve(), free - only the members up to subshell_argc - - 10/9 - ---- -configure.in - - replaced calls to AC_HAVE_FUNCS with AC_CHECK_FUNCS - - replaced calls to AC_FUNC_CHECK with AC_CHECK_FUNC - - replaced calls to AC_HAVE_HEADERS with AC_CHECK_HEADERS - - added additional code to check for libintl.{a,so} for the - internationalization functions if bindtextdomain is not found - in libc - - define HAVE_WAIT3 if AC_FUNC_CHECK(wait3,...) succeeds, rather - than HAVE_FUNC_WAIT3, which is not used in the source - - added a call to AC_FUNC_STRCOLL to check for the presence of a - working strcoll(3) - -config.h.in - - removed HAVE_FUNC_WAIT3 - - added HAVE_STRCOLL - -variables.c, stringlib.c - - move sort_char_array from variables.c to stringlib.c - -variables.h, externs.h - - move extern declaration of sort_char_array from variables.h to - externs.h - -variables.c - - don't sort the exported environment, even when we're not in - posix mode - -stringlib.c - - changed qsort_string_compare to use strcoll(3) if it is available - (HAVE_STRCOLL is defined). This means that the results of glob - expansions are now sorted in the per-locale collation order - -locale.c - - track the value of $LC_COLLATE and call setlocale(LC_COLLATE,...) - when it changes. Also, set its default value - -subst.c - - LC_COLLATE is now a special variable; call sv_locale when it is - assigned to or unset - -lib/readline/util.c - - move compare_strings here from complete.c; renamed it - _rl_qsort_string_compare; made it use strcoll(3) if it's - available; made it global so other library files can use it - -lib/readline/complete.c - - use _rl_qsort_string_compare instead of static compare_strings. - This means that completions are now sorted in a locale-specific - collation order - -lib/readline/funmap.c - - removed static declaration of qsort_string_compare; qsort now - uses _rl_qsort_string_compare instead - -oslib.c - - rewrote stricmp, strnicmp; renamed them strcasecmp and - strncasecmp, since they're only compiled in if HAVE_STRCASECMP - is not defined - -externs.h - - removed extern declarations of strnicmp, stricmp, replacing them - with declarations of strcasecmp and strncasecmp if HAVE_STRCASECMP - is not defined; removed #defines of stricmp and strnicmp to - strcasecmp and strncasecmp - -trap.c - - changed calls to stricmp to direct calls to strcasecmp - -Makefile.in - - bumped RELSTATUS to `beta3' - -doc/bash.{1,html} - - added mention of LC_COLLATE - -doc/bashref.texi - - removed item about sorting environment from the section on posix - mode - - 10/16 - ----- -subst.c - - fixed array_length_reference to return 0 for an unbound variable - and 1 for a variable that is not an array - -examples/scripts.v2/cdhist.bash - - package with functions to replace cd and maintain a cd directory - stack - -examples/scripts.v2/pmtop - - a `poor man's top' for SunOS 4.x and BSD - -examples/scripts.v2/bashrand - - a script to return a random number within a specified range, with - an optional seed - -examples/scripts/zprintf - - printf(1) replacement that uses gawk to do the output - -doc/{bash.{1,html},bashref.texi}, lib/readline/doc/hsuser.texinfo - - several small corrections - - 10/17 - ----- -variables.c - - changed the calls to list_string_with_quotes and then - expand_words_no_vars in assign_array_var_from_string to a single - call to expand_string. This behaves more rationally, and closer - to ksh93 - -subst.c - - commented out list_string_with_quotes -- it is no longer used - -lib/readline/terminal.c - - new function, _rl_set_screen_size(int rows, int cols), to set - readline's idea of the screen size - -jobs.c, nojobs.c - - make sure that window size changes are propagated back down to - the readline code, by calling _rl_set_screen_size with the - new sizes. This happens when bash gets a SIGWINCH or if - `checkwinsize' is set with `shopt' - - 10/18 - ----- -support/config.guess - - added code to recognize the various NetBSD ports - -lib/readline/signals.c - - don't install a handler for SIGALRM if the containing application - has installed a handler with SA_RESTART as part of the flags. - This is in effect, obviously, only for systems with POSIX signals. - -subst.c - - make parameter_brace_expand_length expand variables in a double- - quoted environment so it takes spaces in the variable value into - account - - 10/21 - ----- -command.h - - flags for possible values of subshell_environment telling what - caused the subshell - -builtins/command.def - - the `command' builtin should not be setting CMD_NO_FORK at all; - it doesn't know enough about the execution context to do so - -execute_cmd.c, subst.c - - set subshell_environment to one of the values in command.h rather - than to `1', so we know what kind of subshell it is (just for - informational purposes; nothing actually uses this yet) - - - 10/22 - ----- -execute_cmd.c - - just return EXECUTION_SUCCESS immediately in execute_command_internal - if read_but_dont_execute is set - - 10/23 - ----- -general.c - - fixed check_dev_tty to return immediately if ttyname() returns NULL - -builtins/suspend.def - - SIGSTOP cannot be caught, so there's no reason to try to do so - -examples/loadables/{finfo,pathchk,print}.c - - minor fixes - -pathexp.c - - fix to off-by-one error in setup_ignore_patterns - -jobs.c - - try to set the tty pgrp to our pgrp if we change our pgrp to our - pid and become a process group leader. If it doesn't work, - reset our pgrp to what it was originally and disable job control - -aclocal.m4 - - new test, BASH_STRUCT_TERMIO_LDISC, to test for a c_line member - of struct termio - -config.h.in - - add a new preprocessor variable, TERMIO_LDISC, undefined by default - -configure.in - - call BASH_STRUCT_TERMIO_LDISC after BASH_STRUCT_TERMIOS_LDISC - - 10/25 - ----- -lib/readline/terminal.c - - increased the size of the termcap buffers to 4096 - - 10/29 - ----- -parse.y - - include memalloc.h for uses of alloca that the code in the - generated bison parser does not catch (e.g., HP-UX 10.10) - -aclocal.m4 - - new test, BASH_KERNEL_RLIMIT_CHECK, to check whether a given - HP-UX machine needs _KERNEL defined for the RLIMIT_* defines in - (9.05, 10.01 yes, 10.10,10.20 no) - -configure.in - - call BASH_KERNEL_RLIMIT_CHECK if $host_os begins with `hpux' - -config.h.in - - new #undef for RLIMIT_NEEDS_KERNEL - -builtins/ulimit.def - - only define _KERNEL before including if HPUX - and RLIMIT_NEEDS_KERNEL are both defined - -[bash-2.0-beta3 frozen] - - 11/1 - ---- -locale.c - - if setting LC_ALL to a null value (as is done when `unset LC_ALL' - is run), call setlocale() to set LC_ALL back to default_locale - -lib/readline/readline.c - - moved i18n code from here to nls.c - -lib/readline/Makefile.in, Makefile.in - - new readline library member, nls.c - -lib/readline/nls.c - - new file, with internationalization code from readline.c (such as - it is) - - updated legal_lang_values to just contain a list of codesets - - added code modified from a diff sent by Ulrich Drepper - to parse a locale specification and isolate - and normalize the codeset part, for checking against the values - in legal_lang_values - - 11/4 - ---- -builtins/setattr.def, locale.c, aclocal.m4, oslib.c - - minor cleanups - - 11/5 - ---- -lib/readline/complete.c, test.c, trap.c - - more minor cleanups - - 11/6 - ---- -parse.y - - added a `flags' parameter to parse_matched_pair, currently unused - - 11/7 - ---- -configure.in, config.h.in - - add a check for time_t, defaulting to `long' if it's not - defined in - -builtins/fc.def - - use `time_t *' instead of `long *' in call to time() - - 11/8 - ---- -configure.in - - removed check for getpwent in libsun.a; it's not necessary for - recent versions of irix (irix[56].?) - - 11/11 - ----- -test.c - - used `&&' where `||' was needed when testing if HAVE_LSTAT and - S_IFLNK are both defined - -[bash-2.0-beta3 net release version frozen] - - 11/12 - ----- -builtins/getopt.c - - when sh_getopt detects that a required argument is not present, - set sh_optarg to "" so that getopts does the right thing - - 11/15 - ----- -builtins/ulimit.c - - made the default (without -H or -S) report the soft limit and set - both soft and hard limits (like sh and ksh) - -expr.c - - changed the maximum base in base#num constants to 64, implemented - just like ksh93 - -doc/{bash.{1,html},bashref.texi} - - updated description of ulimit builtin to new behavior when - neither -H nor -S is supplied - - updated arithmetic evaluation section with new maximum base and - explanation of how numbers between 10 and 63 are represented - -lib/readline/vi_mode.c - - in rl_vi_done_inserting, don't try to save the text entered while - in insert mode unless rl_undo_list is non-null (indicating that - there was actually some text to be saved) - - 11/19 - ----- -lib/readline/tcap.h - - new file, for termcap library definitions. Uses if - it is available - -lib/readline/rldefs.h - - remove inclusion of termcap.h; now included in tcap.h - -lib/readline/{terminal,display,readline}.c - - include tcap.h - -lib/readline/Makefile.in - - update dependencies to include tcap.h - - 11/21 - ----- -lib/readline/complete.c - - broke the code that computes the lcd of the list of completion - matches out into a separate function, compute_lcd_of_matches() - -lib/readline/complete.c - - call compute_lcd_of_matches after calling the application-specific - completion ignore function, since it may have eliminated some - names from the match list - -builtins/cd.def - - replaced instances of MAXNAMLEN in the spelling correction code - with PATH_MAX - -lib/readline/terminal.c - - new termcap capabilities: kh (sent by Home key) and kH (sent by - End key) automatically bound to beginning-of-line and end-of-line - respectively in emacs_standard and vi_movement maps - -mailcheck.c - - fix to remember_mail_dates so any message following the - filename is saved correctly - - 11/22 - ----- -lib/readline/bind.c - - fixed extern declaration of _rl_parsing_coditionalized_out - to match declaration in readline.c - - 11/25 - ----- -doc/{bash.{1,html},bashref.texi} - - fixed a gross documentation error in the description of - ${parameter:offset:length} (offset and length were transposed) - - slight changes to the description of output redirection - -subst.c - - new function, quoted_substring, to return substrings of variables - when the expression is within double quotes and the value has - CTLESC characters embedded within it. Called by - parameter_brace_substring - - get_var_and_type should return VT_POSPARMS if `*' is passed as - the variable name - - added a new first parameter for pos_params -- the variable name - - changed pos_params to obey the rules for "$*" wrt using the - first character of IFS as the separator in the result - - if an unquoted $* or $@ is expanded, call quote_escapes on the - result to protect any special characters from inadvertently - causing quoting - - 12/3 - ---- -builtins/ulimit.def - - corrected a misspelling of `unlimited' - - added support for linux RLIMIT_AS resource limit for -v option - and changed the block multiplier to 1024 if we have RLIMIT_VMEM - or RLIMIT_AS - - 12/5 - ---- -lib/readline/readline.c - - fix rl_insert to handle a count of exactly 1024 - -shell.c - - new function: unbind_args(), which removes all the positional - parameters. Just calls remember_args(NULL, 1) - -execute_cmd.c - - call unbind_args when executing a subshell, after setting up - subshell_argX - -bashintl.h - - include if HAVE_LIBINTL_H defined - -config.h.in - - add HAVE_LIBINTL_H define - -configure.in - - add call to AC_CHECK_HEADERS for libintl.h - -doc/Makefile.in - - added infodir and various mandir defines for completeness - -Makefile.in - - changed some of the *dir defines to use the autoconf values - (e.g., bindir = @bindir@) - - changed manroot to mandir, removed old mandir and manext variables - - added `manpfx' variable; should be either `man' or `cat' - - 12/6 - ---- -lib/readline/readline.c - - fixed rl_digit_loop so it once again displays the argument count - as it's being entered (added calls to _rl_save_prompt and - _rl_restore_prompt) - - 12/7 - ---- -support/config.guess - - recognize netbsd/vax - - recognize openbsd on all supported platforms - - recognize tenon's machten running on powerpc and macintosh - - 12/9 - ---- -support/config.guess - - added all sorts of systems from config.guess distributed with - autoconf-2.12 - - 12/10 - ----- -subst.c - - new function quoted_strchr(); does the same thing as strchr but - honors shell backslash and CTLESC quoting conventions - - parameter_brace_patsub now calls quoted_strchr - - 12/11 - ----- -shell.c - - if the shell is named `-su', run the normal login shell startup - files, even if the shell is not interactive. This handles the - case of `su - username -c command' compatibly - -lib/readline/readline.c - - minor change to rl_digit_loop so that M-- and M--1 are equivalent, - as the prompt for digit arguments has always implied - -lib/malloc/malloc.c - - added definitions of calloc() and cfree(), compiled in unless - NO_CALLOC is defined to cpp - - - 12/16 - ----- -parse.y - - protect uses of history_expansion_inhibited with #ifdef - BANG_HISTORY - -[bash-2.0-release candidate frozen] - -builtins/common.c - - changed backslash_quote to quote a tilde if it's the first - character in the string - - 12/17 - ----- -aclocal.m4 - - changed BASH_CC_WORKS to provide a cross-compiling default for - better error messages - -configure.in - - generated configure using autoconf-2.12 - - changed the default value of CFLAGS to `-g -O2' - - 12/18 - ----- -aclocal.m4 - - look for /var/spool/mail before /usr/spool/mail when checking - for the default mail directory - -jobs.c, builtins/shopt.def - - fixed a couple of `macro replacement within a string literal' - problems - -Makefile.in - - removed `realclean' target - -shell.c - - changed the first line ouput by bash --version to conform to - the latest GNU coding standards (replace space between version - and machtype with a hyphen) - - 12/19 - ----- -execute_cmd.c - - when looking at the debug trap in execute_function and - execute_command_internal, make sure it's trapped and not - ignored before trying to save the value of the trap string - - 12/20 - ----- -trap.c - - changed set_signal and ignore_signal to handle EXIT_TRAP and - DEBUG_TRAP specially, so we don't try to fetch signal handlers - or do other unnecessary things - - 12/22 - ----- -builtins/ulimit.def - - if the current euid is not 0, and we're trying to set the hard - limit of a resource to RLIM_INFINITY, set it to the current hard - limit to avoid error messages - -builtins/read.def - - fix for bug that caused core dump if line read had leading white - space and IFS was set to '' - -[bash-2.0-release frozen] - diff --git a/CWRU/old-changelogs/CWRU.chlog.v12 b/CWRU/old-changelogs/CWRU.chlog.v12 deleted file mode 100644 index dc687d4d9..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v12 +++ /dev/null @@ -1,10049 +0,0 @@ - 12/23/1996 - ---------- -[bash-2.0 released] - - 12/27 - ----- -configure.in - - don't automatically use GNU malloc on FreeBSD, the builtin one - is supposed to be better (but doesn't have the debugging hooks) - -builtins/exec.def - - check that full_pathname(command) doesn't return NULL because of - inaccessible parent directories - -support/config.sub - - recognize OpenBSD - -execute_cmd.c - - broke the code that opens a file for output redirection when in - noclobber mode out into a separate function: noclobber_open(). - This tries to avoid race conditions and file replacement between - stat(2) and open(2) - -subst.c - - make sure pat_subst does not run off the end of its return - string when copying the unmatched portion of the input string - - 12/30 - ----- -doc/Makefile.in - - don't install readline.3 by default - -lib/tilde/tilde.c - - removed an unnecessary check for string[i] being non-null in - tilde_find_suffix - - 12/31 - ----- -support/config.{sub,guess} - - merged in changes from config.sub in autoconf-2.12 distribution - -lib/readline/readline.c - - in rl_newline, only call _rl_vi_done_inserting and _rl_vi_reset_last - if readline is currently in vi mode - -lib/readline/display.c - - corrected a misuse of inv_lbreaks where vis_lbreaks was wanted in - the code that decides whether the cursor is at the beginning of - an otherwise-empty line - - 1/2/1997 - -------- -support/bashbug.sh - - fixed a typo, thanks to eggert@twinsun.com - -aclocal.m4 - - new test, BASH_STRUCT_DIRENT_D_FILENO, testing for d_fileno member - of struct dirent - -configure.in - - call BASH_STRUCT_DIRENT_D_FILENO - -config.h.in - - new #define for STRUCT_DIRENT_HAS_D_FILENO - -lib/posixheaders/posixdir.h - - only define d_fileno as d_ino if STRUCT_DIRENT_HAS_D_INO is defined - and STRUCT_DIRENT_HAS_D_FILENO is not defined. This fixed the - problem of compiling getcwd.c on SunOS4.1.4 with cc - - 1/3 - --- -lib/readline/complete.c - - fix a memory-used-after-freed bug reported by Andreas Schwab - -configure.in - - call BASH_CHECK_SOCKLIB only if getpeername is not found in libc - (ac_cv_func_getpeername = no) - - 1/13 - ---- - -builtins/getopt.h - - change #define guard to _SH_GETOPT_H to avoid similar guards in - /usr/include/getopt.h (Dec OSF/1 4.x, for example) - -variables.h - - fix assign_array_from_string so that it rejects attempts to assign - to readonly variables - -subst.c - - fix verify_substring_values to handle offsets that are past the - end or before the beginning (in the case of a negative offset) - of the expanded variable value - - 1/14 - ---- -bashline.c - - fix a problem where any completion after a `cmd` command - substitution would inappropriately attempt command completion, - even if the previous command substitution was correctly closed - -builtins/evalstring.c - - unwind_protect remember_on_history even if the shell is not - interactive, since history can now be used in scripts, and - `source' will turn off interactive_shell before calling - parse_and_execute - -jobs.c - - new function get_job_by_pid(pid, block) to translate a pid to - a job number. The block argument says whether or not to block - SIGCHLD - -jobs.h - - new extern declaration for get_job_by_pid - -builtins/jobs.def - - call get_job_by_pid if an argument appears to be a pid rather - than a jobspec - -configure.in - - configure --without-gnu-malloc automatically on MachTen 4.x - -builtins/cd.def - - change to mindist() so that a best guess of `.' returns 3, - which means not reasonable - -lib/posixheaders/memalloc.h - - changed hpux_9 to __hpux, since the new config stuff doesn't - define hpux_9 - -subst.c - - fix parameter_brace_patsub to handle null patterns (doesn't - do anything) - -oslib.c - - slight change to bzero replacement - -support/bashbug.sh - - changed TEMP to be /tmp/bbug.$$ as a sop to systems with 14-char - file names - -doc/bashref.texi - - add note to POSIX Mode section that the output of `set' when - invoked without arguments is sorted when in POSIX mode - - 1/15 - ---- -support/recho.c - - a couple of changes prompted by a `gcc -Wall' - -subst.c - - changed ASSIGN_RETURN macro to use the do...while(0) idiom to - avoid problems with its multiple statements - -builtins/setattr.def - - a bad identifier given to readonly or export without an assignment - statement (e.g. `readonly a[5]') is an error, but not an assignment - error (i.e., return EXECUTION_FAILURE rather than EX_BADASSIGN) - -tests/{{array,new-exp}.,tilde-}tests - - added `set +o posix' at the beginning to disable POSIX mode, which - causes some of the tests to fail. Some systems (e.g. LINUX-FT), - set POSIXLY_CORRECT by default - -tests/test-tests - - added a warning if $UID is 0 to the effect that the test suite - should not be run as root - - worked around the `noread' and `nowrite' tests failing when run - as root - -test.c - - began removing the remains of the STANDALONE code, since test is - included in GNU shellutils - - 1/16 - ---- -lib/readline/{readline,display}.c - - a couple of slight changes to build on Win95 using djgpp (reported - by x-aes@telelogic.se) - -Makefile.in - - changed TERMCAP_LIBDIR to TERM_LIBDIR, so building the termcap - library (if necessary) should work now - -bashline.c - - new function: quote_word_break_characters(), to backslash-quote - characters in a filename that the readline completion code would - treat as word breaks - - change bash_quote_filename to call quote_word_break_characters if - the completion quoting style says to use backslashes - - add `:' to rl_filename_quote_characters, since it's part of - filename_word_break_characters - -lib/posixheaders/posixjmp.h - - new file, with half of bashjmp.h - - posixjmp.h and lib/readline/posixjmp.h are symlinks to this file - -bashjmp.h - - include "posixjmp.h" for possible redefinitions of setjmp/longjmp - and procenv_t - - 1/17 - ---- -shell.c - - bad options now cause the standard shell usage message (a subset - of what `bash --help' prints) to be displayed on stderr - -trap.c - - don't free the trap command for a DEBUG trap in - restore_default_signal if SIG_INPROGRESS is set -- there's already - a pointer saved to the old value in _run_trap_internal. This - makes bashdb run better, too - -examples/bashdb/bashdb.{pre,fns} - - a couple of minor fixes; it actually has a chance of working now - - 1/21 - ---- -config.h.in - - add a define for , HAVE_DLFCN_H - -configure.in - - look for , define HAVE_DLFCN_H if found - -builtins/enable.def - - include only if HAVE_DLFCN_H is defined - -lib/readline/display.c - - renamed clear_to_eol to _rl_clear_to_eol and made it global, so - other library files (readline.c) can use it - - new function _rl_clear_screen, to clear the screen with the right - termcap escape sequence - -lib/readline/readline.c - - call _rl_clear_to_eol and _rl_clear_screen instead of using tputs - - extern declarations for _rl_clear_to_eol and _rl_clear_screen - - 1/22 - ---- -mailcheck.c - - fixed a problem in make_default_mailpath() where a slash was not - added between the default mail directory and the username - - 1/23 - ---- -stringlib.c - - added a fourth parameter to ansicstr: the length of the returned - string - -externs.h - - changed declaration of ansicstr - -parse.y - - changed call to ansicstr -- saves a call to strlen - -builtins/echo.def - - changed call to ansicstr - - if do_v9 is non-zero, use putchar to output the string instead - of printf, since there may be embedded NULL characters - -doc/{bash.1,bashref.texi}, builtins/trap.def - - modified the `trap' documentation to make it clearer that trap - takes multiple signal specs as arguments - -jobs.c, nojobs.c, jobs.h - - renamed initialize_jobs to initialize_job_control, added an - argument (force) - -jobs.c - - set shell_tty to fileno(stderr) in initialize_job_control if - the shell is not interactive. This fixes the problem of bad - tty pgrps when monitor mode is turned on in a non-interactive - shell - -sig.c - - made initialize_terminating_signals do only that; moved the rest - of the code that used to be there into a new function: - initialize_shell_signals, which calls initialize_terminating_signals - if the shell is interactive - - initialize_terminating_signals is now extern - - made reset_terminating_signals return immediately if - termsigs_intitialized is zero, meaning that - initialize_terminating_signals has not been called - -sig.h - - new extern declaration for initialize_terminating_signals - -trap.c - - call initialize_terminating_signals from set_signal if sig is - EXIT_TRAP and the shell is not interactive. Since the terminating - signals do not need to be initialized until a trap on exit is - set, not doing that at startup should result in a speed increase - for scripts - -execute_cmd.c - - save and restore command->flags in time_command, so you can use - `time command' in a loop - - 1/24 - ---- -lib/readline/display.c - - fix redisplay code to wrap correctly if the prompt is longer than - the screen width (reported by bos@Eng.Sun.COM) - -lib/readline/undo.c - - don't include , it's not needed - -lib/readline/{util,readline}.c - - include "posixjmp.h" instead of - - readline_top_level is now a `procenv_t' instead of a `jmp_buf' - (now readline uses the correct posix semantics for preserving - the signal mask and other things across longjmp) - -parse.y - - fixes to push_string/pop_string to make them more general -- they - now can be used generally, instead of having to be associated - with an alias being expanded - - fixes to the parser so that it parses (( ls abc; ls def); ls ghi) - as a nested subshell command for backwards compatibility. Broke - the double-paren expression parsing off into a new function: - parse_arith_cmd, called from read_token when a `((' is seen. If - it looks like an arithmetic command, return `let' and set things - up so that the expression is returned as a double-quoted string - by the next call to read_token. If it's a nested subshell, push - the text we parsed onto the list of strings for later consumption - and return `(' - -lib/glob/glob.c - - fix glob_vector so it doesn't short-circuit checking a filename if - it starts with a `.' and the pattern starts with `\.' (if - noglob_dot_filenames is set). This makes `".junk2"*' match - `.junk2.txt' correctly - - 1/27 - ---- -support/bashbug.sh - - ask for confirmation before sending the bug report - -builtins/fc.def - - when editing and re-executing a multiline command, make sure - current_command_line_count is initialized and then incremented - for each line read from the file so that the lines added to - the history list by fc_replhist and fc_addhist obey the `lithist' - and `cmdhist' shopt options. Reported by tibbitts@pb.seflin.org - - 1/28 - ---- -lib/readline/readline.h - - added a couple of extern declarations for variables described in - the documentation but heretofore undeclared - -builtins/ulimit.def - - try to catch some classes of integer overflows before calling - set_limit - - 1/29 - ---- -parse.y - - push and pop a `(' delimiter while parsing a $(...) construct, so - the history code doesn't try to inappropriately add a `;' when - a newline appears in the `...' - -aclocal.m4 - - new macro, BASH_STRUCT_WINSIZE, which looks for `struct winsize' - in (or one of the files it includes) - -configure.in - - call BASH_STRUCT_WINSIZE - - slightly reorganized the calls to bash-specific macros - -config.h.in - - add an `#undef STRUCT_WINSIZE_IN_SYS_IOCTL' - -jobs.c, nojobs.c - - only look in sys/ptem.h for struct winsize if - STRUCT_WINSIZE_IN_SYS_IOCTL is not defined to cpp - - 1/30 - ---- -.{distribution,patchlevel} - - renamed to _{distribution,patchlevel} - -configure.in - - create a variable BASHVERS, from the contents of _distribution, - and a variable BASHPATCH, from the contents of _patchlevel, - (using m4 magic so we don't have to distribute .distribution - and .patchlevel) and substitute them into Makefile.in - -Makefile.in - - use Version and PatchLevel variables instead of the contents of - .distribution and .patchlevel, respectively. These are set by - configure - - removed `.machine' from targets and dependencies - -support/mkversion.sh - - new shell script to handle updating version.h, replaces mkversion.c - (which is now overkill) - -support/mkdist - - don't bother with writing .distribution and .patchlevel files, - since they're no longer distributed - -support/mknewvers.sh - - simple bash script to make new version files. It can increment - the major or minor version numbers or patchlevel, or take a - completely new version number (e.g., 2.01) as an argument - -doc/Makefile.in - - added support for the `install-info' command to update the info - directory file after installing bash.info - - 1/31 - ---- -builtins/help.def - - fix core dump with `help --' - -susbt.c - - make call_expand_word_internal obey the convention that if - expand_word_internal returns &expand_word_{fatal,error}, then - w->word has already been freed - - return &expand_word_fatal from expand_word_internal if the shell - is not interactive and `set -u' has been executed - -test.c, general.c - - moved group_member from test.c to general.c - -externs.h, general.h - - moved extern declaration of group_member from externs.h to general.h - -general.c - - broke the code that initializes the group array out into a new - function, initialize_group_array() - - initialize_group_array() now initializes an array even if the OS - does not have getgroups(). If it does not, an array with one - element (the real gid) is created - - call sysconf(_SC_NGROUPS_MAX) if sysconf is available and - _SC_NGROUPS_MAX is defined - - new function, char **get_group_list(int *), to return an array - of strings made from the groups list - -variables.c - - new dynamic array variable: GROUPS, expands to the group set as - obtained with getgroups() (or whatever initialize_group_array() - makes) - -doc/{bash.{1,html},bashref.texi} - - added description of GROUPS variable - -test/test-tests - - before modifying the setgid bit on /tmp/setgid, try to change its - group to ${GROUPS[0]} - - 2/3 - --- -aclocal.m4 - - new autconf macro, BASH_MISC_SPEED_T, to see if speed_t is defined - in - -configure.in - - call BASH_MISC_SPEED_T - -config.h.in - - add `#undef SPEED_T_IN_SYS_TYPES' - -lib/readline/tcap.h - - include `rltty.h' if HAVE_TERMCAP_H and __linux__ are defined, but - SPEED_T_IN_SYS_STYPES is not, before including - -support/mksignames.c, siglist.c - - add support for 4.4 BSD SIGLOST - -support/config.guess - - add support for recognizing QNX based on `uname' output - -Makefile.in - - make sure recho and zecho are compiled with the same set of CC - options as the rest of the sources - -lib/readline/bind.c - - change calls to rl_generic_bind to cast the third argument to - (char *) where necessary - -command.h - - two new flags: CMD_AMPERSAND (currently unused), and CMD_STDIN_REDIR, - which means that this command should have its standard input - redirected from /dev/null if there are not any explicit redirections - to stdin - -execute_cmd.c - - a redirection of type r_inputa_direction is no longer added at the - beginning of the redirection chain for an async command; - CMD_STDIN_REDIR is set in the flags instead - - new function: stdin_redirects: returns the number of redirections to - stdin in a chain of redirections - - new functions: async_redirect_stdin() to open /dev/null and make it - file descriptor 0 - - changes to make CMD_STDIN_REDIR propagate to all of the necessary - functions (like execute_simple_command) - - execute_disk command now takes the flags from simple_command rather - than just the CMD_NO_FORK flag as its last argument - - various places after make_child is executed (in the child) check for - CMD_STDIN_REDIRECT (and no stdin redirections or piping) and call - async_redirect_stdin - - stdin_redir is now global - -eval.c - - set stdin_redir to 0 just before calling execute_command so it - gets reset to a known value and doesn't persist across commands - - 2/4 - --- -builtins/ulimit.def - - add a stub function for ulimit(2) on systems without HAVE_RESOURCE - or HAVE_ULIMIT that just sets errno to EINVAL and returns -1 -- - QNX is one such system - -bashhist.c - - pre_process_line needs to protect all occurrences of hist_verify - with #ifdef READLINE - -builtins/shopt.def - - hist_verify needs to be protected with #ifdef READLINE, not - #ifdef HISTORY - - 2/5 - --- -support/config.{guess,sub}, configure.in - - chages to better support the Harris Night Hawk - -[many files] - - changes for things pointed out by gcc -Wall - -lib/glob/Makefile.in - - make sure -DSHELL is included in CCFLAGS so that globbing is - interruptible - -lib/malloc/malloc.c - - extern declaration for botch: if botch is #defined, it should be - the name of a void function - -configure.in,Makefile.in,builtins/Makefile.in, -lib/{glob,malloc,readline,tilde}/Makefile.in - - add a LOCAL_DEFS variable, substituted from configure into the - various Makefiles. It's set to -DSHELL, so that define gets - passed to all sub-makes without doing anything special - -lib/readline/readline.c - - change to rl_digit_loop to make it compatible with GNU emacs: - if a key bound to `universal-argument' is read after reading - some digits, it terminates the argument but is otherwise - ignored. This is how people can insert repeated digits - -doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo - - changed description of `universal-argument' to describe how - to terminate a numeric argument - - 2/6 - --- -jobs.c - - changed kill_pid to diddle the job and process data structures - if we're sending SIGCONT to a stopped job with `kill' so that - the shell knows the job is running again. ksh93 does this - - 2/7 - --- -unwind_prot.c - - changed bcopy to FASTCOPY - -builtins/enable.def - - changed pointer arithmetic in delete_builtin to just subtract - the head of the builtins list (shell_builtins) from a pointer - to the builtin to be deleted (b) to find its index in the list - on ANSI C systems - - 2/10 - ---- -lib/readline/bind.c - - when using old-style keynames to bind to a new-style macro, - pass an array of type (unsigned char *) to rl_macro_bind - -builtins/getopt.c - - change sh_getopt to return EOF if nextchar is empty or NULL - and sh_optind is greater than argc. This can happen if a - script mixes calls to `getopts' with calls to `shift' - - 2/11 - ---- -print_cmd.c - - fixed make_command_string_internal so that commands with the - CMD_TIME_POSIX flag set print `time -p' instead of `time' - - changed print_redirection_list so the here documents are - printed after all the other redirections, and followed by a - newline (rather than a possible semicolon) - - added a new variable, was_heredoc, to avoid adding a semicolon - at the beginning of an empty line after printing the heredoc - ending delimiter - -execute_cmd.c - - don't put the gnu_argv_flags into the environment any more; it's - proven to be a bad idea - -configure.in - - set LOCAL_CFLAGS to `-DSunOS5' on Solaris 5.5[.x] - -builtins/echo.def - - only call fflush() after printing each word on SunOS 5.5, since - that's the system with the bug that prompted its inclusion in - the first place - -support/mksignames.c - - added support for more system-specific signals from AIX 4.2, - changed initialization order so that system-specific signals - are done first, before the common signals - - 2/12 - ---- -execute_cmd.c - - broke the code that creates a file containing the text of a - here document out into a separate function: here_doc_to_fd - - create the temp file used for a here document with mode 600 - - open the temp file used for a here document with O_EXCL - -shell.h - - changed the uid members of struct user_info to be of type uid_t - and the gid members to be of type gid_t - -parse.y - - changed the type of the `type' argument to init_yy_io() to be - `enum stream_type', since that's what's always passed - -input.h - - changed the function prototype for init_yy_io so the third arg is - type `enum stream_type' - -externs.h - - added a prototype for getcwd, if HAVE_GETCWD is not defined - -builtins/umask.def - - changed all variables that are used as arguments to or save the - return value from umask(2) to be of type mode_t - - changed print_symbolic_umask to take an argument of type mode_t - - 2/13 - ---- -jobs.c - - if old_sigint_handler is set to SIG_DFL, as it will be in a script - without a trap on SIGINT installed, call termination_unwind_protect() - directly from waitchld() - - 2/14 - ---- -configure.in - - added a section before the call to BASH_CHECK_LIB_TERMCAP to - set a variable prefer_curses on some systems (AIX, for one) - -aclocal.m4 - - in BASH_CHECK_LIB_TERMCAP, don't return -ltermcap if $prefer_curses - is non-empty - -lib/readline/Makefile.in - - redid the dependencies - - 2/17 - ---- -hashlib.c, getcwd.c - - include `bashansi.h' instead of stdlib.h and string.h - -error.c, siglist.c, xmalloc.c, builtins/{common,evalfile,mkbuiltins,psize}.c, -builtins/{exec,exit,fg_bg,hash,history}.def - - include `bashtypes.h' instead of directly including - -builtins/fc.def - - include ../bashtypes.h and ../posixstat.h instead of bashtypes.h - and posixstat.h - -builtins/mkbuiltins.c - - include ../posixstat.h instead of - -general.h - - include `bashtypes.h' if RLIMTYPE is defined, so we can fetch - a definition of quad_t (or whatever) from before - using it in a function prototype - -Makefile.in, builtins/Makefile.in - - updated dependencies - - 2/18 - ---- -builtins/set.def - - new function, set_posix_mode, called when `set [-+]o posix' - or `shopt -[su] -o posix' is executed. It sets or unsets - $POSIXLY_CORRECT and calls sv_strict_posix - -subst.c - - in sv_strict_posix, call posix_readline_initialize only if - the shell is interactive (interactive_shell != 0) - -shell.c - - if we are acting like `sh', call posix_readline_initialize - if the shell is interactive - - moved the code that does posix.2 mode initialization after - interactive_shell is set, and call posix_readline_initialize - if interactive_shell is non-zero - -bashwait.h - - renamed to unionwait.h, since that is what it defines - -posixwait.h - - moved the POSIX 1003.1 job control defines here from jobs.h - -jobs.h - - include `posixwait.h' - - 2/19 - ---- -braces.c - - if SHELL is defined, pass the contents of new-style command - substitution through without expanding brace constructs between - the parens -- let the subshell do it - -subst.c - - when brace-expanding words, preserve the flags (word->flags) if - brace expansion does not change the word. This fixes the problem - of things like - - local -a avar=( ${PATH//: } ); - -bashline.c - - have shell_expand_line pass a copy of rl_line_buffer to expand_string - in case there are substitution errors and the string gets freed - - 2/20 - ---- -expr.c - - make sure that expland and explor set `lasttok' to LAND and LOR, - respectively, if they parse `&&' or `||'. This makes the - precedence code work right - -subst.c - - changes so that non-interactive shells exit immediately when a - parameter that is unset is referenced after `set -u' has been - executed causes the shell to exit immediately - - 2/21 - ---- -flags.c - - if `set -r' is executed, call maybe_make_restricted so that $PATH - and $SHELL are made read-only - -execute_cmd.c - - if `set -e' has been executed, and we're inverting a pipeline's - return status with `!', set CMD_IGNORE_RETURN so a failing - command does not inadvertently cause the shell to exit before - the exit status can be inverted. This is probably only a problem - with the `eval' builtin. - - 2/24 - ---- -builtins/hash.def - - add a missing argument of 0 to add_hashed_command - -builtins/kill.def - - job identifiers can be used in non-interactive shells as long as - job control has been turned on with `set -m' - -jobs.c - - we want to be notified of stopped jobs if job_control is non-zero, - even if the shell is not interactive - -execute_cmd.c - - make sure shell_execve returns EX_NOTFOUND if execve fails and - errno is set to ENOENT - - makes sure execute_builtin saves the temporary environment to - builtin_env for the `eval' builtin, since it can destroy the - temporary environment when it calls parse_and_execute - -bashhist.c - - new variable: hist_last_line_added, set to 1 if the last command - line was added to the history successfully as a separate entry. - Used by `history' and `fc' - - 2/25 - ---- -trap.c - - save line number before executing trap command, because - parse_and_execute resets it to 1 and the trap command might - want it - -execute_cmd.c - - change to executing_line_number to return trap_line_number if - the shell is currently running a trap - - 2/26 - ---- -execute_cmd.c - - change to time_command so that a `real' value of 0 does not - cause a divide-by-zero error when computing cpu percentage - -lib/readline/signals.c - - if MUST_REINSTALL_SIGHANDLERS is defined, reinstall the SIGWINCH - handler in rl_handle_sigwinch - -builtins/set.def - - `unset' now rejects attempts to unset names that are not valid - shell identifiers as errors - - add a description of `-o history' option to help text - -subst.c - - in parameter_brace_patsub, we want backslash removal done on - the replacement if (mflags & MATCH_QUOTED), since the code - in expand_word_internal will not do it. We need to call - expand_string_unsplit directly, since maybe_expand_string does - not do the right thing - - 2/28 - ---- -execute_cmd.c - - if execute_for_command finds that the iteration variable is readonly, - decrement loop_level before returning - -builtins/break.def - - if the break count is <= 0, display an error message and break out - of all loops - -builtins/command.def - - if PATH is unset, and we're using command -p, we don't want PATH - to be set to the empty string when `command' completes - -builtins/common.c - - POSIX.2 says `kill -l signum' prints the signal name without the - leading `SIG' prefix, so check for this_shell_builtin == kill_builtin - in display_signal_list - -builtins/getopts.def - - when invoked without any arguments, `getopts' now prints a usage - message - - 3/3 - --- -builtins/common.c - - add a second argument to get_numeric_arg: if non-zero, the shell - exits on a bad argument; if not, the shell jumps to top_level - with a DISCARD argument, which aborts the current command - -builtins/{break,exit,history,return,shift}.def - - change calls to get_numeric_argument - -lib/readline/funmap.c - - add `dump-macros' to list of bindable names - -lib/readline/readline.h - - added extern declaration for rl_prompt (it was apparently missing) - -lib/readline/readline.c - - new internal function, _rl_init_line_state, which sets rl_point - and rl_end to 0, sets the_line to point to _rl_line_buffer, and - clears the line - -lib/readline/callback.c - - if a user's callback function does not clear the line, clear it - for him by calling _rl_init_line_state - - 3/4 - --- -alias.c - - made the readline support functions #ifdef READLINE, so they're - not compiled into the shell unless readline is - -lib/readline/bind.c - - new function _rl_untranslate_macro_value, to expand meta-prefixes - and other special characters in a macro value for printing by - _rl_macro_dumper_internal - - call _rl_untranslate_macro_value in _rl_macro_dumper_internal to - get a printable version of the macro value - -lib/readline/readline.c - - new variable, rl_dispatching, set to 1 when we call a function - from _rl_dispatch - -lib/readline/readline.h - - extern declaration for rl_dispatching - -lib/readline/complete.c - - make sure S_ISCHR and S_ISBLK are defined before using them - -lib/readline/terminal.c - - add a new #define NEED_EXTERN_PC. Define this if the termcap - or curses libraries need `extern' before declarations of PC, - BC, and UP - -lib/readline/{readline,terminal,histfile}.c - - changes to compile on OS/2 with OS/2 `EMX' port of gcc, originally - sent by ilya@math.ohio-state.edu - -builtins/set.def - - fixed a bug in set_shellopts that caused the shell to crash if - there were no shell options set - - 3/5 - --- -configure.in,Makefile.in - - choose run-all or run-minimal as the test script based on whether - the --enable-minimal-config option was given to configure - -builtins/setattr.def - - fixed `export -p' and `readonly -p' so that they output `export' - or `readonly' when in POSIX mode, as POSIX.2 specifies - - 3/6 - --- -builtins/setattr.def - - make `readonly -a var=(...)' work just like `declare -ar var=(...)', - since the two logically mean the same - - `readonly -f' and `export -f' don't print the function definition - for each readonly or exported function, respectively, when in - POSIX mode - -jobs.c, nojobs.c - - don't report status for processes killed by SIGPIPE if - DONT_REPORT_SIGPIPE is defined - -config.h.top - - added a commented-out define for DONT_REPORT_SIGPIPE - -execute_cmd.c - - `time' can now be used to time background pipelines, and reports - the timing statistics when the pipeline completes - -[bash-2.01-alpha1 frozen] - - 3/12 - ---- -subst.c - - move the parent end of the pipe file descriptor used for process - substitution to a high, unused file descriptor to avoid clashes - with redirections performed explicitly by a script - -configure.in - - added a `--with-curses' argument so curses can be forcibly chosen - over libtermcap (some Unix versions ship lousy termcap databases) - -support/mkconffiles - - new script to create _distribution and _patchlevel from values - contained in `configure' - -doc/bashref.texi - - updated installation instructions - - 3/13 - ---- -general.c - - if `getgroups' returns 0, make sure we add the primary group id - as GROUPS[0]. - - if we have getgroups, and the primary gid is not in the array - getgroups returns, add it as group_array[0] and shuffle everything - up one element. This ensures that current_user.gid == group_array[0] - all the time - -tests/builtins.tests - - changes to avoid stray variables in environment when the shell - version of printenv is used with bash as /bin/sh, running the - `exec -c' tests. - - 3/14 - ---- -builtins/cd.def - - spelling correction is no longer enabled by default - -support/bashbug.sh - - if the shell's release status is alpha or beta, offer the option - of sending the bug report to the bash-testers mailing list as - well as to chet - - 3/17 - ---- -configure.in - - configure --without-gnu-malloc by default on *-sgi-irix6* because - their code needs 8-byte alignment - -support/bashbug.sh - - ``' needs to be quoted with a backslash in double-quoted strings - -aclocal.m4 - - slight changes to the strcoll test, since AIX 4.2 returns -1, 0, or - 1 from strcmp(3) but a numeric collation order difference from - strcoll(3) - - 3/18 - ---- -command.h - - new redirection error code: HEREDOC_REDIRECT - -execute_cmd.c - - return HEREDOC_REDIRECT from do_redirection_internal when - here_document_to_fd cannot create the temp file for a here document - - changed redirection_error to print a meaningful message when - here document temp file creation fails (HEREDOC_REDIRECT) - - 3/19 - ---- -subst.c - - changes to match_pattern_char: return 1 if the first char of the - pattern is `?' only if the string is non-null; just return 1 if - the first char of the pattern is `[' and the string is non-empty - rather than try to re-implement the brace matching code from fnmatch - -lib/glob/fnmatch.c - - some changes from glibc-2.0.1 posix/fnmatch.c - - 3/21 - ---- -variables.c - - only do the initialization of `ignoreeof' if the shell is - interactive - - reset values of $SHLVL > 1000 to 1 in adjust_shell_level, and - don't call itos, since we don't need its generality - - new function, initialize_shell_level, just calls adjust_shell_level - with argument of 1. If $SHLVL is unset, adjust_shell_level will - deal with it correctly - - change initialize_shell_variables to not malloc a copy of each - environment variable, just keep two pointers into the env string: - one for the name, one for the value - - broke the code that computes the value of $BASH out into a separate - function: get_bash_name - - get_bash_name special-cases shell_name with a `./' prefix when - initializing $BASH - - new function: set_home_var, sets $HOME to current_user.home_dir if - it's not already set, calling get_current_user_info if - current_user.home_dir is NULL - - new function: set_shell_var, sets $SHELL to current_user.shell if - it's not already set, calling get_current_user_info if - current_user.shell is NULL - - changed places that reference information in current_user to check - for NULL values of the member they're interested in and call - get_current_user_info if necessary - -shell.c - - moved the code that sets up the information in current_user that - comes from the password file into a new function, - get_current_user_info - - shell_initialize calls get_current_user_info only if the shell is - interactive - -externs.h - - new extern declaration for get_current_user_info(), so variables.c - can use it - - 3/24 - ---- -lib/tilde/tilde.c - - if SHELL is defined, user the current_user struct info to find - the user's home directory rather than calling getpwuid - - 3/25 - ---- -nojobs.c - - don't try to open /dev/tty when getting or setting the tty state - and window size; use shell_tty instead - - initialize shell_tty to standard error in initialize_job_control - - only fetch the tty state initially if the shell is interactive - -general.c - - open /dev/tty with the O_NONBLOCK flag - -variables.c - - changed all_vars so that it sorts its output all the time, not - just when in POSIX mode. This means that the output of `set' - and `export' will be sorted - -builtins/set.def - - in initialize_shell_options, only call parse_shellopts if we - inherited $SHELLOPTS from the environment - - make sure we call parse_shellopts from initialize_shell_options - with a copy of the value of SHELLOPTS, in case one of the functions - called while setting one of the variables modifies $SHELLOPTS - -lib/readline/readline.c - - make sure that digit arguments don't change the state of - rl_last_func - -support/printenv.c - - new file, printenv(1) clone, used to avoid environment variables - that might be set automatically when using printenv.sh - -lib/tilde/tilde.c - - if SHELL is defined, don't call getenv to get the value of $HOME, - call get_string_value () directly - - 3/26 - ---- -lib/readline/histexpand.c - - abstracted the `#ifdef SHELL' stuff that checked for special cases - that should not be history expanded ([!...], ${!...}) into a call - to a function that is the value of the - new history_inhibit_expansion_function variable - -lib/readline/history.h - - extern declaration for history_inhibit_expansion_function - -bashhist.c - - new function, bash_history_inhibit_expansion, which checks for - the special cases in which history expansion should be inhibited - - changes to the various history initialization functions to - set history_inhibit_expansion_function - -lib/readline/doc/hstech.texinfo - - documented history_inhibit_expansion_function - -lib/readline/shell.c - - new file, containing versions of the functions that are provided - by bash when readline is linked as part of bash - - new function: get_env_value(). If SHELL is defined, this calls - get_string_value(). If SHELL is not defined, this calls getenv() - -lib/readline/histexpand.c - - moved single_quote() to shell.c - -lib/readline/util.c - - moved savestring() to shell.c - -lib/readline/terminal.c - - moved set_lines_and_columns() to shell.c - -lib/readline/Makefile.in, Makefile.in - - added shell.c and shell.o to the appropriate variables that contain - the files comprising the readline and history libraries - -lib/readline/signals.c - - introduced two new cpp defines: HANDLE_JOB_SIGNALS and - HANDLE_SIGTERM. When HANDLE_JOB_SIGNALS is defined, SIGTSTP, - SIGTTIN, and SIGTTOU are caught and handled. When HANDLE_SIGTERM - is defined, SIGTERM is caught and handled. These are both - defined automatically if SHELL is not defined - -lib/readline/{bind,histfile,nls,readline,terminal}.c - - call get_env_value instead of getenv(). This should remove the - dependency on being able to redefine getenv() in oslib.c - -shell.c - - added a missing argument of -1 to the call to list_minus_o_opts. - Now `bash -o' lists all options, not just random ones depending - on what's on the stack - - 3/28 - ---- -builtins/ulimit.def - - change RLIM_INFINITY to the hard limit only if the hard limit is - greater than the current (soft) limit - -hashlib.c - - return immediately from flush_hash_table if the hash table passed - is NULL - - 4/1 - --- -shell.c - - remove call to initialize_filename_hashing -- initialize the hash - table the first time a hashed command has to be remembered - -hashcmd.c - - new file, with functions to perform filename hashing and lookup - taken from builtins/hash.def and builtins/common.c - - change to remember_filename -- call initialize_filename_hashing - if hashing_initialized is 0 - -hashcmd.h - - new file, mostly from builtins/hashcom.h, with extern function - declarations added - -execute_cmd.c, builtins/{hash,type}.def - - include hashcmd.h for hash function and type definitions - -builtins/{common.{c,h},hash.def} - - moved hashing functions and declarations to hashcmd.c/hashcmd.h - -Makefile.in, builtins/Makefile.in - - changed source and object file definitions and dependencies because - of addition of hashcmd.h and hashcmd.c - -builtins/hash.def - - return immediately from print_hashed_commands if hashed_commands - is empty, indicating that the hash table has not been initialized - - 4/2 - --- -lib/readline/bind.c - - fixed translation of ESC in rl_untranslate_keyseq and - rl_untranslate_macro_value - -lib/readline/{readline,kill}.c - - added an argument to _rl_fix_point telling it whether or not to - fix up the mark also; changed calls to _rl_fix_point to add the - appropriate argument - -Makefile.in - - changed the substitution delimiter in the `sed' commands that - create bashbug from `:' to `%' to avoid conflicts with options - containing `:' - - 4/3 - --- -print_cmd.c - - made the initial value and the default growth value for the - printed command somewhat smaller -- we don't really need to - allocate 4096 bytes for the printed command - - added stdarg support to xprintf if PREFER_STDARG is defined - -stringlib.c - - changed strip_trailing to take the index of the last character - as the second argument, saving a (useless) call to strlen, since - the caller already knows where the end of the string is - -subst.c - - change call to strip_trailing in command_substitute to add the - new second argument - -externs.h - - changed extern declaration for strip_trailing - - 4/4 - --- -Makefile.in, configure.in, lib/malloc/Makefile.in - - changed the strategy for picking which `malloc' to include by - having configure define a `malloc target' and the Makefile in - lib/malloc implementing rules for that target - - 4/5 - --- -Makefile.in - - slightly changed the rules for remaking `parser-built': it is - now a copy of y.tab.h, updated only when the contents of y.tab.h - change - - everything that used to depend on y.tab.h now depends on - parser-built - - 4/6 - --- -execute_cmd.c, print_cmd.c - - use #include so we pick up y.tab.h from the build - directory instead of the source directory if it happens to be - recreated in the build directory - - 4/7 - --- -bashline.c - - fixed another problem with `pwd`/[TAB] thinking that the `/ - started an unclosed command substitution, generating errors - - 4/8 - --- -general.c - - renamed bash_tilde_expansion_failure_hook to be - bash_special_tilde_expansions, since that more accurately reflects - its function - - changed tilde_initialize so that there is no failure hook -- the - special expansions are handled first with the preexpansion hook - -lib/tilde/tilde.c - - new variable: tilde_expansion_preexpansion_hook -- if non-null, it - points to a function that is called before standard tilde expansion - is attempted - -lib/tilde/tilde.h - - extern declaration for tilde_expansion_preexpansion_hook - -doc/{bash.{1,html},bashref.texi} - - added optional open paren to description of `case' command syntax - - 4/9 - --- -variables.c - - on qnx, set and export a variable `NODE' which contains the QNX - `node id' - -general.c - - QNX system can now handle pathnames with a leading `//' - -configure.in - - added `-Dqnx' to LOCAL_CFLAGS on QNX machines - -lib/malloc/getpagesize.h - - some systems need sysconf(_SC_PAGE_SIZE) to obtain the page size; - added code to check for it - - 4/10 - ---- -print_cmd.c - - include the prototype for cprintf only if PREFER_STDARG is defined, - otherwise just have a K&R-style forward function declaration - -hashlib.h - - reduced the default number of buckets in a hash table to 53 - -lib/tilde/tilde.c - - prime the result string in tilde_expand by allocating a new string - that's as long as the input string (+16 if a tilde appears in - the string to be expanded). This should reduce the number of - reallocs - -subst.c - - broke the code that reads the output of a command substitution - through the pipe to the subshell out into a separate function: - read_comsub(). This does not use stdio, but rather reads - directly from the pipe into a local 128-character buffer - - 4/11 - ---- -execute_cmd.c - - some systems need both and , so include both - if it's possible, otherwise include (if present) - -lib/readline/rl{tty,defs}.h - - moved includes of , , etc. to rltty.h - -lib/readline/terminal.c - - include rltty.h after rldefs.h - -variables.c - - changes to make environment creation faster and use less memory - (fewer malloc/free calls, too): - - o two new variables: export_env_index (how many environment - strings are in export_env) and export_env_size (the - number of slots for strings allocated in export_env) - o added new function add_to_export_env, since adding the - exported shell variables and shell functions does not - need to search the export_env for a definition to supersede - (we just cleared it out!) - o renamed add_or_supersede to add_or_supersede_exported_var, - since it always works on export_env, and changed the second - argument to a flag saying whether or not to allocate a new - copy of the string placed into the environment - o changed calls to add_or_supersede to the new - add_or_supersede_exported_var with the appropriate flags - o don't free and reallocate export_env in maybe_make_export_env, - just free the strings and start anew - o prime the size of export_env from the total number of shell - variables and shell functions -- this will always be enough - for the exported shell functions and variables, and big - enough most of the time for the entire environment - -builtins/cd.def - - efficiency hack in bindpwd(): if PWD is exported, we will have to - rebuild the entire exported environment after every time we change - directories. What we do is see if array_needs_making changes value - from 0 to 1 after bind_variable ("PWD", dirname) is called, and - that PWD is exported. If that happens, we just replace the value - of PWD in the exported environment with a call to - add_or_supersede_exported_var - -bashline.c, parse.y - - check calls to pre_process_line to make a fresh copy of the line - if pre_process_line returns what it was passed, in preparation - for future changes - -bashhist.c - - pre_process_line now returns its argument if it did not make - any changes to it - -alias.c - - free the bucket entry holding the alias to be removed in - remove_alias, as well as the data - - 4/14 - ---- -unwind_prot.c - - if an unwind-protect frame is being discarded, and its cleanup - function is `restore_variable', the `arg' member points to a - SAVED_VAR that must be freed. This change is made in - remove_unwind_protect_internal and unwind_frame_discard_internal - -parse.y - - need to free memory allocated by parse_arith_cmd if it is an - arithmetic command, after using it to make a new word - -subst.c - - fixed some memory leaks caused by not freeing the argument to - make_bare_word, which duplicates its string argument - - need to dispose list generated by list_rest_of_args in - paramter_list_remove_pattern - - make sure the return value from getpattern() is freed - - make sure array_value_internal always returns newly-allocated - memory - - get_var_and_type returns a new type: VT_ARRAYMEMBER if the - string passed is of the form var[index] - - make sure parameter_brace_substring frees the memory allocated - by get_var_and_type if verify_substring_values returns 0 - -hashlib.c, hashlib.h - - new function, dispose_hash_table (table), which frees the - table's bucket array and the table itself - -alias.c - - call dispose_hash_table from delete_all_aliases instead of just - freeing the table - -pathexp.c - - make sure to free `newnames' (but *not* its contents) before - returning from ignore_globbed_names - -builtins/exec.def - - make sure the argv created to pass to shell_execve is freed if - the execve fails and we're not exiting on failed execs - -expr.c - - broke evalexp into two functions: evalexp, which sets up the - jmp_buf that errors jump to, and subexpr, which does the - evaluation and pushing and popping of contexts - - readtok now calls subexpr to evaluate subexpressions in - parentheses - - evalexp now takes an additional paramter, a pointer to an int. - If the expression contains errors, the location to which this - points gets 0, otherwise it gets 1 to show that the value - returned may be used. This plugs up memory leaks that were - the result of evalexp() longjmping back to top_level - - fixed a memory leak: expr_stack[0] was not being freed - -externs.h - - changed extern declaration for evalexp - -variables.c, subst.c, builtins/let.def - - changed calls to evalexp appropriately. They either cause a - longjmp (top_level, DISCARD) (which is what the old stuff in - expr.c did) or are handled by returning an appropriate error - value (e.g., &expand_word_error in subst.c) - - 4/16 - ---- -shell.c - - make sure to free dollar_vars[0] before assigning it the first - argument following `-c command' - -variables.c - - if unsetting a local variable with a previous context, make sure - to free the hash table element used to store the local variable - -lib/readline/terminal.c - - rearrange the includes so is included before rltty.h, - as it is in rltty.c - - 4/17 - ---- -flags.c - - new function: reset_shell_flags, which resets all of the flags - back to their initial values - -flags.h - - extern declaration for reset_shell_flags - -builtins/set.def - - new function: reset_shell_options, which resets all of the -o - options that are not also shell flags back to their initial values - -builtins/shopt.def - - new function: reset_shopt_options, which resets all of the shopt - options that are not also shell flags or -o options back to their - initial values - -builtins/common.h - - extern declarations for reset_shell_options and reset_shopt_options - -execute_cmd.c - - broke the code that reinitializes things when an executable script - without a leading `#!' is found out into a new function: - initialize_subshell - - initialize_subshell now calls the reset_* functions that reset the - shell flags and options - -general.c, general.h - - move_to_high_fd now takes a third argument: the highest fd at which - to start looking. If that's less than 20, the maximum number of - open files as returned by getdtablesize() is used (which is what - it did before this) - -jobs.c, shell.c, subst.c - - changed calls to move_to_high_fd appropriately - -[bash-2.01-beta1 frozen] - - 4/18 - ---- -general.c - - itos now uses a local char buffer to do its conversion, but still - returns newly-allocated memory - - 4/21 - ---- -variables.c - - be a little more careful when checking for backwards-compatibility - with exported function definitions - - 4/22 - ---- -builtins/ulimit.def - - translate RLIM_INFINITY to limit.rlim_max if the current limit is - less than or equal to the hard limit, not just strictly less than - (the change of 3/28 was too drastic) - - 4/23 - ---- -oslib.c - - fixed definition of to_lower on machines without strcasecmp - -trap.c - - don't free the trap command in change_signal if the SIG_INPROGRESS - is set in the signal's flags -- it will cause memory to be freed - twice if a trap command resets the signal handler more than once, - and _run_trap_internal keeps a pointer to the trap command so it - can free it, so there will be no leaks - - 4/24 - ---- -aclocal.m4,configure.in - - removed BASH_CC_WORKS, since AC_PROG_CC now has the functionality - -shell.c, externs.h - - get_current_user_info is now a void function - -bashline.c - - alias_expand_line_internal was removed - - new function, alias_expand_line, performs alias expansion on - rl_line_buffer and either replaces rl_line_buffer or signals - an error - - new bindable commands: alias-expand-line and - history-and-alias-expand-line, available if ALIAS is defined - - 4/25 - ---- -Makefile.in, lib/malloc/malloc.c - - changed the define that turns on malloc range checking from - `rcheck' to `RCHECK' - -lib/readline/isearch.c - - fixed a couple of places where rl_search_history would try to - free a NULL pointer - - 4/29 - ---- -unwind_prot.c - - fixed a problem with saving a variable that is a null pointer - in unwind_protect_var. It happens only on machines where the - size of a pointer is not the size of an int. The old FASTCOPY - code would copy the eight bytes at memory location zero, which - did not necessarily make a null pointer - - 4/30 - ---- -shell.c - - run_startup_files should turn off job control, since the startup - files should be run without job control enabled -- this makes - SIGINT interrupt startup file execution again - - if we get a SIGINT or other longjmp to top_level while executing - the startup files, re-enable job control for interactive shells - before setting locally_skip_execution - - 5/2 - --- -lib/readline/nls.c - - if we have setlocale(3), don't bother with checking the - environment variables for valid values; just use setlocale() - to set the locale categories from the environment variables - directly and go into eight-bit mode if the current locale is - not C or POSIX - - 5/5 - --- -sig.c - - make sure that the handler for SIGPROF is not changed if it has - been set to something other than SIG_IGN or SIG_DFL -- this makes - profiling work after the terminating signals have been initialized - -bashline.c - - if a filename containing `!' is completed, and the user has started - the string with a `"', change the completion style to backslash- - quoting, since there's no way to use `!' with double quotes (this - requires more changes to readline to really work right) - - 5/6 - --- -lib/readline/complete.c - - changes to make_quoted_replacement, insert_all_matches, and - insert_match and their callers to allow the application-specific - filename quoting function to change the quote character (e.g., for - bash to change a filename containing a `!' and started with a - double quote by the user into a filename with the `!' quoted by - a backslas and no double quote) - - 5/8 - --- -jobs.c - - new function: nohup_all_jobs(), calls nohup_job for each entry in - the jobs list - - delete_all_jobs is now global - -jobs.h - - new extern declarations for delete_all_jobs() and nohup_all_jobs() - -builtins/jobs.def - - `disown' without any jobspec arguments means the current job. Fix - a core dump printing the error message when there is no current job - - 5/12 - ---- -subst.c - - process an expansion like $((foo); bar) as a command substitution, - not as an arithmetic expansion. An arithmetic expansion must have - a closing `))' - - 5/14 - ---- -builtins/evalstring.c - - the third argument to parse_and_execute() is now a flags word. - The caller can control the value of `interactive' and whether - or not history is disabled while parse_and_execute() runs - -builtins/common.h - - new #defines for the flag values for parse_and_execute() - -{bashline,jobs,shell,subst,trap,variables}.c, parse.y, builtins/evalfile.c, -builtins/{eval,fc}.def - - changed calls to parse_and_execute appropriately - -builtins/evalfile.c - - if _evalfile() is passed FEVAL_HISTORY as part of the flags arg, - don't pass SEVAL_NOHIST to parse_and_execute - - new function: fc_execute_file, which sets FEVAL_HISTORY in the - flags argument to _evalfile() - -bashline.c - - call bash_add_history instead of add_history from - vi_edit_and_execute_command so the bash state variables get - updated properly. This keeps the `v' command from operating - on an empty command when the history list is stifled - -bashhist.c - - bash_add_history is now global - -bashhist.h - - extern declaration for bash_add_history - -builtins/fc.def - - call fc_execute_file instead of maybe_execute_file in the - edit-and-re-execute case (fc -e ...) - - don't manually insert the commands from the file created by `fc -e' - into the history list, just set remember_on_history and let - fc_execute_file take care of telling parse_and_execute to do the - right thing. This makes compound commands and the `cmdhist' - and `lithist' settings work better. This supersedes the fix of - 1/27. This was reported again by rchen@fractal.eng.yale.edu. - -parse.y - - the body of a `for' command (the commands between do...done or - {...}) should be a `compound_list' instead of a `list'. Problem - reported by cpg@research.bell-labs.com - - 5/19 - ---- -lib/readline/complete.c - - in filename_completion_function, if we find that the directory - pointer (return value from opendir(3)), is not null when state - is 0 (indicating that this is the first time the completion - function has been called for the current completion), call - closedir on it, assuming that it was left open by a previous - (interrupted) completion - -[bash-2.01-beta2 frozen] - - 5/27 - ---- -Makefile.in - - make sure that `make distclean' (and other clean targets) remove - the `printenv' executable - -tests/execscript, tests/redir.tests - - make sure to set LANG=C and LC_ALL=C so the messages show up in - English - -tests/run-func - - add a warning about exported functions in the environment - - 5/29 - ---- -builtins/hash.def - - if one of the arguments passed to `hash' is an absolute pathname, - just continue the loop, don't do list=list->next first. This - fixes the `hash a/b' -> core dump bug - - 5/30 - ---- -general.c - - change canonicalize_pathname to leave a leading `/' alone, as - POSIX requires - - 6/2 - --- -support/xenix-link.sh - - shell script for linking bash under Xenix - - 6/3 - --- -bashline.c - - fixed a memory leak in command_word_completion_function, courtesy - of a.pfaller@pop.gun.de - -hashcmd.c - - fixed find_hashed_filename to always return a newly-allocated - string - -execute_cmd.c - - since find_hashed_filename returns newly-allocated memory, don't - call savestring() on it, and free it if the data is stale (in - search_for_command()). Another memory leak fixed courtesy of - a.pfaller@pop.gun.de - -builtins/type.def - - free the value returned by find_hashed_filename - -[bash-2.01-release frozen] - - 6/6 - --- -configure.in - - force shlicc2 and libc malloc for BSD/OS 3.0 - - 6/9 - --- -doc/Makefile.in - - don't create ${man3dir}, since we're not installing the readline - manual page - -lib/readline/readline.h - - rl_dispatching should be declared `extern' - [in bash-2.01.1] - - 6/10 - ---- -lib/malloc/Makefile.in - - make sure ${ALLOCA_SOURCE} is preceded by ${srcdir} so that things - work when building in a directory other than the source directory - [in bash-2.01.1] - - 6/30 - ---- -lib/readline/examples/rltest.c - - don't free the value returned by history_list() - -lib/readline/histfile.c - - open the history file for writing with mode 0600 for better - security - [in bash-2.01.1] - -execute_cmd.c - - select_query now uses legal_number to decide whether the user's - selection is a valid number, and just executes the loop again if - invalid input is entered - [in bash-2.01.1] - - 7/1 - --- -builtins/evalstring.c - - fix to parse_and_execute so `bash -c 'time [-p] zzz'' works right - [in bash-2.01.1] - -execute_cmd.c - - fix to execute_command_internal so that `bash -c time [-p] (zzz)'' - works right - [in bash-2.01.1] - - print_formatted_time should pass a long as the fourth parameter - to mkfmt - [in bash-2.01.1] - -externs.h, shell.c - - `exit_shell' is now a void function - -hashlib.c - - print_table_stats is now a void function - -mailcheck.c - - made add_mail_file check for the filename in the mail file list - using the expanded filename, since that is what it puts into - the list - [in bash-2.01.1] - -variables.c - - for the time being, PWD will be auto-exported, since some systems - seem to expect it - -doc/bashref.texi, lib/readline/doc/{hist,rlman}.texinfo - - added necessary `dircategory' and `direntry' commands to make - `install-info' work correctly - -Makefile.in - - move $(LDFLAGS) after $(BUILTINS_LDFLAGS) and $(LIBRARY_LDFLAGS) on - the line that links bash - -doc/texinfo.tex - - upgraded to version 2.185 from the texinfo-3.9 distribution - -lib/tilde/tilde.c - - fixed a bug in tilde_expand so that enough space is allocated for - the string and terminating null byte if a `~' does not appear. - This was masked before by the bash malloc() - [in bash-2.01.1] - - 7/3 - --- -aclocal.m4 - - new test, BASH_TYPE_INT32_T, to check which builtin C type is - 32 bits wide - - new test, BASH_TYPE_PTRDIFF_T, to check which builtin C type is - appropriate for pointer arithmetic - -configure.in - - check sizes of int and long, and for the existence of an int32_t - basic system type. Call BASH_TYPE_INT32_T if int32_t is not - defined anywhere in the system header files - - check size of (char *), and for the existence of a ptrdiff_t - basic system type. Call BASH_TYPE_PTRDIFF_T if ptrdiff_t is not - defined anywhere in the system header files - - added a check for - -config.h.in - - add lines for SIZEOF_INT, SIZEOF_LONG, SIZEOF_CHAR_P, int32_t, - u_int32_t, and ptrdiff_t - - added line for HAVE_STDDEF_H - -lib/malloc/malloc.c - - new version, with many changes and much better memory usage; old - (bash-2.01) version is lib/malloc/omalloc.c - -lib/malloc/gmalloc.c - - new version, with a number of changes and range checking included - by default; old (bash-2.01) version is lib/malloc/ogmalloc.c - -execute_cmd.c - - applied patch from 5/27 to make execute_simple_command fork early - if it's part of a pipeline. This keeps assignment statements or - other commands that don't require a builtin, function, or disk - command to be executed from modifying the shell's environment - -tests/exec?.sub - - renamed from tests/execscript.sub? because those filenames are - too long for System V 14-char filename systems - -tests/source?.sub - - renamed from tests/source.sub? because those filenames are bad - for DOS/Windows - -tests/getopts?.sub - - renamed from tests/getopts.sub? because those filenames are bad - for DOS/Windows - -tests/histexp.{tests,right} - - renamed from histexpand.{tests,right} because those filenames are - too long for System V 14-char filename systems - -tests/trap1.sub - - renamed from trap.sub1 because that filename was bad for DOS/Windows - -tests/ifs-[123].right - - renamed from ifs.[123].right because those filenames were bad for - DOS/Windows - -tests/ifs-[123].test - - renamed from ifs-test-[123].sh because those filenames were bad - for DOS/Windows - -examples/startup-files/Bashrc.bfox - - renamed from examples/startup-files/Bashrc because that filename - conflicts with examples/startup-files/bashrc on case-insensitive - file systems - -tests/exec.right - - renamed from execscript.right because that filename is too long - for System V 14-char filename systems - -tests/run-set-e - - renamed from run-set-e-test - -tests/misc/perftest - - renamed from tests/misc/haertel.perftest because that filename is - too long for System V 14-char filename systems - -lib/glob/fnmatch.c - - new version with full POSIX.2 BRE matching (character classes, - collating symbols, equivalence classes), full support for - strcoll(3), and case-insensitive pattern matching - -lib/glob/fnmatch.h - - new version, with necessary symbols for the new fnmatch.c - -tests/posixpat.{tests,right}, tests/run-posixpat - - test suite for the POSIX.2 BRE pattern matching code - -variables.c - - make sure that array assignment using the compound syntax empties - the array before doing the assignment - [in bash-2.01.1] - -trap.c - - new function, trap_to_sighandler(sig), which returns the correct - trap handler for SIG depending on the information in sigmodes[sig] - [in bash-2.01.1] - -sig.h - - extern declarations for trap_handler and trap_to_sighandler - [in bash-2.01.1] - -jobs.c - - if we get an interrupt while waiting for a command to complete, - and there was a trap set on SIGINT that resets the handler to - SIG_DFL, the value that waitchld uses for old_trap_handler will - be wrong (it will be trap_handler, but trap_handler no longer - knows anything about SIGINT). If old_signal_handler is trap_handler, - but signal_is_trapped(SIGINT) returns 0, we need to call - trap_to_sighandler to decide what to do - [in bash-2.01.1] - - 7/7 - --- -locale.c - - fix to set_locale_var to handle an assignment to LC_ALL (e.g., as - the result of `unset LANG') when default_locale is null - [in bash-2.01.1] - - 7/8 - --- -builtins/umask.def, doc/{bash.{1,html},bashref.texi} - - added `-p' option for umask to print output in a reusable form - - 7/9 - --- -doc/{bash.{1,html},bashref.texi} - - removed descriptions of `-type', `-path', and `-all' options to - the `type' builtin in preparation for removing them in the next - release - -builtins/type.def - - removed mention of `-type', `-path', and `-all' options from the - long help description - -error.c, error.h - - new function: internal_warning, for warning messages - -variables.c - - changed a call to internal_error to use internal_warning - - modified change of 7/3 so that arrays are not emptied until - just before the shell is about to assign the new values, so - the old value can be used to generate the rhs of the assignment, - if necessary. This is how `normal' shell variables work - [in bash-2.01.1] - -jobs.c, jobs.h - - delete_job now takes a second int argument and prints a warning - message when deleting a stopped job if the second argument is - non-zero - -jobs.c, builtins/jobs.def - - changed all calls to delete_job to provide a proper second arg - -lib/readline/bind.c - - broke rl_read_init_file into an `upper' and `lower' half in - preparation for adding file inclusion capability to inputrc - parsing - - handle_parser_directive now displays an error message if an - unknown directive is encountered - - parser_endif now prints an error message if an $endif without - a matching $if is found - - added `$include' parser directive to read bindings and commands - from another file at that point - -lib/readline/doc/rluser.texinfo, doc/{bash.{1,html},readline.3} - - documented new readline `$include' parser directive - -shell.c, parse.y - - added a new invocation option, --dump-po-strings, and code to - make it dump translatable strings ($"...") in GNU gettext - `po' format - -doc/{bash.{1,html},bashref.texi} - - documented new `--dump-po-strings' invocation option - -lib/readline/{{kill,funmap}.c,readline.h} - - added `rl_paste_from_clipboard()', bound to `paste-from-clipboard' - for CYGWIN32 users - -lib/readline/kill.c - - incorporated bfox's patches for `iterative' yank-last-arg handling. - This means that one can keep pressing M-. and move backwards in - the history, yanking the last argument of successive history lines - -lib/readline/rlwinsize.h - - new file, encapsulates various locations of the definition for - `struct winsize' - -aclocal.m4 - - augmented BASH_STRUCT_WINSIZE to look in termios.h as well as - sys/ioctl.h for definition of `struct winsize' - -lib/readline/rltty.h - - include "rlwinsize.h" after including tty-driver-specific header - file - - 7/10 - ---- -support/config.guess - - add better support for SunOS on M68K (old Sun3 machines) - -parse.y - - check for compound array assignment in read_token_word only if - there are characters before the `=' (which would make it a legal - assignment statement). This fixes the problem with defining a - function named `=' with `=() { echo foo; }' - [in bash-2.01.1] - -jobs.c, jobs.h - - nohup_all_jobs and delete_all_jobs now take a parameter which - says whether or not to restrict their operation to only running - jobs - -jobs.c - - changed all calls to delete_all_jobs - -builtins/jobs.def - - added `-a' (all jobs) and `-r' (running jobs only) options to - `disown' - -doc/{bash.{1,html},bashref.texi} - - documented new `-a' and `-r' options to `disown' - -findcmd.c, findcmd.h - - new files with command searching code from execute_cmd.c and - function declarations from execute_cmd.h - -Makefile.in, builtins/Makefile.in - - updated dependencies to account for new findcmd.[ch] - - updated dependencies to account for new redir.[ch] - -redir.c, redir.h - - new files with code that sets up lists and performs redirections - from execute_cmd.c and execute_cmd.h - -execute_cmd.c - - include new findcmd.h, redir.h - - 7/11 - ---- -Makefile.in, configure.in - - PROFILE_FLAGS is now substituted into the Makefile by configure - - 7/14 - ---- -print_cmd.c - - make sure single_quote is called from xtrace_print_word_list - to correctly quote each word of trace output, especially those - with embedded quotes - [in bash-2.01.1] - -aclocal.m4 - - extended BASH_CHECK_GETPW_FUNCS so that it checks that getpwuid - and getpwnam can also be declared, as well as getpwent - [in bash-2.01.1] - - in BASH_FUNC_PRINTF, cast printf to type `_bashfunc' before trying - to assign it to `pf' to avoid any prototype problems in the - declaration - [in bash-2.01.1] - -trap.c - - include before any of the bash-specific header files, - but after config.h - [in bash-2.01.1] - -test.c - - include and declare `extern int errno' before including - any of the bash-specific include files, but after - [in bash-2.01.1] - -builtins/Makefile.in - - PROFILE_FLAGS is now substituted into the Makefile by configure - -configure.in - - new options, --enable-profiling and --enable-static-link, to turn - on profiling with gprof and link bash statically (if using gcc) - for use as a root shell. The former implies the latter. If - we're linking statically, dynamic loading of new builtins is not - available - -doc/bashref.texi - - documented new --enable-profiling and --enable-static-link - options in installation section; regenerated INSTALL - -lib/glob/glob.[ch] - - new global variable, glob_ignore_case, turns on case-insensitive - filename matching in fnmatch() using the FNM_CASEFOLD flag - -doc/{bash.{1,html},bashref.texi} - - documented new shopt `nocaseglob' option - - 7/15 - ---- -bashline.c - - when glob_complete_word is called with state == 0, make sure we - set rl_filename_completion_desired so that proper quoting of - the resultant filenames is performed - [in bash-2.01.1] - - 7/16 - ---- -externs.h, oslib.c - - strcasecmp and strncasecmp replacements should have `const char *' - as the first two arguments, to match OS definitions - [in bash-2.01.1] - - 7/17 - ---- -(many files) - - changes for minix-2.0, mostly just adding #ifndef _MINIX around - include files that minix doesn't provide, like and - - -lib/readline/terminal.c - - removed `outchar' function; use _rl_output_character_function in - its place - -support/config.guess - - changes to recognize HP_ARCH of `hppa2.0' - -test.c - - new `-N' option: `test -N file' returns true if FILE exists and - has been modified since it was last accessed - -doc/{bash.{1,html},bashref.texi} - - documented new `test -N' option - - 7/22 - ---- -aclocal.m4 - - prefer /var/spool/mail to /usr/spool/mail in BASH_DEFAULT_MAIL_DIR - [in bash-2.01.1] - -lib/readline/{complete,bind}.c - - new readline variable, print-completions-horizontally, which causes - matches to be printed across the screen (like `ls -x') rather than - up-and-down (like `ls') - - new readline variable, completion-ignore-case, which causes filename - completion and matching to be performed case-insensitively - -doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo - - documented new print-completions-horizontally variable - - documented new completion-ignore-case variable - -_distribution, Makefile.in - - bumped the version number up to 2.02-alpha1 - -bracecomp.c - - fixes so that the braces are not quoted by the filename quoting - function when complete-into-braces is executed with M-{. The - brace completion functions do filename quoting themselves - [in bash-2.01.1] - -pathexp.c - - changed quote_string_for_globbing so that it takes a flags word - as its second argument - -pathexp.h - - defines for flags passed to quote_string_for_globbing - -subst.c,execute_cmd.c - - changed calls to quote_string_for_globbing to pass the correct - flag arguments - -expr.c - - added a `**' binary operator to do exponentiation (2**16 == 65536). - precedence is lower than arithmetic operators, higher than unary - operators (2**16-1 == 65535) - -doc/{bash.{1,html},bashref.texi} - - documented new `**' arithmetic binary operator - - 7/24 - ---- -shell.c - - added new (currently undocumented) `--wordexp' option to do the - job required by POSIX.2 wordexp(). If -n is supplied along with - --wordexp, command substitution is disallowed and the shell - exits with a status of 125 if one is attempted. If there is an - expansion error, the shell exits with a status of 127. If there - is a shell parsing error, the shell exits with a status of 126. - Otherwise, the exit status is 0. The current output is - - number of words\n - number of bytes\n - expanded words, one per line, separated by newlines - - This will have to be changed when an interface to glibc is coded - - 7/28 - ---- -hashcmd.h - - reduced the default size of the filename hash table from 631 - to 107 - -sig.c - - don't call initialize_siglist if HAVE_UNDER_SYS_SIGLIST is defined - [in bash-2.01.1] - -siglist.c - - don't compile this file if HAVE_UNDER_SYS_SIGLIST is defined - [in bash-2.01.1] - -variables.c - - fix to make $RANDOM work better in subshells - [in bash-2.01.1] - -aclocal.m4 - - new macro, BASH_DECL_UNDER_SYS_SIGLIST, looks for _sys_siglist in - and , defines UNDER_SYS_SIGLIST_DECLARED if - found - [in bash-2.01.1] - - change BASH_UNDER_SYS_SIGLIST to require BASH_DECL_UNDER_SYS_SIGLIST, - like BASH_SYS_SIGLIST requires AC_DECL_SYS_SIGLIST - [in bash-2.01.1] - -config.h.in - - add a line for UNDER_SYS_SIGLIST_DECLARED - [in bash-2.01.1] - -configure.in - - make sure that SVR4_2 is defined for machines that have $host_os - sysv4.2* (e.g., sysv4.2MP) as well as $host == sysv4.2 - [in bash-2.01.1] - - 7/29 - ---- -command.h - - new command type, ARITH_COM, used to create and execute a ((...)) - command without translating it into let "..." - -parse.y - - changes to the grammar and lexer so that ((...)) is parsed as a - command of type ARITH_CMD. An ARITH_CMD is a WORD_LIST, for - future expansion, even though only the first word is used - -make_cmd.c, make_cmd.h - - definition and declaration of a function to build an arithmetic - command - -dispose_cmd.c - - added code to dispose of arithmetic commands - -print_cmd.c - - added code to print arithmetic commands, both `regularly' and - when they're being traced with `set -x' - -externs.h - - extern declaration for xtrace_print_arith_cmd - -copy_cmd.c - - added code to copy arithmetic commands - -execute_cmd.c - - added code to directly execute arithmetic commands -- they are - a shell_control_structure, so just about everything like - redirections and piping is taken care of by the boilerplate code. - All that's needed is to expand the expression (which is within - double quotes -- added by parse.y:parse_arith_cmd()), print it - if tracing is enabled, call the expression evaluator, and return - an appropriate result - - 7/30 - ---- -input.c - - new function, set_buffered_stream(fd, bp), sets the buffered stream - associated with FD to BP and returns the old buffered stream - -input.h - - extern declaration for set_buffered_stream - -parse.y - - call set_buffered_stream rather than manipulating the BUFFERS array - directly - -shell.c - - unset_bash_input now takes an argument, CHECK_ZERO. This tells it - whether to check whether default_buffered_input is >= 0 or just > 0 - -externs.h - - changed extern declaration for unset_bash_input - -execute_cmd.c, jobs.c, nojobs.c - - changed calls to unset_bash_input to add appropriate argument - -input.h - - #undef B_* before defining them as flag values for b_flags. Some - systems, like SVR4, have a B_ERROR define in a file included by - jobs.c and nojobs.c, and it causes a warning - - 7/31 - ---- -fnmatch.c - - rewrote most of fnmatch(), so that it now implements ksh-88 style - pattern matching (`[@+*?!](patlist)') if the FNM_EXTMATCH flag - is set - -fnmatch.h - - added a define for FNM_EXTMATCH - - 8/4 - --- -lib/readline/display.c - - fixed _rl_redisplay_after_sigwinch () so that it really redisplays - only the portion after the final newline of a multi-line prompt - [in bash-2.01.1] - -bashline.c - - attempt_shell_completion no longer returns matches if a glob pattern - matches more than one filename -- it caused too many problems - [in bash-2.01.1] - - 8/5 - --- -lib/glob/glob.c - - updated glob_pattern_p so that the extended matching operators - are recognized - -pathexp.c - - udpated unquoted_glob_pattern_p so that the extended matching - operators are recognized - - udpated quote_globbing_chars so that the extended matching - operators are recognized and quoted appropriately - -subst.c - - updated match_pattern_char so that the extended matching operators - are recognized - -parse.y - - updated read_token_word so that it parses an extended matching - pattern as a single word - -jobs.c - - if a job is suspended with SIGTSTP, and the user has set - checkwinsize with `shopt', update the window size - [in bash-2.01.1] - -pathexp.c, pathexp.h - - new global variable, extended_glob, controls whether the extended - pattern matching features are enabled - -pathexp.h - - new define, FNMATCH_EXTFLAG, to be OR'd with other values for - flags argument to fnmatch to enable the extended pattern matching - features if extended_glob is set - -{pathexp,execute_cmd,bashhist,subst,test}.c, builtins/help.def - - changed calls to fnmatch to add FNMATCH_EXTFLAG to the flags arg if - extended_glob is non-zero - -lib/glob/glob.c - - changed flags arg passed to fnmatch to include FNM_EXTMATCH if - extended_glob is non-zero (#ifdef SHELL) - - 8/6 - --- -builtins/shopt.def - - added a new `extglob' shell option, controls the value of - extended_glob - - 8/7 - --- -doc/{bash.{1,html},bashref.texi} - - documented new extended pattern matching operators and the `extglob' - shell option - -tests/{extglob.{tests,right},run-extglob} - - test suite for the new extended globbing features - - 8/8 - --- -parse.y, pathexp.h, lib/glob/fnmatch.c - - made the extended globbing code #ifdef EXTENDED_GLOB - -config.h.in - - added a line for EXTENDED_GLOB, controlled by configure - -configure.in - - new option, --enable-extended-glob, controls defining of - EXTENDED_GLOB (on by default) - -doc/bashref.texi - - documented new `configure' `--enable-extended-glob' option - - 8/11 - ---- -builtins/printf.def - - new `printf' builtin, implemented according to POSIX.2 spec - for printf(1) - -Makefile.in,builtins/Makefile.in - - added necessary stuff for new printf builtin - - 8/12 - ---- -lib/readline/isearch.c - - change to make ^G interrupt the incremental search correctly - [in bash-2.01.1] - -configure.in, config.h.in - - configure now checks for the availability of strtoul(3) - -builtins/printf.def - - use strtoul for the `%o', `%u', `%x', and `%X' formats if it - is available - - 8/13 - ---- -tests/{printf.{right,tests},run-printf} - - extensive test suite for the new `printf' builtin - -builtins/Makefile.in - - change so that `builtext.h' is not recreated every time the source - file for a builtin is changed if the contents are the same. This - keeps many files from being recompiled - - 8/14 - ---- -subst.c - - changed verify_substring_values so that it returns -1 for substring - range errors, 0 for expression errors, and 1 for success - [in bash-2.01.1] - - changed parameter_brace_substring to return an error if - verify_substring_values returns 0, and a null string if it returns - -1. This matches the ksh93 behavior - [in bash-2.01.1] - -trap.c - - changed decode_signal so that it makes sure the first three - characters of a signal name are `SIG' before allowing the `SIG' - prefix to be omitted. This is so a signal spec of `T' does not - match `EXIT', for instance - [in bash-2.01.1] - -builtins/trap.def - - make sure that showtrap() displays traps for signals with unknown - names using the signal number - [in bash-2.01.1] -shell.c - - make sure that `bash -r' doesn't turn on the restricted mode until - after the startup files are executed - [in bash-2.01.1] - -doc/{bash.{1,html},bashref.texi} - - documented printf builtin - - 8/15 - ---- -general.c - - added \xNNN escape to ansicstr -- NNN are up to three hex digits. - This affects $'...', `echo -e', and printf - -builtins/printf.def - - added \xNNN escape to bexpand -- NNN are up to three hex digits. - This affects printf's `%b' conversion specifier - -doc/{bash.{1,html},bashref.texi} - - documented new \xNNN escape sequence for echo, $'...', and printf - -builtins/setattr.def - - make sure that a variable found in the temp environment does not - cause a null string to be assigned by bind_variable (e.g., - foo="" export foo - ) - [in bash-2.01.1] - - 8/18 - ---- -subst.c - - fixed a bug that sometimes caused bad memory (pointer into an - allocated block) to be passed to free when doing arithmetic - substitution. Bug report from stevet@myofb.org - [in bash-2.01.1] - - 8/19 - ---- -subst.c - - considerable changes: moved the code that expands a single - $... parameter expansion into a separate function: param_expand() - This function returns a string, which may contain characters - quoted with CTLESC or CTLNUL without doing word splitting - - changed expand_word_internal to not remove the expansion of "$*" - if the number of positional parameters is > 0 - - changed the '"' case of expand_word_internal to remove quoted - nulls from the resultant word if the expansion was not "$@", and - the word is not a quoted null string ([] == CTLNUL, [1] == '\0') - -subst.c, variables.c - - moved the code that handles special variables from subst.c to - variables.c - - 8/20 - ---- -subst.c - - rearranged the source a bit to group functions with similar - operation together - - fixed parameter_brace_expand so that it no longer allows - indirect expansion of `special' variables - - fixed parameter_brace_expand so taking the length of some of - the shell's special parameters works again - - moved all of the code that computes the length of a shell - parameter (the ${#xxx} expansion) into parameter_brace_expand_length. - Previously, the code that handled the lengths of the shell's - special parameters was in parameter_brace_expand_word - - valid indirect expansions are now only variable names or positional - parameters - - 8/21 - ---- -subst.c - - fixed param_expand to raise an expansion error if $! is being - expanded and no asynchronous processes have been created - - an expression error in a $((...)) arithmetic expansion now causes - a non-interactive shell running in POSIX mode to exit - - relaxed change of 8/20 to allow indirect references to $#, $@, $* - -builtins/bashref.texi - - documented new posix-mode exit on invalid expressions in $((...)) - -lib/readline/complete.c - - don't call rl_strpbrk unless rl_filename_quote_characters is not - NULL -- strpbrk requires non-NULL arguments - [in bash-2.01.1] - - 8/22 - ---- -bashline.c - - don't make `history-expand-line' a bindable command unless - BANG_HISTORY is defined, and don't compile the code for that - command in unless BANG_HISTORY is defined - - make history_expand_line(), tcsh_magic_space(), alias_expand_line(), - and history_and_alias_expand_line() int-returning functions that - return 0 for success and non-zero on error. This allows - tcsh_magic_space() to just call history_expand_line() and insert - a space if that returns successfully - - `magic-space' is now a bindable readline command - -doc/bash.{1,html}, lib/readline/doc/rluser.texinfo - - documented new `magic-space' bindable readline command - - 8/25 - ---- -parse.y - - fixed decode_prompt_string so that values of $PWD longer than - PATH_MAX don't cause buffer overruns (char t_string[PATH_MAX]) - [in bash-2.01.1] - -general.c - - fixed polite_directory_format so that values of $HOME longer - than PATH_MAX don't cause buffer overruns (char tdir[PATH_MAX]) - [in bash-2.01.1] - -subst.c - - fix to expansion of $* so that the positional parameters are - separated by the first character of $IFS, even when the expansion - is not within double quotes, so the correct split is still - performed even when IFS does not contain a space. Works for - ${*}, too - - fix to expansion of $@ so that the positional parameters are - separated by the first character of $IFS, even when the expansion - is not within double quotes, so the correct split is still - performed even when IFS does not contain a space. Works for - ${@}, too - - new function, string_list_dollar_at(), which is to $@ as - string_list_dollar_star is to $* - - fixed expansion of $@ so that splitting is still done even if - IFS is unset or NULL, as POSIX.2 specifies (section 3.5.2) - - fixed expansion of $* so that it expands to multiple words if there - is more than one positional parameter, just like $@, even if - IFS is unset or NULL - - new function list_quote_escapes, quotes (with CTLESC) all - CTLESC and CTLNUL characters in each member of the list - -tests/dollar-{at,star}.sh - - combined into dollar-at-star, changed run-dollars accordingly - - 8/26 - ---- -Makefile.in - - make the `tests' target use $(SHELL) instead of hardcoding `sh' - - 8/29 - ---- -subst.c - - expand_word_list_internal now takes a flags word as the second - argument, telling which expansions to perform on the WORD_LIST - - broke expand_word_list_internal into several functions: one - each to do brace expansion, glob expansion, and the `normal' - shell expansions - - new extern function: expand_words_shellexp() to perform the - `normal' shell expansions on a WORD_LIST - -subst.h - - extern declaration for expand_words_shellexp - -bashline.c - - fixed a problem with attempt_shell_completion where it attempted - to refer to rl_line_buffer[-1] (completion at the start of the - line, which means that ti == -1, which means that the test for - rl_line_buffer[ti] at line 715 was an array bounds error - [in bash-2.01.1] - -eval.c - - new function, parse_string_to_word_list(), which takes a string - and runs it through the parser, returning the resultant word - list - -externs.h - - new extern declaration for parse_string_to_word_list() - -variables.c - - change assign_array_var_from_string to first split the string - between the parens on whitespace, then expand the resultant - list of words with all the shell expansions before doing the - assignment - - 9/4 - --- -redir.c, redir.h - - redirection_error is no longer a static function - -builtins/evalstring.c - - changes to handle $( < filename ) (equivalent to $(cat filename)) - as in ksh - -lib/readline/bind.c - - added two new functions: rl_unbind_function_in_map(func, map), - which unbinds all keys that execute FUNC in MAP; and - rl_unbind_command_in_map(command, map), which unbinds all keys - bound to COMMAND in MAP - -lib/readline/readline.h - - extern declarations for rl_unbind_{function,command}_in_map - -lib/readline/doc/rltech.texi - - documented rl_unbind_{function,command}_in_map - -builtins/bind.def - - added a new option, -u FUNCNAME, which unbinds all key sequences - bound to FUNCNAME in the specified (or current) keymap - -doc/{bash.{1,html},bashref.texi} - - documented new $( < filename ) command substitution - - documented new bind -u FUNCNAME option - - 9/5 - --- -shell.c - - send SIGHUP to all jobs when an interactive login shell exits if - the variable `hup_on_exit' is non-zero - - modified run_startup_files so that if `NON_INTERACTIVE_LOGIN_SHELLS' - is #define'd (perhaps in config.h.top, though there is nothing there - for it), all login shells (interactive and non-interactive) run - /etc/profile and one of the per-user login shell startup files - -builtins/shopt.def - - new shopt option `huponexit' to control the value of hup_on_exit - -doc/{bash.{1,html},bashref.texi} - - documented new `huponexit' shell option - - 9/8 - --- -builtins/common.c - - changed contains_shell_metas to return 1 if a tilde appears at the - start of a string or after a `=' or `:' - - changed backslash_quote to quote a tilde if it appears at the start - of a string or after a `=' or `:' - -lib/readline/complete.c - - moved rl_tilde_expand to util.c; it doesn't really have anything - to do with completion - - moved insert_text to readline.c, renamed it _rl_replace_text (since - that's really what it does), changed callers - - moved code that postprocesses the list of completion matches into - a new function: postprocess_matches - - new implementation of tcsh-like menu completion in a single new - function: rl_menu_complete - -lib/readline/{funmap.c,readline.h} - - necessary declarations for binding rl_menu_complete to the - new `menu-complete' command - -doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo - - documented new `menu-complete' bindable readline command - - 9/9 - --- -jobs.c - - delete_job should print a warning only if subshell_environment - is 0, so we don't print bogus warnings when shell scripts without - a leading #! are executed - - 9/10 - ---- -builtins/read.def - - fixed the code so that the `read' is automatically restarted when - it returns -1 with errno == EINTR. SIGINT is handled by the - interrupt handler, since interrupt_immediately is set to 1, so - this handles things like SIGCHLD - [in bash-2.01.1] - - 9/11 - ---- -test.c - - reorganized the code slightly to make it easier to add the ksh-like - [[...]] compound command - -test.h - - new file, with extern declarations for functions available in test.c - -externs.h - - moved declaration of test_command to test.h - -builtins/test.def - - include `test.h' - - 9/16 - ---- -{command,make_cmd,dispose_cmd,externs,subst}.h -parse.y, subst.c -{make,dispose,copy,print,execute}_cmd.c - - changes to add the new ksh-93 compatible [[...]] conditional command - -configure.in - - new enable option, --enable-cond-command, to compile in the [[...]] - command code - -config.h.in - - new #define, COND_COMMAND, to compile in the [[...]] command code - -tests/{run-cond,cond.{tests,right}} - - test suite for the new [[...]] command - -{builtins,lib/{readline,glob,tilde}}/Makefile.in - - explicit dependencies for .o files on .c files for losing makes - like Solaris - -doc/{bash.{1,html},bashref.texi} - - documented the new `[[' compound command - - documented the test/[ builtin behavior based on the number of - arguments in the description of the builtin - - made a new section for conditional expressions that just lists - the available primaries -- the connectives and other operators - are listed in the description of the [[ command and the test/[ - builtin - - 9/18 - ---- -builtins/set.def - - minus_o_option_commands is now a global function so the shopt - code can use it - - minus_o_option_commands now takes an argument telling it which - options to print, just like list_minus_o_options - - new function, print_minus_o_option, which prints the value of - a `set -o' option either in the traditional format or in the - format used by `set +o' - - changed list_minus_o_opts and minus_o_option_commands to call - print_minus_o_option - -builtins/shopt.def - - `shopt -p' now causes output to be printed in a format reusable - as input (the format is a series of shopt commands, like the - output of `set +o') - - fixed a bug that made `shopt -so' and `shopt -uo' not work - - fixed list_shopt_o_options so that `shopt -op' acts like `set +o' - - fixed list_shopt_o_options to that `shopt -op optname' prints the - value of optname in a reusable format - - fixed list_some_o_options so that `shopt -ops' and `shopt -opu' - work and display output in a reusable format - - 9/19 - ---- -doc/{bash.{1,html},bashref.texi} - - documented new `shopt -p' behavior - -shell.c - - made `bash +o' display the same output as `set +o' and then - start an interactive shell (previously `bash -o' and `bash +o' - displayed the same thing) - -builtins/common.h - - added prototypes to the extern function declarations - - 9/22 - ---- -builtins/evalstring.c - - fixed the DISCARD case of the jump_to_top_level so that it - doesn't try to call dispose_command(command) after the - `pe_dispose' unwind frame gets run, since that disposes the - command - - 9/23 - ---- -test.[ch] - - test_eaccess is now a global function so that globbing code can - use it - -lib/glob/glob.c - - rewrote glob_vector to be slightly more efficient and to not - read the directory if the filename pattern does not contain - any globbing chars. This satisfies the POSIX requirement that - read permission is not required for a directory when the - pathname component does not contain a pattern character (bug - reported by jsm28@cam.ac.uk) - -subst.c - - fixed parameter_brace_expand so that ${array[@]} and ${array[*]} - behave correctly when IFS is unset or set to something that does - not contain a space (they should result in separate words, just - like $@ and $*) - -tests/{run-array2,array-at-star,array2.right} - - tests for the expansions of ${array[@]} and ${array[*]}, derived - from the tests in dollar-at-star - - 9/24 - ---- -jobs.c - - fixed cleanup_dead_jobs so that it doesn't remove the job - containing last_asynchronous_pid from the job table. This - fixes the POSIX.2 `wait' requirement problem - - 9/25 - ---- -parse.y - - added `\r' escape sequence to the prompt expansion code - -lib/readline/chardefs.h - - added defines for ISOCTAL, OCTVALUE, isxdigit (if not defined), - and HEXVALUE - -lib/readline/bind.c - - added `normal' echo/printf-like backslash escapes to the - key sequence translation code, with the addition that \d - expands to RUBOUT. This means that key sequence definitions - (before the `:') and macro values may contain these special - backslash-escape sequences - - now that we can translate octal escape sequences in key bindings, - change _rl_get_keyname so that it turns characters with values - 128-159 inclusive into octal escape sequences (\200-\237), since - those characters are not ASCII or ISO Latin 1 - -doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo - - documented new backslash escapes for readline key sequence and - macro translation - -builtins/pushd.def - - new function, get_dirstack_from_string(char *string), returns an - element from the directory stack or null, treating the argument - exactly as `dirs string' would, with the exception that if - the first character of `string' is not `+' or `-', a `+' is - assumed - -builtins/common.h - - new extern declaration for get_dirstack_from_string - -general.c - - added code to bash_special_tilde_expansions to get the expansion - using get_dirstack_from_string() if the first character of the - tilde-prefix is a digit or the first character is a `+' or `-' - and the second is a digit - -tests/dstack.{tests,right} - - renamed from dirstack.{tests,right} - -tests/dtack2.{tests,right} - - new tests for the directory stack tilde expansion code - -tests/run-dirstack - - now runs both dstack and dstack2 - - 10/3 - ---- -trap.c - - reordered header file inclusion for irix 4 - -execute_cmd.c - - fixed select_query so that a reply that is not a number is treated - the same as a numeric reply that is out of range - -lib/readline/util.c - - added a backwards-compatibility definition of _rl_savestring() - -builtins/set.def - - initialize_shell_options now takes an argument saying whether or - not we should parse $SHELLOPTS from the environment. The shell - does not parse the value if it's restricted, running setuid, or - running in `privileged mode' - -shell.c - - change call to initialize_shell_options to add the correct argument - -builtins/common.h - - changed extern declaration for initialize_shell_options - -doc/{bash.{1,html},bashref.texi} - - added note that the shell ignores $SHELLOPTS in the environment at - startup if running in privileged mode - - added note that the restricted shell does not parse $SHELLOPTS from - the environment at startup - - 10/6 - ---- -aclocal.m4 - - change BASH_RLIMIT_TYPE so that it looks for rlim_t in - as well as , for Solaris 2.6 - - new macro, BASH_LARGE_FILE_SUPPORT, to enable special compilation - options for large files on Solaris 2.6 (from eggert@twinsun.com) - -mailcheck.c - - the `file_size' member of the FILEINFO struct should be of - type `off_t' - - the `size' variable in file_has_grown should be of type `off_t' - - the RESET_MAIL_FILE macro should initialize file_size to 0, not 0L - -builtins/Makefile.in - - LDFLAGS and LOCAL_LDFLAGS are now set by configure - - `mkbuiltins' is now created from `mkbuiltins.o' instead of directly - from the source to the executable - -builtins/evalfile.c - - fixed _evalfile so that it handles large files correctly on - systems where the st_size member of `struct stat' will not fit - into an `int' - -builtins/mkbuiltins.c - - don't assume that st_size fits into an int - -input.[ch] - - the `b_size' member of a struct BSTREAM is now of type `size_t' - - changed third argument to make_buffered_stream to size_t; changed - caller - - changed `size' variable in fd_to_buffered_stream to type `size_t' - -general.h - - include if HAVE_SYS_RESOURCE_H and RLIMTYPE are - both defined, for possible necessary definition of RLIMTYPE - (e.g., on Solaris 2.6) - -{execute_cmd,jobs}.c, builtins/times.def - - don't include explicitly if RLIMTYPE is defined, - since general.h will include it in that case - -lib/readline/bind.c - - new function, char *_rl_read_file(filename, sizep), which reads - FILENAME into a malloced buffer, returning the buffer and the - size of the buffer in *SIZEP - -lib/readline/histfile.c - - changed read_history_range and history_truncate_file to handle - large files - -hashcmd.c - - find_hashed_filename should not add `./' to the front of a pathname - that already begins with `./' - - 10/8 - ---- -support/config.sub - - recognize `hppa2.0' as a valid machine architecture - -aclocal.m4 - - changed BASH_CHECK_LIB_TERMCAP so that `gnutermcap' is not chosen - if `$prefer_curses' is set to something - -bashhist.c - - don't use HISTCONTROL or HISTIGNORE to remove lines from the - second and subsequent lines of a multi-line command - (current_command_line_count > 1). Old code did this only when - command-oriented-history was enabled - -doc/{bash.{1,html},bashref.texi} - - changed descriptions of HISTCONTROL and HISTIGNORE to state that - these variables are not applied to the second and subsequent - lines of a multi-line command - -builtins/hash.def, {copy,dispose}_cmd.c - - include "bashtypes.h" -- cray machines need it because of their - oddball definition of `word' - -configure.in - - changed check of ${host_cpu} to check for `*cray*' and `*Cray*' - when deciding whether to include the GNU malloc, since it - seems that ${host_cpu} gets set to `CrayYMP' - - 10/9 - ---- -configure.in - - look for strtod and strtol in libc - - make lib/sh directory in build directory if not there - - create lib/sh/Makefile - -config.h.in - - added HAVE_STRTOD and HAVE_STRTOL - -Makefile.in - - changes for lib/sh/libsh.a (shell library) - -builtins/printf.def - - took out the `#ifdef STRTOUL' code, since strtoul is in libsh.a, - and will be resolved from there if it's not in libc - -variables.c - - call strtol() instead of string_to_long() - -general.c, general.h - - removed string_to_long - - changed legal_number to use strtol so it correctly sets errno - to ERANGE on overflow - - moved bash_getcwd_errstr here from lib/sh/oslib.c - -externs.h - - moved extern declarations for functions defined in libsh to a - separate section of the file, added extern declarations for - other functions in libsh - -builtins/ulimit.def - - changed macro definition for string_to_rlimtype to call strtol - directly instead of string_to_long - -lib/sh/clktck.c - - moved get_clock_tck to its own file, since it's compiled in - unconditionally - - 10/10 - ----- -lib/sh/getenv.c - - moved getenv() and __getenv() here from lib/sh/oslib.c - -lib/sh/{setlinebuf,strerror,strcasecmp}.c - - moved {setlinebuf,strerror,strcasecmp}() from oslib.c to - individual files - -lib/sh/Makefile.in, Makefile.in - - changes for new files in lib/sh - -aclocal.m4 - - new macro BASH_SYS_RESTARTABLE_SYSCALLS, which does what - AC_SYS_RESTARTABLE_SYSCALLS does, but using posix sigaction() - -configure.in - - call BASH_SYS_RESTARTABLE_SYSCALLS if ac_cv_sys_restartable_syscalls - is `no' - - 10/13 - ----- -builtins/jobs.def - - catch out-of-range jobs better in disown_builtin - -configure.in - - don't build with GNU malloc on cygwin32 - -trap.c - - change signal_name to handle the case where signal_names[sig] is - NULL, which can happen on cygwin32 - -execute_cmd.c - - changes to do_piping to make pipes text mode (O_TEXT) on cygwin32 - -cross-build - - new directory with cache files and other stuff for cross-compiling - bash (currently only for building for cygwin32 on a Unix machine) - -cross-build/cygwin32.cache - - new file containing configuration variable assignments for - cygwin32 that would otherwise require a default case for AC_TRY_RUN - -configure.in - - source ${srcdir}/cross-build/cygwin32.cache on CYGWIN32 systems - if we're cross-compiling on a unix machine - - set $CC_FOR_BUILD for cygwin32 cross-compiling environment - -Makefile.in - - CC_FOR_BUILD is now a variable set by configure - -builtins/mkbuiltins.c - - only check for read(2) returning <= 0 in extract_info() (error - and exit on < 0, warning and return on == 0) - -builtins/evalfile.c - - only check for read(2) returning <= 0 in _evalfile() (error and - and failure return on < 0, success on == 0 while short-circuting - rest of operation) - - 10/14 - ----- - -vprint.c - - moved to lib/sh/vprint.c - -lib/sh/Makefile.in - - added entries for vprint.[co] in the appropriate places - -cross-build/win32sig.h - - a version of signames.h for cross-compiling for the CYGWIN32 - environment on a Unix machine (from noer@cygnus.com) - -aclocal.m4 - - made all cases of AC_TRY_RUN and AC_TRY_COMPILE have reasonable - default cases for cross-compiling, and tell the user what they are - -Makefile.in - - removed vprint.c from shell sources and vprint.o from shell - objects - - added a level of indirection for signames.h -- the variable - SIGNAMES_H is set by configure to either `lsignames.h' or - a file for a cross-compilation environment (currently only - the cygwin32 stuff is supported). Then that file is copied - to `signames.h'. `lsignames.h' is created by `mksignames' as - was previously used to create signames.h directly - -configure.in - - set SIGNAMES_H to either `$(srcdir)/cross-build/win32sig.h' or - `lsignames.h' as appropriate, substitute into Makefile - - 10/15 - ----- -builtins/Makefile.in - - CC_FOR_BUILD is now set by configure and used to build mkbuiltins - and psize.aux - -variables.h - - new variable attribute `att_tempvar', set if the SHELL_VAR * was - constructed on the fly from the temporary environment - -variables.c - - find_name_in_env_array now sets the `att_tempvar' attribute on - the SHELL_VAR it creates - -findcmd.c - - search_for_command now disposes the SHELL_VAR created by searching - the temporary environment for $PATH, if it is found there - - _find_user_command_internal also disposes of the SHELL_VAR if it - has the `att_tempvar' attribute set - -builtins/setattr.c - - show_name_attributes looks in the temporary environemnt, so it needs - to dispose the SHELL_VAR if it has the att_tempvar attribute set - -subst.c - - parameter_brace_expand_word now disposes of the SHELL_VAR returned - by find_variable if it has the att_tempvar attribute set - - ditto for param_expand and word_split - -builtins/kill.def - - disallow null pid arguments instead of treating them as 0 - - display a usage message and return failure if no pid or job - arguments are supplied - - 10/16 - ----- -builtins/declare.def - - make `var=value declare -x var' behave the same as - `var=value export var' and `var=value declare -r var' behave the - same as `var=value readonly var', now that we have the `tempvar' - attribute - - 10/22 - ----- -jobs.c - - non-interactive shells shouldn't report jobs killed by a SIGINT, - even if the standard output is to a terminal - - pretty_print_job should add a CR at the end of its output if the - shell is interactive and asynchronous notification is being - performed. This fixes the problem with extra CRs in the output - of $(jobs) - -general.c - - changed canonicalize_pathname to change `//' into `/', but leave - other pathnames starting with two consecutive slashes alone - - 10/27 - ----- - -lib/readline/histexpand.c - - fixed history_expand so that the appearance of the history - comment character at the beginning of a word inhibits history - expansion for the rest of the line - - 10/29 - ----- -jobs.c,variables.c - - moved set_pipestatus_array to variables.c - -variables.c - - new function, set_pipestatus_from_exit(int), which sets the - PIPESTATUS variable from a command's exit status - -variables.h - - extern declarations for set_pipestatus_from_exit and - set_pipestatus_array - -execute_cmd.c - - fixed execute_simple_command to call set_pipestatus_from_exit - if a foreground builtin or function, or a foreground null - command is executed - - 10/31 - ----- -shell.c - - fixed run_startup_files to detect being run by sshd, and treat - that case as equivalent to being run by rshd - - 11/3 - ---- -builtins/set.def - - make sure `set -a' doesn't cause SHELLOPTS to be exported when - a change is made to one of the shell options - - 11/4 - ---- -pathexp.c - - fix to shell_glob_filename in the code that uses a POSIX glob - library - - 11/5 - ---- -jobs.c - - fix cleanup_dead_jobs to hang onto the job corresponding to - last_asynchronous_pid only if the shell is not interactive - (this still has the problem that until a new async process - is started, the job will stay in the jobs table) - -configure.in,aclocal.m4 - - added a new macro, BASH_TYPE_U_INT32_T, to check for u_int32_t - separately from int32_t, since there are systems (HP-UX 10.20) - that have a define for the latter but not the former - - 11/6 - ---- -jobs.c - - cleanup_dead_jobs no longer checks whether the job it is deleting - corresponds to last_asynchronous_pid - - notify_of_job_status and mark_dead_jobs_as_notified now will not - mark the job corresponding to last_asynchronous_pid as notified - if the shell is not interactive - - wait_for_single_pid, if told to wait for last_asynchronous_pid, - or the job of which it is a member, will take care of marking - the job as notified after calling wait_for and collecting the - status. This means that two successive `wait' calls for $! will - succeed the first time and fail the second, as POSIX.2 specifies - (take this code out if it causes problems) - - 11/7 - ---- -jobs.c - - wait_for_job, if told to wait for the job corresponding to the - last async pid, will mark the job as notified after waiting for - it and collecting the status - -general.h - - fixed MEMBER macro to avoid reading past end of S (it used to - test s[1] before s[0], which is an error if s == "") - -subst.c - - expand_word_internal should free ISTRING before returning if - param_expand returns an error - - parameter_brace_expand_word should free the memory it allocates - and passes to param_expand - -execute_cmd.c - - execute_arith_command should call dispose_words on the list - returned by expand_words - -parse.y - - after calling parse_arith_command, read_token needs to free the - string value that parse_arith_command fills in, since make_word - makes a copy of the string it's passed - - 11/10 - ----- -subst.c - - cond_expand_word needs to free the value returned by string_list - after it is run through quote_string_for_globbing - -parse.y - - make sure cond_term frees yylval.word if it is just a `!' and - it's parsed as a term negation operator - -variables.c - - assign_array_var_from_string needs to free the word list returned - by parse_string_to_word_list after calling expand_words_shellexp - on it - -execute_cmd.c - - changed execute_simple_command to avoid saving the_printed_command - into command_line until just before it's needed. This should save - time and prevent memory leaks on errors, but it must be watched - closely to make sure that the_printed_command doesn't change out - from under execute_simple_command before we copy it - - 11/12 - ----- -builtins/alias.def - - alias and unalias should print error messages when passed an - argument that is not an alias for printing or deletion, - respectively, even if the shell is not interactive - -builtins/exit.def - - `logout' will no longer exit a non-login non-interactive shell - - 11/17 - ----- -lib/readline/nls.c - - add `koi8-r' as a legal LANG value - -builtins/alias.def - - if `alias' or `alias -p' is executed when no aliases are defined, - the return status should be 0, according to POSIX.2 - - 11/18 - ----- -subst.c - - changed a couple of calls to make_word_list (make_word(z), ...) - to add_string_to_list (z, ...) - -execute_cmd.c - - execute_cond_command now sets this_command_name to `[[' - - 11/21 - ----- -variables.c - - all_visible_{function,variable}s and the functions they call - should be compiled in only if READLINE is defined - - 11/24 - ----- -aclocal.m4 - - remove some leading whitespace before preprocessor statements in - BASH_KERNEL_RLIMIT_CHECK - -general.[ch] - - fix declarations for group_member so the extern declaration in - general.h agrees with the definition in general.c (fix from - Andreas Schwab ) - -builtins/cd.def - - print the new working directory if the shell is interactive - and `cd -' succeeds - - don't print the new working directory if it's found in $CDPATH - if the shell is not interactive - - 11/25 - ----- -builtins/cd.def - - fixes to bindpwd so that it copes with get_working_directory - returning NULL (bug from schwab@issan.informatik.uni-dortmund.de) - - 12/2 - ---- -support/config.guess - - add support for new OS name for SINIX SVR4 systems - - 12/3 - ---- - -builtins/set.def - - `unset' should check that a function it's trying to unset is a - legal identifier only when in POSIX mode - -redir.c - - changed here_document_to_fd to try and make sure the filename - used for the here document is `more unique', since the old - version would fail if two here documents were created in less - than a second - - 12/4 - ---- -builtins/cd.def - - POSIX.2 says that if CDPATH is used to find the new directory, - and it's not relative to the current directory, the new directory - name should be displayed on stdout even if the shell is not - interactive - - 12/5 - ---- -parse.y - - changes so that `time' is recognized as a reserved word only at - the beginning of a pipeline (the last read token is one of 0, - `;', `\n', `&&', `||', or `&'): - - o add clause to special_case_tokens that does the check - and returns TIME if the conditions are met - o take check for `TIME' out of CHECK_FOR_RESERVED_WORD, but - leave it in the word_token_alist so that `type' still - reports it as a `keyword' - o new function, time_command_acceptable(), encapsulates the - necessary conditions for `time' to be returned as a - reserved word - -[bash-2.02-alpha1 frozen] - - 1/6/1998 - -------- -lib/glob/fnmatch.c - - fix define for isgraph so that it does not return success for space - - fix strcompare() so that the call to strcoll is surrounded by - #ifdef HAVE_STRCOLL - - 1/7 - --- -lib/glob/fnmatch.c - - the `test' argument to brackmatch() should be of type `unsigned char' - - 1/11 - ---- -execute_cmd.c - - make sure execute_arith_command sets this_command_name to `((' - - 1/29 - ---- -parse.y - - make sure the code for pushing and popping strings is compiled in - if either ALIAS or DPAREN_ARITHMETIC is defined, because the (( - code uses push_string in the case of a nested subshell - - fix cond_skip_newlines so it resets the prompt to $PS2 while - parsing an unfinished conditional command - -dispose_cmd.c, copy_cmd.c, builtins/hash.def - - fixes to not use `word' as a variable name or the name of a - function parameter to get around stuff in the Cray Unix include - files - -builtins/printf.def - - return failure immediately if an illegal format character is - encountered - -redir.c - - make the code that creates here-documents behave better if the - file it's trying to create already exists for some reason - -lib/readline/complete.c - - changed print_filename to return the number of characters it - outputs; changed callers to use that value. This makes columns - line up when printing completion listings with filenames - containing control characters - -doc/bash.{1,html} - - fixed a typo in the quote removal section - - 1/30 - ---- -parse.y - - free_string_list() needs to check that t->expander is not NULL - before trying to dereference it - - reset_parser() doesn't need to set pushed_string_list to NULL - after calling free_string_list(), since free_string_list does it - -configure.in,cross-build/cygwin32.cache - - fixes from Geoff Noer for better cygwin32 cross-compilation - -tests/printf.{tests,right} - - removed test for integer overflow, since error messages differ - across systems - -pathexp.c - - fixed a problem with unquoted_glob_pattern_p that made things - like `x+*' not expand correctly - -lib/glob/glob.c - - fixed a problem with glob_pattern_p that made things like `x+*' - not expand correctly - -builtins/cd.def - - if `cd -P' is executed, or `set -o physical' has been executed, - the value of $PWD after a successful cd will not contain any - symlinks, regardless of whether or not the shell is in posix mode - - 2/3 - --- -lib/readline/shell.c - - include or as appropriate - - 2/4 - --- -builtins/common.c - - take out the code in backslash_quote() that looks for tildes to - quote, for the time being - - if getcwd() fails, get_working_directory now prints the error - message corresponding to errno in addition to the rest of the - information -- TENTATIVE CHANGE - -lib/sh/getcwd.c - - fix from Paul Smith to make getcwd() behave better in the presence - of lstat(2) failures - -stringlib.c - - when copying the replacement string into the output string being - constructed, strsub() needs to make sure enough space for the - replacement string is allocated, not the length of the pattern - (use REPLEN, not PATLEN) - -mailcheck.c - - make sure make_default_mailpath() has a valid current_user struct - before trying to construct the default mailpath - - 2/5 - --- -execute_cmd.c - - execute_builtin needs to call run_unwind_frame if the builtin is - `source' or `eval' and we're not in a subshell rather than just - calling dispose_builtin_env, because not all invocations copy - the temporary_env to builtin_env, and nested calls to `.' require - that the temporary env given to the first persist until that first - call to `.' finishes - -parse.y - - fix to history_delimiting_chars so that function definitions like - - function xyz - { - echo a - } - - are saved to the history correctly when command_oriented_history - is enabled, but literal_history is not - -bashhist.c - - when calling internal_error from pre_process_line, use "%s" as - the format with history_value as the argument to avoid the - problem with the failed history event containing printf escape - sequences - - 2/13 - ---- -shell.c - - if shell_initialized is non-zero, don't line-buffer stderr and - stdout in shell_initialize on SunOS5 -- see if this fixes the - crashing problems for scripts without a leading `#! /bin/sh' - - 2/17 - ---- -bashline.c - - added diffs to _ignore_completion_names from Andreas Schwab to - complete names that would otherwise be ignored with FIGNORE if - they are the only possible completions. Define NO_FORCE_FIGNORE - if you want this; it is not defined by default - - 2/19 - ---- -support/bashbug.sh - - changed the bug-bash address to bug-bash@gnu.org - -examples/loadables/Makefile.in - - converted from `Makefile' with some boilerplate configure variables - to find the source and build directories -- still requires some - hand-editing to get the right CFLAGS and LDFLAGS for shared object - creation - -Makefile.in - - create examples/loadables/Makefile with `make makefiles' - -configure.in - - create examples/loadables directory so `make makefiles' can write a - makefile there - -general.c - - make sure initialize_groups_array always sets things up so that - ${GROUPS[0]} is the user's primary group (current_user.gid) - - 2/20 - ---- -lib/readline/parens.c - - change the time delay when showing matching parens from 1.5 sec to - 0.5 sec - - 2/23 - ---- -shell.c - - isnetconn() should call getpeername(fd,...) instead of using 0 - (though fileno(stdin) should always be 0) - -support/config.guess - - updates from master FSF copy - - 2/24 - ---- -support/man2html.c - - modified version of man2html to convert bash.1 into bash.html - -support/Makefile.in - - simple Makefile to create man2html - -configure.in - - make sure support/Makefile is created - -Makefile.in - - make sure support/Makefile is created and cleaned - -doc/Makefile.in - - changes to suffix rules to say how to make .html from .1 - - `bash.html' is now a makefile target, created by man2html from - bash.1 rather than being hand-modified - -lib/sh/itos.c, general.c - - new file, itos() from general.c. This is here because the - implementation of strerror in lib/sh/strerror.c uses itos() - -Makefile.in, lib/sh/Makefile.in - - changes to add itos.c in libsh.a - -externs.h, general.h - - moved extern declaration of itos() from general.h to externs.h - -aclocal.m4 - - changes to BASH_LARGE_FILE_SUPPORT for the LFS64_* variables in - Solaris 2.6 - -Makefile.in - - make sure configure sets CPPFLAGS in this file - - 2/27 - ---- - -builtins/command.def - - make sure get_standard_path returns the value of - STANDARD_UTILS_PATH if _CS_PATH is defined, but confstr(3) - returns 0, indicating that _CS_PATH does not have a defined - value - -bashhist.c - - fixed bash_history_inhibit_expansion() so that extended globbing - expressions like *.!(c) are not history expanded if extended_glob - is non-zero (shopt -s extglob has been executed) - - 3/2 - --- -Makefile.in - - changed release status to `beta1' - -[bash-2.02-beta1 frozen] - - 3/17 - ---- -lib/readline/vi_mode.c - - make sure _rl_vi_save_insert() gets a non-null UNDO_LIST pointer - before trying to do anything with it - -jobs.c - - add a call to internal_warning from wait_for_job if the job is - stopped - - changed notify_of_job_status to not report pipelines exiting due to - SIGPIPE in non-interactive shells if the shell is compiled with - -DDONT_REPORT_SIGPIPE - -builtins/psize.sh - - some fixes to try to avoid /tmp file races and surreptitious - substitutions - -version.c - - changed the extended version info to show 1998 as the copyright year - -parse.y - - fixes from Andreas Schwab - for compilation errors when the shell is configured --disable-alias - but with dparen arithmetic enabled - -eval.c - - fixes from Andreas Schwab to - make sure the input stream is popped correctly when performing an - array assignment in the command argument to `bash -c', e.g., - `bash -c 'A=()'' - -builtins/kill.def - - make `kill' with no arguments print a usage message and return a - failure status - -alias.c - - fix so that rd_token doesn't dump core when trying to do alias - expansion on a line containing an unclosed single quote (fix from - Vasco Pedro ) - -builtins/cd.def - - fix so that using a non-empty directory from CDPATH to construct - the name of the directory to change to results in an absolute - pathname of the new current working directory being displayed, - as POSIX.2 specifies - -support/bashbug.sh - - a couple of small fixes to minimize /tmp file races -- the script - is still raceable, the window is just smaller - - 3/24 - ---- -variables.c - - make sure assign_in_env passes a malloc'd string to - expand_string_unsplit, because some of the error code assumes that - it is malloc'd and frees it (bug reported by Marko.Makela@HUT.FI) - - 3/25 - ---- -doc/bashref.texi - - changed the email addresses to use the @email texinfo tag - -trap.c - - call reset_parser from the exit trap code before calling - parse_and_execute, so reserved words are parsed correctly - -subst.c - - make sure parameter_brace_patsub expands the pattern string as if - the expression were not in double quotes, even if the entire - expansion is enclosed in double quotes, so that quote removal - on embedded double quotes is performed correctly (bug report from - schwab@issan.informatik.uni-dortmund.de) - - 3/27 - ---- -support/config.guess - - changes to allow Power PCs running Apple's Rhapsody to configure - - 3/31 - ---- - -Makefile.in - - changed release status to `beta2' - -[bash-2.02-beta2 frozen] - - 4/6 - --- -subst.c - - make sure command_substitute does not try to set the terminal's - process group to a background job - -[bash-2.02 frozen] - - 4/18 - ---- -[bash-2.02 released] - - 4/20 - ---- -bashline.c - - make sure that rl_defun is not called for - history-and-alias-expand-line unless both ALIAS and BANG_HISTORY - are defined - [in bash-2.02.1] - - 4/22 - ---- -make_cmd.c - - make sure that make_here_document allocates enough space for the - first line of the here document, by using the line length +2 - (instead of 1000, which is what the old code did, and breaks if - the first line of the here document is enough longer than 1000 - characters to cause other memory to be scribbled on) - [in bash-2.02.1] - -builtins/cd.def - - when in posix mode, a value of "" for CDPATH should be treated the - same as the current directory, not result in an error - [in bash-2.02.1] - -lib/malloc/malloc.c - - change the mh_align member of `union mhead' to be of type double - rather than a pointer, so that malloc will return (hopefully) - 8-byte aligned memory - [in bash-2.02.1] - - 4/23 - ---- -aclocal.m4 - - add a new macro to check whether or not off_t is 64 bits - - 4/24 - ---- -configure.in - - fixed a typo so the bash malloc is not compiled in on mips-sgi-irix6 - -lib/readline/display.c - - fix for readline redisplay if the prompt string is longer than the - screen width and includes invisible characters - [in bash-2.02.1] - -jobs.c - - make_child should not set the terminal's process group to - pipeline_pgrp if pipeline_pgrp == shell_pgrp (indicating that we - are forking a child for a command substitution) - [in bash-2.02.1] - -subst.c - - in execute_simple_command, in the child forked if there is a pipe - or the command is asynchronous, set subshell_environment to - SUBSHELL_ASYNC only if the command is asynchronous, SUBSHELL_FORK - if there is a pipe in or out - [in bash-2.02.1] - - 4/27 - ---- -support/texi2dvi - - upgraded to version 0.8 (from 0.5) - -support/texi2html - - upgraded to version 1.52 (from 1.51) - -support/config.sub - - config.sub now recognizes all the permutations of the system name - that config.guess produces for alphas - [in bash-2.02.1] - -aclocal.m4 - - changed BASH_TYPE_INT32_T, BASH_TYPE_U_INT32_T, and - BASH_TYPE_PTRDIFF_T to avoid compiling a program; instead use - the values determined by the AC_CHECK_SIZEOF tests to determine - the default values to supply to AC_CHECK_TYPE - -configure.in - - don't call AC_CHECK_TYPE({int32_t,u_int32_t,ptrdiff_t}) from - configure.in; use the updated BASH_TYPE macros instead - -builtins/exec.def - - if shell_execve fails, set ARGS to null because the realloc() call - by shell_execve may have caused it to be reallocated and freed -- - we don't want to free the memory twice - -lib/glob/fnmatch.c - - fixes from ache@nagual.pp.ru to make fnmatch work for eight-bit - characters when `isupper' and `islower' are used -- they were - restricted to ASCII characters before, probably to work around - some ancient, broken C libraries in which is{low,upp}er are valid - only for ASCII characters and return bogus values otherwise - [in bash-2.02.1] - - 4/29 - ---- -builtins/cd.def - - fixed a problem with the shell displaying the old working directory - instead of the new one after changing to a directory found via - $CDPATH when in physical mode (set -o physical) - [in bash-2.02.1] - -make_cmd.c - - make make_cond_command initialize the line number from the cond_node - that's passed as an argument (not that it's used right now) - -copy_cmd.c - - make sure that copy_cond_command copies the type of the cond command, - since execute_cond_command uses that to decide what kind of test - to perform - [in bash-2.02.1] - -builtins/printf.def - - make sure the for loop that processes the format string actually - consumes arguments; otherwise process it only once to avoid - infinite loops (e.g., `printf " " abc def ghi') - [in bash-2.02.1] - - if the format string is empty after preprocessing by ansicstr, - return immediately - [in bash-2.02.1] - -tests/run-printf - - use `diff -a' so the presence of a non-printing character in the - output doesn't confuse diff into thinking the files are binary - (test whether or not `diff' supports `-a' first) - -Makefile.in - - keep $(LOCAL_LIBS) from being specified twice - - 4/30 - ---- -support/shobj-conf - - a script to generate variables to do shared object configuration - for the loadable builtin stuff - -configure.in - - added a section for shared object configuration using an `eval' - of the output of shobj-conf and substituting the generated values - with AC_SUBST - -examples/loadables/Makefile.in - - the system-specific shared object configuration variables are now - substituted by configure - - 5/4 - --- -builtins/ulimit.def - - some changes for HPUX 9.x's peculiar handling of RLIMIT_FILESIZE - - changed the limit retrieval functions to return an error code - and the value in a reference argument to avoid use of RLIM_INVALID - -general.c - - new function, get_group_array(), which returns an array of - gids - -examples/loadables/{id,printenv,sync,uname,whoami,push}.c - - new loadable builtins - -variables.c - - moved code that initializes $PPID into a new function, set_ppid() - -variables.h - - extern declaration for set_ppid() - - 5/6 - --- -subst.c - - make sure that the `"' (double-quoted string) case of - expand_word_internal calls string_list_dollar_at if we've expanded - a double-quoted $@ so correct splitting on $IFS is done when - the expansion is complete. We can't simply call string_list - because that forces a space separator, and $IFS may not contain - a space - [in bash-2.02.1] - - 5/7 - --- -builtins/umask.def - - broke the code that parses a symbolic mode out of symbolic_umask - into a separate function that takes a symbolic mode and an initial - set of bits to modify - -examples/loadables/mkdir.c - - new loadable builtin - - 5/11 - ---- -builtins/printf.def - - use the format string length provided by ansicstr() to process the - format string, rather than testing for nullness, to handle NUL - bytes in the expanded format string - -builtins/pushd.def - - changes so it can be built as both a regular builtin and a loadable - builtin from the same source - -examples/loadables/Makefile.in - - changes to build pushd.c from ${topdir}/builtins/pushd.def and then - compile it with the correct flags to make it a loadable builtin, - even if PUSHD_AND_POPD is not defined in config.h - - 5/12 - ---- -lib/readline/complete.c - - use rl_completer_quote_characters instead of #ifdef SHELL/#endif - code in make_quoted_replacement. This means complete.c no longer - has any #ifdef SHELL code - - 5/13 - ---- -builtins/Makefile.in - - `make clean' should remove mkbuiltins.o - -Makefile.in - - all of the various `clean' targets need to descend into lib/sh - and run the appropriate target there - -builtins/type.def - - changed to use the builtin getopt. The old long options are - handled by prescanning the argument list looking for the long - options, processing them, and taking them out of the list before - passing it to internal_getopt() - -lib/readline/signals.c - - removed #ifdef SHELL code -- job control signals and SIGTERM are - always set in rl_set_signals, but are set to SIG_IGN if the old - handler was SIG_IGN (as bash sets it) - - new function rl_maybe_set_sighandler, which sets the signal - disposition back to SIG_IGN if the old handler was SIG_IGN - - removed #ifdef HANDLE_JOB_SIGNALS and #ifdef HANDLE_SIGTERM code - -lib/readline/rltty.c - - removed #ifdef SHELL code -- set_winsize is always called - to force the application to stop if it's not in the foreground - before getting the tty attributes - - 5/14 - ---- -lib/readline/signals.c - - readline now catches SIGQUIT and cleans up the tty before resending - it to its container application (unless the calling application has - set the disposition of SIGQUIT to be SIG_IGN) - - rl_handle_sigwinch is now called rl_sigwinch_handler - - rl_sigwinch_handler now calls rl_resize_terminal to fetch the - screen size after a SIGWINCH - - the sighandler_cxt struct for non-posix systems now includes - sa_flags and sa_mask variables, for future use - - new variable, rl_catch_signals, indicating that readline should - install its own signal handlers for SIGINT, SIGTERM, SIGQUIT, - SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU - - new variable, rl_catch_sigwinch, indicating that readline should - install its own SIGWINCH handler, which will chain to a calling - application's SIGWINCH handler - - new function, rl_free_line_state(), to free up variable state - associated with the current line after receiving a signal - - new function, rl_cleanup_after_signal(), to clean up the display - and terminal state after receiving a signal - - new function, rl_reset_after_signal(), to reinitialize the - terminal state after a signal handler returns and readline - continues - - rl_set_signals and rl_clear_signals now look at the values of - rl_catch_signals and rl_catch_sigwinch - -lib/readline/terminal.c - - new function rl_resize_terminal (), to reset readline's idea of - the screen size after a SIGWINCH - -lib/readline/readline.h - - extern declarations for rl_resize_terminal(), rl_free_line_state(), - rl_cleanup_after_signal(), rl_reset_after_signal() - - extern declarations for rl_catch_signals and rl_catch_sigwinch - -variables.c - - new functions, get_env_value(char *) and get_home_dir(void) to - satisfy references from the tilde and readline libraries when - they are compiled as part of bash - -lib/tilde/tilde.c - - rely on extern declarations of get_env_value and get_home_dir; - there is no more #ifdef SHELL code - -lib/readline/shell.c - - implementation of get_home_dir that uses getpwuid() to satisfy - references from tilde.c when not compiled as part of bash - - removed savestring() - - removed #ifdef SHELL/#endif pair -- all of these functions will be - resolved from bash when readline is linked into bash - -lib/readline/savestring.c - - new file, with function definition for savestring() for backwards - compatibility - -Makefile.in, _distribution - - bumped things up to bash-2.03-alpha - - 5/15 - ---- -lib/readline/rlconf.h - - removed #ifdef SHELL/#endif pair, so the callback stuff will be - compiled into libreadline, but never linked into bash (since it's - not referenced) - -configure.in - - added new `--with-installed-readline' option to allow readline to - be linked with an already-installed version -- this will probably - not work with versions of readline prior to 2.3 (libreadline.so.4) - [THIS IS STILL UNDOCUMENTED] - -Makefile.in - - changed necessary variables to allow the `--with-installed-readline' - option to work; shared and static libraries are supported - - 5/18 - ---- -lib/readline/display.c - - _rl_save_prompt is now rl_save_prompt; _rl_restore_prompt is now - rl_restore_prompt - -lib/readline/readline.h - - extern declarations for rl_save_prompt and rl_restore_prompt - -lib/readline/{search,isearch,readline,display}.c - - converted calls to _rl_{save,restore}_prompt () to use new public - versions - -lib/readline/doc/rltech.texinfo - - documented new public functions rl_{save,restore}_prompt - - 5/19 - ---- -lib/readline/readline.c - - new hook function variable, rl_pre_input_hook. If non-zero, it's - called from readline_internal_setup just before it returns and - readline starts reading input - -lib/readline/readline.h - - extern declaration for rl_pre_input_hook - -lib/readline/doc/rltech.texinfo - - documented new variable rl_pre_input_hook - - 5/20 - ---- -lib/readline/complete.c - - new hook function variable, rl_completion_display_matches_hook. - If non-null, this function is called when readline would normally - display the list of completion matches - -lib/readline/readline.h - - extern declaration for rl_completion_display_matches_hook - -lib/readline/doc/rltech.texinfo - - documented rl_completion_display_matches_hook - -lib/readline/readline.c - - if RL_LIBRARY_VERSION is not defined, define it to 4.0 to match - the version number of the shared libraries - -lib/readline/doc/{hist,rlman}.texinfo - - changed the version and edition to 4.0 to match the library version - -support/config.guess - - added case clause for matching UnixWare 7 from SCO (SVR5) -- further - work may be needed - [These fixes were in a usenet posting from hops@sco.com] - -support/config.sub - - added case clauses to recognize various aliases for SCO Open Server - and Open Desktop - [in bash-2.02.1] - - broke the code that canonicalizes unixware into unixware2 and - unixware7 clauses (multiple places) - [in bash-2.02.1] - - added clause to recognize `sysv5' for SVR5 - [These fixes were in a usenet posting from hops@sco.com] - [in bash-2.02.1] - -configure.in - - add `-b elf' to LOCAL_CFLAGS for sco3.2v5* to allow dynamic linking - (and loadable builtins) - - add AC_DEFINE(SVR5) on SVR5 (unixware 7) - -config.h.in - - add #undef SVR5, set by configure - - 5/21 - ---- -shell.c - - line-buffer stdout and stderr in shell_initialize only if - shell_initialized is 0 on all systems, not just SunOS 5 - [in bash-2.02.1] - -support/rlvers.sh - - script to print out the version number of any installed - readline library - -configure.in - - only allow --with-installed-readline if the version of the - installed readline library is 4.0 or greater - - 5/22 - ---- -lib/readline/complete.c - - broke the code that actually displays a list of completion - matches on the output stream into a separate public function, - rl_display_match_list, so it can be called from the hook - function rl_completion_display_matches_hook. - -lib/readline/readline.h - - new extern declaration for rl_display_match_list - -lib/readline/rltech.texinfo - - documented rl_display_match_list - -configure.in,Makefile.in - - --enable-static-link now creates a STATIC_LD variable in Makefile - rather than adding to LDFLAGS directly. LDFLAGS now includes - $(STATIC_LD) - - 6/2 - --- -builtins/cd.def - - OLDPWD is now auto-exported - - broke the code out of bindpwd() that updated the value of PWD in - the export environment in-place and made it general, so it can - be used for OLDPWD, too (this should be made *more* general, and - moved to variables.c) - - 6/3 - --- -variables.c - - moved builtins/cd.def:export_pwd_var to here, renamed it to - update_export_env_inplace - - converted put_command_name_into_env to just call - update_export_env_inplace - - made dummy variable for OLDPWD, marked as invisible and exported, - in initialize_shell_variables - -variables.h - - extern declaration for update_export_env_inplace - -builtins/cd.def - - changed calls to export_pwd_var to update_export_env_inplace - -lib/readline/bind.c - - added missing return in rl_unbind_function_in_map - - changed _rl_read_file to check whether or not `read' returns - < 0 rather than < file_size - - _rl_read_init_file needs to free `openname' after calling - _rl_read_file, since it's not used again - -lib/readline/callback.c - - bogus extern declaration for `readline_internal_startup', should - be readline_internal_setup - -lib/readline/histfile.c - - read_history_range now checks whether read(2) returns < 0 rather - than checking the return value against the file size - -lib/readline/parens.c - - whoops -- timer.tv_usec is *micro* seconds, not milliseconds - -lib/readline/readline.c - - initialize `eof' to 1 in readline_internal_charloop - - 6/5 - --- -configure.in - - if we're configuring with an installed version of readline, set and - have configure substitute RL_INCLUDE to `-I$(includedir)', so the - build process uses the installed readline include files as well as - the libraries - -Makefile.in, builtins/Makefile.in - - add @RL_INCLUDE@ in the appropriate places, substituted by configure - -lib/readline/{history,readline}.h - - add `extern "C"' wrapper if `__cplusplus' is defined - -lib/glob/fnmatch.h - - include stdc.h - - add prototypes to extern declaration for fnmatch() - -lib/readline/rlstdc.h - - link to ../posixheaders/stdc.h (in readline lib with different name - for benefit of standalone readline library installation) - -lib/readline/{history,keymaps}.h - - include rlstdc.h - - add prototypes to all of the extern function declarations - -lib/readline/history.h - - the `data' member of a HIST_ENTRY is now a histdata_t, which is - either a void * (ansi c) or a char * (k&r c) - -lib/readline/readline.c - - changed calls to replace_history_entry to pass a histdata_t as the - third parameter - - 6/8 - --- -copy_cmd.c - - make sure that copy_cond_command doesn't blindly try to copy - com->op, since that will be null for AND and OR nodes, at least - [in bash-2.02.1] - -lib/readline/vi_mode.c - - added missing second argument to rl_vi_[fbe][Ww]ord(), since - they're used as pseudo-bindable commands (they appear in the - default funmap) as well as utility functions - -lib/readline/readline.h - - include rlstdc.h - - added prototypes for functions from vi_mode.c, util.c, terminal.c, - search.c, util.c, undo.c, readline.c, parens.c, macro.c, kill.c, - keymaps.c, isearch.c, input.c, funmap.c, display.c, complete.c, - callback.c, - - added extern declarations for functions from rltty.c - -lib/readline/{readline,util}.c - - rl_refresh_line now takes the standard two arguments for bindable - commands; changed callers - -lib/readline/*.c - - small cleanups for incorrect arguments, etc. uncovered by use of - function prototypes - -bashline.c - - small cleanups for incorrect arguments, etc. uncovered by use of - function prototypes - - 6/11 - ---- -jobs.c - - cast result of strsignal() to (char *) for the benefit of broken - Cray UNICOS machines - [in bash-2.02.1] - -configure.in,aclocal.m4 - - new test, BASH_TYPE_BITS64_T, used to find out what basic type is - 64 bits long; defaults to `double' - - call AC_CHECK_SIZEOF(double) - -config.h.in - - #define for bits64_t, undef by default - - 6/24 - ---- -aclocal.m4 - - changed BASH_TYPE_BITS64_T so that it checks the size of a char * - first, before trying sizeof(double) - -lib/readline/doc/rluser.texinfo,doc/{bash.1,readline.3} - - changed default binding for tilde-expand to M-&, since bash - overrides M-~ to force username completion - -bashline.c - - fixed an off-by-one error in hostnames_matching that exhibited - itself when an exact multiple of 16 hostnames matched (fix - from ) - [in bash-2.02.1] - - 6/30 - ---- -lib/readline/readline.c - - the maximum numeric argument is now 1000000 - -bashline.c - - fixed a bug in bash_directory_completion_hook that caused memory - to be freed twice if a directory name containing an unset - variable was completed and `set -u' had been set - -configure.in - - on LynxOS, add a -DRECYCLES_PIDS to LOCAL_CFLAGS - -execute_cmd.c - - make sure that the changes to make the shell fork early when - run in the background do not cause commands such as `%1 &' - to fork - [in bash-2.02.1] - - if RECYCLES_PIDS is defined, execute_command_internal sets - last_made_pid to NO_PID after waiting for a foreground process, - if the return status is 0 (fix from plai@Lynx.COM (Paul Lai)) - -lib/readline/kill.c - - fixes from Andreas Schwab to rl_yank_last_arg that make it - behave better - -lib/readline/input.c - - fixes from Donald Beaudry to make the input buffering - and rl_stuff_char work right when the input buffer is nearly full - (probably not a problem with keyboard input, but maybe a problem - with programmers attempting to use rl_stuff_char to preload the - input buffer) - - 7/14 - ---- -parse.y - - fix to decode_prompt_string so that the \$ expansion quotes the `$' - so it won't be processed by subsequent parameter expansion - - change read_token_word so a $$ appearing in a token is recognized - and parsed immediately, so a single or double quote after the - second `$' doesn't cause ANSI-C expansion or locale translation - (bug report from haertel@ichips.intel.com) - - 7/16 - ---- -lib/readline/display.c - - fixed a bug that caused core dumps in xrealloc if the prompt was - longer than 1024 characters - - 7/21 - ---- -builtins/mkbuiltins.c - - if the number of characters read from the .def file is less than - the file size reported by `stat', and the read completed without - errors, reset the file size to avoid writing garbage at the end - of the generated .c file (needed on WIN32 systems, doesn't hurt - on Unix) - - 7/22 - ---- -CWRU/empty-for-wordlist - - patch from Brian Fox for parse.y to allow bash to accept an empty - `wordlist' after the `in' keyword in a for statement - - 7/23 - ---- -doc/bash.1 - - corrected the synopsis of the `for' and `select' statements to - indicate that the semicolon (or newline) after the optional - `in words' is required - -[bash-2.02.1 released] - - 7/28 - ---- -lib/readline/display.c - - make sure visible_length is initialized to 0 in rl_expand_prompt. - Fix from Gerhard Niklasch . - -lib/glob/glob.c - - make sure that quotes are removed from the filename being globbed - in glob_vector() before calling the GLOB_TESTNAME macro if there - are no globbing characters in the pattern - -doc/Makefile.in - - make sure that builtins.1 is looked for in $(srcdir) when running - `make install' (it's still commented out, though) - - 7/30 - ---- -config.h.bot - - if PROMPT_STRING_DECODE is not defined, define PPROMPT (the primary - prompt string) as "$ " - -variables.c - - if PROMPT_STRING_DECODE is not defined, and current_user.euid == 0, - PS1 defaults to "# ", otherwise it defaults to `primary_prompt' - -doc/bashbug.1 - - fixed email address prep.ai.mit.edu -> gnu.org - - 8/3 - --- -support/shobj-conf - - add `solaris2' as a possible OS name, treated the same as sunos5 - - 8/4 - --- -shell.c - - changed maybe_make_restricted() so that $ENV and $BASH_ENV are - read-only variables in a restricted shell - -doc/{bash.1,bashref.texi} - - added ENV and BASH_ENV to the list of readonly variables in - restricted mode - -parse.y - - added `do', `then', `else', `{', and `(' to the list of keywords - that may precede the `time' reserved word - -general.c - - added sanity checks to timeval_to_secs and clock_t_to_secs so - that if the fractional part is >= 1000, 1 is added to the - seconds and 1000 is subtracted from the fractional seconds - - 8/6 - --- -Makefile.in - - use $(CC_FOR_BUILD) to build mksignames - -configure.in - - changes to allow cross-building for BeOS as well as cygwin32 - -cross-build/{beos-sig.h,x86-beos.cache} - - new files for cross-compiling for BeOS - - 8/7 - --- -Makefile.in - - changed rule for version.h to use && instead of if-then-else-fi to - make sure the recipe fails if mkversion.sh fails - -configure.in - - beos does not use the GNU malloc - -lib/sh/itos.c - - broke itos into inttostr(i, buf, len) and itos(i), which calls - inttostr and returns a newly-allocated string with the result - -support/mksignames.c - - define `SIGKILLTHR' if system include files define it - -externs.h - - extern declaration for inttostr(int, char *, int) - - 8/13 - ---- -lib/sh/strtol.c - - include stdc.h before bashansi.h - -execute_cmd.c - - make sure that execute_cond_node treats `=' the same as `==' - - 8/25 - ---- -variables.c, print_cmd.c - - changed some calls to itos to use inttostr instead - -cross-build/x86-beos.cache, {execute_cmd,general,shell,trap}.c - - some changes for BeOS (from fnf@ninemoons.com) - -lib/posixheaders/memalloc.h - - changes to handle case where we're using both gcc and the C - version of alloca(), or if we have alloca.h and we're using - the C version of alloca() (from fnf@ninemoons.com) - -lib/sh/oslib.c - - if bcopy or bzero are #defines, #undef them before defining - replacement functions - -support/config.guess - - recognize AmigaOS (from fnf@ninemoons.com) - - recognize BeOS running on various machines - (from fnf@ninemoons.com) - -support/config.sub - - change basic_machine definition for amiga; added amigaos - (from fnf@ninemoons.com) - - changed definitions for MIPS machines running Linux (from - fnf@ninemoons.com) - - recognize `beos' as a valid operating system - (from fnf@ninemoons.com) - - changed OS for *-cbm to `amigaos' rather than `amigados' - (from fnf@ninemoons.com) - -examples/functions/autoload.v3 - - a new version, from Mark Kennedy - -lib/readline/readline.c - - new function, rl_delete_or_show_completions, like tcsh editing - function delete-char-or-list - -lib/readline/readline.h - - new extern declaration for rl_delete_or_show_completions - -lib/readline/funmap.c - - new bindable name `delete-char-or-list', like tcsh - -lib/readline/doc/rluser.texinfo, doc/{bash.1,readline.3} - - documented new delete-char-or-list command - -general.c - - fix full_pathname to keep it from generating things like - //foo when the current directory is / - - 8/27 - ---- -builtins/fc.def - - fixed the help text for the -e option - - 8/28 - ---- -support/shobj-conf - - added a clause for AIX 4.2 systems running gcc -- just the - standard gcc stuff for shared objects, but it has to come - before the other AIX 4.2 clause - - 8/31 - ---- -shell.c - - some changes so that `set -e' is turned off while executing - the startup files - - 9/3 - --- -flags.c - - new variable, `restricted_shell', non-zero if the shell was - started in restricted mode - -flags.h - - extern declaration for restricted_shell - -shell.c - - new function, shell_is_restricted, returns 1 if the shell is - supposed to be restricted based on the basename of $0 or the - -r option - - set restricted_shell to the value returned by shell_is_restricted - before executing the startup files - -externs.h - - extern declaration for shell_is_restricted - -builtins/shopt.def - - new shopt variable, restricted_shell, indicates whether the shell - was restricted at startup -- useful in startup files - -doc/{bash.1,bashref.texi} - - documented new restricted_shell shopt option - - 9/15 - ---- -lib/sh/rename.c - - new file, replacement for rename(2) if the OS doesn't provide it - -configure.in,config.h.in,Makefile.in,lib/sh/Makefile.in - - machinery for including rename.o in libsh.a - -nojobs.c - - make sure that set_tty_state returns a value - -builtins/mkbuiltins.c - - use a call to rename(2) instead of a link/unlink pair - -lib/glob/glob.c - - don't #define bcopy if bcopy is already defined - -lib/readline/histfile.c - - add a call to ftruncate for BeOS, which ignores the O_TRUNC flag - to open - -lib/readline/input.c - - make rl_getc loop if read returns -1/EINTR on BeOS - -configure.in - - set ARFLAGS and substitute it into the Makefiles - -{,builtins,lib/{glob,malloc,readline,sh,termcap,tilde}}/Makefile.in - - ARFLAGS is now substituted by configure - - use ARFLAGS in rules that create libraries using $(AR) - -builtins/printf.def - - fixed bug that caused a core dump when a modifier was supplied - in the format string without a conversion character (e.g. `%h') - - 9/17 - ---- -lib/glob/glob.c - - if filenames starting with a dot don't have to be matched - explicitly (e.g., after a `shopt -s dotglob'), don't match - `.' or `..' in any case - -eval.c - - make sure that array assignments don't show up in the history list - (fix from Andreas Schwab ) - -lib/readline/complete.c - - fix to rl_menu_complete so it inserts a single completion properly - when a word matches only one filename - - 9/24 - ---- -execute_cmd.c - - difftimeval should zero out the tv_usec field if the tv_sec field - is < 0 - - addtimeval should check for tv_usec being == 1000000 and add one - to tv_sec if it is - - 9/25 - ---- -subst.c - - fix to expand_word_internal to prevent non-whitespace IFS characters - from causing word splitting if they are not the results of an - expansion (not exactly right yet, but I think it's the result of a - problem with the ${...} end-brace-matching code in the parser) - - 9/28 - ---- -parse.y - - new flag for parse_matched_pair -- P_FIRSTCLOSE -- which makes it not - count and match additional construct open characters - - change calls to parse_matched_pair when matching braces in - ${...} constructs (both unquoted and within double quotes) to - specify the P_FIRSTCLOSE flag to match POSIX.2 requirements - -subst.c - - changed fix from 9/25, now that the parser problem is fixed - - 9/30 - ---- -variables.c - - change expansion of list of words between (...) in array assignments - to include pathname generation in assign_array_var_from_string - -doc/{bash.1,bashref.texi} - - clarified behavior of the shell at startup if running setuid, with - and without the -p option supplied - - 10/7 - ---- -bashhist.c - - change default open(2) mode to 0600 instead of 0666 for `privacy - concerns' - - 10/13 - ----- -lib/readline/display.c - - fixed a problem with displaying tabs after newlines, from - - - in update_line, if we are printing over existing material, - only call space_to_eol or _rl_clear_to_eol if lendiff is non-zero - - when moving the cursor in _rl_move_cursor_relative, only call - _rl_backspace if the current cursor position is strictly greater - than the desired cursor position - - 10/14 - ----- -locale.c - - LC_ALL is no longer set automatically when LANG is assigned a value - -config.h.{top,bot} - - renamed to config-{top,bot}.h, respectively - -config.h.in - - include config-top.h and config-bot.h - -Makefile.in - - things now depend on config-top.h and config-bot.h - -subst.c - - minor changes to extract_dollar_brace_string and char_is_quoted to - allow things like "${PIP[TAB] to perform correct variable completion - - 10/15 - ----- -builtins/Makefile.in - - add $(PROFILE_FLAGS) to the make recipe that creates `mkbuiltins', - so configuring with --enable-profiling works right - - 10/20 - ----- -doc/bashref.texi - - documented the new --with-installed-readline option - -[bash-2.03-alpha1 frozen] - - 10/21 - ----- -builtins/reserved.def - - fixed help text for { ... } to make it clear that a semicolon is - required before the closing brace - - 10/22 - ----- -trap.c - - in decode_signal, don't bother calling strcasecmp if - signal_names[sig] is null or empty - - 11/2 - ---- -configure.in - - make sure RL_LIBDIR and HIST_LIBDIR are assigned values even if - readline or history is configured out of the shell, so the -L - options have arguments in the link command - -test.c - - make test_syntax_error cause test to return a status > 1, to - conform to POSIX.2 4.62.8 - -doc/readline.3 - - make sure the SYNOPSIS section indicates that programmers should - include before - - 11/9 - ---- -Makefile.in - - install with explicit mode of 0755 - - 11/10 - ----- -builtins/test.def - - make sure that a missing `]' makes `[' exit with status 2, to - conform to POSIX.2 4.62.8 - -command.h - - new word flag: W_NOGLOB, meaning to not perform globbing - -execute_cmd.c - - fix_assignment_statements now turns on the W_NOGLOB flag for - arguments to `assignment builtins' that have W_ASSIGNMENT set - -subst.c - - expand_word_internal needs to preserve the W_NOGLOB flag from - the word being expanded to the word being returned - - glob_expand_word_list does not call shell_glob_filename for a - word with W_NOGLOB set - -builtins/shopt.def - - print_shopt is now void - -configure.in - - machines running Rhapsody don't use the bash malloc - - pass host_vendor to the Makefiles with AC_SUBST - -support/config.guess - - Rhapsody is really rhapsody, not nextstep - -support/config.sub - - add rhapsody to the list of supported configurations - -Makefile.in - - pass CONF_HOSTTYPE, CONF_OSTYPE, and CONF_MACHTYPE as -D options - in SYSTEM_FLAGS, to indicate that they came from the configuration - process - - set VENDOR variable from host_vendor configuration variable - - pass CONF_VENDOR as part of SYSTEM_FLAGS - -variables.c - - define HOSTTYPE, OSTYPE, and MACHTYPE as CONF_HOSTTYPE, CONF_OSTYPE, - and CONF_MACHTYPE, respectively - - 11/11 - ----- -doc/{bashref.texi,bash.1} - - updated description of `read' to clarify the -r option and its - effect on backslash escaping - - 11/13 - ----- -examples/loadables/{ln,unlink}.c - - new loadable builtins - - 11/23 - ----- -lib/glob/fnmatch.c - - some fixes to handle extended glob patterns immediately following - a `*' - -tests/extglob.tests - - updated with cases from bug report fixed today - -support/shobj-conf - - udpated stanza for aix 4.2 with gcc, based on information from - jik@cisco.com - -configure.in - - changes to add the correct linker options to allow dynamic linking - when using gcc on AIX 4.2, instead of insisting on the AIX C - compiler - -examples/misc/aliasconv.{bash,sh} - - changes to handle aliases with embedded single quotes - - 11/25 - ----- -lib/readline/complete.c - - postprocess_matches should call compute_lcd_of_matches with an - argument of `t' instead of `text' - - postprocess_matches should never call ding(); leave that for the - callers - - postprocess_matches no longer needs `text' as the first argument - - rl_complete_internal needs to call ding() if postprocess_matches - returns 0, since postprocess_matches no longer does it - - rl_complete_internal can now free `text' immediately after calling - gen_completion_matches, since it's no longer used - - 11/30 - ----- -print_cmd.c - - make sure redirections following compound commands have a space - separating them from the command - - 12/1 - ---- -general.c - - changed canonicalize_pathname so that if the result path begins - with `//', it will be changed to `/' if and only if the original - path did not begin with `//' (there has to be a non-slash after - the leading `///' in the original path) - - 12/2 - ---- -builtins/evalstring.c - - augment the test for turning on CMD_NO_FORK to make sure that - parse_and_execute_level == 1. That takes care of things like - - bash -c 'for f in 1 2 3; do eval "/bin/echo \"$f\"" ; done' - - only printing one line of output - - 12/8 - ---- -config-top.h - - add commented-out #define for NON_INTERACTIVE_LOGIN_SHELLS so - that users may, if they choose, make things like - - #! /bin/bash --login - - work in shell scripts - - 12/10 - ----- -jobs.c - - changes to the way jobs are reaped when the shell is not - interactive: - - o notify_of_job_status no longer marks dead jobs as - notified if they did not exit due to a signal; - o changed mark_background_jobs_as_notified to take an - argument `force': if zero, we only mark enough - dead jobs as notified to keep CHILD_MAX jobs in the - jobs list, as POSIX.2 specifies. If non-zero, mark - all dead jobs as notified; - o wait_for_background_pids marks all dead jobs as - notified when it has finished waiting for everything, - since the only thing that calls it is the `wait' builtin; - o wait_for_single_pid marks a job as notified after it - has completed, since the only things that call it are - wait_for_background_pids and the `wait' builtin - o wait_for_job marks the job as notified after the last - pid completes - -execute_cmd.c - - change execute_subshell_builtin_or_function to check - subshell_environment and pipe_out to decide whether or not to fork - if builtin == jobs_builtin, since the early-forking code added in - bash-2.02 means that the piping has probably already been done - - 12/15 - ----- -parse.y - - changes to make avar=((...)) a syntax error instead of ignoring - the nested parens and treating it as an array assignment - -shell.c - - changed run_startup_files so that any shell, whether or not it is - interactive, will run the login shell startup files when given the - --login option. This happens only when not in posix mode. - -builtins/enable.def - - changes to handle Tenon's MachTen, whose dlclose() does not return - a value - -lib/glob/fnmatch.c - - changed gmatch so that when it calls extmatch, it removes FNM_PERIOD - from the flags if it's not matching at the start of the string. - This fixes the problem of `@' and `+' extended-glob subpatterns - containing bracket expressions treating `.' specially when matching - a portion of the string starting with `.' - -config-top.h - - removed define for NON_INTERACTIVE_LOGIN_SHELLS, since it's no longer - necessary - - 12/17 - ----- -lib/readline/complete.c - - change rl_complete_internal and rl_menu_complete to check - rl_filename_completion_desired to decide whether or not we're - completing filenames instead of checking whether the attempted - completion function is filename_completion_function. - filename_completion_function sets rl_filename_completion_desired, - so this shouldn't break anything -- just allow postprocessing of - matches for user-supplied filename completion functions that don't - call filename_completion_function - -lib/readline/display.c - - new function, _rl_erase_entire_line, which erases the entire line, - no matter where the cursor is, and puts the cursor at the beginning - of the (newly-empty) line - -lib/readline/readline.c - - new application-level variable, rl_erase_empty_line, which, if - non-zero, tells readline to erase the contents of the current line, - prompt and all, if the only character typed to an otherwise-blank - line is bound to rl_newline. Requested by the Cygnus GDB folks. - - change to rl_newline to suppress the call to _rl_update_final if - rl_erase_empty_line is non-zero, and rl_point == rl_end == 0, since - _rl_update_final calls crlf() - - change to readline_internal_charloop to call _rl_erase_entire_line - if newline was the only thing typed on an otherwise-empty line - -lib/readline/readline.h - - extern declaration for rl_erase_empty_line - -lib/readline/doc/rltech.texinfo - - documented new rl_erase_empty_line variable - - 12/18 - ----- -Makefile.in - - changed RELSTATUS to `beta1' - -[bash-2.03-beta1 frozen] - - 12/21 - ----- -doc/{bash.1,bashref.texi} - - added description of `test -h'; equivalent to `test -L' - - 12/22 - ----- -support/shobj-conf - - SHOBJ_LDFLAGS should be those options to ld which are common - between building dynamically loadable shared objects and shared - libraries - - added two new variables: SHOBJ_XLDFLAGS, which are ld options - specific to building dynamically loaded shared objects, and - SHLIB_LIBS, which are other libraries against which shared libraries - should be linked. These are for the benefit of AIX 4.2; other - stanzas do not need to be changed. - -configure.in - - add call to AC_SUBST for SHOBJ_XLDFLAGS - -examples/loadables/Makefile.in - - SHOBJ_XLDFLAGS is now substituted by configure - - $(SHOBJ_LDFLAGS) -> $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) in all - recipes that build loadable builtins - - 12/29 - ----- -support/config.{guess,sub} - - changes for NEC SX4 machines running SUPER-UX (?). Info from - Nicholas Clark - -lib/readline/bind.c - - new bindable variable, `isearch-terminators', which is the list of - characters that will terminate an incremental search without - subsequently executing the character as a command - -lib/readline/isearch.c - - changes to incorporate the new isearch-terminators bindable variable; - uses new private readline variable _rl_isearch_terminators - (suggested by Brian Fox) - -doc/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo - - documented new `isearch-terminators' settable variable - -lib/readline/complete.c - - new convenience function, free_match_list, called from - rl_complete_internal - - 12/30 - ----- -aclocal.m4 - - changed the calls to AC_MSG_ERROR in the cross-compiling sections - to AC_MSG_WARN, since AC_MSG_ERROR can cause configure to abort - -examples/functions/which - - new function, emulation of `which' as it appears in FreeBSD - - 12/31 - ----- -lib/readline/readline.c - - new bindable function: rl_rubout_or_delete. Does rl_rubout if - rl_point is at the end of the line, or rl_delete if not. This - is intended to mimic the Motif/Netscape/GNOME behavior of the - DEL character, and can be bound to delete to get that behavior - -lib/readline/readline.h - - new extern declaration for rl_rubout_or_delete - -lib/readline/funmap.c - - bound the name `forward-backward-delete-char' to - rl_rubout_or_delete (currently not bound to any keys) - -lib/readline/doc/manvers.texinfo - - new file with readline manual version information, to mantain - consistent numbering between readline and history manuals - -lib/readline/doc/{rlman,hist}.texinfo - - @include manvers.texinfo for version information - - moved the @dircategory and and @direntry directives inside - the @ifinfo block - - changed copyrights to 1988-1999 - -doc/Makefile.in, lib/readline/doc/Makefile.in - - texi2html is now called with -menu (to handle the texinfo menus) - and -monolithic (to include the table of contents in the generated - HTML file instead of putting it in a separate file - - changed recipes to remove references to TOC html files - -lib/glob/fnmatch.c - - include or as appropriate for strchr() - declaration - - 1/4/1999 - -------- -print_cmd.c - - don't print bare words when printing conditional expressions in - print_cond_node, use cprintf("%s", cond->op->word) - -subst.c - - in separate_out_assignments, if VARLIST is non-null on function - entry, free it up to clean up after a previous error longjmp - - 1/5 - --- -configure.in - - make sure the case clause that disables the bash malloc on alpha - machines catches things like `alphaev56' as well as `alpha' - - 1/12 - ---- -lib/readline/histlib.h - - new error message code: NO_PREV_SUBST - -lib/readline/histexpand.c - - handle NO_PREV_SUBST with appropriate error message in hist_error - - in history_expand_internal, if the `s' or `&' case results in a - null or empty LHS, return NO_PREV_SUBST - -error.c - - new interface: command_error(func, code, e, flags); intended to - collect command-related errors in one place - - new interface: command_errstr(code); returns a string describing - command error CODE - -error.h - - extern declarations for command_error and command_errstr - -command.h - - possible values for CODE in calls to command_error and command_errstr - -{shell,print_cmd,make_cmd,execute_cmd,dispose_cmd,eval}.c ,builtins/evalstring.c - - changed some calls to programming_error to use command_error - - 1/13 - ---- -configure.in - - if --enable-profiling is specified on a solaris2 machine, don't - turn on enable-static-link, since it's very hard to build a - static binary on solaris2 and gprof does not (apparently) require it - -builtins/getopts.def - - add calls to sh_getopt_restore_state so the state is restored each - time getopts is called. This protects us against the behavior of - some mallocs, which causes `nextchar' to be set to garbage in - getopt.c when a function is called between calls to getopts - - 1/14 - ---- -lib/readline/complete.c - - if postprocess_matches returns 0 in rl_complete_internal, reset - completion_changed_buffer to 0 before returning, since nothing - has been changed - - 1/20 - ---- -subst.c - - fixed pat_subst so that null patterns with a `#' specifier prefix - the string to be substituted on with the replacement, and null - patterns with a `%' specifier append the replacement to the string - to be substituted on - -doc/{bash.1,bashref.texi} - - corrected a small error in the description of parameter pattern - substitution - -support/mksignames.c - - SIGINFO means something else on sequent systems - - 1/26 - ---- -execute_cmd.c - - fix to execute_simple_command to keep a child process from getting - a bad value of last_asynchronous_pid when the shell forks early - - 2/1 - --- -Makefile.in - - changed RELSTATUS to `beta2' - - 2/2 - --- -[bash-2.03-beta2 released] - - 2/3 - --- -tests/{cprint.{tests,right},run-cprint} - - new test to exercise the command printing and copying code -- - hopefully this will avoid things like the `conditional commands - in functions make the shell abort' problem - - 2/4 - --- -version.c - - if MACHTYPE is not defined, use CONF_MACHTYPE if it's defined - - 2/5 - --- -builtins/read.def - - if READLINE is defined, we need an extra pair of braces around - the `while' loop that reads from fd 0 if the -e option is - supplied, otherwise the code erroneously tests the value of - `retval', which is not set when using readline - - 2/15 - ---- -builtins/fc.def - - make sure that fc closes `stream' before calling fc_execute_file - - 2/17 - ---- -builtins/fc.def - - don't bother opening and closing the file of commands before - calling fc_execute_file, since parse_and_execute will write the - commands to the history file for us - -Makefile.in - - changed release status to `release' - - 2/18 - ---- -parse.y - - change to special_case_tokens so that `time' is not recognized - as a reserved word while the parser is parsing a case statement - pattern list (if `time' is the first pattern, the last read - token will be newline, which time_command_acceptable says is OK - to start a pipeline) - -pathexp.c - - some changes to the POSIX_GLOB_LIBRARY code (often unused) - -shell.c - - a couple of changes for Interix (nee OPENNT) - - added code that handles systems without a third argument to main(); - initializing `env' from `environ', conditionalized on a cpp define - NO_MAIN_ENV_ARG - -configure.in, config.h.in - - check for the presence of sbrk(2); define HAVE_SBRK if found - -xmalloc.c - - don't do the space allocated computation when malloc or realloc - fails if HAVE_SBRK is not defined - -configure.in - - new configure variable, MAKE_SHELL, defaults to /bin/sh - -Makefile.in,{builtins,doc,support,lib/{glob,malloc,readline,sh,termcap,tilde},examples/loadables}/Makefile.in - - set SHELL from @MAKE_SHELL@ - -lib/posixheaders/posixjmp.h - - Don't override defines for setjmp and longjmp in on - Internix (nee OPENNT) - -lib/readline/complete.c - - Interix (OPENNT) doesn't do username completion - -configure.in - - on Interix/OPENNT ($host_os == interix* or opennt*), add - -DNO_MAIN_ENV_ARG to LOCAL_CFLAGS - - on Interix/OPENNT, set MAKE_SHELL to $OPENNT_ROOT/bin/sh rather - than a straight /bin/sh - -cross-build/opennt.cache - - a `configure' cache file for Interix/OPENNT; not necessarily - for cross-compiling, but this is where the other system cache - files are - -[bash-2.03 released] - - 2/19 - ---- -configure.in - - changed OPENNT_ROOT to INTERIX_ROOT for building on Interix - -support/config.guess - - added two stanzas for Interix running on alpha and intel hardware - - 2/22 - ---- -config-bot.h - - if PROMPT_STRING_DECODE is not defined, #undef PPROMPT before - redefining it, to avoid warning messages - -execute_cmd.c - - set jobs_hack in execute_subshell_builtin_or_function only if - JOB_CONTROL is defined - - 2/24 - ---- -trap.c - - fixed an obscure bug caused by a race condition in run_pending_traps. - Read the comments in the source code for a full description of the - problem and solution - - 3/1 - --- -aclocal.m4 - - new test, BASH_STRUCT_TIMEVAL, which tries to compile a code - fragment that includes and as appropriate - and defines HAVE_TIMEVAL if the compile succeeds - -configure.in - - call BASH_STRUCT_TIMEVAL rather than running a pair of - AC_HEADER_EGREPs on sys/time.h and time.h - -lib/readline/histfile.c - - include "posixstat.h" rather than - - in history_truncate_file, only try to truncate if the history file - is a regular file - - 3/2 - --- -aclocal.m4 - - changed BASH_STRUCT_TIMEVAL back to using a pair of - AC_EGREP_HEADERs instead of compiling a program fragment - -lib/readline/readline.c - - readline_internal_charloop should cast the first argument to - _rl_dispatch to `unsigned char' to avoid problems with negative - array indices on systems where signed chars are the default - -lib/readline/kill.c - - instead of doing a sequence of next_history() calls in - rl_yank_nth_arg_internal, save and restore the history - position explicitly after finding the correct entry. This - attempts to ensure that rl_yank_nth_arg leaves the history - pointer set to the same position as when it was called. - Fix from Vasco Pedro - - 3/5 - --- -redir.c - - broke code that opens file for redirection in do_redirection_internal - into a separate function: redir_open(path, flags, mode, ri) - -general.h - - changed STREQN so that it evaluates to 1 (strings are equivalent) - if N == 0, to match the behavior of strncmp - -lib/sh/zwrite.c - - new file, zwrite() from builtins/evalstring.c - -builtins/evalstring.c - - removed private definition of zwrite - -builtins/common.c - - double_quote needs to protect newlines with backslashes as well - - new function, un_double_quote, to remove backslashes proctecting - characters that are special in double quotes - -builtins/common.h - - new extern declaration for un_double_quote - -parse.y - - changed read_token_word to requote the expanded value of $'...' - using single_quote - - added a new flag to parse_matched_pair: P_ALLOWESC. It allows - backslashes to quote embedded single quotes, and is used by - the $'...' translation code for better ksh93-compatibility - - changed localeexpand to call mk_msgstr on the string passed - before displaying it if all we're doing is displaying translatable - strings in `po' format. mk_msgstr quotes backslashes and double - quotes in the string passed with backslashes, and encloses the - result in double quotes. If only -D is supplied, the string is - not changed at all -- this is what ksh93 does - -lib/readline/rlconf.h - - removed PAREN_MATCHING #define, paren matching is always compiled - into readline - -lib/readline/parens.c - - removed code that was active if PAREN_MATCHING was not defined - - added _rl_enable_paren_matching, which is called when the readline - variable `blink-matching-paren' is assigned a value and changes - the appropriate key bindings in emacs_standard_keymap - -lib/readline/bind.c - - no more PAREN_MATCHING defines, `blink-matching-paren' is always - available - - if `blink-matching-paren' is assigned a value, call - _rl_enable_paren_matching (rl_blink_matching_paren) - -lib/readline/emacs_keymap.c - - removed PAREN_MATCHING defines; the default key bindings for - ), ], and } are self-insert - - 3/7 - --- -stringlib.c - - added an extra argument to ansicstr so that `echo -e' will not - convert \' to ' - -externs.h - - changed extern declaration for ansicstr - -parse.y, builtins/{echo,printf}.def - - changed calls to ansicstr() appropriately - -eval.c - - in parse_string_to_word_list, if an unexpected token is encountered - that causes the string to not parse to a simple command, or to - completely consume the string, display an error message and jump - back to the top level after restoring the parsing environment, - returning an error status from the attempted assignment - - 3/8 - --- -lib/glob/fnmatch.c - - fixed patscan and extmatch to handle embedded [...](...) patterns - better - -tests/{extglob2.{tests,right},run-extglob2} - - an additional set of ksh extended globbing tests, cribbed from zsh - - 3/10 - ---- -general.c - - changed unset_nodelay_mode slightly to make sure it handles both - O_NDELAY and O_NONBLOCK if they have different values; it now - returns a value of 0 on success (or no action); -1 on failure - -general.h - - changed extern declaration for unset_nodelay_mode - - -lib/readline/shell.c - - new function: unset_nodelay_mode; identical to definition in - general.c - -lib/readline/input.c - - changed rl_getc to call unset_nodelay_mode if the read fails with - errno == EWOULDBLOCK || errno == EAGAIN - - 3/11 - ---- -lib/termcap/termcap.c - - minor changes from termutils-2.0 - - minor change to MS-DOS version of valid_filename_p so MS-DOS-specific - code from tgetent() can be removed (from Michel@smr.nl) - -lib/readline/bind.c - - in _rl_read_file, null-terminate the buffer at the number of - characters actually read, not what stat() says the file size is - - use ~/_inputrc as a last-ditch inputrc filename on MS-DOS - -lib/readline/complete.c - - change printable_part to handle MS-DOS `drive-letter:' pathname - prefixes - - removed __GO32__ code, since it's for DJGPP 1.x, which is not - supported any more, and they don't work for DJGPP 2.x - - added code to support MS-DOS drive letter prefixes and //X/... - to filename_completion_function - - _rl_completion_case_fold defaults to 1 on MS-DOS - -lib/readline/{display,input,readline,rltty,signals,terminal}.c - - removed __GO32__ code - -lib/readline/histfile.c - - make read_history_range and history_truncate_file work with the - actual number of characters read from the file, not the file size - as reported by stat() - -lib/readline/readline.c - - change bind_arrow_keys_internal to bind MS-DOS arrow keys to the - appropriate functions if __MSDOS__ is defined - -lib/readline/rltty.c - - make sure set_winsize is always defined, with a null body if - TIOCGWINSZ is not defined - -lib/readline/shell.c - - include , since this file uses sprintf - -support/shobj-conf - - MS-DOS does not support shared objects - -lib/tilde/tilde.c - - change tilde_find_suffix and isolate_tilde_prefix to understand - backslash as a pathname separator on MS-DOS - - 3/12 - ---- -lib/readline/{bind,readline,terminal}.c - - no longer need to include - -lib/readline/terminal.c - - don't need to include - -builtins/history.def - - broke the code than handles deleting a particular history entry - from the history list out into a separate function: delete_histent - - added `-d offset' option to delete the history entry at position - OFFSET, as displayed when the history is listed - -jobs.c, nojobs.c - - new function, count_all_jobs(), returns the number of active jobs - in the jobs list - -jobs.h - - extern declaration for count_all_jobs() - -configure.in - - check for C library function ttyname() - -config.h.in - - define HAVE_TTYNAME if configure finds ttyname(3) - -parse.y - - two new escape sequences for decode_prompt_string: - - \j number of active jobs in jobs list - \l basename of shell's tty device name - -doc/{bash.1,bashref.texi}, lib/readline/doc/hsuser.texi - - documented new `history -d' option - - documented new \j and \l prompt string expansion sequences - -lib/readline/bind.c - - new static state variable, currently_reading_init_file, set to - 1 while _rl_read_init_file is operating on a file - - changed _rl_init_file_error to include the name and line number - from the init file only if currently_reading_init_file is non-zero - (this is needed since applications like bash can call - rl_parse_and_bind, and error messages from those calls would be - misleading if they referred to the last inputrc file read - -bashline.c - - support for a `extended command keymap', which will allow - readline key sequences to be bound to unix commands using an - auxiliary keymap and a special function that knows how to execute - commands from it - - bind_keyseq_to_unix_command supports `bind -x' - - bash_execute_unix_command is the readline callback that looks in - an auxiliary keymap to find the shell command to execute for a - particular key sequence - - new variable, no_empty_command_completion, which suppresses $PATH - searching for command completion when TAB is typed on an empty - line - -bashline.h - - extern declaration for new function bind_keyseq_to_unix_command - -builtins/bind.def - - added `-x' option to bind a key sequence to a shell command - -builtins/help.def - - added `-s' option to just print a builtin's short_doc - -builtins/shopt.def - - added new shell option, no_empty_cmd_completion', mirroring value - of no_empty_command_completion - -doc/{bash.1,bashref.texi} - - documented new `bind -x' option - - documented new shopt `no_empty_cmd_completion' option - - documented new `help -s' option - -Makefile.in - - changed RELSTATUS to `devel' - -_distribution - - changed to `2.04' - - 3/15 - ---- -support/shobj-conf - - add `-h $@' to linking options on Solaris 2 with gcc - -expr.c - - changes to add {pre,post}-{inc,dec}rement operators (++id, --id, - id++, id--). These are somewhat more liberal than ksh93, and - may require more strict syntax checking down the line - -tests/arith.{tests,right} - - additional tests for {pre,post}-{inc,dec}rement operators - - 3/16 - ---- -command.h - - structures and types for ksh-93-style arithmetic `for' command - -configure.in - - new `--enable-arith-for-command' option to compile arithmetic for - command code into the shell - -config.h.in - - new define, ARITH_FOR_COMMAND, turned on by configure - -parse.y - - changed read_token_word to parse a set of arithmetic for expressions - between (( and )) as long as the last token read before the `((' - was FOR - - added grammar rules to build arithmetic for commands - -make_cmd.c - - functions to parse (( ... )) into the three sub-expressions needed - for the arithmetic for command and create the command structures - (done this way instead of in the grammar rules to avoid forcing - users to quote special characters between the (( and )) ) - -make_cmd.h - - extern declaration for make_arith_for_command - -copy_cmd.c - - code to copy arithmetic for commands - -dispose_cmd.c - - code to dispose of arithmetic for commands - -print_cmd.c - - code to print arithmetic for commands - -execute_cmd.c - - code to execute arithmetic for commands and note that they are - shell control structures for the piping code - -doc/{bash.1,bashref.texi} - - documented new arithmetic for command - -doc/bashref.texi - - documented new configure --enable-arith-for-command option - - 3/17 - ---- -builtins/read.def - - added `-t timeout' option and code to support it - - 3/18 - ---- -examples/loadables/Makefile.in - - various clean targets need to descend into perl - -examples/loadables/perl/Makefile.in - - added mostlyclean and maintainer-clean targets - -include - - new directory, with files from lib/posixheaders - -lib/posixheaders - - removed - -{posixwait,unionwait,maxpath}.h - - moved from top src directory to include subdir - -Makefile.in,builtins/Makefile.in,lib/{glob,malloc,sh,tilde}/Makefile.in - - updated dependencies and file lists for new include directory - - added BASHINCDIR variable, added -I${BASHINCDIR} to cc's include path - -MANIFEST,support/SYMLINKS - - updated for new include directory - -lib/readline/{ansi_stdlib,posixdir,posixjmp,posixstat,rlstdc}.h - - changed symlinks to point to ../../include rather than - ../posixheaders - -builtins/common.h - - changed `#include "../stdc.h"' to `#include "stdc.h"' - -builtins/{cd,exec,fc,history,pushd,source,type,umask,printf}.def -builtins/{mkbuiltins,common,evalfile,evalstring,getopt}.c - - changed include specifications: - ../posixstat.h -> posixstat.h - ../filecntl.h -> filecntl.h - ../maxpath.h -> maxpath.h - ../memalloc.h -> memalloc.h - -include/shtty.h - - new file, contents of bashtty.h and code from jobs.c that includes - the appropriate terminal file - -lib/sh/shtty.c - - new file with some tty manipulation utility functions - -bashtty.h - - removed - -jobs.c, nojobs.c - - include shtty.h instead of bashty.h and other code that includes - the correct system-dependent tty include file - -lib/sh/Makefile.in - - added shtty.o as part of libsh.a - -MANIFEST - - added include/shtty.h and lib/sh/shtty.c, removed bashtty.h - - 3/19 - ---- -lib/readline/display.c - - some more __MSDOS__ code to make readline work better with DJGPP: - output \r instead of tputs(term_cr, ...) - -lib/readline/terminal.c - - some changes for __DJGPP__ (one is of dubious value -- doesn't - DJGPP have a termcap library?) - - 3/23 - ---- -configure.in - - make sure that the $CC argument to shobj-conf is quoted - -support/shobj-conf - - changes to SGI SHOBJ_LDFLAGS from David Kaelbling - - 3/24 - ---- -lib/sh/zread.c - - interface to read(2) that restarts automatically if errno == EINTR - -externs.h - - new declarations for functions in lib/sh/{zread,zwrite}.c - -lib/sh/Makefile.in, Makefile.in - - add zread.c, zread.o to appropriate file lists - -{subst,input}.c, builtins/{evalstring.c,read.def} - - converted some loops around read() to call zread() instead - -lib/readline/rltty.h - - new struct _rl_tty_chars to save tty special characters - -lib/readline/rltty.c - - new function save_tty_chars to save tty special characters - (currently they're only saved -- nothing looks at them yet) - - two new internal library functions, _rl_disable_tty_signals () - and _rl_restore_tty_signals (), intended to disable tty driver - signal processing for readline's literal-next code, so users - can do stuff like ^V^C and have ^C end up in the readline - buffer even if ^C is the terminal's interrupt character - -lib/readline/readline.c - - changed rl_quoted_insert to disable and restore tty signal - handling around the call to rl_read_key (), so users can put - tty special chars into the readline buffer - - 3/25 - ---- -expr.c - - added `,' operator (expr1 , expr2) -- both expr1 and expr2 are - evaluated and the return value is the value of expr2. Precedence - is higher than assignment (which makes it highest) - - make `lasttp' (pointer to last token) part of the expression - context that is saved and restored by {push,pop}_context. This - is used only in error reporting - -doc/{bash.1,bashref.texi} - - documented new `,' arithmetic operator - - cleaned up some of the language concerning variables referenced - by name within an arithmetic expression - -lib/readline/readline.c - - new application-settable variable, rl_num_chars_to_read, which, if - set to a non-zero value, causes readline to return after reading - that many characters (or at least that many characters, if - rl_startup_hook is used to prime the input buffer) rather than - when reading a character bound to accept-line - -lib/readline/readline.h - - extern declaration for rl_num_chars_to_read - -builtins/read.def - - added new `-n nchars' option to read NCHARS from stdin rather than - a complete line. Works both with and without using readline - -doc/{bash.1,builtins.texi} - - documented new `read -n nchars' option - - 3/26 - ---- -execute_cmd.c - - make sure all uses of PIDs are of type pid_t - -redir.c - - broke stdin_redirects into two functions: stdin_redirection, which - checks a single redirection specification, and a new stdin_redirects, - which does what it did before but calls stdin_redirection for each - redirection in the chain - - 3/29 - ---- -aclocal.m4 - - new test, BASH_CHECK_DEV_STDIN, checks for /dev/stdin. If it's - present HAVE_DEV_STDIN is defined and it's assumed that /dev/stdout - and /dev/stderr are present as well - -configure.in - - call BASH_CHECK_DEV_STDIN - -config.h.in - - add HAVE_DEV_STDIN, initially undefined - -test.c - - add /dev/std{in,out,err} to the special filenames that are handled - by test_stat() if HAVE_DEV_STDIN is not defined - -doc/{bash.1,bashref.texi} - - documented conditional expressions' handling of /dev/std{in,out,err} - -stringlib.c - - new function, find_string_in_alist, to find (or match as an extended - glob pattern) a string in a STRING_INT_ALIST and return the - associated token value - -externs.h - - extern declaration for find_string_in_alist - -redir.c - - new STRING_INT_ALIST list of filenames the redirection code handles - specially (_redir_special_filenames) - - new function, redir_special_open () to handle filenames found in - _redir_special_filenames (framework for /dev/tcp and /dev/udp, but - those are not implemented get) - -doc/{bash.1,bashref.texi} - - documented special filename handling in redirections - - 3/30 - ---- -builtins/read.def - - added `-d delim' option, like ksh93, to read until delim rather - than newline - -doc/{bash.1,bashref.texi} - - documented new read `-d delim' option - -configure.in - - look for gethostbyname(3), inet_aton(3) - - look for and - - call BASH_FUNC_GETHOSTBYNAME if gethostbyname(3) is not in libc - - check for u_int and u_long types, default to `unsigned int' and - `unsigned long' respectively - - new enable option `--enable-net-redirections' to compile in the - /dev/tcp and /dev/udp redirection code - -aclocal.m4 - - new macro, BASH_FUNC_GETHOSTBYNAME, looks for gethostbyname(3) in - the socket libraries if it's not found in libc - -config.h.in - - new defines: HAVE_GETHOSTBYNAME, HAVE_INET_ATON, HAVE_NETDB_H, - HAVE_NETINET_IN_H, NETWORK_REDIRECTIONS - - new defines: u_int, u_long - -lib/sh/inet_aton.c - - new file, from GNU libc, slightly modified to remove inet_addr() - -lib/sh/netopen.c - - new file, functions to create tcp/udp network connections. Exports - a single function: netopen(pathname) - -externs.h - - extern declaration for netopen() - -lib/sh/Makefile.in, Makefile.in, MANIFEST - - added appropriate references to inet_aton.c and netopen.c - -config-bot.h - - if HAVE_SYS_SOCKET_H, HAVE_GETPEERNAME, and HAVE_NETINET_IN_H are - all defined, define HAVE_NETWORK - -redir.c - - call netopen for pathnames of the form /dev/(tcp|udp)/host/port - if HAVE_NETWORK is defined; print a warning message otherwise - - /dev/tcp and /dev/udp code is only compiled in if - NETWORK_REDIRECTIONS is defined - - 3/31 - ---- -lib/sh/zread.c - - new function, zsyncfd(fd) which syncs the kernel's seek pointer on - FD with the last character returned by zreadc() - -externs.h - - extern declaration for zsyncfd - -builtins/read.def - - use zreadc if the input is not unbuffered (this cuts the number - of read(2) calls *way* down) - - if input is not unbuffered, call zsyncfd before returning to make - sure zreadc's buffering doesn't consume too much input - - 4/1 - --- -Makefile.in - - install bashbug with mode 555 - - 4/2 - --- -shell.c - - make want_pending_command and read_from_stdin global rather than - local variables - -flags.c - - change which_set_flags to insert `c' and `s' if the `-c' and `-s' - invocation options, respectively, were supplied at shell startup - -bashline.c - - change bash_directory_completion_hook to change the logic for - deciding whether or not to parameter expand the directory name -- - now we expand only if there's a `$' (still has problems if the - user quoted the `$') or a `` pair. Fixes bug reported by - chuckjr@sinclair.net. To fix the `$' problem, could possibly - check what the user typed with rl_line_buffer and start, end - parameters to gen_completion_matches - - changed attempt_shell_completion to slightly adjust the logic for - deciding whether or not a word is in a command position: if the - word being completed has a single opening single or double quote - before the command separator, treat it as a candidate for (quoted) - command word completion - - now that we understand partially-quoted strings as completion - candidates, we can do command completion on certain unclosed - uses of $(... - -subst.c - - change extract_delimited_string to not return an error for an - unclosed construct if DOING_COMPLETION is non-zero - - 4/5 - --- -expr.c - - fixed `ss=09 ; let ss=10' bug by introducing one-token lookahead - after a string token is parsed. If the next token is `=', we - don't evaluate the variable's value as an expression, since it's - not going to be used - -variables.h - - added new member to struct variable: exportstr -- for the future - caching of strings to be placed into the environment - - extern declaration for bind_variable_value - -variables.c - - make sure that the `exportstr' member of a struct variable is - initialized correctly, and put code in to free it where appropriate - (if non-null) - - new function, bind_variable_value(VAR, VALUE); make shell variable - VAR have value VALUE - - make sure var->exportstr is invalidated when a variable or function - is assigned a value - -builtins/declare.def - - call bind_variable_value instead of duplicating some of bind_variable - inline - - 4/6 - --- -variables.h - - new macros, VSETATTR and VUNSETATTR to set and clear variable - attributes - -builtins{read,set,setattr,declare}.def,{execute_cmd,expr,shell,subst,variables}.c - - change to use VSETATTR and VUNSETATTR - - 4/7 - --- -doc/Makefile.in - - if htmldir is set by configure, install the html files into that - directory with `make install' and remove them with `make uninstall' - -Makefile.in,doc/Makefile.in - - htmldir is set by configure and passed from the Makefile to the - install in the doc subdirectory - -configure.in - - substitute `htmldir' into Makefiles - -support/config.guess - - some small changes for Apple's Rhapsody - -lib/termcap/Makefile.in - - make the `distclean' and `maintainer-clean' targets remove Makefile - -lib/termcap/ltcap.h - - new private library include file, for Rhapsody __private_extern__ - define - -lib/termcap/{termcap,tparam}.c - - include "ltcap.h" - - if HAVE_CONFIG_H is defined, include if HAVE_STDLIB_H is - defined, otherwise declare getenv, malloc, realloc as extern - - add __private_extern__ qualifier for extern data that Rhapsody - requires - -shell.c - - don't run the startup files in the rshd case if shell_level is >= 2 - This should catch the case of - rsh machine bash -c 'echo a' - running the .bashrc twice, once for the shell started by rshd and - one for the shell running -c command - - 4/8 - --- -variables.c - - in initialize_shell_variables, unset the export attribute from - SSH_CLIENT if it exists and we got it from the initial environment - -shell.c - - don't bother unsetting export attribute from SSH_CLIENT, since we - now do it in initialize_shell_variables - -lib/readline/display.c - - don't check prompt_this_line[-2] in rl_redisplay if prompt_this_line - isn't at least 2 characters after the start of rl_display_prompt - -lib/readline/histfile.c - - change the name of the default history file to _history on MS-DOS - -lib/readline/histlib.h - - add an extern declaration for history_offset - -lib/readline/hist{expand,search}.c - - remove extern declaration for history_offset; now in histlib.h - -lib/readline/xmalloc.h - - new file, extern declarations for xmalloc, xrealloc, xfree - -lib/readline/rlprivate.h - - new file, with extern declarations for `readline private' global - variables and functions - -lib/readline/rlshell.h - - new file, with extern function declarations for stuff in shell.c - -lib/readline/Makefile.in - - add dependencies on xmalloc.h, rlshell.h - - add xmalloc.h, rlprivate.h to list of header files - -MANIFEST - - add lib/readline/xmalloc.h, lib/readline/rlprivate.h, - lib/readline/rlshell.h - -Makefile.in - - add $(RL_LIBSRC)/xmalloc, $(RL_LIBSRC)/rlprivate.h, - $(RL_LIBSRC)/rlshell.h to READLINE_SOURCE variable - -lib/readline/{bind,complete,display,funmap,histexpand,histfile,history,input, -isearch,keymaps,kill,macro,readline,search,shell,util,vi_mode}.c - - include "xmalloc.h" rather than extern declarations for xmalloc, - xrealloc, xfree - -lib/readline/terminal.c - - new function, used in two places, _emx_get_screensize for EMX - -lib/readline/readline.c - - EMX apparently no longer needs _emx_build_environ - -lib/readline/signals.c - - support for __EMX__ in rl_signal_handler - - don't set the old handler passed to rl_set_sighandler to - rl_signal_handler, because that would cause infinite recursion if - that signal were generated - -lib/readline/xmalloc.c - - no longer the same as lib/malloc/xmalloc.c, which is no longer - used by anyone - - changes to include xmalloc.h, define READLINE_LIBRARY, change - some of the argument types - -lib/tilde/tilde.c - - add prototypes for extern function declarations if __STDC__ - defined - -lib/readline/{terminal,bind,readline,nls,histexpand}.c - - include "rlshell.h" for function prototypes - - 4/9 - --- -lib/readline/{bind,callback,complete,display,input,isearch,kill,macro,nls, -parens,readline,rltty,search,signals,terminal,util,vi_mode}.c - - include "rlprivate.h" - - remove extern declarations already in rlprivate.h - -xmalloc.c - - xfree should take a PTR_T as its argument - -general.h - - change prototype for xfree to use void * instead of char * - -lib/malloc/malloc.c - - define PTR_T like it is defined in general.h - - malloc() returns a PTR_T - - free() takes a PTR_T as its argument - - realloc() returns a PTR_T and takes a PTR_T as its first argument - - memalign returns a PTR_T - - valloc returns a PTR_T - - calloc returns a PTR_T - - cfree() takes a PTR_T - -variables.c - - new function: char **all_variables_matching_prefix (char *prefix) - -variables.h - - extern declaration for all_variables_matching_prefix - -bashline.c - - converted variable_completion_function to use - all_variables_matching_prefix - -stringlib.c - - new function, char **alloc_array(n), allocates an argv-style - array of strings with room for N members - -externs.h - - extern declaration for alloc_array - - 4/13 - ---- -lib/readline/keymaps.c - - include "readline.h" - - remove extern function declarations - -include/stdc.h - - break the definition of __P out from a strict __STDC__ block, - since __GNUC__ and __cplusplus also indicate that prototypes - are available - -lib/readline/readline.h - - adjust conditional declaration of rl_message, since __cplusplus - indicates that prototypes are available - -lib/readline/rlstdc.h - - private copy, modified, no longer symlinked to ../../include/stdc.h - - __P is defined if __GNUC__ or __cplusplus is defined - - removed defines for __STRING, const, inline, signed, volatile, since - readline does not use them - -lib/readline/{search,readline}.c - - extern declaration for _rl_free_history_entry with prototypes, - since it's not in rlprivate.h - -lib/readline/history.h - - added some missing `extern's in function declarations - -lib/readline/undo.c - - include "rlprivate.h" - -lib/readline/shell.c - - include "rlshell.h" - -lib/readline/Makefile.in - - update dependencies for undo.c, shell.c - -lib/tilde/tilde.h - - add #define for __P if not already defined - - use prototypes in extern function declarations with __P() - -lib/readline/doc/rluserman.texinfo - - new file, derived from rlman.texinfo - -{bashline,findcmd,general,pathexp}.c, builtins/getopts.def - - call alloc_array(N) instead of (char **)xmalloc (N * sizeof (char *)) - -subst.c - - added code to implement ksh-93 ${!prefix*} expansion - -doc/{bash.1,bashref.texi} - - documented new ${!prefix*} expansion - - 4/15 - ---- -execute_cmd.c - - new variable, this_shell_function, points to SHELL_VAR of currently - executing shell function - -variables.c - - new dynamic variable, FUNCNAME -- invisible when not executing shell - function - -doc/{bash.1,bashref.texi} - - documented new FUNCNAME variable - - 4/16 - ---- -support/rlvers.sh - - add -T option to specify correct termcap library - -configure.in - - Irix 4.x still needs to link with -lsun if it contains a replacement - getpwent function that works with NIS - - if we're configuring with an already-installed readline library, - call BASH_CHECK_LIB_TERMCAP and pass the resulting $TERMCAP_LIB to - support/rlvers.sh - -lib/readline/readline.c - - in rl_forward, if rl_point ends up being < 0, set it to 0 - -lib/readline/exammples/excallback.c - - new callback example code, from `Jeff Solomon ' - -lib/sh/getcwd.c - - define NULL as 0 if not defined by one of the standard include files - - cast result of malloc and realloc to (char *) where appropriate - -variables.c - - new functions for use by dynamic variables: null_assign and - null_array_assign. Used as assign_func for a particular variable, - they cause assignments to that variable to be silently ignored - - FUNCNAME and GROUPS are no longer readonly - - FUNCNAME changed to use null_assign - - GROUPS changed to use null_array_assign. This means that the - variable can be unset if desired (like for Oracle startup scripts), - but cannot be assigned to - -doc/{bash.1,bashref.texi} - - added text about assignments being silently discarded to descriptions - of FUNCNAME and GROUPS - - removed text saying that GROUPS is readonly - - added standard text about GROUPS being unset and losing its special - properties, even if reset - -command.h - - new command type, cm_subshell, actually causes the shell to fork - and then executes the command in the SUBSHELL_COM struct - -parse.y - - ( ... ) now creates a command of type cm_subshell, with the same - flag CMD_WANT_SUBSHELL as previous - -make_cmd.c - - new function make_subshell_command - -make_cmd.h - - extern declaration for make_subshell_command - -dispose_cmd.c - - code to destroy a SUBSHELL_COM - -copy_cmd.c - - code to duplicate a SUBSHELL_COM - -print_cmd.c - - code to print a SUBSHELL_COM - -execute_cmd.c - - broke the code that handles executing commands in subshells out of - execute_command_internal into a new function, execute_in_subshell, - with the same arguments - - executing a command of type cm_subshell is just a slightly special - case, handled in execute_in_subshell - - 4/18 - ---- -execute_cmd.c - - changed code in execute_command_internal that executes subshell - commands to check for command->type == cm_subshell in addition to - checking that commmand->flags & CMD_WANT_SUBSHELL is non-zero - - changed execute_in_subshell to set the CMD_NO_FORK flag on the - command to be executed by a command of type cm_subshell - (command->value.Subshell->command), if that command is a simple - command (type == cm_simple) or a nested subshell (type == cm_subshell) - and is not being timed - - changed execute_command_internal to just call and return the value - returned by execute_in_subshell if it gets a command of type - cm_subshell with flags including CMD_NO_FORK - -lib/malloc/malloc.c - - morecore() should always return through morecore_done, not with a - simple `return' - - 4/20 - ---- -variables.c - - new function, quote_array_assignment_chars, backslash quotes all - `[' and `]' before an `=' in a word that's part of the body of a - compound array assignment. Needed because we run the list through - the globbing code now. Don't bother if `=' does not appear in - the string or if the first char is not `[' - - call quote_array_assignment_chars from assign_array_var_from_string - now - -eval.c - - moved parse_string_to_word_list to parse.y - -parse.y - - moved parse_string_to_word_list here. Much simpler -- no longer - tries to parse a command, but just reads tokens using read_token(). - Any token but a WORD or ASSIGNMENT_WORD causes a syntax error. - Don't have to mess around with saving global_command or calling - parse_command, but do need to save and restore the history stuff, - so the array assignment doesn't get saved on the history list - - 4/21 - ---- -nojobs.c - - changed to use functions in lib/sh/shtty.c (tt{get,set}attr) for - the terminal attributes - - added a `flags' field to struct proc_status, flags are PROC_RUNNING - and PROC_NOTIFIED (status has been returned to `wait') - - functions check flags & PROC_RUNNING to check whether or not a - particular process is still alive; PROC_RUNNING is reset by - set_pid_status - - new function, mark_dead_jobs_as_notified, same function as the one - in jobs.c - - cleanup_dead_jobs reaps jobs only if they're dead and not marked - as notified - - wait_for_background pids marks all pids as notified and reaps them - before it returns, since it's called by the `wait' builtin - - wait_for_single_pid marks the pid being waited for as notified so - its slot can be reclaimed -- it's only called by the `wait' builtin - - new function, process_exit_status, to turn what wait(2) takes into - an exit status - - 4/22 - ---- -nojobs.c - - add_pid takes a new second argument, async_p, which is non-zero if - the process is in the background - - new flag, PROC_ASYNC, set by add_pid - - set_pid_status now sets the PROC_NOTIFIED flag if PROC_ASYNC is unset, - so foreground jobs get cleaned up right away - - changed mark_dead_jobs_as_notified to take a `force' argument; if - non-zero, it marks only enough dead jobs to make the number of - un-notified dead jobs < CHILD_MAX - - new function, reap_dead_jobs, same as in jobs.c - -execute_cmd.c - - don't need separate cases for REAP any more - - 4/23 - ---- -builtins/printf.def - - new function, tescape, which processes a single backslash - escape sequence and returns the number of characters consumed by - the argument string (code taken from bexpand) - - changed bexpand to call tescape rather than do backslash-escape - sequence conversion itself - - changed occurrences of `illegal' in error messages to `invalid' - - printf no longer calls ansicstr to translate backslash-escape - sequences; the mainline printf code now calls tescape whenever it - hits a backslash - - 4/26 - ---- -subst.c - - new variable, garglist, set to list of words to be expanded after - leading assignment statements are removed - - command_substitute now calls maybe_make_exported_env before making - the child process if there are no variable assignments preceding - the command currently being expanded, or if the command currently - being expanded consists only of variable assignments - -execute_cmd.c - - the `early fork' code in execute_simple_command now calls - maybe_make_export_env before forking because execute_disk_command - would do that in the vast majority of cases, and this will obviate - the need to do it for subsequent commands if the environment does - not change - - 4/27 - ---- -variables.h - - more macros to manipulate the exportstr member of a SHELL_VAR - - changed initialize_shell_variables to cache the value from the - environment as the initial exportstr for all imported variables - - changed make_var_array to use exportstr if it exists, instead - of computing the value - - changed make_var_array to cache exportstr for exported functions, - so they don't have to be deparsed every time the export env is - remade - - 4/28 - ---- -lib/readline/{histlib,rldefs}.h - - changed STREQN macro to evaluate to 1 if the third argument is 0 - -lib/readline/search.c - - changed rl_history_search_{for,back}ward so they leave point at - the end of the line when the string to search for is empty, like - previous-history and next-history - - broke common code out of rl_history_search_{for,back}ward into - a new function, rl_history_search_reinit - - rewrote rl_history_search_internal to be more like the - non-incremental search functions, use noninc_search_from_pos, - and leave the last history line found in the current line buffer - if the search fails - - new function, make_history_line_current, takes care of making - the current line buffer a copy of the history entry passed as an - argument; used by rl_history_search_internal and noninc_dosearch - -subst.c - - make ${!prefix@} be the same as ${!prefix*} for (undocumented) - ksh93 compatibility - - 4/30 - ---- -lib/readline/doc/rltech.texinfo - - added note about including , and that - should be included before readline.h - -lib/readline/doc/hstech.texinfo - - added note about including - -lib/readline/doc/manvers.texinfo - - updated version to 4.1 - -lib/readline/{bind,complete,display,isearch,nls,parens,readline,signals,tilde, -histexpand}.c - - added prototypes with __P((...)) for forward static function - declarations - -lib/readline/display.c - - broke the code that initializes VISIBLE_LINE and INVISIBLE_LINE out - of rl_redisplay into a new function, init_line_structures, which - takes an argument giving the minimum number of characters that the - line must hold - - new function for use by applications that want to display the - initial prompt themselves rather than having the first call to - readline do it: rl_on_new_line_with_prompt (modified from code in - the CLISP distribution) - -lib/readline/readline.c - - new external variable, rl_already_prompted, to let readline know - that the prompt string has already been displayed on the screen - before the first call to readline - - test rl_already_prompted before displaying the prompt in - readline_internal_setup - - if rl_already_prompted is non-zero, readline_internal_setup calls - rl_on_new_line_with_prompt instead of rl_on_new_line - -lib/readline/readline.h - - extern declaration for rl_on_new_line_with_prompt - - extern declaration for rl_already_prompted - -lib/readline/doc/rltech.texinfo - - documented rl_on_new_line_with_prompt and rl_already_prompted - -builtins/read.def - - new -s option (silent mode). Input from a terminal is not echoed - -doc/{bash.1,bashref.texi} - - documented new `-s' option to read builtin - - 5/3 - --- -lib/readline/vi_mode.c - - replaced references to rl_getc with (*rl_getc_function) - -[bash-2.04-devel frozen] - - 5/5 - --- -subst.c - - make sure that verify_substring_values always passes malloc'd - memory to maybe_expand_string as the string to be expanded, - since it gets freed on errors - -support/shobj-conf - - don't need -R option for shared libraries on Solaris - - new stanza for OSF/1 machines with gcc - -lib/readline/readline.c - - new variable, rl_gnu_readline_p, always 1. Available to allow - readline users to test whether or not they're linking against - the true readline, rather than some bogus replacement (from CLISP) - -lib/readline/readline.h - - extern declaration for rl_gnu_readline_p - -hashlib.h, hashcmd.h - - added prototypes to extern function declarations - -pcomplete.h - - new file, declarations for the programmable completion stuff - -pcomplib.c - - new file, library functions for programmable completion - - 5/6 - --- -builtins/complete.def - - new file, interface to programmable completion management - -configure.in - - new enable argument --enable-progcomp, defines - PROGRAMMABLE_COMPLETION - -config.h.in - - #define for PROGRAMMABLE_COMPLETION - -config-bot.h - - if PROGRAMMABLE_COMPLETION is defined and READLINE is not, - #undef PROGRAMMABLE_COMPLETION - -pcomplete.c - - new file, placeholder for programmable completion generators and - associated functions - -Makefile.in, builtins/Makefile.in - - changes to add pcomplete.c, builtins/complete.def - - 5/7 - --- -subst.c - - new function, #ifdef READLINE, skip_to_delim (s, i, delims). - Starting at s[i], return the index of the first character in s - that is contained in delims. Understands shell quoting. - - added two arguments to list_string_with_quotes: an index to - watch for, and a pointer to int to return the index into the - created word list of the word containing the sentinel. Now - compiled in all the time. The returned index starts at 1. - -subst.h - - extern declarations for char_is_quoted, unclosed_pair, and - skip_to_delim - - changed extern declaration for list_string_with_quotes, moved - it out of the #ifdef ARRAY_VARS section - -bashline.c - - removed extern declarations for char_is_quoted and unclosed_pair - -variables.c - - new function, SHELL_VAR **all_exported_variables() - = new function, SHELL_VAR **all_array_variables(), #ifdef ARRAY_VARS - -variables.h - - extern declaration for all_exported_variables, all_array_variables - -lib/sh/strpbrk.c - - replacement if we don't have strpbrk(3) - -configure.in, config.h.in - - check for strpbrk(3), define HAVE_STRPBRK if found - -builtins/shopt.def - - new function, char **get_shopt_options (), returns an array of - shopt option names - -builtins/set.def - - new function, char **get_minus_o_opts (), returns an array of - `set -o' option names - -builtins/common.h - - extern declarations for get_shopt_options, get_minus_o_opts - - 5/10 - ---- -pathexp.c - - make the POSIX_GLOB_LIBRARY code implement the GLOBIGNORE stuff - - 5/11 - ---- -array.c - - new convenience function, char **array_to_argv (ARRAY *), - converts an array to a list of string values - -array.h - - extern declaration for array_to_argv - -execute_cmd.c - - new convenience function, int execute_shell_function (SHELL_VAR *, - WORD_LIST *) - -execute_cmd.h - - extern declaration for execute_shell_function - -builtins/evalstring.c - - make parse_and_execute unwind_protect current_prompt_string - if the shell is interactive - - 5/12 - ---- -variables.c - - moved bind_int_variable from expr.c to here; it now returns a - SHELL_VAR *, like the other variable binding functions - -variables.h - - extern declaration for bind_int_variable - - 5/14 - ---- -bashline.c, parse.y, general.c, make_cmd.c, subst.c, braces.c, execute_cmd.c - - replaced some common code sequences with calls to substring() - -lib/readline/doc/rltech.texinfo - - fixed small typo in description of rl_completion_entry_function - - 5/18 - ---- -stringlib.c - - new function, strcreplace(char *string, int c, char *text, int do_glob) - replaces all occurrences of C in STRING with TEXT. Backslash may - be used to quote C. If DO_GLOB is non-zero, the replacement TEXT - is quoted to protect globbing characters. - -externs.h - - extern declaration for strcreplace - -bashhist.c - - use strcreplace in expand_histignore_pattern - -pcomplete.c - - finished initial implementation of programmable completion - -alias.c - - code to set the aliases itemlist to dirty when an alias is added - or removed, if PROGRAMMABLE_COMPLETION is defined - -variables.c - - code to set the functions itemlist to dirty when a shell function - is added or removed, if PROGRAMMABLE_COMPLETION is defined - -builtins/enable.def - - code to set the builtins itemlist to dirty when a shell builtin - is added or removed, if PROGRAMMABLE_COMPLETION is defined - - code to set the enabled and disabled itemlists to dirty when a - builtin is enabled or disabled, if PROGRAMMABLE_COMPLETION is - defined - -builtins/shopt.def - - new shell option, `progcomp', on if programmable_completion_enabled - (from pcomplete.c) is non-zero - -doc/{bash.1,bashref.texi} - - note that `${' is not eligible for brace expansion to avoid - conflicts with parameter expansion - - 5/19 - ---- -builtins/complete.def - - added a new `compgen' builtin for use by completion functions - - 5/21 - ---- -bashline.c - - new function, void clear_hostname_list(void), to delete all the - entries in the hostname completion list - -bashline.h - - extern declaration for clear_hostname_list - -variables.c - - changed sv_hostfile to clear the hostname list if $HOSTFILE is - unset - -doc/{bash.1,bashref.texi} - - documented new behavior of HOSTFILE when it's unset - - added some awkwardly-worded text to make it clear that an - interactive shell cannot be started with non-option arguments - or with the -c option - -shell.c - - restored NON_INTERACTIVE_LOGIN_SHELLS test, so that if it is - defined, shells with argv[0][0] == '-' and not in posix mode - run the startup files even if non-interactive - -config-top.h - - added commented-out #define for NON_INTERACTIVE_LOGIN_SHELLS - - 5/24 - ---- -subst.c - - make sure the characters in IFS are cast to unsigned before being - indexed in ifscmap (expand_word_internal) - - 5/25 - ---- -parse.y - - change grammar rule for arithmetic for expressions to handle a - list_terminator after the `))' instead of requiring a newline_list - -subst.c - - fix so that variable indirection can reference the shell's special - variables (like $0...$9, $$, $#, etc.) - -pcomplete.c - - changed gen_wordlist_matches to use split_at_delims to split the - string at $IFS first, then expand each individual word - - 5/27 - ---- -lib/readline/histfile.c - - change things so that O_BINARY mode is used when reading and writing - the history file on cygwin32 as well as OS/2 (__EMX__) - -parse.y - - add calls to push_delimiter and pop_delimiter around the call - to parse_matched_pair when parsing $'...' and $"..." so the - history entry is added correctly - - 5/28 - ---- -doc/{bash.1,bashref.texi}, lib/readline/doc/rluser.texinfo - - documented new programmable completion facilities - -doc/bashref.texi - - documented new configure `--enable-progcomp' option - - 6/1 - --- -variables.c - - if make_local_variable is being asked to make a local shadow - variable of a read-only variable, print an error message and - return NULL - - if make_local_variable returns NULL to make_local_array_variable, - just return it - -builtins/declare.def - - if we're making local variables, and make_local_array_variable or - make_local_variable returns NULL, just flag an error and go on - - 6/2 - --- -Makefile.in - - changed release status to `alpha1' - -[bash-2.04-alpha1 frozen] - - 6/18 - ---- -bashline.c - - fixed find_cmd_start so that it doesn't spin-loop on commands with - a command separator like `;' or `&'. Problem was not incrementing - `os' past the delimiter found - - 6/21 - ---- -variables.c - - cosmetic change: introduced two macros to encapsulate initialization - of dynamic variables - - 6/23 - ---- -pcomplib.c - - new function: num_progcomps(void), returns the number of entries in - the programmable completions hash table - -pcomplete.h - - extern declaration for num_progcomps - -bashline.c - - make sure some programmable completions have been defined before - diving into the programmable completion code - -shell.c - - in open_shell_script, move the fd opened to the script to a high - one with move_to_high_fd in all cases -- the buffered input code - still has problems if fd == 0 and later on fd 0 is closed or - redirected (cf. input.c:check_bash_input()) - -builtins/printf.def - - getlong() now calls strtol directly with a third argument of 0 so - it can handle 0x (hex) and 0 (octal) prefixes, which legal_number - does not -- this has implications for arguments to %d that begin - with `0' - -lib/sh/getenv.c - - make sure that the variable found in the temporary environment has - a non-null value before calling savestring() on it - -subst.c - - make sure split_at_delims returns 0 in *nwp and *cwp if handed a - null or empty string - -pcomplete.c - - make sure build_arg_list handles lwords == 0, as it will be if an - empty command line is handed to the programmable completion code - (like compgen -C xyz) - -execute_cmd.c - - make sure execute_shell_function passes a non-null bitmap of fds to - close to execute_function, allocating and deallocating it locally - -sig.c - - don't mess with SIGPROF in initialize_terminating_signals - -jobs.c, nojobs.c - - if the user has requested it with checkwinsize, check for a new - window size after a job exits due to a signal as well as being - stopped - -lib/readline/kill.c - - changed rl_kill_region to set the point to the beginning of the - region after the kill is performed - - 6/24 - ---- -configure.in - - make sure ranges ([1-9]*) are protected with [...] for m4 quoting - -variables.c - - make sure that bind_variable_value honors `set -a' and that it - marks the environment for recreation if necessary - - 6/25 - ---- -lib/readline/complete.c - - if we're completing at the end of the line, find_completion_word - shouldn't test whether the character is a special word break - char and (possibly) advance rl_point past the end of the buffer - -parse.y - - change mk_msgstr to write embedded newlines as `\n""', as the - PO file format apparently requires - - 6/28 - ---- -lib/readline/display.c - - code to manage the growth of the inv_lbreaks and vis_lbreaks arrays - beyond 256, since there are pathalogical command lines that can - have more than 256 line breaks for redisplay - - 6/30 - ---- -stringlib.c - - include pathexp.h for extern declaration of quote_globbing_chars - -variables.h - - change CACHE_EXPORTSTR to savestring() the value and not set the - att_importstr flag - - 7/6 - --- -support/bashbug.sh - - bashbug now accepts --help and --version options - -bashline.c - - change bash_quote_filename to use single quotes if the user - does not specify an opening quote character and the filename being - completed contains newlines - - 7/8 - --- -configure.in, aclocal.m4, config.h.in - - BASH_TYPE_INT32_T --> BASH_TYPE_BITS32_T; int32_t --> bits32_t - - BASH_TYPE_U_INT32_T --> BASH_TYPE_U_BITS32_T; u_int32_t --> u_bits32_t - -lib/malloc/{malloc,gmalloc}.c, lib/sh/inet_aton.c - - int32_t --> bits32_t; u_int32_t --> u_bits32_t - -aclocal.m4 - - new tests: BASH_TYPE_BITS16_T, BASH_TYPE_U_BITS16_T - -configure.in - - add check for sizeof short, sizeof char - - call BASH_TYPE_BITS16_T, BASH_TYPE_U_BITS16_T - -config.h.in - - new #defines for bits16_t, u_bits16_t - -lib/malloc/malloc.c - - use u_bits16_t for type of mi_magic2 - - - 7/16 - ---- -lib/readline/display.c - - new private library function, _rl_strip_prompt, to remove instances - of RL_PROMPT_{START,END}_IGNORE from the passed prompt string - -lib/readline/rlprivate.h - - extern declaration for _rl_strip_prompt - -lib/readline/readline.c - - call _rl_strip_prompt before outputting the prompt if we're not - doing any echoing of input chars (readline_echoing_p == 0) - -Makefile.in - - tentative change to rule for parser-built: use $< instead of - `y.tab.h' in recipe - - 7/19 - ---- -support/config.{guess,sub} - - add code to handle all versions of Mac OS (e.g., Mac OS X) - - 7/26 - ---- -lib/readline/bind.c - - on cygwin32, treat \r\n as a line terminator when reading the - inputrc file - - 7/29 - ---- -lib/sh/netopen.c - - fixed problem in _getaddr with copying the address returned from - gethostbyname to the `struct in_addr *' argument -- hostnames - now work in /dev/(tcp|udp)/host/port - - 8/2 - --- -configure.in - - on Apple Rhapsody systems, set LOCAL_CFLAGS to -DRHAPSODY - -variables.h - - changes from Apple for building fat binaries on Rhapsody, - setting HOSTYPE, OSTYPE, VENDOR, and MACHTYPE - -lib/readline/terminal.c - - some work on the `dumb terminal' setup code in _rl_init_terminal_io - to make sure it's complete for use by the redisplay code and some - stuff in {readline,complete}.c - -lib/readline/display.c - - new function, _rl_current_display_line, returns the number of - lines down from the first `screen line' of the current readline - line the cursor is - -lib/readline/readline.c - - make rl_refresh_line call _rl_current_display_line - -lib/readline/rlprivate.h - - extern declaration for _rl_current_display_line - - 8/3 - --- -doc/bashref.texi - - reorganized slightly: - o a new shell builtins chapter - o a new shell variables chapter - o a new special builtins section - o bourne shell features chapter removed - o alias builtins moved to the bash builtins section - o bourne shell differences moved to appendix - o order of readline and history chapters swapped - o indices are now unnumbered appendices - o some text cleaned up and some explanatory text added - -lib/readline/terminal.c - - if a calling application is using a custom redisplay function, - don't call tgetent to get the terminal attributes, since those - are used only by the redisplay code. Still get the window - size, though - -lib/glob/fnmatch.c - - range comparisons in bracket expressions no longer use strcoll(3), - since in some locales (de, for example), [A-Z] matches all - characters - -parse.y, print_cmd.c - - some changes to make sure the shell compiles when - DPAREN_ARITHMETIC is not defined but ARITH_FOR_COMMAND is - - 8/5 - --- -redir.c - - in the here document code in do_redirection_internal, check - that the file descriptor returned by here_document_to_fd is not - the same as a file descriptor specified as the redirector - before closing it - - 8/6 - --- -parse.y - - make sure the pipline rule for `timespec BANG pipeline' sets the - CMD_INVERT_RETURN flag for the pipeline command - -builtins/wait.def - - use setjmp with a special jump buffer to take longjmps in the - case that a SIGINT is received while waiting for jobs or processes - it makes wait return with a status > 128, as POSIX.2 specifies - -{jobs,nojobs}.c - - changed wait_sigint_handler to longjmp to wait_intr_buf if it's - executing the wait builtin and SIGINT is trapped. It calls - trap_handler to make sure a pending trap for SIGINT is set also, - so the trap is taken when the wait builtin returns - - 8/9 - --- -jobs.c - - save and restore the value of errno in sigchld_handler - -trap.c - - save and restore the value of errno in trap_handler - - 8/10 - ---- -Makefile.in - - changed release status to beta1 - - 8/13 - ---- -include/posixtime.h - - new file to encapsulate the and mess - -Makefile.in - - add posixtime.h to list of include files in BASHINCFILES - - update dependencies for general.o, execute_cmd.o - -general.c, execute_cmd.c, builtins/times.def - - include posixtime.h instead of , - -general.c - - protect inclusion of with HAVE_SYS_TIMES_H check - -builtins/Makefile.in - - update dependencies for times.o - - 8/16 - ---- -lib/sh/timeval.c - - moved functions dealing with struct timevals here from general.c - and execute_cmd.c - -lib/sh/clock.c - - moved functions dealing with clock_ts here from general.c - (print_time_in_hz renamed to print_clock_t) - -externs.h - - moved extern declarations for timeval_to_secs and print_timeval - here from general.h - - moved extern declarations for clock_t_to_secs and print_clock_t - here from general.h - -builtins/times.def - - calls to print_time_in_hz changed to print_clock_t - -Makefile.in - - added references for lib/sh/timeval.c and lib/sh/clock.c - -lib/sh/Makefile.in - - clock.o and timeval.o are now included in libsh.a - - 8/23 - ---- -execute_cmd.c - - make sure last_command_exit_value is updated before running a - DEBUG trap in the cm_simple case of execute_command_internal - -lib/readline/display.c - - new function, static void redraw_prompt (char *), used to - redraw the last line of a multiline prompt that possibly - contains terminal escape sequences - - call redraw_prompt from _rl_redisplay_after_sigwinch - - 8/24 - ---- -lib/readline/bind.c - - new struct with names of string-valued readline variables and - handler functions to call when the variable is set - - changed rl_variable_bind to use functions to find boolean vars - and string vars in their respective lists - - new function, bool_to_int, to translate a boolean value that may - appear as an argument to `set ' to 1 or 0 - - new function, hack_special_boolean_var, called if the element in - the boolean_vars struct has the V_SPECIAL flag set, to provide - any necessary other action when a boolean variable is set - - new functions to be called when each string variable is set; - called by rl_variable_bind - -execute_cmd.c - - do_piping no longer sets pipes to O_TEXT mode if __CYGWIN32__ - is defined - - 8/25 - ---- -subst.c - - parameter_brace_patsub now mallocs a local copy of `patsub', because - if it starts with a `/' we increment it, and functions down the call - chain will free that on an error (and if we pass the incremented - value, will try to free unallocated memory) - - pos_params now short-circuits and returns a null string immediately - if start == end, meaning we want 0 positional parameters - - 8/26 - ---- -subst.c - - fixed pat_subst to correctly handle a null replacement string with - a null pattern string prefixed with `%' or `#' - - 9/3 - --- -variables.c - - don't import shell functions from the environment if the shell was - started with -n - - 9/8 - --- -subst.c - - if a command substitution is being performed inside a shell function, - catch `return' in command_substitute so that a return inside the - command substitution doesn't jump back to execute_function (or one - of its brethren) and go on with the command - -parse.y - - in history_delimiting_chars, if the first line is `for var' and - command_oriented_history is active, we don't want a semicolon if - the next token to be read is `in', but we do want one otherwise. - All we can do is check shell_input_line and see if the next chars - are `in' -- if so, we return " " - - 9/16 - ---- -builtins/hash.def - - don't allow `hash -p /pathname/with/slashes name' if the shell - is restricted - -doc/{bash.1,bashref.texi} - - updated description of restricted shell mode - -lib/readline/display.c - - fixed a bug in _rl_update_final which used the inv_lbreaks array - to index into visible_line - -jobs.c - - waitchld() need not go through the pain of setting up an environment - to execute traps on SIGCHLD if children_exited == 0 - - waitchld returns -1 if waitpid() returns -1 with errno == ECHILD, - indicating that there are no unwaited-for child processes, and it - has not yet reaped any dead children - - wait_for, wait_for_single_pid return -1 if waitchld() returns -1 - - new function, mark_all_jobs_as_dead - - wait_for_background_pids calls mark_all_jobs_as_dead if - wait_for_single_pid returns -1 with errno == ECHILD, since there are - no unwaited-for child processes - -subst.c - - tentative change: subshells started for command substitution no - longer unconditionally disable job control - - 9/17 - ---- -parse.y - - new function: save_token_state(). Saves the value of last_read_token - and the two previous tokens in an allocated array and returns the - array - - new function: restore_token_state(ts). TS is an array returned by - save_token_state. last_read_token and the two previous tokens are - set from the values in TS - -trap.c - - run_pending_traps calls save_token_state and restore_token_state - around the call to parse_and_execute, which will call the parser - and possibly leave it in a state where reserved words will not be - recognized (_run_trap_internal, too) - - 9/20 - ---- -support/bashbug.sh - - if sendmail is used as $RMAIL, pass `-i -t' as arguments so changes - made by the user to the recipient headers in the message are - honored - - 9/21 - ---- -bashhist.c - - if histverify has been set, make sure a `:p' modifier to a history - expansion prints the result - -builtins/echo.def - - new extern variable, xpg_echo, set to 1 if DEFAULT_ECHO_TO_USG is - defined and 0 otherwise - - echo_builtin now sets the initial value of do_v9 from xpg_echo - -builtins/shopt.def - - new shopt option, `xpg_echo', turns backslash escape expansion by - `echo' on and off at runtime - -builtins/{bash.1,bashref.texi} - - documented new `xpg_echo' shell option - -tests/{builtins.tests,builtins2.sub,shopt.tests} - - changes for new `xpg_echo' shell option - -configure.in - - changes for FreeBSD-3.x ELF to add `-rdynamic' to LOCAL_LDFLAGS. - This allows dynamic loading of builtins - -support/shobj-conf - - changes to handle FreeBSD-3.x elf or a.out object file formats - - 9/23 - ---- -[bash-2.04-beta1 released] - - 9/24 - ---- -jobs.c - - wait_for returns -1 only if the shell is currently executing the - `wait' builtin, since that's the only thing that cares - -execute_cmd.c - - moved cases of close_fd_bitmap to before calls to do_piping to - handle some pathological cases - - 9/29 - ---- -execute_cmd.c - - save the command line in execute_simple_command before making the - export environment, since maybe_make_export_env clobbers - the_printed_command if there are exported functions - - 9/30 - ---- -configure.in,config.h.in - - check explicitly for setvbuf; define HAVE_SETVBUF if found - -configure.in - - change opt_gnu_malloc to opt_bash_malloc, since the bash malloc - is not really the gnu malloc anymore - - new argument, --with-bash-malloc, identical to --with-gnu-malloc - - AC_DEFINE(USING_BASH_MALLOC) if opt_bash_malloc is enabled - -config.h.in - - new #define for USING_BASH_MALLOC - -doc/bashref.texi - - updated installation section to add --with-bash-malloc and - change description of --with-gnu-malloc - -lib/sh/setlinebuf.c - - change name of function to sh_setlinebuf, just returns 0 if - HAVE_SETVBUF and HAVE_SETLINEBUF are undefined - - prefer setvbuf to setlinebuf if we have both - - if we're using setvbuf, use a local buffer for stdin and stdout - local buffer is BUFSIZ unless we're using the bash malloc - (USING_BASH_MALLOC is defined), in which case it's 1008 (which - the bash malloc rounds up to 1024) - - 10/4 - ---- -input.c - - if USING_BASH_MALLOC is defined, set the max buffer size to 8176, - which the bash malloc rounds up to 8192 - - 10/5 - ---- -pcomplete.c - - new function, pcomp_filename_completion_function, a wrapper for - filename_completion_function that dequotes the filename first - -bashline.c - - changed bash_directory_completion_matches to dequote the filename - before passing it (indirectly) to filename_completion_function - -execute_cmd.c - - change execute_command to defer calling unlink_fifo_list until any - shell function has finished executing (variable_context == 0) - -configure.in - - added AC_CYGWIN, AC_MINGW32, AC_EXEEXT - - 10/8 - ---- -subst.c - - expand_word_internal(): changes some things to avoid small (2 or 3 - byte) calls to xmalloc -- added a label and some gotos (BEWARE) - - changed make_dev_fd_filename so it doesn't call sprintf anymore - - 10/27 - ----- -execute_cmd.c - - make execute_select_command handle the effects of the `continue' - builtin correctly - - 11/5 - ---- -Makefile.in - - RELSTATUS changed to `beta2' - - 11/8 - ---- -[bash-2.04-beta2 released] - - 11/9 - ---- -shell.c - - make run_startup_files check for ssh2 as well as ssh1 - - 11/19 - ----- -parse.y - - make sure parsing conditional commands isn't confused by unexpected - tokens (like `[[)]]') - -builtins/common.c - - fix get_job_spec to return NO_JOB for numeric job specs that are - beyond the size of the jobs table - -builtins/type.def - - change describe_command to report `not found' if a path search - returns the same string as the command name and the command name - does not match an executable file. This has implications for - `type' and `command -[vV]'. - - if a command is not found in $PATH, but an executable file with the - name supplied exists in the current directory, make the command - into a full pathname for the `command' builtin. This has - implications for `type' and `command -[vV]' - -subst.c - - new function, expand_prompt_string, expands prompt string and - returns the string passed if an error occurs - -subst.h - - extern declaration for expand_prompt_string - -parse.y - - decode_prompt_string calls expand_prompt_string instead of - expand_string_unsplit - - 11/22 - ----- -builtins/echo.def - - return EXECUTION_FAILURE if ferror(stdout) is true - - 11/23 - ----- -locale.c - - if LC_ALL is unset, call setlocale(LC_ALL, lc_all), because lc_all - holds the default locale - - 11/29 - ----- -lib/readline/shell.c - - define NULL as 0 if it's not defined - - change single_quote to allocate 4 characters in new string for - each character in the old one (like builtins/common.c:single_quote) - -locale.c - - when a locale variable (LC_*) is unset, pass "" to setlocale() - to get the default locale set, since value is NULL - -lib/sh/makepath.c - - new function, sh_makepath(char *path, char *dir, int flags) - -Makefile.in - - changed version to beta3 - -builtins/type.def - - changed describe_command to use sh_makepath() - -builtins/cd.def - - removed private declaration of mkpath(), changed to use sh_makepath - -general.c - - changed make_absolute to use sh_makepath - - changed full_pathname to use sh_makepath - -findcmd.c - - removed private definition of make_full_pathname, changed to use - sh_makepath - -doc/{bashref.texi,bash.1} - - added text to description of `getopts' to make it clear that getopts - may be used to parse option characters other than letters, and - that `:' and `?' may not be used as option characters - -eval.c - - when processing a jump_to_top_level(EXITPROG), make sure the shell - doesn't think it's still in a function by setting variable_context - to 0 - -doc/rbash.1 - - a skeletal man page for rbash, adapted from debian - -support/bashbug.sh - - try to find a default editor if EDITOR is unset, rather than blindly - using `emacs' - - 11/30 - ----- -support/config.{guess,sub} - - many changes from the latest `automake' distribution, from the - Debian folks - - 12/2 - ---- -lib/readline/keymaps.h, lib/tilde/tilde.h - - added support for C++ compilation (`extern "C" {...}') - - 12/3 - ---- -subst.c - - in process_substitute, make sure the child resets the O_NONBLOCK - flag on the file descriptor opened for read to a named pipe - -jobs.c - - new function, raw_job_exit_status, returns exit status of last job - in pipeline - - change job_exit_status to call raw_job_exit_status and pass the - result to process_exit_status - - in notify_of_job_status, get termination status from call to - raw_job_exit_status, rather than the first job in the pipeline - (fixes debian bug #15165) - -bashhist.c - - changed bash_history to not add shell comment lines to the history - file (fixes debian bug #21901). Uses new function shell_comment(L) - which returns 1 if L is a shell comment line. Doesn't handle - comments embedded in lines yet - -redir.c - - when running in POSIX.2 mode, bash no longer performs word splitting - on the expanded value of the word supplied as the filename argument - to a redirection operator (fixes debian bug #30460) - -doc/bashref.texi - - added new redirection stuff to POSIX Mode section (from previous fix) - - 12/6 - ---- -hashlib.h - - removed extra semicolon at end of HASH_ENTRIES define - -redir.c - - replaced toggling of disallow_filename_globbing flag with setting - flags in redirection word to include W_NOGLOB if the shell is in - POSIX mode and not interactive when expanding the filename argument - to a redirection - - 12/7 - ---- -builtins/common.c - - new function, backslash_quote_for_double_quotes(char *), quotes - characters special when in double quotes in the string passed as - an argument. - #ifdef PROMPT_STRING_DECODE; called by decode_prompt_string - -builtins/common.h - - extern declaration for backslash_quote_for_double_quotes - -parse.y - - call backslash_quote_for_double_quotes instead of backslash_quote - in decode_prompt_string - - 12/9 - ---- -parse.y - - before expanding the \u prompt string escape sequence, make sure - current_user.user_name is non-null and call get_current_user_info - if it is - - 12/10 - ----- -support/mkversion.sh - - changes to avoid relying on floating point output format, which - can be locale-specific - - 12/14 - ----- -print_cmd.c - - changes to named_function_string (for normal function printing) - and print_function_def (for printing function definitions embedded - in other commands) to print redirections that should be attached - to the function as a whole after the closing brace - -tests/func1.sub - - tests for printing functions with attached redirections, called by - func.tests - - 12/16 - ----- -lib/readline/complete.c - - if we're completing files in the root directory and executing the - visible-stats code, don't pass an empty pathname to - rl_directory_completion_hook, because, for bash, that will be - expanded to the current directory. Just pass `/' instead. - -lib/tilde/tilde.c - - fix to tilde_expand_word for Cygwin to avoid creating pathnames - beginning with `//' if $HOME == `/' - -variables.c - - don't bother with the exportstr validation on cygwin systems, - or even using exportstr at all, since that system has weird - environment variables - - 12/17 - ----- -configure.in - - new option, --enable-xpg-echo-default, new name for - --enable-usg-echo-default (which is still present for backwards - compatibility) - -configure.in, config.h.in, builtins/echo.def - - DEFAULT_ECHO_TO_USG -> DEFAULT_ECHO_TO_XPG - - 12/29 - ----- -aclocal.m4 - - changed a couple of tests to avoid creating files with known - names in /tmp - -support/rlvers.sh - - changed to create files in /tmp/rlvers - -support/mksignames.c - - now understands the POSIX.1b real-time signal names on systems - that support them - - 12/30 - ----- -[bash-2.04-beta3 released] - - 12/31 - ----- -redir.c - - try some more things to avoid race file replacements in - here_document_to_fd - -parse.y - - two new functions: - get_current_prompt_level: returns 2 if current prompt is $PS2, - 1 otherwise - set_current_prompt_level: sets current prompt to $PS2 if arg - is 2, $PS1 otherwise - -copy_cmd.c - - make sure to copy the `line' member in copy_arith_for_command - -pcomplete.c - - free up `lwords' and `line' after evaluating any command or shell - function in gen_compspec_completions - - after filtering any matches specified by cs->filterpat in - gen_compspec_completions, free ret->list (the members have - already been copied or freed by filter_stringlist) - -bashline.c - - free what find_cmd_name returns after calling the programmable - completion code - - 1/4/2000 - -------- -subst.c - - make call_expand_word_internal set w->word to NULL if either - expand_word_error or expand_word_fatal is returned - - 1/7 - --- -parse.y - - two new functions: set_current_prompt_level(int) and - get_current_prompt_level() to set and get the `level' of - current_prompt_string (1 if $PS1, 2 if $PS2) - -externs.h - - extern declarations for {get,set}_current_prompt_level - -builtins/evalstring.c - - add an unwind_protect to save and restore the current prompt - string pointers using {get,set}_current_prompt_level - - 1/9 - --- -Makefile.in - - changed release status to `beta4' - - 1/18 - ---- -[bash-2.04-beta4 released] - - 1/19 - ---- -configure.in - - moved checks for non-unix variants to beginning of tests - -Makefile.in, {builtins,support}/Makefile.in - - added some $(EXEEXT) suffixes to generated programs for non-Unix - systems - - 1/20 - ---- -parse.y - - make get_current_prompt_level return 1 if current_prompt_string is - NULL (as it would be while sourcing startup files) - -support/rlvers.sh - - rmdir $TDIR in the exit trap - - move the exit trap after we successfully create $TDIR - - 1/21 - ---- -subst.c - - several changes to split_at_delims to make non-whitespace - delimiters create separate fields containing those delimiters, - like the shell parser does with meta characters. This allows - redirection operators, for example, to be treated as separate - words by the programmable completion code - -examples/complete/complete-examples - - added new function: _redir_op, which return true if the word - passed as an argument contains a redirection operator (just - bare-bones for now) - - changed set completion function to use _redir_op as an example - -parse.y - - make parse_string_to_word_list save and restore the value of - shell_input_line_terminator, since an assignment like - COMPREPLY=() inside a shell function called by the programmable - completion code can change shell_input_line_terminator out from - underneath shell_getc(). shell_getc will set the input line - terminator to EOF when it gets EOF from the getter function, and - the string getter function returns EOF at EOS. parse_and_execute - tests for EOS directly and never gets EOF from shell_getc, so it - does not have this problem. - - 1/24 - ---- -lib/readline/funmap.c - - #define QSFUNC like in complete.c - - cast _rl_qsort_string_compare to a QSFUNC * in the call to qsort - -lib/readline/terminal.c - - correct a typo in usage of the __EMX__ preprocessor define - - fix a reversed usage of `#if defined (__DJGPP__)' in - _rl_control_keypad - - remove extern declarations for _rl_in_stream and _rl_out_stream - -lib/readline/rlprivate.h - - add extern declaration for _rl_in_stream, since there's already - one for _rl_out_stream - -builtins/ulimit.def - - if bash is using ulimit(2), make sure that getfilesize() returns - the value multiplied by 512 to convert it from a number of blocks - to a number of bytes - - 1/25 - ---- -execute_cmd.c - - make sure execute_command_internal sets last_command_exit_value - correctly when inverting the return value of a (...) subshell - command - -tests/{run-invert,invert.{tests,right}} - - new tests for return value inversion - -configure.in - - compile without bash malloc on m68k-motorola-sysv due to a file - descriptor leak in closedir(3) -- the motorola implementation - requires that freed memory be readable so it can free the dirent - and then look back at it to find the file descriptor - -expr.c - - fix negative exponents in v**e to return an eval error - - 2/1 - --- -Makefile.in - - changed status to beta5 - -jobs.c - - fixed a problem with checking the wrong process when checking to - see whether or not we need to reset the tty state. The old code - checked the first process in a pipeline; the new code checks all - processes in the pipeline to see whether any of them exited due - to a signal or was stopped. If none were signalled or stopped, - the code uses the exit status of the last process in the job's - pipeline - - 2/4 - --- -[bash-2.04-beta5 released] - -eval.c - - call set_current_prompt_level instead of setting prompt_string_pointer - directly - - 2/10 - ---- -[bash-2.04-beta5 re-released to net] - - 2/11 - ---- -sig.c - - make sure SIGCHLD is defined in initialize_shell_signals before - trying to use it in sigdelset() (DJGPP fix) - - 2/14 - ---- -lib/sh/shtty.c - - include before - - separate tests for ONLCR, ONOCR, ONLRET to cope with systems like - DJGPP that don't implement the full POSIX termios option set - -builtins/psize.sh - - set TMPDIR only if it's not already set - -lib/glob/glob.c - - if a system doesn't define _POSIX_SOURCE but has a `struct dirent' - without a d_ino member, define REAL_DIR_ENTRY to 1 so all entries - are read - -configure.in - - check for header file - -config.h.in - - add HAVE_ARPA_INET_H define - -lib/sh/inet_aton.c - - don't compile unless HAVE_NETWORK, HAVE_NETINET_IN_H, and - HAVE_ARPA_INET_H are all defined in config.h or config-bot.h - - 2/16 - ---- -subst.c - - if we have a construct like "${@:-}", we need to note that we're - not using whatever is in $@ (we're using the rhs), so the special - double-quoting $@ rules do not apply - - 2/21 - ---- -lib/readline/signals.c - - declare SigHandler before using it on non-POSIX systems - -lib/sh/{zread,zwrite}.c - - include unconditionally - -configure.in - - m68k-motorola-sysv should be m68k-sysv in the section that sets - opt_bash_malloc to no for certain systems - -builtins/complete.def - - fixed a typo (stoppped) when printing out completion actions - - 2/22 - ---- -lib/sh/netopen.c - - include if it's present - -aclocal.m4 - - new macro, BASH_FUNC_INET_ATON, checks for inet_aton(3) including - and , which some systems require to - resolve the function - -configure.in - - if autoconf can't fund inet_aton on its own, try BASH_FUNC_INET_ATON - -pcomplete.c - - fixed a memory leak in gen_wordlist_completions - - changed gen_wordlist_completions to do prefix-matching against the - word being completed - -doc/bash.1, lib/readline/doc/rluser.texinfo - - documented the change in behavior of the -W option to complete and - compgen - -builtins/umask.def - - if parse_symbolic_mode() returns -1, symbolic_umask needs to return - -1 as well, otherwise the umask will be changed inappropriately - -input.c - - always compile in getc_with_restart and ungetc_with_restart - -parse.y - - yy_stream_get and yy_stream_unget now call getc_with_restart and - ungetc_with_restart, respectively, to avoid problems with some - systems not restarting the read(2) when signals that bash handles - are received during the read (since bash installs its signal - handlers without the SA_RESTART flag) - -lib/readline/complete.c - - don't default rl_completion_case_fold to 1 if __DJGPP__ is defined - - 2/25 - ---- -subst.c - - renamed `varlist' to `subst_assign_varlist' and made it global - -jobs.c - - when running a SIGCHLD trap, need to unwind-protect - subst_assign_varlist and set it to NULL before running the trap - command (fix from ericw@bestnet.org and doogie@debian.org) - - 2/28 - ---- -lib/readline/doc/rltech.texinfo - - document rl_funmap_names() - - 2/29 - ---- -subst.c - - change split_at_delims to set the current word more appropriately - when the cursor is between two words. Should probably change this - again to set the current word like this only when the cursor is at - whitespace or another delim just before the word start - - 3/1 - --- -lib/sh/shtty.c - - more checks for flag bits being defined before using them - - 3/7 - --- -variables.h - - fix typo in COPY_EXPORTSTR definition - - 3/14 - ---- -subst.c - - changed split_at_delims so that if the cursor is at whitespace - between words, and we're interested in the current word (cwp != NULL), - make a new empty word and set the cwp to that word - -locale.c - - support for setting LC_NUMERIC locale category based on value of - LC_NUMERIC shell variable - -variables.c - - LC_NUMERIC is now treated specially - -doc/{bash.1,bashref.texi} - - LC_NUMERIC updates - - 3/15 - ---- -pcomplete.c - - fix to avoid freeing memory twice - - 3/17 - ---- -[bash-2.04 released] - - 3/20 - ---- -doc/bash.1 - - minor typo fix to description of `xpg_echo' option in `echo' - description - - 3/23 - ---- -parse.y - - minor fix to parse_string_to_word_list to allow newlines in - compound array assignments - - 3/27 - ---- -lib/readline/rltty.c - - fixed a missing-semicolon syntax error in the old 4.3 BSD tty code - -support/mksignames.c - - if SIGRTMAX is >= 2*NSIG, just #undef SIGRTMIN and SIGRTMAX. This - is an issue on AIX 4.3 (only, so far) -- checked by configure, which - #defines UNUSABLE_RT_SIGNALS if this is the case - -aclocal.m4 - - new macro, BASH_CHECK_RTSIGS, checks whether or not real-time - signals are defined with large values and defines UNUSABLE_RT_SIGNALS - if they are - -config.h.in - - place marker for UNDEF_RT_SIGNALS (initially undefined) - -configure.in - - call BASH_CHECK_RTSIGS in the `bash miscellaneous' section - - 3/29 - ---- - -subst.c - - fixed a problem in match_pattern_char, where `string' was checked - for a paren following a [?+!@], rather than `pat' - - the code that checks whether or not to exit after a failed - ${word?msg} substitution needs to check interactive_shell rather - than interactive to avoid exiting if such a construct appears in - a sourced file - - 3/31 - ---- - -bashline.c - - add `{' to the list of characters that need to be quoted by the - completion code when appearing in a filename - - 4/1 - --- -lib/glob/fnmatch.c - - fixed an error in brackmatch() while skipping the rest of a bracket - expression after a character matched. When `c' was a backslash and - *p was a backslash, as in a pattern like [/\\], the old code didn't - take both backslashes into account and ended up skipping the `]' - after erroneously concluding that it was quoted. Report and fix - from akim@epita.fr - - 4/3 - --- -lib/readline/rltty.c - - slight change to the BSD tty interface code, so that if the first - ioctl fails, get_tty_settings returns -1 immediately - - better checking of ioctl return values in BSD tty version of - get_tty_settings - - 4/5 - --- -doc/{bash.1,bashref.texi} - - documented use of LINES and COLUMNS variables - - 4/12 - ---- -lib/readline/rltty.c - - change the SETATTR define for the termio tty driver to use - TCSETAW (the analog of the termios TCSADRAIN) - -lib/glob/fnmatch.c - - fix for posix-style bracket expressions ([:xxx:], [=x=]) broken - by fix of 4/1 for quotes in bracket expressions - - 4/26 - ---- -subst.c - - fix to list_string and get_word_from_string to make a non-whitespace - IFS character preceded by IFS whitespace part of the current field - delimiter, not a separate delimiter that would result in a separate - null field when splitting. cf POSIX.2, 3.6.5, (3)(b). Bug reported - by amc@cs.berkeley.edu - - changed the behavior of the (currently undocumented) ${!prefix@} - expansion to be analogous to the expansion of $@ in other contexts - when double-quoted. ksh93 seems to do this. Bug reported by - Ken Pizzini - - changed read_comsub to ignore NUL bytes in the command substitution - output, printing a warning message for now - -parse.y - - changed shell_getc to ignore NUL bytes in the input, printing a - warning message for now - - changed read_a_line to print a warning when a NUL byte is encountered, - like shell_getc does - - 5/18 - ---- -subst.c - - make sure split_at_delims uses d2 only if it's non-null - - make split_at_delims skip leading newlines in the string to split, - if newline is a delimiter - -jobs.c - - prevent hanging processes by marking a child process as not running - (even if the shell thinks it is) when waitpid() returns -1/ECHILD -- - this indicates that waitpid never returned a reasonable status - for that child though, which may be a symptom of another problem - -builtins/cd.def - - make `pwd' print an error message if the write fails when displaying - the current directory - -lib/readline/histexpand.c - - return NULL from history_find_word if history_tokenize_internal - returns (char **)NULL rather than attempting to dereference a - possibly-NULL pointer - - change history_tokenize_internal to set *indp to -1 before any - processing if indp is non-null - - 5/19 - ---- -builtins/trap.def - - when in POSIX.2 mode and printing trap dispositions, print the - signal name without the leading `SIG', as POSIX.2 requires - - 5/23 - ---- -lib/readline/readline.c - - readline_initialize_everything now assigns $TERM to rl_terminal_name - if the application has left it unset, and calls _rl_init_terminal_io - with the resultant value - -lib/readline/doc/rltech.texinfo - - updated the description of rl_terminal_name to note initialization - -parse.y - - change parse_string_to_word_list to save and restore the value of - current_command_line_count before calling back into the parser -- - it will screw up history if the string extends over one line. Bug - reported by Jan.Djarv@mbox200.swipnet.se - - 6/7 - --- -unwind_prot.h - - change unwind_protect_string to pass the address of the variable to - unwind_protect_var on machines where ints and char *s are not the - same size - -unwind_prot.c - - make sure we save the value of a variable in unwind_protect_var on - machines where sizeof(char *) != sizeof(int), not the contents the - value points to. Fix from Andreas Schwab - - 6/8 - --- -configure.in - - auto-configure MacOS X without bash malloc (like Rhapsody) - - 6/12 - ---- -configure.in - - replace `cygwin32' with `cygwin' - -builtins/evalfile.c - - in _evalfile, change all instances of \r to \n in the file to be - sourced and evaluated if __CYGWIN__ is defined - -input.c - - change \r to \n in the buffer argument to make_buffered_stream and - after calling zread() from b_fill_buffer if __CYGWIN__ is defined - - 6/29 - ---- -lib/sh/Makefile.in - - add rest of dependency rules for makepath.o - - 7/3 - --- -jobs.c - - changed `int' to `WAIT' in a couple of places for non-POSIX - environments - - 7/5 - --- -locale.c - - try to avoid an unnecessary memory allocation in localetrans() in - the case that a translation for the string exists - -lib/readline/doc/rluserman.texinfo - - change the `direntry' information to make it use rluserman instead - of readline - - 7/6 - --- -execute_cmd.c - - changes to execute_in_subshell so it honors a `!' prefixing a command - inside a user subshell (...) - -support/config.{guess,sub} - - add cases for Apple Darwin (Mac OS X) - -configure.in - - Apple Darwin (MacOS X) uses its own malloc - -lib/readline/readline.h - - removed bogus extern declaration of savestring - - 7/7 - --- -builtins/common.c - - in get_working_directory, don't count on getcwd returning anything - useful in the buffer passed as the first argument on failure; just - use bash_getcwd_errstr in the error message - -examples/loadables/cut.c - - loadable version of cut(1), from the FreeBSD source tree - - 7/18 - ---- -lib/readline/vi_mode.c - - changed two instances of (*rl_getc_function) (rl_instream) to calls - to rl_read_key(), which works better when using the readline - callback interface - -builtins/evalfile.c - - added FEVAL_CHECKBINARY flag for _evalfile; controls whether a check - for a binary file is performed - - FEVAL_CHECKBINARY is not set by source_file or maybe_execute_file, - which means that the startup file execution and the `.' builtin will - not check for binary files - - FEVAL_CHECKBINARY is not set by fc_execute_file, so that files - composed of history commands run by the `fc' builtin will not check - for binary files - - 7/21 - ---- -shell.c - - added `--init-file' as a synonym for `--rcfile' - - 7/26 - ---- -support/shobj-conf - - added commented-out stanzas for hpux 10 and hpux 11 when the HP - unbundled ANSI C compiler is being used - - 7/27 - ---- -shell.c - - don't call end_job_control() from exit_shell if subshell_environment - is non-zero, even if the shell is interactive - - 8/1 - --- -bashhist.c - - change maybe_add_history to remember if we saved the first line of - a command and don't save the second and subsequent lines of a - multi-line command if we didn't save the first line - -configure.in, config.h.in - - add autoconf check for getservbyname() - -lib/sh/netopen.c - - add support for named services in /dev/(tcp|udp)/host/service - translation - - make sure _netopen sets errno to something other than 0 if something - goes wrong, so the redirection functions behave - - 8/3 - --- -parse.y - - changes to shell_getc so that history saving of blank lines in - multi-line commands does a better job of syntactic correctness - -bashline.c - - bind ^O to operate-and-get-next in emacs_standard_keymap explicitly, - rather than letting rl_add_defun do it in whatever keymap is current - - 8/4 - --- -builtins/ulimit.def - - removed some of the special handling of RLIM_INFINITY -- the old - code would let people use RLIM_INFINITY as a shorthand for setting - the soft limit to the hard limit. Now, the code just passes - RLIM_INFINITY through if the hard limit is being set, so any kernel - errors will get through - - 8/10 - ---- -parse.y - - change the grammar rule for group_command so that it's composed of - a compound_list instead of a list, which requires a terminator - This means that you can now do (legal) things like - - { { echo a b c ; } } - - since the second close brace will be recognized as such because a - reserved word is legal in that context - - 8/23 - ---- -subst.c - - fix parameter_brace_substring to free all memory allocated by - get_var_and_type in the VT_ARRAYMEMBER case (returned parameter - `val') - - 8/30 - ---- -variables.c - - now that we have dynamic array variables, remove the check for - array_p in bind_variable and let array variables with assignment - functions call the assignment function - -subst.c - - change cond_expand_word to perform tilde expansion (like it should - have done all along) - -lib/readline/complete.c - - don't allow backslash to quote anything inside a single-quoted - string in find_completion_word - -doc/{bash.1,bashref.texi} - - note that `set -a' will cause functions to be exported - -lib/readline/parens.c - - changed the blink timeout so it's settable by the application. A - new function, int rl_set_paren_blink_timeout (int u), (still - undocumented) will set the timeout to U usec - -variables.c - - at startup of an interactive login shell, if the current directory - is $HOME, and $HOME and $PWD are not the same, set the current - directory (and $PWD) to $HOME - - break code that initializes $PWD and $OLDPWD into set_pwd function - -variables.h - - new extern declaration for set_pwd() - - 9/6 - --- -lib/readline/{readline,callback}.c - - allocate memory for rl_prompt instead of simply using what's passed - as the `prompt' argument to readline() or - rl_callback_handler_install(). This will allow constant strings to - be passed to readline(), since the prompt processing code wants to - write to rl_prompt - -lib/sh/pathcanon.c - - new file, does pathname canonicalization - -externs.h - - extern declarations for stuff in lib/sh/pathcanon.c - -general.c - - canonicalize_pathname now simply calls sh_canonpath() - - 9/7 - --- -pcomplete.h - - new member in a `struct compspec': options - - define some flag values for options field - -pcomplib.c - - make sure options field is allocated and copied by compspec utility - functions - -builtins/complete.def - - add struct for completion options. These control the `meta-behavior' - of the compspec. Initially, there are three: - - default - perform bash default completion if programmable - completion produces no matches - dirnames - perform directory name completion if programmable - completion produces no matches - filenames - tell readline that the compspec produces filenames, - so it can do things like append slashes to - directory names and suppress trailing spaces - - - add `-o option' to complete and compgen, setting new options field - in a compspec - - add code to display any -o options when a compspect is printed - with the `-p' option to complete - -pcomplete.c - - programmable_completions now passes back to the caller in the last - argument any options associated with the active compspec (from the - options field) - - change gen_compspec_completions to re-call gen_action_completions - with a CA_DIRECTORY action if the rest of the compspec actions - generate no matches and the COPT_DIRNAMES option is present - -bashline.c - - if a programmable completion was specified to return filenames with - the `-o filenames' option, set rl_filename_completion_desired to 1 - so readline does its special filename-specific things - - if a compspec was defined to fall back to the readline default with - the `-o default' option, suppress setting the - rl_attempted_completion_over variable in attempt_shell_completion - so readline will go on and do filename completion - -include/ansi_stdlib.h - - add extern declarations for atof and strtod - -builtins/printf.def - - change getdouble() to use strtod (since we provide a version in - libsh if the C library doesn't have one), and change the calling - convention to match the other getXXX functions (take value pointer - as argument, return success or failure). This makes printf handle - invalid floating point numbers better - -doc/bash.1, lib/readline/doc/rluser.texinfo - - documented new `-o' option to complete and compgen; described the - arguments and their effects - -lib/readline/{macro,util}.c - - renamed _rl_executing_macro to rl_executing_macro; made it public - -lib/readline/readline.h - - new extern declaration for rl_executing_macro - -lib/readline/rltech.texinfo - - documented rl_executing_macro - - 8/8 - --- -lib/readline/readline.c - - new state variable, rl_readline_state - -lib/readline/readline.h - - extern declaration for rl_readline_state - - define some flag bits for rl_readline_state and macros to test and - set them - -lib/readline/{readline,complete,isearch,macro,rltty,search,signals,undo,vi_mode}.c - - added calls to the macros that set and unset various readline states - -lib/readline/readline.c - - new private function, _rl_free_saved_history_line, to free up the - history entry saved in saved_line_for_history - -lib/readline/search.c - - free any saved history entry in rl_history_search_reinit(), because - rl_get_previous_history makes a call to maybe_save_line without - freeing up the saved line when it returns (so rl_get_next_history - can use it) - - fix up noninc_search_from_pos to deal with invalid history indices - better - - 9/12 - ---- -support/shobj-conf - - HPUX 11.0 needs the `-fpic' flag passed to the linker as well as - the compiler - -execute_cmd.c - - on MS-DOS systems, let the #! checking stuff in execute_shell_script - treat \r as EOL (identical to \n) - -input.c - - on DJGPP systems, allow buffered_getchar to ignore \r. Change - suggested by snowball3@bigfoot.com - - 9/13 - ---- -lib/sh/tmpfile.c - - new file, with functions for creating and (hopefully safely) opening - temporary files for the shell - -externs.h - - extern declarations for functions in tmpfile.c - -variables.c - - new function, get_random_number, returns random values from the - shell's (lame) RNG to the rest of the shell - -variables.h - - new extern declaration for get_random_number() - -subst.c - - changed make_named_pipe to call sh_mktmpname instead of mktemp - -redir.c - - changed here_document_to_fd to call sh_mktmpfd instead of using - inline code - -builtins/fc.def - - changed fc_builtin to call sh_mktmpfp instead of using inline code - -builtins/common.h - - new extern declaration for fc_execute_file() - -bashline.c - - if RL_ISSTATE(RL_STATE_INITIALIZED) is 0 in initialize_readline, - call rl_initialize to bind the defaults before setting up our - custom shell functions and key bindings - -lib/readline/doc/{rluser,hsuser}.texinfo - - some markup changes proposed by dima@chg.ru - -lib/readline/rlstdc.h, lib/tilde/tilde.h - - to get ready for some `const' changes to the source, define const - as either `__const' (gcc -traditional) or nothing if __STDC__ and - __cplusplus are not defined - -lib/readline/readline.c - - upped the default readline version to `4.2-alpha' - -lib/readline/readline.[ch] - - readline now takes a `const char *' as an argument - -lib/readline/history.h - - read_history(), read_history_range(), write_history(), - append_history(), history_truncate_file() now take `const char *' - filename arguments - -lib/readline/histfile.c - - history_filename(), read_history(), read_history_range(), - write_history(), append_history(), history_truncate_file(), - history_do_write() now take `const char *' filename arguments - -lib/readline/readline.h - - rl_read_init_file() now takes a `const char *' filename argument - -lib/readline/bind.c - - current_readline_init_file is now a `const char *' - - _rl_read_init_file(), rl_read_init_file() now take `const char *' - filename arguments - -lib/tilde/tilde.c - - tilde_expand(), tilde_expand_word() now take a `const char *' - as their first argument - -lib/readline/chardefs.h - - fixed CTRL_CHAR macro to be right on systems where chars are unsigned - by default - - 9/14 - ---- -lib/readline/doc/{rl,hs}tech.texinfo - - documented new `const char *' function arguments where appropriate - -lib/readline/vi_mode.c - - clamp the numeric argument in vi mode at 999999, just like in emacs - mode - -lib/readline/doc/rltech.texinfo - - documented rl_readline_state and its possible bit values - -builtins/source.def - - in maybe_pop_dollar_vars, don't overwrite a shell function's - argument list even if the sourced script changes the positional - parameters - -lib/readline/{util.c,rlprivate.h} - - made _rl_strindex() and _rl_savestring() take `const char *' - arguments - - 9/15 - ---- -subst.c - - renamed `doing_completion' to `no_longjmp_on_fatal_error', a more - accurate description of its current behavior - -pcomplete.[ch], externs.h, lib/sh/stringlist.c - - moved the stringlist code from pcomplete.c to lib/sh/stringlist.c - - moved the type declaration and extern function declarations from - pcomplete.h to externs.h - -stringlib.c, externs.h, lib/sh/stringvec.c - - moved the char array code from stringlib.c to lib/sh/stringvec.c - - 9/18 - ---- -subst.c - - new static variable, expand_no_split_dollar_star, to ensure that - $* isn't `split and rejoined' when expanded via a call to - expand_string_unsplit or expand_word_no_split - - 9/19 - ---- -subst.[ch], execute_cmd.c - - renamed expand_word_no_split to expand_word_unsplit - -copy_cmd.c - - in copy_word, just assign w->flags to new_word->flags rather than - bcopying the entire structure - -configure.in, config.h.in - - add autoconf check for pathconf(3) - -lib/sh/tmpfile.c - - test for systems with short filenames using pathconf and - _PC_NAME_MAX, so generated temp file names don't exceed that length - (only do this if the file name length is less than 32, since the - current code doesn't generate filenames longer than about 17 chars) - - 9/20 - ---- -command.h - - added `W_NOSPLIT2' word flag to prepare for supporting weird $@ - expansion on the rhs of assignment statements (inspecting the ksh93 - behavior, it seems like nothing except $@ is split, and $@ is split - on $IFS and rejoined as a single string) - - 9/21 - ---- -subst.c - - since verify_substring_values looks for arithmetic expressions - bounded by `:', do some ad-hoc parsing of the substring passed as - the argument to avoid cutting the expression off at the wrong `:' - (since the inclusion of conditional expressions, expressions may - contain a `:'). Do some paren balancing, too. - - 9/22 - ---- -command.h - - new #define, CLOBBERING_REDIRECT, evaluates to true for any redirect - that will clobber a file and should be subject to `noclobber' - -redir.c - - changed redir_open to use CLOBBERING_REDIRECT instead of - OUTPUT_REDIRECT. This means that <> no longer tests the value of - noclobber, as POSIX.2 specifies - -parse.y - - made a change to cond_term so that expressions like [[ (x) ]] are - parsed correctly - - 9/25 - ---- -parse.y - - small change to grammar for arith_for_command and special_case_tokens - to allow `do...done' or {...} after ((...)) without an intervening - list_terminator (for ksh93 compatibility) - -builtins/printf.def - - `printf' now treats \E and \e the same when performing backslash - escape expansion for the %b format character for compatibility with - $'...' quoting (for ksh93 compatibility) - - 9/26 - ---- -builtins/source.def - - new variable, source_searches_cwd, initially 1. If non-zero, `.' - searches $PWD for the filename argument if it's not found in $PATH - -general.c - - changed posix_initialize to turn off source_searches_cwd if posix - mode is being enabled; turn it on if posix mode is being disabled - - changed things so interactive_comments is not turned off if posix - mode is disabled, since that's rarely what is desired - -variables.c - - changed uidset() to set UID and EUID only if they are not already - set when the shell starts up - - changed things to HOSTNAME is set only if it's not set when the - shell starts up - -execute_cmd.c - - changed execute_builtin_or_function so that if a command like - `command exec 4 as appropriate - -lib/readline/{display.c,readline.h} - - rl_redisplay_func is now of type rl_voidfunc_t * - -lib/readline/{callbacks.c,readline.h} - - the `linefunc' argument to rl_callback_handler_install and the - rl_linefunc variable are now of type rl_vcpfunc_t * - -lib/readline/{complete.c,readline.h} - - rl_completion_display_matches_hook is now of type - rl_compdisplay_func_t * - - rl_directory_completion_hook is now of type rl_icppfunc_t * - -lib/readline/{history.h,histexpand.c} - - history_inhibit_expansion_function is now of type - rl_linebuf_func_t * - -lib/readline/histexpand.c - - new private type, _hist_search_func_t, used to indirect through - the various history search functions - -lib/tilde/tilde.h - - new typedef, tilde_hook_func_t, which takes a char * and returns - a char * - -lib/tilde/tilde.[ch] - - tilde_expansion_preexpansion_hook and tilde_expansion_failure_hook - are now of type tilde_hook_func_t * - -[THERE ARE NO LONGER ANY REFERENCES TO Function *, CPFunction *, or -CPPFunction * IN THE READLINE SOURCE, WHICH INCLUDES THE TILDE LIBRARY] - -{bashline,bracecomp}.c, bashline.h - - changes for changed type of rl_completion_entry_func and other - changed types (rl_compentry_func_t, rl_completion_func_t, - const changes for prototypes, etc.) - -pathexp.[ch] - - shell_glob_filename now takes a `const char *' argument - - quote_string_for_globbing now takes a `const char *' argument - - 10/31 - ----- -lib/sh/zwrite.c - - fix zwrite() to update the buffer pointer in the case of a - partial write, in addition to decreasing the count of bytes to - be written - -support/config.{guess,sub} - - added entries for MIPS-based Compaq machines running NonStopUX - - 11/1 - ---- -lib/readline/undo.c - - renamed free_undo_list to be rl_free_undo_list, made a dummy - replacement function free_undo_list that just calls - rl_free_undo_list - -lib/readline/readline.h - - extern declaration for rl_free_undo_list - -lib/readline/{readline,signals}.c - - changed calls to free_undo_list to rl_free_undo_list - -lib/readline/doc/rltech.texinfo - - changed all function types and arguments for new typedefs - - 11/2 - ---- -lib/readline/{rlprivate.h,terminal.c,display.c} - - term_clreol, term_clrpag, term_cr, term_backspace, term_goto, - term_pc, term_im, term_ei, term_ic, term_ip, term_IC, term_dc, - term_DC, term_forward_char, term_up, term_mm, term_mo, term_ku, - term_kd, term_kr, term_kl, term_ks, term_ke, term_kh, term_kH, - terminal_can_insert variables all now have a _rl_ prefix - -lib/readline/{rlprivate.h,terminal.c,display.c, readline.c} - - screenheight, screenwidth, screenchars now have an _rl_ prefix - -lib/readline/{terminal,complete,isearch,kill,macro,readline,search,undo,util,vi_mode}.c - - changed calls to ding to calls to rl_ding - -lib/readine/{isearch,readline,search}.c - - saved_line_for_history now has an _rl_ prefix - -lib/readline/readline.[ch] - - renamed maybe_{replace,save,unsave} line to have an rl_ prefix - -lib/readline/{readline,search,isearch}.c - - changed calls to maybe_{replace,save,unsave} line to call the - rl_-prefixed equivalents - -lib/readline/{rlprivate.h,readline.c,util.c} - - renamed alphabetic to rl_alphabetic; changed calls - -lib/readline/{bind.c,funmap.c,rlprivate.h} - - possible_control_prefixes -> _rl_possible_control_prefixes - - possible_meta_prefixes -> _rl_possible_meta_prefixes - -lib/readline/compat.c - - new file for entry points for backwards compatibility functions - - moved free_undo_list here from undo.c - - maybe_{replace,save,unsave}_line function that call their rl_ - counterparts - - moved ding() here; it just calls rl_ding() - - moved alphabetic here; it just calls _rl_alphabetic() - -lib/readline/Makefile.in - - make sure compat.o is built and linked appropriately - -bashline.c,pcomplete.c - - changed calls to ding() to call rl_ding() - -support/shobj-conf - - changed linux stanza SHLIB_XLDFLAGS to make the `soname' in a - shared library have only the major version number, rather than - major and minor numbers - - made analogous changes for bsd/os-4 - - changed freebsd 3.x stanza to match `freebsdelf[3-9]*' for - FreeBSD elf systems and `freebsdaout[3-9]*' for FreeBSD - a.out systems (are there any?) - -lib/readline/doc/{rluser,hsuser}.texinfo - - changed uses of @samp to @option where appropriate - -doc/bashref.texi - - changed uses of @samp to @option where appropriate - - 11/3 - ---- -lib/readline/{readline.h,complete.c,compat.c} - - completion_matches, username_completion_function, - filename_completion_function all have an rl_ prefix - -{bashline,bracecomp,pcomplete}.c - - changed calls to completion_matches, username_completion_function, - and filename_completion_function - -lib/sh/shquote.c - - single_quote, double_quote, un_double_quote, backslash_quote, - backslash_quote_for_double_quotes, contains_shell_metas all now - have an sh_ prefix - -externs.h - - changed extern declarations for functions from shquote.c - -{array,bashline,pcomplete,print_cmd,variables}.c, parse.y -builtins/{alias,complete,trap,type}.def - - changed callers of single_quote - -{array,bashline}.c, builtins/setattr.def - - changed callers of double_quote - -{bashline,bracecomp}.c, parse.y, builtins/printf.def - - changed callers of backslash_quote - -parse.y - - changed callers of backslash_quote_for_double_quotes - -{print_cmd,variables}.c - - changed callers of contains_shell_metas - -lib/readline/{rlshell.h,shell.c,histexpand.c} - - single_quote -> sh_single_quote - -lib/readline/{rlshell.h,shell.c,input.c} -general.[ch],shell.c,subst.c - - unset_nodelay_mode -> sh_unset_nodelay_mode - -lib/readline/{rlshell.h,shell.c}, lib/tilde/tilde.c, variables.c - - get_home_dir -> sh_get_home_dir - -lib/readline/rlshell.h,lib/readline/bind,histfile,nls,readline,shell,terminal}.c, lib/tilde/tilde.c, variables.c - - get_env_value -> sh_get_env_value - -lib/readline/rlshell.h,lib/readline/{shell,terminal}.c -variables.h,{jobs,nojobs,variables}.c - - set_lines_and_columns -> sh_set_lines_and_columns - - 11/6 - ---- -configure.in - - bash can only link with an already-installed readline library whose - version is 4.2 or greater - -variables.h - - new variable attribiute, noassign, with its accompanying test macro, - noassign_p. Completely internal, not user-settable - -execute_cmd.c - - treat noassign variables like readonly variables, except an attempt - to assign to them does not cause a non-interactive shell in POSIX - mode to abort - -{subst,variables}.c,builtins/declare.def - - attempts to assign to `noassign' variables return an error status, - but no error messages -- almost identical to readonly variables - -variables.c - - GROUPS and FUNCNAME are `noassign' variables, meaning assignment to - them is disallowed, but that they may be unset (in which case they - lose their special properties) - -doc/{bash.1,bashref.texi} - - documented that assignments to GROUPS and FUNCNAME are disallowed - and return an error status - - 11/8 - ---- -lib/readline/{funmap.c,bind.c,rlprivate.h} - - _rl_possible_{control,meta}_prefixes are now arrays of `const char *' - and are defined in bind.c, since that's where they're used - -lib/readline/rltty.c - - changed prepare_terminal_settings to take an `oldtio' argument - instead of `otio', which shadows the global declaration - -lib/readline/bind.c - - the `name' member of a parser_directive element is now a - `const char *' - - the `name' member of a boolean_varlist element is now a - `const char *' - - the `name' member of a string_varlist element is now a - `const char *' - - the `name' member of an assoc_list element is now a - `const char *' - - the `name' member of an keymap_names element is now a - `const char *' - -lib/readline/display.c - - changed scope-local char * variable `temp' to `vtemp' because - there's already a function local variable named `temp' of a - different type (int) in rl_redisplay - -lib/readline/util.c - - pathname_alphabetic_chars is now `const char *' - -lib/readline/terminal.c - - the `tc_var' member of a _tc_string element is now a - `const char *' - -lib/readline/histexpand.c - - changed history_expand_internal to remove the duplicate local - declaration of `t' in the `s'/`&' case - -lib/readline/histfile.c - - in history_filename, `home' is now a `const char *' - -lib/tilde/tilde.c - - default_prefixes and default_suffixes are now arrays of - `const char *' - -lib/readline/vi_mode.c - - vi_motion and vi_texmod are now `const char *' - -lib/readline/complete.c - - simplified the conditional declaration of getpwent() - -variables.[ch] - - get_string_value now takes a `const char *' argument - - 11/10 - ----- -display.c - - changes to expand_prompt and rl_redisplay to keep track of the number - of invisible characters on the first line of the prompt, in case it - takes up more than one physical line, and not all invisible chars are - on the first line - - the code that determines the index into the line at which to wrap the - first line if the visible prompt length exceeds the screen width was - changed to use the number of invisible chars in the first physical - prompt line rather than the total number of invisible characters - - changed redraw_prompt to save and restore prompt_invis_chars_first_line - -subst.c - - changed expand_string_internal to savestring() the string argument - to avoid possible doubly-freed memory on substitution errors - - fixed expand_word_list_internal so that commands with assignment - statements preceding words that expand to nothing return a failure - status if one of the assignments fails; for example - - readonly TVAR - TVAR=7 $ECHO $ABCDE - - made sure that all cases of jump_to_top_level set - last_command_exit_value to something non-zero before jumping, since - they are by definition errors - -builtins/evalstring.c - - changed parse_and_execute to set last_result to EXECUTION_FAILURE - along with last_command_exit_value in the `DISPOSE' case of a - jump_to_top_level, since we can return this value in most - (interactive) circumstances - - 11/14 - ----- -general.c - - fix legal_number so that it skips any trailing whitespace in its - string argument after strtol returns, since strtol does not - -lib/readline/{complete.c,readline.h} - - new function pointer, rl_directory_rewrite_hook, identical in effect - to rl_directory_completion_hook except that it does not modify what - is displayed when the possible completions are listed or inserted - -bashline.c - - changed tcsh_magic_space to try and insert a space closer to where - the point was originally, rather than always inserting it at the - end of the line - - 11/16 - ----- -jobs.c - - fixed a bug that happened on cygwin systems that caused the jobs - table to fill up if a file sourced from an interactive shell ran - lots of jobs -- notify_and_cleanup() never called notify_of_job_status - -subst.c - - fixed pat_match to avoid infinite recursion on zero-length matches - from match_pattern - - 11/17/2000 - ---------- -[bash-2.05-alpha1 released] - - 11/18 - ----- -support/shobj-conf - - added GNU Hurd support, identical to linux - -variables.c - - cygwin systems don't use the exportstr stuff at all, so call - INVALIDATE_EXPORTSTR before testing var->exportstr, since just - blindly using the value_cell will break exported functions that - already have an exportstr set - - when recomputing the exported value because valid_exportstr fails, - make sure to call named_function_string if the variable is a shell - function - - 11/20 - ----- -variables.c - - removed call to valid_exportstr; the exportstr code has been - adequately debugged - -lib/glob/fnmatch.c - - reverted to the POSIX.2 behavior of using the current locale and - strcoll() to evaluate range expressions in bracket expressions - -doc/{bash.1,bashref.texi} - - added note to Pattern Matching section emphasizing that the current - locale plays a part in evaluating range expressions within [...] - -aclocal.m4 - - added an #include to the test for posix sigaction - restarting interrupted system calls - -support/config.guess - - changes from Tim Mooney to support `letter version' releases of - Tru 64 Unix on the Alpha (e.g., 5.1a) - - 11/21 - ----- -lib/sh/pathphys.c - - make sure MAXSYMLINKS is defined - -aclocal.m4 - - changed BASH_CHECK_PWFUNCS to just use AC_EGREP_CPP on a file - that includes pwd.h and other header files, checking for getpwuid. - It #defines HAVE_GETPW_DECLS if the egrep succeeds - -lib/readline/complete.c - - provide extern declaration of getpwent if _POSIX_SOURCE is defined, - since most systems don't declare it in unless _POSIX_SOURCE - is undefined - - 11/22 - ----- -input.c - - fixed a small typo in the cygwin-specific code - -doc/{bashref.texi,bash.1} - - added some more explanatory text about the effect of the current - locale's collating order on range expressions within bracket - expressions - -doc/bashref.texi, lib/readline/doc/{rltech,rluser,hstech}.texinfo - - changed to use @env instead of @code for the names of environment - and shell variables in text (not in tables yet) - - 11/27 - ----- -configure.in - - configure without the bash malloc on Interix - -lib/readline/doc/rltech.texinfo - - changed completion_matches() to rl_completion_matches() - - changed filename_completion_function() to - rl_filename_completion_function() - - changed username_completion_function() to - rl_username_completion_function() - -lib/readline/rlprivate.h - - changed declaration of _rl_alphabetic to rl_alphabetic, since that's - what's used in the C files - -support/bashbug.sh - - Debian has /usr/bin/editor as a link to the system default editor; - make that one of the alternatives if $EDITOR is not set - - if the OS provides mktemp(1) or tempfile(1), use those to create - the temp file for the bug report - -lib/readline/{readline.[ch], callback.c} - - new function, rl_set_prompt, called with prompt string as argument, - sets and, if necessary, expands rl_prompt - -lib/readline/{complete.c,compat.c,readline.h} - - rl_completion_matches now takes a `const char *' as its first - argument - - compute_lcd_of_matches now takes a `const char *' as its third - argument - -lib/readline/rltypedefs.h - - a rl_completion_func_t now takes a `const char *' as its first - argument - -lib/readline/Makefile.in - - added dependencies on rltypedefs.h - -bashline.c - - attempt_shell_completion now takes a `const char *' as its first - argument - - removed bogus cast when assigning to rl_attempted_completion_function - and rl_completion_entry_function - - bash_directory_completion_matches takes a `const char *' argument - -pcomplete.c - - gen_matches_from_itemlist, pcomp_filename_completion_function, - gen_action_completions, gen_globpat_matches, gen_wordlist_matches, - gen_compspec_completions now take `const char *' arguments as - appropriate - - programmable_completions now takes `const char *' first and - second arguments - -pcomplib.c - - find_compspec now takes a `const char *' argument - - 11/29 - ----- -shell.c - - in open_shell_script, if we have /dev/fd, don't perform the check - for a binary file if isatty(fd) (where fd is opened on the script - name) returns non-zero - - in open_shell_script, don't call init_noninteractive again, since it - can undo changes made by the startup files ($BASH_ENV) - -input.c - - in fd_to_buffered_stream, make sure buffer size (and hence size - arg passed to read(2)) is greater than zero. This makes - bash /dev/stdin work right. - - return -1 from sync_buffered_stream immediately if buffers is NULL - (can happen when running `bash -i /dev/stdin' and executing a - command that requires a fork) - - 11/30 - ----- -jobs.c - - renamed cont_signal_handler to sigcont_sighandler for consistency - - renamed stop_signal_handler to sigstop_sighandler for consistency - - if there is no jobs list or no outstanding jobs, return immediately - from notify_of_job_status, before fussing with the signal state - - change map_over_jobs to not fuss with the signal state unless there - are jobs - -lib/malloc/malloc.c - - encapsulated the code to block and unblock signals during morecore() - execution into two functions: block_signals and unblock_signals - - only block signals in morecore() if interrupt_immediately is non-zero - or SIGINT or SIGCHLD is trapped - - 12/1 - ---- -lib/readline/readline.c - - fix to rl_forward to make sure that lend doesn't get set < 0, since - that will result in rl_point being < 0 - - 12/5 - ---- -parse.y - - fix to parse_matched_pair to allow backslash to escape a ' inside a - $'...' construct inside another grouping construct like ${...} - - translate $'...' and $"..." in parse_matched_pair, because nothing - else will do it if such a construct appears inside a grouping - construct - - 12/6 - ---- -configure.in - - make sure all bracket tests for pattern matching in case statements - are appropriately quoted, so autoconf doesn't swallow the brackets - - add -rdynamic to LOCAL_LDFLAGS for freebsd-4.x - -examples/loadables/realpath.c - - new loadable builtin, canonicalizes pathnames and expands symlinks - -builtins/ulimit.def - - added undocumented -w option for setting RLIMIT_SWAP, if it's defined - - 12/7 - ---- -bashline.c - - reordered code in initialize_readline so all of the rl_add_defun - calls are made before the call to rl_initialize, and all of the - rl_{bind,unbind}_key_in_map calls are made after initializing - readline. This allows the bash-specific function names to be used - in ~/.inputrc - - 12/12 - ----- -lib/readline/callback.c - - in rl_callback_read_char, loop after returning from - readline_internal_char and test rl_pending_input in case some - function (like the incremental search functions and digit argument - functions) pushed input back with rl_execute_next - -lib/readline/readline.h - - new rl_state flag: RL_STATE_INPUTPENDING, indicating that - rl_execute_next has pushed input back for rl_get_key to read - -lib/readline/input.c - - new function to clear rl_pending_input: rl_clear_pending_input() - -lib/readline/{input,readline,signals}.c - - when rl_pending_input is set, set state RL_STATE_INPUTPENDING; - unset that state when rl_read_key returns the pending input - - call rl_clear_pending_input at appropriate points - - 12/15 - ----- -lib/readline/histfile.c - - don't leak file descriptors while attempting to truncate a non-regular - file - -input.c - - make sure check_bash_input sets the close-on-exec flag for the file - descriptor used to save the bash input fd - -parse.y - - if default_buffered_input gets changed while it's on the saved - stream stack, make sure it gets set to close-on-exec when it's - restored by pop_stream() - - 12/18 - ----- -builtins/ulimit.def - - change set_limit to account for Cygwin's setdtablesize() being - declared as a void function - -support/config.{guess,sub} - - change cygwin32 to cygwin - - 12/20 - ----- -nojobs.c - - make wait_sigint_handler handle the case of interrupt_immediately - being non-zero when it's called, and jump out appropriately - -jobs.c - - new function to run sigchld traps: run_sigchld_trap(); called from - waitchld - - broke the code that computes the printable job status messages for - pretty_print_job out into a separate function - - rearranged some code eliminating a useless `else' branch in wait_for - - shell_tty_info is now a TTYSTRUCT, using defines from shtty.h - - broke the code that sets a job's status after waitpid says its state - has changed and cleans up after a received SIGINT out into a separate - function: set_job_status_and_cleanup - - last_stopped_job() -> job_last_stopped() to avoid collision with a - variable name - - last_running_job() -> job_last_running() for consistency - - 12/21 - ----- -variables.c - - new function, print_func_list (SHELL_VAR **list); prints shell - functions from list in a form that may be re-used as input to - redefine the functions - -variables.h - - new extern declaration for print_func_list - -builtins/set.def - - set without options now calls print_func_list to have functions - printed in a way that can be reused as input (this affects - `declare' and `declare -p' also) - - 12/27 - ----- -general.h - - add an ISOCTAL define - -builtins/common.h - - use ISOCTAL in read_octal function - -parse.y - - in decode_prompt_string, don't just skip STRING forward by 3 if an - octal sequence is translated; handle sequences of fewer than three - characters by checking each character - - 12/28 - ----- -doc/{bash.1,bashref.texi} - - make sure `vi-move' is a documented keymap argument to bind's - `-m' option - - 12/29 - ----- -variables.c - - change print_assignment so that functions are printed in a way that - may be reused as input (without the `=') - - 1/2/2001 - -------- -test.c - - fix test_command to print an error message if `[' is supplied a - single argument that is not `]' - -support/shobj-conf - - change test of $SHOBJ_CC from `gcc*' to `*gcc*' to handle full - pathnames - - 1/11 - ---- -execute_cmd.c - - in initialize_subshell, zero out builtin_env, since those aren't - supposed to be exported - -variables.c - - new function: shell_var_from_env_string, creates a SHELL_VAR from - a `name=value' style environment string and returns it - - new function: bind_name_in_env_array(name, value, array), makes - NAME have VALUE in ARRAY, a temporary environment - - new function: bind_tempenv_variable (name, value), makes NAME have - VALUE in one of the temporary environments -- temporary_env, - builtin_env, or function_env - - changed bind_variable to call bind_tempenv_variable if one of the - temporary environments is non-null before modifying the - shell_variables table. This fixes a problem with sourced scripts - modifying variables in a temporary environment, but not seeing the - updated values - - 1/12 - ---- -variables.c - - changed things so OSTYPE, HOSTTYPE, and MACHTYPE are set only if - they don't have a value at shell startup - - 1/17 - ---- -builtins/fc.def - - create temp file with MT_USETMPDIR - -variables.c - - allow function local readonly variables to overwrite (or shadow) - other (calling) function readonly variables, but not global - readonly ones - -builtins/wait.def - - replace unwind_protect of interrupt_immediately, since that's a - variable that you cannot unwind-protect (the unwind-protect code - uses it) - - 1/22 - ---- -Makefile.in - - changed RELSTATUS to `beta1' - -lib/readline/terminal.c - - added rl_set_screen_size function, wrapper around - _rl_set_screen_size so bash doesn't call _rl_ functions - -lib/readline/{rlprivate,readline}.h - - moved rl_explicit_arg to readline.h - - moved rl_numeric_arg to readline.h - - moved rl_editing_mode to readline.h - - moved rl_last_func to readline.h - - added rl_set_screen_size to readline.h - -lib/readline/doc/rltech.texinfo - - documented rl_explicit_arg, rl_editing_mode, rl_numeric_arg, - rl_last_func - - documented rl_set_screen_size - -{jobs,nojobs}.c - - _rl_set_screen_size -> rl_set_screen_size - -{bashline,pcomplete}.c, builtins/set.def - - removed extern declarations of variables defined in readline.h - - 1/23 - ---- -support/rlvers.sh - - use $TMPDIR if it's defined - - use $RL_INCDIR (set by -I option, /usr/local/include by default) - as the directory containing the installed readline header files - - cd to the temp directory before attempting compilation - -configure.in - - pass `-I ${includedir}' to rlvers.sh - - 1/29 - ---- -subst.c - - fixed parameter_brace_expand to only throw away the state of - quoted dollar-at if we're going to be using the rhs of the - brace expansion, since whatever parameter_brace_expand_rhs sets - should be what goes (corrects bad fix of 2/16/2000) - - fixed param_expand to only free temp after calling - parameter_brace_expand if it's a quoted null and we *did not* - have a quoted $@, since in that case we want to keep it and - do the $@ special handling (fixes real problem from 2/16/2000) - - 1/30 - ---- -variables.c - - remove export attribute from SSH2_CLIENT, like SSH_CLIENT - - 2/1 - --- -unwind_prot.c - - added new function, clear_unwind_protect_list, to zero out the - unwind_protect list, optionally freeing the elements - -unwind_prot.h - - new extern declaration for clear_unwind_protect_list - -execute_cmd.c - - call clear_unwind_protect_list in initialize_subshell. This fixes - the problem of core dumps when calling a shell script without a - leading `#!' from a shell function or other context with an - unwind-protect list - - set variable_context and return_catch_flag to 0 in - initialize_subshell, since a new subshell is no longer in a shell - function - - 2/2 - --- -doc/readline.3 - - updated the text; clarified several points - - changed the usage synopsis to include and - - -lib/readline/doc/hstech.texinfo - - made sure all function prototypes are valid ANSI C (mostly - changing () to (void)) - -lib/readline/doc/rluser.texinfo - - a few clarifications - -lib/readline/doc/rltech.texinfo - - a few clarifications - - added two new subsections for character input and terminal - management - - changed all function prototypes to be valid ANSI C (mostly - replacing () with (void)) - - documented some variables in readline.h but previously not in - the reference manual (rl_num_chars_to_read, rl_dispatching, - rl_gnu_readline_p, rl_completion_type) - - documented some functions in readline.h but previously not in - the reference manual (rl_clear_pending_input, rl_prep_terminal, - rl_deprep_terminal, rl_tty_set_default_bindings, rl_alphabetic, - rl_crlf) - -lib/readline/readline.h - - added extern declaration for rl_clear_pending_input() - - added extern declaration for rl_alphabetic - - changed rltty_set_default_bindings to rl_tty_set_default_bindings - - changed crlf() -> rl_crlf() - -lib/readline/rltty.c - - new function, rl_tty_set_default_bindings, just calls - rltty_set_default_bindings (needed `rl_' prefix) - -lib/readline/readline.c - - readline_default_bindings now calls rl_tty_set_default_bindings - -lib/readline/terminal.c - - renamed crlf() to rl_crlf(); crlf() is still defined for backwards - compatibility - -bashline.c, lib/readline/{complete,display}.c - - changed all calls to crlf() to rl_crlf() - -test.c - - fix filecomp() so that `test file1 -nt file2' doesn't fail if file1 - exists but file2 does not - - 2/5 - --- -lib/readline/{terminal,compat}.c - - move crlf() backwards-compatibility definition to compat.c - -execute_cmd.c - - if we're running a command `( command ) &' from a non-interactive - shell, don't unconditionally disable expand_aliases. Only do it - when running such a command from an interactive shell, since then - we're changing to a non-interactive shell - - 2/6 - --- -[bash-2.05-beta1 released] - -lib/readline/compat.c - - add extern declaration for rl_crlf() - -lib/readline/undo.c - - initialize start and end in rl_do_undo to avoid bogus gcc compiler - warning with -Wall - -lib/readline/rlprivate.h - - fix typo in extern declaration of _rl_current_display_line() - - add extern declaration of _rl_free_saved_history_line() - -lib/readline/terminal.c - - return immediately from _rl_set_screen_size if one of the args is 0 - - new function, rl_get_screen_size (int *rows, int *cols) to return - readline's idea of the screen dimensions - -lib/readline/doc/rltech.texinfo - - documented rl_get_screen_size - - 2/7 - --- -pathexp.c - - a couple of fixes for the POSIX_GLOB_LIBRARY version of the globbing - code - -expr.c - - fixed omission of ^= from the special assignment operators - -shell.c - - change logic for setting `posixly_correct' at shell startup: if - $POSIXLY_CORRECT or $POSIX_PEDANTIC is found in the environment, - set it to 1, otherwise retain the previous value (which is - initialized to 0) - - 2/10 - ---- -builtins/evalstring.c - - since subshell_environment is now a flags word, test for the - SUBSHELL_COMSUB bit being set when decided whether or not to - evaluate $(flag: B_WASBASHINPUT - -redir.c - - in add_undo_redirect, if FD is 0, make the undo redirect be of type - r_duplicating_input instead of r_duplicating_output, since that fd - requires special handling in the presence of buffered streams (fixes - problem with scripts reading input through a pipe restoring bash - input buffered stream correctly after a `read' with an input - redirection - - 2/14 - ---- -lib/readline{complete,util}.c - - moved rl_strpbrk to util.c with rest of string utility functions, - renamed to _rl_strpbrk - -lib/readline/rlprivate.h - - extern declaration for _rl_strpbrk - -lib/readline/input.c - - make the timeout in rl_gather_tyi() be a variable - (_keyboard_input_timeout) rather than a constant - - new function, rl_set_keyboard_input_timeout (int u) to set - _keyboard_input_timeout. The argument is in microseconds; returns - the old value of _keyboard_input_timeout - - _rl_input_available uses _keyboard_input_timeout also - -lib/readline/readline.h - - extern declaration for rl_set_keyboard_input_timeout - -lib/readline/doc/rltech.texinfo - - documented rl_variable_bind(), rl_macro_bind(), rl_macro_dumper(), - rl_variable_dumper(), rl_push_macro_input(), rl_show_char() - - 2/20 - ---- -findcmd.c - - new function, executable_or_directory(name), returns 1 if NAME is - an executable file or a directory - -findcmd.h - - extern declaration for executable_or_directory() - -bashline.c - - call executable_or_directory() from command_word_completion_function, - which requires a single stat(2), instead of executable_file() and - is_directory(), each of which requires a stat(2) - - 2/21 - ---- -execute_cmd.c - - changed execute_builtin to handle `return' with a preceding variable - assignment list specially when in POSIX mode. POSIX says that the - variable assignments should persist after the builtin returns, since - `return' is a special builtin. Since `return' does a longjmp and - doesn't go through the normal cleanup path, we need to do special - things - -variables.c - - new function, merge_function_env(), merges the function_env into - the shell_variables table - -variables.h - - extern declaration for merge_function_env() - -execute_cmd.c - - changed execute_function to merge any variable assignments preceding - the function call into shell_variables if the shell is running in - POSIX mode - -subst.c - - changed parameter_brace_expand_error to do tilde expansion on the - rhs of the expansion, if it's not null - - changed command_substitute so that the subshell begun to execute - the command substitution inherits the setting of the `-e' option - when in POSIX mode - -builtins/break.def - - changed check_loop_level to not print a complaining message when - the shell is running in POSIX mode, even if BREAK_COMPLAINS is - defined. This affects `break' and `continue' - - changed `break' and `continue' to return success even if the shell - is not executing a loop, as POSIX specifies - -builtins/set.def - - changed reset_shell_options() to not clear posixly_correct, so - subshells spawned to execute shell scripts without a leading `#!' - inherit posix mode from their parent shell - -variables.c - - changed make_new_variable to create the shell_variables hash table - if it hasn't been done yet. This is needed because bind_variable - may be called before initialize_shell_variables (e.g., when - `bash -o posix' calls bind_variable("POSIXLY_CORRECT", "y") from - parse_shell_options -> set_minus_o_option -> set_posix_mode - This makes `bash --posix' and `bash -o posix' equivalent, as they - should always have been - - changed maybe_make_export_env to merge the contents of `builtin_env' - into export_env after function_env and before temporary_env. This - fixes the problems with variable assignments preceding `eval' or - `source' not making it into the environment passed to executed disk - commands (var=20 eval printenv var) - -doc/bashref.texi - - noted that variable assignments preceding shell function calls - persist in the shell environment after the function returns when - the shell is running in POSIX mode - - noted that when the shell is running in POSIX mode, subshells - spawned to execute command substitutions inherit the value of - the `-e' option from the parent shell - - 2/26 - ---- -doc/bashref.texi - - augmented description of bash non-posix behavior in posix mode - with information from running the vsc-lite test suite - - 2/28 - ---- -general.c - - since POSIX.2 says that aliases should be expanded even in - non-interactive shells, enable alias expansion in - posix_initialize() when posix mode is enabled, and set it to the - value of interactive_shell if posix mode is disabled - -shell.c - - before running the startup scripts, set expand_aliases to - posixly_correct, since we don't want alias expansion in startup - files unless we've been given the --posix invocation option - -doc/bashref.texi - - added item in BASH Posix Mode section noting that alias expansion - is always enabled when in posix mode - -Makefile.in - - changed release level to `beta2' - - 3/1 - --- -jobs.c - - expanded retcode_name_buffer to 64 - - changed printable_job_status to conform to posix.2 for text of - stopped job status: `Stopped(SIGTSTP)' or `Stopped(SIGSTOP)' - -doc/bashref.texi - - Noted above change in posix mode section - - 3/5 - --- -lib/readline/bind.c - - changed rl_get_keymap_by_name to work case-insensitively - - 3/6 - --- -doc/readline.{0,3,ps} - - removed from distribution; moved to readline distribution - -lib/readline/doc/history.3 - - man page for history library; neither built nor installed - (part of the standalone readline distribution) - -lib/readline/histfile.c - - changed history_truncate_file to return 0 on success, errno - on failure - - changed history_do_write to return errno on a write error. This - affects write_history and append_history - -lib/readline/history.c - - max_input_history is now history_max_entries; the old variable is - maintained for backwards compatibility - -lib/readline/histexpand.c - - the list of delimiters that separate words for history_tokenize - is now a variable: history_word_delimiters; default value is as - before - - changed history_expand to return 0 immediately if its second - argument is NULL - -bashline.c - - changed to use history_max_entries - -lib/readline/history.h - - extern declaration for history_max_entries - - extern declaration for history_word_delimiters - - 3/8 - --- -test.c - - changed unary_operator() to return FALSE for non-numeric arguments - to `-t' - - 3/9 - --- -[bash-2.05-beta2 released] - - 3/12 - ---- -lib/readline/doc/rltech.texinfo - - documented rl_set_paren_blink_timeout() - - moved the example function to its own info node - -lib/readline/{hstech.texinfo,history.3} - - `$' is not in the default value of history_word_delimiters - - 3/13 - ---- -bashline.c - - in maybe_add_history, if the tests for HISTCONTROL succeed, but - the HISTIGNORE check fails, set first_line_saved to 0 - - 3/15 - ---- - -lib/glob/fnmatch.c - - fixed a bug in patscan that caused `[' to be treated as special - even inside a nested bracket expression. It's supposed to lose - it's special handling inside [] - - fixed a bug in patscan that caused `]' to end an embedded bracket - expression even if it was the first character after the `[' (or - a leading `!' or `^') - - 3/22 - ---- -execute_cmd.c - - made a small change to shell_execve to report a more user-friendly - error if execve(2) fails because of a `#! interpreter' error with - `interpreter' - - in shell_execve, if HAVE_HASH_BANG_EXEC is not defined, make sure - the file length is > 2 characters before attempting to execute an - interpreter - - 3/26 - ---- -jobs.c, nojobs.c - - give_terminal_to now takes a second argument, FORCE. If that - second argument is non-zero, give the terminal away no matter - what job_control is set to - -jobs.h - - changed extern declaration of give_terminal_to - -{jobs,sig,subst}.c,parse.y - - changed all calls to give_terminal_to to add a second argument - of 0 - -jobs.c - - changed second argument of call to give_terminal_to in - end_job_control to 1, to force this even if job_control is 0. - This fixes the problem of `exec other-job-control-shell' in a - startup file hanging, since run_startup_files sets job_control to 0 - -subst.c - - fixed test of subshell_environment in command_substitute to test the - bit SUBSHELL_ASYNC rather than test equality, since it's now a - bitmask - - 3/27 - ---- -shell.c - - changed posix initialization calls to set POSIXLY_CORRECT=y and - then call sv_strict_posix, so $SHELLOPTS includes `posix' and - POSIXLY_CORRECT is set, for both the posix command line options - and when act_like_sh is non-zero - -redir.c - - the `>& filename' redirection now works in posix mode, redirecting - stdout and stderr, since POSIX.2 leaves it unspecified - -doc/bashref.texi - - removed item about `>& filename' from Bash POSIX Mode section - -parse.y - - fixed a problem in decode_prompt_string with `\W' not printing - anything if PWD == "//" - -lib/readline/input.c - - in rl_read_key, after calling (*rl_event_hook), check for rl_done - being set, and return '\n' if it is - -Makefile.in - - changed RELSTATUS to `release' - - 3/28 - ---- -support/bashbug.sh - - replace use of $(...) with `...` for the benefit of old versions - of sh - -builtins/set.def - - changed print_all_shell_variables to not print shell function names - and definitions when in posix mode - -doc/bashref.texi - - noted change in `set' behavior in posix mode section - - 4/2 - --- -lib/readline/readline.c - - changed default value of RL_LIBRARY_VERSION to `4.2' - - 4/5 - --- -[bash-2.05-release frozen] - - 4/6 - --- -bashline.c - - fix to vi_edit_and_execute_command to keep it from adding an - empty line to the history and not resetting current_command_line_count, - which resulted in each command re-run with `v' having a `;' appended - diff --git a/CWRU/old-changelogs/CWRU.chlog.v13 b/CWRU/old-changelogs/CWRU.chlog.v13 deleted file mode 100644 index 565b0cb3d..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v13 +++ /dev/null @@ -1,9648 +0,0 @@ - 4/9/2001 - -------- -[bash-2.05 released] - - 4/10 - ---- -redir.c - - check return value of fclose() in write_here_document() for error - returns; don't just rely on fwrite() failing - -support/bashbug.sh - - set TMPDIR to /tmp if it's null or unset - - use $TMPDIR in the TEMP tempfile name template - - fixed the call to `mktemp', if it exists, to make it more portable - -jobs.c - - if WCONTINUED is not defined, define it to 0 and add a define for - WIFCONTINUED(wstatus) which expands to 0 - - add WCONTINUED to the flags passed to waitpid(2) in waitchld() - - don't increment children_exited if waitpid's status is WIFCONTINUED, - since we don't want to call a SIGCHLD trap handler in this case - - in waitchld(), we set child->running to 1 if WIFCONTINUED(status) - is non-zero - - make sure pretty_print_job doesn't check for the core dump bit if - the process has been continued; it's only valid if the job is dead - - in set_job_status_and_cleanup, set the job to JRUNNING if job_state - is non-zero and the job was previously marked as JSTOPPED - -configure.in - - add -DBROKEN_DIRENT_D_INO to interix LOCAL_CFLAGS - -lib/glob/glob.c - - if BROKEN_DIRENT_D_INO is defined, define REAL_DIR_ENTRY to 1 - -jobs.c - - in kill_pid, we only need to block and unblock SIGCHLD if the - `group' argument is non-zero, since otherwise we just call `kill' - on the pid argument - -version.c - - update copyright date to 2001 - -bashline.c - - prog_complete_return needs to take a `const char *' as its first - argument - - history_completion_generator needs to take a `const char *' as - its first argument, and `text' needs to be a `const char *' - - 4/11 - ---- -redir.c - - fixed a weird typo in redir_special_open, case RF_DEVFD, added - call to all_digits before call to legal_number - - fixed do_redirection_internal to call legal_number instead of atol(3) - when translating r_duplicating_{in,out}put_word, so it handles - overflow better - - produce an error message in redirection_error for out-of-range - file descriptors - - change allocation strategy in redirection_error so we don't have to - malloc scratch memory if redirection_expand() fails - -jobs.h - - added defines for `running' member of a struct process - -general.c - - fix legal_number to return 0 when strtol(3) reports overflow or - underflow - -parse.y - - changed read_token_word to call legal_number instead of atoi(3) - -input.c - - return -1/EBADF from close_buffered_fd if fd is < 0 - -command.h - - fixed bogus comment about IS_DESCRIPTOR in description of the - REDIRECTEE struct - -print_cmd.c - - change cprintf's 'd' modifier code to display negative numbers as - an out-of-range value. We can do this only because the only use - of %d is to output file descriptor numbers in redirections - -support/mksignames.c - - need to include config.h to get a possible value for - UNUSABLE_RT_SIGNALS - - 4/16 - ---- -lib/readline/doc/rluser.texinfo - - corrected a small error in one description of M-DEL - - 4/17 - ---- -stringlib.c - - need to initialize `ind' before calls to RESIZE_MALLOCED_BUFFER - in strcreplace() - -support/bashversion.c - - new file, prints bash version information - -Makefile.in - - rules for building bashversion and linking it to version.o - - 4/24 - ---- -conftypes.h - - new file with HOSTTYPE, OSTYPE, MACHTYPE, etc. defines from - variables.h - -variables.h, version.c - - include conftypes.h - -patchlevel.h - - new file, contains define for PATCHLEVEL. Doing away with the old - scheme of having the information in configure.in - -version.c - - include patchlevel.h - -Makefile.in - - run bashversion -p to find patch level rather than have configure - substitute in a value - - pass -S ${top_srcdir} to support/mkversion.sh - -support/mkversion.sh - - don't put PATCHLEVEL define into version.h, but accept and ignore - a -p option - - take a new -S srcdir option - - find the patch level by parsing it out of patchlevel.h - -configure.in - - hard-code BASHVERS assignment instead of reading it from a file - - remove BASHPATCH; don't substitute it - -_distribution,_patchlevel - - removed - - 4/26 - ---- -shell.c - - call init_noninteractive() in open_shell_script if forced_interactive - is non-zero (the shell was started with -i) and fd_is_tty is 0 - (the script file is a real file, not something like /dev/stdin), - since it wasn't done earlier - -builtins/printf.def - - change for POSIX.2 compliance when conversion errors are encountered - when processing %d, %u, and floating point conversion operators - (print a warning message, return the value accumulated at the time - of the error -- which is always 0 -- and exit with a non-zero status) - -command.h - - added CMD_COMMAND_BUILTIN for use by the `command' builtin and the - code in execute_cmd.c - -builtins/command.def - - add CMD_COMMAND_BUILTIN to the created command's flags - - 5/1 - --- -configure.in - - add call to AC_C_CONST to test `const' compiler behavior - - add call to AC_C_INLINE to test `inline' compiler behavior - - add call to AC_C_STRINGIZE to test cpp #x stringizing operator - -config.h.in - - add `#undef const' for configure to substitute - - add `#undef inline' for configure to substitute - - add `#undef HAVE_STRINGIZE' for configure to substitute - -include/stdc.h - - remove code that defines or undefines `const' and `inline' - - change the __STRING macro to be defined depending on the value - of HAVE_STRINGIZE - -lib/malloc/malloc.c - - change the __STRING macro to be defined depending on the value - of HAVE_STRINGIZE - -lib/readline/{readline,rlprivate}.h - - moved rl_get_termcap to readline.h, making it a public function - -lib/readline/readline.h - - new #define, RL_READLINE_VERSION, hex-encoded library version - number, currently set to 0x0402 - - new public int variable, rl_readline_version - -lib/readline/readline.c - - #define RL_READLINE_VERSION if it is not already defined (which it - should be in readline.h) - - initialize rl_readline_version to RL_READLINE_VERSION - -lib/readline/doc/rltech.texinfo - - documented rl_get_termcap - - documented rl_readline_version - -jobs.c - - job_exit_status should return an int, not a WAIT (undetected - before because on most POSIX-like systems a WAIT is really an int) - -builtins/evalfile.c - - added FEVAL_REGFILE (file must be a regular file) to accepted - _evalfile flags - - fc_execute_file() adds FEVAL_REGFILE to _evalfile flags. This - means that startup files and files read with `.' no longer need - to be regular files - - 5/2 - --- - -lib/termcap/Makefile.in - - fix target for installed termcap library (normally unused) - -lib/tilde/Makefile.in - - fix install target to install in $(libdir) (normally unused) - -Makefile.in - - don't make $(man3dir) since there's nothing installed there - -Makefile.in,doc/Makefile.in - - change `man1ext' to `.1', `man3ext' to `.3' - - change appropriate install targets to use new values of man[13]ext - - use `test ...' instead of `[...]' - - add support for DESTDIR root installation prefix, for package - building (installdirs, install, install-strip, uninstall targets) - -builtins/common.c - - new function int get_exitstat(WORD_LIST *list) returns an eight-bit - exit status value for use in return, exit, logout builtins - -builtins/common.h - - extern declaration for get_exitstat() - -builtins/{exit,return}.def - - call get_exitstat where appropriate - -builtins/printf.def - - add support for "'" flag character as posix 1003.2-200x d6 says - - fix core dump when user-supplied field width or precision is 0 - - fix to printstr() to handle zero-length precision with `%b' format - specifier (printf '%.0b-%.0s\n' foo bar) - - fix to printstr() to treat a negative field width as a positive - field width with left-justification - - fix to mklong to avoid static buffers, which can always be overrun - by someone sufficiently motivated - -bashline.c - - change var in add_host_name to type `size_t' for passing to xrealloc - - 5/3 - --- -execute_cmd.c - - change restore_signal_mask to accept a sigset_t *, since a sigset_t - may not fit into a pointer, change call - -unwind_prot.c - - use a union UWP in restore_variable when restoring a variable whose - size is the same as sizeof(int), the reverse of the method used to - store it in unwind_protect_int - -builtins/printf.def - - use a #define LENMODS containing the length modifiers instead of - testing against each possible modifier character, save any mod - character found - - add support for ISO C99 length specifiers `j', `t', and `z' - - if `L' modifier is supplied with a floating point conversion char, - pass a `long double' to printf if HAVE_LONG_DOUBLE is defined - -configure.in,config.h.in - - call AC_C_LONG_DOUBLE to check for `long double'; define - HAVE_LONG_DOUBLE if supported - -bashline.c - - fix an inadvertantly-unclosed comment in attempt_shell_completion - - make set_saved_history return a value - - make dynamic_complete_history return a useful value - -{make_cmd,execute_cmd,shell,subst,trap,variables,input,unwind_prot,test, -pcomplete}.c - - removed some declared-but-unused variables - -builtins/{cd,enable,fc,set,setattr,type,umask,printf,complete}.def - - removed some declared-but-unused variables - -lib/sh/{zread,netopen}.c - - removed some declared-but-unused variables - -execute_cmd.c - - in execute_arith_command, use a long variable to hold the result - of evalexp(), since that's what it returns - -builtins/evalstring.c - - make cat_file return -1 on a read or write error - -lib/sh/stringlib.c - - make merge_stringlists() return the right value - - 5/7 - --- -pcomplete.c - - remove typo that caused empty declaration (;;) - -parse.y - - fix yyerror() to accept a single string argument; fix callers - -trap.c - - cast pointer to long instead of int when printing message with - internal_warning() in run_pending_traps() - -subst.c - - fix process_substitute to handle stdin being closed - -test.c - - change `while' to `if' in and() and or(), since the loop isn't - actually performed -- there's an unconditional `return' in the - loop body - - check for integer overflow of arguments to `-t' - -lib/sh/netopen.c - - change _getserv() to reject negative port/service numbers - -expr.c - - fix strlong() to not convert the base specification from long to - int before checking for overflow, since truncation on machines - where sizeof(int) != sizeof(long) may mask errors - -builtins/{jobs,kill,wait}.def - - use legal_number instead of atoi when converting strings to pid_t; - check for numeric overflow - -input.c - - fix for cygwin in b_fill_buffer -- off-by-one error when checking - buffer for \r\n termination - -general.h - - new #define INT_STRLEN_BOUND(t), computes max length of string - representing integer value of type T, possibly including a sign - character - - include if it's present - -{execute_cmd,findcmd,test}.c - - don't include , since general.h does it now - -{execute_cmd,lib/sh/itos,pcomplete,print_cmd,subst,variables}.c - - use INT_STRLEN_BOUND instead of static array sizes when converting - various strings to integer values - -shell.h - - struct fd_bitmap now uses an `int' size, since it's bounded by - the number of file descriptors, which must fit into an `int' - -execute_cmd.c - - FD_BITMAP_DEFAULT_SIZE is now 32, not 32L - - new_fd_bitmap takes an `int' size parameter, not a `long' - -execute_cmd.h - - change prototype for new_fd_bitmap() - -test.c - - fix test_stat to check for overflow when parsing the integer file - descriptor number; return ENOENT instead of EBADF for files that - are not open - -hashlib.c - - don't discard the upper 32 bits of the random value, if present - -lib/readline/shell.c - - use the same INT_STRLEN_BOUND mechanism to decide how much space to - allocated in sh_set_lines_and_columns - - 5/8 - --- -aclocal.m4 - - add check for libtinfo (termcap-specific portion of ncurses-5.2) to - BASH_CHECK_LIB_TERMCAP - - new macro, RL_LIB_READLINE_VERSION, checks version of installed - readline library and (optionally) writes version #defines to - config.h. Bash doesn't use the version defines - -configure.in - - call RL_LIB_READLINE_VERSION instead of support/rlvers.sh - -execute_cmd.c - - fix execute_shell_script and the WHITECHAR and STRINGCHAR macros - to check array bounds before indexing into the sample string - -unwind_prot.[ch] - - import new versions submitted by Paul Eggert - with a couple of changes for backwards compatibility, so the rest - of the source doesn't need to be changed yet - -jobs.c - - use unwind_protect_var on last_made_pid in run_sigchld_trap - -builtins/bind.def - - use unwind_protect_var on rl_outstream - -general.c - - rework print_rlimtype to use INT_STRLEN_BOUND and handle the - most negative number correctly - -expr.c - - `tokval' should have been a `long', since all arithmetic is done - as longs - -builtins/history.def - - consolidate tests for valid history position in one block to - avoid duplicate code and strings - -builtins/ulimit.def - - fix check for overflow when setting limit to work when int is 32 - bits and RLIMTYPE is 64 - -lib/sh/tmpfile.c - - don't truncate the result of time(3) to int; just use time_t, - since it's being assigned to an `unsigned long' - -mailcheck.c - - use legal_number instead of atoi in time_to_check_mail() to catch - more numeric errors; consolidate error checking in one block - - last_time_mail_checked should be a time_t - - 5/9 - --- -builtins/set.def - - recognize `set [-+]o nolog' if HISTORY is defined - -bashline.c - - new variable `dont_save_function_defs', set by `set -o nolog'; - currently ignored - -command.h - - the `dest' member of a REDIRECTEE is now an `int' - -parse.y,redir.c - - changed uses of `redir.test' (where redir is a REDIRECTEE) since - it's now an int - -lib/readline/rlstdc.h - - don't mess around with `const', rely on configure to supply a - proper definition if the compiler doesn't support it - -lib/tilde/tilde.h - - include if HAVE_CONFIG_H is defined - - don't mess around with `const', rely on configure - -builtins/shopt.def - - new read-only `shopt' option, login_shell, non-zero if shell is a - login shell (as decided by shell.c) - - new function set_login_shell(), sets shopt private value of - login_shell - -builtins/common.h - - new extern declaration for set_login_shell - -shell.c - - call set_login_shell after setting value of login_shell (in - main() and set_shell_name()) - -parse.y - - added new `\A' prompt string escape sequence: time in 24-hour - HH:MM format - -configure.in, config.h.in - - check for , define HAVE_GRP_H if found - -builtins/complete.def - - add new `-A group/-g' option to complete group names - -pcomplete.h - - new define for CA_GROUP, used with group name completion - -pcomplete.c - - add code to support CA_GROUP group name completion - -bashline.c - - new function, bash_groupname_completion_function(), supports - programmable completion of group names - -bashline.h - - extern declaration for bash_groupname_completion_function - -lib/readline/bind.c - - new inputrc variable, `match-hidden-files', controls completion - matching files beginning with a `.' (on Unix) - -lib/readline/complete.c - - new variable, _rl_match_hidden_files, mirrors `match-hidden-files' - inputrc variable - -lib/readline/rlprivate.h - - extern declaration for _rl_match_hidden_files - -builtins/hash.def - - new `-t' option to list hash values for each filename argument - -builtins/read.def - - alarm(3) takes an `unsigned int' argument, not int - - check for arithmetic overflow with -t and -n options - -input.c - - check for read error before doing \r\n translation on cygwin in - b_fill_buffer - - reset bp->b_used to 0 instead of leaving it at -1 on read error - in b_fill_buffer - -builtins/shopt.def - - new functions, shopt_setopt(name, mode) and - shopt_listopt(name, mode) to give the rest of the shell an easy - interface - -builtins/common.h - - extern declarations for shopt_setopt and shopt_listopt - -shell.c - - new invocation options -O and +O, to list or set/unset shopt - options like +o/-o sets and unsets `set -o' options - -doc/{bash.1,bashref.texi} - - document `set -o nolog' - - document `login_shell' shopt option - - document new `\A' prompt string escape sequence - - document new `-t' option to `hash' - - document new `[+-]O' invocation option - -doc/bashref.texi - - add text to `Invoking Bash' section defining a login shell; text - taken from man page - -doc/bash.1, lib/readline/doc/rluser.texinfo - - documented new complete/compgen `-A group/-g' option - -lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 - - documented new `match-hidden-files' inputrc variable - - 5/10 - ---- -configure.in - - fix AC_CHECK_PROG(ar, ...) - - add AC_CHECK_TYPE for ssize_t - -config.h.in - - new #undef for ssize_t - -lib/sh/zread.c - - int -> ssize_t fixes to mirror modern declarations of read and write - - the `off' variable in zsyncfd should be an off_t since it computes - a file offset - - the local buffer `lbuf' is now char, since it's not nice to pass - unsigned char * to read(2), and the values from it are assigned to - a char anyway - - lind and lused are now size_t, since they index into a buffer - - set lused to 0 on read error - -lib/sh/zwrite.c - - change second argument to type `char *', since ISO C says you have - to pass a `char *' to `write' - -externs.h - - fix extern declarations of zread, zread1, zreadc, and zwrite - - prototype extern declaration of qsort_string_compare - - add extern declaration for history_delimiting_chars() from parse.y - -input.h - - b_used and b_inputp members ofr struct BSTREAM are now size_t - -builtins/evalstring.c - - the number of chars read with zread in cat_file should be assigned - to a variable of type ssize_t - -input.c - - the number of chars read with zread in b_fill_buffer should be - assigned to a variable of type ssize_t - - `localbuf' is now type char[], since POSIX says you shouldn't pass - unsigned char * to read(2) - - in getc_with_restart(), use a variable of type unsigned char to - get a value from the local buffer and return it - - in ungetc_with_restart, explicitly return the character arg passed - to avoid relying on localbuf being unsigned char - -subst.c - - the number of chars read with zread in read_comsub should be - assigned to a variable of type ssize_t - -mksyntax.c - - instead of casting to unsigned char * in addcstr, use a variable - of type unsigned char and let the compiler do the work - -parse.y - - instead of casting to unsigned char * in yy_readline_get, use a - variable of type unsigned char and let the compiler do the work - - ditto for yy_string_get and shell_getc (cast to unsigned char) - -subst.c - - instead of casting to unsigned char when assigning to ifscmap in - expand_word_internal, use a variable of type unsigned char and - let the compiler do the work - -lib/sh/strtrans.c - - instead of casting to unsigned char in ansic_quote, use a variable - of type unsigned char and let the compiler do the work - -builtins/evalstring.c - - remove extern declarations for zwrite and run_trap_cleanup; they're - in externs.h - - prototype cat_file forward declaration - -Makefile.in - - remove -I$(includedir) from INCLUDES and SUBDIR_INCLUDES - -aclocal.m4 - - change RL_LIB_READLINE_VERSION to set RL_PREFIX, RL_LIBDIR, - and RL_INCLUDEDIR to what it used to test the installed readline - library version for use by the caller - - change RL_LIB_READLINE_VERSION to not compute ac_cv_rl_prefix if - the caller has already assigned it a value - - rename _rl_prefix -> ac_cv_rl_prefix, _rl_libdir -> ac_cv_rl_libdir, - _rl_includedir -> ac_cv_rl_includedir - -configure.in - - change testing of whether to use the value of - $opt_with_installed_readline to be != no, to allow the user to - specify a prefix where the installed readline library may be found - - if --with-installed-readline=PREFIX is supplied, set ac_cv_rl_prefix - to PREFIX before calling RL_LIB_READLINE_VERSION - - if --with-installed-readline[=PREFIX] is supplied, don't set - RL_LIBDIR and RL_INCLUDEDIR; let RL_LIB_READLINE_VERSION take care - of it, set RL_INCLUDE=-I${RL_INCLUDEDIR} - - if --with-installed-readline[=PREFIX] is supplied, and we're - linking with the history library, assign $RL_LIBDIR to HIST_LIBDIR - so we use the same version of the installed readline and history - libraries - -Makefile.in, builtins/Makefile.in - - have configure substitute RL_INCLUDEDIR, set RL_INCLUDEDIR variable - -doc/bashref.texi - - updated description of --with-installed-readline configure option - -general.c - - moved QSFUNC typedef here from builtins/common.c - -{alias,bashline,variables,lib/sh/stringvec}.c - - cast fourth argument to qsort to (QSFUNC *) - -alias.c - - prototype forward declaration of qsort_alias_compare - -bashhist.c - - include for extern declaration of glob_pattern_p - - remove extern declaration of history_delimiting_chars; it's now - in externs.h - - prototype forward declarations of histignore_item_func, - maybe_add_history, and bash_add_history - -bracecomp.c - - remove extern declaration for sh_backslash_quote; it's in externs.h - -braces.c - - remove extern declaration for extract_command_subst; it's in subst.h - - prototype forward declarations for expand_amble, array_concat, and - brace_gobbler - -error.c - - prototype extern declaration of give_terminal_to, fix bad call - -{execute_cmd,expr,findcmd,jobs,mailcheck,nojobs,pcomplete,print_cmd,redir, -shell}.c - - prototype all static forward function declarations - -pcomplete.c - - changed some function parameters to `const char *' to avoid discarding - const qualifier - -make_cmd.c - - make_bare_word, make_word_flags, and make_word now take a - `const char *' string argument - -make_cmd.h - - changed extern declarations for make_bare_word and make_word - -print_cmd.c - - cprintf now takes a `const char *' as its first argument, like - xprintf and printf - - the conditional define for xprintf should have been HAVE_VPRINTF, - not HAVE_VFPRINTF - -shell.c - - in isnetconn(), the return value of sizeof() is size_t - -aclocal.m4 - - add inclusion of stddef.h if STDC_HEADERS is defined to 1 in - BASH_CHECK_TYPE - -configure.in - - add a call to BASH_CHECK_TYPE for socklen_t (type of third argument - to getpeername(2)) - - 5/11 - ---- -lib/readline/bind.c - - make `useq' a char array to pass to rl_macro_bind in - rl_parse_and_bind - -lib/readline/{{bind,isearch}.c,rlprivate.h} - - _rl_isearch_terminators is now a char *, not unsigned char * - -{subst,variables,lib/sh/tmpfile}.c - - dollar_dollar_pid is now a `pid_t' instead of `int' - -variables.c - - sbrand() now takes an `unsigned long' to set the seed value - - changed last_random_value to type int, since it's always between - 0 and 32767 - - use strtoul to convert the value in assign_random instead of atoi - - take out casts in any arguments to sbrand() - - take out cast to int in call to inttostr in set_ppid() - -subst.c - - don't cast last_asynchronous_pid when passing to itos() - -{sig,subst}.c - - prototype all static forward function declarations - - 5/14 - ---- -{test,trap,variables}.c - - prototype all static forward function declarations - -variables.c - - free_variable_hash_data() now takes a PTR_T, a `generic pointer' - -builtins/{alias,bind,break,cd,complete,declare,enable,exit,fc,fg_bg,help, -history,jobs,pushd,read,set,trap,umask, - - prototype all static forward function declarations - -builtins/read.def - - reset_eol_delim now takes a `char *' arg, since that's what the - unwind_protect functions pass it, and it ignores its arguments - anyway - -lib/readline/{histsearch,input,kill,rltty,search,vi_mode}.c - - prototype all static forward function declarations - -lib/tilde/tilde.c - - prototype all static forward function declarations - - tilde_find_prefix, tilde_find_suffix, isolate_tilde_prefix, and - glue_prefix_and_suffix now take `const char *' arguments where - appropriate - -configure.in,config.h.in - - check for vsnprintf, define HAVE_VSNPRINTF if found - -lib/readline/display.c - - use vsnprintf() in rl_message if it's available; if we don't, at - least set the last character in msg_buf to 0 to avoid overrun -- - we really can't do anything about overflow at this point. if it's - available, this fixes buffer overflow problems in rl_message - - 5/15 - ---- -lib/readline/histexpand.c - - in get_history_word_specifier, allow any character to terminate - a `:first-' modifier, not just `:' and null. This is what csh - appears to do. This allows things like `!:0- xyzzy' to replace the - last argument with xyzzy - - 5/18 - ---- -configure.in, config.h.in - - check for , define HAVE_STDINT_H if found - - check for intmax_t in , define intmax_t as long if not - found - - 5/21 - ---- -builtins/kill.def - - change to use strerror() for error message when kill(2) fails - -aclocal.m4 - - new macro, BASH_C_LONG_LONG, check for `long long' - -configure.in, config.h.in - - call BASH_C_LONG_LONG, define HAVE_LONG_LONG if found - -lib/sh/snprintf.c - - new file, with implementations of snprintf, vsnprintf, asprintf, - and vasprintf, derived from inetutils version - -Makefile.in, lib/sh/Makefile.in - - add snprintf.c/snprintf.o - -configure.in, config.h.in - - add checks for snprintf, asprintf, vasprintf, with appropriate - cpp defines - -lib/readline/{rldefs,xmalloc}.h, lib/readline/xmalloc.c - - xmalloc and xrealloc now take `size_t' arguments, like their bash - counterparts - -externs.h,lib/sh/itos.c - - inttostr and itos now take `long' arguments - - inttostr takes a `size_t' argument for the buffer size - -{expr,lib/malloc/malloc,variables,general}.c - - fixed calls to itos() by removing casts, etc. - -subst.[ch] - - get_dollar_var_value now takes a long, not an int - - sub_append_number now takes a long, not an int - -subst.c - - in parameter_brace_expand_word, use a long and legal_number to - translate ${N}, to avoid overflow - - in parameter_brace_expand_length, use a long and legal_number to - translate ${#N}, to avoid overflow - - in do_array_element_assignment, array_expand_index, - array_value_internal, use arrayind_t instead of int - - let verify_substring_values take long * arguments for the return - value of evalexp() - - pass long * arguments to verify_substring_values in - parameter_brace_substring - - parameter_brace_expand_length now returns `long' - - parameter_brace_expand now uses a long variable for the return - value of parameter_brace_expand_length - - param_expand now uses a long variable for the return value from - evalexp - - array_length reference now returns an `arrayind_t', since it can - return the num_elements member of an array, which is of type - arrayind_t - -subst.h - - array_expand_index now returns an `arrayind_t' - -array.[ch] - - array_subrange now takes arrayind_t arguments, not `int' - - dup_array_subrange now uses arrayind_t local variable to do - array indexing - - use long to print array indices in print_element - -variables.c - - null_array_assign, assign_dirstack, bind_array_variable - now take arrayind_t arguments as array indices - - assign_array_var_from_word_list, assign_array_var_from_string, - unbind_array_element now use arrayind_t local variables for - array indexing - -variables.h - - change extern declaration of bind_array_variable - -builtins/common.[ch] - - get_numeric_arg now returns a `long', since it usually returns - the value of legal_number() - -builtins/{shift,break}.def - - use long variables for the return value of get_numeric_arg - -builtins/history.def - - convert string argument to int only if it's in range - -builtins/pushd.def - - set_dirstack_element and get_dirstack_element now take `long' - index arguments - - get_dirstack_index now takes a `long' index argument, since it's - passed the converted value from legal_number - -lib/sh/timeval.c - - in print_timeval, don't assume that the number of minutes fits into - an int, since it's just seconds/60. - -lib/sh/clock.c - - ditto for print_clock_t - - 5/22 - ---- -shell.c - - since the -O option settings may possibly be overridden by the - normal shell initialization or posix initialization, save the - invocation options on an alist (with add_shopt_to_alist) and - process them after basic initialization (with run_shopt_alist) - - 5/23 - ---- -trap.h - - new define, BASH_NSIG, all system signals plus special bash traps - -trap.c, builtins/trap.def - - use BASH_NSIG for array bounds and loops where appropriate - -trap.c - - change decode_signal to disallow numeric signal numbers above - NSIG -- this means you can only reference special traps like - DEBUG by name - - new SPECIAL_TRAP(s) macro to test whether s is one of the special - bash traps (currently DEBUG and EXIT) - - change reset_or_restore_signal_handlers so command substitution - doesn't inherit the debug trap (like ksh93), and child processes - don't have to rely on initialize_traps being run to get rid of - any debug trap - -support/mksignames.c - - add extra "ERR" signal name, value NSIG+1, allocate space for it - and write it out in signal_names[] - -trap.h - - new define: ERROR_TRAP == NSIG+1, change BASH_NSIG to NSIG+2 - - extern declarations for set_error_trap, run_error_trap - - new define: TRAP_STRING(s), expands to trap_list[s] if signal S - is trapped and not ignored, NULL otherwise - -trap.c - - add ERROR_TRAP to SPECIAL_TRAPS define - - initialize ERROR_TRAP stuff in initialize_traps - - new function: set_error_trap(command), sets the ERR trap string - - new function: run_error_trap(command), runs the ERR trap string - - set trap string for ERROR_TRAP to NULL in free_trap_strings - - change reset_or_restore_signal_handlers so child processes don't - inherit the ERR trap - - add case to call run_error_trap in maybe_call_trap_handler - -execute_cmd.c - - in execute_command_internal, keep track of ERR trap and call it if - necessary - - use TRAP_STRING to get the value of debug and error traps - - in execute_function, arrange things so the ERR trap is not inherited - by shell functions, and is saved and restored like the DEBUG trap - -doc/{bash.1,bashref.texi} - - documented new ERR trap - -tests/{trap.{tests,right},trap2.sub,trap2a.sub} - - added ERR trap tests - -subst.c - - on machines without /dev/fd, change the named pipe fifo list to a - list of structs containing pathname and proc information - - change unlink_fifo_list to kill the proc in the fifo list with - signal 0 and not remove the fifo if the proc is still alive. This - should fix the problem on those backward systems without /dev/fd - where fifos were removed when a job using process substitution was - suspended - - 5/24 - ---- -examples/loadables/getconf.h - - new file, with basic defines needed to make getconf work minimally - on POSIX systems without the necessary definitions - -examples/loadables/getconf.c - - replacement functions for confstr, sysconf, pathconf for systems - that lack them, providing a minimal posix interface - - heavily augmented getconf, now supports all POSIX.1-200x, - POSIX.2-200x, Solaris 7, AIX 4.2 getconf variables - - 5/29 - ---- -builtins/setattr.def - - make `readonly', `export', and `declare' print `invisible' variables - as just a command and variable name, without a value, when listing - all variables (as POSIX.2-200x d6 requires) - - 5/30 - ---- - -configure.in - - upgraded to autoconf-2.50 on main development machine, so require - autoconf-2.50 in preparation for using some if its new features - - call AC_C_PROTOTYPES - - remove call to AC_EXEEXT, which now does the wrong thing - - changed AC_INIT to new flavor - - added call to AC_CONFIG_SRCDIR - - AC_CONFIG_HEADER -> AC_CONFIG_HEADERS - - AC_RETSIGTYPE -> AC_TYPE_SIGNAL - -configure.in, aclocal.m4, config.h.in - - removed call to BASH_LARGE_FILE_SUPPORT, use AC_SYS_LARGEFILE - standard support, with new macros _FILE_OFFSET_BITS and - _LARGE_FILES - - removed definition of BASH_LARGE_FILE_SUPPORT - -doc/bashref.texi - - document new `--enable-largefile' configure option - -lib/readline/readline.c - - change rl_set_prompt to call rl_expand_prompt unconditionally, so - local_prompt and local_prompt_prefix get set correctly - - 6/6 - --- -lib/readline/complete.c - - don't append `/' or ` ' to a match when completing a symlink that - resolves to a directory, unless the match doesn't add anything - to the word. This means that a tab will complete the word up to - the full name, but not add anything, and a subsequent tab will add - a slash. Change to append_to_match; callers changed - -hashlib.c - - new function, hash_table_nentries (table), returns the number of - items in TABLE - -hashlib.h - - extern declaration for hash_table_nentries - -configure.in - - configure without bash malloc on openbsd; they claim it needs - eight-bit alignment (which the bash malloc provides, but...) - - 7/2 - --- -stringlib.c - - only call RESIZE_MALLOCED_BUFFER from strsub() if the replacement - string length is > 0, avoid possible hangs if replacement is null - -subst.c - - don't include input.h; no longer needed - -configure.in - - remove calls to AC_SYS_RESTARTABLE_SYSCALLS and - BASH_SYS_RESTARTABLE_SYSCALLS; the results are no longer used - -config.h.in - - remove define for HAVE_RESTARTABLE_SYSCALLS - -aclocal.m4 - - removed definition of BASH_SYS_RESTARTABLE_SYSCALLS; no longer used - -execute_cmd.c - - changed select command so `return' no longer terminates the select - command, so it can be used to return from an enclosing function. - This is as ksh (88 and 93) does it - -lib/readline/vi_mode.c - - fix trivial typo in declaration of vi_motion; `t' appears twice; - the second instance should be `T' - - 7/3 - --- -configure.in - - don't add -static to LDFLAGS on Solaris 2.x. This means that the - auxiliary programs will be built as dynamic executables, but that - should do no harm - - 7/5 - --- -lib/glob/fnmatch.c - - fix the code that processes **(pattern) to short-circuit if the - pattern is ill-formed or lacks a trailing `)' -- this fixes the - segfault on **(/*) - -Makefile.in, builtins/Makefile.in - - split CCFLAGS into CCFLAGS_FOR_BUILD and CFLAGS, to aid in - cross-compilation - - build programs that use $(CC_FOR_BUILD) using $(CCFLAGS_FOR_BUILD) - -configure.in, config.h.in - - check for getaddrinfo(3), define HAVE_GETADDRINFO if found - -lib/sh/netopen.c - - implemented a version of _netopen (_netopen6) that uses - getaddrinfo(3) if available, use if HAVE_GETADDRINFO is defined. - old _netopen is _netopen4; _netopen now calls either _netopen6 - or _netopen4 as appropriate - - 7/9 - --- -builtins/exit.def - - don't source ~/.bash_logout if subshell_environment is non-zero - -execute_command.c - - in execute_until_or_while, handle the case where `breaking' is - set in the loop test (e.g., by the job control code when a job - is stopped with SIGTSTP), but the return value from the test is - something that would cause the loop to break. Need to decrement - `breaking' in this case - - 7/10 - ---- -execute_cmd.c - - in execute_in_subshell, make sure a command of type cm_subshell - inherits its `enclosing' command's CMD_IGNORE_RETURN flag - -variables.c - - in maybe_make_export_env, don't allow restricted shells to put - exported functions in the export environment - - 7/11 - ---- -lib/glob/strmatch.h - - renamed old fnmatch.h - - changed guard #ifdef to _STRMATCH_H - - include system if HAVE_LIBC_FNM_EXTMATCH is defined - -lib/glob/strmatch.c - - renamed old fnmatch.c - - include "strmatch.h" - - if HAVE_LIBC_FNM_EXTMATCH is defined, define a dummy version of - strmatch() that just calls fnmatch(3) - -lib/glob/glob.c - - include "strmatch.h" - - fnmatch -> strmatch - -Makefile.in, lib/glob/Makefile.in - - fnmatch -> strmatch - -{bashhist,execute_cmd,pathexp,pcomplete,shell,stringlib,subst,test}.c, -pathexp.h,builtins/help.def - - include - - fnmatch -> strmatch - -execute_cmd.c - - broke the code that parses the interpreter name from a #! line - out from execute_shell_script to a new function, getinterp() - - call getinterp from execute_shell_script - - use return value from getinterp in error message about bad - #! interpreter in shell_execve - - 7/12 - ---- -lib/readline/isearch.c - - the last isearch string is now remembered in a new static variable, - last_isearch_string - - if ^R^R is typed, readline now searches for the remembered isearch - string, if one exists - - 7/24 - ---- -pcomplete.h - - extern declaration for completions_to_stringlist() - - 7/25 - ---- -builtins/complete.def - - make compgen handle -o default option - - make compgen return success only if sl->list_len is non-zero, - indicating that there are items on the list - - 7/31 - ---- -execute_cmd.c - - in execute_connection, force stdin to /dev/null for asynchronous - commands if job control is not active, not just if the shell is - running a shell script (since you can run `set -m' in a script) - -lib/readline/rltty.c - - make sure _rl_tty_restore_signals resets `tty_sigs_disabled' on - successful restoration of the terminal modes - - make sure _rl_tty_disable_signals turns off IXON so that ^S and - ^Q can be read by rl_quoted_insert - - 8/1 - --- -aclocal.m4 - - new check for FNM_EXTMATCH being defined in , as Ullrich - Drepper intends to do for new versions of GNU libc - -config.h.in - - new definition for HAVE_LIBC_FNM_EXTMATCH - -configure.in - - check for fnmatch, but don't define anything in config.h - - call BASH_FUNC_FNMATCH_EXTMATCH to check for FNM_EXTMATCH - - 8/2 - --- -alias.h - - remove bogus extern declaration for xmalloc() - - include "stdc.h" - - add prototype declarations for all extern function declarations - -xmalloc.c,lib/readline/xmalloc.c - - fix xmalloc to return a PTR_T - - fix xrealloc to return a PTR_T and take a PTR_T as first argument - -include/ansi_stdlib.h - - extern declarations for malloc and realloc have them return PTR_T - -xmalloc.h - - new file, with extern declarations for functions in xmalloc.c - -general.h - - removed extern declarations for functions in xmalloc.c - - include xmalloc.h - -Makefile.in,builtins/Makefile.in - - update dependencies to include xmalloc.h - -parse.y,{alias,array,bashline,bracecomp,execute_cmd,findcmd,flags,general, -hashcmd,locale,mailcheck,make_cmd,pathexp,pcomplete,print_cmd,stringlib, -subst,unwind_prot,variables}.c -builtins/{common,evalfile}.c -builtins/{cd,command,enable,exec,printf,read,set}.def -lib/sh/{makepath,netopen,pathphys,setlinebuf,shquote,snprintf,stringlist, -strtrans,tmpfile}.c -lib/readline/{util,terminal,shell,readline,macro,kill,isearch,input, -histfile,histexpand,display,complete,bind}.c - - make sure all calls to xmalloc are cast to the right return value - -siglist.c - - include xmalloc.h - -parse.y,{alias,bashline,bracecomp,expr,make_cmd,nojobs,print_cmd,subst}.c -builtins/{fc,printf,read}.def -lib/sh/snprintf.c, lib/tilde/tilde.c -lib/readline/{bind,display,histexpand,isearch,macro,util,vi_mode}.c - - make sure all calls to xrealloc are cast to the right return value - -lib/sh/{netopen,setlinebuf,shquote,snprintf}.c, lib/tilde/tilde.c - - include xmalloc.h, remove extern declaration of xmalloc - -lib/readline/xmalloc.h - - xmalloc and xrealloc should return PTR_T - -lib/readline/rldefs.h - - don't include an extern declaration for xmalloc - - 8/7 - --- -support/shobj-conf - - fixed up commented-out stanzas for HP's unbundled C compiler on - HP/UX - -support/bashbug.sh - - force the subject to be changed from the default - -lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 - - document that transpose-words swaps the last two words on the line - if point is at the end of the line - - 8/9 - --- -stringlib.c - - fix possible infinite recursion problem with null pattern in - strsub() - -hashlib.c - - new function copy_hash_table to copy a hash table using a caller- - supplied function to copy item data (defaults to savestring()) - -hashlib.h - - new extern declaration for copy_hash_table - -builtins/declare.def - - changes so that declare [-a] var=value assigns `value' to element 0 - of array variable `var' like ksh93 - - change so that declare [-a] var[N]=value assigns `value' to element - N of array variable `var' like ksh93 - - 8/13 - ---- -arrayfunc.c - - new file, for miscellaneous array functions - -arrayfunc.h - - new file, extern declarations for functions in arrayfunc.c - -variables.c - - move convert_var_to_array, bind_array_variable, - assign_array_from_string, assign_array_var_from_word_list, - assign_array_var_from_string, quote_array_assignment_chars, - skipsubscript, unbind_array_element, print_array_assignment - to arrayfunc.c - -shell.h - - include arrayfunc.h after variables.h - -variables.h - - remove above extern function declarations moved to arrayfunc.h - - add extern declaration for var_lookup - -Makefile.in - - add arrayfunc.c, arrayfunc.h in appropriate places - - add arrayfunc.h to dependencies - -subst.c - - move valid_array_reference, array_expand_index, array_variable_part, - array_value_internal, array_value (now global), get_array_value, - do_array_element_assignment to arrayfunc.c - -subst.h - - extern declarations for functions above moved to arrayfunc.h - -arrayfunc.h - - extern declarations for above functions from subst.c - -subst.[ch] - - string_list_dollar_star and string_list_dollar_at are now global - functions - - quote_escapes is now a global function - -subst.c - - maybe_expand_string -> expand_string_if_necessary - - expand_string_to_string -> expand_string_to_string_internal - - new functions: expand_string_to_string and - expand_string_unsplit_to_string, which call - expand_string_to_string_internal with expand_string and - expand_string_unsplit as the FUNC arguments, respectively - -arrayfunc.c - - change array_expand_index to call expand_string_to_string instead - of maybe_expand_string - - 8/14 - ---- -shell.c - - in execute_env_file, call expand_string_unsplit_to_string - -mailcheck.c - - in check_mail, call expand_string_to_string - -variables.c - - in assign_in_env, call expand_string_unsplit_to_string - -arrayfunc.c - - new function, array_variable_name, splits an array reference into - a name (which is returned as a new string) and subscript - - change array_variable_part to just call array_variable_name and - look up the string returned with find_variable - - new function, find_or_make_array_variable (name, flags) which will - look up an array variable and convert a string variable to an - array if necessary. The FLAGS argument, if non-zero, says to - check the readonly and noassign attributes and fail if either is set - -builtins/read.def - - make `read -a aname' honor any readonly status of `aname' - - read -a now calls find_or_make_array_variable with FLAGS value 1 - -arrayfunc.[ch], subst.c, builtins/{declare,read}.def - - do_array_element_assignment -> assign_array_element - - 8/20 - ---- -parse.y - - changed `for' command grammar to allow missing word list after `IN' - token, like latest POSIX drafts require - -lib/sh/tmpfile.c - - in sh_mktmpname(), check for filenum == 0 and init to non-zero number - in this case. it can happen on arithmetic overflow - -support/mkversion.sh - - added `[0-9].[0-9][0-9][a-z]' as an acceptable value for a - distribution to allow for intermediate versions, like 2.05a - -support/config.guess - - removed the addition of the output of `/usr/bin/objformat' when - creating the canonical name on FreeBSD machines, so the canonical - name is once again `freebsd4.2' instead of `freebsdelf4.2' - - 8/22 - ---- -lib/readline/{rlstdc,history,keymaps,readline,rldefs,rlprivate,rlshell, -rltypedefs,xmalloc}.h -lib/readline/{bind,compat,complete,display,funmap,histexpand,histsearch, -input,isearch,kill,nls,parens,readline,rltty,search,shell,signals,vi_mode - - changed __P to PARAMS - -lib/tilde/tilde.[ch] - - changed __P to PARAMS - -{Makefile,configure}.in - - changed the version number to 2.05a - - changed the release status to `alpha1' - - 8/23 - ---- -support/shobj-conf - - support for building shared libraries on Darwin/MacOS X - -siglist.h - - extern declaration for strsignal() to compensate for lack of - a definition in some system include files - -jobs.c - - remove casts from strsignal() calls - -[bash-2.05a-alpha1 frozen] - - 8/27 - ---- -[bash-2.05a-alpha1 released] - - 8/27 - ---- -execute_cmd.c - - fix eval_arith_for_expr to handle the case where the expanded - word list is NULL, returning 0 in this case - -print_cmd.c - - in print_function_def, make sure that func_redirects is assigned - a value before being used - - 8/28 - ---- -alias.c - - include for definition of isalpha() - -bashhist.h - - add prototypes for extern function declarations - -flags.c - - include bashhist.h for extern function declarations - -mksyntax.c - - include if HAVE_UNISTD_H is defined in config.h - -parse.y - - include test.h for extern function declarations - -externs.h - - change extern declaration for setlinebuf to sh_setlinebuf - -stringlib.c - - include for extern function declarations - -variables.h - - add function prototypes for all of the sv_* functions - -builtins/common.h - - add extern declarations for set_shellopts() and parse_shellopts() - from builtins/set.def - -variables.c - - include "hashcmd.h" for extern declaration for flush_hashed_filenames - - include "pathexp.h" for extern declaration for setup_glob_ignore - -lib/malloc/malloc.c - - cast to `long' instead of `int' in memalign for 64-bit machines - -{pcomplete,trap}.c - - changed printf escape sequences used to print pointers to %p - -lib/readline/undo.c - - include "xmalloc.h" for extern function declaration - -input.h - - add function prototypes to extern declarations for getc_with_restart - and ungetc_with_restart - -variables.[ch] - - changed type of `function' member of `struct name_and_function' to - `sv_func_t', which is defined and prototyped in variables.h - - map_over now takes an `sh_var_map_func_t *' - -shell.h - - start of a set of function pointer typedefs like those in - lib/readline/rltypedefs.h - -hashlib.[ch] - - second paramter to flush_hash_table is now an `sh_free_func_t *' - -trap.c - - parameter to reset_or_restore_signal_handlers is now an - `sh_resetsig_func_t *' - -pcomplete.h, pcomplib.c - - function pointer argument to print_all_compspecs is now an - `sh_csprint_func_t *' - - function pointer `list_getter' element of an `ITEMLIST' is now - prototyped with __P((...)) instead of using `Function *' - -jobs.[ch] - - `j_cleanup' member of a JOB is now an `sh_vptrfunc_t *' - -alias.c - - map_over_aliases now takes an `sh_alias_map_func_t *' - - free_alias_data now takes a `PTR_T' - -pathexp.c - - function pointer argument to ignore_globbed_names is now an - `sh_ignore_func_t *' - -bashline.c - - function pointer argument to _ignore_completion_names is now an - `sh_ignore_func_t *' - -pathexp.h,{bashhist,bashline.c - - `item_func' member of a `struct ignorevar' is now an - `sh_iv_item_func_t *' - -builtins/evalfile.c - - `errfunc' is now an `sh_vmsg_func_t *' - -jobs.c - - map_over_job now takes an `sh_job_map_func_t *' as its first argument - -array.[ch] - - function pointer argument to array_walk is now an - `sh_ae_map_func_t *' - -general.c - - tilde_expansion_preexpansion_hook has type `tilde_hook_func_t *', - and so the assignment in tilde_initialize doesn't need a cast - -list.c - - map_over_words now takes an `sh_icpfunc_t *' as its second argument - -input.h - - the `getter' and `ungetter' function pointer members of a - BASH_INPUT are now of types `sh_cget_func_t *' and - `sh_cunget_func_t *' respectively - - init_yy_io now takes an `sh_cget_func_t *' as its first argument and - an `sh_cunget_func_t *' as its second - -parse.y - - init_yy_io now takes an `sh_cget_func_t *' as its first argument and - an `sh_cunget_func_t *' as its second - - initialize_bash_input casts bash_input.getter and bash_input.ungetter - appropriately - -builtins/mkbuiltins.c - - make the extern function definitions written to builtext.h have - prototypes with __P((...)) - - include "stdc.h" - - change Function to mk_handler_func_t - - fixed comment_handler to take the right number of args - - prototyped all the handler functions with __P((...)) - -builtins.h - - the `function' member of a struct builtin is now of type - `sh_builtin_func_t *' - -builtins/common.[ch] - - last_shell_builtin, this_shell_builtin are now of type - `sh_builtin_func_t *' - - find_shell_builtin, builtin_address, find_special_builtin now return - `sh_builtin_func_t *' - -builtins/exit.def, {execute_cmd,jobs,nojobs,variables}.c, parse.y - - changed all declarations of last_shell_builtin and this_shell_builtin - -execute_cmd.c - - execute_builtin, execute_builtin_or_function, - execute_subshell_builtin_or_function now take an - `sh_builtin_func_t *' instead of a `Function *' for argument - - changed appropriate variables from `Function *' to - `sh_builtin_func_t *' - -builtins/{bind,builtin,enable,read,setattr}.def - - replaced uses of `Function *' in variable declarations with - appropriate types (sh_builtin_func_t * or rl_command_func_t *) - -builtins/set.def - - set_func and get_func members of binary_o_options are now of types - `setopt_set_func_t *' and `setopt_get_func_t *', which are - prototyped - -builtins/shopt.def - - set_func member of shopt_vars is now of type `shopt_set_func_t *' - -bashline.c - - enable_hostname_completion now returns `int' (the old value of - perform_hostname_completion) - -[The only use of Function and VFunction now is for unwind-protects] - - 9/4 - --- -lib/sh/getcwd.c - - use const define from config.h rather than `CONST' - - use PTR_T define from xmalloc.h rather than `PTR' - - include xmalloc.h for PTR_T - - remove PATH_MAX define, rely on value from maxpath.h - -{general,mailcheck}.c, lib/sh/{pathcanon,pathphys}.c - - don't include maxpath.h directly; it's already included by shell.h - -lib/sh/mailstat.c - - new `mailstat()' implementation, to stat a mailbox file for - mail checking. handles maildir-style mail directories with one - file per message and creates a dummy stat struct from them - -lib/sh/Makefile.in - - add mailstat.c and mailstat.o in the appropriate places - -lib/malloc/malloc.c - - augmented implementation with wrapper functions that pass in file - and line number information from cpp. currently unused, but a - placeholder for future debugging and use tracking - -lib/malloc/shmalloc.h - - new file, extern declarations for allocation wrapper functions for - use by the shell (and others, I guess) - -xmalloc.[ch] - - wrapper functions for xmalloc, xfree, xrealloc (sh_ prefixed) that - pass cpp line number information through to the malloc functions, - if USING_BASH_MALLOC is defined - - 9/5 - --- -lib/malloc/gmalloc.c - - removed; no longer part of distribution - -lib/malloc/Makefile.in - - removed references to gmalloc.[co] - -configure.in, doc/bashref.texi - - removed references to `--with-glibc-malloc' configure option - -{configure,Makefile}.in - - changed the way bash malloc is configured into the Makefile, making - it more like how readline is configured. If the bash malloc is - not configured in, nothing in lib/malloc will be built - - 9/6 - --- -lib/malloc/imalloc.h - - new file, some internal malloc definitions - -lib/malloc/mstats.h - - new file, definitions for malloc statistics structs and functions - -lib/malloc/trace.c - - new file, malloc tracing functions (currently just print messages - to stderr), code is #ifdef MALLOC_TRACE - -lib/malloc/stats.c - - new file, moved malloc stats code from malloc.c to here - -lib/malloc/malloc.c - - moved some definitions to imalloc.h - - moved stats code to stats.c - - malloc tracing calls added to internal_{malloc,realloc,free}, all - #ifdef MALLOC_TRACE - -lib/malloc/Makefile.in, Makefile.in - - added {imalloc,mstats}.h, {trace,stats}.c - -parse.y - - changed decode_prompt_string to save and restore $? - (last_command_exit_value) around calls to expand_prompt_string(), - so command substitutions in PS1, etc. don't change $? - -{array,subst}.c - - a couple more arrayind_t fixes from Paul Eggert - -configure.in - - remove redundant check for wait3(2) - -redir.h - - fixed a typo (stdin_redirs -> stdin_redirects) - - 9/10 - ---- -execute_cmd.c - - remove check for \n and \r from WHITESPACE macro, since those - chars are not whitespace as returned by the whitespace(c) macro - - getinterp now takes a `char *' as first arg, not unsigned char * - - execute_shell_script now takes a `char *' as first arg, not - unsigned char * - - fix typo in forward declaration for `initialize_subshell' - -general.[ch] - - check_binary_file now takes a (char *) argument, not unsigned char * - - pass unsigned char to isspace and isprint because of ISO C fuckup - - bash_tilde_expand now takes a `const char *' as its argument - -builtins/evalfile.c, shell.c - - buffer passed to check_binary_file is char, not unsigned char - -parse.y - - fix extern declaration for yyerror() - - yyerror now takes a `const char *' as first arg - -{error,jobs}.c - - fixes to printf-style functions to handle pids wider than an int - -lib/readline/{isearch,vi_mode}.c - - fix call to rl_message in rl_display_search (remove extra arg) - -variables.c - - fix missing argument to builtin_error in make_local_variable - -builtins/getopts.def - - since getopts takes no options, change while loop calling - internal_getopts to a simple `if' check - -builtins/printf.def - - since printf takes no options, change while loop calling - internal_getopts to a simple `if' check - -lib/readline/bind.c - - remove _SET_BELL macro, expand code inline - -lib/readline/input.c - - change _rl_input_available to use either select or FIONREAD, - but not both - -lib/readline/readline.c - - fix rl_digit_loop to remove unreachable code at end of loop - -{bashhist,bashline,expr,jobs,redir,shell}.c, builtins/fc.def, lib/sh/snprintf.c - - bracket unused functions with #ifdef INCLUDE_UNUSED/#endif - - remove some unused variables - -execute_cmd.c - - remove #ifdef'd code that allowed `return' to terminate a select - statement - -expr.c - - remove some extraneous tests from strlong() - -array.h - - arrayind_t is now a long, since shell arithmetic is performed as - longs - - remove second declaration of new_array_element - -builtins/printf.def - - in mklong, xrealloc cannot return NULL, so don't check for it - - remove some #if 0 code - - fix core dump triggered by a format specification with more than - one `*' - - remove `foundmod', since its value mirrors `modchar != 0' - - include "common.h" for builtin_{error,usage} declarations - -Makefile.in,builtins/Makefile.in - - updated some dependencies due to new include files - -pcomplete.c - - include "execute_cmd.h" for declaration of execute_shell_function - -arrayfunc.c - - include for printf - - include "builtins/common.h" for builtin_error declaration - -builtins/evalstring.c - - include "../trap.h" for run_trap_cleanup declaration - -builtins/help.def - - include "common.h" instead of locally declaring builtin_error - and builtin_usage - -error.h - - add extern declaration for itrace() - - add prototype to extern declaration of get_name_for_error - - file_error now takes a `const char *' as first argument - -externs.h - - added prototype for sh_setlinebuf declaration, bracketed with - NEED_SH_SETLINEBUF_DECL so we don't need stdio.h everywhere - - add extern declaration for parse.y:return_EOF() - -shell.c - - add NEED_SH_SETLINEBUF_DECL before including shell.h - -lib/readline/callback.c - - include or "ansi_stdlib.h" for abort declaration - -quit.h - - remove declaration of throw_to_top_level - -subst.c - - remove unused extern declaration for getopts_reset - -lib/sh/netopen.c - - include for legal_number, etc. - - add prototype for inet_aton extern declaration - -lib/sh/clock.c - - include for __P declaration - - add extern declaration for get_clk_tck - -support/mkversion.sh - - changed so that extern function declarations for functions in - version.c (moved from externs.h) are in the generated version.h - -shell.h - - include version.h - -version.c - - various `char *' version variables are now `const char *' - -general.h - - add prototype for same_file, bracketed with _POSIXSTAT_H - #ifdef, since that's what include/posixstat.h defines - -builtins/common.[ch] - - _evalfile, maybe_execute_file, source_file, and fc_execute_file - now take a `const char *' as their first argument - -eval.c - - removed extern declaration of yyparse; it's in externs.h - -parse.y - - added prototypes to static forward function declarations - - changed local `all_digits' variable in read_token_word () to - all_digit_token to avoid clash with all_digits() function in - general.c - -{bashhist,copy_cmd,make_cmd,hashlib,mailcheck}.c - - added prototypes for static function declarations - -shell.h - - add extern declarations for interactive, interactive_shell, - changed c files with extern declarations - -pcomplete.c - - changed it_init_aliases to avoid shadowing global variable - `aliases' - -bashline.c,pathexp.c,general.h - - sh_ignore_func_t is now a pointer to a function taking a - `const char *'; users changed - -configure.in - - test for - -config.h.in - - add #undef HAVE_STRINGS_H - -bashansi.h - - change like recommended in autoconf manual - - 9/11 - ---- -[a date which will live in infamy. prayers for the victims.] - -execute_cmd.c - - don't use an absolute index into abuf in mkfmt, use - sizeof(abuf) to compute last index - -builtins/common.c - - fix read_octal to do a better job of detecting overflow while - iterating through the string - -builtins/umask.def - - change octal-print mode to print 4 digits, like other shells - - cast umask to unsigned long to avoid problems on systems where - it's wider than an int (POSIX doesn't guarantee that mode_t is - no wider than an int, but real-world systems use int) - -builtins/printf.def - - mklong can never return NULL (it uses xrealloc), so the mainline - doesn't need to check for NULL returns - - new function, getldouble (long double *), to get long doubles - - mklong now takes a `char *' as its second argument, the modifier(s) - to use - - changed use of `modchar' to handle more than a single modifier - character - - changed to handle `long double' and `L' formats better, rather - than discarding long double information - - since printf now follows the POSIX.2 rules for conversion errors, - we can dispense with the status returns from the get* functions - - make the get* functions as similar in structure as possible, - removing type casts, etc. - -lib/sh/timeval.c,execute_cmd.c - - change some instances of `long' to `time_t', for systems where - a time_t is bigger than a long - -jobs.c - - include "posixtime.h" instead of - -config.h.in - - add defines for HAVE_DECL_CONFSTR, HAVE_DECL_STRTOLD, - HAVE_DECL_SBRK, HAVE_DECL_PRINTF - - remove defines for SBRK_DECLARED and PRINTF_DECLARED - - add _GNU_SOURCE define - -configure.in - - add AC_CHECK_DECLS for strtold, confstr, sbrk, printf - - remove call to BASH_FUNC_SBRK_DECLARED - - remove call to BASH_FUNC_PRINTF - -xmalloc.c, lib/malloc/malloc.c - - change check of SBRK_DECLARED to HAVE_SBRK_DECL - -print_cmd.c - - change PRINTF_DECLARED to HAVE_DECL_PRINTF - -builtins/evalstring.c, builtins/common.h - - parse_and_execute now takes a `const char *' as its second argument - -input.h,parse.y - - with_input_from_* functions now take a `const char *' as their - second argument - - init_yy_io now takes a `const char *' as its fourth argument - -parse.y,externs.h - - parse_string_to_word_list now takes a `const char *' as its second - argument - -tests/builtins.right - - change output to account for extra digit in umask output - -pcomplib.c - - free_progcomp now takes a PTR_T argument - -builtins/bashgetopt.h - - include - - add prototypes to extern declarations - -builtins/shopt.def - - add prototypes to static function declarations - -builtins/{fc,umask,wait}.def, builtins/{bashgetopt,common}.c - - include for isdigit macro (referenced by `digit(x)') - -lib/readline/complete.c - - added more static function declarations with prototypes - - 9/12 - ---- -lib/sh/tmpfile.c - - use `^' instead of `*' in sh_mktmpname to make filenames a bit - more random - -include/stdc.h,lib/readline/rldstdc.h - - add __attribute__ definition - -builtins/common.h - - add printf __attribute__ to declaration of builtin_error - -error.h - - add printf __attribute__ to declaration of programming_error, - report_error, parser_error, fatal_error, sys_error, internal_error, - internal_warning - -lib/readline/readline.h - - add printf __attribute__ to declaration of rl_message - -pcomplete.c - - add printf __attribute__ to declaration of debug_printf - -print_cmd.c - - add printf __attribute__ to declarations of cprintf, xprintf - -include/chartypes.h - - new file, includes and defines macros that check for - safe (ascii) arguments before calling the regular ctype macros - -{alias,bashline,execute_cmd,expr,findcmd,general,locale,mksyntax,stringlib,subst,variables}.c -parse.y -builtins/{bashgetopt,common}.c -builtins/{fc,printf,umask,wait}.def -lib/glob/strmatch.c -lib/sh/{oslib,pathcanon,pathphys,snprintf,strcasecmp,strindex,stringvec,strtod,strtol,strtrans}.c -examples/loadables/{head,sleep}.c - - include "chartypes.h" or instead of - -Makefile.in,{builtins,lib/{glob,sh}}/Makefile.in - - update dependencies to include chartypes.h - -lib/sh/inet_aton.c - - use `unsigned char' instead of `char' to pass to ctype.h functions - -lib/sh/netopen.c - - check for '0' <= host[0] <= '9' in _getaddr instead of using - isdigit - -subst.c,lib/sh/shquote.c - - change array subscripts into sh_syntaxtab from `char' to - `unsigned char' - -{alias,bashline,execute_cmd,expr,general,subst}.c, parse.y -builtins/{fc,printf,umask,wait}.def builtins/{bashgetopt,common}.c -lib/sh/{pathcanon,pathphys,snprintf,strcasecmp,strindex,strtod,strtol,strtrans}.c -examples/loadables/{head,sleep}.c - - change to use some of the new macros in chartypes.h - - remove old local macro definitions now provided by chartypes.h - -general.h - - remove definition of isletter, ISOCTAL, digit, digit_value - - change legal_variable_starter and legal_variable_char to use - chartypes.h macros - - change ABSPATH to use chartypes.h macros - -lib/readline/util.c - - change to use Paul Eggert's FUNCTION_FOR_MACRO define to define - function replacements for macros in chardefs.h - -lib/readline/chardefs.h - - added some of the same macros as in chartypes.h - - change _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p, - _rl_to_upper, _rl_to_lower to use new IS* macros - - added _rl_isident macro from vi_mode.c:isident - -lib/readline/{bind,complete,nls}.c - - change to use some of the new macros from chardefs.h - -lib/readline/vi_mode.c - - isident -> _rl_isident - - remove local defines of macros in chardefs.h - -lib/sh/strtol.c - - updated to new version, modified from glibc 2.2.4 and sh-utils-2.0. - This one can do strtoll and strtoull, if necessary - - 9/13 - ---- -builtins/ulimit.def - - changed get_limit so it retrieves both hard and soft limits - instead of one or the other - - changed callers of get_limit - - changed getmaxvm to take soft limit, hard limit as arguments - - changed getmaxuprc to just take a single argument, the value - - changed calls to printone() to pass soft limit or hard limit - depending on `mode' instead of using old current_limit variable - - moved check for out-of-range limits in ulimit_internal into the - block that converts a string argument to a value of type rlim_t - - changed RESOURCE_LIMITS struct to break the description into a - description string and separate scale factor string - - changed print_all_limits to print a single error message if - get_limit fails, including limits[i].description now that the - scale factor has been removed from the description string - - removed DESCFMT define, since it's now used only in printone() - - changed printone to print the option character associated with a - particular limit if we're printing multiple limits - - changed calls to builtin_error to print the description associated - with a limit if setting or getting the limit fails - - added support for new POSIX 1003.1-200x rlim_t values: - RLIM_SAVED_CUR and RLIM_SAVED_MAX, which expand to the current - soft and hard limits, whatever they are - - changed printone to print `hard' or `soft' if the current limit is - RLIM_SAVED_MAX or RLIM_SAVED_CUR, respectively - - changed ulimit_internal to handle new `hard' and `soft' arguments - - changed help text do describe the special limit arguments `hard', - `soft', and `unlimited' - -doc/{bash.1,bashref.texi} - - documented new `hard' and `soft' limit arguments to `ulimit' - -hashlib.[ch] - - find_hash_item now takes a `const char *' is its first argument - - hash_string now takes a `const char *' is its first argument - - remove_hash_item now takes a `const char *' as its first argument - -pcomplib.c - - removed cast from first argument to find_hash_item in find_compspec - -general.[ch] - - absolute_program now takes a `const char *' as its argument - - absolute_pathname now takes a `const char *' as its argument - -lib/glob/glob.[ch] - - glob_pattern_p now takes a `const char *' as its argument - -bashline.c - - removed cast from first argument to absolute_program in - command_word_completion_function - - removed cast from first argument to glob_pattern_p in - attempt_shell_completion - -findcmd.[ch] - - find_absolute_program, find_user_command, find_path_file, - search_for_command, user_command_matches now take a - `const char *' as their first argument - - file_status, executable_file, is_directory, executable_or_directory - now take a `const char *' as their argument - - _find_user_command_internal, find_user_command_internal, - find_user_command_in_path - -lib/sh/makepath.c, externs.h - - changed sh_makepath so it takes `const char *' for its first - two arguments - -hashcmd.[ch] - - find_hashed_filename now takes a `const char *' as its first arg - - remove_hashed_filename now takes a `const char *' as its first arg - -variables.[ch] - - new_shell_variable, var_lookup, shell_var_from_env_string, - find_name_in_env_array, bind_function, makunbound, - bind_name_in_env_array, bind_tempenv_variable, bind_variable - now take a `const char *' as their first arg - - find_function, make_new_variable, find_tempenv_variable, - find_variable_internal, find_variable, set_func_read_only, - set_func_auto_export, all_variables_matching_prefix, assign_in_env, - assignment, kill_local_variable, make_local_variable, unbind_variable - now take a `const char *' as their arg - - mk_env_string now takes `const char *' arguments - -arrayfunc.[ch] - - skipsubscript now takes a `const char *' as its argument - - 9/17 - ---- -lib/readline/complete.c - - attempt to preserve case of what the user typed in - compute_lcd_of_matches if we're ignoring case in completion - -builtins/{let,pushd}.def,{execute_cmd,expr}.c - - change some 0L constants to 0 and let the compiler sort it out - - 9/18 - ---- -lib/malloc/alloca.c - - alloca now takes a `size_t' argument - -include/memalloc.h - - if we're providing an extern function declaration for alloca, - use `void *' and prototype if __STDC__ is defined - - if HAVE_ALLOCA_H is defined, but C_ALLOCA is defined, don't - define HAVE_ALLOCA - - 9/19 - ---- -subst.c - - do_assignment_internal, do_assignment, and do_assignment_no_expand - now take a `const char *' as their first argument - -general.h - - a `sh_assign_func_t' is now a function taking a `const char *' and - returning int - -hashcmd.c - - free_filename_data now takes a `PTR_T' argument to agree with the - typedef for `sh_free_func_t' - -lib/sh/snprintf.c - - use TYPE_MAXIMUM define like strtol.c instead of huge constants - - 9/20 - ---- -lib/sh/snprintf.c - - don't bother to compile the bulk of the body unless HAVE_SNPRINTF - or HAVE_ASPRINTF is not defined - - 9/24 - ---- -flags.c - - ignore `set -n' if the shell was started interactively - -lib/readline/readline.c - - initialize readline_echoing_p to 0; let the terminal-specific code - in rltty.c set it appropriately - -lib/malloc/malloc.c - - changed internal_memalign() slightly to avoid compiler warnings about - negating an unsigned variable (-alignment -> (~alignment + 1)) - - 9/27 - ---- -lib/readline/readline.c - - changed rl_newline to set _rl_history_saved_point appropriately - for the {previous,next}_history code - -lib/readline/rlprivate.h - - extern declaration for _rl_history_preserve_point - -lib/readline/bind.c - - new bindable variable, `history-preserve-point', sets value of - _rl_history_preserve_point - - 10/1 - ---- -lib/malloc/table.c - - new file, with a map of allocated (and freed) memory for debugging - multiple frees, etc. Indexed by hash on values returned by - malloc(); holds size, file and line number info for last alloc or - free and a couple of statistics pointers - -lib/malloc/malloc.c - - a few cleanups; added calls for registering allocations and frees - if MALLOC_REGISTER is defined - - replaced MALLOC_RETURN with explicit MALLOC_NOTRACE define - - reordered fields in `struct...minfo' in `union mhead' to restore - eight-byte alignment - - added explicit checks for underflow in free and realloc since - checking mh_magic2 is not sufficient to detect everything (it's - no longer the last field in the struct, and thus not the bytes - immediately preceding what's returned to the user) - - new function, xbotch, for printing file and line number info for - the failed assertion before calling botch() (programming_error()) - -configure.in - - replaced call to BASH_C_LONG_LONG with call to - AC_CHECK_TYPES([long long]) - - moved the C compiler tests before the tests for various - system types, so we can know whether we have `long long' - before testing for 64-bit types - - if we have `long long', check for sizeof(long long) and save value - -aclocal.m4 - - changed BASH_TYPE_BITS64_T to check `long long' before `long', but - after `double' - - 10/2 - ---- -lib/malloc/malloc.c - - made malloc and realloc both agree on the rounding for a request of - size N (round up to nearest multiple of 8 after adjusting for - malloc overhead); uses new ALLOCATED_BYTES macro - - realloc and free now use new IN_BUCKET macro for underflow checks - -execute_cmd.c - - fixed time_command() to use `time_t' instead of `long' to hold - time stamps - -lib/sh/clock.c - - clock_t_to_secs now takes a `time_t *' second argument - - fixed print_clock_t to call clock_t_to_secs with right arguments - -lib/sh/timeval.c - - fixed print_timeval to make `minutes' a `long' and make its - structure identical to print_clock_t - -redir.c - - changed redirection_error to check for EBADF and use the file - descriptor being redirected from in the error message if it - is >= 0 - -Makefile.in - - changed release status to `beta1' - -lib/glob/collsyms.h - - added a few ASCII symbols to the posix_collsyms array - - 10/3 - ---- -aclocal.m4 - - fixed typo in BASH_TYPE_BITS64_T - -configure.in - - added check for unsigned chars with AC_C_CHAR_UNSIGNED - -config.h.in - - added PROTOTYPES and __CHAR_UNSIGNED__ #defines - -general.h - - if CHAR_MAX is not define by , provide a definition - -builtins/printf.def - - change tescape() to mask \0 and \x escape sequences with 0xFF - - change tescape() to process at most two hex digits after a `\x' - -lib/sh/strtrans.c - - change strtrans() to mask \0 and \x escape sequences with 0xFF - - change strtrans() to process at most two hex digits after a `\x'. - This affects `echo -e' and $'...' processing - -lib/readline/bind.c - - changed rl_translate_keyseq() to process at most two hex digits - after a `\x' - -lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 - - changed documentation for key binding escape sequences to specify - that at most two hex digits after \x are translated - - changed documentation for key binding to specify that the result - of \nnn or \xhh escapes is an eight-bit value, not just ASCII - -doc/{bash.1,bashref.texi} - - changed documentation of $'...' to specify that at most two hex - digits after \x are translated - - changed `echo' documentation to specify that at most two hex - digits after \x are translated - - changed documentation for `echo' and $'...' to specify that the - result of \nnn or \xhh escapes is an eight-bit value, not just ASCII - - 10/4 - ---- -lib/malloc/malloc.c - - changed interface for xbotch to pass memory address and error code - as two additional arguments - - call mregister_describe_mem from xbotch to get the last allocation - or free before the botch - -configure.in - - call AC_CHECK_DECLS([strsignal]) - -config.h.in - - add HAVE_DECL_STRSIGNAL - -siglist.h - - make declaration of strsignal() dependent on !HAVE_DECL_STRSIGNAL - - 10/5 - ---- -support/texi2html - - upgraded to version 1.64 - - 10/9 - ---- -aclocal.m4 - - added check for `long long' to BASH_TYPE_PTRDIFF_T - -configure.in - - replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ - -aclocal.m4 - - replaced body of BASH_STRUCT_TERMIOS_LDISC with call to - AC_CHECK_MEMBER(struct termios.c_line, ...) - - replaced body of BASH_STRUCT_TERMIO_LDISC with call to - AC_CHECK_MEMBER(struct termios.c_line, ...) - -[bash-2.05a-beta1 frozen] - - 10/10 - ----- -lib/sh/snprintf.c - - fixed exponent() to not smash the trailing zeros in the fraction - when using %g or %G with an `alternate form' - - fixed exponent() to handle the optional precision with %g and %G - correctly (number of significant digits before the exponent) - - 10/11 - ----- -expr.c - - fixed strlong() to correct the values of `@' and `_' when - translating base-64 constants (64#@ == 62 and 64#_ == 64), for - compatibility with ksh - -lib/sh/itos.c - - added a slightly more flexible fmtlong() function that takes a - base argument and flags (for future use) - - rewrote itos and inttostr in terms of fmtlong - -lib/sh/fmtulong.c - - new file, converts unsigned long to string. hooks for `unsigned - long long' in the future. unused as yet - - 10/15 - ----- -lib/readline/rltty.c - - change the SET_SPECIAL macro to avoid possible (but highly - unlikely) negative array subscripts - -error.h - - add __attribute__ to extern declaration of itrace (even though the - function isn't defined in released versions of bash) - -bashansi.h - - include if HAVE_STRINGS_H is defined, to get any extra - function declarations provided therein - -copy_cmd.c - - fix typo in forward declaration for copy_arith_for_command - -lib/malloc/stats.c - - make the accumulators in _print_malloc_stats be `unsigned long' - instead of `int' - -externs.h, sig.h - - add `__noreturn__' gcc attribute to exit_shell and jump_to_top_level - declarations - -lib/sh/mailstat.c, support/bashversion.c - - include for some string function declarations - -lib/malloc/shmalloc.h - - added extern declarations of functions that do malloc debugging - -lib/readline/{isearch,readline,vi_mode}.c - - make sure we index into _rl_keymap with a non-negative index - -parse.y - - make sure we index into sh_syntaxtab with a non-negative index - -lib/readline/vi_mode.c - - bound the vi_mark_chars array with the number of characters between - 'a' and 'z' rather than using a fixed amount - - don't use _rl_lowercase_p when deciding whether the char read by - rl_vi_set_mark is a valid mark; just use 'a' <= char <= 'z' - -lib/readline/chardefs.h - - conditionally include memory.h and strings.h as in general.h - - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software - - add defines for ISPRINT(c), ISLOWER(c) and ISUPPER(c) - - fix defines for _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p, - _rl_pure_alphabetic, ALPHABETIC, _rl_to_upper, _rl_to_lower, - and _rl_isident to work on systems with signed chars - -include/chartypes.h - - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software - -lib/sh/{strcasecmp,strtod,strtol}.c - - don't pass possibly-negative characters to tolower() or toupper() - -lib/glob/strmatch.c - - don't bother testing for isupper in FOLD; rely on TOLOWER macro - from to do it - - don't use local definitions of isblank, et al.; rely on macros - from - -lib/readline/{display,readline}.c, mksyntax.c - - use new ISPRINT macro instead of isprint() - -builtins/{kill.def,mkbuiltins.c},{error,execute_cmd,jobs,nojobs,subst}.c - - don't assume that a pid_t fits into an int for printing and other - uses - -variables.[ch] - - the unused put_gnu_argv_flags_into_env now takes a `long' pid - argument - -configure.in, config.h.in - - call AC_STRUCT_ST_BLOCKS, define HAVE_STRUCT_STAT_ST_BLOCKS if found - - check for strtoull(), define HAVE_STRTOULL if found - - check for uintmax_t, define to `unsigned long' if not found - -lib/sh/mailstat.c - - don't use st_blocks member of struct stat unless - HAVE_STRUCT_STAT_ST_BLOCKS is defined; otherwise use the st_nlink - field to return the total number of messages in a maildir-style - mail directory - -general.h,{alias,expr,general,subst,variables}.c -builtins/{printf,read}.def -lib/readline/{bind,complete,nls}.c -lib/sh/{pathcanon,pathphys,shquote,snprintf,strindex,strtod,strtol,strtrans}.c - - cast args to ctype macros to unsigned char for systems with signed - chars; other fixes for signed chars - -lib/sh/{fmtullong,strtoull.c} - - new files, more support for `long long' - -Makefile.in, lib/sh/Makefile.in - - make fmtullong.o and strtoull.o part of libsh - -lib/sh/itos.c - - remove local copy of fmtlong; use fmtulong instead - - new functions: uitos, uinttostr work on `unsigned long' - -lib/sh/snprintf.c - - fixes to make `unsigned long long' work (%llu) - - fixes to make unsigned formats not print the sign when given - an unsigned long that is greater than LONG_MAX - -externs.h - - extern declarations for fmtulong, fmtulloing, strtoull - - extern declarations for uitos, uinttostr - - 10/16 - ----- -configure.in - - move header checks before function checks - - move c compiler tests before header checks - - check for with BASH_HEADER_INTTYPES - - change type checks for intmax_t, uintmax_t to not attempt to - include - - check for strtoimax, strtoumax, strtoll, strtol, strtoull, strtoul - with BASH_CHECK_DECL (for declarations in header files) and - AC_REPLACE_FUNCS (for availability and LIBOBJS substitution) - - remove check for have_long_long around sizeof check for long long - (since autoconf will give it a size of 0 if the type isn't found) - -config.h.in - - add a define for HAVE_INTTYPES_H - - add a define for HAVE_UNSIGNED_LONG_LONG - - add defines for HAVE_STRTOIMAX, HAVE_STRTOUMAX, HAVE_STRTOLL - -aclocal.m4 - - new func, BASH_HEADER_INTTYPES, which just calls AC_CHECK_HEADERS - on ; separate so it can be AC_REQUIREd - - AC_REQUIRE([BASH_HEADER_INTTYPES]) in BASH_CHECK_TYPE - - include in BASH_CHECK_TYPE if HAVE_INTTYPES_H is - defined - - change AC_DEFINE to AC_DEFINE_UNQUOTED in BASH_CHECK_TYPE - - new `long long' checking macros: BASH_TYPE_LONG_LONG and - BASH_TYPE_UNSIGNED_LONG_LONG - - new BASH_CHECK_DECL - -lib/sh/{strto[iu]max,strtoll}.c, lib/sh/Makefile.in, Makefile.in - - new files - -externs.h - - extern declarations for strtoll, strtoimax, strtoumax - -lib/malloc/alloca.c - - include for size_t - -builtins/printf.def - - new functions: getllong, getullong, getintmax, getuintmax; return - long long, unsigned long long, intmax_t, uintmax_t respectively - - builtin printf now handles `ll' and `j' length modifiers directly - -lib/sh/Makefile.in - - use LIBOBJS to decide whether or not the strto* functions are - needed - - 10/17 - ----- -configure.in - - call AC_REPLACE_FUNCS(rename) - - move getcwd, strpbrk, strcasecmp, strerror, strtod - from AC_CHECK_FUNCS to AC_REPLACE_FUNCS - - only call BASH_FUNC_GETCWD if $ac_func_getcwd == "yes" - - call BASH_CHECK_SYS_SIGLIST - - if we don't have vprintf but have _doprnt, call AC_LIBOBJ(vprint) - -lib/sh/Makefile.in - - remove rename, getcwd, inet_aton, strpbrk, strcasecmp, strerror, - strtod, vprint from OBJECTS; picked up from LIBOBJS - -aclocal.m4 - - change BASH_FUNC_GETCWD to call AC_LIBOBJ(getcwd) if the libc - getcwd(3) calls popen(3) - - change BASH_FUNC_INET_ATON to call AC_LIBOBJ(inet_aton) if it's - not found in libc or as a #define even with the special includes - - BASH_KERNEL_RLIMIT_CHECK -> BASH_CHECK_KERNEL_RLIMIT - - BASH_DEFAULT_MAILDIR -> BASH_SYS_DEFAULT_MAILDIR - - BASH_JOB_CONTROL_MISSING -> BASH_SYS_JOB_CONTROL_MISSING - - BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS - - BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE - - BASH_DUP2_CLOEXEC_CHECK -> BASH_FUNC_DUP2_CLOEXEC_CHECK - - BASH_PGRP_SYNC -> BASH_SYS_PGRP_SYNC - - BASH_RLIMIT_TYPE -> BASH_TYPE_RLIMIT - - BASH_FUNC_PRINTF -> BASH_DECL_PRINTF - - BASH_FUNC_SBRK_DECLARED -> BASH_DECL_SBRK - - BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T - - BASH_CHECK_SOCKLIB -> BASH_CHECK_LIB_SOCKET - - new macro, BASH_CHECK_SYS_SIGLIST, encapsulates all the checks for - sys_siglist, _sys_siglist, and strsignal(), sets SIGLIST_O to - siglist.o if appropriate - -Makefile.in - - use SIGLIST_O variable to decide whether or not we need siglist.o - -{execute_cmd,subst}.c - - change a couple of instances of ISDIGIT to DIGIT, where we really, - really only want ascii digits - -ansi_stdlib.h - - don't need a declaration for atol() - - 10/18 - ----- - -aclocal.m4 - - new macro, BASH_FUNC_PRINTF_A_FORMAT, checks for printf support - for %a, %A conversion specifiers, defines HAVE_PRINTF_A_FORMAT - if successful - -configure.in - - call AC_CHECK_FUNCS for isascii - - call BASH_FUNC_PRINTF_A_FORMAT - -config.h.in - - add a define for HAVE_ISASCII - - add a define for HAVE_PRINTF_A_FORMAT - -lib/sh/snprintf.c - - for long double output, fall back to sprintf using ldfallback() - function for floating point formats - - support %a, %A using dfallback() or ldfallback() if - HAVE_PRINTF_A_FORMAT is defined - - fix bug in vasprintf that returned wrong value in its first - argument if the buffer holding the result string got reallocated - - fixed PUT_CHAR macro to increment the counter even if we've - exceeded the buffer size, for the return value from - vsnprintf/snprintf - - fix vsnprintf_internal to not use counter < length as a loop - condition, but always process the entire format string (for - the return value from vsnprintf/snprintf) - -builtins/printf.def - - support %a, %A if HAVE_PRINTF_A_FORMAT is defined - -include/typemax.h - - new file, with the TYPE_MAXIMUM stuff that's duplicated in several - files in lib/sh - -lib/sh/{fmtulong,strtol,snprintf}.c - - include instead of having the definitions in each file - -lib/sh/Makefile.in - - updated dependencies for typemax.h - - 10/22 - ----- -configure.in - - call AC_CHECK_FUNCS on ctype.h functions/macros that bash redefines - in chartypes.h - -config.h.in - - defines for HAVE_IS{ASCII,BLANK,GRAPH,PRINT,SPACE,XDIGIT} - -include/chartypes.h, lib/glob/strmatch.c, lib/readline/chardefs.h - - don't redefine some is* ctype macros/functions if HAVE_ISXXX is - defined (meaning that an appropriate function, but not a macro, - exists) - -lib/sh/strtrans.c - - new function, ansic_shouldquote, returns 1 if argument string - contains non-printing chars that should be quoted with $'...' - -externs.h - - new declaration for ansic_shouldquote() - -variables.c - - change print_var_value to ansi C quote the string if we're not in - posix mode and the variable's value contains non-printing chars, - to use the regular shell single quoting if the value contains - shell meta-characters, and to just output the string otherwise - -lib/sh/shquote.c - - add `break' to `case '~':' to avoid fallthrough and extra test - -doc/bashref.texi - - note that in POSIX mode, `set' displays variable values that - include nonprinting characters without quoting, unless they - contain shell metacharacters - -builtins/printf.def, lib/sh/snprintf.c - - handle `F' conversion specifier as equivalent to 'f' - -parse.y, {nojobs,variables}.c - - a couple of cleanups for when building a minimal configuration - -nojobs.c - - new function: stop_making_children(), just sets - already_making_children to 0 (like stop_pipeline) - -subst.c - - call stop_making_children from subst.c:command_substitute if - JOB_CONTROL is not defined. This fixes the bug where the wrong - process is waited for (and its status returned) when using - command substitution in a null command in a shell function - -builtins/printf.def - - new variable `tw' used to keep track of the total number of - characters written by a single call to `printf' -- to be - used for the `%n' conversion, which will be added later. It - gets reset each time we reuse the format string, which is what - ksh93 seems to do - - 10/23 - ----- -variables.c - - new function, bind_var_to_int (char *var, long val) - -variables.h - - extern declaration for bind_var_to_int - -lib/sh/netopen.c - - use gai_strerror() for error messages when getaddrinfo() fails - - use PF_INET if DEBUG is defined, since IPv6 doesn't work for me - -Makefile.in - - pass DEBUG=${DEBUG} down to makes in some subdirectories - -{builtins,lib/{glob,sh}}/Makefile.in - - append ${DEBUG} to LOCAL_CFLAGS value, passed by top-level Makefile - -builtins/printf.def - - added support for %n format conversion char (number of chars printed - so far from current format string) - - 10/24 - ----- -variables.c - - if posixly_correct is set, the default value of $MAILCHECK is 600 - - use legal_number instead of atoi in adjust_shell_level - - treat non-numeric assignments to SECONDS as 0 in assign_seconds - - new function, init_funcname_var; sets FUNCNAME as a dynamic variable - if it's not set in the initial environment - - new function, init_groups_var; sets GROUPS as a dynamic array - variable if it's not set in the initial environment - - new function, init_dirstack_var; sets DIRSTACK as a dynamic array - variable if it's not set in the initial environment - - new function, init_seconds_var; sets SECONDS as a dynamic - variable using any valid integer value in the initial environment - as the initial value, as if an assignment had been performed - - call init_funcname_var, init_groups_var, init_dirstack_var, - init_seconds_var from initialize_dynamic_variables - - non-numeric values assigned to LINENO are treated as 0 - - change initialize_shell_variables to not auto-export PATH or TERM - - change set_home_var to not auto-export HOME - - change set_shell_var to not auto-export SHELL - - broke the code that sets HOSTNAME, HOSTTYPE, MACHTYPE, OSTYPE - out into a separate function, set_machine_vars; none of those - variables are auto-exported - - bash no longer un-exports SSH_CLIENT or SSH2_CLIENT - -shell.c - - changed isnetconn() to check SSH_CLIENT and SSH2_CLIENT only if - SSH_SOURCE_BASHRC is defined in config-top.h - -config-top.h - - added a commented-out definition for SSH_SOURCE_BASHRC - - 10/25 - ----- - -Makefile.in - - changed RELSTATUS to `rc1' (release candidate 1) - - 10/29 - ----- -locale.c - - fixed an `=' vs. `==' typo in set_locale_var when parsing - LC_NUMERIC - -doc/{bash.1,bashref.texi} - - document what bash does with $POSIXLY_CORRECT - -doc/builtins.1 - - some updates - -builtins/psize.sh - - some mktemp(1) changes - -lib/readline/readline.c - - change rl_backward to check for rl_point < 0 and reset to 0 if so - -lib/readline/util.c - - don't compile in _rl_strpbrk if HAVE_STRPBRK is defined - -lib/readline/rlprivate.h - - remove extern declaration of _rl_strpbrk - -lib/readline/rldefs.h - - #define _rl_strpbrk as strpbrk if HAVE_STRPBRK is define, otherwise - add extern declaration of _rl_strpbrk from rlprivate.h - -{mailcheck,shell,variables}.c - - make sure to include posixtime.h to get any prototype for time(3) - in scope - -{array,eval,execute_cmd,mksyntax,subst}.c, parse.y -builtins/common.c -lib/sh/pathcanon.c - - a few changes as the result of `gcc -Wall' patches from solar - designer - -builtins/read.def, parse.y - - change some calls to free() to xfree() - -builtins/set.def - - make sure unset_builtin() resets unset_array to 0 each time through - the loop, because it's set (and used) depending on the current - argument - -shell.h - - new define, USE_VAR, to force the compiler to not put a particular - variable in a register -- helpful if registers are not restored - by setjmp/longjmp - -builtins/{evalfile.c,{read,wait}.def}, {eval,execute_cmd,shell,test}.c - - use USE_VAR for some variables - -subst.c - - fixed a case in expand_word_internal where a NULL pointer could - have been passed to free() (though free() should ignore it) - - fixed a case at the end of expand_word_internal where LIST could - have been used uninitialized (it makes gcc happy, though it - doesn't happen in practice) - -test.c - - give test_syntax_error(), beyond(), and integer_expected_error() - the `__noreturn__' attribute for gcc - -unwind_prot.c - - in clear_unwind_protect_list(), convert `flags' to `long' (via - assignment to a `long' variable) before casting to `char *', in - case pointers and longs are 64 bits and ints are 32 (makes no - difference on 32-bit machines) - - 10/30 - ----- -print_cmd.c - - fixed cprintf to avoid gcc warning about assigning const pointer - to non-const (discarding type qualifier) - -{make_cmd,pcomplete,test}.c,parse.y - - some minor changes to shut up gcc warnings - -lib/sh/tmpfile.c - - fixed sh_mktmpfp to avoid file descriptor leaks in the case that - sh_mktmpfd succeeds but fdopen fails for some reason - - change sh_mktmpfd to use the same scheme for computing `filenum' - as sh_mktmpname - - change get_sys_tmpdir to prefer P_tmpdir if P_tmpdir is defined - - changed sh_mktmpname and sh_mktmpfd to avoid trying to assign to - `nameroot' if `nameroot == 0' (duh) - - add code to sh_mktmpfd to use mkstemp(3) if USE_MKSTEMP is defined - - add code to sh_mktmpname to use mktemp(3) if USE_MKTEMP is defined - -support/{fixlinks,mkclone} - - use mktemp if it's available for the symlink test - - use $TMPDIR instead of hardcoding /tmp; default to /tmp - - use a better filename for the symlink test instead of `z' - -support/bashbug.sh - - more changes inspired by a patch from solar designer - -lib/malloc/Makefile.in - - new target `alloca', which builds libmalloc.a with alloca.o only - (for systems without alloca that are configured --without-bash-malloc) - -configure.in - - if we don't have a working alloca and are not configured to build - the bash malloc library, make a malloc library containing only - alloca.o - -aclocal.m4 - - slight change to RL_LIB_READLINE_VERSION to deal with minor version - numbers with a letter appended (like 4.2a) - - 10/31 - ----- -doc/{bash.1,bashref.texi} - - slight change to note that only interactive shells resend a SIGHUP - to all jobs before exiting - -externs.h - - declare strto[ui]max only if NEED_STRTOIMAX_DECL is defined. This - keeps picky compilers from choking because intmax_t is not defined - (MacOS X 10.1) - -builtins/printf.def - - #define NEED_STRTOIMAX_DECL before including shell.h - - 11/1 - ---- -general.c - - check in bash_tilde_expand() for an unquoted tilde-prefix; don't - bother passing the string to tilde_expand unless the prefix is - unquoted - -shell.c - - fix a problem with $LINENO when executing commands supplied with - the -c invocation option when ONESHOT is defined - -[bash-2.05a-rc1 frozen] - -builtins/printf.def - - fix the %n conversion to require that the variable name supplied - be a valid shell identifier - -variables.c - - improve random number generator slightly by using the upper 16 - bits of the running random number instead of the lower 16, which - are incrementally more random - - 11/2 - ---- -configure.in - - if RL_INCLUDEDIR ends up being /usr/include, don't put - -I$(RL_INCLUDEDIR) into CFLAGS - - 11/5 - ---- -doc/{bash.1,bashref.texi} - - correct description of POSIXLY_CORRECT to note that the shell enters - posix mode *before* the startup files are read if POSIXLY_CORRECT - is in the initial environment - -variables.c - - fix function prologues for init_dirstack_var and init_groups_var - to agree with caller (no arguments) - -jobs.c - - fix forward function declarations for pipe_read and pipe_close - -subst.c - - removed `inline' attribute from skip_double_quoted because it can - potentially be called recursively - -bashline.c - - quick fix to bashline.c:attempt_shell_completion programmable - completion code to just punt if the end of the command word found - by find_cmd_end is <= the start found by find_cmd_start (the bug - is probably in find_cmd_start -- fix later) - -pcomplete.c - - fix gen_matches_from_itemlist to return if the stringlist is null - after any cleaning or initialization, before trying to use it - - fix GEN_COMPS to only bother to try to append the STRINGLIST - returned by gen_matches_from_itemlist to `glist' if it's non-NULL - -lib/sh/stringlist.c - - make copy_stringlist return NULL if the STRINGLIST * passed as an - argument is NULL - - make append_stringlist call copy_stringlist only if M2 is non-NULL; - otherwise just return NULL if m1 is NULL - - make word_list_to_stringlist return 0 immediately if the passed - LIST argument is NULL - - make realloc_stringlist call alloc_stringlist if the passed - STRINGLIST argument (`sl') is 0, just like realloc calls malloc - -subst.c - - in skip_to_delim(), if we have an unclosed ${, and it's at the end - of the string (string[i] == '{', string[i+1] == '{' and - string[i+2] == 0, return si (i + 2) immediately without bothering - to call extract_dollar_brace_string or extract_delimited_string - - in skip_to_delim(), if string[i] is 0 after a call to - extract_dollar_brace_string or extract_delimited_string (meaning we - have an unclosed ${ or other expansion, return i immediately without - doing a `continue' (which will increment i past the end of string) - - in split_at_delims, don't increment te by 1 if it's pointing to a - delimiter. this has the effect of skipping the first delimiter - char in a possibly multi-character delimiter, and ignoring - single-char delimiters like `>' - -configure.in - - use AC_CHECK_MEMBERS([struct stat.st_blocks]) instead of a call to - AC_STRUCT_ST_BLOCKS to avoid configure changing LIBOBJS if the test - fails - -general.c - - introduce two new variables: bash_tilde_{prefixes,suffixes}, set - to the additional prefixes and suffixes bash wants to pass to the - tilde expansion code (reserved for post-bash-2.05a fix) - -aclocal.m4 - - add missing `test' in BASH_CHECK_SYS_SIGLIST - - 11/7 - ---- -lib/readline/vi_mode.c - - fix rl_vi_goto_mark to explicitly check that the desired mark is - between 'a' and 'z', since some locales have lowercase letters - outside that range, which could cause a negative subscript - -include/chartypes.h - - remove superfluous `#undef ISASCII' - -lib/sh/strto[iu]max.c - - changes from Paul Eggert to work around buggy compilers and catch - configuration errors at compile time - -aclocal.m4 - - new macro, BASH_C_LONG_DOUBLE, identical to AC_C_LONG_DOUBLE but - with a fix for Irix 5.3 (not called, since I'm not sure it's the - right thing to do -- the C standard allows double and long double - to be the same size) - -lib/sh/snprintf.c - - only try to write the trailing NUL in vsnprintf_internal if - data->length is >= 0, since if it's not, we probably don't have - a buffer - -Makefile.in - - changed RELSTATUS to `release' - - 11/8 - ---- -lib/sh/strtol.c - - make sure chars passed to toupper are cast to unsigned - -unwind_prot.c - - change clear_unwind_protect_list to not require a cast from `int' - to `char *' - -lib/readline/chardefs.h - - make _rl_digit_p succeed only for ascii digits, since that's what - most callers assume - - 11/13 - ----- -doc/bashref.texi - - added `ERR' trap and [-+]O invocation option to section listing - differences from the Bourne shell - - 11/15 - ----- -[bash-2.05a released] - - 11/19 - ----- -include/stdc.h - - new define, INLINE, defined as `inline' for gcc and empty otherwise - -subst.c - - make skip_double_quoted, sub_append_string have INLINE attribute - -trap.c - - use BASH_NSIG as upper limit for signal names in signal_name() - -lib/readline/bind.c - - use RL_COMMENT_BEGIN_DEFAULT in output for rl-comment-begin value - -error.c - - fix sys_error to save value of errno around calls to fprintf - -doc/Makefile.in - - added rules to create PDF files from postscript and dvi input - -MANIFEST.doc - - added {article,bash,bashref,rose94}.pdf - -doc/bash.1 - - rearranged some `.PD 0' and `.TP' directives so man2html will - handle them better (shouldn't affect groff output) - -support/man2html.c - - small fix to handle quoted string arguments to directives like - `.BR' without mangling the output - - 11/20 - ----- -{arrayfunc,variables}.c - - changed calling sequence for dynamic array variable `assign' - functions to (SHELL_VAR *self, char *value, arrayind_t ind) - - changed calling sequence for dynamic variable assign functions - to the same as array variable assign_func. Now this can be - prototyped - -variables.h - - the assign_func member of a `struct variable' is now of type - `sh_var_assign_func_t', which is prototyped - - the dynamic_value member of a `struct variable' is now of type - `sh_var_value_func_t', which is prototyped - -variables.c - - changed to use `sh_var_assign_func_t' and `sh_var_value_func_t' - -builtins/cd.def - - when in posix mode, if the new directory name formed by PWD and - the argument passed by the user cannot be canonicalized, and the - -P option has not been supplied, return failure immediately - - if canonicalization failed, but the fallback to the directory - name specified by the user succeeds, reset the current working - directory - -lib/readline/{input.c,rlprivate.h} - - renamed rl_unget_char to _rl_unget_char; made library global - -lib/readline/{{bind,readline}.c,{keymaps,rlprivate}.h} - - support for `key subsequences'; allows a key sequence and a function - mapped to a subsequence of that key sequence. Primarily to allow - arrow keys to be bound in readline vi insert mode, while preserving - the ESC function to switch to command mode. - -lib/readline/{input.c,rlprivate.h} - - new function, _rl_input_queued(T), does a check with select or - FIONREAD with a timeout of `T' (which is generally 0) - -lib/readline/readline.c - - change _rl_dispatch_subseq to test for input in the queue if we - get ESC while in vi insertion mode if the keymap entry type for - ESC is ISKMAP. If _rl_input_queued returns non-zero, we assume - that an arrow key sequence has been pressed and go ahead with the - subsequence. If it returns zero, we assume that the user pressed - ESC to switch into command mode, and dispatch to that right away. - This avoids forcing the user to press another key before switching - into command mode - - 11/21 - ----- -lib/readline/readline.c - - bind common arrow key sequences in vi insertion keymap - -lib/readline/terminal.c - - bind termcap definition's arrow keys in vi insertion keymap - -lib/readline/bind.c - - check for rl_vi_movement_mode in _rl_bind_if_unbound, so - binding the arrow keys can work - -lib/readline/readline.c - - since _rl_bind_if_unbound does the check of what's currently - bound to the key sequence, the check in bind_arrow_keys_internal - was redundant - - bind_arrow_keys_internal now takes a Keymap argument and handles - saving and restoring _rl_keymap; changed bind_arrow_keys - accordingly - -builtins/fc.def - - fix from Paul Eggert to substitute the nearest history number in - range if an out-of-range value is supplied. POSIX requires this - -lib/sh/pathcanon.c - - fix from Corrina Vinschen for the special `cygdrive' prefix on - Cygwin - -bashhist.c - - split the history adding code into more pieces: - check_history_control (char *line) checks LINE against the value - of HISTCONTROL, returning 1 if LINE should be saved and 0 if not - - check_add_history (char *line) calls check_history_control and - history_should_ignore (line) and saves the line with - bash_add_history if the checks indicate that it should be saved - - maybe_add_history just calls check_add_history to set the value - of first_line_saved - -bashhist.h - - extern declaration for check_add_history() - -shell.c - - don't call load_history() from the interactive shell startup - code if history_lines_this_session is > 0, indicating that we've - already saved some lines in the history and that we probably - don't want to overwrite them - -builtins/history.def - - call check_add_history from push_history, so `history -s xx' - works even when in a compound command whose first line has not - been saved. (Caveat: in a compound command when the first - line has been saved, the line supplied to history -s will become - part of the compound command's history entry. Of course, the - delete_history call could remove the compound command from the - history entirely) - -bashline.c - - use sh_makepath instead of xmalloc/sprintf in - command_word_completion_function - -lib/readline/complete.c - - get_y_or_n now takes an int FOR_PAGER argument; caller changed - If FOR_PAGER is non-zero, get_y_or_n returns appropriate values - for a more-like pager: `newline' or `return' return 2; `q' or - `Q' return 0 - - there is now a mini internal more-like pager for displaying a - list of completions that exceeds the screen height (new function - _rl_internal_pager, called from rl_display_match_list) - - 11/24 - ----- -command.h - - new flag, W_TILDEEXP, says to do tilde expansion on an - assignment word - -execute_cmd.c - - fix_assignment_words now sets W_TILDEEXP for assignment word - arguments to `assignment builtins' - -general.c - - bash_tilde_expand now takes a second argument indicating whether - or not it's being invoked in an `assignment context' - -general.h - - change extern declaration for bash_tilde_expand - -{bashline,execute_cmd,findcmd,general,variables}.c -builtins/evalfile.c -lib/sh/makepath.c - - fix callers of bash_tilde_expand appropriately - -subst.c - - fix callers of bash_tilde_expansion appropriately - - add (currently commented-out) code that would tilde expand assignment - statement arguments to assignment builtins (W_TILDEEXP flag set) - even when the shell is in posix mode - -bashline.c - - fix attempt_shell_completion to turn off - rl_filename_completion_desired when doing command name completion, - so no slash gets appended to the name if there happens to be a - directory with the same name in the current directory - - 11/26 - ----- -lib/readline/rltech.texinfo - - a couple of additions to the rl_stuff_char description - -parse.y - - turn off echo_input_at_read in parse_string_to_word_list, so `set -v' - doesn't give extra lines of output when doing compound array - assignment - -subst.c - - fix split_at_delims to handle skipping over a `\n' if it's a - delimiter (use spctabnl(c) instead of whitespace(c)) - - 11/27 - ----- -support/config.{guess,sub} - - updated (with bash changes) to latest version from gnu.org - -sig.h - - add prototype for set_signal_handler declaration - -builtins/setattr.def - - add prototype to extern declaration of declare_builtin - -builtins/times.def - - add no_options call, since times takes no options - -lib/sh/spell.c - - add prototypes to forward declarations for midist and spdist - -lib/sh/strtrans.c - - add explicit int return type to ansic_shouldquote declaration - -lib/readline/rldefs.h, lib/readline/{macro,readline,util,undo}.c - - move define for SWAP to rldefs.h, removed from various C files - -lib/readline/vi_mode.c - - removed define for exchange(), changed to use SWAP instead - -lib/readline/bind.c - - added some static forward function declarations - - find_boolean_var, find_string_var now take a `const char *' argument - -lib/readline/signals.c - - added static forward declaration for rl_maybe_set_sighandler - -lib/readline/readline.c - - add some common key bindings for the HOME and END keys in - bind_arrow_keys_internal - -lib/readline/terminal.c - - fetch the `@7' termcap string; it's sent by the END key - - attempt to bind the terminal's END key to rl_end_of_line in - bind_termcap_arrow_keys; I don't know why I was using `kH' - instead of `@7' - -doc/builtins.1 - - remove `case', `for', `if', `until', `while' from NAME section; - those are not shell builtins - - 11/28 - ----- -stringlib.c - - new function, find_token_in_alist, takes a token value and an - ALIST argument, and returns the string correspoinding to the - token if found in the alist - -externs.h - - new extern declaration for find_token_in_alist() - -subst.c - - string_list_internal is no longer static - -subst.h - - new extern declaration for string_list_internal() - -parse.y - - new alist array of other tokens returned by read_token which are - not reserved words in word_token_alist[] - - reworked error reporting: new functions print_offending_line, - which prints the line containing the syntax error, - error_token_from_token, which takes the current token and tries to - figure out its textual representation, and error_token_from_text, - which does the old job of finding the bad token by analyzing the - text of shell_input_line at the current index - - report_syntax_error now tries to figure out the token that caused - the syntax error by first looking at current_token and falling - back to the old method of textual analysis if that fails - - report_syntax_error doesn't say the token resulting from the textual - analysis of the input line is an `unexpected token'; it just - says there is a `syntax error near xxx' - - changed conditional command error reporting to use the value - returned by error_token_from_token if it's not null instead of - just using the token value in the message, since current_token - ends up being set to -1, and the text of the message from - report_syntax_error might not be exactly right - - change parse_string_to_word_list to set current_token to the - offending token returned by read_token before calling yyerror() - to make the error reporting do the right thing - -aclocal.m4 - - fixed typo in BASH_CHECK_LIB_TERMCAP - -configure.in - - add check for isinf(3); define HAVE_ISINF_IN_LIBC if found - -config.h.in - - add define for HAVE_ISINF_IN_LIBC - -lib/sh/snprintf.c - - check for Inf and NaN, using isinf and isnan if they're found in - libc - - use the current locale for thousands separator and decimal point - - recognize "'" flag; not implemented yet - - fix for snprintf/vsnprintf with length of 0 and string argument of - 0 with non-zero length - -builtins/read.def - - TMOUT is now the default timeout for `read' (and select) if set, - like ksh93 when reading from the terminal - - edit_line (called by read -e) now just does readline's filename - completion by setting rl_attempted_completion_function to NULL, - since e.g., doing command completion for the first word on the - line wasn't really useful - -execute_cmd.c - - changed select_command to return failure status if select_query - returns NULL, indicating that read_builtin returned - EXECUTION_FAILURE - -doc/{bash.1,bashref.texi} - - documented new TMOUT behavior - - slight change to the description of the test `-ef' option - -doc/bashref.texi - - added item to posix mode section describing failure behavior of - cd when invoked in logical mode and the pathname formed by - combining $PWD and the directory argument does not refer to an - existing directory - - 11/29 - ----- -execute_cmd.c - - fix execute_function to call dispose_function_env after - merge_function_env if the shell is in posix mode (fixes debian - bash bug #117673) - -lib/readline/readline.c - - rl_forward -> rl_forward_char; rl_forward function for compatibility - - rl_backward -> rl_backward_char; rl_forward function for - compatibility - - new functions, rl_forward_byte, rl_backward_byte, for future use - -lib/readline/readline.h - - extern declarations for rl_forward_char, rl_backward_char, - rl_forward_byte, rl_backward_byte - -lib/readline/{emacs_keymap,funmap,vi_keymap,vi_mode - - rl_forward -> rl_forward_char - - rl_backward -> rl_backward_char - -lib/readline/funmap.c - - new bindable names, `backward-byte' and `forward-byte' - -aclocal.m4 - - new function, BASH_CHECK_MULTIBYTE, encapsulates checks for - multibyte code - -config.h.in - - add necessary defines for multibyte include files and functions - -configure.in - - add call to BASH_CHECK_MULTIBYTE - -config-bot.h - - add code to define HANDLE_MULTIBYTE if prerequisites are met - -lib/sh/xstrchr.c - - new file, xstrchr() is strchr(3) that handles multibyte characters - -bashhist.c - - first_line_saved -> current_command_first_line_saved; variable is - now global - -bashhist.h - - extern declaration for current_command_first_line_saved - - 11/30 - ----- -bashhist.c - - break the code that actually calls add_history out of - bash_add_history into a new function, really_add_history; - bash_add_history now calls really_add_history - - check_add_history takes a second `force' argument telling it - whether to call bash_add_history (force == 0) or really_add_history - (force != 0) - -builtins/history.def - - in push_history, call delete_last_history if the current command - has more than one line, the first line was saved, and - command-oriented history is active. This takes care of deleting - the right history element if `history -s' is used within a - compound or multiline command - - in push_history, call check_add_history with second argument of 1 - to skip check of current_command_line_count and add the arguments - to history -s as a single separate history entry - - 12/3 - ---- -lib/readline/complete.c - - append a slash to completed names which are symlinks to directories - if the new variable _rl_complete_mark_symlink_dirs is non-zero - -lib/readline/rlprivate.h - - extern declaration for _rl_complete_mark_symlink_dirs - -lib/readline/bind.c - - new bindable variable, `mark-symlinked-directories', mirrors the - value of _rl_complete_mark_symlink_dirs - -doc/bash.1, lib/readline/doc/{readline.3,rluser.texinfo} - - documented new `mark-symlinked-directories' variable - - 12/4 - ---- -variables.[ch] - - set_pipestatus_array now takes a second argument with the number - of processes in the array - - changed set_pipestatus_array to just modify the value in place if - the existing array has one element and the new array has one - element, and to modify existing values in place if new array has - more elements than existing array - -variables.c, jobs.c - - changed set_pipestatus_array callers - -jobs.c - - moved call to setjstatus() from set_job_status_and_cleanup to - wait_for, since set_job_status_and_cleanup is part of the SIGCHLD - signal handler call path, and race conditions accessing the - PIPESTATUS array will result for things like - - while true; do date; done | cat > /dev/null - - 12/5 - ---- -xmalloc.h - - don't redefine xmalloc, xrealloc, and xfree if DISABLE_MALLOC_WRAPPERS - is #defined - -config.h.in - - #undef for DISABLE_MALLOC_WRAPPERS - -configure.in - - define DISABLE_MALLOC_WRAPPERS if the --with-purify option is - supplied - -lib/malloc/trace.c - - new function, malloc_trace_bin(N), traces allocations and frees - to bucket N (uses the same type of bitmap as `busy') - -lib/malloc/table.c - - fix wraparound search problem in find_entry when searching for a - free entry when the table is full - - 12/6 - ---- -lib/malloc/table.c - - keep an `overflow bucket' around to use when the table is full, - so find_entry always returns a valid pointer when FIND_ALLOC - is set - - new static variable to keep a count of the number of MT_ALLOC - entries in the mem_table - -lib/sh/{oslib,clktck}.c - - if HAVE_LIMITS_H is defined, include - -lib/sh/oslib.c - - new function, getmaxgroups() returns max number of simultaneous - groups - - new function, getmaxchild(), returns max number of simultaneous - user processes - -general.c - - removed forest of #defines for getmaxgroups() - -externs.h - - new extern declaration for getmaxgroups() - - new extern declaration for getmaxchild() - - new extern declaration for isnetconn() - -lib/sh/netconn.c,shell.c - - new file, isnetconn() from shell.c moved here - -Makefile.in, lib/sh/Makefile.in - - necessary changes for netconn.c - -builtins/ulimit.def - - changed getmaxuprc() to just call getmaxchild() and massage the - return value appropriately - -{jobs,nojobs}.c - - use the value returned by getmaxchild() in - mark_dead_jobs_as_notified instead of static CHILD_MAX - -jobs.c - - new function, compact_jobs_list, removes some number of jobs from - the jobs table and reallocates the table, copying the jobs that - are left from the old table to the new. Compaction happens from - the beginning of the list and removes dead jobs, and we make sure - to keep the last CHILD_MAX jobs as POSIX.2 requires - - call compact_jobs_list from stop_pipeline if we're in a subshell, - there are no free jobs in the jobs table, and the jobs table is - at or above some maximum limit - -execute_cmd.c - - change eval_arith_for_expr to set this_command_name to `((' before - calling evalexp, since it might be changed by evaluating the - loop body between evalexp calls - -trap.c - - change reset_signal to turn off the SIG_TRAPPED flag for the - given signal, so shell builtins and functions running in command - substitutions don't run the signal handlers (traps are not supposed - to be inherited by command substitutions) - -parse.y - - changed parse_string_to_word_list to turn off alias expansion - while parsing the array assignment - - 12/9 - ---- -alias.c - - fix add_alias so that redefining an alias's value also resets the - EXPANDNEXT flag - - 12/10 - ----- -parse.y - - new function, token_is_assignment, called to check whether the text - before `=' makes up a valid assignment token before trying to parse - a compound assignment statement - - new function, parse_compound_assignment, to parse a compound - assignment statement instead of using parse_matched_pair; handles - comments and error reporting in the parser instead of waiting until - expansion time - - changed parse_compound_assignment and parse_string_to_word_list to - allow reserved words in compound array assignments - -lib/readline/doc/rltech.texinfo - - changed the documentation for rl_callback_read_char and - rl_callback_handler_remove to say what happens to the terminal - settings and what needs to be done to reset them - - 12/11 - ----- -bashline.c - - add emacs_edit_and_execute_command, bound to C-xC-e, like vi-mode - `v' command - - add bindable command name `edit-and-execute-command', bound to - run emacs_edit_and_execute_command() - -lib/glob/strmatch.c - - add support for ksh93-like [:word:] character class (isalnum + `_') - -doc/{bash.1,bashref.texi} - - add note to section describing lists to clarify that a sequence of - one or more newlines may be used to delimit a command, equivalent - to a semicolon - - document new [:word:] pattern matching character class - -doc/bash.1, lib/readline/doc/rluser.texinfo - - document `edit-and-execute-command' and its default emacs-mode - binding - -include/chartypes.h - - add defines for TOCTRL and UNCTRL if they're not already defined - -lib/readline/chardefs.h - - #undef UNCTRL if it's defined to avoid cpp redefinition warnings - -lib/sh/strtrans.c - - add \cX (Control-X) escape for $'...' to ansicstr() - - change ansic_quote() to allocate at least four chars for each char - in the string argument, to account for \0xx octal values - - change ansic_quote() to no longer call sprintf for non-printable - characters; just translate the string to octal directly - -print_cmd.c - - change xtrace_print_word_list to call ansic_quote() if - ansic_shouldquote() indicates that there are nonprinting characters - in a word - -builtins/type.def - - changed deprecated long option parsing to just replace the word - in the list with the equivalent short option (-type -> -t) instead - of removing words from the list - - changed describe_command to take a single flags argument instead - of two int args; changed caller - - type now has two new options: -f suppresses function lookup (like - command), and -P forces a PATH search for the name(s) - -builtins/common.h - - flags for describe_command are here - - changed extern declaration of describe_command - -builtins/command.def - - changed call to describe_command to use flags from common.h, and - the right number of arguments - -doc/{bash.1,bashref.texi} - - documented new -f and -P options to `type' - - 12/12 - ----- -lib/readline/rldefs.h - - fixed prototype for _rl_strnicmp - -execute_cmd.c - - select_query now takes a new argument, an int flag saying whether - or not to print the menu the first time through the loop. An - empty line in response to the prompt will always cause the menu - to be reprinted - - changed execute_select_command to cause select_query to reprint - the menu only if REPLY is set to NULL, if KSH_COMPATIBLE_SELECT - is defined - -config-top.h - - define KSH_COMPATIBLE_SELECT, with a comment about its meaning - -lib/readline/readline.c - - change rl_insert_comment to toggle if given an explicit numeric - argument: if the first characters on the line don't specify a - comment, insert one; if they do, delete the comment text - -doc/bash.1, lib/readline/doc/{readline.3,rluser.texinfo} - - documented new behavior of insert-comment with a numeric argument - - 12/13 - ----- -lib/malloc/watch.c - - new file, implements watchpoint functions - -lib/malloc/watch.h - - new file, define some `events' for watchpoints and extern function - and variable declarations for watchpoint code - -lib/malloc/imalloc.h - - #define MALLOC_WATCH if MALLOC_DEBUG is defined - - add __P define as in include/stdc.h if not already defined - -lib/malloc/malloc.c - - remove __P define, now in imalloc.h - - include watch.h if MALLOC_WATCH is defined - - added calls to _malloc_ckwatch in internal_malloc, internal_free, - and internal_realloc - -include/stdc.h - - augment __P define to allow prototypes if PROTOTYPES is defined - -lib/readline/rlstdc.h - - augment PARAMS define to allow prototypes if PROTOTYPES is defined - -lib/malloc/Makefile.in, Makefile.in - necessary changes to include watch.c in libmalloc - -lib/readline/readline.c - - fix rl_delete_text to make sure that the starting position is >= 0 - - _rl_init_line_state (called by readline via readline_initialize) - now sets rl_mark to 0 - - rl_get_{next,previous}_history set rl_mark to 0 if rl_point is at - the end of the line and rl_end otherwise in emacs mode - -lib/readline/kill.c - - rl_yank_nth_arg_internal and rl_paste_clipboard now set the mark - at point before calling rl_insert_text, like rl_yank - - rl_kill_full_line now resets rl_mark to 0 - - rl_kill_line and rl_backward_kill_line now set rl_mark to the - point after the kill in emacs mode - - rl_kill_word and rl_backward_kill_word now set rl_mark to the - point after the kill in emacs mode - - rl_unix_word_rubout and rl_unix_line_discard now set rl_mark to - the point after the kill in emacs mode - -lib/readline/search.c - - noninc_search saves and restores the mark, since it can be changed - while reading the search string - - noninc_dosearch sets the mark at the end of the line, making the - region bound the `inserted' text since rl_point is set to 0 - - rl_history_search_internal sets the mark at the end of the line, - for the same reason - -lib/readline/isearch.c - - rl_search_history now saves and restores the mark - - if no matching lines are found at all when doing an isearch, leave - point where it was instead of moving it to the end of the line - - 12/17 - ----- -lib/readline/rlmbutil.h - - new file, place for multi-byte character defines and extern - declarations - -lib/readline/{bind.c,readline.c,rlprivate.h} - - new bindable variable, `byte-oriented', tracks value of - rl_byte_oriented variable - -lib/readline/mbutil.c - - new file, with multibyte char utility functions - -lib/readline/{complete,display,readline,util,vi_mode}.c - - new code for multibyte characters, derived from IBM patch - - 12/18 - ----- -lib/sh/tmpfile.c - - include posixtime.h for time() extern declaration - -support/bashversion.c - - include if it's available - -lib/readline/{histexpand,input,isearch,search}.c - - new code for multibyte characters, derived from IBM patch - -lib/readline/readline.h - - include rltypedefs.h - - 12/19 - ----- -lib/readline/complete.c - - slight change to mark-directories code to avoid adding a slash if - point is at the end of the line (rl_line_buffer[rl_point] == '\0') - and the previous character was a slash - - change printable_part to not return empty pathnames, which could - happen when completing filenames and a filename with a trailing - slash was passed as the argument. If the portion following the - trailing slash is NULL, ignore it and look for a previous slash. - If there's no previous slash, just return the filename argument - - new variable, rl_completion_mark_symlink_dirs, mirrors the value - of (user-settable with a variable) _rl_complete_mark_symlink_dirs - but may be modified by application-specific completion functions - when appropriate (set in rl_complete_internal and rl_menu_complete) - -lib/readline/readline.h - - extern declaration for rl_completion_mark_symlink_dirs - -pcomplete.c - - if one of the actions is CA_DIRECTORY, set - rl_completion_mark_symlink_dirs to indicate that we want the - trailing slash (might have to relax this) - -lib/readline/doc/rltech.texinfo - - documented rl_completion_mark_symlink_dirs variable - -lib/readline/doc/rluser.texinfo, doc/bash.1 - - documented the fact that `complete -d' and `complete -o dirnames' - force readline to append a slash to symlinks to directories - -builtins/enable.def - - changed enable_shell_builtin to disallow enabling disabled - builtins in a restricted shell - -doc/{bash.1,bashref.texi} - - documented new enable behavior in restricted shells - -doc/Makefile.in - - new rule to make an `RBASH' file documenting the restrictions - imposed by a restricted shell - -expr.c - - broke the code that evaluates variables and returns results out - of readtok() into a new function: expr_streval() - - expr_streval() now performs the standard unset variable error - behavior if `set -u' has been executed and it's asked to look - up an unset variable - - broke the code that frees up the expression context stack into - a new function: expr_unwind() - -variables.c - - fixed bind_int_variable so it handles array element assignment, - so expressions like `b[7]++' and `b[0] = 42' work right - - new function, get_variable_value, returns the string value of - the SHELL_VAR * passed as an argument - - get_string_value now calls get_variable_value with a non-null - result from find_variable - - 12/20 - ----- -lib/readline/rlmbutil.h, mbutil.c - - combined _rl_find_next_mbchar and _rl_find_next_nonzero_mbchar into - a single function - - combined _rl_find_prev_mbchar and _rl_find_prev_nonzero_mbchar into - a single function - -lib/readline/{display,readline,vi_mode}.c - - changed callers of _rl_find_next_mbchar and - _rl_find_next_nonzero_mbchar - -lib/readline/{complete,display,histexpand,readline,vi_mode}.c - - changed callers of _rl_find_prev_mbchar and - _rl_find_prev_nonzero_mbchar - - 12/20 - ----- -lib/sh/mktime.c - - new file, from glibc/gawk, compiled in if system doesn't have a - working mktime(3) - -lib/sh/strftime.c - - new file, from gawk, compiled in if system doesn't have a - working strftime(3) - -lib/sh/Makefile.in, Makefile.in - - changes for mktime.c, strftime.c - -configure.in - - call AC_FUNC_MKTIME, AC_STRUCT_TM, AC_STRUCT_TIMEZONE - - call AC_REPLACE_FUNC(strftime) - -config.h.in - - add defines for TM_IN_SYS_TIME, HAVE_TZSET, HAVE_TM_ZONE, - HAVE_STRUCT_TM_TM_ZONE, HAVE_STRFTIME - -externs.h - - provide an extern declaration for strftime if HAVE_STRFTIME is - not defined and NEED_STRFTIME_DECL is - -lib/tilde/tilde.h - - header files should not include - -parse.y - - replace code in decode_prompt_string that chops up value returned - by ctime(3) with calls to strftime -- as a result, the expansion - of \@ has changed slightly (since it depends on the locale) - - added new \D{format} prompt string escape; `format' is passed to - strftime(3). Empty format is the same as `%X' (locale-specific - representation of the current time) - - combined cases for '\\', '\a', '\e', and '\r' in same case branch - in decode_prompt_string - -doc/{bash.1,bashref.texi} - - documented new \D{format} prompt string expansion - -builtins/printf.def - - use ISO C PRIdMAX instead of INTMAX_CONV - - pass length of format modifiers to mklong instead of computing it - with strlen() - -lib/sh/{fmtulong,fmtullong}.c - - changes from Paul Eggert to make more general - -arrayfunc.c - - when converting a variable to an array, make sure to unset the - dynamic_value and assign_func members of the struct variable, - since they're not valid anymore - - 12/27 - ----- -configure.in - - use AC_HELP_STRING in AC_ARG_WITH and AC_ARG_ENABLE - - remove AC_ARG_ENABLE for largefile, since AC_SYS_LARGEFILE adds - one - - 1/2/2002 - -------- -{alias,bashline,execute_cmd,general,shell,subst,variables,arrayfunc}.c,general.h - - changed some calls to strchr to calls to xstrchr for multibyte - characters - -include/shmbutil.h - - add extern declaration for xstrchr to avoid including externs.h - where it's not appropriate - -{braces,make_cmd,pathexp,subst,arrayfunc}.c, lib/sh/xstrchr.c - - include shmbutil.h - -{stringlib,subst}.c, {externs,subst}.h - - moved substring() from subst.c to stringlib.c, moved declaration - from subst.h to externs.h - -lib/sh/xmbsrtowcs.c - - new file, replacement function for mbsrtowcs - -lib/sh/Makefile.in - - add entries for xmbsrtowcs.c - -Makefile.in - - add dependencies on shmbutil.h to appropriate object files - -lib/glob/strmatch.c - - break character-class testing out into separate function: - is_cclass, in prep for multibyte changes - -{braces,make_cmd}.c - - changes for multibyte characters - -builtins/printf.def - - changes from Paul Eggert to just use intmax_t everywhere an - int/long/quad is needed and print with "%ld" if the number - fits in a long and %PRIdMAX otherwise - - remove getlong, getulong, getllong, getullong, since they're - no longer needed - - use a new type `floatmax_t' to print floating point numbers, the - widest-available floating point type (like `intmax_t'); new - function `getfloatmax' that calls strtold or strtod as appropriate - - remove getdouble, getldouble, since they're no longer needed - -lib/sh/fmtumax.c - - new file, string-to-[u]intmax_t conversion, just includes - fmtulong.c with the right defines - -Makefile.in, lib/sh/Makefile.in - - additions for fmtumax.c - -bashtypes.h - - include if it's available - -expr.c - - arithmetic is now in intmax_t instead of long - -externs.h - - extern declaration for fmtumax - - change extern declarations for evalexp, itos, inttostr, - uitos, uinttostr since they now return or use intmax_t instead - of long - -{execute_cmd,general,mailcheck,subst,variables}.c, parse.y -{array,general,subst,test,variables}.h -lib/sh/{itos,netopen}.c -builtins/{bashgetopt,common}.c, builtins/common.h -builtins/{break,fc,history,jobs,let,printf,pushd,read,shift,wait}.def - - changes for intmax_t shell arithmetic conversion - -doc/{bashref.texi,bash.1} - - documented long->intmax_t shell arithmetic conversion - -sig.c - - in initialize_terminating_signals, if we've already trapped a - terminating signal, don't reset the signal handler for it - - 1/3 - --- -{arrayfunc,pathexp}.c, parse.y - - changes for multibyte chars - -parse.y, lib/sh/strtrans.c - - moved ansiexpand from parse.y to lib/sh/strtrans.c - -parse.y, locale.c - - moved mk_msgstr and localeexpand from parse.y to locale.c - -parse.y - - new function, yy_input_name, returns name of input file from - bash_input.name - - broke the code that parses ((...)) constructs out of read_token - into a new function, parse_dparen() - -externs.h - - new extern declaration for ansiexpand(), mk_msgstr(), and - localeexpand() - -input.h - - new extern declaration for yy_input_name() - -{error,locale}.c - - use yy_input_name for error and other messages - -execute_cmd.c - - change shell_execve to make sure that the file is executable - before looking at the interpreter to find out why the execve() - failed (avoids misleading error message) - -lib/glob/glob.c - - move code that matches leading `.' and skips those filenames into - a separate function: skipname(), so there can be unibyte and - multibyte versions of that function - - 1/7 - --- -subst.c - - more changes for multibyte characters - -print_cmd.c - - change semicolon() so it doesn't output a `;' immediately after a - newline, since that results in a null command, which is a syntax - error - -variables.c - - fix indirection_level_string to turn off set -x while evaluating - PS4 - - 1/8 - --- -builtins/set.def - - make -o options into one struct, instead of separate structs for - option names corresponding to flags and non-flag option names. - This has the side effect of sorting the option names in output - -lib/glob/glob.c - - new function, mbskipname(), multibyte char version of skipname() - - removed all #ifndef SHELL code, this will never be used outside - the shell - -include/posixdir.h - - move REAL_DIR_ENTRY define here from lib/glob/glob.c - -lib/glob/glob_loop.c - - new file, included in glob.c for unibyte and multibyte versions of - glob_pattern_p - - added some forward static function declarations with prototypes - - more changes for multibyte character handling - -lib/glob/Makefile.in - - make glob.c depend on glob_loop.c - - changes for xmbsrtowcs.[co] - -lib/glob/xmbsrtowcs.c - - moved here from lib/sh, since the matching functions use it, and - libglob.a is linked after libsh.a - - 1/9 - --- -lib/glob/smatch.c - - new file, with strmatch (now xstrmatch) and associated functions, - with changes for multibyte chars - -lib/glob/sm_loop.c - - new file, included by smatch.c, with `generic' versions of matching - functions that are compiled twice: once each for single-byte and - multibyte characters - -lib/glob/strmatch.c - - strip out everything except strmatch(), which either calls fnmatch - (if HAVE_LIBC_FNM_EXTMATCH is defined) or xstrmatch - -lib/glob/collsyms.c - - changes for multibyte chars - -lib/glob/Makefile.in, Makefile.in - - changes for new source files - - 1/10 - ---- -lib/readline/complete.c - - new function, rl_completion_mode (rl_command_func_t *func), returns - the appropriate value to pass to rl_complete_internal depending on - FUNC and the value of `show-all-if-ambiguous'. This allows - application completion functions to present the same interface as - rl_complete - -lib/readline/readline.h - - new extern declaration for rl_completion_mode() - -lib/readline/doc/rltech.texinfo - - documented rl_completion_mode - -lib/readline/readline.[ch] - - bumped the version number to 4.3, changing the relevant cpp defines - -configure.in - - require that an installed readline version be at least readline-4.3 - -bashline.c - - converted bash-specific completion functions to use - rl_completion_mode instead of passing TAB unconditionally - -builtins/bashgetopt.c - - the `#' option specifier now means a required numeric argument, - not an optional one - -builtins/type.def - - when converting [-]-{path,type,all} to -[pta], don't bother - freeing and reallocating the option string; just change opt[1] - and null opt[2] - -lib/sh/snprintf.c - - support %ls/%S and %lc/%C for wide strings and characters, - respectively, if HANDLE_MULTIBYTE is defined - -mailcheck.c - - don't print a message about new mail if the file has not grown, - even if the access time is less than the modification time - - 1/14 - ---- -lib/readline/readline.c - - new function, rl_replace_line, to replace the readline line buffer - with the text supplied as an argument - - new function, rl_replace_from_history, replaces readline line - buffer with text from history entry passed as argument (undocumented, - not in readline.h because it requires a definition of - HIST_ENTRY for the prototype) - -lib/readline/readlne.h - - new extern declaration for rl_replace_line - -lib/readline/doc/rltech.texinfo - - documented rl_replace_line - -lib/readline/{isearch,readline,search}.c - - use rl_replace_line and rl_replace_from_history where appropriate - -lib/readline/readline.c - - broke the code that sets point after moving through the history - (_rl_history_preserve_point and _rl_history_saved_point) out - into a separate function, _rl_history_set_point() - -lib/readline/{complete.c,rlprivate.h} - - find_completion_word -> _rl_find_completion_word - - free_match_list -> _rl_free_match_list - -lib/readline/complete.c - - postprocess_matches and _rl_free_match_list now return immediately - if passed a null match list - -variables.c - - new function, find_local_variable, finds a local variable by name - at the current variable context - - in find_variable_internal, call find_local_variable before searching - any of the temporary environments if variable_context > 0 (meaning - we're in a shell function). This lets a local variable - override a variable whose value was passed in the `function - environment' - - 1/15 - ---- -variables.h, execute_cmd.c - - declare variables describing the temporary environments in - variables.h instead of in C files - -findcmd.c, builtins/setattr.def - - instead of calling find_tempenv_variable, use find_variable_internal - and check whether the returned SHELL_VAR * has the tempvar - attribute - -variables.c - - tentative change to lookup order in find_variable_internal so that - function local variables are found before variables in - function_env when executing a shell function - - change make_local_variable to handle making a local variable when - a variable with the same name already appears in one of the - temporary environments - - broke the body of make_var_array out into a new function: - static char **make_env_array_from_var_list (SHELL_VAR **vars) - - new function, make_var_array_internal, takes a hash table to look - in and a pointer to a mapping function and returns a char ** - environment-style list - - make_var_array now just calls make_var_array_internal - - new mapping function, local_and_exported, returns all local variables - in the current variable context with the export attribute set - - new function, make_local_export_array, returns an environment-style - char ** array of exported local variables in current context - - change environment creation order in maybe_make_export_env to - add variables to the environment in opposite order that - find_variable_internal uses. This means that local variables in - shell functions override variables with the same name in the - function_env - - change make_local_variable to set the initial value of the - variable it creates to NULL to make the `is set' and `is null' - tests that the expansion code does work right - - change make_local_variable to inherit the value of a variable with - the same name from the temporary enviroment - - 1/16 - ---- -Makefile.in - - link bashversion with buildversion.o instead of version.o, for - cross-compiling. version.o is for the target system; - buildversion.o is for the build system - -error.c - - add line numbers to internal_error() messages if the shell is - not interactive and running a shell script or a -c command - - report_error now prints non-zero line numbers for non-interactive - shells - -test.c - - test_syntax_error now calls builtin_error() instead of printing - its own messages - -builtins/common.c - - builtin_error now prints line numbers if a non-interactive shell - is running a shell script or a -c command - -print_cmd.c - - in cprintf, remove free_argp, since it's not used - -builtins/history.def - - make `history -n' increment the number of history lines in this - session by the number of lines read from the history file - -arrayfunc.c - - fix array_value_internal to expand the subscript even if the - variable is unset, so side effects produced by the arithmetic - evaluation will take place - -lib/readline/doc/{rluser,rltech}.texinfo - - some fixes for printing in @smallbook format from Brian - Youmans - - 1/17 - ---- -jobs.h - - new PRUNNING, PSTOPPED, PDEADPROC defines for PROCESSes, analogous - to RUNNING, STOPPED, and DEADJOB defines for jobs - -jobs.c - - use PS_RUNNING, PS_DONE, PS_STOPPED values for `running' field - of a PROCESS - - find_pipeline and find_job now take an additional flags argument - that, if non-zero, means to find only running processes; changed - all callers - - changed calls to find_pipeline and find_job made from waitchld - to find only running processes - - find_pipeline takes a third argument: an int *. If it looks in - the jobs list to find the pid, and the arg is non-null, it passes - the job index back to the caller. Used to avoid calls to - find_pipeline immediately followed by find_job with the same PID - -nojobs.c - - a couple of changes to make sure that set_pid_status is never - called with a pid argument of 0 or -1 - -trap.c - - change trap_handler to longjmp to wait_intr_buf (set by wait_builtin) - if a signal is received for which a trap has been set during - execution of the wait builtin (need to include builtins.h and - builtins/builtext.h and declare some extern variables for the - right things to check) - - new variable to keep track of which signal caused the longjmp to - wait_intr_buf, set by trap_handler (wait_signal_received) - -builtins/wait.def - - set the return value of wait when a longjmp(wait_intr_buf, 1) is - done to 128 + wait_signal_received - -{jobs,nojobs}.c - - set wait_signal_received to SIGINT in wait_sigint_handler before - the longjmp(wait_intr_buf, 1) - - 1/18 - ---- -bashline.c - - turn off rl_filename_completion_desired when completing a command - name with a single match only if the first char of that match is - not a `/' - - if there are multiple identical matches for a command name in - attempt_shell_completion, turn off rl_filename_completion_desired - if the first char is not a `/' to avoid readline appending a - slash if there's a directory with the same name in the current - directory - - 1/22 - ---- -lib/readline/complete.c - - new variable, _rl_page_completions, to control whether we want to - run the internal pager when listing completions (defaults to 1) - -lib/readline/rlprivate.h - - extern declaration for _rl_page_completions - -lib/readline/bind.c - - new bindable variable, `page-completions', controls value of - _rl_page_completions - -lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 - - documented `page-completions' variable - -Makefile.in - - use $(INSTALL_SCRIPT) instead of $(INSTALL_PROGRAM) to install - `bashbug' - -aclocal.m4 - - fix small quoting problem in RL_LIB_READLINE_VERSION macro - -lib/readline/terminal.c - - fetch and save terminal's `vs' and `ve' cursor control attributes - - fetch and save terminal's `kI' attribute (string sent by Insert) - - new function, _rl_set_cursor, sets cursor to normal (insert mode) - or very visible (overwrite mode) - -lib/readline/readline.c - - new global variable, rl_insert_mode - - new function to toggle overwrite mode, rl_overwrite_mode - - each new line starts in insert mode - - switching to vi mode or emacs mode resets to insert mode - - reset cursor to normal before returning line - - _rl_replace_text now returns the number of characters inserted, - the return value from rl_insert_text - - new function, _rl_insert_or_replace_text (const char *string, int insert), - either inserts STRING or replaces the number of chars in STRING - with STRING starting at rl_point, depending on value of INSERT - - renamed rl_insert to _rl_insert_char, rl_insert just calls - _rl_insert_char with the same arguments when in insert mode - - new function, _rl_overwrite_char, handles self-insert in overwrite - mode. Does multibyte chars by reading an entire multibyte character - before entering overwrite loop - - new function, _rl_overwrite_rubout, handles RUBOUT when in - overwrite mode, called from rl_rubout - - new function, _rl_rubout_char, old body of rl_rubout; rl_rubout - calls this when not in overwrite mode - -lib/readline/readline.h - - extern declarations for rl_insert_mode and rl_overwrite_mode() - -lib/readline/rldefs.h - - define constants for values of rl_insert_mode - -lib/readline/rlprivate.h - - extern declarations for _rl_set_cursor and _rl_set_insert_mode - - change type of _rl_replace_text to return int - - extern declarations for _rl_insert_char, _rl_rubout_char - -lib/readline/funmap.c - - new bindable name `overwrite-mode', bound to rl_overwrite_mode - -lib/readline/rlconf.h - - define CURSOR_MODE if you want the cursor to show insert or - overwrite mode (only available if both `vs' and `ve' capabilities - are present) - -lib/readline/{complete,parens,readline,search,vi_mode}.c - - change calls to rl_insert to _rl_insert_char - -lib/readline/{readline,search}.c - - change calls to rl_rubout to _rl_rubout_char to avoid overwrite - mode problems - -lib/readline/vi_mode.c - - fix rl_vi_overstrike to just call _rl_overwrite_char, which - handles multibyte chars - -lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 - - document new `overwrite-mode' command - - 1/23 - ---- -lib/readline/readline.c - - return 0 immediately from rl_insert_text if the string to insert - is NULL or "" - -bashline.c - - if a numeric argument is given to one of the bash-specific glob - pattern completion functions (including TAB), append a `*' to - the word before generating matches - - in attempt_shell_completion, when doing glob completion, only - set the match list to NULL if rl_completion_type == TAB and - there is more than one completion. This permits listing completions - with double tabs and displaying ambiguous completions - - new function, bash_glob_complete_word, appends a `*' to the word - to be completed and then globs it. It uses a new filename - quoting function (bash_glob_quote_filename) to avoid quoting - globbing characters in the filename if there are no matches or - multiple matches - -lib/readline/complete.c - - set completion_changed_buffer to 0 in rl_complete_internal if - no matches were produced by the completion generator function - - new variable, rl_completion_suppress_append, suppresses appending - of rl_completion_append_character. Settable by application - completion functions, always 0 when application completion - functions are called (set to 0 by rl_complete_internal and - rl_menu_complete) - - broke the code that assigns default values to readline completion - variables out of rl_complete_internal and rl_menu_complete into - a new function, set_completion_defaults (int what_to_do) - -lib/readline/readline.h - - extern declaration for rl_completion_suppress_append - -lib/readline/doc/rluser.texinfo, doc/bash.1 - - documented behavior of glob-expand-word and glob-list-expansions - when supplied a numeric argument - - documented glob-complete-word - -lib/readline/doc/rltech.texinfo - - documented rl_completion_suppress_append - - 1/24 - ---- -lib/readline/text.c - - new file, text and character handling functions from readline.c - -lib/readline/misc.c - - new file, miscellanous bindable functions and their supporting - code from readline.c - -Makefile.in, lib/readline/Makefile.in - - changes for text.c, misc.c - -lib/readline/bind.c - - change ISKMAP case of rl_invoking_keyseqs_in_map to output - ESC as "\M-" instead of "\e" -- it's closer to the documentation - - change _rl_get_keyname to output ESC as \e instead of \C-[ - (it's easier to understand) - -pcomplete.h - - new flag, COPT_NOSPACE - -builtins/complete.def - - new `-o nospace' option for complete and compgen (though it doesn't - really do anything for compgen, since that doesn't hand anything - off to readline) - -bashline.c - - if a programmable completion specifies COPT_NOSPACE, set - rl_completion_suppress_append = 1 - -lib/readline/doc/rluser.texinfo - - documented new `-o nospace' option to complete and compgen - -doc/{bash.1,bashref.texi} - - documented $'\cX' escape sequence (forgot to before) - - 1/28 - ---- -variables.c - - make_new_variable now takes the HASH_TABLE * as its second - argument; changed callers - - new function, bind_variable_in_table, takes the HASH_TABLE * as - its third paramter; bind_variable calls bind_variable_in_table - with shell_variables as third argument - -variables.h - - new struct var_context, variable context (per-scope -- global, - function local, etc.) - -variables.[ch],builtins/common.[ch] - - moved functions that push and pop a variable context from - builtins/common.c to variables.c; move extern function - declarations to variables.h - - new function, all_local_variables - - variable_in_context is now static, used only by all_local_variables - -variables.[ch],execute_cmd.c - - push_context now takes the function name as an argument for - future use - - push_context takes an indication of whether or not the function is - executing in a subshell and saves the positional parameters only - if not in a subshell - - new functions for managing a stack of variable contexts and - scopes: new_var_context, dispose_var_context, push_var_context, - pop_var_context, push_scope, pop_scope - -builtins/declare.def - - call all_local_variables instead of map_over (...) in declare_internal - - don't call make_local_variable if we're looking at functions - ((flags_on & att_function) != 0), since it's wasted - - make sure VAR is set to NULL if check for variable_context fails - and we didn't just create or fetch a local variable in - declare_internal - - in non-function branch of declare_internal, only call find_variable - if VAR is NULL -- if it's not null, we just created or fetched a - local variable and don't need to do it again - - 1/29 - ---- -variables.[ch] - - the temporary environments (temporary_env, builtin_env, function_env) - are now HASH_TABLEs instead of argv-style arrays of strings (this - is an intermediate step on the way to the new lcc-inspired symbol - table scope structure) - - new internal attribute for variables: att_propagate. This means - to propagate the value out of the temporary environment up the - (for now implicit) chain of variable scopes when the containing - temporary environment is deleted - -variables.c - - assign_in_env now adds to the HASH_TABLE temporary_env instead - of making environment-style strings in an array of strings - - changed the way the temporary environments are merged into the - shell variable table to account for the new HASH_TABLE temp - environments - - changed the way the export environment is created due to the new - structure of the temporary environments - - new function, bind_variable_internal (name, value, table), binds - NAME to have VALUE in TABLE without searching the temporary - environments - - removed: shell_var_from_env_string, bind_name_in_env_array - - variable_in_context now checks the att_local attribute and makes - sure the variable is not invisible - - local_and_exported now makes sure the variable is not invisible - -execute_cmd.c - - we no longer need to copy the temporary environment to function_env - or builtin_env, we can simply use variable assignments - -{findcmd,subst,variables}.c, builtins/{declare,setattr}.def - - since variables from the temporary environments are no longer turned - into SHELL_VARs on the fly, don't dispose the SHELL_VAR returned - by find_variable or find_variable_internal - - need to savestring() the value returned by find_variable if it has - the tempvar attribute before calling bind_variable on it, because - bind_variable will search and bind into the temporary environments - and will free the old value before binding the new. For temporary - environments, these two pointers will be the same, and - bind_tempenv_variable will end up using freed memory - -builtins/{declare,setattr}.def - - set the att_propagate attribute when exporting or making readonly - variables from the temp environment (i.e., `var=value declare -x var' - or `var=value export var' sets the propagate attribute on the entry - for `var' in the temporary environment HASH_TABLE) - -lib/readline/isearch.c - - ^W when reading isearch string yanks the current word out of the - current line into the search string, skipping the portion already - matched - - ^Y when reading isearch string yanks the rest of the current line - into the search string, skipping the portion already matched - - 1/30 - ---- -{print_cmd,variables}.c - - moved indirection_level_string() from variables.c to print_cmd.c - -{externs,variables}.h - - moved extern declaration of indirection_level_string to externs.h - -{general,variables}.c - - moved assignment() from variables.c to general.c - -{general,variables}.h - - moved extern declaration of assignment() to general.h - -{externs,input}.h - - moved extern declaration of decode_prompt_string to externs.h - -print_cmd.c - - include flags.h, don't include stdc.h - -variables.c - - moved some functions around to group functions better - - changed new_shell_variable to explicitly initialize each member - of the created struct variable instead of calling bzero() - - make_new_variable now just calls new_shell_variable instead - of duplicating what it does - - removed some code in bind_function that duplicated what - new_variable does on the newly-created SHELL_VAR - - since there are no local function variables (functions are always - made at the global scope), kill_all_local_variables() doesn't - need to consider functions - - 1/31 - ---- -variables.c - - sort the array of special variables - - short-circuit the search in stupidly_hack_special_variables if - the passed name can't be found in the rest of the array - (that is, if name[0] < special_vars[i].name[0]) - -lib/readline/history.c - - unstifle_history() was returning values exactly opposite of - the documentation - -lib/readline/doc/{hsuser.texinfo,history.3} - - clarified the unstifle_history() documentation a little - - 2/4 - --- -variables.c - - in bind_variable, don't call bind_tempenv_variable after a - find_tempenv_variable succeeds -- just change the value inline. - There's no reason to look it up twice - - change makunbound to only call stupidly_hack_special_variables - if we're not unsetting a function - -variables.[ch] - - new function, unbind_function, like makunbound but doesn't mess - with previous contexts or calling stupidly_hack_special_variables - -builtins/set.def - - change unset_builtin to call either unbind_func or unbind_variable - -builtins/getopts.def - - call unbind_variable(name) instead of makunbound(name, shell_variables) - - 2/5 - --- -lib/glob/sm_loop.c - - use malloc instead of xmalloc in BRACKMATCH and handle failures - -error.c - - add extern declaration of executing_line_number with prototype, - since execute_cmd.h can't be included without including other - files - -lib/readline/parens.c - - include - -lib/malloc/stats.c - - include - - add extern declaration of malloc_free_blocks() with prototype - -pathexp.c - - added some forward declarations with prototypes for static functions - -lib/readline/rlprivate.h - - removed declarations of rl_untranslate_keyseq, rl_discard_argument, - rl_stop_output, rl_alphabetic since they appear in readline.h - - 2/6 - --- -{arrayfunc,execute_cmd,pcomplete,shell}.c - - change calls to makunbound(name, shell_variables) to - unbind_variable (name) - - 2/7 - --- -builtins/getopt.c - - don't defer incrementing of OPTIND when an invalid option is - encountered until the next call to sh_getopt() -- what if OPTIND - is reset before that next call? This means that OPTIND is always - incremented to the next option to be handled when an option is - returned, whether it's valid or not. This is what POSIX-2002 - says to do. - -syntax.h - - new #define, CSUBSTOP - -mksyntax.c - - add "-=?+" with value CSUBSTOP to the syntax table. These are the - valid expansion operators OP in ${param[:]OPword} - -subst.c - - use table lookup for CSUBSTOP in VALID_PARAM_EXPAND_CHAR - - new flags for the string extraction functions: EX_NOALLOC. This - indicates that the functions are being used only to skip over - strings and the result won't be used, so the substring shouldn't - be allocated, copied, and freed - - new flag for string_extract: EX_VARNAME. This serves the same - purpose as the old `varname' parameter. parameter_brace_expand() - changed appropriately - - extract_delimited_string and extract_dollar_brace_string now take - an additional `flags' argument, which may include EX_NOALLOC - - changed callers of extract_delimited_string and - extract_dollar_brace_string appropriately - - string_extract now understands EX_NOALLOC; callers changed - - some smaller code cleanups - - converted char_is_quoted(), unclosed_pair(), and skip_to_delim() - to understand multibyte characters - - 2/11 - ---- -variables.[ch] - - moved to a symbol organization inspired by lcc. The basic structure - is no longer a HASH_TABLE, but a VAR_CONTEXT, which includes a hash - table as one of its members. VAR_CONTEXTs are linked together to do - variable scoping. One nice thing about this is that the entire - symbol table doesn't need to be searched at function scope exit to - remove local variables. Fixes problems with only one instance of - builtin_env and function_env, even though it really is a stack - - shell_variables is now a VAR_CONTEXT *, with a global_variables - variable that points to the bottom of the stack for fast access - - function-scope local variables (assignments specified on the command - line before a function call) and function-local variables (declared - with the `local' builtin) have been unified in the same variable - context, replacing function_env - - assignment statements preceding the `.' and `eval' builtins are now - a separate variable scope VAR_CONTEXT, replacing builtin_env - - temporary_env (a HASH_TABLE) is now the only separate environment - - changes to export environment creation, variable binding, variable - lookup, local variable propagation all changed to work with the - new symbol table/scope structure - - a SHELL_VAR no longer has a `prev_context' member; it's not needed - -execute_cmd.c - - changes to push_context calls to include any temporary variables in - temporary_env; pop_context takes care of propagating any temporary - variables if necessary - - calls to push_scope if `eval' or `.' is called with a list of - preceding variable assignments, and pop_scope called at end of - builtin's execution. pop_scope takes care of merging temporary - variables into the shell environment when appropriate - -builtins/{setattr,declare}.def - - changes to account for variable assignments preceding `local', - `export', `readonly', `declare', etc. to work with the new - variable scoping implementation - -shell.c - - since shell_variables is now a VAR_CONTEXT, call - delete_all_contexts() when the shell is reinitializing instead of - delete_all_variables() - -builtins/common.c - - new function, get_job_by_name(), used by execute_simple_command() - for the `auto_resume' stuff and get_job_spec() - -builtins/common.h - - new set of #defined constants for flags argument to - get_job_by_name() - - 2/12 - ---- -command.h - - new redirection operator: r_reading_string for `here strings' - -parse.y - - new token, LESS_LESS_LESS, for new redirection `here string' - operator: [N]<<< word - - recognize LESS_LESS_LESS and create the appropriate redirection - -{dispose_cmd,copy_cmd,make_cmd,print_cmd}.c - - recognize r_reading_string and do the right thing (dispose_redirects, - copy_redirect, print_redirection, and make_redirection, respectively) - -redir.c - - here_document_to_fd now takes the redirection operator as its - second argument - - new function, write_here_string, expands a here string and writes it - to the here document file descriptor - - here_document_to_fd calls write_here_string for r_reading_string - operator - - handle r_reading_string in do_redirection_internal() and - stdin_redirection() - - 2/18 - ---- -doc/{bash.1,bashref.texi} - - documented here strings - -{configure,Makefile}.in - - bumped version number up to bash-2.05b and the release status - to alpha1 - -expr.c - - make expr_streval understand that variables with the `invisible' - attribute are really unset, and accessing such a variable when - `set -u' is set should be an error - -variables.h - - new accessor macros: var_isset(var) and var_isnull(var), test - whether var->value is NULL - -{eval,subst,variables}.c, builtins/{declare,setattr}.def - - be more consistent about using value_cell(var) instead of - directly referencing var->value - - use var_isset and var_isnull where appropriate - -builtins/help.def - - augmented a couple of help strings with pointers to `info' and - `man -k' - - 2/14 - ---- -variables.h - - new macros to use when setting variable values directly instead of - through bind_variable and its siblings - -{arrayfunc,variables}.c - - use var_setarray and other lvalue macros instead of assigning to - var->value directly - -builtins/setattr.def - - change show_var_attributes to show function definitions separately - from function attributes. This allows the output of `declare -f' - (with other flags), `export -f', and `readonly -f' to be reused as - shell input, instead of the old - - declare -f[flags] func() - { - foo - } - - which has syntax errors. When in posix mode, `export -fp' and - `readonly -fp' still don't print function definitions - - 2/16 - ---- -parse.y - - comment out calls to discard_parser_constructs; no need to call - empty functions - - 2/18 - ---- -lib/sh/memset.c - - replacement function for memset(3) - -lib/sh/Makefile.in, Makefile.in - - additions for memset.c - -configure.in,config.h.in - - check for memset, define HAVE_MEMSET if found, add memset.o to - LIBOBJS if not - -lib/malloc/malloc.c - - removed zmemset(), replaced with calls to memset(3) - -{subst,execute_cmd,lib/sh/netopen}.c - - replaced calls to bzero with calls to memset - -subst.c - - word_split() now takes a second argument: the value of $IFS, so - it doesn't have to look up IFS every time - - word_list_split() now calls getifs() and passes the result to - each call to word_split() as its second arg - - do a quick scan for CTLNUL in remove_quoted_nulls before allocating - new string, copying old string to it, copying over original string - and freeing new string - -eval.c - - don't bother calling dispose_used_env_vars if temporary_env is NULL - -execute_cmd.c - - fix fix_assignment_words to only look up the builtin corresponding - to the first word if one of the words in the list is marked as - W_ASSIGNMENT - -hashlib.c - - renamed hash_string to hash_bucket, which better reflects what it - does - - extracted the portion of hash_bucket that computes the hash out - into a new hash_string() - - made new body of hash_bucket into a macro HASH_BUCKET; function - just calls the macro - - calls to hash_bucket in this file now call HASH_BUCKET macro - - in add_hash_item, just add a new item at the front of the appropriate - bucket list instead of at the end - -hashcmd.h - - reduced FILENAME_HASH_BUCKETS to 53 from 107 - - 2/19 - ---- -hashlib.[ch] - - find_hash_item, remove_hash_item, add_hash_item all take a new - third `flags' argument - - add_hash_item doesn't call find_hash_item if HASH_NOSRCH passed in - flags arg - - find_hash_item will create a new hash table entry if HASH_CREATE is - passed in flags arg - - new function, hash_walk, takes a pointer to a function and a table - and calls the function for each item in the table. If the function - returns < 0, the walk is terminated - - fixed flush_hash_table to set table->nentries to 0 after freeing - all entries - - BUCKET_CONTENTS now has a new `khash' member, what key hashes to; - set by HASH_BUCKET macro (which calls hash_string), assigned in - find_hash_item (HASH_CREATE) and add_hash_item - - find_hash_item and remove_hash_item check `khash' against the - hash of the string argument before calling strcmp - -{alias,hashlib,hashcmd,pcomplib,variables}.c - - changed all calls to {find,remove,add}_hash_item - -builtins/hash.def - - return immediately from print_hashed_commands if there are no - entries in the hash table (this eliminates need for `any_printed' - variable) - - change print_hashed_commands to use hash_walk - -alias.c - - short-circuit all_aliases and map_over_aliases if - HASH_ENTRIES(aliases) == 0 - - simplify map_over_aliases by just allocating enough room in the - returned list for all entries in the aliases hash table, instead - of doing the check and xrealloc - - add_alias now calls add_hash_item with HASH_NOSRCH argument - -pcomplete.h - - sh_csprint_func_t is no more; use hash_wfunc instead - -pcomplib.c - - short-circuit print_all_compspecs if HASH_ENTRIES(prog_completes) - is 0 - - print_all_compspecs now takes a `hash_wfunc *' argument - - print_all_compspecs now just calls hash_walk - -builtins/complete.def - - new function, print_compitem, takes a BUCKET_CONTENTS *, extracts - the right info, and calls print_one_completion - -variables.c - - short-circuit map_over_funcs if HASH_ENTRIES(shell_functions) == 0 - - short-circuit flatten if the passed table has no entries - - bind_variable_internal takes a new fourth argument: `hflags', - to pass to hash table functions - - make_new_variable now passes HASH_NOSRCH flag to add_hash_item - - set_if_not now calls bind_variable_internal and passes - HASH_NOSRCH as flags argument - - bind_function now calls add_hash_item with HASH_NOSRCH argument - - fixed make_local_variable: old_var == 0 && was_tmpvar can never - be true - - if we didn't find an old variable in make_local_variable, call - bind_variable_internal with HASH_NOSRCH argument - - fix push_temp_var to reset variable context to 0 if binding into - global_variables->table - -parse.y - - fix to parse_compound_assignment to avoid core dumps on empty - compound array assignments - -subst.c - - getifs() is now global so read_builtin can call it - -subst.h - - extern declaration for getifs() - - 2/20 - ---- -hashlib.c - - changed hash_string to use a better hash function - - changed HASH_BUCKET to use masking rather than modulus to hash a - string to a bucket -- HASH TABLES MUST NOW BE SIZED BY POWERS - OF TWO - -hashlib.h - - DEFAULT_HASH_BUCKETS is now 64 - -hashcmd.h - - FILENAME_HASH_BUCKETS is now 64 - -pcomplib.c - - COMPLETE_HASH_BUCKETS is now 32 - -variables.c - - TEMPENV_HASH_BUCKETS is now 4 - -alias.c - - new define, ALIAS_HASH_BUCKETS, set to 16, used to size alias table - -hashlib.c - - removed initialize_hash_table; folded code into make_hash_table - - fixed copy_bucket_array to copy the `khash' member of an item - - renamed functions to be more systematic and easier for me: - make_hash_table -> hash_create - hash_table_nentries -> hash_size - copy_hash_table -> hash_copy - find_hash_item -> hash_search - remove_hash_item -> hash_remove - add_hash_item -> hash_insert - flush_hash_table -> hash_flush - dispose_hash_table -> hash_dispose - print_table_stats -> hash_pstats - get_hash_bucket -> hash_items - - changed hash_search to short-circuit if table->nentries == 0 and - HASH_CREATE has not been passed in the flags argument - -{alias,variables,hashcmd,pcomplib}.c - - renamed calls to all renamed functions from hashlib.c - -builtins/kill.def - - don't drop a leading `-' in a pid argument - - call kill_pid with an explicit third argument of 1 if the pid - argument to kill is < -1, rather than rely on the behavior of - kill(2) - - 2/21 - ---- -subst.c - - quoted_strchr is no longer declared `inline' - - skip_double_quoted is no longer declared `inline' - - string_extract_double_quoted is no longer declared `inline' - -lib/readline/input.c - - rl_gather_tyi is now an `int' valued function; returns the number - of characters read (0 or 1) or -1 on error - - if rl_gather_tyi() returns -1 to rl_read_key(), set rl_done to 1 - and return a newline; something is wrong with the input fd - - 2/25 - ---- -variables.[ch] - - IFS is now a special variable - - new special var function, sv_ifs(), called when IFS is set or unset - - call setifs() when IFS is first set in initialize_shell_variables - - call setifs() from make_local_variable and assign_in_env if - appropriate - - if assign_in_env() is called with a var assignment like `VAR=', - make the value in the new SHELL_VAR created be "" like - do_assignment_internal does, since certain parts of the shell use - a NULL value as evidence that the variable is unset (though - attributes may have been assigned) - - if push_temp_var pushes something up to the global_variables table, - make sure that the context is set to 0 - - new function dispose_temporary_env, called by both - dispose_used_env_vars and merge_temporary_env with different `free - func' function pointers; calls sv_ifs after disposing the temporary - environment - - push_exported_var now calls bind_variable_internal instead of - bind_variable - - pop_scope and pop_context now call sv_ifs - -subst.[ch] - - new global variables used to keep track of IFS state, to avoid - having to call find_variable("IFS") all the time: - - ifs_var the SHELL_VAR for IFS - ifs_value ifs_var ? value_cell (ifs_var) : " \t\n" - ifs_cmap bitmap of characters in ifs_value - ifs_firstc first character in ifs_value - - - new function setifs(), sets the aforementioned ifs variables each - time IFS is set or unset, and at nested scope exit - - instead of calling getifs() from inside subst.c, use ifs_value - - getifs() now just returns ifs_value - - use ifs_firstc in string_list_dollar_star() - - only call member() in issep() if separators is more than one char - - don't cache a bitmap every time expand_word_internal() is called; - use ifs_cmap instead - - new macro, isifs(c), checks whether C is in ifs_cmap - -builtins/read.def - - use issep() and isifs() macros instead of looking at $IFS directly - -syntax.h - - make sure macros that access sh_syntaxtab cast the argument to - `unsigned char' before array access - - new macros: issyntype(c, type) and notsyntype(c, type), check - sh_syntaxtab[c] for a particular flag value `type' - - 2/26 - ---- -hashlib.h - - the `data' member of a `BUCKET_CONTENTS' is now a PTR_T - -{hashlib,alias,variables,hashcmd,pcomplib}.c - - removed some casts when assigning to and using `data' member of a - `BUCKET_CONTENTS' - -subst.c - - in split_at_delims, call make_word_list instead of allocating and - initializing a WORD_LIST * directly - -make_cmd.[ch] - - add_string_to_list is now just a macro that calls make_word_list - - make_simple_command now calls make_word_list instead of allocating - a WORD_LIST * directly - - 2/27 - ---- -copy_cmd.c - - copy_word now calls make_bare_word to allocate the copy - - copy_word_list now calls make_word_list to allocate the copy - -shell.h - - include `ocache.h' for simple object caching - - call cmd_init() to initialize the WORD_DESC and WORD_LIST object - caches - -{make,dispose}_cmd.c - - allocate WORD_DESC * and WORD_LIST * vars from their respective - ocaches, and return them to the cache when disposing - -jobs.c - - renamed old `waiting_for_job' variable to `queue_sigchld', which - better reflects its intent: sigchld_handler does not call waitchld - if `queue_sigchld' is non-zero, it simply increments the count of - waiting children - - cleanup_dead_jobs now just sets and clears queue_sigchld instead of - blocking and unblocking SIGCHLD; it calls waitchld at the end if - `sigchld' is non-zero, but that's not really necessary - - in setjstatus, only call xrealloc if `statsize' is less than the - number of processes passed -- no reason to do it if they're the - same - - 2/28 - ---- -sig.[ch] - - reinitialize_signals is no more; initialize_signals takes an - argument saying whether or not we are reinitializing - -builtins/exec.def - - reinitialize_signals() -> initialize_signals(1) - -test.c - - fix filecomp() to work right when one file has a non-positive - timestamp and the other file does not exist - -doc/{bash.1,bashref.texi} - - document what happens for test's -nt and -ot operators when one - file operand exists and the other does not - -jobs.c - - if we haven't messed with SIGTTOU, just manipulate queue_sigchld - in notify_of_job_status instead of calling sigprocmask() - - list_one_job now calls pretty_print_job directly instead of going - through print_job - - pretty_print_job now must be called with SIGCHLD blocked or held - instead of blocking SIGCHLD itself - - changed start_job so that it doesn't call UNBLOCK_CHILD and then - immediately call BLOCK_CHILD again (explicitly or via last_pid()), - call find_last_pid instead of last_pid and then UNBLOCK_CHILD - - changed wait_for_job the same way - - find_last_pid now takes a second argument: block; uses BLOCK_CHILD - if `block' is 1, not otherwise. Changed existing calls: - find_last_pid(j) -> find_last_pid(j, 0) - last_pid(j) -> find_last_pid(j, 1) - `last_pid()' is now gone - - rewrote wait_for_background_pids(); it was a little strange - -copy_cmd.c - - copy_if_command: don't copy null false_case commands - - copy_simple_command: don't copy a null redirection list - -subst.c - - in get_word_from_string and list_string, just check for " \t\n" - directly rather than calling strcmp - - in get_word_from_string and strip_trailing_ifs_whitespace, use - isifs() instead of issep(), since they're never called with - separators != $IFS - - change issep() to call isifs if separators is longer than one - character, since it's never called with anything but "", " ", - or $IFS - - 3/1 - --- -sig.h - - enclose the BLOCK_SIGNAL macro in a do {...} while (0) loop, at it - should have been all along - -lib/readline/doc/rltech.texinfo - - document that readline defaults to stdin/stdout if rl_instream/ - rl_outstream are NULL - -lib/readline/terminal.c - - if an application is using a custom redisplay function, - rl_resize_terminal just calls rl_forced_update_display to tell - (*rl_redisplay_func) to update the display, otherwise call - _rl_redisplay_after_sigwinch - -lib/readline/readline.c - - change readline_internal_setup() so the change to vi insertion mode - happens even if readline_echoing_p is 0 - - don't print the prompt to rl_outstream in readline_internal_setup - if we're not echoing and the caller has defined a custom redisplay - function -- let the redisplay function deal with it - -configure.in - - new option: --enable-mem-scramble, controls memory scrambling on - free() (on by default; only affects use of bash malloc) - -config.h.in - - new option MEMSCRAMBLE, controlled by --enable-mem-scramble - - 3/5 - --- -parse.y - - added ksh-like behavior of [...] to read_token_word: if a `[' is - seen in an assignment context and the previous characters in the - token form a valid identifier, parse the [...] with - parse_matched_pair to allow spaces (and newlines) in the subscript - -bashline.c - - new function bash_servicename_completion_function, for completing - service names from /etc/services - -bashline.h - - new extern declaration for bash_servicename_completion_function - -builtins/complete.def - - allow new `-s/-A service' option to complete and compgen builtins - -pcomplete.h - - new CA_SERVICE define, new ITEMLIST variable it_services - -pcomplete.c - - add callback to bash_servicename_completion_function to generate - list of matching service names for completion - -doc/bash.1,lib/readline/doc/rluser.texinfo - - documented new `-s/-A service' option to complete and compgen - - 3/6 - --- -builtins/read.def - - change hard-coded `0' to new variable `fd' (initially 0) in - preparation for adding `-u fd' option - -bashline.c - - bash_directory_completion_hook calls expand_prompt_string instead - of expand_string (it does the right thing). This keeps expansion - errors from causing a longjmp, which shouldn't happen because of - completion - - command_subst_completion_function was augmented very slightly to - do filename completion on a non-command-word in a command - substitution - - command_subst_completion_function now skips over the lcd that - rl_completion_matches puts in matches[0] if there is more than - one possible completion - - 3/7 - --- -builtins/read.def - - only add the unwind_protect to free `rlbuf' if `edit' is non-zero, - since we won't be using readline otherwise - -lib/sh/zread.c - - renamed zread1 -> zreadintr - -redir.c - - small change to redirection_error() to make a slightly better - guess about the invalid file descriptor if the redirection op is - r_duplicating_input or r_duplicating_output - -include/stdc.h - - new macro, SH_VA_START, to encapsulate the difference between - stdarg va_start and varargs va_start - -{error,pcomplete,print_cmd}.c,builtins/common.c,lib/sh/snprintf.c - - use SH_VA_START - - 3/8 - --- -builtins/read.def - - support for the ksh-like `-u fd' option - -general.c - - new function sh_validfd(fd), returns 1 if fd is a valid open file - descriptor - -general.h - - extern decl for sh_validfd - -bashline.c - - don't call posix_readline_initialize() from initialize_readline(); - sv_strict_posix() should already have taken care of it - - 3/11 - ---- -{error,pcomplete,print_cmd}.c, builtins/common.c - - removed non-varargs versions of functions - -builtins/printf.def - - if the string argument to %q has non-printing characters, call - ansic_quote to quote it rather than sh_backslash_quote - -variables.h - - new attribute: att_trace (and corresponding trace_p() macro). - Functions with this attribute will inherit the DEBUG trap. - Currently ignored for variables - -builtins/declare.def - - new `-t' option to declare/typeset toggle the `att_trace' attribute - -builtins/setattr.def - - check for att_trace and output `-t' flag in show_var_attributes - -execute_cmd.c - - if a function is being traced (it has the `-t' attribute set), - don't turn off the DEBUG trap when it executes - -doc/{bash.1,bashref.texi} - - document the new `-t' option to declare/typeset - - 3/12 - ---- -execute_cmd.c - - don't execute the debug trap in the `cm_simple:' case of - execute_command_internal; run it in execute_simple_command so we - get the line number information right when executing in a shell - function - - run a DEBUG trap before executing ((...)) arithmetic commands, - like ksh93 - - run a DEBUG trap before executing [[...]] conditional commands, - like ksh93 - -eval.c - - add a static forward declaration for alrm_catcher() - -general.c - - add static forward declarations for bash_special_tilde_expansions, - unquoted_tilde_word, initialize_group_array - -variables.h - - add extern declarations for sh_get_env_value, map_over_funcs, - local_exported_variables - -variables.c - - add static forward declarations for dispose_temporary_env, - make_func_export_array - -bashhist.c - - add static forward declaration for check_history_control - -configure.in - - add a call to AC_CHECK_DECLS for strcpy - -config.h.in - - add placeholder for HAVE_DECL_STRCPY define, set by configure - -general.h - - don't declare strcpy if HAVE_DECL_STRCPY is defined with a non-zero - value - -sig.h - - add prototype to typedef of SigHandler - -lib/readline/histlib.h - - removed extern declaration of strcpy() - - include string.h/strings.h directly in histlib.h instead of source - files - -lib/readline/{histexpand,histfile,history,histsearch}.c - - don't include string.h/strings.h now that histlib.h includes it - -lib/tilde/tilde.c - - removed extern declaration of strcpy(), rely on string.h/strings.h - -command.h - - four new redirection types: r_move_input, r_move_output, - r_move_input_word, r_move_output_word, for - [N]<&word- and [N]>&word- from ksh93 - -print_cmd.c - - changes to print r_move_input[_word] and r_move_output[_word] - -copy_cmd.c - - changes to copy r_move_input[_word] and r_move_output[_word] - -dispose_cmd.c - - changes to dispose r_move_input_word and r_move_output_word - -make_cmd.c - - changes to make r_move_input[_word] and r_move_output[_word] from - r_duplicating_{input,output}_word, which is how the new redirs - are passed by the parser - -redir.c - - changes to make r_move_input[_word] and r_move_output[_word] do - the right thing when executed - -builtins/read.def - - print an error message and return failure immediately if zread/zreadc - return < 0 - -doc/{bash.1,bashref.texi} - - documented new [n]<&word- and [n]>&word- redirections - - 3/13 - ---- -lib/readline/isearch.c - - enabled code to allow chars bound to rl_rubout to delete characters - from the incremental search string - -shell.c - - add `-l' invocation option to parse_shell_options; equivalent to - `--login' - - fixed set_login_shell to check first char of base pathname of argv0 - for `-', like other shells - - move the check for make_login_shell after the call to - parse_shell_options because the `-l' option might set it - -doc/{bash.1,bashref.texi} - - documented new `-l' invocation option - -array.c - - new function, array_shift, shifts an array left by a specified - number of elements - - array_walk is now compiled in by default - - array_to_assignment_string now takes a second argument: int quoted. - If non-zero, the result is single-quoted before being returned - - quoted_array_assignment_string has been removed - -array.[ch] - - renamed most of the array functions so that all have an array_ - prefix and are more systematically named - - array_slice now preserves the indicies from the original array - - change array_to_assign to use a static buffer for expanding the - array indices, instead of malloc/free - -{arrayfunc,subst,variables}.c, builtins/read.def - - changed calls to various array functions to use new names - -lib/sh/stringvec.c, externs.h - - renamed all of the functions to have a strvec_ prefix and to have - a more sensible name scheme - - strvec_search's arguments are now supplied in reverse order, so - the char **array is first, like the other functions - - new function, strvec_resize, xrealloc for strvecs - -{alias,array,bracecomp,braces,bashline,execute_cmd,findcmd,general,pathexp, -pcomplete,variables}.c -lib/sh/stringlist.c -builtins/{bind,complete,exec,getopts,pushd,set}.def - - change calls to all functions from lib/sh/stringvec.c - - use strvec_resize where appropriate - -externs.h - - only declare dup2() if HAVE_DUP2 is undefined or DUP2_BROKEN is - defined - -lib/readline/{macro,readline,util}.c, lib/readline/rlprivate.h - - _rl_defining_kbd_macro is gone, use RL_ISSTATE(RL_STATE_MACRODEF) - -lib/readline/readline.h - - new struct readline_state, encapsulates most of readline's internal - state in case you need reentrancy or nested calls to readline() - - extern declarations for rl_save_state, rl_restore_state - -lib/readline/readline.c - - add (undocumented) int rl_save_state (struct readline_state *), - int rl_restore_state (struct readline_state *) - - 3/14 - ---- -array.[ch] - - new function, array_rshift, shifts an array right by a specified - number of elements, optionally inserting a new element 0 - -examples/bashdb/bashdb - - new single-file version of bash debugger, originally modified from - version in bash-2.04 by Gary Vaughan (the old debugger still - appears in examples/obashdb). This version has a more gdb-like - command set - -examples/bashdb/bashdb.el - - new emacs bashdb debugger mode from Masatake YAMATO - -execute_cmd.c - - don't make $LINENO relative to function start unless the shell is - currently interactive -- this is what ksh93 does and what I - believe to be the intent of POSIX.2 (this required changing some - of the test checks because the output has changed) - - run the debug trap for each command in an arithmetic for expression, - like ksh93 does - -lib/readline/vi_mode.c - - redid rl_vi_subst (binding func for `s' and `S') in terms of - rl_vi_change_to: `S' == `cc' and `s' == `c '. This makes undo - work right - - 3/18 - ---- -hashlib.c - - fixed hash_walk to return if the item function returns < 0, instead - of breaking out of the current hash chain - -array.c - - fixed array_walk to return if the item function returns < 0, like - hash_walk - -lib/sh/stringlist.c, externs.h - - new function: strlist_walk, takes a stringlist and a pointer to an - item func. Like other _walk funcs, if item func returns < 0 the - walk is cancelled - - new function: strlist_flush, frees items in the contained list - with strvec_flush - - renamed functions to have a strlist_ prefix and be more systematic - -pcomplib.c,pcomplete.h - - removed redundant `progcomp_initialized' variable - - renamed functions to have `progcomp_' or `compspec_' prefixes - like the hash library - -{bashline,pcomplete}.c,builtins/complete.def - - fixed calls to stringlist functions to use new names - - fixed calls to functions in pcomplib.c to use new names - -pcomplete.c - - made the debugging code #ifdef DEBUG -- it should be mature enough - -builtins/hash.def,parse.y - - use REVERSE_LIST(x, t) instead of (t)reverse_list(x) - -list.c,{externs,general}.h - - renamed the list functions to have a list_ prefix, changed callers - -externs.h,{execute_cmd,stringlib,subst}.c,builtins/common.c,lib/sh/stringvec.c - - word_list_to_argv -> strvec_from_word_list - - argv_to_word_list -> strvec_to_word_list - - moved functions to lib/sh/stringvec.c - -lib/sh/stringvec.c - - changed name of second argument to strvec_from_word_list from `copy' - to `alloc' so the use of `copy' between strvec_from_word_list and - strvec_to_word_list isn't as confusing - - changed name and sense of second argument to - strvec_to_word_list from `copy' to `alloc' for the same reason -- - now both functions agree on semantics of second argument - -lib/sh/stringlist.c - - ditto for strlist_from_word_list and strlist_to_word_list - -subst.c - - changed callers of strvec_to_word_list - - 3/19 - ---- -builtins/hash.def - - added `-l' option to list table or individual targets in reusable - format - - added `-d' option to remove one or more names from the table of - hashed commands (provides `unhash' or `unalias -t' functionality) - -doc/{bash.1,bashref.texi} - - documented new `-l' and `-d' options to `hash' - -hashcmd.[ch] - - renamed functions to have a `phash_' prefix and follow new naming - convention - - phash_remove now returns an int: 1 if command not in hash table, - 0 if filename removed OK - -{findcmd,variables}.c, builtins/{hash,type}.def - - changed callers to use new names from hashcmd.c - -builtins/common.[ch] - - new function, sh_notfound(s), prints standard `not found' message - - new function, sh_invalidid(s), prints standard `invalid identifier' - message - - new function, sh_restricted(s), prints standard `restricted' message - for restricted shells - - new function, sh_invalidnum(s), prints standard `invalid number' - message - - renamed bad_option to sh_invalidopt, changed to print - `invalid option' instead of `unknown option' - - new function, sh_invalidoptname, prints standard `invalid option - name' for long options - - new function, sh_badjob (s), prints standard `no such job' message - - new function, sh_invalidsig (s), prints standard `invalid signal - specification' message - - new function, sh_nojobs (s), prints standard `no job control' message - - new function, sh_needarg (s), prints standard `option requires an - argument' message - - new function, sh_neednumarg (s), prints standard `numeric - argument required' message - - new function, sh_badpid(s), prints standard `not a pid...' message - - new function, sh_erange (s, desc) prints standard `out of range' - message, optionally using `desc' to say what the argument is - -builtins/{alias,command,declare,exec,hash,type}.def - - call sh_notfound() instead of calling builtin_error directly - -builtins/{declare,getopts,read,set,setattr}.def - - call sh_invalidid() instead of calling builtin_error directly - -builtins/{cd,command,enable,exec,hash,source}.def - - call sh_restricted() instead of calling builtin_error directly - -builtins/{printf,read,ulimit}.def, builtins/common.c - - call sh_invalidnum instead of calling builtin_error directly - -builtins/{complete,declare,pushd,set}.def, builtins/bashgetopt.c - - call sh_invalidopt instead of bad_option or builtin_error directly - -builtins/{complete,set,shopt}.def - - call sh_invalidoptname instead of builtin_error directly - -builtins/{fg_bg,jobs,kill,wait}.def - - call sh_badjob instead of calling builtin_error directly - -builtins/common.c, builtins/{kill,signal}.def - - call sh_invalidsig instead of calling builtin_error directly - -builtins/{fg_bg,suspend,wait}.def - - call sh_nojobs instead of calling builtin_error directly - -builtins/{common,bashgetopt}.c, builtins/{hash,kill}.def - - call sh_neednumarg and sh_needarg where required - -builtins/{kill,wait}.def - - call sh_badpid where required - -builtins/{break,fc,history,pushd,shift,ulimit,umask}.def - - call sh_erange where appropriate - -builtins/printf.def - - new static function, printf_erange, prints standard out-of-range - warning message - -builtins/set.def - - changed so that calls to sh_invalidopt always include the leading - `+' or `-' - -builtins/shopt.def - - changed SHOPT_ERROR macro to shopt_error function - -builtins/bind.def - - regularized error messages to `bind: object: error string' like - other error messages - -builtins.h - - the `short_doc' member of a `struct builtin' is now of type - `const char *' - - the strings in `long_doc' array of a struct builtin are now const - -builtins/mkbuiltins.c - - changes for new `const' members of struct builtin - - 3/20 - ---- -lib/readline/histfile.c - - use pointers instead of indexing into buffer when reading the - contents of the history file in read_history_range and - history_truncate_file - - 3/21 - ---- -lib/readline/histfile.c - - new file, with code to mmap the history file for reading and - writing (depends on HAVE_MMAP, currently nothing checks for that) - - 3/25 - ---- -error.[ch] - - new function, err_badarraysub(s), calls report_error with standard - `bad array subscript' message - - new function, err_unboundvar(s), calls report_error with standard - `unbound variable' message - - new function, err_readonly(s), calls report_error with standard - `readonly variable' message - -{arrayfunc,subst}.c - - call err_badarraysub where appropriate - -{expr,subst}.c - - call err_unboundvar where appropriate - -{arrayfunc,variables}.c - - call err_readonly where appropriate - -shell.c - - changed text of bad option error messages to be the same as that - printed for builtin errors - -builtins/common.c - - changed sh_invalidopt to print the invalid option before the rest - of the error message (required some tests to be modified) - - new function, sh_readonly, calls builtin_error with standard - `readonly variable' message - -variables.c,builtins/declare.def - - call sh_readonly where appropriate - -lib/sh/stringvec.c - - added strvec_remove (sv, s), removes S from SV and shuffles rest of - elements down 1 - -lib/sh/stringlist.c - - added strlist_remove(sl, s), just calls strvec_remove on the - component list - -externs.h - - new extern declarations for strvec_remove and strlist_remove - - fixed extern declaration for strvec_search; the arguments were - reversed (unimportant, it's not compiled into the shell) - -subst.c - - change param_expand to call quote_escapes on values retrieved when - expanding the positional parameters - - change parameter_brace_expand_word to quote escapes on values - retrieved when expanding the positional parameters - - fix parameter_brace_substring to quote escape characters on unquoted - substrings extracted from variable values (needed to separate case - VT_VARIABLE from VT_ARRAYMEMBER for this, since, because - get_var_and_type calls array_value for VT_ARRAYMEMBER, we need to - skip over quoted characters in an already-appropriately-quoted - string to find the substring we want) - - fix parameter_brace_substring to quote escape characters in the - value returned by pos_params when expanding subsets of the - positional parameters and not within double quotes (in which case - pos_params() quotes the string for us) - - fix parameter_brace_substring to quote escape characters in the - value returned by array_subrange when expanding subsets of an - array and not within double quotes (in which case - array_subrange() quotes the string for us) - - new function, quoted_strlen(s), does strlen(s) while skipping over - characters quoted with CTLESC (#ifdef INCLUDE_UNUSED, since it's - not used yet) - - changed pos_params() so it always returns a list whose members are - quoted strings if (quoted&(Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) != 0 - -arrayfunc.c - - fix array_value to consistently call quote_escapes, even when a - non-array variable is being subscripted with element 0, in which - case we return the variable value - -lib/sh/strtrans.c - - make the for_echo parameter to ansicstr a `flags' parameter that - has its old `for echo' meaning if flags&1 is non-zero (which is - consistent with the old code) - - Added code to the `flags' parameter to ansicstr so that if flags&2 - is non-zero, CTLESC and CTLNUL are escaped with CTLESC in the - expanded string - - change ansiexpand() to call ansicstr with a `flags' parameter of 2 - - 3/26 - ---- -lib/readline/histfile.c - - when reading and writing the history file, use malloc instead of - xmalloc and handle failures gracefully, so the application doesn't - abort if the history file or history list is too big - - 3/27 - ---- -arrayfunc.c - - changed array_value_internal to take an additional `int *' - parameter, in which is returned the type of array indexing - performed (array[@] vs. array or array[index]) - - changed array_value and get_array_value to take a corresponding - extra parameter and pass it to array_value_internal - - changed array_value_internal to no longer return newly-allocated - memory or quote CTLESC and CTLNUL in the returned string if - `simple' array indexing (subscript not `@' or `*') is being - performed. This makes it more like a variable lookup - -arrayfunc.h - - changed prototypes for array_value and get_array_value - -expr.c - - added new parameter to call to get_array_value in expr_streval - - don't need to free memory returned by get_array_value any more - -subst.c - - quote_escapes now works with multibyte characters - - dequote_string now works with multibyte characters - - dequote_escapes is now needed, so it's compiled in, and it - now works with multibyte characters - - remove_quoted_escapes now just calls dequote_escapes and copies the - result over the argument string - - remove_quoted_nulls now returns its char * argument, parallels - remove_quoted_escapes - - parameter_brace_expand_word now passes the new argument to - array_value and quotes CTLESC and CTLNUL in the result if it's a - `simple' array expansion by calling quote_escapes - - get_var_and_type now returns VT_ARRAYMEMBER for references like - ${array} where `array' is an array variable (just like ${array[0]}). - Documented (in comment) that a VT_VARIABLE return value means that - quote_escapes has been called at some point - - changed callers of get_var_and_type to no longer free value if - VT_ARRAYMEMBER is returned as type - - changed parameter_brace_substring and parameter_brace_patsub to - call dequote_escapes on the value from get_var_and_type if the - type is VT_VARIABLE, since the substring and pattern substitution - code doesn't understand CTLESC quoting - - parameter_brace_substring no longer needs to call quoted_substring - for the VT_ARRAYMEMBER case - - changed parameter_brace_patsub to call quote_escapes on the result - of pat_subst for the VT_VARIABLE and VT_ARRAYMEMBER cases, and to - quote the returned string in the VT_ARRAYVAR and VT_POSPARAMS cases - if the `MATCH_QUOTED' flag isn't set (if it is, the pattern - substitution functions perform any necessary quoting) - - quoted_substring is no longer used; it's now #ifdef INCLUDE_UNUSED - -lib/malloc/mstats.h - - new member in _malstats: u_bits32_t bytesreq, the total number of - bytes requested by the caller via calls to malloc() and realloc() - -lib/malloc/stats.c - - print bytesreq member in _print_malloc_stats - - don't print statistics for buckets for which nmal == 0 (no mallocs) - -lib/malloc/malloc.c - - modified internal_malloc, internal_realloc to keep running total of - number of bytes requested by calling application - -shell.c - - sh_exit is now compiled in; exit_shell calls sh_exit - -error.c - - changed fatal_error, report_error, parser_error to call sh_exit - - 3/28 - ---- -subst.[ch] - - changed Q_NOQUOTE to Q_PATQUOTE; it makes the intent more clear - -subst.c - - moved code from parameter_brace_expand into a new function that - dispatches for pattern substitution: parameter_brace_remove_pattern - - changed structure of parameter_brace_remove_pattern to be like - parameter_brace_patsub and its ilk: call get_var_and_type to - isolate the variable name, move the pattern isolation code out of - the various *_remove_pattern functions into - parameter_brace_remove_pattern and pass the results to the various - functions, use a switch on the return value from get_var_and_type - to decide which function to call, regularized the arguments to the - separate pattern removal functions - - parameter_brace_remove_pattern now properly quotes escape chars in - the returned value - - changed get_var_and_type to call dequote_escapes on the `value' - parameter for case VT_VARIABLE and return the result in *valp, - so the calling functions don't have to do it themselves; changed - callers appropriately - - fixed getpattern() where it broke posix compliance: if you enclose - a pattern removal spec in double quotes, the outer double quotes - have no effect on the pattern (POSIX.1-200x 2.6.2). This uncovered - a bug in the test suite (!) - -pathexp.c - - fixed a problem with quote_string_for_globbing where it would change - consecutive CTLESC chars all to \ instead of changing every other - quoted char - - 3/31 - ---- -lib/malloc/{malloc,stats}.c - - moved declaration of _mstats to malloc.c so stats.o doesn't get - linked into the shell if the stats functions aren't called - - 4/2 - --- -lib/glob/smatch.c - - introduce `XCHAR' define, which is the type of arguments passed to - strcoll/strcmp/strlen and their wide-character equivalents, added - appropriate casts - - static arrays in single-byte version of rangecmp() are `char', not - `unsigned char', so compilers don't complain about calls to strcoll - -lib/glob/sm_loop.c - - casts for `XCHAR' and `XCHAR *' arguments to libc functions - - use prototype declaration for BRACKMATCH if `PROTOTYPES' is defined - to avoid problems with type promotion (unsigned char -> int) - -lib/glob/collsyms.h - - `name' member of struct _COLLSYM is now of type `XCHAR *', since - some compilers don't like `unsigned char *' initializers from - constant strings - -[bash-2.05b-alpha1 released] - - 4/3 - --- -builtins/{evalstring.c,common.h} - - new flag for parse_and_execute, SEVAL_NOFREE, means to not free - the argument string when finished - -lib/readline/text.c - - fixed a trivial typo in _rl_insert_char when reading multibyte - char sequences - - replace calls to ding() with rl_ding() - -include/chartypes.h - - remove SIGN_EXTEND_CHAR and TOASCII macros; they're unused - -make_cmd.c - - include dispose_cmd.h for extern function declarations - -lib/glob/glob.c - - include `shmbutil.h' and `xmalloc.h' for extern function declarations - -lib/glob/smatch.c - - include `xmalloc.h' for extern function declarations - -shell.c - - fix maybe_make_restricted to use its argument instead of global - `shell_name' - -version.c - - update copyright message to include this year - -lib/readline/display.c - - fixes from Jiro SEKIBA to fix autowrapping - when using multibyte characters - -lib/glob/sm_loop.c - - fixed a problem in BRACKMATCH where not enough memory was allocated - to hold a multibyte character when parsing POSIX.2 char class names - -support/config.{guess,sub} - - updated via patch from Paul Eggert with latest GNU additions - -variables.c - - var_lookup should use its `vcontext' argument instead of - unconditionally using `shell_variables' - - 4/4 - --- -builtins/bind.def,doc/{bash.1,bashref.texi} - - changed the usage summary and help text to make it clear that any - readline command that may appear in ~/.inputrc may be supplied as - one of the non-option arguments to `bind' - -builtins/mkbuiltins.c - - added support for `-H' option, which means to write long documentation - for each builtin to a separate file in the `helpfiles' directory - -builtins/Makefile.in - - new target `helpdoc', just creates long doc files in helpfiles - directory - -lib/sh/zcatfd.c - - new file, with zcatfd(int fd, int ofd, char *fn); dumps data from - FD to OFD - -Makefile.in,lib/sh/Makefile.in - - added zcatfd.c, zcatfd.o member of libsh.a - -builtins/evalstring.c - - changed cat_file to call zcatfd(fd, 1, fn) - -builtins/{shopt,colon}.def - - removed the $DOCNAME directive for `shopt', `true', and `false'; - just use the names - - changed $DOCNAME for `:' to just be `colon' instead of - `colon_builtin' - -builtins/reserved.def - - added help entries for ((, [[, `for ((' - -builtins/let.def - - add id++, id--, ++id, --id, ** to help text - - 4/8 - --- -builtins/bashgetopt.[ch] - - changed to allow options beginning with `+', enabled by a leading - `+' in the option string - - new variable, list_opttype, set to `-' or `+' - -builtins/{common.c,{builtin,eval,exit,fg_bg,let,printf,pushd,return,source,wait}.def - - changes to allow a `--' option for every builtin that accepts - operands but not options, as per posix.1-2001 - -builtins/{declare,setattr}.def - - use internal_getopt for parsing options, now that it supports `+' - -builtins/set.def - - use internal_getopt for initial option parse, now that it supports - a leading `+' - - -{configure,Makefile}.in, builtins/{Makefile.in,help.def,mkbuiltins.c} - - support for a new configure option, ``--enable-separate-helpfiles'', - moves the `long' help text to separate help files, installed by - default into ${datadir}/bash, one file per builtin. Off by - default -- it saves 47K, but it's only 47K, and it's in the text - segment - -flags.c - - build internal_getopt() option string argument from flags array at - runtime in shell.c - -shell.c - - new variable to control writing malloc stats at exit: - malloc_trace_at_exit, 0 by default - -lib/malloc/malloc.c - - heavily updated: - o partial page allocated on first call to malloc to make - subsequent sbrks page-aligned no longer wasted - o begin and end range guards are now the same value: the chunk - requested - o coalescing code was changed to attempt to coalesce first two - adjacent blocks on the free list; enabled by default - o blocks of size 32 are now candidates for larger block - splitting, since 32 is the most popular size - o blocks of size 32 are now candidates for smaller block - coalescing - o the IN_BUCKET check was changed to just make sure that the - size isn't too big for the bucket, since the `busy block' - checking code may increase the bucket by one or more, - meaning that the old check would fail and cause a panic when - a chunk allocated in such a way was freed - o bin sizes are now precomputed and looked up in an array - rather than being computed at runtime - o moved the _mstats declaration here to avoid the stats code - being linked in even when no stats functions were called - (only matters if MALLOC_DEBUG is defined) - o malloc now keeps track of the address of the top of the heap - and will return large chunks to the system with calls to - sbrk with a negative argument when freeing the top chunk. - Two thresholds: LESSCORE_FRC means to unconditionally return - memory to the system; LESSCORE_MIN means to return memory if - there's at least one block already on the free list - -lib/malloc/mstats.h - - stats struct now keeps track of number of block coalesces by bin, - and the number of times memory was returned to the system by bin - -lib/malloc/stats.c - - trace_malloc_stats now takes a second argument: the name of the file - to write to. The first `%p' in the template file name is replaced - by the pid - - 4/9 - --- -lib/malloc/imalloc.h - - added some macros derived from dlmalloc and glibc malloc to inline - memcpy and memset if the requested size is <= 32 bytes - -lib/malloc/malloc.c - - use MALLOC_MEMSET instead of memset in internal_{malloc,free} - -include/ocache.h - - use OC_MEMSET (variant of MALLOC_MEMSET) in ocache_free - -configure.in, config.h.in - - check for getservent(), define HAVE_GETSERVENT if found - -bashline.c - - punt immediately from bash_servicename_completion_function if - HAVE_GETSERVENT is not defined (cygwin seems to not define it) - - include "input.h" for extern save_token_state() and - restore_token_state() declarations - - change bash_execute_unix_command to call parse_and_execute with - SEVAL_NOHIST flag so the command doesn't get saved on the history - list - - change bash_execute_unix_command to save and restore the current - command line count and the token state (last_read_token, etc.). - Everything else is saved by either parse_and_execute directly or - the call it makes to push_stream(). The shell_input_line stuff - doesn't need to be saved and restored; it's not computed until - readline() returns - - 4/10 - ---- -lib/glob/glob.[ch] - - glob_filename and glob_vector now take an additional `flags' arg - - define GX_MARKDIRS as possible flag value for glob_filename and - glob_vector - -lib/sh/snprintf.c - - fixed some bugs with handling of `g' and `G' formats - - make sure numtoa returns the fractional part correctly when passed 0 - - implemented thousands grouping for `'' flag character - -lib/sh/rename.c - - a few changes to make it more bulletproof - - 4/11 - ---- -lib/glob/glob.c - - added the couple of dozen lines of code to glob_dir_to_array to - finish implementing GX_MARKDIRS - -builtins/set.def - - changed unset builtin so that it no longer considers unsetting an - unset variable or function to be an error - -lib/readline/display.c - - fix to rl_redisplay for a problem which caused display to be messed - up when the last line of a multi-line prompt (possibly containing - invisible characters) was longer than the screen width - - 4/15 - ---- -aclocal.m4 - - use AC_DEFINE_UNQUOTED in BASH_SYS_DEFAULT_MAIL_DIR instead of - enumerating all of the possible values and using AC_DEFINE - - 4/16 - ---- -Makefile.in, {builtins,support}/Makefile.in - - new variables, CFLAGS_FOR_BUILD and CPPFLAGS_FOR_BUILD, substituted - by `configure' - - changed CCFLAGS_FOR_BUILD to BASE_CCFLAGS, removing $(CPPFLAGS); - CCFLAGS and CCFLAGS_FOR_BUILD now include $(BASE_CCFLAGS) with - (possibly) different values for CPPFLAGS and CFLAGS - - GCC_LINT_CFLAGS now includes $(BASE_CCFLAGS) and $(CPPFLAGS) - instead of CCFLAGS_FOR_BUILD - - new variable, LDFLAGS_FOR_BUILD, right now equivalent to LDFLAGS - - remove $(CPPFLAGS) from recipes for buildversion, mksignames, and - mksyntax - -configure.in - - compute and substitute CFLAGS_FOR_BUILD, CPPFLAGS_FOR_BUILD, and - LDFLAGS_FOR_BUILD - - changed qnx to use LOCAL_LDFLAGS and LOCAL_LIBS instead of putting - everything in LOCAL_LDFLAGS - -builtins/Makefile.in - - remove $(PROFILE_FLAGS) from recipe for building `mkbuiltins' - - use LDFLAGS_FOR_BUILD instead of LDFLAGS in recipe for building - `mkbuiltins' - -Makefile.in - - use $(CC_FOR_BUILD) and $(CCFLAGS_FOR_BUILD) to build auxiliary - test programs (printenv, recho, zecho) - -support/Makefile.in - - use CC_FOR_BUILD and CCFLAGS_FOR_BUILD in recipe for building - `man2html' - -lib/tilde/Makefile.in - - substitute PROFILE_FLAGS, use PROFILE_FLAGS in $(CCFLAGS) - - 4/25 - ---- -Makefile.in, configure.in - - moved RELSTATUS to configure.in; configure substitutes it into - the generated Makefile - -lib/sh/snprintf.c - - fix wchars() to deal with systems where MB_CUR_MAX is not a - constant expression - - 5/2 - --- -lib/sh/shquote.c - - add `,' to list of chars that are backslash-quoted. It doesn't - hurt normal usage and prevents filenames with commas from being - inappropriately split by brace expansion after using - complete-into-braces - - 5/6 - --- -lib/sh/xstrchr.c - - we only need the check of MB_CUR_MAX and the slow code for a - few encodings, and even then only for a subset of the charset - -arrayfunc.c - - some speedups for skipsubscript and multibyte chars from Bruno Haible - -locale.c - - changed set_lang to call setlocale(LC_ALL, ...) if LC_ALL doesn't - already have a value, but doesn't change any shell variables - -include/shmbutil.h - - major speedups from Bruno Haible, mostly concerned with reducing - the number of strlen(3) calls - -subst.c - - change callers of macros in shmbutil.h to add extra argument as - necessary - - skip_single_quoted and skip_double_quoted take another argument: - the length of the string; mostly useful when using multibyte chars - - many speedups from precomputing string lengths at function start - - fixed a small bug in de_backslash in the midst of rewriting for - better efficiency - -{braces,make_cmd,pathexp}.c - - change callers of macros in shmbutil.h to add extra argument as - necessary - -pathexp.c - - fix a one-too-far problem with multibyte chars in - unquoted_glob_pattern_p - -braces.c - - brace_gobbler takes a new argument, the length of the passed string - - expand_amble takes a new argument, the length of the passed string - - 5/7 - --- -subst.c - - modified remove_quoted_nulls to eliminate the memory allocation and - do the copy in place using the same strategy as de_backslash - -lib/readline/{rldefs.h,complete.c} - - new define RL_QF_OTHER_QUOTE, so _rl_find_completion_word can note - that it found a quoting character other than \'" that appears in - rl_completer_quote_characters - - 5/9 - --- -jobs.c - - save and restore old value of jobs_list_frozen when calling trap - handlers from set_job_status_and_cleanup to avoid seg faults when - running recursive trap handlers - - 5/10 - ---- -builtins/common.h - - new #defines to use for value of changed_dollar_vars (provides - information about the caller who wants to blow away the old dollar - variables) - -builtins/common.c - - changed set_dollar_vars_changed to set changed_dollar_vars to one - of the ARGS_* values depending on the caller and environment - -builtins/source.def - - source restores the positional parameters unless the `set' builtin - was called to specify a new set while not executing a shell function - - 5/13 - ---- -POSIX - - new file, was in CWRU/POSIX.NOTES - -doc/{Makefile.in,Makefile} - - changed `posix' rule to modify ../POSIX - -doc/mkposix - - write to `POSIX' by default - -lib/sh/strtrans.c - - when ansicstr is parsing a format string for `echo -e' (or the - equivalent xpg_echo option is enabled), obey the POSIX-2001/SUSv3 - standard and accept 0-3 octal digits after a leading `0' - -doc/{bash.1,bashref.texi} - - updated `echo' description to note that up to three octal digits - are now accepted following `\0' - - 5/16 - ---- -doc/Makefile.in - - remove the generated documentation on `make distclean' if the - build directory and source directory are not the same - -Makefile.in - - descend into `support' subdirectory on a `make clean' and - `make distclean' - - remove parser-built, y.tab[ch] on a `make distclean' if the build - directory and source directory are not the same - -support/Makefile.in - - support various `clean' targets and remove man2html.o and man2html - -{configure,Makefile}.in - - move values for DEBUG and MALLOC_DEBUG into configure.in; on by - default for development versions; off by default for releases - (off for profiling, too) - - 5/21 - ---- -parse.y - - modified the grammar to allow a simple_list followed by yacc_EOF - to terminate a command. This fixes problems with things like - a backslash-newline at the end of an `eval'd string - - change handle_eof_input_unit() to reset the token state before - calling prompt_again(), in case the prompt to be evaluated contains - a command substitution - - 5/23 - ---- -lib/readline/vi_mode.c - - fix `r' command (rl_vi_change_char) when HANDLE_MULTIBYTE is defined - but MB_CUR_MAX == 1 - - 5/24 - ---- -lib/malloc/watch.c - - don't try to print `file' argument to _watch_warn if it's null - -lib/malloc/malloc.c - - changed guard checking code in internal_{malloc,free,realloc} to - access memory as (char *) and copy into a union instead of - casting and dereferencing a pointer to u_bits32_t, since that - results in unaligned accesses which will cause Sparcs to upchuck - - 5/30 - ---- -[bash-2.05b-beta1 released] - -lib/readline/text.c - - fixed a problem with rl_transpose_chars on systems supporting - multibyte characters with a locale that doesn't have any multibyte - chars - - 6/4 - --- -expr.c - - fix a/=0 and a%=0 to throw evaluation errors rather than core dumps - -lib/readline/display.c - - fix core dump when line wrapping a multibyte character (line - accidentally dropped from the original patch) - -lib/readline/mbutil.c - - fix reversed return value from _rl_is_mbchar_matched; fixes problem - with backward-char-search - - 6/10 - ---- -lib/sh/getenv.c - - fix getenv to not free value returned by find_tempenv_variable - - add setenv, putenv, unsetenv for completeness - - 6/12 - ---- -shell.c - - change init_noninteractive to init expand_aliases to the value of - posixly_correct - - don't initialize expand_aliases to posixly_correct anywhere else. - This allows the -O expand_aliases invocation option to work correctly - -general.c - - fix move_to_high_fd to not try the dup2 unless the fd loop results - in an fd > 3; just return the passed file descriptor otherwise - - use HIGH_FD_MAX, defined in general.h, instead of hard-coded 256 - as highest file descriptor to try - -subst.c - - in process_substitute, call move_to_high_fd with `maxfd' parameter - of -1 instead of 64, so move_to_high_fd will use its maximum - - 6/21 - ---- -lib/malloc/malloc.c - - don't bother calling MALLOC_MEMSET if the requested size is 0 - -builtins/setattr.def - - note in short doc that export and readonly can take assignment - statements as arguments - -error.c - - new function, error_prolog(), to capture common error message - prefix code (except for parser errors) - - 6/25 - ---- -aclocal.m4 - - add tests for standard-conforming declarations for putenv and - unsetenv in system header files - -{configure,config.h}.in - - call BASH_FUNC_STD_PUTENV and BASH_FUNC_STD_UNSETENV, define - HAVE_STD_GETENV and HAVE_STD_UNSETENV, respectively, if they - succeed - -lib/sh/getenv.c - - change putenv and unsetenv to take differing prototypes in - stdlib.h into account - - 6/27 - ---- -[bash-2.05b-beta2 released] - - 6/28 - ---- -builtins/common.c - - fix get_job_spec so that %N works when N is the size of the jobs - list (%8 means job 8, but the 7th member of the jobs array, so - it's OK if N == job_slots because the function returns N-1) - - 7/1 - --- -shell.c - - turn off line editing if $EMACS is set to `t' - - 7/10 - ---- -builtins/set.def - - remove mention of `-i' from long help doc, since it has no effect - - 7/17 - ---- -[bash-2.05b released] - - 7/18 - ---- - -lib/malloc/malloc.c - - make sure that the `free_return' label has a non-empty statement - to branch to - - 7/19 - ---- -locale.c - - only call setlocale() from set_lang() if HAVE_SETLOCALE is defined; - otherwise just return 0 - -lib/readline/mbutil.c - - only try to memset `ps' in _rl_get_char_len if it's non-NULL. Ditto - for _rl_adjust_point - - 7/23 - ---- -execute_cmd.c - - fix for executing_line_number() when compiling without conditional - commands, dparen arithmetic or the arithmetic for command - - - 7/24 - ---- -support/Makefile.in - - fix maintainer-clean, distclean, mostlyclean targets - -builtins/common.c - - fix bug in sh_nojobs where it doesn't pass the right number of args - to builtin_error - -bashline.c - - when using command completion and trying to avoid appending a slash - if there's a directory with the same name in the current directory, - use absolute_pathname() instead of just checking whether the first - char of the match is a slash to catch things like ./ and ../ - -examples/complete/bashcc-1.0.1.tar.gz - - a package of completions for Clear Case, from Richard S. Smith - (http://www.rssnet.org/bashcc.html) - -input.c - - fix check_bash_input to call sync_buffered_stream if the passed fd - is 0 and the shell is currently reading input from fd 0 -- all it - should cost is maybe an additional read system call, and it fixes - the bug where an input redirection to a builtin inside a script - which is being read from stdin causes the already-read-and-buffered - part of the script to be thrown away, e.g.: - - bash < x1 - - where x1 is - - hostname - read Input < t.in - echo $Input - echo xxx - -execute_cmd.c - - in initialize_subshell(), call unset_bash_input (0) to not mess with - fd 0 if that's where bash thinks it's reading input from. Fixes - bug reported by jg@cs.tu-berlin.de on 17 July 2002. Should be a way - to check whether or not the current fd 0 at the time of the call has - not been redirected, like in the bug report. Also might eventually - want to throw in a sync_buffered_stream if bash is reading input - from fd 0 in a non-interactive shell into a buffered stream, so the - stream is sync'd -- might be necessary for some uses - - 7/25 - ---- -lib/readline/signals.c - - make sure rl_catch_sigwinch is declared even if SIGWINCH is not - defined, so the readline state saving and restoring functions in - readline.c are always the same size even if SIGWINCH is not defined, - and undefined references don't occur when SIGWINCH is not defined - - 7/30 - ---- -bashline.c - - augment patch from 7/24 to not disable rl_filename_completion_desired - if the first char of the match is `~' - -lib/readline/bind.c - - when creating `shadow' keymaps `bound' to ANYOTHERKEY, don't bind - a key whose type is ISFUNC but whose function is the `fake' - rl_do_lowercase_version (fixes debian bash bug #154123) - -lib/readline/readline.c - - don't call _rl_vi_set_last from _rl_dispatch_subseq if - key == ANYOTHERKEY (when truncated to `sizeof(char)', it will be 0, - which strchr will find in `vi_textmod') - - 7/31 - ---- -lib/readline/input.c - - fix rl_gather_tyi to only slurp up one line of available input, even - if more than one line is available (fixes debian bash bug #144585) - - 8/3 - --- -bashline.c - - better fix for command completion problem -- test for directory - explicitly with test_for_directory before turning off - rl_filename_completion_desired, since that's the case we're trying - to protect against - - 8/5 - --- -include/shmbutil.h - - fix ADVANCE_CHAR macro to advance the string pointer if mbrlen - returns 0, indicating that the null wide character (wide string - terminator) was found (debian bash bug #155436) - -lib/readline/mbutil.c - - fix _rl_adjust_point to increment the string pointer if mbrlen - returns 0 - -support/shobj-conf - - fix for the `-install_name' value in SHLIB_XLDFLAGS assignment for - Darwin from the fink folks - - 8/6 - --- -builtins/exit.def - - broke code that runs ~/.bash_logout out into a separate function: - bash_logout() - -builtins/common.h - - extern declaration for bash_logout() - -eval.c - - call bash_logout() from alrm_catcher(), so timed-out login shells - run ~/.bash_logout before processing the exit trap - -lib/sh/strtrans.c - - implemented $'\x{hexdigits}' expansion from ksh93 - -configure.in - - define RECYCLES_PIDS in LOCAL_CFLAGS for cygwin; don't bother to - link with -luser32 - -examples/loadables/strftime.c - - new loadable builtin, interface to strftime(3) - - 8/7 - --- -parse.y - - parse_arith_cmd now takes a second argument, a flag saying whether - or not to add double quotes to a parsed arithmetic command; changed - callers - - changed parse_dparen so it tells parse_arith_cmd to not add the - double quotes and therefore doesn't need to remove them - - change parse_dparen to add W_NOGLOB|W_NOSPLIT|W_QUOTED flags to word - created when parsing (( ... )) arithmetic command, since the double - quotes are no longer added - -make_cmd.c - - in make_arith_for_expr, set the flags on the created word to - W_NOGLOB|W_NOSPLIT|W_QUOTED - -execute_cmd.c - - change execute_arith_command to expand the expression with - expand_words_no_vars, like the arithmetic for command code does - - fix execute_arith_command to handle the case where the expanded - expression results in a NULL word without crashing - -tests/{arith-for,cprint}.tests - - change expected output to account for no longer adding quotes to - ((...)) commands - - 8/8 - --- -print_cmd.c - - take out the space after printing the `((' and before printing the - `))' in print_arith_command, print_arith_for_command, and - xtrace_print_arith_cmd - -tests/{arith-for,cprint}.tests - - change expected output to account for no longer adding leading and - trailing spaces when printing ((...)) and arithmetic for commands - - 8/17 - ---- -subst.c - - fix issep() define to handle case where separators[0] == '\0', in - which case it always returns false - -lib/readline/histexpand.c - - fix off-by-one error in history_expand_internal when using the `g' - modifier that causes it to skip every other match when matching a - single character (reported by gjyun90@resl.auto.inha.ac.kr) - -doc/{bash.1,bashref.texi} - - make sure that the name=word form of argument to declare/typeset, - export, and readonly is documented in the description - - 8/30 - ---- -lib/readline/histexpand.c - - make history_expand_internal understand double quotes, because - single quotes are not special inside double quotes, according to - our shell-like quoting conventions. We don't want unmatched - single quotes inside double-quoted strings inhibiting history - expansion - - make `a' modifier equivalent to `g' modifier for compatibility with - the BSD csh - - add a `G' modifier that performs a given substitution once per word - (tokenized as the shell would do it) like the BSD csh `g' modifier - - 8/31 - ---- -braces.c - - when compiling for the shell, treat ${...} like \{...} instead of - trying to peek backward when we see a `{'. This makes it easier - to handle things like \${, which should be brace expanded because - the $ is quoted - - 9/7 - --- -aclocal.m4 - - redirect stdin from /dev/null in BASH_CHECK_DEV_FD before testing - the readability of /dev/fd/0, so we're dealing with a known quantity - - 9/11 - ---- -[prayers for the victims of 9/11/01] - -shell.c - - fix maybe_make_restricted to handle a restricted login shell with a - base pathname of `-rbash' and skip over any leading `-' - - 9/13 - ---- -builtins/evalstring.c - - in parse_and_execute, make sure we don't try to run unwind-protects - back to `pe_dispose' after a longjmp back to top_level if the - pe_dispose frame hasn't been initialized - -lib/readline/display.c - - fix problem with prompt overwriting previous output when the output - doesn't contain a newline in a multi-byte locale. This also should - fix the problem of bash slowing down drastically on long lines when - using a multi-byte locale, because it no longer tries to rewrite the - entire line each time. Patch from Jiro SEKIBA - -parse.y - - move the typedef for alias_t that is compiled in if ALIAS is not - defined up before the prototype for push_string, since that takes - an alias_t * parameter - -lib/readline/terminal.c - - bind the termcap description's left and right arrow keys to - rl_backward_char and rl_forward_char, respectively, instead of - rl_forward and rl_backward (which are just there for backwards - compatibility) - -aclocal.m4 - - when testing readability of /dev/stdin, redirect stdin from /dev/null - to make sure it's a readable file - - 9/17 - ---- -config-bot.h - - don't test __STDC__ when deciding whether or not to use stdarg.h; - just use it if it's present - -tests/read2.sub - - redirect from /dev/tty when using `read -t' - - 9/20 - ---- -builtins/history.def - - when reading `new' entries from the history file with `history -n', - fix increment of history_lines_this_session by taking any change - in history_base into account - -lib/sh/pathphys.c - - changes to sh_physpath to deal with pathnames that end up being - longer than PATH_MAX without dumping core - -lib/readline/doc/{history.3,hsuser.texinfo},doc/ bash.1 - - documented new `a' and `G' history modifiers - - 9/25 - ---- -lib/readline/misc.c - - when traversing the history list with arrow keys in vi insertion - mode, put the cursor at the end of the line (like in emacs mode) - -mksyntax.c - - don't try to use \a and \v unless __STDC__ is defined; use the - ascii integer equivalents otherwise - - include "config.h" in the generated syntax.c file for a possible - definition of `const' - -doc/{bash.1,bashref.texi} - - document the meaning of a null directory in $PATH - - 9/26 - ---- -parse.y - - fix set_line_mbstate to handle case where mbrlen() returns 0, - indicating the null wide character - - fix set_line_mbstate so we don't directly compare a char variable - to EOF, since char can (and is) unsigned on some machines - -bashline.c - - change bash_execute_unix_command to save a little bit more state: - last_shell_builtin, this_shell_builtin, last_command_exit_value - - 9/27 - ---- -execute_cmd.c - - tentative change to execute_simple_command to avoid freeing freed - memory in the case where bash forks early but still ends up calling - execute_disk_command, without passing newly-allocated memory to - make_child. This may fix the core dumps with the linux-from-scratch - folks - - 9/28 - ---- -Makefile.in,{builtins,lib/sh}/Makefile.in - - fix up dependencies, mostly on ${BUILD_DIR}/version.h, so that - parallel makes work with GNU and BSD makes - -shell.h - - new struct to save partial parsing state when doing things like - bash_execute_unix_command and other operations that execute - commands while a line is being entered and parsed - -parse.y - - new functions, save_parser_state() and restore_parser_state(), to - save and restore partial parsing state - -bashline.c - - change bash_execute_unix_command to call {save,restore}_parser_state - -builtins/jobs.def - - change execute_list_with_replacements to eliminate a run_unwind_frame - in favor of calling the cleanup explicitly and discarding the frame - -execute_cmd.c - - change execute_for_command to avoid a run_unwind_frame in the case - where the loop variable is readonly or otherwise not assignable - - change execute_select_command and execute_simple_command to use - discard_unwind_frame by running the cleanup code explicitly, instead - of using run_unwind_frame - - make sure execute_select_command decreases loop_level even on error - - 9/30 - ---- -doc/{bash.1,bashref.texi} - - fixed description of `unset' now that unsetting a previously-unset - variable is no longer an error - - 10/3 - ---- -{configure,config.h}.in - - augment check for strtold with additional check to detect the - horribly broken hp/ux 11.x implementation that returns `long_double'; - defines STRTOLD_BROKEN if so - -builtins/printf.def - - define floatmax_t as `double' if STRTOLD_BROKEN is defined - - 10/5 - ---- -lib/readline/keymaps.c - - don't automatically bind uppercase keys to rl_do_lowercase_version - in rl_make_bare_keymap - -lib/readline/readline.c - - explicitly check for ANYOTHERKEY binding to rl_do_lowercase_version - and dispatch to lowercase of key when a prefix is not matched - - 10/12 - ----- -bashline.c - - set COMP_WORDBREAKS in enable_hostname_completion to the value - of rl_completer_word_break_characters - -variables.c - - new special variable COMP_WORDBREAKS, controls the value of - rl_completer_word_break_characters - -variables.h - - new extern declaration for sv_comp_wordbreaks() - -subst.c - - change split_at_delims to behave more like shell word splitting if - the passed value for the delimiters is NULL, indicating that the - function is to use $IFS to split - -{execute_cmd,jobs,test,findcmd,input,make_cmd,redir,shell}.c -builtins/mkbuiltins.c,builtins/{fc,history,source,umask}.def -lib/sh/netconn.c -lib/termcap/termcap.c -lib/readline/histfile.c - - make sure all inclusions of are protected by - HAVE_SYS_FILE_H - -bashline.c - - don't turn off rl_filename_completion_desired in - attempt_shell_completion if the partial pathname contains a slash. - This still doesn't solve the problem of partial pathname completion - starting with a directory in the current directory without a - leading `./'. There's no way to tell the difference between that - and a file found in $PATH (which may contain `.') at the point that - attempt_shell_completion acts - - 10/18 - ----- -locale.c - - don't set lc_all to the default locale when LC_ALL is being unset - - new function, reset_locale_vars(), called to recompute the correct - locale variable values when LC_ALL is unset - - changed set_lang to not set LC_ALL, which it never should have been - doing in the first place, and to maintain a local variable `lang' - corresponding to $LANG - - change get_locale_var to use the precedence posix.2 specifies: - LC_ALL overrides individual variables; LANG, if set, is the default - - change set_locale_var to call get_locale_var to get the appropriate - value for the variable being set or unset - - call get_locale_var instead of using passed value in set_locale_var - to get the defaulting and precedence right - -lib/readline/nls.c - - new function, _rl_get_locale_var(), which does the same thing as - locale.c:get_locale_var(), with the right precedence and defaulting, - using sh_get_env_value to get the right bash variable values - - if HAVE_SETLOCALE is defined, _rl_init_eightbit first calls - _rl_get_locale_var to get the right value for LC_CTYPE, and uses - that in the call to setlocale. If _rl_get_locale_var returns NULL, - call setlocale() to get the current international environment, and, - finally, if that returns null, call setlocale with a second argument - of "" to force the implementation's `native' environment - -pcomplete.c - - change gen_wordlist_completions to dequote the text before comparing - it against the expanded word list - - changed gen_matches_from_itemlist to do the same thing - -bashline.c - - new global function, bash_dequote_word, calls bash_dequote_filename - on the text passed. Used by the programmable completion code - -lib/readline/histfile.c - - make sure that whenever read_history_range returns a non-zero value - that it sets errno to some useful value - - 10/19 - ----- -variables.c - - COMP_WORDBREAKS is now a dynamic variable, mirroring value of - rl_completer_word_break_characters. Makes sure that the variable - always points to dynamic memory if it's not null or the readline - default - -bashline.c - - change enable_hostname_completion to manage a dynamic value of - rl_completer_word_break_characters, since assignments to - COMP_WORDBREAKS can change its value unpredictably - -lib/readline/{complete.c,readline.h} - - rl_completer_word_break_characters no longer has `const' attribute - -bashline.c - - clean up necessary places due to rl_completer_word_break_characters - no longer being `const' - -doc/{bash.1,bashref.texi} - - document new COMP_WORDBREAKS variable - - 10/21 - ----- -print_cmd.c - - fix indirection_level_string to handle the case where the decoded - $PS4 is null without seg faulting - - 10/22 - ----- -builtins/shift.def - - make sure that there is actually an argument when reporting a shift - count that exceeds the number of positional paramters and - shift_verbose is enabled - -lib/readline/rltty.c - - change SET_SPECIAL to call a new function, set_special_char, since - it contains a block. It's called infrequently, so the performance - impact of making it a function should be negligible, and it helps - debugging - - 10/29 - ----- -bashline.c - - make sure the editor in VI_EDIT_COMMAND and EMACS_EDIT_COMMAND is - quoted; it might contain spaces (e.g., `emacs -nw') - -aclocal.m4 - - cache ac_cv_rl_version in RL_LIB_READLINE_VERSION macro - -configure.in - - change logic that sets RL_INCLUDEDIR so that it doesn't try to set - a bogus include path if the argument to --with-installed-readline - is `yes' -- helps with cross-compiling - -lib/readline/histexpand.c - - fix history_tokenize_word so that it handles <( and >( better - - 10/30 - ----- -redir.c - - fix write_here_string so it handles the case where `herestr' expands - to NULL without seg faulting - - 10/31 - ----- -mailcheck.c - - reverse logic flip from bash-2.05 that handled systems that don't - change the atime when the mailbox is accessed; make sure the file - is bigger before we report new mail. This is the case in the vast - majority of cases. Reported by jim@jtan.com - - 11/5 - ---- -parse.y - - change action for `for x; { list; }' and corresponding `select' - production to use \"$@\" instead of just $@, as it is with all the - other actions - - 11/9 - ---- -parse.y - - new flag for parse_matched_pair: P_DQUOTE, indicating that the - pair of characters being matched is between double quotes - - parse_matched_pair now passes P_DQUOTE down to recursive calls: - if the open char to be matched is a `"' or the passed-in flags - include P_DQUOTE, set the local `rflags' variable to P_DQUOTE and - pass `rflags' down to recursive calls - - if `rflags' includes P_DQUOTE, don't try to ansiexpand $'...' or - locale expand $"..."; consistent with other quoting constructs - - 11/11 - ----- -doc/{bash.1,bashref.texi} - - explicitly note that variables referenced in arithmetic expressions - without using `$' evaluate to 0 if they are null or unset - - note that a null variable value evaluates to 0 when used in an - arithmetic context, like when a variable with the `-i' attribute is - assigned a null value - - document the ${!prefix@} expansion as equivalent to ${!prefix*} - - 11/12 - ----- -doc/{bash.1,bashref.texi} - - note that the value of an arithmetic expression is as in C - - change the wording to note that `arithmetic evaluation' (not - arithmetic expansion, which has a different meaning) is performed - on the value assigned to a variable whose integer attribute is set - - 11/13 - ----- -execute_cmd.c - - fix execute_disk_command so it calls exit() after printing the error - message in a restricted shell context if the shell has already forked - (nofork != 0 && there are no pipes) - - 11/19 - ----- -builtins/type.def - - don't report on aliases unless expand_aliases is set and the parser - is performing alias expansion; changed tests/type.tests and - tests/type.right accordingly - - 11/25 - ----- -general.c - - fix for full pathnames including drive letters on cygwin from - Corinna (convert to posix-style paths, which the rest of the - code handles much better) - -lib/readline/text.c - - fixes to overwrite mode from jimmy@is-vn.bg: - o in _rl_overwrite_char, do the overwrite mode self-insert - as one group, even when overwriting more than 1 char - o in _rl_overwrite_char, do the insert before the delete so - that an undo positions the cursor on the character restored, - not to the right of it - o in _rl_overwrite_rubout, don't do rl_insert_char(' ') unless - rl_point < rl_end. Since overwrite-mode self-insert acts as - in insert-mode when at eol, make rubout behave like - insert-mode rubout - - 11/30 - ----- -lib/readline/misc.c - - call rl_replace_line with `1' as second parameter if we're going to - immediately overwrite the undo list - -lib/readline/search.c - - in make_history_line_current, use _rl_replace_text to make the line - replacement an undoable operation. Affects all non-incremental - search functions. - -parse.y - - make behavior introduced on 11/9 dependent on extended_quote - variable, controllable by extquote shopt option. Default setting is - on for backwards compatibility - -builtins/shopt.def - - new `extquote' option to control extended_quote variable - - 12/3 - ---- -jobs.c - - change message printed when attempting to put a background job in - the background with `bg' to include the job id and make the - statement declarative - - 12/10 - ----- -bashhist.h - - define explicit flag values for history_control - -variables.c - - change sv_history_control to use new flag values - - change sv_history_control to parse $HISTCONTROL as a colon-separated - list of values for the history_control variable - -bashhist.c - - change check_history_control to use new flag values and restructure - to remove case statement - - new function hc_erasedups(line); removes all entries matching LINE - from the history list - - call hc_erasedups() from check_add_history after we've determined - that we're saving the line - -doc/{bash.1,bashref.texi} - - documented new options available for $HISTCONTROL and that it can - be a colon-separated list of history control options - - 12/11 - ----- -subst.c - - fix pat_subst() to not increment `e' (pointer to the end of the - matched portion of the string) until after we're sure we're going - around the loop again; fixes problem with empty replacements for - a pattern that doesn't match (bug reported by Don Coleman - ) - - 12/17 - ----- -lib/readline/display.c - - fixes to multibyte redisplay from jir@yamato.ibm.com (Jiro SEKIBA): - o speed up calculation of first difference between old and new - lines in the common case - o don't try to see if we're in the middle of a multbyte char - in update_line (we'll see how this one works out) - - 12/18 - ----- -doc/bashref.texi - - make it clear that the `command-list' function definition may be - terminated by an ampersand before the closing brace - - 12/28 - ----- -redir.c - - set `expanding_redir' flag when expanding words in a redirection - -subst.c - - new function, exp_jump_to_top_level(), to do any word expansion - cleanup before a call to jump_to_top_level from within that file; - sets expanding_redir back to 0 before jump_to_top_level - -variables.c - - in find_variable(), don't call find_variable_internal with a second - parameter of 1 if expanding_redir is non-zero - - in find_variable_internal(), don't search the temporary env if - subshell_environment includes SUBSHELL_FORK (indicating a simple - command) and expanding_redir is non-zero - -parse.y - - increment line_number when we read a \ pair - -array.c - - added array_unshift_element and array_shift_element (which just call - array_shift and array_rshift, respectively), for bash debugger - support - - 1/4/2003 - -------- -doc/{bash.1,bashref.texi} - - note in the section describing the execution environment passed to - children that subshells inherit shell functions marked for export - - note in the section describing shell functions the possibility - that exported functions may result in two entries in the environment - with the same name - -parse.y - - when pushing an alias expansion onto the pushed_string list, append - a space to the expanded definition to make the parser's lookahead - work without using the `mustpop' hack in shell_getc - - 1/8 - --- -shell.c - - change calls to exit() with EX_USAGE as a parameter to use - EX_BADUSAGE instead, since EX_USAGE is defined as 258 and is - technically out of range - - 1/14 - ---- -aclocal.m4 - - check for the termcap functions in libc first: if we don't have - to link in another library, let's not do it - - change the test for mbstate_t to use AC_TRY_COMPILE instead of - AC_TRY_RUN - -doc/{bash.1,bashref.texi} - - document that bash turns line editing off if environment variable - EMACS is set to `t' when it starts up - -doc/bash.1 - - minor change to give the ftp url for the latest version of bash in - the bug reports section - -lib/readline/histexpand.c - - in get_history_event, cast a couple of `const char *' variables to - `char *' in function call parameter lists to avoid compiler warnings - - 1/21 - ---- -builtins/cd.def - - change `cd -' so it prints the current working directory after a - successful chdir even when the shell is not interactive - - 1/31 - ---- -lib/readline/doc/rltech.texinfo - - clarified exactly what is meant by the term `application-specific - completion function', made its use consistent, and documented - what variables are changed before such a function is called - -lib/readline/input.c - - new function, _rl_pushed_input_available(), returns non-zero if - there are characters in the input queue managed by rl_get_char - and _rl_unget_char - -lib/readline/rlprivate.h - - new extern declaration for _rl_pushed_input_available - -lib/readline/callback.c - - change rl_callback_read_char to check _rl_pushed_input_available - and loop if there's something there, so characters don't languish - until more keyboard input is read - -execute_cmd.c - - new variable, last_command_exit_signal, non-zero if - last_command_exit_value result from wait_for was result of a signal - -nojobs.c - - keep track of whether or not a given pid was killed by a signal with - a new flag in the pid_list array - - new function int find_termsig_by_pid(pid_t pid) to get the - terminating signal, if any, for a particular pid - - new function int get_termsig(WAIT status) returns the terminating - signal corresponding to status - - set last_command_exit_signal in wait_for and the various wait_for_xx - functions - -jobs.c - - new functions, process_exit_signal and job_exit_signal, return the - signal that killed a given process or job, if a signal caused its - death - - set last_command_exit_signal in wait_for by calling job_exit_signal - or process_exit_signal appropriately - -subst.c - - don't resend SIGINT to ourselves unless last_command_exit_signal is - SIGINT and last_command_exit_value == 128 + SIGINT. This fixes the - $(exit 130) bug reported by Paul Jarc - -expr.c - - new function, expr_bind_variable, calls bind_int_variable and - then stupidly_hack_special_variables. This fixes the - `let OPTIND=1' bug - -bashline.c - - change history_and_alias_expand_line and shell_expand_line to call - history_expand_line_internal so calls to pre_process_line are - localized - - change history_expand_line_internal and cleanup_expansion_error to - temporarily turn off hist_verify before calling pre_process_line - to avoid the effects described by teirllm@dms.auburn.edu - -parse.y - - don't unconditionally turn off PST_ALEXPNEXT in push_string. This - fixes the multiple alias expansion bug reported by Paul Jarc. - -lib/readline/vi_mode.c - - change rl_vi_subst to push `l' instead of ` ' -- it should be - equivalent, but this has been reported to fix a problem in multibyte - locales - -lib/readline/readline.h - - new state flag value RL_STATE_TTYCSAVED, indicates that save_tty_chars - has been called. Since it's only used and visible internally, it's - undocumented - -lib/readline/rltty.h - - changed all of the members of _rl_tty_chars struct to `unsigned char' - -lib/readline/rltty.c - - set the RL_STATE_TTYCSAVED after save_tty_chars is called - - new function, rl_tty_unset_default_bindings(), resets bindings for - everything rl_tty_set_default_bindings() messes with back to - rl_insert, so rl_tty_set_default_bindings can be called again with - possible changes - - new function that does the bulk of the work for - rltty_set_default_bindings: _rl_bind_tty_special_chars() - - change prepare_terminal_settings so that it can track changes to the - terminal special chars made by stty(1): unset the bindings with - rl_tty_unset_default_bindings before calling save_tty_chars, and - _rl_tty_set_default_bindings after, with the new values from - get_tty_settings(). This implements a long-standing request, most - recently made by Tim Waugh of Red Hat. - -lib/readline/readline.h - - extern declaration for rl_tty_unset_default_bindings() - -lib/readline/readline.c - - new function, reset_default_bindings, calls - rl_tty_unset_default_bindings() to reset the terminal special chars - back to rl_insert and then read the new ones - -lib/readline/doc/rltech.texinfo - - documented rl_tty_unset_default_bindings() - - 2/1 - --- -[prayers and condolences to the families of the space shuttle crew members] - -aclocal.m4 - - add checks for mbrtowc and mbrlen in BASH_CHECK_MULTIBYTE - - new check, BASH_FUNC_CTYPE_NONASCII, checks whether or not the ctype - functions handle non-ascii characters correctly - -config.h.in - - add HAVE_MBRTOWC and HAVE_MBRLEN - - add NO_MULTIBYTE_SUPPORT for new configure argument - - add CTYPE_NON_ASCII - -config-bot.h, lib/readline/rlmbutil.h - - make sure that mbrtowc, mbrlen, and wcwidth are all present before - turning on HANDLE_MULTIBYTE - - turn off multibyte chars if NO_MULTIBYTE_SUPPORT is defined - -configure.in - - new argument --enable-multibyte (enabled by default), allows - multibyte support to be turned off even on systems that support it - -lib/readline/chardefs.h - - define NON_NEGATIVE as 1 if CTYPE_NON_ASCII is defined - - 2/3 - --- -config.h.in - - add HAVE_WCTOMB - -aclocal.m4 - - check for wctomb in BASH_CHECK_MULTIBYTE - - 2/4 - --- -lib/readline/vi_mode.c - - in _rl_vi_change_mbchar_case, make sure the result from wctomb() - is NULL-terminated before trying to insert it with rl_insert_text() - - 2/5 - --- -lib/readline/display.c - - fix to update_line to avoid problems on systems with multibyte - characters when moving between history lines when the new line - has more glyphs but fewer bytes (twaugh@redhat.com) - -lib/readline/vi_mode.c - - use wcrtomb() instead of wctomb() in _rl_vi_change_mbchar_case - -pcomplete.c - - fix init_itemlist_from_varlist to handle the case where the - `varlist' is NULL - -doc/{bash.1,bashref.texi} - - clarified when a simple command may fail without the shell exiting - when -e is set - - 2/13 - ---- -parse.y - - when bash is started with --nolineediting, ignore \[ and \] when - decoding the prompt string - -subst.c - - fix remove_quoted_nulls so that a string with a CTLESC appearing - after a CTLNUL (which was removed) does not leave characters in - the string inappropriately - - 2/14 - ---- -builtins/common.h - - new flag value for parse_and_execute(): SEVAL_RESETLINE, which - allows the caller to specify whether or not the internal idea - of the line number should be reset to 1 - -builtins/evalstring.c - - parse_and_execute() now tells push_string to reset the line - number only if the SEVAL_RESETLINE flag is set by the caller - - 2/15 - ---- -builtins/evalfile.c - - pass SEVAL_RESETLINE from _evalfile() to parse_and_execute() - -subst.c - - if the shell is currently interactive, pass SEVAL_RESETLINE to - parse_and_execute() when doing command substitution - -jobs.c - - add SEVAL_RESETLINE to parse_and_execute while running SIGCHLD trap - -command.h - - add `line' members to case_com, for_com, select_com - - rearranged order of members in some of the command structs, so - `flags' and `line' are first - - added a `source_file' member to the function_def struct; keeps - track of where the function was defined - -doc/Makefile.in - - add some new suffix rules: .dvi.ps - -doc/{bash.1,bashref.texi} - - added text to the description of the `trap' builtin tightening up - the language describing when the ERR trap will be run - -error.c - - if $BASH_SOURCE (internally-maintained) exists, use BASH_SOURCE[0] - in get_name_for_error if the shell is not interactive - -array.h - - new convenience defines: array_push and array_pop - -variables.c - - change get_funcname to return this_shell_function->name only if - arrays have not been compiled into the shell - - change init_funcname_var to initialize FUNCNAME as an array variable - if we have arrays - - new function: get_self(SHELL_VAR *self), a degenerate `dynamic_value' - function for dynamic variables - - new function: init_dynamic_array_var(), a generic dynamic array - variable initializer to handle the common case - - use init_dynamic_array_var() instead of explicit init_dirstack_var() - - use init_dynamic_array_var() instead of explicit init_groups_var() - - new dynamic array variables: BASH_ARGC, BASH_ARGV, BASH_SOURCE, - BASH_LINENO, initialized with init_dynamic_array_var - -shell.c - - initialize BASH_LINENO, BASH_SOURCE, FUNCNAME in open_shell_script - -{execute_cmd,trap}.c - - take out trap_line_number, since parse_and_execute doesn't reset the - line number any more when running the trap commands - -make_cmd.c - - augment make_function_def to get source file name and call - bind_function_def to save the entire FUNCTION_DEF - -variables.c - - new hash table: shell_function_defs, keeps table of shell function - definitions including source file and line number info corresponding - to shell_functions table - - new functions: find_function_def and bind_function_def to manage - the shell_function_defs hash table - - new function: unbind_function_def to remove a function definition - from the shell_function_defs table (right now uncalled) - -variables.h - - extern declaration for bind_function_def, find_function_def - - new extern declaration for unbind_function_def - -execute_cmd.c - - in function prologue and epilogue, push and pop FUNCNAME, - BASH_SOURCE, and BASH_LINENO information - -dispose_cmd.c - - broke the code that disposes a FUNCTION_DEF out into two new - functions: dispose_function_def and dispose_function_def_contents - -dispose_cmd.h - - new extern declarations for dispose_function_def_contents and - dispose_function_def - -copy_cmd.c - - move body of copy_function_def (other than allocating a new - FUNCTION_DEF) to copy_function_def_contents - - make sure to copy the new source_file member of a function_def in - copy_function_def_contents - - copy_function_def is no longer static, copy_function_def_contents - is not either - -command.h - - new extern declaration for copy_function_def_contents and - copy_function_def - -parse.y - - keep a stack of line numbers where case, select, and for commands - start, with a maximum nesting level of 128; increment when reading - word after `for', `select' or `case' in read_token_word; decrement - in grammar actions after parsing a complete for, arith_for, select, - or case command - - create for, case, arith_for, and select commands with an extra - line number (word_lineno[word_top]) argument - -make_cmd.c - - make_for_or_select, make_for_command, make_case_command, and - make_select_command all take an extra `line_number' argument - -make_cmd.h - - corresponding changes to extern declarations for those functions - - 2/16 - ---- -{execute_cmd,shell,variables}.c - - follow each call to remember_args with a call to push_args or - pop_args to manage the BASH_ARGV and BASH_ARGC arrays. Only set - when the shell is started to run shell script or runs a shell - function. Doesn't handle `set' or `shift' yet, nor `source'. - -execute_cmd.c - - keep track of the level of subshells with a new variable, manipulated - in execute_in_subshell - - set currently_executing_command in execute_command_internal(), - even if we're running a trap - - better line number management when executing simple commands, - conditional commands, for commands in execute_command_internal() - and the various functions that implement the commands - (execute_cond_command, execute_for_command, execute_etc.) - -variables.c - - new dynamic variable BASH_SUBSHELL, with new get_subshell and - assign_subshell functions to manipulate it - - new functions push_args (WORD_LIST *list) and pop_args (void) to - manage the BASH_ARGC and BASH_ARGV dynamic array variables - -variables.h - - new extern declarations for push_args and pop_args - -builtins/evalfile.c - - in _evalfile, do appropriate things to the FUNCNAME, BASH_ARGV, - BASH_ARGC, BASH_SOURCE, and BASH_LINENO variables - -support/mksignames.c - - add another fake signal for `trap'; make NSIG+2 == `RETURN' - -trap.c - - _run_trap_internal now returns an int: the exit value of the command - run as the result of the trap - - run_debug_trap now returns an int: the exit value of the command - run as the result of the trap - - RETURN is a new special trap - - new function: set_return_trap(char *command) interface for the rest - of the shell, like set_{debug,error}_trap - - new function: run_return_trap() - - command substitution and other child processes don't inherit the - return trap - -trap.h - - new extern declaration for set_return_trap() and run_return_trap - - new defines for RETURN_TRAP; increment BASH_NSIG - - change extern declaration for run_debug_trap() since it now returns - an int - -shell.c - - new invocation long option: --debugger, turns on debugging and - sets internal `debugging_mode' variable - -execute_cmd.c - - new code to save return trap when executing a shell function, so - shell functions don't inherit it - - run debug trap before binding the variable and running the action - list in a `for' command - - run debug trap before binding the selection variable and running - the query in a `select' command - - run debug trap before running matcher in a `case' command - -builtins/set.def - - new `set -o functrace' (set -T), causes DEBUG trap to be inherited - by shell functions - - new `set -o errtrace' (set -E), causes ERR trap to be inherited - by shell functions - -flags.c - - new flags -E and -T, control error_trace_mode and - function_trace_mode respectively - -flags.h - - new extern declarations for error_trace_mode and function_trace_mode - - 2/17 - ---- -doc/bashref.texi - - changed the `dircategory' as per Karl Berry's suggestion - -doc/texinfo.tex - - update to version of 2003/02/04 from texinfo.org - -support/texi2dvi - - update to version 1.14 from texinfo-4.5 distribution - - 2/20 - ---- -support/config.{guess,sub} - - update to versions of 2002/11/30 - -lib/readline/doc/manvers.texinfo - - renamed to version.texi to match other GNU software - - UPDATE-MONTH variable is now `UPDATED-MONTH' - -lib/readline/doc/{hist,rlman,rluserman}.texinfo - - include version.texi - -doc/version.texi - - new file, with standard stuff matching other GNU distributions - -{doc,lib/readline/doc}/Makefile.in - - include right stuff for `version.texi' - -lib/readline/doc/{rluserman,rlman,hist}.texinfo - - use @copying and @insertcopying and @ifnottex instead of @ifinfo - - add FDL as an appendix entitled `Copying This Manual' - -lib/readline/doc/{rltech,rluser,hstech,hsuser}.texi - - changed the suffix from `texinfo' to `texi' - -lib/readline/doc/{rlman,rluserman}.texinfo, doc/bashref.texi - - include rltech.texi,rluser.texi,hstech.texi, and hsuser.texi - -lib/readline/doc/Makefile.in,doc/Makefile.in - - made appropriate changes for {{rl,hs}tech,{rl,hs}user}.texi - -lib/readline/doc/{rlman,rluserman}.texinfo - - changed the suffix from `texinfo' to `texi' - -lib/readline/doc/hist.texinfo - - renamed to history.texi - - 2/25 - ---- -pathnames.h.in - - moved pathnames.h here so value of DEBUGGER_START_FILE can be - substituted by configure - -aclocal.m4 - - added AM_PATH_LISPDIR for debugger - -configure.in - - added some variables: `bashvers', `relstatus' to use info in more - than one place - - call AM_PATH_LISPDIR - - new option: --enable-debugger, sets DEBUGGER cpp option - - new option with AC_ARG_VAR: DEBUGGER_START_FILE - - make `pathnames.h' a file generated by configure - -Makefile.in - - add rule to create pathnames.h - -builtins/declare.def - - added extra line number and source file name to `declare -F' output - if `--debugger' is used at startup - -builtins/evalfile.c - - call run_return_trap from source_file before returning the result - from _evalfile() - -execute_cmd.c - - call run_return_trap in execute_function before restoring the old - context - -builtins/source.def - - arrange to save and restore DEBUG traps when sourcing files if - function_trace_mode (set -o functrace) is not set - -print_cmd.c - - broke print_for_command, print_select_command, print_case_command - into two functions each: one to print the `header' and one for - the body - - print_cond_command is no longer static - - print_arith_command now takes a WORD_LIST *, since it doesn't - actually do anything with the ARITH_COM it's passed except print - the enclosed WORD_LIST - - print_arith_command is no longer static - -externs.h - - extern declarations for print_{for,select,case}_command_head, - print_cond_command, print_arith_command - -{.,builtins,lib/sh}/Makefile.in - - corrected dependencies on pathnames.h, since it's now created in - the build directory - - 3/5 - --- -lib/glob/glob.c - - handle alloca() failing (it's supposed to return NULL) - - use malloc() (with its attendent bookkeeping) instead of alloca() - in glob_filename() - -subst.c - - check whether shell_glob_filename returns NULL in - glob_expand_word_list - - change parameter_brace_expand_rhs to handle cases like - ${a[2]:=value} by properly creating the array element instead of a - variable named `a[2]' (reported by ) - -variables.c - - change bind_int_variable to use valid_array_reference instead - of looking for `[' - -lib/readline/vi_mode.c - - check for `a' in _rl_vi_done_inserting so the text inserted by an - `a' command can be reinserted with a `.' - -lib/readline/readline.c - - when entering vi insertion mode in readline_internal_setup(), make - sure that _rl_vi_last_key_before_insert is set to `i' so that undo - groups and redo work better (reported by ) - -lib/glob/sm_loop.c - - handle ?(...) in a pattern immediately following a `*', instead of - ignoring the `(' and treating the `?' as a single-char match, as - long as FNM_EXTFLAG is set (reported by ) - -aclocal.m4 - - new test for presence of struct timezone, BASH_STRUCT_TIMEZONE - -config.h.in - - add HAVE_STRUCT_TIMEZONE - -configure.in - - call BASH_STRUCT_TIMEZONE - -execute_cmd.c - - don't try to use `struct timezone' in calls to gettimeofday unless - HAVE_STRUCT_TIMEZONE is defined; use (void *)NULL otherwise - - 3/20 - ---- -execute_cmd.c - - new variable, the_printed_command_except_trap, saves the command - being executed before a trap is executed, for the debugger - -trap.c - - if in debugging mode, let command substitutions and other child - processes inherit the DEBUG and ERR traps if the `functrace' - (which is really a bad name, given this semantic) or `errtrace' - options, respectively, have been set - -shell.c - - local_pending_command renamed to command_execution_string; no longer - static - -variables.c - - new dynamic variable, BASH_COMMAND, set to the command string - currently executing, or the one that caused a trap to execute - (mapped to the_printed_command_except_trap) - - new variable, BASH_EXECUTION_STRING, set to the argument to the - -c invocation option, if the shell was started that way - - 3/22 - ---- -execute_cmd.c - - changed execute_for_command, eval_arith_for_expr, - execute_select_command, execute_arith_command, execute_cond_command, - execute_simple_command to implement new DEBUG trap semantics - for the debugger: if the DEBUG trap commands return a non-zero - status and debugging_mode is non-zero, we skip the command to be - executed - -trap.c - - change run_debug_trap for the debugger: if we're in the debugger - and the DEBUG trap returns 2 while we're in a function or sourced - script, we force a `return' - -shell.c - - new function, start_debugger(), that sources the debugger start file - and turns the debugger on - -builtins/shopt.def - - new settable option, `extdebug', turns on debugging_mode, as if - --debugger had been supplied at invocation (but does not source - debugger startup file) - -trap.c - - make sure that run_exit_trap arranges for `returns' to come back - there, too, so a `return' executed by an `exit' invoked within a - shell function behaves correctly - -support/shobj-conf - - change darwin/MacOS X stanza based on advice from mac os x developers - -lib/sh/mailstat.c - - set the atime member of the synthesized stat struct to 0 if `cur/' - is empty, rather than leaving it undefined - - 3/24 - ---- -builtins/caller.def - - new builtin to provide a call stack for the debugger - -builtins/evalfile.c - - added a second `flags' argument to source_file() - - new flag value for flags argument to _evalfile(): FEVAL_NOPUSHARGS. - If included in flags arg, it means to not manipulate the BASH_ARGV - and BASH_ARGC arrays - -builtins/common.h - - change prototype for source_file() - -builtins/source.def - - add flag value to call to source_file(): set to 1 if we replaced - the positional parameters - - add call to push_args if additional arguments supplied to the - source builtin - - add call to pop_args in maybe_pop_dollar_vars - -execute_cmd.c - - run the debug trap in execute_function so the debugger can stop - before the first command in a function body is executed - - modify subshell_level before executing a builtin or function in a - subshell - - print `for', `select', `case' command heads when set -x is enabled - -print_cmd.c - - `xtrace_print_word_list' now takes an additional flags argument, - which, if non-zero, says to print indirection_level_string() - - new functions to print for, select, and case command heads when - set -x is enabled - - add spaces after `((' and before `))' in xtrace_print_arith_command - -externs.h - - changed extern declaration for xtrace_print_word_list - - new declarations for xtrace_print_{for,case,select}_command_head() - -subst.c - - modify subshell_level when executing a command substitution - - 3/25 - ---- -execute_cmd.c - - use `line_number' in executing_line_number instead of looking into - the current command if it's a simple command; rearrange code to - make this simpler to compile in and out - - need to save and restore value of currently_executing_command around - calls to debug trap and return trap in execute_function - -make_cmd.c - - make sure make_arith_for_command() disposes the WORD_LIST * it is - passed, since nothing else does and it's not used directly - - 3/28 - ---- -Makefile.in - - fixed dependencies for `error.o' on shell.h and version.h -- makes - parallel makes (gmake -j 4) work correctly - -doc/{bash.1,bashref.texi} - - documented all new features added to support the debugger - - 4/1 - --- -lib/sh/shquote.c - - make sure CTLESC and CTLNUL characters are escaped with CTLESC - by sh_double_quote, sh_backslash_quote and - sh_backslash_quote_for_double_quotes - Fixes vulnerability reported by svdb@stack.nl - -shell.h - - new `pipestatus' member of sh_parser_state_t, to save and restore - $PIPESTATUS - -parse.y - - changes to save_parser_state and restore_parser_state to save and - restore $PIPESTATUS - -builtins/read.def - - add a call to word_list_remove_quoted_nulls before assigning the - word list read from standard input to an array variable. Fixes - bug reported by holzhey@ppprs1.phy.tu-dresden.de - - 4/3 - --- -execute_cmd.c - - in execute_null_command, if redirections are supplied, make sure - things like 3 for possible definitions of intmax_t, uintmax_t - (reported by ro@techfak.uni-bielefeld.de) - - 7/30 - ---- -parse.y - - remove checking for `time' reserved word from special_case_tokens(); - use regular mechanism in CHECK_FOR_RESERVED_WORD. This allows `time' - to be aliased. (Reported by Glenn Morris - ) - - 7/31 - ---- -lib/readline/history.h - - extern declaration for history_write_timestamps - -lib/readline/histfile.c - - don't write timestamps to the history file in history_do_write - unless history_write_timestamps is set to non-zero by the application - (set to 0 by default) - -lib/readline/doc/{hstech.texi,history.3} - - document history_write_timestamps - -variables.[ch] - - new special variable function, HISTTIMEFORMAT; special function - sets history_write_timestamps to 1 if HISTTIMEFORMAT is set - - 8/4 - --- -builtins/history.def - - added support for printing time stamps based on the value of the - HISTTIMEFORMAT variable when displaying history entries - -doc/{bash.1,bashref.texi} - - added description of new HISTTIMEFORMAT variable - - 8/5 - --- -config-top.h - - remove /usr/ucb from any default paths - -mailcheck.c - - make_default_mailpath now returns NULL if DEFAULT_MAIL_DIRECTORY - is not defined - - remember_mail_dates now returns if make_default_mailpath returns - NULL - -config-bot.h - - reorganized the sections; provide an explicit placeholder for - builders to #undef any feature defines they don't want that - configure creates for them, like the default mail path - - 8/9 - --- -config.h.in - - add HAVE_REGEX_H, HAVE_REGCOMP, HAVE_REGEXEC for detection of POSIX.2 - regular expression functions - - add COND_REGEXP define to enable and disable the =~ operator for - matching extended regular expressions in [[...]] commands - -configure.in - - new option, --enable-cond-regexp, enables =~ and code to perform - regular expression matching in [[...]] - -config-bot.h - - undef COND_REGEXP if the OS doesn't provide posix regexp support - -doc/bashref.texi - - documnent new --enable-cond-regexp option to configure - - 8/18 - ---- -support/shobj-conf - - support for shared objects on FreeBSD-gnu (from Robert Millan) - - 8/25 - ---- -lib/sh/shmatch.c - - new file, shell interface to posix extended regular expression - matching - -externs.h - - new extern declarations for functions in shmatch.c - -execute_cmd.c - - incorporate code into execute_cond_node that does extended regular - expression matching for the =~ operator - -parse.y - - add `=~' to the list of binary operators accepted by the conditional - command parser - -doc/{bash.1,bashref.texi} - - documented =~ conditional binary operator and the BASH_REMATCH - variable - - 8/27 - ---- -lib/readline/display.c - - take multibyte characters into account when looking for quoted - substrings on which to do completion (fix from jir@yamato.ibm.com) - -lib/readline/util.c - - fix typo in _rl_strpbrk - -lib/readline/rldefs.h - - use function version of _rl_strpbrk in multibyte locales, because - it understands to skip over special characters in multibyte - character sequences - - 8/28 - ---- -jobs.c - - in wait_for, check for window size changes if a job that exits due - to a signal or is stopped was in the foreground, not just if it's - the current job - - 9/10 - ---- -support/config.{guess,sub} - - add support to recognize FreeBSD running on the amd64 - -subst.c - - if the new `fail_glob_expansion' variable is non-zero, globbing that - fails to match anything causes an expansion error - -builtins/shopt.def - - new `failglob' expansion: if enabled, failed globs cause an error - -test/shopt.right - - take `failglob' into account - -doc/{bash.1,bashref.texi} - - documented new `failglob' option and its effects - - 9/12 - ---- -findcmd.c - - fix file_status to treat the mode bits and uid right -- in particular, - don't assume the `other' bits always apply. Bug reported by - ; fix inspired by - -command.h - - new word flag: W_NOCOMSUB, meaning to not perform command - substitution on a word - -subst.c - - new flag for param_expand: PF_NOCOMSUB. If non-zero, $(...) - command substitutions are not expanded, but returned unchanged - - change expand_word_internal to pass through `` command substitutions - unchanged if (word->flags & W_NOCOMSUB) != 0 - - change expand_word_internal to pass PF_NOCOMSUB to param_expand - if (word->flags & W_NOCOMSUB) != 0 - -builtins/shopt.def - - rename set_interactive_comments to set_shellopts_after_change, which - more accurately reflects its purpose - -syntax.h - - add a define for isblank() in case the system doesn't provide one - -jobs.c - - change raw_job_exit_status to understand `pipefail', using the new - `pipefail_opt' variable - -flags.[ch] - - declare pipefail_opt - - reset pipefail_opt to 0 in reset_shell_flags - -builtins/set.def - - add `set -o pipefail' and document it in help output - -doc/{bash.1,bashref.texi} - - document `set -o pipefail' and the effect of the pipefail option - -mksyntax.c,syntax.h - - sh_syntaxtab is no longer `const' - - new generated variable, sh_syntabsiz, set to number of entries in - sh_syntaxtab, written to generated syntax.c - -locale.c - - new function, locale_setblanks(), sets each member of the current - locale's class to have the CSHBRK flag in sh_syntaxtab - - 9/17 - ---- -arrayfunc.c - - change convert_var_to_array to not set array[0] to a NULL value - (if the scalar variable had no value; e.g., after being created - with `local arrayvar') - -lib/readline/display.c - - save and restore the value of prompt_invis_chars_first_line in - rl_{save,restore}_prompt, and reinitialize it to 0 before printing - something in the message area - -lib/readline/bind.c - - new functions: rl_bind_keyseq_if_unbound_in_map(ks, func, kmap); - binds key sequence KS to function FUNC in keymap KMAP, and - rl_bind_keyseq_if_unbound (ks, func); binds key sequence KS to - function FUNC in the current keymap - -lib/readline/readline.h - - extern function declarations for rl_bind_keyseq_if_unbound_in_map and - rl_bind_keyseq_if_unbound - -lib/readline/{readline,terminal}.c - - _rl_bind_if_unbound -> rl_bind_keyseq_if_unbound - -lib/readline/{bind.c,rlprivate.h} - - remove _rl_bind_if_unbound - - 9/18 - ---- -lib/readline/doc/rltech.texi - - document rl_bind_keyseq_if_unbound and - rl_bind_keyseq_if_unbound_in_map - - 9/19 - ---- -lib/readline/bind.c - - new functions rl_bind_key_if_unbound_in_map and - rl_bind_key_if_unbound; analogous to (and implemented in terms of) - keyseq functions - - rl_bind_keyseq_in_map: a new function, equivalent to rl_set_key - (which remains for backwards compatibility); changed callers to - use it - - new function, rl_bind_keyseq, equivalent to rl_bind_keyseq_in_map - with a third argument of _rl_keymap - -lib/readline/readline.h - - extern declarations for rl_bind_key_if_unbound_in_map and - rl_bind_key_if_unbound - - extern declarations for rl_bind_keyseq_in_map and rl_bind_keyseq - -lib/readline/doc/rltech.texi - - document rl_bind_keyseq and rl_bind_keyseq_in_map - -configure.in - - require at least readline-5.0 - -config-bot.h - - define SYS_SIGLIST_DECLARED if it's not defined, but - HAVE_DECL_SYS_SIGLIST is, to deal with differences between - autoconf versions - -bashline.c - - use rl_bind_key_if_unbound_in_map when binding bash keybindings in - initialize_readline(), so inputrc files can override them - - 9/22 - ---- -lib/readline/histsearch.c - - do better bounds checking for history_offset and history_length in - history_search_internal - -builtins/history.def - - in delete_last_history(), make sure we don't leave the history - offset longer than the history length after calling delete_histent - - 9/23 - ---- -jobs.c - - small change to notify_of_job_status so job status messages get - printed even if the shell was started to run `-c command'. The - old behavior was intentional, but I cannot remember why, so we'll - try it the other way for a while (debian bash bug #211693) - - 9/24 - ---- -jobs.c - - slightly modify change from 9/23 so that jobs started to run - command substitutions don't print job status messages - - 9/25 - ---- -lib/readline/search.c - - when reading a non-incremental search string from the terminal, - use a separate undo list rather than chaining it to the undo list - from the rest of the line, since the whole undo list will get - freed when the search string is complete - -lib/readline/readline.h - - changed the defines guarding the stdarg prototype for rl_message to - match what's actually used in display.c, where it's defined - - 9/26 - ---- -[bash-3.0-alpha released] - - 9/29 - ---- -lib/sh/shmatch.c - - fix to build correctly when arrays are not compiled into the shell - -subst.c - - fix command substitution to run any exit trap defined in the - command substitution before returning; the exit trap is not inherited - from the calling shell - -lib/readline/shell.c - - change sh_set_lines_and_columns to free the memory allocated and - passed to setenv(), since setenv is specified by POSIX to allocate - new memory and copy its arguments - -jobs.c - - change logic in make_child so that every child process attempts to - set the terminal's process group to the pipeline's process group - when PGRP_PIPE is defined, just like when it's undefined. This is - reported to fix some tricky synchronization problems on Red Hat - Enterprise Linux 3. Fix from Ernie Petrides . - - 9/30 - ---- -builtins/printf.def - - tescape no longer needs a `trans_squote' argument, since it's the - same as the `sawc' argument. The `sawc' argument now means to do - the %b argument processing if non-null - - fix processing of octal constants for %b arguments (\0 followed by - up to three octal digits) and other escape sequences (\ followed by - up to three octal digits) - - hex constants `\xHHH' are now allowed to contain any positive - number of digits; previously they were restricted to two [removed] - - allow two new escape sequences: \" and \?, for compatibility with - ksh93 and ANSI C - -doc/{bash.1,bashref.texi} - - documented processing that printf performs for arguments to %b - escape sequences - -lib/sh/strtrans.c - - add \" and \? to escape sequences recognized by `echo -e' - - 10/1 - ---- -version.c - - use snprintf instead of sprintf if configure tells us we have it - - 10/3 - ---- -subst.c - - in list_remove_pattern, take into account the fact that one of the - list elements may be NULL, and don't free the result of - remove_pattern() without checking - - in remove_pattern, return savestring(param) if *param == '\0', - since callers expect to free() non-null return values - - 10/4 - ---- -subst.c - - change verify_substring_values to make it clearer that the first - offset deals with array indices and the second deals with numbers - of elements, when doing array subranges with ${a[@]:e1:e2} - -array.c - - change array_subrange to make it explicit that the second offset - argument is a count of the desired number of elements, not an - ending index. This deals with sparse arrays correctly. - - 10/6 - ---- -variables.c - - fix memory leak in assign_in_env - - 10/8 - ---- -subst.c - - in parameter_brace_expand, check that the last characters are `]}' - before checking for ${!array[@]} - -execute_cmd.c,builtins/source.def - - push and pop the args (BASH_ARGV and BASH_ARGC) when executing a - shell function or sourcing a script only when in debugging mode - - 10/11 - ----- -arrayfunc.c - - make sure array_variable_name returns values for the SUBP and LENP - arguments if they're non-null, since callers expect to use them - even if the array subscript is bad - -error.c - - call exit_shell instead of sh_exit from parser_error and - report_error so the right things happen (running exit trap, doing - the right interactive cleanup, etc.) - -lib/readline/complete.c - - new variable, rl_completion_quote_character, set to any quote char - readline thinks it finds before any application completion - function is called - - new variable, rl_completion_suppress_quote, settable by an - application-specific completion function. If set to non-zero, the - completion code does not append a closing quote in append_to_match - -lib/readline/readline.h - - extern declarations for rl_completion_quote_character and - rl_completion_suppress_quote - -bashline.c - - set rl_completion_suppress_quote in command_subst_completion_function - because that would be inserted before any closing "`" or ")", which - is somewhat disconcerting - -lib/readline/doc/rltech.texi - - documented rl_completion_suppress_quote and - rl_completion_quote_character - - 10/13 - ----- -bashhist.c - - use sv_histchars instead of setting history_comment_char directly in - bash_initialize_history so assignments to $histchars made in - ~/.bashrc are honored - - 10/21 - ----- -trap.c - - make sure run_exit_trap sets `running_trap' appropriately - - new variable, trap_saved_exit_value, set to last_command_exit_value - before running any trap commands; available to the rest of the - shell; use trap_saved_exit_value to replace some function-local - variables - -builtins/exit.def - - if the shell is running the exit trap, and no argument is given - to `exit', use trap_saved_exit_value as the exit status instead - of the last command exit value (which could be the previous command - run in the exit trap), as required by POSIX.2 - - 10/25 - ----- -doc/{bash.1,bashref.texi} - - add `alias' to the list of documented `assignment statement' builtins - - 11/1 - ---- -doc/bash.1 - - remove the `.' from the sample $PATH value - -parse.y - - make sure parse_compound_assignment prompts with $PS2 if it reads - a newline while parsing the compound assignment statement. Bug - reported by Stephane Chazelas - - parse_string_to_word_list now takes a new second argument: `int flags' - - new parser state flag: PST_COMPASSIGN; indicates that the shell is - parsing a compound assignment statement - - parse_string_to_word_list turns on PST_COMPASSIGN if `flags' arg - has low bit set - - turn PST_COMPASSIGN on and off in parse_compound_assignment - -externs.h - - change prototype declaration for parse_string_to_word_list - -arrayfunc.c - - change call to parse_string_to_word_list to add new flags arg - -general.c - - assignment() takes a new `flags' second argument - - if `flags' is non-zero, accept `[' as a legal assignment statement - starter character (for parsing compound array assignments) - -general.h - - add new argument to prototype declaration for assignment() - -parse.y,{subst,variables}.c, builtins/{setattr,declare}.def - - change calls to assignment() (parse.y calls with flags == 1 when - parser_state inlcudes PST_COMPASSIGN) - -arrayfunc.c - - in assign_array_var_from_string(), don't treat an expanded word - of the form [ind]=value specially unless the W_ASSIGNMENT flag is - set. This means that words that are the result of expansions but - happen to have the same format as compound assignment statement - words will not be treated as such. For instance - - v='[12]=foobar' - a=( $v ) - - will result in a[0]='[12]=foobar' instead of a[12]=foobar. This - is closer to how `regular' assignment statements are treated and - compatible with ksh93. Bug reported by Stephane Chazelas - -shell.c - - new --protected argument, disables command substitution when used - with --wordexp (like --wordexp, it remains undocumented) - - change run_wordexp to turn on the W_NOCOMSUB flag in each word - to be expanded if protected_mode is set - - 11/7 - ---- -doc/{bash.1,bashref.texi} - - clarified the language concerning inherited signal dispositions and - when traps are run - -support/shobj-conf - - slight changes to the darwin (Mac OS X) stanza for MacOS X 10.3 - (for the readline shared library builds, which shares this script) - -lib/readline/histexpand.c - - change to make `^' behave as equivalent to word one, as csh does, - and as the documentation states - -lib/readline/display.c - - in update_line, make sure to use col_lendiff in all calculations - where the cursor position is concerned (like when calculating - the value of _rl_last_c_pos). Fixes bug reported by Andreas - Schwab - - 11/12 - ----- -trap.c - - make _run_trap_internal catch `return' builtin longjmps and clean - up before longjmping on to where the return was intended to go - (fixes bug with not turning off SIG_INPROGRESS flag when `return' - executed in trap command) - - 11/18 - ----- -builtins/cd.def - - in posix mode, set errno to ENOTDIR if canonicalization fails, - unless the canonicalization functions leave it set to ENOENT - - 11/25 - ----- -make_cmd.c - - in make_simple_command, don't blindly dereference element.redirect - -parse.y - - the list_terminator production now has an `int' value so it can be - used in other grammar productions - - add a rule that makes `time' on a line by itself time a null - command (this is iffy) - - 11/28 - ----- -subst.c - - change the pattern substitution code (${var//pat/rep}) to use the - same pattern expansion function (getpattern()) as the pattern - removal expansions. This has the effect of no longer performing - quote removal on the pattern before trying to match it. This - fixes an incompatibility with ksh93 reported on comp.unix.shell - -nojobs.c - - add replacement function for siginterrupt on the off chance that a - system has posix signals but lacks siginterrrupt - -lib/readline/display.c - - fix from Tim Waugh at Red Hat to speed up inserting characters into - long lines in a UTF-8 environment by optimizing the calculation of - the first difference between old and new lines by checking to see - whether the old line is a subset of the new - - 11/29 - ----- -lib/malloc/stats.c - - break code that opens file (and interprets %p) into separate function - _imalloc_fopen(char *s, char *fn, char *def, char *defbuf, size_t defsiz) - for use by rest of library - - default stats file is now `stats.PID' - -lib/malloc/trace.c - - new function, malloc_set_tracefn (char *s, char *fn), sets tracing - to the file named by FN (with %p interpolated as the pid), using - some default if FN is NULL - -lib/malloc/shmalloc.h - - new extern declaration for malloc_set_tracefn - - 12/4 - ---- -execute_cmd.c - - combined several common strings from do_piping() into one - dup_error() function - -builtins/common.[ch] - - new function, `sh_notbuiltin(s)' prints error message about s not - being a shell builtin - -builtins/{builtin,enable}.def - - call sh_notbuiltin instead of using literal string - -{arrayfunc,expr,error}.c - - use one string variable for `bad array subscript' error message; use - in calls to various error reporting functions - -Makefile.in - - add variables for localedir and the PACKAGE_* variables, auto-set - by configure - -configure.in - - un-cache values for gettext, textdomain, and bindtextdomain if they're - not in libc but in libintl so the right variables get set - -bashintl.h - - add necessary defines for marking strings to be translated using - gettext - -locale.c - - set textdomain and directory in set_default_locale - - don't call textdomain with the value of $TEXTDOMAIN, since we don't - want to override the default domain ("bash") - - don't call bindtextdomain unless default_domain already has a value - - when translating $"..." strings, use dgettext with the script's - default domain (value of $TEXTDOMAIN) - - 12/9 - ---- -builtins/mkbuiltins.c - - include "bashintl.h" in the generated "builtins.c" - -support/{config.rpath,mkinstalldirs} - - new files to support gettext i18n - -ABOUT-NLS - - new readme file for gettext internationalization - -po/{Makefile.in.in,Rules-quot,boldquot.sed,en@boldquot.header,en@quot.header,insert-header.sin,quot.sed,remove-potcdate.sin} -po/{POTFILES.in,bash.pot} - - new files for gettext - -lib/intl - - new directory, with libintl stuff from gettext - -aclocal.m4 - - add m4 files from gettext distribution needed by libintl - -configure.in - - create po/Makefile.in and lib/intl/Makefile in AC_OUTPUT - - add call to AM_GNU_GETTEXT to initialize gettext stuff - -Makefile.in - - use mkinstalldirs instead of mkdirs in the `installdirs' target - - changes for intl/ and po/ subdirectories in build and install - - changes to have libintl linked in, as determined by configure - - changes to have libintl built, just in case it's used (though I'd - rather not) - - 12/10 - ----- -config.h.in - - additional #defines required by the libintl library - - add ENABLE_NLS define for AM_GNU_GETTEXT - - take out defines for HAVE_{BINDTEXTDOMAIN,GETTEXT,TEXTDOMAIN} - -configure.in - - removed old tests for libintl and gettext/textdomain/bindtextdomain - -locale.c - - remove HAVE_GETTEXT code; we have gettext unconditionally now - -bashintl.h - - change to include "gettext.h" and remove the conditional code based - on whether or not gettext is present - - 12/16 - ----- -lib/readline/vi_mode.c - - fix problem with rl_vi_eWord that caused it to skip over the last - character of a word if invoked while point was on the next-to-last - character - - 12/18 - ----- -{arrayfunc,bashhist,bashline,error,eval,execute_cmd,expr,general,input,jobs}.c -{mailcheck,make_cmd,nojobs,pcomplete,pcomplib,print_cmd,redir,shell,sig}.c -{subst,test,trap,variables,version,xmalloc}.c -parse.y -builtins/{common,evalfile,getopt}.c -builtins/{bind,break,caller,cd,complete,declare,enable,exec,exit,fc,fg_bg}.def -builtins/{hash,help,history,jobs,kill,printf,pushd,read,return,set,setattr}.def -builtins/{shift,shopt,source,suspend,type,ulimit,umask}.def -lib/sh/{fmtulong,netopen}.c - - include "bashintl.h" for gettext defines - -Makefile.in - - add `-DBUILDTOOL' to CFLAGS for buildversion.o - -bashintl.h - - if `BUILDTOOL' is defined, define ENABLE_NLS to 0 so we don't have - to compile and link in the gettext stuff - -Makefile.in,lib/sh/Makefile.in,builtins/Makefile.in - - update dependencies on bashintl.h and include/gettext.h - - 12/19 - ----- -{arrayfunc,bashhist,bashline,error,eval,execute_cmd,expr,general,input,jobs}.c -{mailcheck,make_cmd,nojobs,pcomplete,pcomplib,print_cmd,redir,shell,sig}.c -{subst,test,trap,variables,version,xmalloc}.c -builtins/{common,evalfile,getopt}.c -builtins/{bind,break,caller,cd,complete,declare,enable,exec,exit,fc,fg_bg}.def -builtins/{hash,help,history,jobs,kill,let,printf,pushd,read,return,set}.def -builtins/{setattr,shift,shopt,source,suspend,type,ulimit,umask}.def -lib/sh/{fmtulong,netopen}.c -lib/malloc/{malloc,stats,table,watch}.c - - mark up strings in source files for gettext processing - -lib/malloc/imalloc.h - - include "bashintl.h" if SHELL is defined, otherwise make _(x) an - identity define - -lib/malloc/Makefile.in - - add dependencies on ${topdir}/bashintl.h and ${BASHINCDIR}/gettext.h - - 12/21 - ----- -bashline.c - - make sure we index into rl_line_buffer with indexes > 0 in - attempt_shell_completion - - 12/31 - ----- -Makefile.in - - descend into `po' and run make recursively for the various clean - targets - - 1/4/2004 - -------- -include/shmbutil.h - - two new macros: BACKUP_CHAR(str, strsize, i), which backs up one - multibyte character in STR starting at index I, and - BACKUP_CHAR_P(str, strsize, p), which backs up one multibyte - character in STR starting at P, which is a char * - - 1/6 - --- -pcomplete.c - - in pcomp_filename_completion_function, use the quote character - readline found (and assigned to rl_complete_quote_character) when - dequoting the filename by a completion call from readline (when - rl_dispatching != 0) - -bashline.c - - ditto for bash_directory_completion_matches - - 1/7 - --- -lib/readline/complete.c - - new variable, rl_completion_found_quote, set to non-zero value if - readline finds what it thinks is quoting in the word to be completed - -lib/readline/readline.h - - extern declaration for rl_completion_found_quote - - 1/8 - --- -lib/readline/doc/rltech.texi - - documented rl_completion_found_quote - -lib/readline/complete.c - - in compute_lcd_of_matches, if it looks like what the user typed was - dequoted before generating filename matches, dequote the user's - text again before figuring out the case-insensitive lcd - - 1/9 - --- -lib/readline/display.c - - fix from Edward Catmur to logic that handles - invisible characters in prompt string. Original code was wrong - about local_prompt_prefix; it gave incorrect results when prompt - contained invisible characters after a line break - - 1/10 - ---- -subst.c - - new function, mb_substring(), does character (possibly multibyte) - oriented rather than strictly byte-oriented substring extraction. - The passed indices, rather than strictly indexing into the string, - indicate character positions that need to be calculated. From - Tim Waugh - - change parameter_brace_substring to use mb_substring if necessary - -included/shmbutil.h - - new define SADD_MBQCHAR_BODY, common code for adding a quoted - (preceded by CTLESC) multibyte character to an accumulating string - in the subst.c expansion code - -subst.c - - use SADD_MBQCHAR_BODY in expand_word_internal - - new static function, mb_getcharlens, allocates and returns an array - of character lengths for (possibly multibyte) characters in the - argument string - - change pattern matching operations to use while loops instead of - for loops to handle multibyte characters better (no more simple - increment or decrement) - - change pattern matching operations to use multibyte character - operations instead of simple increments and decrements. Don't - use BACKUP_CHAR_P -- use the mblen array instead, because that - avoids the N**2 behavior of having to count from the beginning - of the string each time you want to back up one character. Changes - to remove_pattern and match_pattern - - 1/12 - ---- -lib/readline/display.c - - make expand_prompt count multbyte characters in the prompt string - by using _rl_find_next_mbchar (and copying possibly more than one - byte) instead of a simple increment and single byte copy - - 1/13 - ---- -lib/readline/display.c - - expand_prompt takes a new reference argument -- it returns - the actual count of (possibly multibyte) characters displayed - on the screen - - don't short-circuit in expand_prompt unless we're not going to - be using any multibyte characters - - change calls to expand_prompt to pass an argument for the - number of physical characters the prompt occupies - (prompt_physical_chars) - - initialize `lpos' (the physical cursor position) from - prompt_physical_chars in rl_redisplay - -lib/readline/mbutil.c - - in _rl_find_prev_mbchar_internal, if mbrtowc returns -1 or -2, and - we assume that the character is a single-byte char, make sure we - update `prev' so it doesn't get lost. Fixes problems encountered - when a non-ascii char is the last char on the line and we're moving - back past it with ^B, and other display problems caused by the same - situation - - 1/15 - ---- -lib/readline/doc/rltech.texi - - document RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE in the - description of rl_expand_prompt() - - 1/20 - ---- -bashline.c - - in initialize_readline, make sure M-C-j and M-C-m are still bound to - vi-editing-mode before unbinding them -- they may have been rebound - in an inputrc - -variables.c - - in unbind_variable, unset attributes other than `local' and exported - (if the variable came from a temporary environment) when unsetting a - local variable inside a function - - 1/21 - ---- -configure.in - - add libintl build directory to the list of include directories if - it's being built (using INTL_BUILDDIR) - -Makefile.in,{builtins,lib/{sh,malloc}}/Makefile.in - - substitute LIBBUILD as ${BUILD_DIR}/${LIBSUBDIR} - - define INTL_BUILDDIR as ${LIBBUILD}/intl - -{builtins,lib/sh}/Makefile.in - - make sure INTL_INC is added to the list of include directories - - make sure INTL_LIBSRC is defined with the correct value - -{configure,Makefile,{builtins,lib/sh}/Makefile}.in - - substitute LIBINTL_H as ${INTL_BUILDDIR}/libintl.h - -Makefile.in,builtins/Makefile.iin - - all files depending on bashintl.h also depend on ${LIBINTL_H} - (which may be empty) - -Makefile.in - - make a rule telling how to build lib/intl/libintl.h if necessary - - 1/24 - ---- -builtins/read.def - - make sure that the array name supplied as an argument to -a is a - valid identifier - -parse.y - - make the \W expansion abbreviate $HOME with a ~ (seems to be more - useful) - -doc/{bash.1,bashref.texi} - - document new behavior of \W - -subst.c - - make sure parameter_brace_expand_rhs uses the first character of - $IFS when making the string to return from the expanded word - (which, in the case of "$@" or $@, contains multiple words that - need to be separated) - - 1/25 - ---- -builtins/common.c - - change get_job_spec to make `%' by itself or an empty argument - return NO_JOB - -jobs.h - - new possible value for a job spec return value: BAD_JOBSPEC - (for syntactically invalid specs, like the empty string) - -shell.c - - in open_shell_script, check to see whether or not we can find and - open the filename argument before setting dollar_vars[0] or - manipulating BASH_SOURCE, so the error messages come out better - -subst.c - - in string_list_internal, short-circuit right away to savestring() - if the list only has a single element - - 1/28 - ---- -lib/readline/rltypedefs.h - - new set of typedefs for functions returning char * with various - arguments (standard set) - -lib/readline/complete.c - - new function pointer, rl_completion_word_break_hook, called by - _rl_find_completion_word, used to set word break characters at - completion time, allowing them to be position-based - -lib/readline/doc/rltech.texi - - documented rl_completion_word_break_hook - -lib/readline/kill.c - - added new rl_unix_filename_rubout, which deletes one filename - component in a Unix pathname backward (delimiters are whitespace - and `/') - -lib/readline/readline.h - - extern declaration for rl_unix_filename_rubout - -lib/readline/funmap.c - - new bindable readline command `unix-filename-rubout' - -lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 - - documented `unix-filename-rubout' - - 1/29 - ---- -lib/readline/histexpand.c - - change history_tokenize_internal to handle non-whitespace delimiter - characters by creating separate fields (like the shell does when - splitting on $IFS) - - 1/30 - ---- -lib/glob/xmbsrtowcs.c - - new function, xdupmbstowcs, for convenience: calls xmbsrtowcs - while allocating memory for the new wide character string - - some small efficiency improvments to xmbsrtowcs - -include/shmbutil.h - - extern declaration for xdupmbstowcs - -lib/glob/strmatch.h - - include config.h for definition of HANDLE_MULTIBYTE - - remove the HAVE_LIBC_FNM_EXTMATCH tests - - new extern declaration for wcsmatch(whchar_t *, wchar_t *, int) - -configure.in - - remove call to BASH_FUNC_FNMATCH_EXTMATCH; it's no longer used - -lib/glob/smatch.c - - simplify xstrmatch() by using xdupmbstowcs() instead of inline code - -lib/glob/glob.c - - modify mbskipname() to avoid the use of alloca - - simplify mbskipname() by using xdupmbstowcs() instead of inline code - - simplify glob_pattern_p() by using xdupmbstowcs() instead of - inline code - - fix memory leak in wdequote_pathname - - simplify wdequote_pathname() by using xdupmbstowcs() instead of - inline code - -lib/glob/strmatch.c - - new function, wcsmatch(), `exported' wide-character equivalent of - strmatch() - -subst.c - - old match_pattern is now match_upattern - - match_pattern now either calls match_upattern or converts - mbstrings to wide chars and calls match_wpattern - - match_upattern reverted to old non-multibyte code - - new function: match_pattern_wchar, wide character version of - match_pattern_char - - 2/1 - --- -subst.c - - old remove_pattern is now remove_upattern - - remove_upattern reverted to old non-multibyte code (pre-Waugh patch) - - new multibyte version of remove_pattern: remove_wpattern - - remove_pattern now calls either remove_upattern or converts a - multibyte string to a wide character string and calls - remove_wpattern - - new function, wcsdup, wide-character version of strdup(3) - - 2/4 - --- -print_cmd.c - - temporarily translate a >&filename redirection from - r_duplicating_output_word to r_err_and_out (as the expansion code - in redir.c does) so it prints without a leading `1' (file - descriptor) - - 2/5 - --- -aclocal.m4 - - add a check for wcsdup to BASH_CHECK_MULTIBYTE - -config.h.in - - add HAVE_WCSDUP define - - 2/9 - --- -builtins/shift.def - - fix a call to sh_erange that possibly dereferences a NULL pointer - - 2/12 - ---- -general.c - - start at a general set of file property checking functions: - file_isdir(), file_iswdir() (is writable directory) - -general.h - - extern declarations for new functions - -lib/sh/tmpfile.c - - use file_iswdir() to make sure the temporary directory used for - here documents and other temp files is writable in get_sys_tmpdir() - - 2/17 - ---- -bashline.c - - fix conditional binding of emacs-mode M-~ -- there is a default - binding for it (rl_tilde_expand), so a straight call to - rl_bind_key_if_unbound_in_map doesn't do the right thing - - 2/27 - ---- -[bash-3.0-beta1 released] - - 2/29 - ---- -subst.c - - fixed expansion so referencing $a, when a is an array variable - without an element assigned to index 0, exits the shell when - `-u' is enabled - -expr.c - - make the exponentiation operator (**) associative, so things like - 2**3**4 work right (change `if' to `while') - - 3/3 - --- -lib/sh/strftime.c - - SCO Unix 3.2, like Solaris, requires that the system's `timezone' - variable be declared as long - -lib/readline/{bind,histfile,input,parens}.c - - changes for Tandem (including `floss.h' (?)) - - 3/4 - --- -subst.c - - change param_expand to quote the entire expanded string instead - of just the escape characters if the expansion appears between - double quotes or in a here-document (for simple variable expansions - or expansions of positional parameters) - - 3/8 - --- -subst.c - - analogous changes to parameter_brace_expand_word to fix the same - quoting problem as on 3/4; fix callers to understand that the - value returned might be quoted now and should be dequoted if - necessary - - add a `quoted' argument to get_var_and_type, change callers - - change today's fix and fix from 3/4 to not call quote_string if the - value is "" (because quote_string turns that into CTLNUL\0) - - 3/9 - --- -builtins/cd.def - - resetpwd() now takes a `caller' argument so it can be used by pwd - as well as cd - - change pwd_builtin to call resetpwd() if sh_physpath() fails to - return a valid pathname - - 3/14 - ---- -expr.c - - reworked exp0 and readtok() to make post-increment and post-decrement - into real tokens, which may be separated from their accompanying - variables by whitesapce - - made analogous changes to readtok() to make pre-increment and - pre-decrement work when separated from their accompanying identifier - by whitespace - - 3/18 - ---- -lib/readline/misc.c - - in rl_maybe_unsave_line, don't force rl_replace_line to clear - the undo_list, since it might point directly at an undo list - from a history entry (to which we have no handle) - - 3/19 - ---- -lib/readline/display.c - - rl_save_prompt and rl_restore_prompt now save and restore the value - of prompt_physical_chars - - set prompt_physical_chars in rl_redisplay when expand_prompt has - not been called (e.g., when rl_display_prompt is set and is not - equal to rl_prompt, like when searching) - -lib/readline/histexpand.c - - don't call add_history in history_expand if the `:p' modifier is - supplied; leave that to the calling application. This means that - `history -p', for example, will not add anything to the history - list (as documented), nor will history expansions invoked by - emacs-mode M-C-e line editing - -config-bot.h - - check whether HAVE_DECL_SYS_SIGLIST is defined to 1 rather than just - defined, to work around newer versions of autoconf defining it to 0 - -config.h.in - - change default status of HAVE_MALLOC to #undef instead of #define - -bashhist.c - - extern declarations for rl_done and rl_dispatching - - don't call re_edit from pre_process_line unless rl_dispatcing is zero, - so we don't call it from something like shell-expand-line - - change pre_process_line to add an expanded history specification - that returned `print only' to the history list, since history_expand - no longer does it (and, when using readline, do it only when - rl_dispatching is zero) - - 3/22 - ---- -config.h.in,aclocal.m4 - - change bash-specific functions that look in struct dirent to define - HAVE_STRUCT_DIRENT_xxx, like AC_CHECK_MEMBERS does (though the - functions are otherwise the same) - - new function, BASH_STRUCT_DIRENT_D_NAMLEN, define - HAVE_STRUCT_DIRENT_D_NAMLEN if struct dirent has a `d_namlen' member - -configure.in - - call BASH_STRUCT_DIRENT_D_NAMLEN - -include/posixdir.h - - use new and renamed HAVE_STRUCT_DIRENT_D_xxx defines - - 4/7 - --- -builtins/cd.def - - ensure that we print out a non-null pathname after getting a - directory from CDPATH and canonicalizing it (e.g., if the result - exceeds PATH_MAX in length and the_current_working_directory is - set to NULL) - - 4/12 - ---- -print_cmd.c - - new function to print out assignment statements when `set -x' has - been enabled: xtrace_print_assignment - -externs.h - - extern declaration for xtrace_print_assignment - - 4/13 - ---- -{subst,variables}.c - - call xtrace_print_assignment instead of using inline code - -jobs.c - - if turning on job control when it was previously off, set - pipeline_pgrp to 0 in set_job_control so make_child puts - subsequent children in their own process group - - 4/14 - ---- -general.c - - new function, legal_alias_name, called to decide whether an - argument to add_alias is a valid alias name -- essentially any - character except one which must be quoted to the shell parser - and `/' - -general.h - - new extern declaration for legal_alias_name - -builtins/alias.def - - `unalias' now returns failure status if no NAME arguments are - supplied and -a is not given - - call legal_alias_name to make sure alias name is valid before - calling add_alias from alias_builtin - - 4/19 - ---- -include/shmbutil.h - - include for definition of HANDLE_MULTIBYTE rather than - duplicating logic - - 4/20 - ---- - -doc/{bash.1,bashref.texi} - - make sure $0 is consistently referred to as a `special parameter' - - document which characters are now not allowed in alias names - - 4/23 - ---- - -builtins/{jobs,kill,wait}.def - - removed requirement that job control be enabled to use job control - notation, as SUSv3 implies - -subst.c - - based on a message from David Korn, change param_expand to not call - string_list_dollar_star if the only quoting is Q_HERE_DOCUMENT -- - quoted here documents are like double quoting, but not exactly - - analogous changes to list_remove_pattern and pos_params - - 4/24 - ---- -lib/readline/doc/rluser.texi - - fix error in description of emacs-mode C-xC-e command (uses $VISUAL - instead of $FCEDIT) - - 4/28 - ---- -support/bashbug.sh - - integrate a patch from Stefan Nordhausen - that reduces race conditions - by using a temporary directory inside $TMPDIR and creating the - temp files in that - - 4/30 - ---- -builtins/common.c - - use pathconf(".", _PC_PATH_MAX) where available to size the argument - to getcwd() rather than using a straight PATH_MAX - -builtins/cd.def - - if get_working_directory fails and returns null (causing resetpwd - to return NULL), use set_working_directory to set $PWD to the - absolute pathname for which chdir just succeeded - - 5/1 - --- -lib/readline/vi_mode.c - - in rl_vi_change_to, call _rl_vi_set_last with rl_numeric_arg instead - of `last', since they're equal at call time and rl_vi_domove can - change rl_numeric_arg (which vi apparently updates). Fixes redo bug - of `c2....' reported by Marion Berryman - - 5/4 - --- -parse.y - - fix decode_prompt_string to properly deal with strftime() returning 0 - - 5/6 - --- -variables.c - - in make_local_array_variable, return an already-existing local array - variable immediately rather than creating a new array (causing a - memory leak) - - 5/8 - --- -lib/readline/vi_mode.c - - change rl_vi_domove to set rl_explicit_arg before calling - rl_digit_loop1 so that multi-digit numeric arguments work right - - _rl_vi_last_command is no longer static - -lib/readline/rlprivate.h - - new extern declaration for _rl_vi_last_command - -lib/readline/text.c - - change rl_newline to only call _rl_vi_reset_last if the last command - (_rl_vi_last_command) is not a text modification command. This lets - the last-command and last-argument work across command lines - - 5/13 - ---- -builtins/common.c - - use getcwd(0,0) rather than providing a fixed pathname with a fixed - length (PATH_MAX) so getcwd() will allocate sufficient memory - -aclocal.m4 - - change BASH_FUNC_GETCWD to check whether or not getcwd(0,0) will - allocate memory for the returned value -- nobody implements that - and getcwd-via-popen, so it should capture the old test as well - - 5/27 - ---- - -builtins/trap.def - - the historical behavior of assuming that a signal's handling should - be set to its original disposition is only in effect if a single - argument is given, otherwise the first argument is assumed to be a - command to execute - - when in posix mode, if trap gets a single argument, display an - error message and return EX_USAGE - - change the help message and usage string to better explain trap's - behavior - -doc/{bash.1,bashref.texi} - - describe the new default behavior when the first argument is a - signal spec - - note that signal names are case insensitive and the SIG prefix is - optional in arguments to `trap' - - note that signal name arguments to `kill' are case-insensitive - -lib/readline/display.c - - make sure rl_on_new_line_with_prompt sets rl_display_prompt to - rl_prompt (just to make sure it's set) - - have rl_on_new_line_with_prompt use local_prompt if it's set - - 6/2 - --- -subst.c - - in string_extract_double_quoted, cope with extract_delimited_string - returning NULL, as it can when attempting completion on an unclosed - command substitution - - 6/24 - ---- -lib/readline/complete.c - - change print_filename to add a `/' to listed directory names if - `mark-directories' has been enabled - -builtins/umask.def - - make sure that the mask passed to parse_symbolic_mode has all but - the operative low eight bits masked off, to avoid complementing - all 0s to -1, which is the error return code. This makes things - like `a=rwx' and `ugo=rwx' work and turn off the umask - - 6/26 - ---- -builtins/getopts.def - - when `getopts' reaches the end of options, unset OPTARG before - returning EOF. In response to a bug report from Apple - -configure.in - - when cross-compiling, don't set CPPFLAGS_FOR_BUILD and - LDFLAGS_FOR_BUILD from CPPFLAGS and LDFLAGS, respectively, since - those are for the target instead of the build platform (report - from robert@schwebel.de) - -shell.c - - a shell whose standard error (but not standard output) is directed - to a terminal should be interactive, according to POSIX/SUS. This - means that sh > sh.out will start an interactive shell. Bug report - from llattanzi@apple.com - -doc/{bash.1,bashref.texi} - - change mention of standard output to standard error in definition - of interactive shell - -lib/readline/vi_mode.c - - new convenience function, rl_vi_start_inserting, calls - _rl_vi_set_last to save the last textmod command state and then calls - rl_vi_insertion_mode to enter insert mode - - change functions to use rl_vi_start_inserting - -lib/readline/readline.h - - extern declaration for rl_vi_start_inserting - -bashline.c - - new function for vi-mode completion, bash_vi_complete. Does - filename expansion as POSIX specifies, unlike the default readline - bindings (which don't know about globbing). Bound to `\', `*', - and `=' in vi command keymap. Internals very similar to - rl_vi_complete; just calls bash glob expansion functions - -lib/readline/vi_mode.c - - change rl_vi_change_char so that an entire change is a single - undoable event, rather than each individual change in a [count]r - command - - fix rl_vi_change_char so that replacing characters up to EOL works - rather than generating rl_ding - - fix rl_vi_change_case so that replacing characters up to EOL works - rather than generating rl_ding - - 6/28 - ---- -builtins/echo.def - - call clearerr(stdout) before writing anything and testing its - failure or success - - 6/29 - ---- -bashline.c - - only set rl_explicit_arg in bash_glob_complete_word if readline is - in emacs mode; let bash_vi_complete take care of setting it in vi - mode - - fix bash_vi_complete to only set rl_explicit_arg unless the posix - conditions are met: no globbing characters in the vi `bigword' - being completed - - 6/30 - ---- -[bash-3.0-rc1 released] - - 7/1 - --- -lib/readline/complete.c - - make sure `extension_char' is initialized before deciding whether - or not the append a `/' to a possible completion when visible-stats - is not enabled - - 7/2 - --- -subst.c - - fix a boundary overrun in string_extract_double_quoted that could - occur when the word completion code attempts to expand an incomplete - construct (like a quoted unclosed command substitution) - - 7/4 - --- -subst.c - - set tempenv_assign_error to non-zero if an assignment to the - temporary environment fails for some reason (e.g., attempted - assignment to a readonly variable) - -execute_cmd.c - - fix execute_simple_command to force a non-interactive shell in - POSIX mode to exit if an assignment to the temporary environment - preceding a special builtin fails (bug report from - llattanzi@apple.com) - - 7/5 - --- -bashline.c - - in bash_directory_completion_hook, don't perform word expansions - if the filename appears to have been completed from the file - system rather than typed in by the user. Bug reported by Tim - Waugh - - 7/7 - --- -lib/readline/misc.c - - if _rl_maybe_save_line is being asked to save a line other than - what's already saved, free up the current saved line and save the - current contents of rl_line_buffer. Bug reported by - llattanzi@apple.com - - 7/12 - ---- -lib/readline/input.c - - do better EOF detection in rl_gather_tyi -- if a read returns 0 when - the fd is in non-blocking mode, stuff an EOF into the input stream - (reported by mattias@virtutech.se) - - 7/13 - ---- -lib/readline/vi_mode.c - - make sure rl_vi_put honors `count' arguments and yanks things - multiple times if requested - - 7/16 - ---- -builtins/umask.def - - make sure that the `who' part of the umask symbolic mode argument - defaults to `a' if it's missing - -flags.c - - make sure that maybe_make_restricted only gets called after the - shell is initialized, so `bash -r' doesn't result in inappropriate - error messages - -[bash-3.0 frozen] - - 7/27 - ---- -doc/Makefile.in - - small fixes - -[bash-3.0 released] - diff --git a/CWRU/old-changelogs/CWRU.chlog.v14 b/CWRU/old-changelogs/CWRU.chlog.v14 deleted file mode 100644 index 6ae61042a..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v14 +++ /dev/null @@ -1,11049 +0,0 @@ - 7/27/2004 - --------- - -[bash-3.0 released] - - 7/28 - ---- -array.c - - in array_insert(), make sure the value to be added is non-NULL before - calling savestring() on it - -builtins/reserved.def - - fix description of `CDPATH' - -lib/readline/display.c - - when expanding a prompt that spans multiple lines with embedded - newlines, set prompt_physical_chars from the portion after the - final newline, not the preceding portion. Bug reported by - "Ralf S. Engelschall" - -make_cmd.c - - explicitly declare `lineno' in function prologue for make_case_command - -builtins/evalfile.c - - include `trap.h' for declaration for run_return_trap - -bashline.c - - fix a `return' without a value in enable_hostname_completion - -general.c - - include test.h for extern declaration for test_eaccess - -externs.h - - add declaration for zcatfd - -tests/{history,histexp}.tests - - unset HISTFILESIZE to avoid problems if a value of 0 is inherited - from the environment - - 7/30 - ---- -bashline.c - - small changes to glob_expand_word to perform tilde expansion before - attempting globbing - -builtins/Makefile.in - - fix the install-help target to not cd into the `helpfiles' - subdirectory, so a value of $INSTALL_DATA containing a relative - pathname (e.g., .././support/install.sh) remains valid - - 7/31 - ---- -subst.c - - new function, mbstrlen(s), returns length of a multibyte character - string - -include/shmbutil.h - - new macro, MB_STRLEN(s), calls mbstrlen or STRLEN as appropriate - -builtins/trap.def - - small change so that a first argument that's a valid signal number - (digits only -- no symbolic names) will be treated as a signal and - reverted back to the original handling disposition. Fixes debian - complaints - -subst.c - - call MB_STRLEN instead of STRLEN where appropriate in - parameter_brace_expand_length to handle multibyte characters properly - - call MB_STRLEN instead of strlen in verify_substring_values so that - negative substrings of strings with multibyte chars work properly - - 8/1 - --- -jobs.c - - describe_pid needs to write to stderr, not stdout (POSIX) - - start_job, since it's only used by builtins (fg/bg), needs to write - its output to stdout, not stderr (POSIX) - -sig.c - - add an `orig_flags' member to struct terminating_signal so the - original signal handling flags (SA_RESTART, etc.) can be preserved - on POSIX systems - - make sure to preserve the signal flags state in - initialize_terminating_signals and reset them for child processes - in reset_terminating_signals - -builtins/fc.def - - fixed an off-by-one error that caused `fc -l' to list one too many - history entries - - in posix mode, `fc' should not list any indication as to whether or - not history lines have been modified (POSIX) - - when in posix mode, the default editor for `fc' should be `ed' (POSIX) - -doc/bashref.texi - - updated the description of `trap' behavior when given a first - argument that is a valid signal number - - noted that `fc -l' won't indicate whether a history entry has been - modified if the shell is in posix mode - -builtins/command.def - - fixed bug: `command -v' is supposed to be silent if a command is not - found - -builtins/hash.def - - `hash' should print its `hash table empty' message to stderr - -lib/readline/misc.c - - back out 7/7 change to _rl_maybe_save_line; it breaks emacs-mode ^P - -general.c - - changed base_pathname so that it will return reasonable results for - non-absolute pathnames -- this is what is intended by all of its - callers - -arrayfunc.c - - fix array_variable_part to return NULL if it finds an invisible - variable in the hash table. Fixes seg fault caused by referring to - unset local variable using array notation - -{locale,variables}.c - - support LC_TIME as a special locale variable so HISTTIMEFORMAT tracks - the current locale - - 8/2 - --- -variables.c - - fixed small memory leak in makunbound() when a local array variable - is unset. Fix from William Park - -lib/readline/display.c - - fixed a problem when computing the number of invisible characters on - the first line of a prompt whose length exceeds the screen width - (should only happen when invisible characters occur after the - line wrap). Bug reported by agriffis@gentoo.org - -builtins/command.def - - `command -V' passes a new flag, CDESC_ABSPATH, which means to convert - to an absolute path - -builtins/type.def - - in posix mode, `type' and `command -v/-V' should not report - non-executable files, even if the execution code will attempt to - run them. Other posix shells do this - -doc/bashref.texi - - add note to POSIX Mode section describing behavior of type and command - when finding a non-executable file - -execute_cmd.c - - force extended_glob to 1 before calling binary_test in - execute_cond_node so that the right extended pattern matching gets - performed - - 8/3 - --- -braces.c - - make sure lhs[0] and rhs[0] are cast to `unsigned char' so chars - with values > 128 are handled correctly - -builtins/printf.def - - change bexpand() and printstr() to handle strings with a leading - '\0' whose length is non-zero, since that's valid input for the - `%b' format specifier - -subst.c - - fix a couple of instances of find_variable that didn't check the - result for an invisible variable - -variables.c - - BASH_ARGC, BASH_ARGV, BASH_SOURCE, BASH_LINENO no longer created as - invisible vars - -pcomplete.c - - make sure COMP_WORDS is not invisible when bind_comp_words returns - - ditto for COMPREPLY in gen_shell_function_matches - - 8/4 - --- -braces.c - - fix problem where ${ was ignored but did not increment the open - brace count. Bug reported by Tim Waugh - -variables.c - - if make_local_variable finds a variable in the correct context in - the right variable scope, make sure it's not invisible before - returning it - - 8/5 - --- -builtins/trap.def - - fixed usage message to show `action' as not optional, though it - actually is when not in posix mode (for a single argument) - - 8/7 - --- -configure.in - - kfreebsd-gnu has had its sbrk() problems fixed, and no longer needs - to be configured --without-gnu-malloc - -lib/readline/vi_mode.c - - in rl_vi_search, free any saved history line before starting the - search, so failure leaves you at that line, not the last line in - the history (assuming the current line is not the last history line). - Fix from llattanzi@apple.com to replace fix of 7/7 - - 8/9 - --- -support/Makefile.in - - renamed `mostly-clean' target to `mostlyclean' - - 8/11 - ---- -lib/readline/vi_mode.c - - make same change for EOL in multibyte character case of - rl_vi_change_char - - 8/12 - ---- -subst.c - - in verify_substring_values, fix off-by-one error checking bounds of - `offset', esp. in array values (e.g., getting the highest element - of an array) - - 8/16 - ---- -aclocal.m4 - - change BASH_CHECK_DEV_FD to make sure that file descriptors > 2 are - accessible via /dev/fd, unlike FreeBSD 5.x - -lib/sh/strftime.c - - make sure `zone' is initialized with gettimeofday before it is used - - work around HPUX lack of `altzone' and differing definitions of - `timezone' - -lib/malloc/malloc.c - - internal_memalign and memalign now take a `size_t' as their first - argument, which seems to be the prevailing standard - -lib/malloc/{malloc.c,shmalloc.h} - - change sh_memalign to take a `size_t' as its first argument - -builtins/echo.def - - if posixly_correct and xpg_echo are both set, don't try to interpret - any arguments at all, as POSIX/XOPEN requires (fix inspired by Paul - Eggert) - -doc/bashref.texi - - amend description of bash posix mode to include new echo behavior - -builtins/fg_bg.def - - allow bg to take multiple job arguments, as posix seems to specify, - placing them all in the background, returning the status of the last - one as the status of `bg' - -lib/readline/vi_mode - - fix _rl_vi_change_mbchar_case (multibyte-char version of `~' - command) to have the right behavior at EOL -- handle case where vi - mode backs up at the end of the line - - 8/18 - ---- -array.c - - check for an empty array in array_rshift before shifting elements - and adjusting max_index - - check for null array in array_subrange - -jobs.c - - fix raw_job_exit_status to not ignore exit status of the last - process in the pipeline when `set -o pipefail' is enabled - - 8/19 - ---- -lib/readline/mbutil.c - - make sure _rl_find_next_mbchar_internal has a valid multibyte - character before it checks whether or not it's a zero-width - wide character and adjusts point accordingly - - 8/24 - ---- -bashline.c - - new function, bash_directory_expansion, duplicates the expansions - performed on the directory name by rl_filename_completion_function - - call bash_directory_expansion in command_word_completion_function - if we decide we're doing tilde expansion (and any other - canonicalization) on the directory name being completed - - 8/25 - ---- -configure.in - - use new-style AC_CHECK_HEADER to check for sys/ptem.h (which requires - sys/stream.h). The correct checks are in the code, but autoconf - complains if sys/stream.h is not included, rather than simply - checking for the header's presence - - 8/26 - ---- -builtins/hash.def - - fix a bug that prevented `hash -d' from working right (as soon as - hash removed a command from the table, the bug caused it to be added - right back) - - 8/27 - ---- -doc/{bash.1,bashref.texi} - - explicitly note that conditional primaries that operate on files - operate on the targets of symbolic links rather than the links - themselves - - 8/30 - ---- -lib/readline/display.c - - fix multibyte calculation of `physchars' in prompt expansion, to - handle double-width multibyte characters correctly - - changes to rl_redisplay to handle prompts longer than the screenwidth - that might contain double-width multibyte characters. Fixes from - Tomohiro Kubota - - 9/6 - --- -subst.c - - change word_list_split to avoid really bad behavior caused by calling - list_append for each split word -- as the list gets long, you have - to traverse it every time. Keep a pointer to the end of the list and - and just tack onto it - - 9/8 - --- -lib/readline/complete.c - - change fnprint to calculate the displayed width of a filename in - the same way as fnwidth - -subst.c - - in verify_substring_values, when expanding ${array[@]:offset}, make - sure negative offsets count from one greater than the array's - maximum index so things like ${x[@}: -1} work to give the last element - (requires fixing array tests) - -builtins/common.c - - new error function, sh_wrerror(), for builtins to call when a write - error occurs - -builtins/common.h - - extern declaration for sh_wrerror() - -builtins/cd.def - - change builtin_error call to use sh_wrerror() - -builtins/echo.def - - report write errors with sh_wrerror() instead of just returning - failure - -builtins/printf.def - - change printstr to return failure (-1) or success (0) indication - rather than void - - report write errors when printstr() fails, return failure - - if any of the PF/printf calls fail, report write error and return - failure - -execute_cmd.c - - change execute_in_subshell so the subshell command inherits the - command timing flags from the enclosing COMMAND * - - 9/11 - ---- -[prayers for the victims of 9/11/2001] - -lib/sh/strnlen.c - - new file, implementation of GNU libc extension function strnlen - -lib/sh/Makefile.in, {config.h,configure,Makefile}.in, MANIFEST - - changes for strnlen - -configure.in - - version changed to 3.1-devel - -doc/bash.1, lib/readline/doc/rluser.texi - - added description of `-o plusdirs' to complete/compgen (thanks, - Arnold) - -parse.y - - new parser_state flag, PST_ASSIGNOK, if set indicates we're parsing - arguments to a builtin that accepts assignment statement arguments - - turn on PST_ASSIGNOK in read_token_word when appropriate - - turn off PST_ASSIGNOK in read_token when appropriate - - don't attempt to parse a compound assignment specially unless we're - in a position where an assignment statement is acceptable, or - PST_ASSIGNOK is set - - 9/13 - ---- -variables.c - - make BASH_ARGC, BASH_ARGV, BASH_LINENO, and BASH_SOURCE - non-unsettable, since the shell uses those values internally - -expr.c - - make exponentiation right-associative, as is apparently correct - - 9/16 - ---- -arrayfunc.c - - make sure convert_var_to_array marks the environment as needing - recreation if the converted variable was exported - - 9/17 - ---- -braces.c - - mark ${ as introducing an additional level of braces only if it's - not in a quoted string -- quoted strings are handled before brace - matching is done - -parse.y - - fixed an obscure problem in history_delimiting_chars where the `in' - in a case statement could have a semicolon added after it, if the - `case word' was on a previous line - -support/config.guess - - support for newest versions of tandem non-stop kernel - -lib/readline/display.c - - in compute_lcd_of_matches, explicitly cast `text' to `char *' before - passing it to rl_filename_dequoting_function - -lib/readline/terminal.c - - bind the key sequence sent by the keypad `delete' key to delete-char - (same as ^D in emacs mode) - -builtins/ulimit.def - - in print_all_limits, don't print anything if get_limit returns - -1/EINVAL, indicating that the kernel doesn't support that particular - limit - - add -i (max number of pending signals), -q (max size of posix msg - queues), -x (max number of file locks) for systems (Linux) that - support them - -doc/{bash.1,bashref.texi} - - fix description of correspondence between FUNCNAME, BASH_LINENO, - and BASH_SOURCE indices in description of BASH_LINENO - - 9/18 - ---- -lib/sh/shquote.c - - don't quote CTLESC and CTLNUL with CTLESC in sh_backslash_quote, as - long as the resultant string never gets sent to the word expansion - functions without going through the shell parser - -externs.h - - add extern declarations for strnlen and strpbkrk from lib/sh - -subst.[ch] - - changes to handle case where IFS consists of multibyte characters. - Changed: string_extract_verbatim, split_at_delims, - string_list_dollar_star, string_list_dollar_at, list_string, - get_word_from_string, setifs - - 9/19 - ---- -mailcheck.c - - change file_mod_date_changed to reset the cached mail file data if - the file size drops to zero - -lib/readline/complete.c - - change append_to_match so that a non-zero value for - rl_completion_suppress_append will cause no `/' to be appended to a - directory name - -bashline.c - - experimental change to suppress appending a slash for a completed - filename that is found in PATH as well as a directory in the current - directory under certain circumstances: a single instance found in - $PATH when `.' is not in $PATH, and multiple instances found in the - $PATH, even when `.' is in the $PATH - - 9/24 - ---- -command.h - - new word flag: W_ASSIGNRHS, means word is rhs of assignment statement - - new word flag: W_NOTILDE, means word is not to be tilde expanded - - new word flag (internal): W_ITILDE, means the next character is a - tilde that should be expanded - -general.c - - new set of tilde suffixes for use when parsing the RHS of an - assignment statement and =~ should not be subject to tilde expansion - - if ASSIGN_P argument to bash_tilde_expand is 2, use tilde prefixes - for parsing RHS of assignment statement - -general.[ch] - - new function bash_tilde_find_word, drop-in replacement for - tilde_find_word - -subst.c - - call bash_tilde_expand with secord argument of 2 when expanding rhs - of an assignment statement, so tildes after second and subsequent - `=' in an assignment are not expanded - - new function, expand_string_assignment, to expand the rhs of an - assignment statement - - add `~' to EXP_CHAR, the characters that will cause the word - expansion functions to be called - - move tilde expansion into expand_word_internal instead of many - different calls to bash_tilde_expand scattered across different - functions. NOTE: This means that double quotes surrounding a - {paramOPword} expansion will cause tilde expansion to NOT be - performed on `word'. I think this is right, what POSIX specifies, - and consistent with the behavior of other characters in the rhs - -execute_cmd.c - - take out calls to bash_tilde_expand before calling word expansion - functions - - 9/26 - ---- -execute_cmd.c - - make sure to call UNBLOCK_CHILD before returning on a pipe creation - failure in execute_pipeline - - 9/27 - ---- -variables.c - - change get_bash_command to deal with the_printed_command_except_trap - being NULL - -execute_cmd.c - - fix execute_simple_command to deal with the_printed_command being - NULL when assigning to the_printed_command_except_trap -- fixes - seg fault in savestring() - -parse.y - - change the parser so that the closing `)' in a compound variable - assignment delimits a token -- ksh93 does it this way - -doc/{bash.1,bashref.texi} - - change description of tilde expansion to note that expansion is - attempted only after the first =~ in an assignment statement - -builtins/declare.def - - when assigning to an array variable with declare -a x=(...), make - sure the last character in the rhs of the variable assignment is - `)', not just that it appears somewhere - - 9/28 - ---- -command.h - - add a `W_NOEXPAND' flag to inhibit all expansion except quote removal - - add a `W_COMPASSIGN' flag to denote a word is a compound assignment - statement - -parse.y - - set W_COMPASSIGN on words that appear to be compound assignments - -subst.c - - pass W_NOXPAND and W_COMPASSIGN through end of expand_word_internal - -subst.[ch] - - new function, expand_assignment_string_to_string, calls - expand_string_assignment and then string_list on the result - -variables.c - - assign_in_env now calls expand_assignment_string_to_string - - 9/30 - ---- -builtins/common.c - - change get_job_spec so the null job `%' once again means the current - job - - 10/1 - ---- -subst.c - - do_assignment_internal now takes a WORD_DESC * as its first - argument, and uses its `word' member as the assignment string - - change expand_word_list_internal to call do_word_assignment instead - of do_assignment, passing it `word' instead of, e.g., `word->word' - - change extract_array_assignment_list to just return the passed - string minus a trailing `)' if the last character is a right - paren - - change do_assignment_internal to call extract_array_assignment_list - -subst.[ch] - - change do_assignment and do_assignment_no_expand to take a `char *' - instead of `const char *' first argument; change extern prototypes - - new function, do_word_assignment, takes a WORD_DESC * and calls - do_assignment_internal on it; add extern declaration with prototype - -general.h - - new typedef, sh_wassign_func_t, like sh_assign_func_t but takes a - WORD_DESC * as its first argument - -variables.[ch] - - assign_in_env now takes a WORD_DESC * as its first argument - - 10/2 - ---- -command.h - - new word flag, W_ASSNBLTIN, denotes that the word is a builtin - command (in a command position) that takes assignment statements - as arguments, like `declare' - - new word flags, W_ASSIGNARG, denotes that word is an assignment - statement given as argument to assignment builtin - -execute_cmd.c - - set W_ASSNBLTIN flag in fix_assignment_words if necessary (if there - are any arguments that are assignment statements) - - set W_ASSIGNARG flag in fix_assignment_words if necessary - -subst.c - - new function, do_compound_assignment, encapsulates the necessary - code to perform a compound array assignment (including creation of - local variables); called from do_assignment_internal - - to fix the double-expansion problem with compound array assignments - that are arguments to builtins like `declare', changed - shell_expand_word_list to treat those arguments like assignment - statements (with proper creation of local variables inside shell - functions) and pass the attribute-setting portion of the statement - onto the builtin. This is what ksh93 appears to do, from inspection - of the `ksh93 -x' output - -execute_cmd.c - - fix execute_simple_command: in case of pipeline or async command, - when forking early, set `subshell_environment' so that it can contain - both SUBSHELL_PIPE and SUBSHELL_ASYNC -- the two should not be - mutually exclusive. Fixes bug reported by pierre.humblet@ieee.org - - remove references to last_pid, old_command_subst_pid; use NO_PID as - a sentinel value to decide whether or not a child process has been - created and needs to be waited for. Submitted by - pierre.humblet@ieee.org to fix recycling-pid problem on cygwin - -doc/{bash.1,bashref.texi} - - fixed documentation of `@(pattern)' extended globbing operator -- - it succeeds if the string matches one of the patterns, not exactly - one. This is what ksh93 does, too - -lib/readline/complete.c - - fixed rl_menu_complete so that a negative argument cycles backwards - through the list - - 10/3 - ---- -subst.c - - use W_COMPASSIGN flag in do_assignment_internal instead of deciding - lexically which assignments are compound array assignments - - 10/6 - ---- -support/shobj-conf - - additions for System V.5 from Boyd Gerber - -subst.c - - in command_substitute, if subshell_environment includes - SUBSHELL_ASYNC, call make_child with the `async_p' argument set to - non-zero. This keeps command substitutions for async commands or - pipelines from trying to give the terminal back to the shell's - pgrp. make sure to save and restore last_asynchronous_pid. Fix - suggested by - - 10/7 - ---- -config.h.in - - add a placeholder definition for WCONTINUED_BROKEN - - 10/9 - ---- -aclocal.m4 - - add BASH_CHECK_WCONTINUED, checks for glibc bug where WCONTINUED is - defined but rejected as invalid by waitpid(2) - -configure.in - - add call to BASH_CHECK_WCONTINUED, defines WCONTINUED_BROKEN - -redir.c - - experimental change to add_undo_redirect to save manipulations to - file descriptors >= SHELL_FD_BASE (10) on the list of redirections - to be undone even if `exec' causes the list to be discarded - -doc/{bash.1,bashref.texi} - - note that redirections using file descriptors > 9 should be used - carefully, because they might conflict with file descriptors the - shell uses internally - - 10/11 - ----- -parse.y - - fix pipeline_command production to handle case where `pipeline' - as `argument' of `!' or `time' is null (e.g., a syntax error not - handled by the grammar) - - 10/13 - ----- -lib/readline/readline.c - - new internal variable, _rl_bind_stty_chars; if non-zero, bind the - terminal special characters to readline equivalents at startup - - change readline_default_bindings() and reset_default_bindings() to - understand _rl_bind_stty_chars - -lib/readline/rlprivate.h - - new extern declaration for _rl_bind_stty_chars - -lib/readline/rltty.c - - change rl_prep_terminal to add support for _rl_bind_stty_chars - - 10/15 - ----- -lib/readline/bind.c - - new bindable variable, `bind-tty-special-chars', bound to value of - _rl_bind_stty_chars - -doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} - - documented new readline variable `bind-tty-special-chars' - -builtins/pushd.def - - make the first check for option `--' skip the rest of option - checking - - 10/16 - ----- -lib/readline/shell.c - - change sh_set_lines_and_columns to prefer setenv, which has - predictable memory allocation behavior, to putenv, which does not - - 10/19 - ----- -variables.c - - change push_exported_var so that a tempenv variable has to have the - export attribute set (which they all do -- something to look at) and - the `propagate' attribute set to be propagated down to the next - scope - -execute_cmd.c - - change execute_builtin so that if CMD_COMMAND_BUILTIN is set in the - passed flags argument, call pop_scope with a value that says the - builtin is not special, since `command' means that preceding variable - assignments don't persist in the environment. Fixes problem with - variable assignments preceding command preceding special builtin - keeping those variable assignments around (when in posix mode) - - 10/20 - ----- -lib/sh/shquote.c - - new function, sh_mkdoublequoted, brackets a given string with - double quotes and returns a new string. Flags argument, if non- - zero, means to quote embedded double quotes with backslashes - -externs.h - - new extern declaration for sh_mkdoublequoted - -parse.y - - use sh_mkdoublequoted after calling localeexpand() - -lib/sh/strtrans.c - - change ansicstr to understand that (flags & 4) != 0 means to remove - backslash from unrecognized escape sequences - -general.c - - fix logic problem in assignment() that caused non-variable-starter - characters to be allowed, resulting in things like `1=xxx' creating - a variable `1' in the hash table - - 10/21 - ----- -bashline.c - - don't call programmable_completions with an assignment statement - argument - - 10/22 - ----- -lib/readline/rltty.c - - in prepare_terminal_settings, turn echoing on (readline_echoing_p) - if get_tty_settings fails because the input is not a terminal - - 10/24 - ----- -lib/readline/util.c - - include rlmbutil.h for multibyte definitions - - new function, _rl_walphabetic, wide char version of rl_alphabetic - -lib/readline/mbutil.c - - new function, _rl_char_value(buf, ind), returns value of (possibly - multibyte) character at buf[ind] - -lib/readline/rlmbutil.h - - extern defines for _rl_walphabetic and _rl_char_value for when - multibyte chars are not being used - - new wrapper definitions for _rl_find_next_mbchar (MB_NEXTCHAR) and - _rl_find_prev_mbchar (MB_PREVCHAR) that try to avoid unneeded - function calls - -lib/readline/text.c - - fix rl_foward_word to work with multibyte characters (or in a - multibyte locale) using above utility functions - - fix rl_backward_word to work with multibyte characters (or in a - multibyte locale) using above utility functions - - 10/26 - ----- -parse.y - - fix parse_matched_pair so that it doesn't swallow \ when - parsing a $'...' construct (call shell_getc with different arg) - - 10/28 - ----- -lib/glob/glob.c - - after some (compiled-in) threshold, glob_vector will stop using - alloca to allocate `struct globval's and will switch to using - malloc, with appropriate cleanup before returning - -subst.c - - don't expand tildes after `=' in expand_word_internal, even if the - W_TILDEEXP flag is set, unless it's the first tilde in a word - marked W_ASSIGNMENT - - 10/31 - ----- -lib/readline/text.c - - make sure rl_point doesn't go below 0 in rl_delete_horizontal_space - (from SUSE, but not sent in) - -shell.c - - make sure shell_is_restricted skips over a single leading `-' in - the shell name (from SUSE, but not sent in) - -lib/readline/display.c - - disable `fast redisplay' at the end of the line if in a locale that - supports multibyte characters (from SUSE, but not sent in) - -lib/readline/histexpand.c - - fix a problem with finding the delimiter of a `?' substring when - compiled for multibyte characters (from SUSE, but not sent in) - - 11/1 - ---- -lib/readline/display.c - - correct some assignments to _rl_last_c_pos: when in a multibyte - locale, it's used as an absolute cursor position; when not using - multibyte characters, it's a buffer offset. I should have caught - this when the multibyte character support was donated - - 11/5 - ---- -general.c - - change `assignment()' to accept `+=' assignment operator - -arrayfunc.[ch] - - bind_array_variable and assign_array_element both take a new `flags' - argument - - assign_array_var_from_string, assign_array_from_string, and - assign_array_var_from_word_list now all take a new `flags' argument - - change assign_array_var_from_word_list to understand how to append - to an array variable - - change assign_array_var_from_string to understand how to append - to an array variable. It does not unset the previous value if - appending, allowing both old values to be changed and new ones to - be added - -subst.h - - new flag #defines to use for evaluating assignment statements - -{subst,variables}.c, builtins/{declare,read}.def - - change callers of assign_array_element and bind_array_variable - - change do_compound_assignment to understand assignment flags - - change do_assignment_internal to set assignment flags and pass them - to underlying functions - -pcomplete.c,builtins/{declare,read}.def - - fix callers of assign_array_var_from_string, assign_array_var_from_word_list - -variables.[ch] - - make_variable_value now takes a new `flags' argument - - make_variable_value now understands how to append to a particular - variable, using the old value - - bind_variable_value now takes a new `flags' argument - - change make_variable_value to understand ASS_APPEND flag - - bind_variable now takes a new `flags' argument - - bind_variable_internal now takes a new `flags' argument - -arrayfunc.c - - change callers of make_variable_value to add flags arg - -builtins/declare.def - - change callers of bind_variable_value to add flags arg - -{execute_cmd,mailcheck,pcomplete,shell,subst,variables}.c,parse.y -builtins/{cd,command,declare,getopts,read,set,setattr}.def - - change callers of bind_variable to add flags arg - -variables.c - - change callers of bind_variable_internal - - change bind_variable_internal to pass assignment flags on to - make_variable_value - - change assign_in_env to treat `var+=value' like `var=value' - -arrayfunc.c - - break code that actually constructs the new value and assigns it - to a particular array index out into a new functions: - bind_array_var_internal. This fakes out make_variable_value by - passing a dummy SHELL_VAR * so it can do proper appending and other - += processing - - changes to assign_array_var_from_string to accept and process as if - they were `standalone' assignment statements array assignment words - of the form [ind]+=val - - 11/7 - ---- -builtins/declare.def - - added support for `declare [flags] var+=value'. `Flags' are applied - before the assignment is performed, which has implications for things - like `-i' -- if -i is supplied, arithmetic evaluation and increment - will be performed - -builtins/setattr.def - - add support for `+=' assignment for rest of `assignment builtins': - export, readonly - - 11/12 - ----- -lib/readline/display.c - - make sure prompt_physical_chars and prompt_invis_chars_first_line - are reset to 0 if the prompt string passed to rl_expand_prompt is - NULL or empty - - 11/14 - ----- -{configure,config.h}.in - - check for `raise', define HAVE_RAISE if available - -lib/intl/dcigettext.c - - make sure `raise' is defined if HAVE_RAISE is not before - eval-plurah.h is included - -lib/malloc/trace.c - - put extern declaration for imalloc_fopen inside the MALLOC_TRACE - #ifdef - - 11/16 - ----- -lib/intl/Makefile.in - - make sure SHELL is defined to cpp - -lib/intl/dcigettext.c - - make sure we use getcwd() even if HAVE_GETCWD is not defined after - including config.h; if SHELL is defined, #define HAVE_GETCWD - - 11/18 - ----- -trap.[ch] - - new function, int signal_in_progress(int sig), returns TRUE if the - trap handler for signal SIG is currently executing - - 11/19 - ----- -redir.c - - slightly change do_redirection_internal to set the close-on-exec - flag for file descriptors > 2 used to save file descriptors < 2 - using explicit redirections (e.g., `exec 3>&1'). This keeps file - descriptors pointing to pipes from being left open but doesn't - change the shell's file descriptor semantics - - 11/20 - ----- -doc/{bash.1,bashref.texi} - - correct some minor typos, forwarded from doko@debian.org - - 11/22 - ----- -doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} - - documented detail that yank-last-arg and yank-nth-arg use the history - arg expansion code (and, as a result, are subject to restrictions - of the history-comment character) - - 11/23 - ----- -execute_cmd.c - - changes so that BASH_COMMAND preserves its value into a DEBUG trap: - for commands, arithmetic for command expressions, select commands, - case commands, (( commands, [[ commands, simple commands - - 11/24 - ----- -doc/{bash.1,bashref.texi} - - changed description of `set' builtin slightly so that it is clear - that only variables are displayed in posix mode and that read-only - variables can't be reset by simply sourcing the output of `set' - -lib/sh/strftime.c - - don't try to redefine `inline' if it's already defined - - 11/26 - ----- -execute_cmd.c - - fix execute_function to check funcname_a after function execution, - since FUNCNAME can be changed or unset within a function - - 11/27 - ----- -builtins/evalfile.c - - make same changes as 11/26, this time to _evalfile - -execute_cmd.c - - change execute_function to run the return trap after a function - completes execution even if the shell is compiled without DEBUGGER - defined - -trap.c - - change reset_or_restore_signal_handlers so that the RETURN trap is - not inherited by command substitution when DEBUGGER is not defined - - 11/30 - ----- -lib/readline/misc.c - - fix memory leaks in _rl_free_history_entry and rl_maybe_replace_line - caused by not freeing `timestamp' member of history entry - - make sure timestamp is initialized to NULL in rl_maybe_save_line - - 12/1 - ---- -execute_cmd.c - - fix execute_function so a function calling `return' will run the - RETURN trap, if one's defined - -doc/{bash.1,bashref.texi} - - fix description of RETURN trap in various places to indicate that it's - only inherited by shell functions if function tracing is on globally - or has been enabled for that function - - fix documentation to indicate that the DEBUG and RETURN traps are - inherited under the same conditions - -execute_cmd.c - - a function does not inherit the RETURN trap if a DEBUG trap is - currently running - - 12/2 - ---- -lib/glob/xmbsrtowcs.c - - change xmbsrtowcs to handle the one case where malloc can fail - (though it should not matter) -- don't try to free a null pointer - - 12/9 - ---- -subst.c - - fix get_var_and_type to handle var[@], where `var' is a scalar - variable, identically to var -- all calling expansions can now - handle var[@] like var. Bug reported by agriffis@gentoo.org - - 12/10 - ----- -lib/readline/bind.c - - make new-style "\M-x" keybindings obey `convert-meta' settings - (bug reported by twaugh@redhat.com) - - 12/14 - ----- -builtins/set.def - - added description of `-' option to help text - -builtins/shopt.def - - fix bug that caused `gnu_errfmt' to not be compiled in unless - READLINE is defined - - 12/16 - ----- -subst.c - - fixed a typo in string_extract_verbatim in first call to MBLEN - (used `slen - 1' instead of `slen - i') - - 12/17 - ----- -subst.c - - avoid some calls to strlen if the value is only being used for - ADVANCE_CHAR and MB_CUR_MAX == 1 (since ADVANCE_CHAR doesn't need - it unless multibyte characters are possible) - - change string_extract_verbatim so it takes the length of the string - as a parameter, so we don't have to recompute the length of the same - string over and over again when doing word splitting (that kills if - it's a long string) - - 12/18 - ----- -subst.c - - in string_list_dollar_star, make sure to null-terminate the - separator if the character is longer than one byte - - 12/22 - ----- -doc/{bash.1,bashref.texi} - - changed text in quoting section explaining that double quotes do - not prevent history expansion from taking place, and that backslashes - escaping ! are not removed - - 12/28 - ----- -shell.c - - set gnu_error_format to 1 if running under emacs. This should allow - the emacs `next-error' stuff to work, at least for interactive shells - -parse.y - - change yy_stream_get to set interrupt_immediately before calling - getc_with_restart when the shell is interactive. This avoids the - synchronization problem caused by the call to QUIT in read_a_line, - which results in the first character after a SIGINT/^C to be - dropped - - 12/30 - ----- -builtins/mkbuiltins.c - - changes to write long documentation to arrays as a single string by - default, rather than an array of strings -- enabled by default - - new option, -S, to restore old behavior of writing multiple strings - for long documentation - - changes to avoid filenames written when the separate-filenames option - (-H) has been supplied being run through gettext - -configure.in - - new cofiguration option, --enable-single-help-strings (on by default), - causes help text to be stored as a single string (or smaller set than - one string per line) - -builtins/Makefile.in - - pass `-S' to mkbuiltins if single-help-strings is turned off - -doc/bashref.texi - - documented new `single-help-strings' configure option - - 1/3/2005 - -------- -jobs.c - - make wait_for return a non-zero status if the job or processed - waited for is suspended. Returns 128 + stop signal. This fixes - the problem with `echo one && sleep 5 && echo two' displaying - `two' after the sleep is suspended - - 1/5 - --- -print_cmd.c - - change indirection_level_string so the code duplicates the first - character of $PS4 to indicate the indirection level, rather than - the first byte - - 1/8 - --- -variables.c - - new special variable hook function for COMP_WORDBREAKS; sets - rl_completer_word_break_characters back to NULL when the variable - is unset - - change bind_variable_value to understand dynamic variables with - assign_function set, and handle them correctly. If the variable is - being appended to, use make_variable_value to create the new - value - - change bind_variable_internal to understand dynamic variables with - assign_function set, and handle them the same way - - RANDOM and LINENO now get the integer attribute, so appending works - as expected - - ditto for HISTCMD, MAILCHECK, OPTIND - -lib/readline/display.c - - change _rl_make_prompt_for_search to set prompt_physical_chars - appropriately - - rl_save_prompt and rl_restore_prompt save and restore - prompt_prefix_length - - change redraw_prompt to use rl_save_prompt and rl_restore_prompt - - change rl_restore_prompt to set the `save' variables back to - NULL/0 so code can check whether or not the prompt has been saved - - change rl_message and rl_clear_message to save and restore the - prompt if the caller has not already done it (using a simple - semaphore-like variable) - - change rl_message to call expand_prompt, so that local_prompt and - local_prompt prefix are set before calling the redisplay functions, - in case the prompt is longer than a screenwidth (fixes bug - reported to debian by epl@unimelb.edu.au) - -lib/readline/doc/rltech.texi - - make sure to note that rl_save_prompt should be called before - rl_message, and rl_restore_prompt before rl_clear_message - -pcomplete.c - - make sure to save and restore the parser state around the call to - execute_shell_function in gen_shell_function_matches. Fixes bug - reported by a050106.1.keeLae3x@captaincrumb.com (cute) - -lib/readline/readline.c - - fix _rl_dispatch_subseq in the case where we're recursing back up - the chain (r == -2) and we encounter a key shadowed by a keymap, - but originally bound to self-insert. Calling rl_dispatch with - ANYOTHERKEY as the first argument will call rl_insert, but with - ANYOTHERKEY (256) as the char to insert. Use the shadow keymap - and set things up to dispatch to rl_insert with the shadowed key - as the argument. Fixes the bug reported by Thomas Glanzmann - (sithglan@stud.uni-erlangen.de) - - 1/13 - ---- -command.h - - new word flag: W_HASQUOTEDNULL - -make_cmd.c - - new function to allocate a WORD_DESC * without doing anything with a - containing string: alloc_word_desc - -make_cmd.h - - extern declaration for alloc_word_desc - -dispose_cmd.c - - new function to just free a WORD_DESC * without freeing the contained - string: dispose_word_desc - -dispose_cmd.h - - extern declaration for dispose_word_desc - -subst.c - - change some places to use alloc_word_desc - - make same changes to word_list_quote_removal as were made to - word_list_split - - set W_HASQUOTEDNULL when a word is created with w->word[0] == - CTLNUL and w->word[1] == '\0' - -subst.c - - parameter_brace_expand_word now returns a WORD_DESC * -- changed - callers to understand - - parameter_brace_expand_indir now returns a WORD_DESC * -- changed - callers to understand - - parameter_brace_expand_rhs now returns a WORD_DESC * -- changed - callers to understand - - remove W_HASQUOTEDNULL from a word's flags when remove_quoted_nulls - is called on the word's enclosed string - - 1/15 - ---- -subst.c - - param_expand now returns a WORD_DESC * -- changed callers to - understand - - parameter_brace_expand now returns a WORD_DESC * -- changed - callers to understand - - in expand_word_internal, only call remove_quoted_nulls after a word - is returned with W_HASQUOTEDNULL - - changes to pass W_HASQUOTEDNULL flag out of expand_word_internal; - changed callers to call remove_quoted_nulls only if return value has - W_HASQUOTEDNULL set. This is a mostly-complete fix for the - long-standing CTLNUL confusion between a quoted null expansion and - the expansion of a variable with a literal '\177' in its value - - change string_list_dollar_at to compute the separator character the - same way as string_list_dollar_star: using the already-computed - values generated in setifs() - - when expanding unquoted $*, if $IFS is empty, check whether or not - we're eventually going to split the results (e.g., on the rhs of an - assignment statement) and concatenate the positional parameters as - if the expansion were within double quotes if we're not going to - split - -tests/iquote.tests - - test cases based on old bug reports about the quoted-null vs. 0177 - problem the recent code fixes - - 1/16 - ---- -dispose_cmd.c - - set w->word to 0 before putting a WORD_DESC * back in the cache in - dispose_word_desc; changed callers to delete those assignments - -variables.c - - change assign_random and get_random_value so that the random number - generator only gets re-seeded once in a subshell environment, and - assigning a value to RANDOM counts as seeding the generator. This - makes the sequences a little more predictable - - 1/20 - ---- -lib/readline/history.c - - fix replace_history_entry, remove_history to return NULL if - passed index is < 0 - - 1/22 - ---- -lib/sh/netconn.c - - fix isnetconn() to understand that getpeername can return ENOTCONN - to indicate that an fd is not a socket - -configure.in - - set BUILD_DIR to contain backslashes to escape any spaces in the - directory name -- this is what make will accept in targets and - prerequisites, so it's better than trying to use double quotes - - set SIZE to the appropriate value if some cross-compiling tool - chain is being used; `size' by default (can be overridden by - SIZE environment variable) - -Makefile.in - - use $(SIZE) instead of size; set SIZE from configure - - 1/31 - ---- -arrayfunc.c - - in array_value_internal, return NULL right away if the variable's - value is NULL, instead of passing a null string to add_string_to_list - - 2/1 - --- -jobs.h - - new struct to hold stats and counters for child processes and jobs - - change some uses of global and static variables to use members of - new struct (struct jobstats) - - 2/2 - --- - -jobs.[ch] - - change PRUNNING to PALIVE - - new define INVALID_JOB - - new macro get_job_by_jid(ind), currently expands to jobs[ind] - - new define J_JOBSTATE, operates on a JOB * like JOBSTATE operates on - a job index - - new function, reset_job_indices, called from delete_job if - js.j_lastj or js.j_firstj are removed - - change various functions to keep counters and stats in struct jobstats - -pcomplete.c, builtins/common.c, builtins/{exit,fg_bg,jobs,kill,wait}.def - - change global variables (e.g., job_slots) to struct members - (e.g., js.j_jobslots) - - use INVALID_JOB define where appropriate - - use get_job_by_jid and J_JOBSTATE where appropriate - -trap.c - - change reset_or_restore_signal_handler to not free the exit trap - string if the function pointer is reset_signal, which is used when - the trap strings shouldn't be freed, like in command substitution - - 2/4 - --- -jobs.c - - new function, realloc_jobs_list, copies jobs array to newly-allocated - memory shrinking (or growing) size to have next multiple of JOB_SLOTS - greater than js.j_njobs - - change compact_jobs_list to just call reap_dead_jobs and then - realloc_jobs_list, simplifying it considerably - - discard_pipeline now returns `int': the number of processes freed - - slightly changed the logic deciding whether or not to call - compact_jobs_list: now non-interactive shells will compact the - list if it reaches MAX_JOBS_IN_ARRAY in size - -parse.y - - move test for backslash-newline after pop_string in shell_getc so - that things like - - ((echo 5) \ - (echo 6)) - - work right - - 2/8 - --- -jobs.h - - new structs for holding status of exited background processes, as - POSIX specifies - - new job flag: J_ASYNC - -jobs.c - - new functions to manipulate struct holding status of exited - background processes - - new members in struct jobstats to hold pointer to last created job - and last created asynchronous job - - initialize js.c_childmax in initialize_job_control - - if the `async' arg to stop_pipeline is non-null, set the J_ASYNC - flag in the job struct - - set js.j_last_made_job and js.j_last_asynchronous_job in - stop_pipeline - - new function: find_last_proc, returns the PROCESS * to the last proc - in a job's pipeline - - changed find_last_pid to call find_last_proc - - change delete_job to call bgp_add on the last proc of the job being - deleted - - change delete_all_jobs and wait_for_background_pids to call bgp_clear - - 2/9 - --- -jobs.c - - change wait_for_single_pid to look for pid in bgpids.list (using - bgp_search()) if find_pipeline returns NULL - - 2/10 - ---- -support/shobj-conf - - change the solaris-gcc stanza so that it auto-selects the appropriate - options for ld depending on which `ld' gcc says it's going to run - - 2/11 - ---- -jobs.h - - add support for PS_RECYCLED as a process state, add PRECYCLED macro - to test it. Change PALIVE and PRUNNING macros to not count processes - in PS_RECYCLED state - -execute_cmd.c - - restore use of last_pid as sentinel value; use NO_PID as sentinel - only if RECYCLES_PIDS is defined - -jobs.c - - change find_job to return a pointer to the PROCESS the desired pid - belongs to, analogous to find_pipeline returning pointer to JOB - - change find_job callers to add extra argument - - change running_only arguments to find_pipeline and find_job to - alive_only, since we don't want recycled pids returned here and it - better describes the result - - new function find_process, calls find_pipeline and searches the - returned pipeline for the PROCESS * describing the desired pid - - in make_child, if fork() returns the same pid as the value of - last_asynchronous_pid when RECYCLES_PIDS is defined, avoid pid - aliasing by resetting last_asynchronous_pid to 1 - - use PRUNNING instead of child->running, since we, for the most - part, don't want to consider recycled pids (e.g., in make_child()) - - call find_process instead of find_pipeline in waitchld() - - use PEXITED(p) instead of testing p->running == PS_DONE - - in make_child, call bgp_delete to remove a just-created pid from the - last of saved pid statuses - - in add_process, check whether or not pid being added is already in - the_pipeline or the jobs list (using find_process) and mark it as - recycled if so - - This set of fixes mostly came from Pierre Humblet - to fix pid aliasing and reuse problems on - cygwin - -variables.c - - set $_ from the environment if we get it there, set to $0 by - default if not in env - -doc/{bashref.texi,bash.1} - - a couple of clarifying changes to the description of $_ based on - comments from Glenn Morris - - 2/15 - ---- -shell.c - - use strstr instead of strmatch when checking whether $EMACS contains - `term' -- simpler and faster - - 2/18 - ---- -builtins/cd.def - - implement posix requirement that `pwd -P' set $PWD to a directory - name containing no symlinks - - add new function, setpwd(), just sets (and changes exported value) - of PWD - -doc/bashref.texi - - add note to posix mode section about pwd -P setting $PWD - -doc{bash.1,bashref.texi} - - added note that BASH_ARGC and BASH_ARGV are only set in extended - debug mode - - expand description of extdebug option to include everything changed - by extended debug mode - - 2/19 - ---- -pathexp.h - - new flag macro, FNMATCH_IGNCASE, evaluates to FNM_CASEFOLD if the - match_ignore_case variable is non-zero - -execute_cmd.c - - new variable, match_ignore_case - - change call to strmatch() in execute_case_command so it includes - FNMATCH_IGNCASE - -test.c - - change call to strmatch() in patcomp() so that pattern matching - calls for [[ ... ]] obey the match_ignore_case variable - -lib/sh/shmatch.c - - if match_ignore_case is set, enable REG_ICASE in the regexp match - flags - -builtins/shopt.def - - new settable option, `nocasematch', controls the match_ignore_case - variable. Currently alters pattern matching for case and [[ ... ]] - commands (==, !=, and =~ operators) - -doc/{bashref.texi,bash.1} - - updated descriptions of [[ and case to include reference to - nocasematch option - - 2/22 - ---- -builtins/mkbuiltins.c - - add `times' to the list of posix special builtins - - 2/23 - ---- -builtins/cd.def - - posix mode no longer turns on effect of -P option on $PWD if a - directory is chosen from CDPATH - -doc/bashref.texi - - clarified that in posix mode, reserved words are not alias expanded - only in a reserved word context - - removed item about cd, $CDPATH, and -P from posix mode section - - 2/24 - ---- -builtins/reserved.def - - minor cleanups to the description of `if' - - 3/2 - --- -subst.c - - change list_string and get_word_from_string to explicitly treat an - IFS character that is not space, tab, or newline *and any adjacent - IFS white space* as a single delimiter, as SUSv3/XPG6 says - -builtins/read.def - - check whether or not the number of fields is exactly the same as - the number of variables instead of just assigning the rest of the - line (minus any trailing IFS white space) to the last variable. - This parses a field and checks whether or not it consumes all of - the input (including any trailing field delimiters), falling back - to the previous behavior if it does not. This is what POSIX.2 - specifies, I believe (and the consensus of the austin-group list). - This requires a few tests in read.tests to be changed: backslashes - escaping IFS whitespace characters at the end of input cause the - whitespace characters to be preserved in the value assigned to the - variable, and the trailing non-whitespace field delimiter issue - - 3/7 - --- -configure.in - - add -D_POSIX_SOURCE to the LOCAL_CFLAGS for Interix - - 3/8 - --- -bashline.c - - make bash_directory_expansion a void function, since it doesn't have - any return value - - 3/9 - --- -builtins/read.def - - when testing for a pipe, use `fd' instead of hard-coding 0, since we - can read from other file descriptors now - -lib/sh/zread.c - - in zsyncfd, only set lind and lused to 0 if the lseek succeeds. - If the lseek fails, we might steal input from other programs, but - a failed lseek won't cause us to erroneously discard input - - 3/11 - ---- -builtins/evalstring.c - - don't allow parse_and_execute to short-circuit and call exec() if - the command's return value is being inverted - - 3/15 - ---- -builtins/printf.def - - new macro PC to call putchar and increment number of chars printed - - fixes bug in computation of value for %n format char - - `tw' is now a global var so printstr can modify it using PC() - - convert PF macro to use asprintf into a local buffer - Preparation for printf -v var - - add code to add the text printed to a `variable buffer' if -v option - supplied. The buffer grows as needed - - printf now takes a `-v var' option to put the output into the variable - VAR rather than sending it to stdout. It does not: - print partial output on error (e.g., format string error) - handle NULs in the variable value, as usual - - 3/16 - ---- -parse.y - - fix bug in prompt string decoding that caused a core dump when PS1 - contained \W and PWD was unset (null pointer deref) - -builtins/printf.def - - changed -v var behavior so it stores partial output into the named - variable upon an error - - 3/24 - ---- -lib/readline/bind.c - - bool_to_int now takes a `const char *' argument - -support/{printenv,recho,zecho}.c - - include config.h - - include "bashansi.h" for appropriate extern function declarations - -configure.in - - on MacOS X 10.4, compensate for loader not allowing static library - to override existing system dynamic library when compiling -dynamic - (affects readline and history libraries); so use absolute pathname - instead of -lreadline as library name - -lib/glob/{glob,sm_loop,smatch}.c - - make sure to cast arguments to (char *) or (unsigned char *) as - appropriate to avoid gcc4 warnings - -lib/glob/smatch.c - - collsym (single-byte version) now takes a (CHAR *) first argument to - match callers; cast argument to strncmp appropriately - -lib/sh/snprintf.c - - fix ldfallback and dfallback to handle width and precision specs in - the format passed to sprintf() - - fix STAR_ARGS macro to deal with negative field widths and precisions - - 3/25 - ---- -builtins/printf.def - - since a negative precision in a "x.x[fFgGeE]" format specifier should - be allowed but treated as if the precision were missing, let it - through - -lib/sh/snprintf.c - - fix * code to deal with a negative precision by treating it as if - the `.' and any digit string in the precision had not been specified - - fix format parsing code to deal with a negative inline precision, - e.g., "%4.-4f" by treating it as if the `'. and any digit string in - the precision had not been specified - - a `+' in a format specifier should only act as a flag if it comes - before a `.' (otherwise it is ignored) - -lib/readline/vi_mode.c - - new function, rl_vi_rubout, to rl_rubout as rl_vi_delete is to - rl_delete; saves deleted text for possible reinsertion as with any - vi-mode `text modification' command (fixes problem with `X' reported - by beat.wieland@gmx.ch) - -lib/readline/vi_keymap.c - - bind `X' in vi command mode to rl_vi_rubout - -lib/readline/funmap.c - - add a bindable `vi-rubout' command, runs rl_vi_rubout - -lib/readline/text.c - - rewrote internals of _rl_rubout_char to make structure cleaner - -lib/readline/{complete,text}.c - - changed code to remove #ifdef HANDLE_MULTIBYTE where possible - - 3/28 - ---- -lib/readline/examples/rl.c - - include instead of posixstat.h if READLINE_LIBRARY not - defined - -subst.c - - fix mbstrlen to treat invalid multibyte sequences as sequences of - single-byte characters - - 4/8 - --- -configure.in - - default SIZE to `:' if cross-compiling and an appropriate size for - the target is not found - - 4/11 - ---- -subst.c - - change match_upattern and match_wpattern to check whether or not the - supplied pattern matches anywhere in the supplied string, prefixing - and appending the pattern with `*' if necessary. If it doesn't we - can short-circuit immediately rather than waste time doing up to - N-1 unsuccessful calls to strmatch/wcsmatch (which kills for long - strings, even if the pattern is short) - - 4/12 - ---- -configure.in - - make sure the special case for MacOS X 10.4 only kicks in if the - `--with-installed-readline' option isn't supplied - -lib/readline/{callback,readline,signals}.c - - make sure rl_prep_term_function and rl_deprep_term_function aren't - dereferenced if NULL (as the documentation says) - -builtins/mkbuiltins.c - - don't bother with the special HAVE_BCOPY code; just use straight - assignments - -builtins/ulimit.def - - use _POSIX_PIPE_BUF in pipesize() if it's defined and PIPE_BUF is - not - - 4/13 - ---- -execute_cmd.c - - add cm_function_def to the list of control structures for which - child processes are forked when pipes come in or out - - 4/14 - ---- -builtins/read.def - - make sure the ^As added for internal quoting are not counted as - characters read when -n is supplied - - 4/20 - ---- -redir.c - - fix redir_open so that the repeat open on failure that AFS support - adds restores the correct value of errno for any error message - - 4/26 - ---- - -Makefile.in - - make sure mksignames and mksyntax are invoked with the $(EXEEXT) - extension - - 4/28 - ---- -lib/readline/readline.h - - new state variable: RL_STATE_CALLBACK, means readline is using the - callback interface - -lib/readline/callback.c - - set RL_STATE_CALLBACK in rl_callback_handler_install, unset in - rl_callback_handler_remove - - 4/29 - ---- -config-top.h - - DONT_REPORT_SIGPIPE is now on by default, since it apparently - interferes with scripts - -configure.in - - arrange things so PGRP_PIPE is defined on Linux-2.4+ and version 3 - kernels (ones that apparently schedule children to run before their - parent) - - 4/30 - ---- -builtins/caller.def - - add call to no_options, so it can handle `--' option - -doc/{bash.1,bashref.texi} - - note explicitly that test, :, true, and false don't understand -- - as meaning the end of options - - 5/7 - --- -support/shobj-conf - - darwin 8 needs the same LDFLAGS setting as darwin 7 - -parse.y - - in save_parser_state, make sure we cast the return value from - xmalloc() to the right type - - remove casts to (char *) in calls to yyerror() - -lib/readline/signals.c - - make SIGQUIT and SIGALRM code conditional on their definition - - use raise() to send a signal if we don't have kill() - -lib/readline/display.c - - some MS-DOS and MINGW changes from the cygwin and mingw folks - -config.h.in - - add HAVE_PWD_H for - - add HAVE_FCNTL, HAVE_KILL for respective system calls - - add HAVE_GETPW{ENT,NAM,UID} for passwd functions - -configure.in - - add check for - - add checks for fcntl, kill system calls - - add checks for getpw{ent,nam,uid} C library functions - - pass a flag indicating we're cross compiling through to - CFLAGS_FOR_BUILD in Makefile.in - -lib/readline/complete.c - - guard inclusion of with HAVE_PWD_H - - don't provide a missing declaration for getpwent if we don't have it - - guard calls to {get,end}pwent with HAVE_GETPWENT - -lib/readline/shell.c - - guard inclusion of with HAVE_PWD_H - - guard inclusion of with HAVE_FCNTL_H - - don't provide a missing declaration for getpwuid if we don't have it - - guard calls to getpwuid with HAVE_GETPWUID - - don't bother with body of sh_unset_nodelay_mode if we don't have - fcntl - -lib/tilde/tilde.c - - guard inclusion of with HAVE_PWD_H - - guard calls to getpw{nam,uid} with HAVE_GETPW{NAM,UID} - - guard calls to {get,end}pwent with HAVE_GETPWENT - -Makefile.in,builtins/Makefile.in - - @CROSS_COMPILE@ is substituted into CFLAGS_FOR_BUILD (equal to - -DCROSS_COMPILING if bash is being cross-compiled) - - 5/9 - --- -aclocal.m4 - - print version as `0.0' in RL_LIB_READLINE_VERSION if the - `rl_gnu_readline_p' variable isn't 1 (accept no imitations) - - 5/11 - ---- -lib/readline/rlprivate.h - - definition of a readline `search context', to be use for incremental - search initially and other types of search later. Original from - Bob Rossi as part of work on incremental searching problems when - using callback interface - -lib/readline/isearch.c - - functions to allocate and free search contexts - - function to take a search context and a character just read and - `dispatch' on it: change search parameters, add to search string, - search further, etc. - - isearch is now completely context-driven: a search context is - allocated and passed to the rest of the functions - - 5/12 - ---- -lib/readline/isearch.c - - an additional `isearch cleanup' function that can be called from - the callback interface functions when the search is to be terminated - - an additional `isearch callback' function that can be called from - rl_callback_read_char when input is available - - short-circuit from rl_search_history after initialization if - the callback interface is being used - -lib/readline/callback.c - - in rl_callback_read_char(), if RL_STATE_ISEARCH is set, call - _rl_isearch_callback to read the character and dispatch on it. - If RL_STATE_ISEARCH is unset when that call returns, and there is - input pending, call rl_callback_read_char() again so we don't - have to wait for new input to pick it up - -support/shobj-conf,configure.in - - add support for dragonfly bsd, the same as freebsd - - 5/13-5/15 - --------- -lib/readline/callback.c - - support for readline functions to `register' a function that will - be called when more input is available, with a generic data - structure to encapsulate the arguments and parameters. Primarily - intended for functions that read a single additional character, - like quoted-insert - - support for callback code reading numeric arguments in a loop, - using readline state and an auxiliary variable - - support for callback code performing non-incremental searches using - the same search context struct as the isearch code - -lib/readline/{callback,display}.c - - if a callback function sets `_rl_redisplay_wanted', the redisplay - function will be called as soon as it returns - -lib/readline/input.c - - changes to _rl_read_mbchar to handle reading the null multibyte - character and translating it into '\0' - -lib/readline/misc.c - - break rl_digit_loop() into component functions that can be called - individually from the callback code more easily - - share some of the functions with rl_digit_loop1() in vi_mode.c - -lib/readline/readline.h - - change the version #defines to reflect readline 5.1 - -lib/readline/search.c - - break code into smaller functions that can be composed to work with - the callback code more easily - -lib/readline/text.c - - in rl_quoted_insert(), don't mess around with the tty signals if - running in `callback mode' - -lib/readline/vi_mode.c - - changed set-mark, goto-mark, change-char, and char-search to work - when called by callback functions - - 5/17 - ---- - -lib/readline/rlprivate.h - - new struct declaration for a `reading key sequence' context - -lib/readline/readline.c - - new variable, _rl_dispatching_keymap, keeps track of which keymap - we are currently searching - - functions to allocate and deallocate contexts for reading multi-char - key sequences - - 5/18 - ---- -lib/readline/rlprivate.h - - new struct defining a context for multiple-key key sequences (the - base case is escape-prefixed commands) - -lib/readline/readline.c - - change structure of _rl_dispatch_subseq to allow for callback code - to use it - rudimentary support for supporting the existing - recursion using a stack of contexts, each with a reference to the - previous - - fix so that ^G works when in callback mode - -lib/readline/callback.c - - call the appropriate multiple-key sequence callback if the state is - set - - 5/19 - ---- -lib/readline/readline.c - - broke code from _readline_internal_char after call to rl_dispatch - out into separate function: _rl_internal_char_cleanup, callable by - other parts of the code - - change _rl_internal_char_cleanup to unset _rl_want_redisplay after - it calls (*rl_redisplay_func) - -lib/readline/callback.c - - call _rl_internal_char_cleanup from rl_callback_read_char when - appropriate - - 5/24 - ---- -lib/readline/callback.c - - use _rl_dispatch_callback and a chain of _rl_keyseq_contexts to - simulate the recursion used to decode multicharacter key sequences - (even things like ESC- as meta-prefix) - - call setjmp in rl_callback_read_char to give things like rl_abort - a place to jump, since the saved location in readline() will not - be valid - - keep calling _rl_dispatch_callback from rl_callback_read_char while - we are still decoding a multi-key key sequence - - keep calling readline_internal_char from rl_callback_read_char while - we are reading characters from a macro - -lib/readline/macro.c - - use a slightly different strategy upon encountering the end of a macro - when using the callback interface: when the last character of a - macro is read, and we are reading a command, pop the macro off the - stack immediately so the loop in rl_callback_read_char terminates - when it should - -lib/readline/readline.c - - if longjmp() is called and we end up at the saved location while - using the callback interface, just return -- don't go back into a - blocking read - - new function to dispose a chain of rl_keyseq_cxts - - only read new input in _rl_dispatch_callback if the KSEQ_DISPATCHED - flag is not set in the current keyseq context -- if it is, we are - traversing the chain back up and should use what we already saved - - use -3 as a magic value from _rl_dispatch_subseq to indicate that - we're allocating a new context and moving downward in the chain - (a special return value for the benefit of _rl_dispatch_callback) - -lib/readline/rlprivate.h - - new extern declaration for _rl_keyseq_chain_dispose - - 6/1 - --- -builtins/read.def - - fixed a bug that occurred when reading a set number of chars and - the nth char is a backslash (read one too many). Bug reported by - Chris Morgan - -execute_cmd.c - - fix execute_builtin so the `unset' builtin also operates on the - temporary environment in POSIX mode (as well as source and eval), - so that unsetting variables in the temporary environment doesn't - leave them set when unset completes. Report by Eric Blake - - -array.c - - fix from William Park for array_rshift when shifting right on an - empty array -- corrects calculation of array->max_index - -builtins/exec.def - - if an exec fails and the execfail option is set, don't call - restart_job_control unless the shell is interactive or job_control - is set - -jobs.c - - add a run-time check for WCONTINUED being defined in header files - but rejected with EINVAL by waitpid(). Fix from Maciej Rozycki - - - 6/20 - ---- -bashhist.c - - make sure calls to sv_histchars are protected by #ifdef BANG_HISTORY - - ditto for calls to history_expand_line_internal - - 6/23 - ---- -doc/bashref.texi - - remove extra blank lines in @menu constructs - -variables.c - - assign export_env to environ (extern char **) every time it changes - (mostly in add_to_export_env define), so maybe getenv will work on - systems that don't allow it to be replaced - - 6/29 - ---- -bashline.c - - in bash_directory_completion_hook, be careful about not turning `/' - into `//' and `//' into `///' for benefit of those systems that treat - `//' as some sort of `network root'. Fix from Eric Blake - - -lib/readline/complete.c - - in to_print, do the right thing after stripping the trailing slash - from full_pathname: // doesn't turn into /, and /// doesn't become - //. Fix from Eric Blake - - 6/30 - ---- -lib/malloc/trace.c - - include if it's available for a definition of size_t - -jobs.c - - in wait_for, if a child process is marked as running but waitpid() - returns -1/ECHILD (e.g., when the bash process is being traced by - strace), make sure to increment c_reaped when marking the child as - dead - - in without_job_control, make sure to close the pgrp pipe after - calling start_pipeline - - 7/1 - --- -Makefile.in - - only remove pathnames.h when the other files created by running - configure are removed (e.g., Makefile). Fix from William Park - -lib/sh/shquote.c - - since backslash-newline disappears when within double quotes, don't - add a backslash in front of a newline in sh_double_quote. Problem - reported by William Park - -jobs.c - - in notify_of_job_status, don't print status messages about - terminated background processes unless job control is active - -bashhist.c - - new variable, hist_last_line_pushed, set to 0 in really_add_history - (used by `history -s' code) - -bashhist.h - - new extern declaration for history -s - -builtins/history.def - - don't remove last history entry in push_history if it was added by - a call to push_history -- use hist_last_line_pushed as a sentinel - and set it after adding history entry. This allows multiple - calls to history -s to work right: adding all lines to the history - rather than deleting all but the last. Bug reported by Matthias - Schniedermeyer - - pay attention to hist_last_line_pushed in expand_and_print_history() - so we don't delete an entry pushed by history -s - - 7/4 - --- -print_cmd.c - - fix print_arith_for_command to not print so many blanks between - expressions in ((...)) - -command.h - - new word flag: W_DQUOTE. Means word should be treated as if double - quoted - -make_cmd.c - - add W_DQUOTE to word flags in make_arith_for_expr - -parse.y - - add W_DQUOTE to word flags for (( ... )) arithmetic commands - -subst.c - - don't perform tilde expansion on a word with W_DQUOTE flag set - - don't perform process substitution on a word with W_DQUOTE flag set - -arrayfunc.c - - expand an array index within [...] the same way as an arithmetic - expansion between (( ... )) - -lib/readline/input.c - - use getch() instead of read() on mingw - -lib/readline/readline.c - - add a few key bindings for the arrow keys on mingw - -lib/readline/rldefs.h - - if on mingw, define NO_TTY_DRIVER - -lib/readline/rltty.c - - compile in the stub functions for _rl_{disable,restore}_tty_signals - if on mingw - - compile in stub function for rl_restart_output on mingw - - make sure enough functions and macros are defined to compile if - NO_TTY_DRIVER is defined (lightly tested - builds on MacOS X, at - least) - - 7/7 - --- -command.h - - add a `flags' member to the PATTERN_LIST structure - -make_cmd.c - - intialize the `flags' member of a PATTERN_LIST when it's created - -builtins/psize.c - - protect extern declaration of errno with usual #ifdef errno - -configure.in, variables.c - - changes for QNX 6.x - - 7/9 - --- -parse.y - - fix parse_matched_pair to handle single and double quoted strings - inside old-style command substitution (``) since they can each - quote the ` and embedded $-expansions. Report by Eric Blake - - -{configure,Makefile}.in - - TILDE_LIB is now substituted into Makefile by configure - -configure.in - - if configuring --with-installed-readline on cygwin, set TILDE_LIB - to the empty string to avoid multiply-defined symbols. Cygwin - doesn't allow undefined symbols in dynamic libraries. Report by - Eric Blake - - 7/11 - ---- -input.c - - in duplicate_buffered_stream, don't call free_buffered_stream if the - two buffered streams share the same b_buffer object (e.g., if they - had already been duplicated with a previous call). Fixes Debian bug - reported by eero17@bigfoot.com - - 7/12 - ---- -shell.c - - make set_shell_name more resistant to a NULL argument - - in bind_args, use < instead of != when counting the arguments and - making the arg list - - in main(), make sure arg_index is not initialized to a value greater - than argc - - 7/14 - ---- -lib/readline/display.c - - in expand_prompt, don't set the location of the last invisible - char if the sequence is zero length (\[\]) - - 7/15 - ---- -doc/{bash.1,bashref.texi} - - document that the shell uses $TMPDIR when creating temporary files - - 7/20 - ---- -[bash-3.1-alpha1 frozen] - - 7/29 - ---- -builtins/evalstring.c - - make sure that parse_and_execute saves and restores the value of - loop_level, so loops in sourced scripts and eval'd strings don't - mess up the shell's parser state - -bashline.c - - change command_subst_completion_function to suppress appending - any character to a unique completion, instead of a space, unless - the last word in the quoted command substitution completes to a - directory name. In that case we append the expected slash - - 8/1 - --- -builtins/printf.def - - make sure variables are initialized if their values are tested later - -[bash-3.1-alpha1 updated and re-frozen] - - 8/2 - --- -variables.c - - make sure to call stifle_history with an `int' instead of an intmax_t. - Sometimes it makes a difference - - 8/3 - --- -[bash-3.1-alpha1 released] - -support/mksignames.c - - add `SIGSTKFLT' (RHE3) - - add `SIGXRES' (Solaris 9) - - 8/4 - --- -builtins/ulimit.def - - fix typo to make `x' the right option for locks - - add new options to short help synopsis - -variables.c - - use get_variable_value instead of direct reference to value_cell - in make_variable_value when appending to the current value, so - references to array variables without subscripts will be equivalent - to element 0 - -lib/readline/text.c - - rewrote rl_change_case to correctly change the case of multibyte - characters where appropriate - - 8/5 - --- -configure.in - - remove call to obsolete macro AC_ACVERSION - - remove special calls to AC_CYGWIN and AC_MINGW32; AC_CANONICAL_HOST - takes care of those cases - -general.h - - include `chartypes.h' for definition of ISALPHA - - fix definitions of ABSPATH and RELPATH for cygwin - - fix definition of ISDIRSEP for cygwin to allow backslash as a - directory name separator - - 8/9 - --- -builtins/setattr.def - - when setting a variable from the temporary environment in - set_var_attribute (e.g., `LC_ALL=C export LC_ALL'), make sure to - call stupidly_hack_special_variables after binding the variable in - the current context - -builtins/printf.def - - make sure to call stupidly_hack_special_variables if using `printf -v' - to put formatted output in a shell variable - - 8/11 - ---- -support/shobj-conf - - new variable: SHLIB_LIBPREF, prefix for shared library name (defaults - to `lib' - - new variable: SHLIB_DLLVERSION, used on Cygwin to set the library - version number - - new variable: SHLIB_DOT, separator character between library name and - suffix and version information (defaults to `.') - - new stanza for cygwin to generate windows-compatible dll - - 8/14 - ---- -variables.c - - new special variable function for Cygwin, so the export environment - is remade when HOME is changed. The environment is the only way to - get information from the shell to cygwin dlls, for instanace, when - bash is compiled to use an already-installed libreadline - -variables.h - - new extern declaration for sv_home - - 8/15 - ---- -lib/readline/display.c - - call init_line_structures from rl_redisplay if vis_lbreaks == 0 - to avoid consequences of a poorly-timed SIGWINCH - - 8/16 - ---- -subst.c - - fix logic for performing tilde expansion when in posix mode (don't - rely on W_TILDEEXP flag always being set, because it won't be when - expanding the RHS of assignment statement). Use W_TILDEEXP only - when deciding to expand a word marked as W_ASSIGNMENT that doesn't - precede a command name - - 8/17 - ---- -execute_cmd.c - - in execute_function, when subshell == 1, don't short-cut by using - the command contained in the group command -- if you do, any - redirections attached to the group command (function) don't get - executed - -general.h - - new #define, FS_READABLE, indicates file is readable by current - user - -findcmd.c - - rewrote file_status to use S_xxx POSIX file mode bits and to add - support for FS_READABLE (affects ./source and searching $PATH for - scripts whose names are supplied as arguments on the command line) - - change find_path_file to look for readable files -- source requires - it - - change find_in_path_element to do the right thing when FS_READABLE - is supplied as a flag - -doc/bashref.texi - - remove note about posix non-compliance in `.': we now require and - look for readable files when searching $PATH - - 8/20 - ---- -subst.c - - fix setifs to handle case where passed variable is non-zero but - v->value == 0 (as in an unset local variable); treat IFS as unset - in this case - -jobs.c - - in kill_pid, if asked to killpg a process or pgrp whose pgrp is - recorded as the same as the shell's, just call killpg and let the - chips fall where they may -- there may be other processes in that - pgrp that are not children of the shell, so killing each process - in the pipeline will not do a complete job, and killpg'ing each - such process will send too many signals in the majority of cases - -builtins/cd.def - - in posix mode, pwd needs to check that the value it prints and `.' - are the same file - -builtins/read.def - - if reading input from stdin in a non-interactive shell and calling - `read', call sync_buffered_stream to seek backward in the input - stream if necessary (XXX - should we do this for all shell builtins?) - - 8/23 - ---- -builtins/cd.def - - in posix mode, if canonicalization of the absolute pathname fails - because the path length exceeds PATH_MAX, but the length of the passed - (non-absolute) pathname does not, attempt the chdir, just as when - not in posix mode - -builtins/type.def - - don't have describe_command call sh_makepath if the full path found - is already an absolute pathname (sh_makepath will stick $PWD onto the - front of it) - - 8/24 - ---- - -jobs.c - - in posix mode, don't have start_job print out and indication of - whether the job started by `bg' is the current or previous job - - change start_job to return success if a job to be resumed in the - background is already running. This means that bg won't fail when - asked to bg a background job, as SUSv3/XPG6 requires - - new function, init_job_stats, to zero out the global jobstats struct - -{jobs,nojobs}.c - - change kill_pid to handle pids < -1 by killing process groups - -jobs.h - - extern declaration for init_job_stats - -lib/readline/history.c - - check whether or not the history list is null in remove_history - -builtins/history.def - - delete_last_history is no longer static so fc builtin can use it - -builtins/fc.def - - use free_history_entry in fc_replhist instead of freeing struct - members individually - - call delete_last_history from fc_replhist instead of using inline - code - - if editing (-l not specified), make sure the fc command that caused - the editing is removed from the history list, as POSIX specifies - -builtins/kill.def - - just call kill_pid with any pid argument and let it handle pids < -1 - This is the only way to let kill_pid know whether a negative pid or - a job spec was supplied as an argument to kill - -builtins/fg_bg.def - - force fg_bg to return EXECUTION_SUCCESS explicitly if called by bg - and start_job returns successfully - - bg now returns success only if all the specified jobs were resumed - successfully - -execute_cmd.c - - call init_job_stats from initialize_subshell to zero out the global - job stats structure - - 8/25 - ---- -bashline.c - - change vi_edit_and_execute_command to just call vi when in posix - mode, instead of checking $FCEDIT and $EDITOR - -lib/readline/search.c - - if in vi_mode, call rl_free_undo_list in make_history_line_current - to dispose of undo list accumulated while reading the search string - (if this isn't done, since vi mode leaves the current history - position at the entry which matched the search, the call to - rl_revert_line in rl_internal_teardown will mangle the matched - history entry using a bogus rl_undo_list) - - call rl_free_undo_list after reading a non-incremental search string - into rl_line_buffer -- that undo list should be discarded - -lib/readline/rlprivate.h - - add UNDO_LIST * member to search context struct - -lib/readline/isearch.c - - initialize UNDO_LIST *save_undo_list member of search context struct - - 8/27 - ---- -lib/readline/bind.c - - change rl_parse_and_bind to strip whitespace from the end of a - variable value assignment before calling rl_variable_bind - -doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} - - clarified the language concerning parsing values for boolean - variables in assignment statements - - 8/28 - ---- -lib/sh/pathphys.c - - fix small memory leak in sh_realpath reported by Eric Blake - - 8/31 - ---- -doc/bashref.texi - - add additional notes to posix mode section - - 9/3 - --- -parse.y - - if $'...' occurs within a ${...} parameter expansion within - double quotes, don't single-quote the expanded result -- the double - quotes will cause it to be expanded incorrectly - - 9/4 - --- -builtins/fc.def - - if STRICT_POSIX is defined, the posix mode default for the editor to - use is $FCEDIT, then ed - -shell.c - - if STRICT_POSIX is defined, initialize `posixly_correct' to 1 - -config.h.in - - add #undef STRICT_POSIX - - 9/5 - --- -configure.in - - add new option argument, --enable-strict-posix-default, configures - bash to be posix-conformant (including defaulting echo to posix - conformance) by default - -builtins/echo.def - - if STRICT_POSIX is defined, default echo to xpg-style - -doc/bashref.texi - - describe the --enable-strict-posix-default option to configure - - 9/10 - ---- -builtins/mkbuiltins.c - - change to not generate N_(""), because the translated empty string is - special to GNU gettext - - 9/13 - ---- -lib/readline/complete.c - - a negative value for rl_completion_query_items means to not ask - -lib/readline/doc/{{rltech,rluser}.texi,readline.3} - - documented new semantics for rl_completion_query_items/ - completion-query-items - - 9/14 - ---- -bashline.c - - bind M-TAB in emacs mode to dynamic-complete-history even if the - current binding is `tab-insert' (which is what it is by default), - not just if it's unbound - - 9/15 - ---- -eval.c - - call QUIT before calling dispose_command on current_command after - the `exec_done' label. If we dispose current_command first, the - longjmp might restore the value of current_command after we've - disposed it, and the subsequent call to dispose_command from the - DISCARD case will free memory twice - - 9/16 - ---- -lib/sh/strto[iu]max.c - - make sure the function being declared is not a cpp define before - defining it -- should fix problems on HP-UX - - 9/19 - ---- -Makefile.in - - make sure the binaries for the tests are at the front of $PATH - - 9/22 - ---- -parse.y - - new flag for parse_matched_pair: P_COMMAND, indicating that the - text being parsed is a command (`...`, $(...)) - - change calls to parse_matched_pair to include P_COMMAND where - appropriate - - if P_COMMAND flag is set and the text is unquoted, check for comments - and don't try to parse embedded quoted strings if in a comment (still - not exactly right yet) - - 9/24 - ---- -builtins/history.def - - if running history -n, don't count these new lines as history lines - for the current session if the `histappend' shell option is set. - If we're just appending to the history file, the issue that caused - history_lines_this_session to be recalculated doesn't apply -- the - history file won't be missing any entries - -lib/readline/isearch.c - - fix C-w handler for isearch string reader to handle multibyte chars - -lib/readline/rlmbutil.h - - new defines for _rl_to_wupper and _rl_to_wlower - -lib/readline/text.c - - use _rl_to_wupper and _rl_to_wlower as appropriate - - 9/26 - ---- -execute_cmd.c - - in shell_execve, if the exec fails due to E2BIG or ENOMEM, just print - the appropriate error message instead of checking out any interpreter - specified with #! - - 9/30 - ---- -bashhist.c - - make $HISTCMD available anytime remember_on_history is non-zero, - which indicates that we're saving commands to the history, and - let it evaluate to 1 if we're not - - 10/4 - ---- -lib/sh/snprintf.c - - in floating(), make sure d != 0 before calling chkinfnan -- gcc on the - version of Solaris 9 I have translates 0 to -inf on the call - -[bash-3.1-beta1 frozen] - - 10/6 - ---- -jobs.c - - set the_pipeline to NULL right away in cleanup_the_pipeline, and - dispose a copy of the pointer so we don't mess with the_pipeline - while we're in the process of destroying it - - block and unblock SIGCHLD around manipulating the_pipeline in - cleanup_the_pipeline - - 10/7 - ---- -[bash-3.1-beta1 released] - -lib/readline/isearch.c - - when switching directions, make sure we turn off the SF_REVERSE - flag in the search context's flags word if we're going from reverse - to forward i-search - -lib/readline/bind.c - - new function, rl_variable_value, returns a string representing a - bindable readline variable's value - - new auxiliary function, _rl_get_string_variable_value, encapsulates - everything needed to get a bindable string variable's value - - rewrote rl_variable_dumper to use _rl_get_string_variable_value - -lib/readline/readline.h - - new extern declaration for rl_variable_value - -lib/readline/doc/rltech.texi - - documented rl_variable_value - -bashline.c - - in command_word_completion_function, if readline sets - rl_completion_found_quote, but doesn't set rl_completion_quote_character, - we have an embedded quoted string or backslash-escaped character in - the passed text. We need to dequote that before calling - filename_completion_function. So far, this is in place only for - absolute program names (those containing a `/') - - in command_word_completion_function, use rl_variable_value to decide - whether or not we should ignore case, and use strncasecmp instead of - strncmp where appropriate - - 10/11 - ----- -builtins/fc.def - - fixed a typo when using POSIX_FC_EDIT_COMMAND - -redir.h - - new flag values for redirections: RX_INTERNAL and RX_USER (currently - unused) - -redir.c - - add_undo_redirect and add_undo_close_redirect now set RX_INTERNAL - flag when making new redirects - - in do_redirection_internal, only set file descriptors > 2 to CLEXEC - if they're marked as RX_INTERNAL - - 10/12 - ----- -jobs.c - - in wait_for_single_pid, if in posix mode, remove the waited-for pid - from the list of background pids, forgetting it entirely. POSIX - conformance tests test for this. - -lib/readline/{readline.h,vi_mode.c} - - new state flag, RL_STATE_VICMDONCE, set after entering vi command - mode the first time; reset on each call to readline() - - 10/13 - ----- -lib/readline/undo.c - - in rl_revert_line, make sure that revert-line in vi mode leaves - rl_point set to 0 no matter the state of the line buffer - -lib/readline/vi_mode.c - - when entering vi_command mode for the first time, free any existing - undo list so the previous insertions won't be undone by the `U' - command. This is how POSIX.2 says `U' should work (and the test - suite tests for it) - -lib/readline/bind.c - - change rl_parse_and_bind so only `set' commands involving boolean - readline variables have trailing whitespace stripped from the value - string - - 10/16 - ----- -lib/glob/sm_loop.c - - fix patscan() to correctly scan backslash-escaped characters - - 10/18 - ----- -lib/sh/{winsize.c,Makefile.in},{jobs,nojobs}.c,Makefile.in,externs.h - - moved get_new_window_size from jobs.c/nojobs.c to new file, - lib/sh/winsize.c, made function global - -{jobs,nojobs,sig}.c,{jobs,sig}.h - - moved SIGWINCH handling code to sig.c rather than duplicate it in - jobs.c and nojobs.c - - call set_sigwinch_handler from sig.c code rather than job control - signal initialization - -sig.[ch] - - new variable, sigwinch_received, acts like interrupt_state for - SIGWINCH, set by sigwinch_sighandler. sigwinch_sighandler no longer - calls get_new_window_size - -parse.y - - add call to get_new_window_size if sigwinch_received at top of - shell_getc - - 10/19 - ----- -lib/malloc/malloc.c - - to avoid orphaning memory on free if the right bucket is busy, use a - new function xplit(mem, bucket) to split the block into two or more - smaller ones and add those to the right bucket (appropriately marking - it as busy) - - audit bsplit(), bcoalesce(), and xsplit() for proper use of busy[], - since they're dealing with two separate buckets - - 10/22 - ----- -subst.c - - new flag for string_extract: EX_REQMATCH, means to return an error - if a matching/closing character is not found before EOS - - new static flag variables: extract_string_error and extract_string_fatal - - change expand_word_internal to check for new error returns from - string_extract and return errors if appropriate - - 10/23 - ----- -builtins/cd.def - - make sure we free TDIR in change_to_directory after calling - set_working_directory (which allocates new memory) and other places - we short-circuit and return - - 10/24 - ----- -subst.c - - modified fix from 10/22 to allow bare ` to pass through (for - some backwards compatibility and more correctness) - - 10/27 - ----- -conftypes.h - - make MacOS X use the RHAPSODY code that gets HOSTTYPE, et al. - at build rather than configure time, to support universal binaries - (fix from llattanzi@apple.com) - - 10/30 - ----- -builtins/evalstring.c - - make sure we don't turn on CMD_NO_FORK in parse_and_execute if - we're running a trap command on signal receipt or exit - -execute_cmd.c - - in shell_execve, improve the error message a little bit if the - interpreter name in a #! exec header ends with a ^M (as in a DOS- - format file) - - 11/1 - ---- -lib/readline/vi_mode.c - - fix vi-mode `r' command to leave the cursor in the right place - -[bash-3.1-rc1 frozen] - - 11/5 - ---- -execute_cmd.c - - make sure a DEBUG trap doesn't overwrite a command string passed to - make_child in execute_simple_command - -bashline.c - - rearrange some code in bash_quote_filename so filenames with leading - tildes containing spaces aren't tilde-expanded before being - returned to the caller - - 11/6 - ---- -lib/readline/display.c - - when deciding where to move the cursor in rl_redisplay and needing - to move the cursor back after moving it vertically and compensate - for invisible characters in the prompt string, make sure that - _rl_last_c_pos is treated as an absolute cursor position in a - multibyte locale and the wrap offset (number of invisible characters) - is added explicitly when deciding how many characters to backspace - - 11/10 - ----- -lib/readline/terminal.c - - _rl_set_screen_size now interprets a lines or columns argument < 0 - as an indication not to change the current value - - 11/11 - ----- - -lib/readline/terminal.c - - new function, rl_reset_screen_size, calls _rl_get_screen_size to - reset readline's idea of the terminal size - - don't call _rl_get_screen_size in _rl_init_terminal_io if both - _rl_screenheight and _rl_screenwidth are > 0 - - don't initialize _rl_screenheight and _rl_screenwidth to 0 in - _rl_init_terminal_io; let caller take care of it - - set _rl_screenheight and _rl_screenwidth to 0 before calling - _rl_init_terminal_io - -lib/readline/readline.h - - new extern declaration for rl_reset_screen_size - -lib/readline/doc/rltech.texi - - documented rl_reset_screen_size - -variables.c - - if readline is being used, compile in a special var function for - assignments to LINES and COLUMNS that calls rl_set_screen_size or - rl_reset_screen_size as appropriate. Only do this in posix mode - and only when STRICT_POSIX is defined at compile time - - new semaphore variable, winsize_assignment, set while doing an - assignment to LINES or COLUMNS - - new variable, winsize_assigned, says LINES or COLUMNS was assigned - to or found in the environment - - if in the middle of an assignment to LINES or COLUMNS, make - sh_set_lines_and_columns a no-op - -lib/sh/winsize.c - - get_new_window_size now takes two int * arguments, to return the - screen dimensions - -externs.h - - change extern declaration for get_new_window_size - -{jobs,nojobs}.c, parse.y - - change callers of get_new_window_size - - 11/12 - ----- -lib/readline/terminal.c - - new variable, rl_prefer_env_winsize, gives LINES and COLUMNS - precedence over values from the kernel when computing window size - -lib/readline/readline.h - - extern declaration for rl_prefer_env_winsize - -lib/readline/doc/rltech.texi - - document rl_prefer_env_winsize - - 11/13 - ----- -lib/readline/rltty.c - - change rl_prep_terminal to make sure we set and reset the tty - special characters in the vi insertion keymap if in vi mode. This - matters if we get accept-line for the previous line while in vi - command mode - - 11/14 - ----- -builtins/pushd.def - - make sure any call to cd_builtin includes a leading `--' from the - argument list (or constructs one) - - 11/16 - ----- -pcomplete.c - - fix small memory leak in gen_wordlist_matches - -[bash-3.1-rc2 frozen] - - 11/21 - ----- -[bash-3.1-rc2 released] - - 11/23 - ----- -lib/readline/display.c - - changes to rl_redisplay to compensate for update_line updating - _rl_last_c_pos without taking invisible characters in the line into - account. Important in multibyte locales where _rl_last_c_pos is an - absolute cursor position - - changes to _rl_move_cursor_relative to account for _rl_last_c_pos - being an absolute cursor position in a multibyte character locale - - rewrote _rl_move_cursor_relative to make it a little simpler - - 11/29 - ----- -lib/readline/display.c - - changes to rl_redisplay and update_line for update_line to communicate - upward that it took the number of invisible characters on the current - line into account when modifying _rl_last_c_pos - - in update_line, adjust _rl_last_c_pos by wrap_offset before calling - _rl_move_cursor_relative, so we pass correct information about the - true cursor position - - 12/1 - ---- -configure.in - - changed release status to `release' - -[bash-3.1 frozen] - - 12/8 - ---- -[bash-3.1 released] - - 12/9 - ---- -doc/{bash.1,version.texi},lib/readline/doc/version.texi - - remove `beta1' from man page footer and texinfo documents - -variables.c - - make sure winsize_assignment is protected by #ifdef READLINE, so - minimal shell will compile - -builtins/read.def - - make sure error cases free memory and run any unwind-protects to - avoid memory leaks - - 12/10 - ----- -execute_cmd.c - - change execute_command_internal to set $PIPESTATUS for ((...)) and - [[ ... ]] commands - -doc/{bash.1,bashref.texi,version.texi} - - add documentation for ulimit -[iqx] and bump revision date - - 12/12 - ----- -parse.y - - make sure parse_compound_assignment saves and restores the - PST_ASSIGNOK parser state flag around its calls to read_token. - Fixes bug reported by Mike Frysinger - - 12/13 - ----- -parse.y - - change parse_compound_assignment to save and restore the value of - last_read_token. Not sure why it was set unconditionally in the - first place after parsing the complete compound assignment - - 12/14 - ----- -lib/readline/text.c - - don't use return value of rl_kill_text (which always succeeds and - returns the number of characters killed) in rl_delete as an indication - of success or failure - - ditto for return value of rl_delete_text - -lib/readline/readline.c - - don't return the value of the called readline function as the return - value from _rl_dispatch_subseq; -1 means something different to the - callers (return 0 all the time to indicate that a readline function - was found and dispatched). Fix from Andreas Schwab for - bug in callback interface first reported by Mike Frysinger - -execute_cmd.c - - fixed a typo in execute_case_command - - 12/15 - ----- -aclocal.m4 - - add check for wctype() to BASH_CHECK_MULTIBYTE, define HAVE_WCTYPE - -config.h.in - - add HAVE_WCTYPE #define - -config-bot.h - - add HAVE_WCTYPE to the set of checks for HANDLE_MULTIBYTE. This - should catch the deficient NetBSD multibyte support - - 12/16 - ----- -parse.y - - use CTLESC instead of literal '\001' when decode_prompt_string - prefixes RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE - - 12/20 - ----- -lib/readline/display.c - - don't treat RL_PROMPT_START_IGNORE specially inside a sequence of - ignored characters - - keep track of the start of the current sequence of ignored - characters; make sure that an empty sequence of such characters - really is an empty sequence, not one that happens to end with '\001' - (RL_PROMPT_START_IGNORE) - - 12/21 - ----- -subst.c - - change expand_word_internal to process rest of `tilde-word' as a - regular part of the word if tilde expansion leaves the tilde-word - unchanged. This means that ~$USER expands to ~chet, which seems - more intuitive, and is effectively what bash-3.0 did - - 12/23 - ----- -subst.c - - when making a local array variable in do_compound_assignment, make - sure that we don't use a variable of the same name from a previous - context - -doc/bash.1 - - documented expansions for word and patterns in case statement - -builtins/ulimit.def,doc/{bashref.texi,bash.1} - - added new -e and -r (nice and rtprio) options to ulimit; documented - them - - 12/26 - ----- -variables.c - - use `hmax' instead of `num' in sv_histsize to avoid integer overflow - problems with intmax_t - -builtins/read.def - - add unwind-protect to restore rl_attempted_completion_function in - case of a timeout - -{bashline,variables}.c - - move initialization of HISTSIZE from initialization path to - load_history, so it can be overridden by a value assigned in a - startup file - -lib/readline/misc.c - - add a missing `return r' so that rl_digit_loop returns a meaningful - value - -lib/readline/{bind,callback,display,isearch,rltty,search,text,vi_mode}.c - - minor cleanups to satisfy compiler warnings, mostly removing unused - variables - - 12/27 - ----- -support/Makefile.in - - add LIBS_FOR_BUILD support; defaults to ${LIBS} - -Makefile.in - - add LIBS_FOR_BUILD with no default value; use when linking programs - using CC_FOR_BUILD (e.g., bashversion) - - 12/28 - ----- -lib/readline/bind.c - - fix rl_translate_keyseq bad translation of \M-\C-x sequences - -execute_cmd.c - - in execute_arith_command, if the expression expands to more than one - word, make sure we join the words into a single string and pass the - entire thing to evalexp() - -expr.c - - new functions: _is_arithop(c), returns true if C is a valid single- - character arithmetic operator; _is_multiop(c), returns true if C is - a token corresponding to a valid multi-character arithmetic operator - - if we encounter a character that isn't a valid arithmetic - operator, throw an error. Try to be intelligent about what type of - error message to print - -subst.c - - new function, expand_arith_string, calls expand_string_if_necessary; - used where an arithmetic expression needs to be expanded - -subst.h - - new extern declaration for expand_arith_string - -arrayfunc.c - - in array_expand_index, call expand_arith_string to expand the - subscript in a fashion consistent with other arithmetic expressions - -subst.c - - fix parameter_brace_patsub so that we don't try to anchor the pattern - at the beginning or end of the string if we're doing global - replacement -- that combination doesn't doesn't make sense, and - the changed behavior is compatible with ksh93 - -doc/{bash.1,bashref.texi} - - changed description of pattern substitution to match the new - semantics - -tests/new-exp.tests - - change tests to remove all ${pat//#rep} and ${pat//%rep} - expansions, since they don't mean the same thing anymore - - 12/29 - ----- -support/signames.c - - new file, initialize_signames() function from old mksignames.c. This - file builds the signal_names array - -support/mksignames.c - - strip out initialize_signames(), move to signames.c. This file only - writes signames.h - - set up to only write a stub signames.h if CROSS_COMPILING is defined, - with extern declaration for initialize_signames - - if not cross compiling, #define initialize_signames to nothing - -Makefile.in - - mksignames is now linked from mksignames.o and buildsignames.o - - add rules to build signames.o, assuming we're building it as part - of the shell (cross-compiling) - -trap.c - - call initialize_signames from initialize_traps - -configure.in - - set SIGNAMES_O to nothing (normal) or signames.o (cross-compiling), - substitute into Makefile - - don't set SIGNAMES_H if cross-compiling any more - - 12/30 - ----- -command.h - - new word flag: W_NOPROCSUB, inhibits process substitution on a word - -subst.c - - change expand_word_internal to suppress process substitution if the - word has the W_NOPROCSUB flag - -shell.c - - --wordexp turns on W_NOPROCSUB in addition to W_NOCOMSUB - -subst.c - - change string_list_dollar_at and string_list_dollar_star so that - MB_CUR_MAX is used to size an array only when using gcc, since gcc - can handle non-constant array sizes using a mechanism like alloca. - Other compilers, e.g. Sun's compiler, do not implement that - extension - - 12/31 - ----- -builtins/mkbuiltins.c - - when cross-compiling, don't include , since it's for the - target rather than the host system. Instead, choose a reasonable - set of default #defines based on a minimal POSIX system - -jobs.c - - change find_process to handle a NULL return value from find_pipeline - - return immediately from delete_job if jobs[index] is already NULL or - if it has a null pipeline associated with it - - in delete_job, if find_last_proc returns NULL, don't try to call - bgp_delete - - 1/7/2006 - -------- -doc/bash.1 - - patch from Tim Waugh to replace some literal single quotes with - \(aq, the groff special character for it - -jobs.c - - in realloc_jobs_list, make sure to zero out slots after j_lastj - in the new list - - 1/9 - --- -support/mksignames.c - - make sure to include to get right value of NSIG from - (usually) - - 1/10 - ---- -parse.y - - when calling parse_matched_pair on a $(...) command substitution, - don't pass the P_DQUOTE flag so that single quotes don't get - stripped from $'...' inside the command substitution. Bug report - and fix from Mike Stroyan - -jobs.c - - start maintaining true count of living children in js.c_living - - call reset_current in realloc_jobs_list, since old values for current - and previous job are most likely incorrect - - don't allocate a new list in realloc_jobs_list if the old size and - new size are the same; just compact the existing list - - make sure realloc_jobs_list updates value of js.j_njobs - - add some more itrace messages about non-null jobs after j_lastj in - jobs array - - 1/11 - ---- -bashjmp.h - - new value for second argument to longjmp: SIGEXIT. Reserved for - future use - - 1/12 - ---- -jobs.c - - add logic to make_child to figure out when pids wrap around - - turn second argument to delete_job into flags word, added flag to - prevent adding proc to bgpids list - - 1/13 - ---- -lib/readline/vi_mode.c - - move code that moves forward a character out of rl_vi_append_mode - into a separate function, _rl_vi_append_forward - - change _rl_vi_append_mode to save `a' as the last command, so it - can be redone properly - - new function _rl_vi_backup, moves point back a character taking - multibyte locales into account - - change rl_vi_redo to handle redoing an `a' command specially -- - it should be redone like `i' but after moving forward a character - - change rl_vi_redo to use _rl_vi_backup to move point backward - after redoing `i' or `a' - -jobs.c - - new function, delete_old_job (pid), checks whether or not PID is in - a job in the jobs list. If so, and the job is dead, it just removes - the job from the list. If so, and the job is not dead, it zeros - the pid in the appropriate PROCESS so pid aliasing doesn't occur - - make_child calls delete_old_job to potentially remove an already-used - instance of the pid just forked from the jobs list if pids have - wrapped around. Finally fixes the bug reported by Tim Waugh - - -trap.c - - new define, GETORIGSIG(sig), gets the original handling for SIG and - sets SIG_HARD_IGNORE if that handler is SIG_IGN - - call GETORIGSIG from initialize_traps, get_original_signal, and - set_signal - -jobs.c - - in wait_for, if the original SIGINT handler is SIG_IGN, don't set - the handler to wait_sigint_handler. This keeps scripts started in - the background (and ignoring SIGINT) from dying due to SIGINT while - they're waiting for a child to exit. Bug reported by Ingemar - Nilsson - -lib/readline/vi_mode.c - - don't save text to buffer unless undo pointer points to a record of - type UNDO_INSERT; zero it out instead. This fixes bug reported by - Craig Turner with redoing `ctd[ESC]' (empty - insert after change to) - -shell.c - - change set_shell_name so invocations like "-/bin/bash" are marked as - login shells - -doc/bash.1 - - add note about destroying functions with `unset -f' to the section - on shell functions - -lib/readline/terminal.c - - if readline hasn't been initialized (_rl_term_autowrap == -1, the - value it's now initialized with), call _rl_init_terminal_io from - _rl_set_screen_size before deciding whether or not to decrement - _rl_screenwidth. Fixes bug from Mike Frysinger - - 1/14 - ---- -lib/readline/input.c - - allow rl_set_keyboard_input_timeout to set the timeout to 0, for - applications that want to use select() like a poll without any - waiting - -lib/readline/doc/rltech.texi - - documented valid values for timeout in rl_set_keyboard_input_timeout - -jobs.c - - in stop_pipeline, don't have the parent shell call give_terminal_to - if subshell_environment contains SUBSHELL_ASYNC (no background - process should ever give the terminal to anything other than - shell_pgrp) - - in make_child, don't give the terminal away if subshell_environment - contains SUBSHELL_ASYNC - - 1/15 - ---- -subst.c - - in parameter_brace_expand, if extracting ${#varname}, only allow - `}' to end the expansion, since none of the other expansions are - valid. Fixes Debian bug reported by Jan Nordhorlz - - 1/17 - ---- -parse.y - - in parse_matched_pair, protect all character tests with the MBTEST - macro - - in parse_dparen, take out extra make_word after call to alloc_word_desc - (mem leak) - - 1/18 - ---- -parse.y - - in parse_matched_pair, add P_ALLOWESC to flags passed to recursive - parse_matched_pair call when encountering a single or double quote - inside a ``-style command substitution - -execute_cmd.c - - add call to QUIT at beginning of execute_command_internal; better - responsiveness to SIGINT - - 1/21 - ---- -lib/readline/bind.c - - change rl_invoking_keyseqs_in_map to honor the setting of - convert-meta when listing key bindings, since if convert-meta is off, - using '\M-' as the prefix for bindings in, for instance, - emacs-escape-keymap, is wrong. This affects `bind -p' output - - change rl_untranslate_keyseq to add '\e' instead of '\C-[' for - ESC - -execute_cmd.c - - add call to QUIT at end of execute_command - - 1/23 - ---- -lib/readline/display.c - - changed two places in update_line where a check of whether the cursor - is before the last invisible character in the prompt string to - differentiate between the multibyte character case (where - _rl_last_c_pos is a physical cursor position) and the single-byte - case (where it is a buffer index). This prevents many unnecessary - \r-redraw the line sequences. Reported by Dan Jacobson. - - 1/24 - ---- -quit.h - - wrap QUIT macro in do...while(0) like other compound statement - macros - - CHECK_TERMSIG define (placeholder for now); future use will be to - handle any received signals that should cause the shell to - terminate (e.g., SIGHUP) - -{input,jobs,nojobs}.c - - add calls to CHECK_TERMSIG where appropriate (reading input and - waiting for children) - - include quit.h if necessary - - 1/25 - ---- -parse.y - - undo change that makes `)' in a compound assignment delimit a token. - It messes up arithmetic expressions in assignments to `let', among - other things - -sig.h,{jobs,nojobs,sig,trap}.c,builtins/trap.def - - rename termination_unwind_protect to termsig_sighandler - -sig.c - - split termsig_sighandler into two functions: termsig_sighandler, which - runs as a signal handler and sets a flag noting that a terminating - signal was received, and termsig_handler, which runs when it is `safe' - to handle the signal and exit - - new terminate_immediately variable, similar to interrupt_immediately - - termsig_sighandler calls termsig_handler immediately if - terminate_immediately is non-zero - -quit.h - - change CHECK_TERMSIG macro to check terminating_signal and call - termsig_handler if it's non-zero - - add same check of terminating_signal and call to termsig_handler to - QUIT macro - -{jobs,nojobs}.c - - change call to termsig_sighandler to call termsig_handler directly, - as was intended - -parse.y,builtins/read.def - - set terminate_immediately to non-zero value when reading interactive - input, as is done with interrupt_immediately - - 1/26 - ---- -doc/{bash.1,bashref.texi} - - reworded the POSIX standard references to remove mention of POSIX.2 - or 1003.2 -- it's all the 1003.1 standard now. Recommended by - Arnold Robbins - - 1/27 - ---- -lib/readline/complete.c - - move call to filename dequoting function into - rl_filename_completion_function; call only if directory completion - hook isn't set. This means that directory-completion-hook now needs - to dequote the directory name. We don't want to dequote the directory - name before calling the directory-completion-hook. Bug reported by - Andrew Parker - -bashline.c - - add necessary directory name dequoting to bash_directory_expansion - and bash_directory_completion_hook - -lib/readline/doc/rltech.texi - - add note to description of rl_directory_completion_hook that it - needs to dequote the directory name even if no other expansions are - performed - - 1/28 - ---- -braces.c - - make sure that we skip over braces that don't start a valid matched - brace expansion construct in brace_expand -- there might be a valid - brace expansion after the unmatched `{' later in the string - - brace_gobbler now checks that when looking for a `}' to end a brace - expansion word, there is an unquoted `,' or `..' that's not inside - another pair of braces. Fixes the a{b{c,d}e}f problem reported by - Tim Waugh - -builtins/declare.def - - when not in posix mode, and operating on shell functions, typeset - and declare do not require their variable operands to be valid - shell identifiers. The other `attribute' builtins work this way. - Fixes inconsistency reported by Mike Frysinger - -{configure,config.h}.in - - add test for setregid, define HAVE_SETREGID and HAVE_DECL_SETREGID - as appropriate - - add test for eaccess, define HAVE_EACCESS if found - -lib/sh/eaccess.c - - new file, with sh_stat and sh_eaccess functions, moved from test.c - - renamed old sh_eaccess as sh_stataccess, since it uses the stat(2) - information to determine file accessibility - - new function, sh_euidaccess, to call when uid != euid or gid != egid; - temporarily swaps uid/euid and gid/egid around call to access - - rewrote sh_eaccess to call eaccess, access, sh_euidaccess or - sh_stataccess as appropriate. access(2) will take into account - things like ACLs, read-only file systems, file flags, and so on. - -lib/sh/Makefile.in,Makefile.in - - add necessary entries for eaccess.[co] - -test.c - - change calls to test_stat to call sh_stat - -{test,general}.c - - change calls to test_eaccess to call sh_eaccess - -externs.h - - new extern declaration for sh_eaccess - -test.[ch] - - remove test_stat and test_eaccess - - 1/29 - ---- -braces.c - - make change from 1/28 dependant on CSH_BRACE_COMPAT not being - defined (since old bash behavior is what csh does, defining - CSH_BRACE_COMPAT will produce old bash behavior) - - 1/30 - ---- -bashline.c - - last argument of bash_default_completion is now a flags word: - DEFCOMP_CMDPOS (in command position) is only current value - - attempt_shell_completion now computes flags before calling - bash_default_completion - - if no_empty_command_completion is set, bash does not attempt command - word completion even if not at the beginning of the line, as long - as the word to be completed is empty and start == end (catches - beginning of line and all whitespace preceding point) - - 2/4 - --- -lib/readline/display.c - - change _rl_make_prompt_for_search to use rl_prompt and append the - search character to it, so the call to expand_prompt in rl_message - will process the non-printing characters correctly. Bug reported - by Mike Stroyan - - 2/5 - --- -lib/readline/display.c - - fix off-by-one error when comparing against PROMPT_ENDING_INDEX, - which caused a prompt with invisible characters to be redrawn one - extra time in a multibyte locale. Change from <= to < fixes - multibyte locale, but I added 1 to single-byte definition of - PROMPT_ENDING_INDEX (worth checking) to compensate. Bug reported - by Egmont Koblinger - - 2/8 - --- -lib/readline/terminal.c - - call _emx_get_screensize with wr, wc like ioctl code for consistency - - new function, _win_get_screensize, gets screen dimensions using - standard Windows API for mingw32 (code from Denis Pilat) - - call _win_get_screensize from _rl_get_screen_size on mingw32 - -lib/readline/rlconf.h - - define SYS_INPUTRC (/etc/inputrc) as system-wide default inputrc - filename - -support/shobj-conf - - changes to make loadable builtins work on MacOS X 10.[34] - -builtins/pushd.def - - changes to make it work as a loadable builtin compiled with gcc4 - - 2/9 - --- -lib/readline/bind.c - - add SYS_INPUTRC as last-ditch default (if DEFAULT_INPUTRC does not - exist or can't be read) in rl_read_init_file - -lib/readline/doc/rluser.texi - - add description of /etc/inputrc as ultimate default startup file - - 2/10 - ---- -lib/readline/bind.c - - fix problem with rl_function_of_keyseq that returns a non-keymap - bound to a portion of the passed key sequence without processing - the entire thing. We can bind maps with existing non-map - functions using the ANYOTHERKEY binding code. - -variables.c - - shells running in posix mode do not set $HOME, as POSIX apparently - requires - - 2/15 - ---- -braces.c - - mkseq() now takes the increment as an argument; changed callers - - 2/16 - ---- -builtins/hash.def - - print `hash table empty' message to stdout instead of stderr - - 2/17 - ---- -lib/readline/readline.c - - when resetting rl_prompt in rl_set_prompt, make sure rl_display_prompt - is set when the function returns - - 2/18 - ---- -lib/readline/display.c - - further fixes to _rl_make_prompt_for_search from Eric Blake to deal - with multiple calls to expand_prompt - - 2/21 - ---- -builtins/hash.def - - don't print `hash table empty' message in posix mode - - 2/27 - ---- -lib/glob/sm_loop.c - - change extmatch() to turn off FNM_PERIOD in flags passed to recursive - calls to gmatch() when calling it with a substring after the start - of the string it receives. Changed `+', `*', `?, `@', and `!' cases - to do the right thing. Fixes bug reported by Benoit Vila - - -braces.c - - add QUIT; statements to mkseq to make large sequence generation - interruptible - - 2/28 - ---- -lib/glob/glob.c - - initialize nalloca in glob_vector - - 3/1 - --- -lib/glob/glob.c - - in glob_vector, when freeing up the linked list after some error, - make sure to set `tmplink' to 0 if `firstlink' is set to 0, else we - get multiple-free errors - - 3/5 - --- -trap.c - - inheritance of the DEBUG, RETURN, and ERR traps is now dependent - only on the `functrace' and `errtrace' shell options, as the - documentation says, rather than on whether or not the shell is in - debugging mode. Reported by Philip Susi - -parse.y - - in parse_matched_pair, don't recursively parse ${...} or other - ${...} constructs inside `` - - in parse_matched_pair, remove special code that recursively parses - quoted strings inside `` constructs. For Bourne shell compatibility - - 3/6 - --- -builtins/pushd.def - - let get_directory_stack take take an `int flags' argument and convert - $HOME to ~ if flags&1 is non-zero - -builtins/common.h - - change extern declaration for get_directory_stack - -variables.c - - call get_directory_stack with an arg of 0 to inhibit converting - $HOME to ~ in the result. Fixes cd ${DIRSTACK[1]} problem - reported by Len Lattanzi (cd fails because - the tildes won't be expanded after variable expansion) - -jobs.c - - changed hangup_all_jobs slightly so stopped jobs marked J_NOHUP - won't get a SIGCONT - -general.c - - changed check_binary_file() to check for a NUL byte instead of a - non-printable character. Might at some point want to check - entire (possibly multibyte) characters instead of just bytes. Hint - from ksh via David Korn - - 3/7 - --- -builtins/reserved.def - - changed runs of spaces to tabs in variables help text to make - indentation better when displayed - -builtins/mkbuiltins.c - - changes to avoid the annoying extra space that keeps gettext from - being passed an empty string - - 3/9 - --- -lib/glob/glob.c - - make sure globbing is interrupted if the shell receives a terminating - signal - - 3/14 - ---- -lib/readline/search.c - - call rl_message with format argument of "%" in _rl_nsearch_init - to avoid `%' characters in the prompt string from being interpreted - as format specifiers to vsnprintf/vsprintf - - 3/19 - ---- -parse.y, eval.c, input.h - - change execute_prompt_command to execute_variable_command; takes the - variable name as a new second argument - - 3/25 - ---- -bashline.c - - command_word_completion_function keeps track of when it's searching - $PATH and doesn't return directory names as matches in that case. - Problem reported by Pascal Terjan - - command_word_completion_function returns what it's passed as a - possible match if it's the name of a directory in the current - directory (only non-absolute pathnames are so tested). - - 3/27 - ---- -subst.c - - expand_arith_string takes a new argument: quoted. Either 0 (outside - subst.c) or Q_DOUBLE_QUOTES (substitution functions); changed callers - -subst.h - - changed extern declaration for expand_arith_string - -arrayfunc.c - - changed call to expand_arith_string in array_expand_index - - 3/31 - ---- -lib/readline/histfile.c - - change read_history_range to allow windows-like \r\n line endings - -execute_cmd.c - - add new variable, line_number_for_err_trap, currently set but not - used - - 4/2 - --- -lib/sh/strtrans.c - - add code to echo -e and echo with xpg_echo enabled to require - a leading 0 to specify octal constants - - 4/3 - --- -subst.c - - slight change to wcsdup() replacement: use memcpy instead of wcscpy - -parse.y - - before turning on W_COMPASSIGN, make sure the final character in the - token is a `(' (avoids problems with things like a=(4*3)/2) - - 4/4 - --- -lib/sh/snprintf.c - - in number() and lnumber(), turn off PF_ZEROPAD if explicit precision - supplied in format - - change number() and lnumber() to correctly implement zero-padding - specified by a non-zero `.precision' part of the format - -subst.c - - new flag for extract_delimited_string: EX_COMMAND. For $(...), so - we can do things like skip over delimiters in comments. Added to - appropriate callers - - changes to extract_delimited_string to skip over shell comments when - extracting a command for $(...) (EX_COMMAND is contained in the - flags argument) - - 4/5 - --- -subst.c - - first argument to skip_single_quoted is now a const char * - - new function, chk_arithsub, checks for valid arithmetic expressions - by balancing parentheses. Fix based on a patch from Len Lattanzi - - 4/6 - --- -{configure,config.h}.in - - add separate test for isnan in libc, instead of piggybacking on - isinf-in-libc test - -lib/sh/snprintf.c - - separate the isnan replacement function so it's guarded by its own - HAVE_ISNAN_IN_LIBC define - -lib/sh/wcsdup.c - - new file, contains replacement wcsdup library function from subst.c - with change back to using wcscpy - -Makefile.in,lib/sh/Makefile.in - - make sure wcsdup.c is compiled and linked in - -subst.c - - wcsdup now found in libsh; removed static definition - - 4/10 - ---- -lib/readline/callback.c - - loop over body of rl_callback_read_char as long as there is additional - input rather than just calling readline_internal_char, which does - not handle multi-character key sequences or escape-prefixed chars - -lib/readline/macro.c - - make sure we turn off RL_STATE_MACROINPUT when the macro stack is - empty if we are reading additional input with RL_STATE_MOREINPUT - -support/shobj-conf - - Mac OS X no longer likes the `-bundle' option to gcc when creating a - dynamic shared library - - 4/11 - ---- -lib/tilde/tilde.c - - don't try to dereference user_entry if HAVE_GETPWENT isn't defined - -lib/readline/input.c - - make sure chars_avail is not used without being assigned a value in - rl_gather_tyi - - use _kbhit() to check for available input on Windows consoles, in - rl_gather_tyi and _rl_input_available - - 4/21 - ---- -lib/readline/display.c - - calculate (in expand_prompt) and keep track of length of local_prompt - in local_prompt_len; use where appropriate - - when using o_pos to check whether or not we need to adjust - _rl_last_c_pos after calling update_line, assume that it's correct - (a buffer index in non-multibyte locales and a cursor position in - multibyte locales) and adjust with wrap_offset as appropriate - - in update_line, set cpos_adjusted to 1 after calling - _rl_move_cursor_relative to move to the end of the displayed prompt - string - - in _rl_move_cursor_relative, check that the multibyte display - position is after the last invisible character in the prompt string - before offsetting it by the number of invisible characters in the - prompt (woff) - - 4/26 - ---- -lib/readline/doc/{rluser.texi,readline.3} - - make sure to note that key bindings don't allow any whitespace - between the key name or sequence to be bound and the colon - - 4/28 - ---- -lib/readline/display.c - - in update_line, make sure we compare _rl_last_c_pos as strictly less - than PROMPT_ENDING_INDEX, since it's 0-based, to avoid multiple - prompt redraws - - 5/4 - --- -parse.y - - in decode_prompt_string, only prefix the expansion of \[ or \] - with CTLESC if the corresponding readline escape character is - CTLESC (coincidentally the same as \[) or CTLNUL. Bug report sent - by Mike Frysinger prompted the discovery - -aclocal.m4 - - slight change to test for /dev/fd to compensate for a linux - failing; suggested by Mike Frysinger - - 5/9 - --- -arrayfunc.c - - broke assign_array_var_from_string into two functions: - expand_compound_array_assignment and assign_compound_array_list; - assign_array_var_from_string just calls those functions now - -arrayfunc.h - - new extern declarations for expand_compound_array_assignment and - assign_compound_array_list - -subst.c - - in do_compound_assignment, call expand_compound_array_assignment - before creating the local variable so a previous inherited - value can be used when expanding the rhs of the compound assignment - statement - - 5/11 - ---- -doc/{bash.1,bashref.texi} - - clarifed `trap' description to make it clear that trapped signals - that are not set to SIG_IGN are reset when a subshell is created - - 5/18 - ---- -locale.c - - change reset_locale_vars to call setlocale (LC_ALL, "") if LANG - is unset or NULL - - if LANG is unset or NULL, reset the export environment before - calling setlocale in reset_locale_vars, and trust that it will - change the environment setlocale() inspects - - 5/21 - ---- -lib/readline/history.c - - new function, HIST_ENTRY *alloc_history_entry (char *string, char *ts); - creates a new history entry with text STRING and timestamp TS (both - of which may be NULL) - - new function, HIST_ENTRY *copy_history_entry (HIST_ENTRY *hist), - which copies the line and timestamp entries to new memory but just - copies the data member, since that's an opaque pointer - - new function, void replace_history_data (int which, histdata_t *old, histdata_t *new) - which replaces the `data' member of specified history entries with - NEW, as long as it is OLD. WHICH says which history entries to - modify - - add calls to replace_history_data in rl_free_undo_list and - rl_do_undo - -lib/readline/undo.c - - new function, alloc_undo_entry (enum undo_code what, int start, int end, char *text) - takes care of allocating and populating a struct for an individual - undo list entry - - new function: _rl_copy_undo_entry(UNDO_LIST *entry) - - new function: _rl_copy_undo_list(UNDO_LIST *head) - -lib/readline/rlprivate.h - - new extern declarations for _rl_copy_undo_{entry,list} - -execute_cmd.c - - change execute_cond_node so that quoting the rhs of the =~ - operator forces string matching, like the == and != operators - - 5/23 - ---- -redir.c - - add_undo_redirect now takes as an additional argument the type of - redirection we're trying to undo - - don't add a "preservation" redirection for fds > SHELL_FD_BASE if - the redirection is closing the fd - - 5/24 - ---- -subst.c - - make sure that parameter_brace_substring leaves this_command_name - set to either NULL or its previous value after setting it so that - arithmetic evaluation errors while expanding substring values - contain meaningful information - - 6/9 - --- -execute_cmd.c - - make sure that SUBSHELL_ASYNC and SUBSHELL_PIPE are set as flag bits - in subshell_environment, rather than setting only a single value - - change execute_subshell_builtin_or_function to give the `return' - builtin a place to longjmp to when executed in a subshell or pipeline - (mostly as the last command in a pipeline). Bug reported by - Oleg Verych - - in execute_simple_command, make sure to call execute_disk_command - with the_printed_command_except_trap to keep DEBUG trap command - strings from overwriting the command strings associated with jobs - and printed in job control messages. Bug reported by Daniel Kahn - Gillmor - -[bash-3.2-alpha frozen] - - 6/22 - ---- -syntax.h - - add new CBLANK (for [:blank:] class) flag value for syntax table and - shellblank(c) character test macro - -mksyntax.c - - add support for setting CBLANK flag in the syntax table depending on - whether or not isblank(x) returns true for character x - -locale.c - - change locale_setblanks to set or unset CBLANK flag for each - character when locale changes - -parse.y - - change call to whitespace(c) in lexical analyzer (read_token()) to - call shellblank(c) instead, so locale-specific blank characters are - treated as white space. Fixes bug reported by Serge van deb Boom - - -print_cmd.c - - when printing redirections, add a space between <, >, and <> and the - following word, to avoid conflicts with process substitution. Bug - reported by Ittay Dror - - 6/26 - ---- -configure.in - - set CROSS_COMPILE to the empty string by default, so we don't inherit - a random value from the environment. Bug reported by - Lee Revell - - 6/29 - ---- -lib/glob/xmbsrtowcs.c - - make sure destp is non-null before assigning a 0 to *destp in - xdupmbstowcs. Fix from Louiwa Salem - -execute_cmd.c - - fix execute_in_subshell to make sure asynchronous isn't set to 0 - before subshell_environment is set appropriately and - setup_async_signals is run. Based on report by Louiwa Salem - - -lib/readline/bind.c - - in rl_generic_bind(), make sure that the keys array is freed before - an error return. Fix from Louiwa Salem - - 7/1 - --- -builtins/read.def - - make sure all editing code is protected with #ifdef READLINE, esp. - unwind-protect that restores the default completion function - -lib/readline/display.c - - make sure to set local_prompt_len in rl_message() [in bash-3.2-alpha] - - 7/5 - --- -builtins/printf.def - - add more of echo's write error handling to printf. Suggested by - martin.wilck@fujitsu-siemens.com - - 7/7 - --- -lib/readline/display.c - - save and restore local_prompt_len in rl_{save,restore}_prompt - [in bash-3.2-alpha] - - 7/8 - --- -[bash-3.2-alpha released] - - 7/9 - --- -lib/readline/display.c - - make sure that _rl_move_cursor_relative sets cpos_adjusted when it - offsets `dpos' by wrap_offset in a multi-byte locale. Bug reported - by Andreas Schwab and Egmont Koblinger - -subst.c - - make sure that the call to mbstowcs in string_extract_verbatim is - passed a string with enough space for the closing NUL. Reported - by Andreas Schwab - - 7/18 - ---- -lib/readline/{display,terminal}.c - - remove #ifdefs for HACK_TERMCAP_MOTION so we can use - _rl_term_forward_char in the redisplay code unconditionally - -lib/readline/rlprivate.h - - new extern declaration for _rl_term_forward_char - -lib/readline/display.c - - in _rl_move_cursor_relative, use `dpos' instead of `new' when - deciding whether or not a CR is faster than moving the cursor from - its current position - - in _rl_move_cursor_relative, we can use _rl_term_forward_char to - move the cursor forward in a multibyte locale, if it's available. - Since that function doesn't have a handle on where the cursor is in - the display buffer, it has to output a cr and print all the data. - Fixes rest of problem reported by Egmont Koblinger - - change variable denoting the position of the cursor in the line buffer - from c_pos (variable local to rl_redisplay) to cpos_buffer_position - (variable local to file) for future use by other functions - - 7/25 - ---- -lib/malloc/{stats,table}.h - - include for prototypes for memset, strlen - -lib/termcap/{termcap,tparam}.c - - include and provide macro replacement for bcopy if - necessary - - 7/27 - ---- -lib/readline/histexpand.c - - add support for `<<<' here-string redirection operator to - history_tokenize_word. Bug reported by agriffis@gentoo.org - -externs.h - - don't add prototype for strerror() if HAVE_STRERROR defined - - 7/29 - ---- -subst.c - - in list_string, use `string' instead of `s' -- s is not initialized - - 8/9 - --- -subst.c - - fix parameter_brace_expand to set W_HASQUOTEDNULL in the WORD_DESC it - returns if the result of parameter_brace_substring is a quoted null - ("\177"). Fixes bug reported by Igor Peshansky - - 8/16 - ---- -lib/readline/readline.h - - new #define, READERR, intended to be used to denote read/input errors - -lib/readline/input.c - - in rl_getc, if read() returns an error other than EINTR (after the - EWOULDBLOCK/EAGAIN cases are handled), return READERR rather than - converting return value to EOF if readline is reading a top-level - command (RL_STATE_READCMD) - -lib/readline/readline.c - - if rl_read_key returns READERR to readline_internal_char[loop], - abort as if it had read EOF on an empty line, without any conversion - to newline, which would cause a partial line to be executed. This - fixes the bug reported by Mathieu Bonnet - -aclocal.m4 - - when testing for validity of /dev/fd/3, use /dev/null instead of - standard input, since the standard input fails with linux and `su'. - Bug reported by Greg Shafer - - 8/17 - ---- -Makefile.in - - switch the TAGS and tags targets so TAGS is the output of `etags' and - tags is the output of `ctags'. Suggested by Masatake YAMATO - - 8/25 - ---- -execute_cmd.c - - change code to match documentation: set BASH_COMMAND (which takes its - value from the_printed_command_except_trap) only when not running a - trap. Rocky says the debugger is ok with this, and this is what his - original diffs did - - 8/29 - ---- -variables.c - - change set_if_not to create shell_variables if it is NULL, since - -o invocation options can cause variables to be set before the - environment is scanned - -[bash-3.2-beta frozen] - - 9/5 - --- -[bash-3.2-beta released] - - 9/8 - --- -variables.c - - change dispose_used_env_vars to call maybe_make_export_env - immediately if we're disposing a temporary environment, since - `environ' points to the export environment and getenv() will use - that on systems that don't allow getenv() to be replaced. This - could cause the temporary environment to affect the shell. Bug - reported by Vasco Pedro - -builtins/echo.def,doc/{bash.1,bashref.texi} - - clarify that `echo -e' and echo when the `xpg_echo' shell option is - enabled require the \0 to precede any octal constant to be expanded. - Reported by Vasco Pedro - - 9/12 - ---- -builtins/printf.def - - make sure `%q' format specifier outputs '' for empty string arguments - Bug reported by Egmont Koblinger - -make_cmd.c - - change make_here_document to echo lines in here-doc if set -v has - been executed. Reported by Eduardo Ochs - -aclocal.m4 - - change BASH_CHECK_MULTIBYTE: - o replace check for wctomb with check for wcrtomb - o add checks for wcscoll, iswctype, iswupper, iswlower, - towupper, towlower - o add call to AC_FUNC_MBRTOWC to check for mbrtowc and mbstate_t - define HAVE_MBSTATE_T manually - o add checks for wchar_t, wctype_t, wint_t - -config.h.in - - add defines for wcscoll, iswctype, iswupper, iswlower, towupper, - towlower functions - - replace define for wctomb with one for wcrtomb - - add defines for wchar_t, wint_t, wctype_t types - -config-bot.h, lib/readline/rlmbutil.h - - add check for HAVE_LOCALE_H before defining HANDLE_MULTIBYTE - - add checks for: ISWCTYPE, ISWLOWER, ISWUPPER, TOWLOWER, TOWUPPER - - add checks for: WCTYPE_T, WCHAR_T, WCTYPE_T - - 9/13 - ---- -lib/readline/display.c - - when displaying prompts longer than the screenwidth in rl_redisplay, - and looking for the index of the last character whose buffer index - is <= the screen width to set up the inv_lbreaks array, make sure to - catch the case where the index == the screen width (an off-by-one - error occurs otherwise with prompts one character longer than the - screen width). Bug reported by Alexey Toptygin - -configure.in - - change DEBUGGER_START_FILE to start with ${ac_default_prefix}/share, - like bashdb installs itself. Reported by Nick Brown - - - 9/14 - ---- -lib/readline/display.c - - make multibyte code that computes the buffer indices of line breaks - for a multi-line prompt dependent on MB_CUR_MAX, so we don't take - the function call hit unless we're in a locale that can have - multibyte characters - - 9/19 - ---- -subst.c - - make dequote_list extern so other parts of the shell can use it - -subst.h - - extern declaration for dequote_list - -builtins/read.def - - call dequote_list before assigning words read to array variable if - we saw an escape character. Old code left spurious CTLESCs in the - string after processing backslashes. Bug reported by Daniel Dawson - - - 9/21 - ---- -[bash-3.2 frozen] - - 10/9 - ---- -support/shobj-coonf - - change -fpic to -fPIC for FreeBSD systems (needed for SPARC at least) - - 10/11 - ----- -[bash-3.2 released] - - 10/12 - ----- -parse.y - - change parse_matched_pair to make sure `` command substitution does - not check for shell comments while parsing. Bug reported against - bash-3.2 by Greg Schaefer - - 10/14 - ----- -parse.y - - add new parser_state flag: PST_REGEXP; means we are parsing a - regular expression following the =~ conditional operator - - cond_node sets PST_REGEXP after reading the `=~' operator - - change read_token to call read_token_word immediately if the - PST_REGEXP bit is set in parser_state - - change read_token_word to skip over `(' and `|' if PST_REGEXP is - set, since those characters are legitimate regexp chars (but still - parse matched pairs of parens) - - 10/16 - ----- -builtins/ulimit.def - - add -e and -r to $SHORT_DOC usage string - -po/ru.po - - fix encoding; Russian text in the file is actually encoded in KOI8-R - - 10/23 - ----- -shell.c - - make sure that the call to move_to_high_fd in open_shell_script - passes 1 for the `check_new' parameter so open high file descriptors - don't get closed and reused. Bug reported by Mike Stroyan - - -doc/bashref.texi - - fixes for typos and misspellings sent in by Brian Gough - - 10/24 - ----- -support/shobj-conf - - make netbsd shared library creation like openbsd's until I hear - differently (called using `gcc -shared') - - 10/26 - ----- -subst.c - - fix bug in parameter_brace_patsub so if the first character of the - expanded pattern is a `/', it is not taken as a global replacement - specifier. Bug reported on forums.nekochan.net - - 10/27 - ----- -builtins/printf.def - - if we need an extern declaration for asprintf, make sure we include - stdarg.h or varargs.h, whichever is appropriate - - if we do not have asprintf, add an extern declaration using - stdarg format. This fixes the bugs with %G on IRIX reported by - Matthew Woehlke and Stuart Shelton - - - -lib/sh/snprintf.c - - add note to not call log_10 with 0 argument -- we don't want to do - what real log10 does (-infinity/raise divide-by-zero exception) - - make sure numtoa (used by dtoa) takes the precision into account - when computing the fractional part with an argument of `0.0' - - make sure `g' and `G' formats don't print radix char if there are - no characters to be printed after it (change to floating()) - - change callers of log_10 (exponent, 'g' and 'G' cases in - vsnprintf_internal) to not call it with 0 for argument. This fixes - the hang reported on IRIX by Matthew Woehlke - and Stuart Shelton - - 10/28 - ----- -builtins/{caller,pushd}.def - - changed longdoc strings in loadable builtin section to be single - strings, as put in the build directory builtins.c file, to aid - translators - - 11/1 - ---- -execute_cmd.c - - reset subshell_environment to 0 after make_child() call in - execute_null_command. Fix provided by Roy Marples - - - 11/7 - ---- -lib/tilde/tilde.c -lib/readline/{util,undo,callback,input,isearch,kill}.c - - make sure that memory allocated with xmalloc is freed with xfree - - 11/9 - ---- -lib/readline/display.c - - make sure that _rl_redisplay_after_sigwinch clears the last displayed - line instead of the current line (instead of assuming that the - cursor is on the last line). Fixes bug reported by Egmont - Koblinger - - 11/10 - ----- -lib/readline/display.c - - make sure that _rl_col_width is never called with MB_CUR_MAX == 1, - since it doesn't count invisible characters and they are not - compensated for. Added a warning in _rl_col_width if called when - MB_CUR_MAX == 1. Bug reported and solution suggested by Eric - Blake - - 11/11 - ----- -lib/readline/display.c - - make sure _rl_wrapped_line is initialized to inv_lbsize int chars. - inv_lbsize and vis_lbsize are the same at that point, but it makes - the intent clearer. Fix from jan.kratochvil@redhat.com. - - in rl_redisplay, make sure we call memset on _rl_wrapped_line with - its full initialized size: inv_lbsize*sizeof(int). Fix from - jan.kratochvil@redhat.com. - - wrap the invisible and visible line variables and _rl_wrapped_line - into line_state structures, which can be swapped more efficiently. - Have to watch the wrapped_line field, since there's now one for - each struct. Changes from jan.kratochvil@redhat.com. - -lib/readline/complete.c - - in stat_char, check for `//server' on cygwin and return `/', since - it will always behave as a directory. Fix from Eric Blake - -lib/readline/histfile.c - - Cygwin's mmap() works in recent versions, so don't #undef HAVE_MMAP. - Recommendation from Eric Blake - -lib/readline/rlwinsize.h - - make sure tcflow() is defined on SCO Unix. Fix from William Bader - -aclocal.m4 - - add check for localeconv to AM_INTL_SUBDIR macro - -config.h.in - - add HAVE_LOCALECONV - -lib/sh/snprintf.c - - add check for HAVE_LOCALECONV for GETLOCALEDATA macro - -general.[ch] - - first argument to legal_number is now `const char *' - - 11/14 - ----- -lib/readline/{readline,rlprivate}.h - - move rl_display_prompt declaration from rlprivate.h to readline.h - -lib/readline/util.h - - new function: rl_free(void *mem), for use by users of readline dlls - on Windows - -lib/readline/readline.h - - new extern declaration for rl_free - -lib/readline/doc/rltech.texi - - document rl_free and rl_display_prompt for use by application writers - - 11/15 - ----- -aclocal.m4 - - change tests for /dev/fd and /dev/stdin to use constructs of the form - (exec test ... ) instead of test ... to avoid bash's /dev/fd and - /dev/stdin emulation - - 11/16 - ----- -jobs.c - - in delete_job, reset_current was being called before the job slot - was cleared -- moved after job_slots[job] was set to NULL. Fixes - bug reported by Dan Jacobson - - 11/19 - ----- -findcmd.c - - when the checkhash option is set, fix the check for the hashed - pathname being an existing executable file. Old code required a - hash table deletion and re-addition. Bug reported by Linda - Walsh - - 11/21 - ----- -subst.c - - in pos_params, handle case of `start' == 0 by making the list of - positional parameters begin with $0 - - in parameter_brace_substring, increment `len' if start == 0, since - we will be adding $0 to the beginning of the list when we process it - -doc/{bash.1,bashref.texi} - - document new behavior of `0' offset when using substring expansion - with the positional parameters - -support/shobj-conf - - changes to shared object creation for loadable builtins on Mac OS X - 10.4 to use libtool instead of ld by specifying -dynamiclib - argument and changing options to be appropriate for libtool. This - winds up creating a dynamic shared library instead of an executable - - 11/24 - ----- -{jobs,nojobs}.c - - don't set last_asynchronous_pid to the child's pid in the child - for asynchronous jobs (for compatibility -- all other posix shells - seem to do it this way). This means that (echo $! )& echo $! should - display two different pids. Fix from discussion on the - austin-group-l list - -builtins/mkbuiltins.c - - change builtins.c file generation so short doc strings are marked for - gettext and available for subsequent translation. Suggestion by - Benno Schulenberg - -builtins/{bind,cd,hash,inlib,printf,pushd,test,times,ulimit}.def -lib/malloc/malloc.c -{shell,subst}.c - - fix a few strings that were not marked as translatable. Fix from - Benno Schulenberg - -lib/readline/misc.c - - new function, _rl_revert_all_lines(void). Goes through history, - reverting all entries to their initial state by undoing any undo - lists. - -lib/readline/rlprivate.h - - extern declaration for _rl_revert_all_lines - -rldefs.h - - add #undef HAVE_STRCOLL if STRCOLL_BROKEN is defined, prep to move - from config.h.in. Problem reported by Valerly Ushakov - - - 11/25 - ----- -lib/readline/readline.c - - call _rl_revert_all_lines from readline_internal_teardown if the - variable _rl_revert_all_at_newline is non-zero - - declare _rl_revert_all_lines initially 0 - - 11/27 - ----- -doc/{bash.1,bashref.texi} - - make sure to be explicit that `typeset +r' cannot remove the readonly - attribute from a variable - - 11/28 - ----- -lib/sh/zmapfd.c - - new file, implements zmapfd(), which takes a file and returns its - contents in a string - -externs.h - - extern declaration for zmapfd - - 11/29 - ----- -builtins/evalfile.c - - in _evalfile, use zmapfd to read the contents of the file into a - string, rather than using the size reported by stat and reading that - many characters, if the file is not a regular file (for things like - named pipes, stat reports the size as 0) - - 12/3 - ---- -lib/sh/snprintf.c - - make sure number() sets the FL_UNSIGNED flag for %x and %X, so - fmtulong treats them as unsigned numbers. Fixes bug reported by - James Botte - - 12/13 - ----- -lib/readline/util.c - - new function, _rl_ttymsg, for internal warning messages -- does - redisplay after printing message - - new function, _rl_errmsg, for internal warning/error messages -- - does not do redisplay after printing message - -lib/readline/rlprivate.h - - new extern declaration for _rl_ttymsg, _rl_errmsg - -lib/readline/{bind,callback,complete,display,rltty}.c - - use _rl_ttymsg/_rl_errmsg instead of direct writes to stderr - -lib/sh/tmpfile.c - - in get_tmpdir(), make sure that $TMPDIR names a writable directory; - otherwise skip it. This catches names longer than PATH_MAX, but in - case it doesn't test that the length does not exceed PATH_MAX. Fixes - heap overrun bug reported by Eric Blake - - 12/16 - ----- -builtin/{set,declare,shopt,trap,wait,bind,complete,enable,fc,history,read,setattr}.def -doc/{bash.1,bashref.texi} - - improvements and clarifications to the help text associated with - several builtins, in some cases bringing them into line with the - man page text. From Benno Schulenberg - -doc/{bash.1,bashref.texi} - - add `E' and `T' to the synopsis of the set builtin. - From Benno Schulenberg - -builtins/{break,exit,fg_bg,hash,jobs,type,ulimit}.def -builtins/{common,evalfile}.c -{error,expr,jobs,mksyntax,nojobs,shell,subst,version,siglist}.c - - add gettextizing marks to untranslated strings - From Benno Schulenberg - - 12/19 - ----- -builtins/common.c - - change display_signal_list (used by `trap -l' and `kill -l') to use - five columns instead of 4 to display signal names - -builtins/help.def - - use the true terminal width instead of assuming 80 when displaying - help topics, leaving two characters of whitespace between horizontal - descriptions instead of 1 - - change to print in columns with entries sorted down rather than across - (that is, like `ls' rather than `ls -x'). Change inspired by Benno - Schulenberg - -jobs.h - - give values to the JOB_STATE enumerations so they can be used as - bitmasks, too - - 12/22 - ----- -doc/{bash.1,bashref.texi} - - change description of `set' to make it clearer that you can use - `+' to turn off options - - clarify in the description of word splitting that sequences of - IFS whitespace at the beginning or end of the string are ignored - - 12/26 - ----- -doc/bashref.texi - - move `shopt' builtin to its own section; change internal references - from `Bash Builtins' to the new shopt builtin - - new section for builtins that modify shell behavior in `Shell - Builtin Commands'; move set and shopt to new section. Changes - inspired by Benno Schulenberg - -{redir,subst}.c - - add MT_USETMPDIR flag to calls to sh_mktmpfd and sh_mktmpname. Bug - reported by Eric Blake - -{configure,Makefile}.in - - changes so that the pathname for DEBUGGER_START_FILE is substituted - into pathnames.h at make time (allowing more flexibility in setting - `prefix' or `datadir') instead of at configure time. Suggested by - Nick Brown - -shell.c - - declaration for have_devfd; initialized from HAVE_DEV_FD - - declaration for check_jobs_at_exit; initialized to 0 - - declaration for autocd; initialized to 0 - -variables.c - - new dynamic variable, BASHPID, always set from return value from - getpid() (changes even when $$ doesn't change). Idea from Bruce - Korb - -builtins/exit.def - - if check_jobs_at_exit is non-zero, list jobs if there are any stopped - or running background jobs; don't exit shell if any running jobs - -execute_cmd.c - - in execute_simple_command, if the first word of a simple command is - a directory name (after looking for builtins, so `.' isn't caught) - that isn't found in $PATH, and `autocd' is non-zero, prefix a "cd" - to the command words - -builtins/shopt.def - - new `checkjobs' option, changes value of check_jobs_at_exit - - new `autocd' option, changes value of autocd - -pcomplete.c - - add COMP_TYPE, set to rl_completion_type, to list of variables set - by bind_compfunc_variables and unset by unbind_compfunc_variables - -doc/{bash.1,bashref.texi} - - document BASHPID - - document new shopt `checkjobs' option - - document new shopt `autocd' option - - document COMP_TYPE completion variable - - 12/29 - ----- -aclocal.m4 - - in BASH_SYS_SIGLIST, check HAVE_DECL_SYS_SIGLIST instead of the - obsolete and no-longer-supported SYS_SIGLIST_DECLARED - - 12/30 - ----- -lib/readline/vi_mode.c - - add ` (backquote) to the list of vi motion characters - - in rl_vi_delete_to, rl_vi_change_to, and rl_vi_yank_to, don't delete - character under the cursor if the motion command moves the cursor - backward, so add F and T to the commands that don't cause the - mark to be adjusted - - add ` to the characters that don't cause the mark to be adjusted - when used as a motion command, since it's defined to behave that way - - when a motion character that may adjust the mark moves point - backward, don't adjust the mark so the character under the cursor - isn't deleted - -lib/readline/complete.c - - add variable rl_sort_completion_matches; allows application to - inhibit match list sorting - - add variable rl_completion_invoking_key; allows applications to - discover the key that invoked rl_complete or rl_menu_complete - -lib/readline/readline.h - - extern declarations for rl_completion_invoking_key and - rl_sort_completion_matches - -lib/readline/doc/rltech.texi - - documented rl_completion_invoking_key and rl_sort_completion_matches - -pcomplete.c - - export variable COMP_KEY to completion functions; initialized from - rl_completion_invoking_key; unset along with rest of completion - variables - -doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi - - document COMP_KEY - -[many files] - - changes to make variables and function parameters `const' for better - text sharing. Changes originally from Andreas Mohr - - - 1/4/2007 - -------- -lib/intl/Makefile.in - - use cmp before copying libgnuintl.h to libintl.h -- maybe save a few - rebuilds - -lib/builtins/Makefile - - fixes to build LIBINTL_H if necessary, dependency on this for - mkbuiltins.o prevented `make -j 6' from working correctly - - 1/8 - --- -subst.c - - new function, fifos_pending(), returns the count of FIFOs in - fifo_list (process substitution) - -subst.h - - extern declaration for fifos_pending() - -execute_cmd.c - - in execute_simple_command, if CMD_NO_FORK is set before we call - execute_disk_command, make sure there are no FIFOs in the expanded - words (from process substitution) and turn off CMD_NO_FORK if there - are, so they can get unlinked when the command finishes - - 1/10 - ---- -subst.c - - read_comsub now takes a flags parameter and returns appropriate W_* - flags in it - - command_substitute now returns a WORD_DESC *, with the string it used - to return as the `word' and `flags' filled in appropriately - -subst.h - - changed extern declaration for command_substitute - -{pcomplete,subst}.c - - changed callers of command_substitute appropriately - -subst.c - - string_extract_verbatim now takes an additional int flags argument; - changed callers - - 1/11 - ---- -support/texi2html - - fix problem that caused index links to not be generated if the first - index node had a name different than the node name - -doc/bashref.texi - - encapsulated all indexes into a single `Indexes' appendix; works - around bug fixed in texi2html - - 1/12 - ---- -subst.c - - add call to sv_histtimefmt in initialize_variables so HISTTIMEFORMAT - from the environment is honored. Fix from Ark Submedes (heh) - - -lib/readline/histfile.c - - make sure that the first character following the history comment - character at the beginning of a line is a digit before interpreting - it as a timestamp for the previous line - -doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi - - added detail to make it clear exactly how history timestamps are - saved to and read from the history file - -subst.c - - change quote_escapes to add CTLESC before spaces if IFS is null, - just in case we have to split on literal spaces later on (e.g., in - case of unquoted $@). Corresponding changes to dequote_escapes. - Fixes a couple of problems reported by Brett Stahlman - - - 1/14 - ---- -subst.c - - make same change to read_comsub to add CTLESC before ' ' if $IFS is - null, since we will split on literal spaces later - - 1/15 - ---- -array.c - - new function, array_quote_escapes (ARRAY *a), calls quote_escapes - on each element of the array in the same way array_quote calls - quote_string - - call array_quote_escapes if match is not quoted in array_patsub - - array_slice is now used, so remove the #ifdef INCLUDE_UNUSED define - - change structure of array_subrange to call array_slice to create a - new array with the desired subset of elements, then call array_quote - or array_quote_escapes as necessary, like array_patsub. Convert to - a string by calling array_to_string on the sliced-out array - -array.h - - new extern declaration for array_quote_escapes - -subst.c - - since array_patsub now calls quote_escapes as necessary, callers - don't need to call it after array_patsub returns. Fixes first bug - reported by Brett Stahlman - - since array_subrange now calls quote_escapes as necessary, callers - don't need to call it after array_patsub returns. Same fix as - for array_patsub - - 1/31 - ---- -configure.in - - add -DSOLARIS to LOCAL_CFLAGS for solaris x - -config-bot.h - - don't #undef HAVE_GETCWD if GETCWD_BROKEN and SOLARIS are both - defined. Solaris's loopback mount implementation breaks some of the - file system assumptions the replacement getcwd uses. - -builtins/common.c - - if GETCWD_BROKEN is defined, call getcwd with PATH_MAX for the size - argument, so it will allocate a buffer for the current working dir - with that size, instead of one that's `big enough' - -config.h.in - - add #undef PRI_MACROS_BROKEN for AIX 4.3.3 - -pathexp.h - - new flag value for quote_string_for_globbing: QGLOB_REGEXP (quoting - an ERE for matching as a string) - -pathexp.c - - change quote_string_for_globbing to understand QGLOB_REGEXP - -execute_cmd.c - - change execute_cond_node to pass 2 (regexp match), 1 (shell pattern - match), or 0 (no matching) to cond_expand_word - -subst.c - - change cond_expand_word to translate SPECIAL==2 into passing - QGLOB_REGEXP to quote_string_for_globbing - -locale.c - - by default, if all else fails, set shell's idea of locale to "" - instead of its idea of `default_locale' -- the library functions - behave better with that value - - 2/2 - --- -builtins/printf.def - - if PRI_MACROS_BROKEN is defined, #undef PRIdMAX (AIX 4.3.3 broken) - - 2/3 - --- -Makefile.in,{builtins,doc}/Makefile.in,lib/*/Makefile.in - - add assignment for datarootdir as per GNU coding standards - -Makefile.in,builtins/Makefile.in,lib/intl/Makefile.in,po/Makefile.in.in - - use @localedir@ instead of $(datadir)/locale in assignment - - 2/13 - ---- -jobs.c - - fix compact_jobs_list to not return js.j_lastj, since that is in use - and should not be overwritten. Fix from Len Lattanzi - - - 2/16 - ---- -lib/readline/text.c - - change rl_forward_char to allow moving to the end of the line when - using the arrow keys in vi insertion mode, rather than having the - behavior identical between vi command and insertion modes. Change - suggested by Hugh Sasse - - 2/19 - ---- -CWRU/audit-patch - - patch from Steve Grubb of RedHat to make bash - audit root's behavior by logging commands using his audit - framework. Enabled if the shell's name is `aubash'. - - 3/8 - --- -jobs.c - - use WSTATUS (p->status) instead of bare p->status. Fix from - Jim Brown - - 3/9 - --- -lib/readline/{complete,input,isearch,misc,readline,text,vi_mode}.c - - make sure cases where rl_read_key returns -1 (usually due to EIO - because the controlling tty has gone away) are handled correctly. - Prompted by report from Thomas Loeber - - 3/10 - ---- -sig.c - - new function, top_level_cleanup, callable from contexts where some - cleanup needs to be performed before a non-fatal call to - jump_to_top_level - -sig.h - - new extern declaration for top_level_cleanup - -builtins/common.c - - add calls to top_level_cleanup before calls to jump_to_top_level - in a builtin command context (no_args(), get_numeric_arg()). Fixes - bug reported by Ian Watson - -lib/readline/display.c - - in _rl_move_cursor_relative, use `new' when comparing against - the last invisible character in the prompt, since they both denote - buffer indices when in a multibyte locale, whereas `dpos' is a - display position - - 3/13 - ---- -lib/readline/complete.c - - set rl_completion_append_character to the default (' ') in - set_completion_defaults(). Fixes bug reported by David Emerson - - - 3/23 - ---- -builtins/evalfile.c - - make sure read() returns a value >= 0 before using it as an index - into string[] - - use a variable of type `ssize_t' for return value from read() - - only try to read the entire contents of a regular file in one shot - if the file size is less than SSIZE_MAX. These fix problems - reported by hooanon05@yahoo.co.jp. - -include/typemax.h - - define SSIZE_MAX as 32767 if it's not defined - -lib/readline/display.c - - in rl_redisplay() and update_line(), if redrawing the prompt because - it contains invisible characters, make sure we redraw the character - indicating a modified history line and take it into account when - computing _rl_last_c_pos - - in update_line, if deleting characters and redrawing the new text, - make sure we adjust _rl_last_c_pos by wrap_offset in a multibyte - locale if the text we're drawing starts before or at the last - invisible character in the prompt string. Fixes bug reported on - bug-readline by J Pelkey - -parse.y - - when adding at CTLESC character to the current token, do not - escape it with CTLESC if pass_next_character indicates that the - CTLESC was escaped by a backslash. Fixes bug reported by - Paul Bagshaw . - - 3/25 - ---- -lib/readline/text.c - - in rl_forward_char, short-circuit the loop if in emacs mode and - rl_point == rl_end. Fixes problem with multibyte locales - reported by Len Lattanzi - - 3/29 - ---- -command.h - - new flag for subshell_environment: SUBSHELL_PROCSUB, for process - substitution - -subst.c - - add SUBSHELL_PROCSUB to subshell_environment in process_substitute - - 3/30 - ---- -doc/Makefile.in - - fix installation of bash.info to understand that it is in the build - directory, not the source directory - -mailcheck.c - - new function, init_mail_dates, calls remember_mail_dates only if - there are no mailboxes in `mailfiles' - - new function, init_mail_file, initializes a FILEINFO, using the - last time mail was checked as the mtime and atime (or the time the - shell was started if last_time_mail_checked is uninitialized) - - call init_mail_file instead of update_mail_file in add_mail_file, - called from remember_mail_dates (which is supposed to initialize - the list of mail files) - - new convenience functions, alloc_mail_file and dispose_mail_file to - allocate and free FILEINFO structs - -mailcheck.h - - extern declaration for init_mail_dates - -shell.c - - call init_mail_dates instead of remember_mail_dates - - 4/4 - --- -builtins/read.def - - changes to print $PS2 when a line is continued with a backslash in - an interactive shell. This is as POSIX requires - - 4/5 - --- -subst.c - - make sure quote_escapes is only ever called when the word to be - escaped is not marked as double-quoted -- cleaner, and allows us - to make certain assumptions - - 4/6 - --- -subst.c - - change all EX_* defines to begin with SX_ - - new flag, SX_NOCTLESC, obeyed by string_extract_verbatim, tells it - to not obey CTLESC quoting - - change quote_escapes to not quote CTLESC with CTLESC if one of the - chars in $IFS is CTLESC, since the return value from quote_string - will be passed to word splitting and filename generation - - change read_comsub to do the same thing for unquoted command - substitutions - - change list_string to pass SX_NOCTLESC if CTLESC is one of the - chars in $IFS, so it will split on CTLESC instead of using it as a - quote character - - 4/7 - --- -subst.c - - slight change to string_extract_verbatim to allow CTLESC to quote - CTLNUL even if SX_NOCTLESC is set in the flags passed, to protect - the CTLNULs from future calls to remove_quoted_nulls. Only - matters when $IFS contains CTLESC - - changes to cope with $IFS containing CTLNUL in the same way as the - CTLESC changes - -builtins/read.def - - changes to cope with $IFS containing CTLNUL in the same way as the - CTLESC changes - - 4/16 - ---- -lib/sh/strftime.c - - a couple of fixes to the `%z' code - -eval.c - - add an fflush after printing the auto-logout message - - 4/24 - ---- -subst.c - - add call to top_level_cleanup in exp_jump_to_top_level to get things - like unwind-protects and the loop levels cleaned up - -{arrayfunc,expr,variables}.c - - add calls to top_level_cleanup before jump_to_top_level() - - 4/27 - ---- -builtins/complete.def - - make sure the `command' argument to the -C option is printed with - single quotes, since multi-word commands will require them. Bug - reported by martin@snowplow.org - -execute_cmd.c - - change execute_builtin_or_function and execute_subshell_builtin_or_function - to call fflush(stdout) after the builtin or function returns, to - make sure that all output is flushed before the call returns. It - matters on cygwin. Fix suggested by Eric Blake - -redir.c - - in do_redirection_internal, if the file descriptor being acted upon - is the same one used by the stdout stream, call fflush(stdout) to - make sure all output is flushed before changing the underlying fd - out from underneath stdio. Fix suggested by Eric Blake - - - 4/30 - ---- - -builtins/common.c - - new function, sh_chkwrite(int), fflushes stdout and checks for error; - printing an error message and returning a new exit status if there's - an error on stdout. Takes exit status as argument; returns new exit - status (EXECUTION_FAILURE if write error) - -builtins/common.h - - new extern declaration for sh_chkwrite - -builtins/{alias,cd,complete,echo,fc,history,pushd,shopt,times,trap,type,ulimit,umask}.def - - change to use sh_chkwrite to report write errors - -builtins/fc.def - - if an error occurs while writing commands from the history to a file - to be executed, report a write error and return failure without - attempting to execute any commands - - 5/1 - --- -builtins/{bind,declare,set,setattr}.def - - change to use sh_chkwrite to report write errors - - 5/2 - --- -lib/readline/input.c - - fix off-by-one errors in _rl_get_char (pop_index) and rl_stuff_char - (push_index) that caused the 511th character in the buffer to be - discarded. Fixes bug reported by Tom Bjorkholm - - 5/8 - --- -subst.c - - fix parameter_brace_remove_pattern to pass getpattern() newly-allocated - memory. If word expansions (particularly brace expansions) are - required, the expansion code will free the string passed to - expand_word_internal, and we don't want to free unallocated memory - (patstr++) or have duplicate frees (patstr). Fixes bug reported on - Red Hat bugzilla - - 5/9 - --- -lib/readline/signals.c - - fix bug in rl_set_signals that caught SIGINT twice and didn't catch - SIGTERM. Bug reported by Ed Kwan - - 5/18 - ---- -jobs.c - - change compact_jobs_list to return 1 if js.j_lastj == 0 and there is - a job in jobs[0]; compact_jobs_list should never return an index - already occupied - - change reset_job_indices to avoid infinite looping when js.j_firstj - == 0 or js.j_firstj == js.j_jobslots upon function entry. Fixes - bug reported by osicka@post.cz - - 5/20 - ---- - -execute_cmd.c - - new variable, executing_builtin, keeps track of number of "levels" - of builtins being executed; incremented by execute_builtin; saved - and restored by execute_simple_command - -subst.c - - new variable, assigning_in_environment, set and unset around calls - to assign_in_env by the expansion code - -variables.c - - use executing_builtin and assigning_in_environment to decide whether - or not to look into temporary_env when calling find_variable_internal. - Fixes problem reported by Kevin Quinn - - 5/22 - ---- -redir.c - - change add_undo_redirect to differentiate between file descriptors - greater than SHELL_FD_BASE (currently 10) used internally to save - others and then being the targets of user redirection and fds that - are just the target of user redirections. The former need to have - an `exec undo' redirect added to undo it in case exec throws away - redirections; the latter does not. We use the close-on-exec flag - for this: if it's set, we assume that the file descriptor is being - used internally to save another. Fixes problem reported by Ian - Jackson - -shell.c - - new function, init_interactive_script(), does interactive initialization - for a script run with `bash -i script' -- does everything the same - as init_interactive except set `interactive == 1', which causes the - shell to read from the standard input, after calling - init_noninteractive - - call init_interactive_script if a script is run as `bash -i script'. - Fixes problem reported by Joseph Michaud - - 5/24 - ---- -builtins/printf.def - - change vbadd to only call FASTCOPY if the passed buffer length is - > 1 - - if the `-v' option is supplied and `vbuf' is already non-null from a - previous `printf -v var' call, set vbuf[0]=0 explicitly instead of - relying on vbadd to do it -- vbadd may not be called. - - fix PRETURN macro to set vbuf[0] == 0 if vbuf is not freed. These - should fix problem reported by Elmar Stellnberger - -lib/readline/display.c - - fix update_line to deal with the case where col_lendiff > 0 (meaning - the new string takes up more screen real estate than the old) but - lendiff < 0 (meaning that it takes fewer bytes to do so). This can - happen when a multibyte prompt string is replaced with a longer one - containing only single-byte characters (e.g., when doing a reverse - i-search). Fixes gentoo bug reported by Peter Volkov - - -builtins/read.def - - make sure we only print $PS2 if the standard input is a terminal - - new function, read_mbchar, to read a multibyte character so we - can make sure we read entire multibyte chars when `read -n' is - used, rather than bytes. Only called when -n is supplied. - Fixes problem reported by Stanislav Brabec - - 5/25 - ---- -externs.h - - new #defines for third argument to named_function_string: - FUNC_MULTILINE (don't suppress newlines) and FUNC_EXTERNAL (convert - to external display form) - -subst.h - - new extern declaration for remove_quoted_escapes - -subst.c - - remove_quoted_escapes is now global - -print_cmd.c - - in named_function_string, if FUNC_EXTERNAL is in the flags argument, - call remove_quoted_escapes to convert from internal to external form. - Fixes bug reported by Bo Andresen - -variables.c,builtins/{declare,setattr,type}.def - - use FUNC_MULTILINE in calls to named_function_string as appropriate - - add FUNC_EXTERNAL to calls to named_function_string as appropriate - - 5/27 - ---- -{make_cmd,variables}.c - - changes to enable the shell to compile when debugger support is - configured out (function_def hash table and access functions). Fixes - bug reported by Horst Wente - -builtins/help.def - - fix bug in `help' two-column printing to avoid referencing - shell_builtins[num_shell_builtins] - -error.c - - in get_name_for_error, use dollar_vars[0] if the name returned from - looking in $BASH_SOURCE[0] is the empty string as well as if it's - null - - 5/31 - ---- -arrayfunc.c - - change array_value_internal to set *RTYPE to 1 if the reference is - array[*] and 2 if the reference is array[@] - -subst.c - - in parameter_brace_expand_word, set the flags returned by the word - desc to include W_HASQUOTEDNULL if array_value returns QUOTED_NULL - for an array reference like x[*] and the word is quoted. Fixes bug - reported by Christophe Martin - - 6/1 - --- -jobs.c - - several changes to preserve errno if tcgetpgrp/tcgetattr/tcsetattr - fail, for subsequent error messages - - change initialize_job_control to turn off job control if the terminal - pgrp == -1 or is not equal to shell_pgrp (with an error message) - - in initialize_job_control, if the shell has been forced interactive - with -i, make sure stderr is hooked to a tty before using it as - the controlling terminal. If it's not, try to open /dev/tty and - assign it to shell_tty. Fixes problems reported by Derek Fawcus - - - 6/13 - ---- -support/shobj-conf - - changes to support shared object and shared library creation on AIX - 5.x and later versions. From Niklas Edmundsson - - 6/17 - ---- -builtins/mkbuiltins.c - - new array of builtins, posix_builtins, containing builtins listed - as special to the command search order by POSIX - - add POSIX_BUILTIN to the builtin flags if the builtin name is one - that's special to the posix command search order - -builtins.h - - new define, POSIX_BUILTIN, means that a builtin is special to the - posix command search order - - 6/22 - ---- -lib/readline/display.c - - new macro, WRAP_OFFSET, intended to replace W_OFFSET. Takes prompt - strings longer than one physical line with invisible characters on - the second line into account when calculating the number of - invisible characters on the current screen line - - use WRAP_OFFSET where appropriate (update_line, _rl_move_cursor_relative) - - change update_line to deal with adjusting _rl_last_c_pos in a - multibyte environment when the prompt has invisible chars on the - second line and redisplay has output the invisible characters - - change _rl_move_cursor_relative to adjust _rl_last_c_pos in a - multibyte environment when the prompt has invisible chars on the - second line and the redisplay draws the invisible character. Fixes - redisplay bug reported by Andreas Schwab - - - 7/11 - ---- - -lib/readline/rltty.c - - enable flush-output code for systems other than AIX 4.1. Problem - reported by Jan Kratochvil - - 7/12 - ---- -lib/readline/display.c - - set prompt_invis_chars_first_line from the portion of the prompt - following the final newline, instead of from the prefix. Fixes - bug reported on the Ubuntu bug list by dAniel hAhler - - - 7/13 - ---- -variables.c - - use native __QNX__ and __QNXNTO__ cpp defines instead of qnx and - qnx6, respectively. Patch from Sean Boudreau - -lib/sh/getcwd.c - - #undef HAVE_LSTAT on qnx, so it uses stat instead. Patch from - Sean Boudreau - - 7/21 - ---- -builtins/common.c - - change sh_invalidnum to be a little smarter about octal and hex - numbers and change the message appropriately. Bug originally - reported on coreutils list by Jürgen Niinre - - 7/26 - ---- -test.c - - make sure the string passed to test_unop has only a single character - following the `-'. Fixes bug reported by Michael A. Smith - - -parse.y - - better input validation: make sure a word looks like a conditional - unary operator (-X) before calling test_unop - - 7/28 - ---- -trap.c - - in trap_handler, if it's called directly from the signal handler - (e.g., SIGINT sighandler, set by set_sigint_handler), but the - trap disposition has been reset to the default between the - assignment and receipt of the signal, check that the signal is - trapped and issue a warning if the shell was compiled with - debugging enabled. Fixes bug reported by Fergus Henderson - - - 8/1 - --- -lib/readline/{util,histexpand}.c - - fixes for small memory leaks from Michael Snyder - - 8/18 - ---- -Makefile.in - - add dependency on builtins/builtext.h to nojobs.o list. Fixes - `make -j 5' issue reported by Chris MacGregor - -examples/loadables/Makefile.in - - add @LDFLAGS@ to SHOBJ_LDFLAGS assignment -- experimental. Suggested - by Mike Frysinger - -examples/loadables/{basename,cut,dirname,finfo,head,ln,logname,mkdir,pathchk,print,printenv,push,realpath,rmdir,sleep,tee,truefalse,tty,uname,unlink,whoami}.c - - fix up some includes. Fix from Mike Frysinger - - 8/21 - ---- -histexpand.c - - fix another memory leak in history_find_word. Bug report originally - from Michael Snyder ; test case suggested by Jim - Blandy - - 8/26 - ---- -subst.c - - change to do_assignment_internal to make an assignment to a variable - with the `noassign' internal attribute not a variable assignment - error. - - fix do_assignment_internal so assignment to a `noassign' variable - does not cause it to suddenly become visible if it's currently - invisible - - 9/3 - --- -stringlib.c - - change strsub to check whether or not temp is non-null before - trying to null-terminate it. Also make sure temp is allocated - even if the pattern and replacement strings are empty, and set - to a copy of string (like ${foo//}) - Bug report from Timo Lindfors - - 9/10 - ---- -{config.h,Makefile,configure}.in,aclocal.m4 - - new tests for fpurge and __fpurge - -lib/sh/fpurge.c, externs.h - - new file, fpurge(3) implementation with external decl in externs.h - -builtins/common.c - - add call to fpurge(stdout) to sh_chkwrite - -{redir,execute_cmd}.c - - add call to fpurge(stdout) after fflush(stdout) before changing - stdout file descriptor and after a builtin or function executes - - 9/12 - ---- -expr.c - - make sure noeval is set to 0 when a longjmp occurs, since it will - not be reset otherwise, and it can be set to 1 while processing - a {pre,post}-increment or {pre,post}-decrement token - - set noeval to 0 at the beginning of evalexp, since it's never - called recursively - - 9/14 - ---- -config-top.h - - new builder-modifiable define: DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS - Turning it on will cause errors from EPIPE to not be reported by - the normal shell write error message mechanism - -builtins/common.c - - if DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS is defined, don't print an - error message from sh_wrerror if errno == EPIPE. Suggestion from - Petr Sumbera - - 9/19 - ---- -{jobs,nojobs}.c,jobs.h - - add code to retry fork() after EAGAIN, with a progressively longer - sleep between attempts, up to FORKSLEEP_MAX (16) seconds. Suggested - by Martin Koeppe - - 9/21 - ---- -version.c - - change copyright year to 2007 - - 9/25 - ---- -pathexp.c - - change quote_string_for_globbing to add a backslash in front of a - backslash appearing in the pathname string, since the globbing - code will interpret backslashes as quoting characters internally. - Bug reported by on the debian list - (443685) - - 10/8 - ---- -lib/readline/display.c - - in update_line, make sure _rl_last_c_pos is > 0 before setting - cpos_adjusted (or we actually moved the cursor to column 0 in - _rl_move_cursor_relative). Fixes redisplay bug with prompt with - only invisible characters reported by dAniel hAhler - - - 10/10 - ----- -lib/readline/display.c - - in rl_redisplay, when calculating the new physical cursor position - in a multibyte locale (`tx'), do not call rl_backspace if tx ends - up < 0. Rest of fix for bug reported by dAniel hAhler - - - 10/12 - ----- -lib/sh/getcwd.c - - fix memory overwrite problem that's possible if buf is NULL and - passed size is greater than the pathname length. Reported by - Ian Campbell - -builtins/ulimit.def - - change the multiplier for the -c and -f options (`blocks') to 512, - the traditional value (and the one POSIX specifies). Bug reported - by Pete Graner - -braces.c - - pass process substitution through unchanged the same as command - substitution. Prompted by suggestion from Stephane Chazelas - - -lib/readline/input.c - - in rl_unget_char, fix off-by-one error when resetting pop_index if - it's < 0. Bug reported by Uwe Doering - -builtins/type.def - - change exit status of `type' to not successful if any of the - requested commands are not found. Reported by Stephane Chazleas - - -pcomplete.c - - change command_line_to_word_list to use rl_completer_word_break_characters - instead of the shell metacharacters to split words, so programmable - completion does the same thing readline does internally. Reported - by Vasily Tarasov - - 10/16 - ----- -bashline.c - - When completing a command name beginning with a tilde and containing - escaped specical characters, dequote the filename before prefixing - it to the matches, so the escapes are not quoted again. Reported - by neil@s-z.org - - 10/17 - ----- -expr.c - - in readtok(), don't reset lasttp if we've consumed the whitespace - at the end of the expression string. Fixes error message problem - reported by - - 11/1 - ---- -builtins/printf.def - - change asciicode() to return intmax_t; add multibyte character - support instead of assuming ASCII (depending on behavior of system - multibyte support functions). Fixes bug reported by Rich - Felker - - 11/5 - ---- -execute_cmd.c - - if redirections attached to a compound command fail, make sure to - set last_command_exit_value when returning EXECUTION_FAILURE. - Fixes bug reported separately by Andreas Schwab - and Paul Eggert - - 11/9 - ---- -builtins/read.def - - make sure the return value from get_word_from_string is freed if - non-null. Fixes memory leak bug reported by Lars Ellenberg - - - 11/10 - ----- -variables.c - - use getpid() as value of seeded_subshell to avoid problems with - random number generator not getting re-seeded correctly when - subshells are created. Fix from Tomas Janousek - -lib/readline/display.c - - in update_line(), when outputting characters at the end of the line, - e.g., when displaying the prompt string, adjust _rl_last_c_pos by - wrap_offset if the text we're drawing begins before the last - invisible character in the line. Similar to fix from 5/24. Fixes - bug reported by Miroslav Lichvar - - 11/14 - ----- -subst.c - - fix $[ expansion case to deal with extract_arithmetic_subst - returning NULL (if the `]' is missing) and return the construct - unchanged in that case. Fixes tab completion bug reported by - Heikki Hokkanen (debian bug 451263) - -lib/readline/mbutil.c - - fix _rl_find_next_mbchar_internal to deal with invalid multibyte - character sequences when finding non-zero-length chars. Fixes - bug reported by Morita Sho - - 11/15 - ----- -variables.c - - add new function `seedrand' to seed the bash random number - generator from more random data. Suggestion from Steve Grubb - - - replace the rng in brand() with a slightly better one from FreeBSD - (filtered through Mac OS X 10.5). Replacement suggested by - Steve Grubb - - 11/21 - ----- -configure.in - - darwin 9 also requires linking against libreadline.a and - libhistory.a because of Apple's questionable decision to ship a - libreadline "replacement" that doesn't provide all functions - -doc/{bash.1,bashref.texi} - - slight change to the text describing the effect of set -e when - in a || or && list - - 12/5 - ---- -jobs.c - - fix raw_job_exit_status to correct mixing of int/WAIT values (need - to return a WAIT) - - arrange so that children run as part of command substitutions also - set the SIGINT handler to wait_sigint_handler, since they effectively - don't do job control - - in wait_for, if a child run as part of a command substitution exits - due to SIGINT, resend the SIGINT to the waiting shell with kill(2). - This makes sure the exit status propagates - -doc/{bash.1,bashref.texi} - - tighten up the language describing when bash tries to see if its - stdin is a socket, so it can run the startup files. Suggested by - Vincent Lefevre - -eval.c - - in the DISCARD case of a longjmp to top_level, make sure - last_command_exit_value is set to EXECUTION_FAILURE if it's 0, - but leave existing non-zero values alone - -subst.c - - in command_substitute, don't reset pipeline_pgrp in the child - process -- this means that second and subsequent children spawned by - this comsub shell get put into the wrong process group, not the - shell's. Fix for bug reported by Ingo Molnar - - 12/6 - ---- -support/shobj-conf - - make sure the cases for darwin8.x (Mac OS X 10.4.x) are extended to - darwin9.x (Mac OS X 10.5.x). Fixes problem originally reported - against readline-5.2 by schneecrash@gmail.com - - 12/8 - ---- -subst.c - - make sure to add the results of (successful) tilde expansion as a - quoted string, to inhibit pathname expansion and word splitting. - From recent Austin Group interpretation. - -include/shtty.h, lib/sh/shtty.c - - add ttfd_onechar, ttfd_noecho, ttfd_eightbit, ttfd_nocanon, and - ttfd_cbreak to set tty attributes associated with a particular - file descriptor (which is presumed to point to a terminal). Support - for fix for bug reported by b_bashbug@thebellsplace.com - -lib/readline/display.c - - make sure we only use rl_invis_chars_first_line when the number of - physical characters exceeds the screen width, since that's the - only time expand_prompt sets it to a valid value - - 12/12 - ----- -builtins/set.def - - change set_minus_o_option to return EX_USAGE if an invalid option - name is supplied. All callers can handle it. - - change set_builtin to return what set_minus_o_option returns if it's - not EXECUTION_SUCCESS. This allows EX_USAGE errors to abort a - shell running in posix mode - - 12/14 - ----- -builtins/read.def - - generalize the calls to the tty attribute functions to maintain a - local copy of the terminal attributes and use the fd supplied as - the argument to the -u option (default 0). Fix for bug reported - by b_bashbug@thebellsplace.com - -doc/bashref.texi, lib/readline/doc/{history,rlman,rluser,rluserman}.texi - - Slight changes to conform to the latest FSF documentation standards. - Patch from Karl Berry - - 12/20 - ----- -execute_cmd.c - - after calling clear_unwind_protect_list, make sure we reset - parse_and_execute_level to 0, since there's nothing left to - restore it if top_level_cleanup tests it. Fixes bug reported - by Len Lattanzi - - 12/31 - ----- -lib/sh/getcwd.c - - new function, _path_checkino, checks whether the inode corresponding - to the path constructed from the first two arguments is the same as - the inode number passed as the third argument - - if BROKEN_DIRENT_D_INO is defined, meaning the d_ino/d_fileno - member of struct dirent doesn't contain valid values, use - _path_checkino instead of directly comparing against d_fileno. - Fixes Interix problem reported by Michael Haubenwallner - - - 1/7/2008 - -------- -array.c - - fix array_subrange to separate elements in returned string with - first char of $IFS if QUOTED is non-zero, since this indicates - the caller used ${array[@]:foo}. Fixes bug reported by Lea - Wiemann - - 1/8 - --- -subst.c - - new function returning a string containing the first character of - $IFS: char *ifs_firstchar(int *) - -subst.h - - extern declaration for ifs_firstchar() - -array.c - - call ifs_firstchar() to get first character of $IFS when needed - (array_subrange() and array_patsub()) - - 1/11 - ---- -lib/readline/display.c - - use sentinel variable set at end of init_line_structures to decide - whether to call it from rl_redisplay, since early SIGWINCH on - Mac OS X that hits during this function can cause _rl_wrapped_line - to be referenced before initialization. Fix for bug reported by - Len Lattanzi - -subst.[ch] - - skip_to_delim is now compiled into the shell all the time, not just - when readline is linked in - -subst.c - - use skip_to_delim to find the `/' denoting the end of a pattern - in pattern substitution, since it knows more shell syntax than - quoted_strchr and understands multibyte characters. Fixes bug - reported by Dmitry V Golovashkin - - 1/15 - ---- -subst.c - - add `flags' argument to skip_to_delim telling it whether or not to - set no_longjmp_on_fatal_error; set this flag when calling from the - readline completion code - -subst.h - - update extern declaration for skip_to_delim - - 1/17 - ---- -subst.c - - expand_prompt_string takes a third argument: the initial flags for - the WORD - -subst.h - - change extern declaration for expand_prompt_string to add third arg - -bashline.c - - pass W_NOCOMSUB as third argment to expand_prompt_string when - calling from bash_directory_completion_hook, since we don't want - to do command substitution from the completion code - -parse.y - - change call to expand_prompt_string - - 1/18 - ---- -doc/Makefile.in - - added an `install_builtins' rule to install the builtins.1 man page, - preprocessing it with sed to force `.so man1/bash.1', which some - versions of man require. Suggestion from Peter Breitenlohner - - - new target `install_everything' that will install normal documentation - and builtins man page - - changed uninstall target to remove bash_builtins page from man - directory - -lib/readline/vi_mode.c - - new function, rl_vi_insert_mode, which calls rl_vi_start_inserting - to make sure the value of `last command to repeat' is set correctly. - Fix from Thomas Janousek - - add support for redoing inserts made with the `I' command. Fix - from Thomas Janousek - - add support for redoing inserts made with the `A' command - -lib/readline/readline.h - - new extern declaration for rl_vi_insert_mode - -lib/readline/{misc,readline,vi_mode,vi_keymap}.c - - change calls to rl_vi_insertion_mode to rl_vi_insert_mode - - 1/19 - ---- -builtins/read.def - - change timeout behavior when not reading from a tty device to save - any partial input in the variable list, but still return failure. - This also causes variables specified as arguments to read to be - set to null when there is no input available. Fix inspired by - Brian Craft - - 1/21 - ---- -builtins/fc.def - - change computation of last_hist to use remember_on_history instead - of a hard-coded `1'. This keeps fc -l -1 in PROMPT_COMMAND from - looking too far back - - 1/25 - ---- -lib/readline/complete.c - - fix fnwidth to use string[pos] instead of *string when testing the - current character for a control character or rubout - - 2/2 - --- -general.c - - change posix_initialize to turn off source/. searching $PWD when - the file sourced is not found in $PATH. Fixes bug reported by - Paolo Bonzini and Eric Blake - - 2/9 - --- -builtins/*.def - - changes to text and formatting suggested by Jan Schampera - - - 2/16 - ---- -bashline.c - - change command_word_completion_function to use the word completion - found by readline, which matters only when ignoring case is on - and the completion found in the file system differs in case from - the text the user typed (this is what readline does for normal - filename completion). Fixes issue reported by Jian Wang - . - - 2/18 - ---- -builtins/source.def - - if the filename passed as an argument contains a `/', don't search - $PATH. Not sure why it wasn't like this before - - 2/21 - ---- -lib/readline/terminal.c - - change rl_crlf so that the MINT system on ATARI systems adds a - carriage return before the \n - - 2/22 - ---- -doc/{bash.1,bashref.texi} - - added text to the EXIT STATUS section noting that exit statuses - fall between 0 and 255, inclusive - -support/mkversion.sh - - output a #define for DEFAULT_COMPAT_LEVEL (${major}${minor}; e.g. 32) - to version.h - -version.c - - int variable, shell_compatibility_level, set to DEFAULT_COMPAT_LEVEL - by default - -builtins/shopt.def - - new shopt variable, compat31, sets shell_compatibility_level to 31 - (or back to default if unset) - -execute_cmd.c - - in execute_cond_node, restore bash-3.1 behavior of quoted rhs of - regexp matches if shell_compatibility_level == 31 - - 2/28 - ---- -lib/readline/rltty.c - - set readline_echoing_p = 1 if tcgetattr fails and sets errno to - EINVAL, as Linux does when the fd is a pipe. Reported by Mike - Frysinger - - 3/6 - --- -{MANIFEST,Makefile.in},lib/sh/{casemod,uconvert,ufuncs}.c - - new library sources from bash-4.0-devel tree - -lib/sh/spell.c - - moved cdspell() here from builtins/cd.def, renamed dirspell() - -externs.h - - new declarations for extern functions from new library files - - new extern declaration for lib/sh/spell.c:dirspell() - -builtins/cd.def - - call extern library function dirspell(); remove static cdspell() - -builtins/read.def - - when read times out, make sure input_string is null-terminated before - assigning any partial input read to the named variables - - 3/10 - ---- -lib/glob/xmbsrtowcs.c - - cut the number of memory allocations in xdupmbstowcs by not keeping - track of the indices if the caller hasn't asked for it - - 3/17 - ---- -builtins/fc.def - - make sure the adjustment to i in fc_gethnum uses the same formula - fc_builtin uses to calculate last_hist - - make sure that every time fc_gethnum is called, the fc command last - in the history list has not yet been deleted, since fc_gethnum - assumes that it has not. Fix from John Haxby - -lib/readline/complete.c - - new private library function, _rl_reset_completion_state(), used to - reset any completion state internal to the library when a signal - is received - - call _rl_reset_completion_state() before returning from - rl_complete_internal - -lib/readline/rlprivate.h - - new extern declaration for _rl_reset_completion_state - -lib/readline/signals.c - - call _rl_reset_completion_state from rl_signal_handler on SIGINT. - This fixes one of the problems identified by Mika Fischer - - -pcomplete.c - - programmable_completions now saves pointer to the compspec it's - working with in new global variable CURCS - - new function, pcomp_set_readline_variables, that sets or unsets - readline variables based on a passed flags value (COPT_FILENAMES, - etc.) - - new function, pcomp_set_compspec_options, to set or unset bits in - the options word of a passed compspec (default CURCS) - - only call bash_dequote_filename (via rl_filename_dequoting_function) - from pcomp_filename_completion_function if the readline state - word indicates word completion is in progress - -pcomplete.h - - new extern declaration for curcs - - new extern declaration for pcomp_set_readline_variables - - new extern declaration for pcomp_set_compspec_options - -bashline.c - - fix bash_dequote_filename to implement shell quoting conventions: - 1. Inhibit backslash stripping within single quotes - 2. Inhibit backslash stripping within double quotes only if - the following character is one of the special ones - - call pcomp_set_readline_variables from attempt_shell_completion - instead of doing the equivalent inline - - 3/18 - ---- -bracecomp.c - - make sure we sort array of matches in byte order (using strcmp). so - the brace calculations work correctly even when the locale orders - characters like aAbBcC...zZ. Fixes bug reported by Torsten Nahm - - - 3/20 - ---- -lib/readline/{rltty,signals}.c - - move block_sigint and release_sigint from rltty.c to signals.c; add - _rl_ prefix to make them public to the library; change callers. - From Jan Kratochvil - -lib/readline/rlprivate.h - - new extern declarations for _rl_block_sigint and _rl_release_sigint - -lib/readline/display.c - - add calls to _rl_block_sigint and _rl_release_sigint to rl_redisplay, - since it maniupluates global data structures. Fix from Jan - Kratochvil - -builtins/printf.def - - change calls to asprintf and manually adding to vbuf to use calls - to vsnprintf against vbuf directly -- if the number of characters - to be written overflows the buffer, realloc the buffer and use - vsnprintf again. This should reduce the memory used by printf. - Idea from Yuya Katayama - -lib/readline/doc/rltech.texi - - documented rest of readline's state flags, including RL_STATE_CALLBACK - - documented rl_save_state and rl_restore_state - - 3/27 - ---- -lib/readline/{rlprivate.h,{display,readline,rltty,terminal,text}.c} - - rename readline_echoing_p to _rl_echoing_p for namespace consistency - -lib/readline/{rlprivate.h,{callback,readline,util}.c} - - rename readline_top_level to _rl_top_level for namespace consistency - -builtins/ulimit.def - - new -b (socket buffer size) and -T (number of threads) options - -array.c - - fix bug in calculation of the array element assignment string length: - use length of `is' instead of `indstr'. Reported as ubuntu bug - #202885 by John McCabe-Dansted - -builtins/setattr.def - - new function, show_all_var_attributes, displays attributes and - values for all shell variables (or shell functions) in a reusable - format - -builtins/common.h - - new extern declaration for show_all_var_attributes - -builtins/declare.def - - change `declare -p' to print out all variable attributes and values, - and `declare -fp' to print out all function attributes and - definitions. Inspired by request from John Love-Jensen - - -doc/{bash.1,bashref.texi} - - document new -b and -T options to ulimit - - tighten up language describing AND and OR lists - - add description of new behavior of `declare -p' - - 3/28 - ---- -pcomplete.c - - rename curcs -> pcomp_curcs - - new global completion variable, pcomp_curcmd, the current command - name being completed - -builtins/complete.def - - new builtin, compopt, allows completion options for command names - supplied as arguments or the current completion being executed to - be modified. Suggested by Mika Fischer - - 3/30 - ---- -doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi - - document new compopt builtin - - 4/5 - --- -support/shobj-conf - - change solaris10 stanza to use -fPIC to fix 64-bit sparc_v9/solaris10 - compilations. Fix from Fabian Groffen - -builtins/read.def - - added `-i text' option, inserts `text' into line if using readline. - Suggested by many, used some ideas from Kevin Pulo - -doc/{bash.1,bashref.texi} - - document new `-i text' option to read builtin - - 4/7 - --- -lib/readline/bind.c - - new settable variable, `history-size', sets the max number of - entries in the history list - -doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} - - document new `history-size' settable readline variable - - 4/8 - --- -builtins/complete.def - - change build_actions calling sequence to take a struct with `other' - (non-action) flag arguments (-p, -r) - - add support for `-E' option to build_actions and complete builtin -- - modifies or displays (internal) `_EmptycmD_' completion spec - -bashline.c - - change attempt_shell_completion to try programmable completion on an - `empty' command line and return the results - -doc/bash.1,lib/readline/doc/rluser.texi - - documented new `-E' option to `complete' - - 4/9 - --- -bashhist.c - - new variable, `enable_history_list', used to reflect setting of - `-o history' option - - change bash_history_{enable,disable,reinit} to set enable_history_list - as well as remember_on_history - -builtins/set.def - - use `enable_history_list' instead of `remember_on_history' to keep - value of `-o history' option - -builtins/evalstring.c - - instead of unwind-protecting remember_on_history, use a function to - restore it to the value of `enable_history_list' after - parse_and_execute runs the commands in the string. This allows - history to be turned off in a startup file, for instance. Problem - reported by Dan Jacobson - - 4/11 - ---- -bashline.c - - limited support for completing command words with globbing characters - (only a single match completed on TAB, absolute or relative - pathnames supported, no $PATH searching, some support for displaying - possible matches, can be used with menu completion). - Suggested by Harald Koenig - -print_cmd.c - - change redirection printing to output r_err_and_out as `&>file', - since the man page says that's the preferred form - - 4/12 - ---- -builtins/*.def - - change long doc so the first line is a short description - - add `Exit Status:' section to each longdoc describing exit values - -builtins/help.def - - new `-d' option to print short description of each utility - - new `-m' option to print description of each builtin in a - pseudo-manpage format (inspired by ksh93) - -doc/{bash.1,bashref.texi} - - document new `-d' and `-m' options to `help' - -builtins/mapfile.def - - new builtin, `mapfile', imported from bash-4.0-devel branch - -tests/{mapfile.{data,right,tests},run-mapfile} - - tests for `mapfile' builtin - -doc/{bash.1,bashref.texi} - - added description of `mapfile' builtin - -MANIFEST,Makefile.in,builtins/Makefile.in - - added entries for mapfile source files - -arrayfunc.[ch] - - new function, bind_array_element, to support mapfile builtin - - 4/20 - ---- -expr.c - - fix operator precendence in expcond(): term after the `:' is - a conditional-expression, not a logical-OR-expression (using C - terminology). Bug reported by - - 4/22 - ---- -bashintl.h - - new P_ define for using ngettext to decide on plural forms - (currently unused) - - 4/25 - ---- -execute_cmd.c - - in execute_disk_command, if the command is not found, search for - a shell function named `command_not_found_handle' and call it - with the words in the command as arguments. Inspired by Debian - feature. - -doc/{bash.1,bashref.texi} - - document new command_not_found_handle behavior in COMMAND EXECUTION - section - -configure.in - - change default version to bash-4.0-devel - - 4/28 - ---- -variables.c - - change push_func_var and push_exported_var to call - stupidly_hack_special_variables if the temporary variable is going - to be disposed. This undoes any internal changes caused by a local - variable assignment in the environment or in a shell function. Bug - reported by Morita Sho in - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478096 - - 5/3 - --- -builtins/fc.def - - fixed a problem caused by change of 1/21 to use remember_on_history, - since it's turned off by parse_and_execute(), but can cause the - last command in history to be deleted and leave last_hist pointing - beyond the end of the history list. edit_and_execute_command can - do this. - -bashline.c - - new define, RL_BOOLEAN_VAR_VALUE, to take a readline boolean variable - and get its value as 0 or 1 (consider making readline global) - - put tty back into canonical mode before calling parse_and_execute in - edit_and_execute_command and then back into raw mode after it - returns. Fixes problem identified by . - - 5/4 - --- -lib/glob/glob.c - - code to support `globstar' option: GX_GLOBSTAR and two internal - flags. Changes to skipname, glob_vector, mbskipname, glob_filename. - New function finddirs(). - -lib/glob/glob.h - - new defines to support globstar code - -builtins/shopt.def - - new shell option, `globstar', enables special handling of `**' in - glob patterns -- matches all directories recursively - -pathexp.h - - extern declaration for glob_star - -pathexp.c - - break inline code out of quote_globbing_chars into a separate - function to decide whether a character is a globbing char: - glob_char_p - - change shell_glob_filename to call glob_filename with the - GX_GLOBSTAR flag if glob_star is set - -doc/{bash.1,bashref.texi} - - document new `globstar' shell option - -arrayfunc.c - - new function, broken out of quote_array_assignment_chars: - quote_assign; extended from old code to make sure that globbing - chars and chars in $IFS are quoted when displaying assignment - statements, especially in compound array assignments - - 5/5 - --- -bashline.c - - new variable, dircomplete_spelling, controls spelling correction - of directory names when doing filename completion - - change bash_directory_completion_hook to incorporate spelling - correction if initial canonicalization of directory name fails - -builtins/shopt.def - - new shell option, `dirspell', enables and disables spelling - correction of directory names during word completion - -builtins/read.def - - support for fractional timeout values (ival.uval); uses uconvert - and falarm/setitimer - -config.h.in - - new `HAVE_SETITIMER' define - -configure.in - - look for setitimer(2), define HAVE_SETITIMER if found - -doc/{bash.1,bashref.texi} - - document new `dirspell' shopt option - - document new fractional values to `read -t timeout' - - 5/6 - --- -assoc.[ch] - - new files, basic support for associative array implementation - -general.h - - new extern declarations for sh_openpipe, sh_closepipe, trim_pathname - -general.c - - new functions: sh_openpipe to create a pipe and move the file - descriptors to a high range; sh_closepipe, to close pipe fds and - clean up, and trim_pathname, to replace portions of a pathname - with `...' (for prompting) - -jobs.c - - don't set last_asynchronous_pid in child shell (messes up $!, among - other things) - -parse.y,parser.h - - moved definitions of parser flags to parser.h - -array.c - - imported array_modcase (case-changing operations on arrays) from - 4.0-devel branch - -array.h - - new extern declaration for array_modcase - -lib/readline/complete.c - - new variable, rl_menu_completion_entry_function, generator for - rl_menu_complete - - new menu completion `browsing' implementation, with several - improvements over the old code. Inspired by Sami Pietila - - -lib/readline/readline.h - - extern declaration for rl_menu_completion_entry_function - - 5/8 - --- -lib/readline/complete.c - - add support for a third argument to fnprint and print_filename, - which supports replacing a specified portion of the pathnames - printed when displaying possible completions with a `...' (or - `___', if the prefix would be confused with a portion of the - filename) - - new variable, _rl_completion_prefix_display_length, sets the - number of characters in a common prefix to be replaced with an - ellipsis when displaying possible completions - - add support to _rl_display_match_list to find the length of the - common prefix of all items being displayed, and passing that - value to print_filename for possible replacement with an ellipsis - if that length is longer than _rl_completion_prefix_display_length - -lib/readline/bind.c - - add support for retrieving value of history-size variable to - _rl_get_string_variable_value - - new bindable variable, completion-prefix-display-length. When - displaying possible completions, matches with a common prefix - longer than this value have the common prefix replaced with an - ellipsis - - support for retrieving value of completion-prefix-display-length - variable to _rl_get_string_variable_value - - new bindable variable, revert-all-at-newline: if enabled, causes - all changes in history lines to be undone before readline returns - after processing a newline - -doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} - - document new `completion-prefix-display-length' variable - - document new `revert-all-at-newline' variable - -execute_cmd.c - - change execute_builtin to not inherit the `-e' flag into commands - executed by the `command' or `source/.' builtins if we are supposed - to be ignoring the return value. This is like `eval'. Fixes bug - reported by Hiroshi Fujishima - - 5/10 - ---- -variables.c - - when reading the initial environment, don't create variables with - names that are not valid shell identifiers. Fixes bug reported by - Stephane Chazleas - - 5/13 - ---- -subst.c - - fix string_quote_removal to gracefully handle the case where a - backslash is the final character in the string (leaves the backslash - in place). Fixes bug reported by Ian Robertson - - - 5/16 - ---- -support/checkbashisms - - Perl script that purports to check for bash-specific features in a - shell script. Lifted from Debian via ubuntu - - 5/20 - ---- -lib/readline/display.c - - in update_line, when deciding whether or not to adjust _rl_last_c_pos - in a multibyte environment after printing the last line of a multiline - prompt with invisible characters on the first and last lines, use - the number of inivisible chars on the first line in the calculation - deciding whether or not we're past the last invisible character and - need to adjust the cursor position. Old code used the number of - invisible chars on the last prompt line. Fixes bug reported by - stuff@slinkp.com. - - in update_line, when fixing _rl_last_c_pos after drawing the first - line of the prompt, use the number of invisible chars on the first - line as the offset, instead of the total number of invisible chars - - use prompt_multibyte_characters, the number of multibyte chars in - the prompt string, to short-circuit some relatively expensive - multibyte text processing in rl_redisplay - - 5/21 - ---- -variables.c - - new function, reinit_special_variables(), a hook for special - vars that need their hook functions called when they're unset as - a result of the shell reinitializing itself to run a script - -shell.c - - shell_reinitialize now calls reinit_special_variables - - shell_reinitialize now calls bashline_reset - -variables.h - - new extern declaration for reinit_special_variables - -bashline.c - - new function, bashline_reset(), called when the shell reinitializes - in shell_reinitialize. Right now, just resets - bash_readline_initialized to 0. - -bashline.h - - new extern declaration for bashline_reset() - - 5/23 - ---- -bashhist.c - - new function, bash_clear_history, clears the history and resets any - associated internal bash state - -bashhist.h - - extern declaration for bash_clear_history - -builtins/history.def - - call bash_clear_history instead of clear_history for `history -c'. - Fixes part of problem reported by Scott McDermott - - - decrement history_lines_this_session in delete_histent, called for - `history -d' - -builtins/history.def,bashhist.[ch] - - move delete_histent() to bashhist.c; rename to bash_delete_histent - - move delete_last_history() to bashhist.c; rename to - bash_delete_last_history() - - 5/25 - ---- -braces.c - - add another parameter to mkseq(), the number of digits to put into - each member of a numeric sequence (width), changes to determine - any zero-padding go into expand_seqterm - - changes to expand_seqterm to allow user-specified increments - -bashline.[ch],shell.c,sig.c - - switched names of bashline_reinitialize and bashline_reset to better - reflect their functions - - when searching $PATH for directories to use for command completion, - make sure to free `current_path' before going out of scope - - new bindable function `dabbrev-expand', which is more or less - menu completion using dynamic history completion as the generator - - changes to bash_execute_unix_command to set variables for the - executed command like programmable completion: READLINE_LINE - (rl_line_buffer) and READLINE_POINT (rl_point) - - change to bash_execute_unix_command to allow the executed command - to change the readline line buffer by modifying the value of - READLINE_LINE and to change rl_point by modifying the value of - READLINE_POINT - -common.h - - new SEVAL_ defines for later parse_string changes from 4.0-devel - branch - -command.h - - new defines for new &>> r_append_err_and_out redirection - -builtins/evalstring.c - - new function, parse_string, parses a command from a passed string - and returns the number of characters consumed. For satisfying - Posix rules when parsing command substitutions, from bash-4.0-devel - branch - - split out common prolog code from parse_string and - parse_and_execute into a separate function called from both - -parse.y - - small changes to add symbols needed for parse_string - - parser change to add `|&' as synonym for `2>&1 |'; translation is - performed at parse time so |& never shows up in output of - print_command, for instance. Picked up from zsh, merged in from - bash-4.0-devel branch - -parse.y,{redir,copy_cmd,dispose_cmd,make_cmd,print_cmd}.c - - implement new &>> r_append_err_and_out (like >>foo 2>&1); merged - in from bash-4.0-devel branch - -doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi - - document new optional increment in brace expansion - - document new zero-padded fixed-width integer brace expansion - - document new `dabbrev-expand' bindable readline command - - document new effects of `bind -x' setting and reading the values of - READLINE_LINE and READLINE_POINT - - document new |& synonym for `2>&1 |' pipeline operator - - 5/26 - ---- -parse.y - recognize new ;& and ;;& case action list terminator tokens and - implement them in the grammar, setting CASEPAT_FALLTHROUGH and - CASEPAT_TESTNEXT flags as appropriate - -print_cmd.c - - print new ;& and ;;& case clause action list terminators as - appropriate - -execute_cmd.c - - implement new case clause action list terminators: - ;& - fall through to actions associated with next pattern list - ;;& - fall through to tests in next pattern list - -doc/{bash.1,bashref.texi} - - document new ;& and ;;& case clause action list terminators - - 5/28 - ---- -jobs.c - - change waitchld so it treats SIGCHLD like SIGINT if `wait' is being - executed, and allows wait to jump out before running any trap set - on SIGCHLD. Fixes debian bug #483016 reported by Miroslav Rudisin - - - run_sigchld_trap is no longer static, so the trap code in trap.c - can call it - - change run_sigchld_trap to call set_impossible_sigchld_trap instead - of just using a call to restore_default_signal - -jobs.h - - new extern declaration for run_sigchld_trap - -trap.c - - fix run_pending_traps to run a SIGCHLD trap if the trap handler isn't - set to IMPOSSIBLE_TRAP_HANDLER - - in trap_handler, don't reset the SIGCHLD trap handler to trap_handler - if MUST_REINSTALL_SIGHANDLERS is defined - - new function, set_impossible_sigchld_handler, sets the trap string - associated with SIGCHLD to IMPOSSIBLE_TRAP_HANDLER; used as a sentinel - by run_sigchld_trap and maybe_set_sigchld_handler - - change maybe_set_sigchld_handler to set the SIGCHLD trap string only - if the current value is IMPOSSIBLE_TRAP_HANDLER. This ensures that - any traps on SIGCHLD set in a SIGCHLD handler will persist. Fixes - debian bug #483016 reported by Miroslav Rudisin - - -trap.h - - new extern declaration for set_impossible_sigchld_trap - - 5/31 - ---- -parse.y - - new function: parse_comsub(), parses $(...) by parsing command - between parens and making sure the next token is `)'. From - the bash-4.0-devel branch - - new function: xparse_dolparen, helper function for parsing - command substitutions in $(...). Called from subst.c to extract - a command substitution during word expansion. From bash-4.0-devel - branch - - new function: rewind_input_stream(). Rewinds bash_input.location.string - back to where it was before the shell parsed a $() command - substitution. From bash-4.0-devel branch - - changes to parse_matched_pair to combine most of the flag variables - (was_dollar, in_comment, and so on) into a local flags word - - 6/2 - --- -parse.y - - call trim_pathname, which retains only the last $PROMPT_DIRTRIM - directories and replaces the intervening characters with `...', - when expanding \w and \W - -doc/{bash.1,bashref.texi} - - document the effect of setting PROMPT_DIRTRIM - - 6/3 - --- -builtins/ulimit.def - - make the multiplier (block size) for -c and -f 512 bytes only if in - Posix mode and 1024 bytes otherwise (as in previous versions). Uses - POSIXBLK and BLOCK_SIZE defines to parameterize size based on value - of posixly_correct - -doc/bashref.texi - - document this addition to posix mode - -builtins/common.c - - change get_numeric_arg to have a calling sequence and return value - more closely mimicking general.c:legal_number(), with the addition - of a flags word - - add extra value for `fatal' argument to get_numeric_arg to force it - to return failure to the caller rather than longjmping - -builtins/common.h - - change prototype declaration for get_numeric_arg - -builtins/{break,shift}.def - - change calls to get_numeric_arg to deal with new semantics and calling - sequence - -builtins/history.def - - display_history now returns an int - - change calling sequence for get_numeric_arg in display_history - - display_history now returns failure to the caller if get_numeric_arg - detects an invalid number, rather than jumping back to the top level - - use value returned by display_history as return status of history - builtin, filtered through sh_chkwrite - - history no longer aborts compound commands on invalid arguments. - fixes problem reported by Chu Li - -{braces,subst}.c - - extract_command_subst now takes a third flags argument; passed flags - are ORd into flags passed to other functions; changed callers - -subst.h - - move SX_* defines here from subst.c so parse.y:xparse_dolparen can - see them and behave appropriately - - extract_command_subst now takes a third flags argument; change - prototype - -subst.c - - change extract_command_subst to call xparse_dolparen when extracting - a $() construct - - change calls to extract_delimited_string to extract_command_subst - as appropriate - - if command_substitute returns a NULL word desc, don't call - dispose_word_desc on it - -parse.y - - change xparse_dolparen to use the SX_* flags now in subst.h - - 6/16 - ---- -subst.c - - in quote_list, set W_HASQUOTEDNULL flag in the word if quote_string - turns "" into CTLNUL - - in dequote_list, turn off W_HASQUOTEDNULL flag in the word if - dequote_string turns CTLNUL into "" - - new function, string_list_pos_params, encapsulates everything - needed to turn the positional parameters or an array indexed with - '@' or '*' into a string, including taking care of quoting and - using the first char of $IFS, when used in another expansion like - pattern removal or pattern substitution - - change list_remove_pattern, pos_params, pos_params_pat_subst to - call string_list_pos_params. Fixes problems reported by - Stephane Chazelas - - 6/22 - ---- -variables.h - - include assoc.h for associative arrays - - defines for case-modifying expansions and associative array variables - - sh_var_assign_func_t functions now take an extra char * parameter - - 6/25 - ---- -variables.c - - change declarations and definitions of sh_var_assign_func_t functions - to add the extra char * parameter: null_assign, null_array_assign, - assign_seconds, assign_random, assign_lineno, assign_subshell, - assign_dirstack - - change calls to var->assign_func to add extra char * argument - - broke part of body of dispose_variable out into a new function, - dispose_variable_value, which knows how to free all kinds of shell - variable data - - changes to deal with variables with the internal `nofree' attribute - -arrayfunc.c - - change calls to var->assign_func to add extra char * argument - - bind_array_var_internal now takes an extra `char *key' argument - - additions for associative array implementation; from bash-4.0-devel - tree - -arrayfunc.[ch],subst.c - - expand_compound_array_assignment now takes the variable as the first - argument (SHELL_VAR *); changed function definition and callers - -builtins/set.def - - changes to handle associative arrays in `unset' - -{execute_cmd,command}.h - - definitions for coproc implementation; from bash-4.0-devel tree - -variables.c - - new functions for associative arrays: make_new_assoc_variable, - make_local_assoc_variable - - 6/26 - ---- -variables.c - - more infrastructure for associative arrays; from bash-4.0-devel tree - - infrastructure for handling assignments to variables with - case-modifying attributes; from bash-4.0-devel tree - -config.h.in - - add #defines controlling case-modifying variable attributes and word - expansions - -configure.in - - add enable options for case-modifying variable attributes and word - expansions (--enable-casemod-attributes and --enable-casemod-expansions, - respectively); from bash-4.0-devel tree - -execute_cmd.c - - add code to fix_assignment_words to handle assignment statements to - "assignment builtins" that seem to be associative arrays. Imperfect - -subst.c - - array_remove_pattern now takes a SHELL_VAR * as its first argument - instead of an ARRAY *; from the bash-4.0-devel tree - - changes to array_length_reference for associative arrays; from the - bash-4.0-devel tree - - changes to get_var_and_type for associative arrays; from the - bash-4.0-devel tree - - changes to parameter_brace_substring for associative arrays; from the - bash-4.0-devel tree - - changes to param_expand for associative arrays; from the - bash-4.0-devel tree - -builtins/declare.def - - changes for associative arrays: new `-A' option, changes to make - local and global associative array variables; from the bash-4.0-devel - tree - - 6/27 - ---- -execute_cmd.c - - in execute_command_internal, when short-circuiting execution - because `breaking' or `continuing' is non-zero, preserve the exit - status by returning `last_command_exit_value' instead of an - unconditional EXECUTION_SUCCESS. Fixes bug reported by Roman - Rakus - - 6/28 - ---- -variables.c - - fix get_var_and_type to appropriately handle references like - ${varname[0]}, where `varname' is a scalar variable - -make_cmd.[ch],parse.y - - make_here_document now takes a second argument: the current line - number; changed caller (gather_here_documents) - -builtins/setattr.def - - added support for associative arrays and the `-A' variable attribute - option; from the bash-4.0-devel tree - -subst.c - - change code that transforms `declare -A xxx=(yyy)' to perform the - internal `declare -A xxx' before doing the variable assignment, - because associative arrays have to be declared before being assigned - to as such; uses new function make_internal_declare - - 6/30 - ---- -subst.[ch] - - dequote_escapes is now external; add declaration in subst.h - - remove_quoted_nulls is now external; add declaration in subst.h - -array.[ch] - - new functions for completeness: array_dequote, array_dequote_escapes, - array_remove_quoted_nulls - - array_subrange now calls array_remove_quoted_nulls for "${array[*]}". - Fixes bug reported by Vitor De Araujo - - array_patsub now calls array_remove_quoted_nulls for "${array[*]}" - - array_modcase now calls array_remove_quoted_nulls for "${array[*]}" - - array_patsub now handles the mflags&MATCH_QUOTED case appropriately - (that implies "${array[@]}") - -subst.c - - new functions for case-modifying word expansion suppport: - pos_params_casemod, parameter_brace_casemod; from bash-4.0-devel branch - -assoc.c - - new functions for completeness: assoc_remove_quoted_nulls - - assoc_patsub now calls assoc_remove_quoted_nulls for "${assoc[*]}" - - assoc_modcase now calls assoc_remove_quoted_nulls for "${array[*]}" - - assoc_patsub now handles the mflags&MATCH_QUOTED case appropriately - (that implies "${assoc[@]}") - - 7/1 - --- -assoc.[ch] - - new function, assoc_subrange: takes a hash table, converts it to a - word list, and performs the subrange and indexing on that list - - new functions for completeness: assoc_dequote, assoc_dequote_escapes - -subst.c - - verify_substring_values now takes the variable SHELL_VAR * as its - new first argument; changed callers - - change verify_substring_values to handle associative arrays using the - number of elements as the upper bound - - brought in code to do case-modifying word expansions from - bash-4.0-devel branch, conditional on CASEMOD_EXPANSIONS - -input.c - - if the read(2) in getc_with_restart returns -1/EAGAIN, turn off - non-blocking mode on the file descriptor and try again. Fixes - problem reported by Glynn Clements - - 7/2 - --- -doc/{bash.1,bashref.texi} - - documented new case-modifying word expansions - -make_cmd.c - - change make_here_document to display a warning message including the - start line of a here document if it ends up delimited by EOF. - Addresses issue raised by Richard Neill - -subst.c - - in do_assignment_internal, make sure the `invisible' attribute is - unset before returning success - - 7/3 - --- -config-top.h - - add `CASEMOD_CAPCASE' define to include or exclude the ~[~] word - expansion and the `capcase' variable attribute (declare -c) - -builtins/declare.def - - add support for manipulating the case-modifying attributes (new - declare -clu); from bash-4.0-devel branch - -builtins/setattr.def - - add support for reporting case-modifying attributes (-clu attributes); - from bash-4.0-devel branch - -doc/{bash.1,bashref.texi} - - specify that the read builtin timing out results in a return value - greater than 128 - - document new `-l' and `-u' options to declare/typeset/local. Leave - `-c' undocumented for now - - 7/4 - --- -make_cmd.[ch] - - make_coproc_command: construct a coproc; from bash-4.0-devel tree - -dispose_cmd.c - - dispose coproc command; from bash-4.0-devel tree - -copy_cmd.c - - copy a coproc command; from bash-4.0-devel tree - -print_cmd.c - - print a coproc command; from bash-4.0-devel tree - -shell.c - - dispoe the current coproc on shell exit; from bash-4.0-devel tree - -redir.c - - when closing redirects as part of user redirections, check whether - or not active coprocess fds are being closed and close the coproc - if so; from bash-4.0-devel tree - -config.h.in - - add define for COPROCESS_SUPPORT to include coprocesses - -configure.in - - add support for configuring coprocesses into and out of the build - -jobs.c - - in waitchld, check whether or not a coproc processs has exited; - from the bash-4.0-devel tree - - 7/5 - --- -doc/bashref.texi - - document new --enable-coprocesses option that includes coprocess - support - -execute_cmd.c - - add functions for coprocess support, including execute_coproc and - code to call it when command->type == cm_coproc; from - bash-4.0-devel tree - -lib/sh/fdprintf.c - - new library function fdprintf(int fd, const char *format, ...); - printf to a file descriptor - -{configure,config.h}.in - - support for detecting fdprintf and compiling in replacement - -Makefile.in,lib/sh/Makefile.in - - add rules to include fdprintf.o - -doc/{bash.1,bashref.texi} - - documented coprocesses and `coproc' reserved word - - 7/7 - --- -subst.c - - fix array_length_reference to use MB_STRLEN instead of STRLEN, so - multibyte characters in array values are computed correctly. Fixes - bug reported by Wang Xin - - 7/10 - ---- -jobs.c - - new function, maybe_give_terminal_to (old, new, flags), sets the - terminal pgrp to NEW if and only if it's currently set to OLD - - call maybe_give_terminal_to when the parent sets the terminal pgrp - to the pipeline pgrp in stop_pipeline, so we don't give the - terminal to the new job's pgrp unless it's currently owned by the - shell. Fixes race condition described by Joe Peterson - , where parent bash may change tty pgrp after a - grandchild (interactive bash child of su) has changed it to - something else. The call to maybe_give_terminal_to makes explicit - a previously-implicit assumption - -aclocal.m4 - - remove dependency on writable /tmp by creating directories in - build directory - -shell.c - - make changes to how bash sets no_line_editing and running_under_emacs - to deal with various emacs terminal emulators; use better check - for `eterm', since bash sends $PWD to eterm with control sequences - that confuse other programs. Problem reported by Micah Cowan - - - - 7/12 - ---- -print_cmd.c - - break code that prints here-documents into two functions: - print_heredoc_header, which prints the operator and delimiter, and - print_heredoc_body, which prints the body text and closing delimiter - - change print_redirection to call print_heredoc_{header,body} - - sentinel variable, printing_connection, used when printing a command - of type `connection' (|, &&, ||, etc.) - - change print_redirection_list to save any here documents it finds - while printing a connection and save them in `deferred_heredocs' - - new function, print_deferred_heredocs, called from print_redirection - in the cm_connection case, calls print_heredoc_header for all the - here documents, then prints the operator (|, &&, ||, etc.), then - the here-document body. This preserves syntactic correctness; the - old code printed the control operator after the body of the here - document. Fixes bug reported by - - 7/16 - ---- -locale.c - - in set_locale_var, print a warning message if setlocale() fails any - time it's called -- required some code restructuring - - 7/19 - ---- -support/shobj-conf - - support for mingw32, contributed by Carlo Bramix - - - 7/23 - ---- -execute_cmd.c - - added support (currently unused) to manage a list of coprocs - - 7/25 - ---- -bashline.c - - add extern declarations for literal_history and force_append_history - -builtins/shopt.def - - include "bashhist.h" instead of having extern declarations for the - appropriate history variables - -parser.h - - new parser_state value: PST_HEREDOC, set when reading body of here- - document in parse.y:read_secondary_line - -parse.y - - set PST_HEREDOC bit in parser_state when reading a secondary line - for the body of a here-document - - change read_secondary_line to save lines in the body of a here- - document in the shell history list if remember_on_history is - set. Fixes bug reported by Gene Golub - - 8/4 - --- -configure.in - - changed to 4.0-alpha - -lib/readline/readline.h - - changed constants to reflect readline-6.0 version - - 8/11 - ---- -lib/readline/signals.c - - make sure we don't use SIGWINCH without checking whether or not it's - defined. Fix from Pedro Alves - - 8/12 - ---- - -COPYING - - updated to GPLv3; edits in every file with a copyright or license - declaration to update to gpl3 - -version.c - - update extended version info to latest gnu standard - - 8/17 - ---- -subst.c - - change exp_jump_to_top_level to only call top_level_cleanup if - parse_and_execute_level is 0. If it's not, the longjmp to - parse_and_execute will run the unwind-protect stack. Fixes bug - most recently reported by Roman Rakus - - 8/18 - ---- -support/config.{guess,sub} - - updated to newer versions from autoconf-2.62 distribution - - 8/20 - ---- -subst.c - - fixed parameter_brace_substring to differentiate between indexed and - associative arrays when computing second offset, instead of - assuming indexed array - - 8/21 - ---- -support/xcase.c - - simple program to convert input from lower to uppercase and vice - versa. Now used by coproc test suite, since `tr -u' is not - portable. - - 8/22 - ---- -doc/bash.1 - - fixed description of the bindable edit-and-execute commands to note - they check $VISUAL first, instead of $FCEDIT. Fixed bug reported - by - -[bash-4.0-alpha frozen] - - 8/28 - ---- -[bash-4.0-alpha released] - - 9/1 - --- -builtins/evalstring.c - - fixed typo in parse_string (ostring used uninitialized). Bug - reported by Andreas Schwab - -subst.c - - fix return value of parameter_brace_expand to set the - W_HASQUOTEDNULL flag in the returned WORD_DESC * if the return value - from parameter_brace_remove_pattern is a quoted null string. Fixes - bug reported by Andreas Schwab - - set the W_HASQUOTEDNULL flag in the return value from - parameter_brace_expand if the return value from parameter_brace_patsub - is a quoted null string - - 9/6 - --- -builtins/read.def - - change read -t 0 to return success if there is input available to be - read -- allows scripts to poll for input. Uses input_avail libsh - function - - 9/9 - --- -externs.h - - fix extern fpurge declaration -- use HAVE_DECL_FPURGE instead of - NEED_FPURGE_DECL, since the former is set by `configure' - -jobs.h - - add extern declaration for close_pgrp_pipe - - add a new job state JNONE (-1) to the enum - -jobs.c - - include execute_cmd.h for extern declarations for coproc functions - -subst.c - - include builtins/builtext.h for extern declarations for functions - implementing builtins (e.g., declare_builtin) - -arrayfunc.c - - include "pathexp.h" for extern declaration for glob_char_p - -braces.c - - add extern declaration for `asprintf' - -lib/readline/rlprivate.h - - add extern declarations for _rl_trace, _rl_tropen - -lib/sh/zgetline.c - - add extern declarations for zread, zreadc - -lib/sh/mktime.c - - include "bashansi.h" for string function declarations - -builtins/common.h - - add extern declaration for parse_string - -trap.c - - include jobs.h for extern declaration for run_sigchld_trap - -general.c - - fix call to strtoimax in legal_number; if ep == string when function - returns, the number was not converted, even if errno is not set. - Fix from Paul Jarc - - 9/11 - ---- -[prayers for the victims of 9/11/2001] - -builtins/return.def - - call no_options, as Posix requires. This also has the effect of - disallowing negative return values unless they're prefixed by `--' - - 9/13 - ---- -builtins/bind.def - - add an error message when bind is used without line editing active, - instead of just returning an error status - -variables.c - - make sure make_local_variable never creates visible variables with - a value, whether or not a variable with the same name existed in a - previous context. This is consistent with ksh93. Fix from - - - 9/16 - ---- -execute_cmd.c - - add call to CHECK_TERMSIG in shell_execve after the call to execve - returns. Recommended by Roman Rakus - - add QUIT check in execute_connection after executing first command - in a `&' connection - - 9/22 - ---- -execute_cmd.c - - new semaphore variable, executing_list, incremented every time a - list (command1;command2 or command1 || command2 or command1 && - command2) is executed; used as sentinel for rest of shell - -sig.c,builtins/evalstring.c - - set executing_list to 0 when throwing execution back to top level; - make sure to unwind-protect it in appropriate places - -jobs.c - - if a pipeline is killed by SIGINT while executing a list (when - executing_list is non-zero), make sure the shell acts as if an - interrupt occurred. The behavior is dependent on the shell - compatibility level being > 32 (bash-4.0 and above) - - 9/23 - ---- -redir.c - - don't bother reporting an error with a file descriptor, even if - the errno is EBADF, if the redirection error (e.g., NOCLOBBER) - can't have anything to do with the fd. Fixes bug reported by - "David A. Harding" , debian bug #499633. - - 9/24 - ---- -builtins/declare.def - - make `declare [option] var' (and the `typeset' equivalent) create - invisible variables, instead of assigning the null string to a - visible variable. Fixes bug reported by Bernd Eggink - - 9/25 - ---- -builtins/common.[ch] - - new function, builtin_warning(), like builtin_error but for warning - messages - -builtins/bind.def - - experimental: print a warning, but go on, if line editing not active - when bind is invoked. Suggested by Rocky Bernstein - - - 10/3 - ---- -test.c - - use same_file instead of directly comparing st_dev and st_ino when - comparing files in filecomp(). From mingw32 patches submitted - by Hector Chu - - 10/4 - ---- - -redir.c - - in redirection_error(), use `error' instead of errno when comparing - against EBADF. From mingw32 patches submitted by Hector Chu - - -shell.c - - in unset_bash_input(), reset bash_input.type to st_none after - closing the default buffered fd. From mingw32 patches submitted - by Hector Chu - -builtins/cd.def - - ignore CDPATH when in privileged mode. Suggested by Paul Jarc - - -variables.c - - change sv_globignore to only act if privileged mode is not enabled. - Suggested by Paul Jarc - -doc/bash.1,bashref.texi - - document new treatment of CDPATH and GLOBIGNORE when privileged - mode is enabled - -builtins/read.def - - change prompt printing to occur after terminal is set to no-echo - mode. Based on suggestion from Stephane Chazelas - - -lib/readline/signals.c - - new variables to keep track of special characters corresponding to - SIGINT, SIGQUIT, and SIGTSTP - - new variable to keep track of whether tty is echoing control - characters corresponding to SIGINT, SIGQUIT, and SIGTSTP - - new function, _rl_echo_signal_char(int sig) to display the tty - special char generating SIGINT, SIGQUIT, or SIGTSTP. Based on - idea and code from Joe Peterson - - call rl_echo_signal_char in rl_signal_handler: if the terminal - settings indicate it, readline will echo characters that generate - keyboard signals - -lib/readline/rltty.c - - set _rl_intr_char, _rl_quit_char, and _rl_susp_char to special - characters that generate signals from keyboard - - set _rl_echoctl if ECHOCTL tty flag is set - -lib/readline/rlprivate.h - - extern declarations for _rl_intr_char, _rl_quit_char, and - _rl_susp_char - - extern declaration for _rl_echoctl - -lib/readline/readline.h - - extern declaration for rl_echo_signal_char() - -lib/readline/doc/rltech.texi - - document rl_echo_signal_handler(): available for applications - that install their own signal handlers - - 10/5 - ---- -execute_cmd.c - - fix errexit logic to not cause the shell to exit when a command in - a pipeline fails. Fixes bug reported by Marcin Owsiany - - - 10/14 - ----- -builtins/evalstring.c - - don't short-circuit execution in parse_and_execute if we want to - run an exit trap. Fixes bug reported by Steffen Kiess - - - 10/18 - ----- -parse.y - - fix error production to only call YYACCEPT if the shell is currently - interactive and not in parse_and_execute (so parser errors in - things like eval will correctly set $?). Fixes bug reported by - marco-oweber@gmx.de - -execute_cmd.c - - make sure variable name errors in execute_for_command and non- - identifier function names in execute_intern_function set the - return status to EX_BADUSAGE (2), not EX_USAGE (258) - -parser.h - - new parser state, PST_REPARSE - -parse.y - - turn PST_REPARSE on in parse_string_to_word_list - - in parse_matched_pair, if parsing a single-quoted string and - PST_REPARSE is set, don't requote CTLESC or CTLNUL. Fixes bug with - compound array assignment using $'\x7f' reported by Antonio Macchi - - - 10/23 - ----- -configure.in - - define LOCAL_LDFLAGS as `-z interpose' on Solaris 8, 9, and 10 to - allow the bash malloc to interpose the libc malloc when called by - library functions pre-bound to the libc malloc. Suggested by - Serge Dussud - - 10/26 - ----- -doc/bash.1 - - add single-sentence descriptions to rest of parameter expansions. - Suggested by Ken Irving - - 10/27 - ----- -subst.c - - rearrange code in skip_to_delims to allow quote characters and other - shell expansion characters to be delimiters - - add new flags value for inverting search: skip to the next character - NOT in the set of delimiters passed as an argument - -subst.h - - define for new SD_INVERT flag value for skip_to_delims - - 10/28 - ----- -bashline.c - - new bindable functions: shell-forward-word and shell-backward-word. - Like forward-word and backward-word, but understand shell quoting - and use shell metacharacters and whitespace as delimiters. - Suggested by Andre Majorel - - new bindable functions: shell-kill-word and shell-backward-kill-word. - Like kill-word and backward-kill-word, but understand shell quoting - and use shell metacharacters and whitespace as delimiters. - Suggested by Andre Majorel - -doc/bash.1,lib/readline/doc/rluser.texi - - documented shell-forward-word and shell-backward-word - - documented shell-kill-word and shell-backward-kill-word - - 11/1 - ---- -redir.c - - add extra argument to add_undo_redirect: fdbase. FD used to save - a file descriptor must be > fdbase if fdbase >= SHELL_FD_BASE. A - value of -1 for fdbase means to just use SHELL_FD_BASE. Fixes bug - with 0<&10 reported by Clark Jian Wang - - 11/5 - ---- -unwind_prot.c - - new function: have_unwind_protects(); returns 1 if unwind_protect_list - is not empty - -unwind_prot.h - - extern declaration for have_unwind_protects - -builtins/evalstring.c - - in parse_and_execute_cleanup, make sure that we don't call - run_unwind_frame and expect it to decrement parse_and_execute_level - if there's no unwind_protect_list, since there's a while loop in - throw_to_top_level that calls parse_and_execute_cleanup as long as - parse_and_execute_level is non-zero - - 11/9 - ---- -variables.c - - fix the assign function for COMP_WORDBREAKS to allocate new memory - to store as the variable's value, to avoid freeing memory twice - if the variable is unset after rl_completer_word_break_characters - is freed and reallocated. Fix from Mike Stroyan - - 11/20 - ----- -general.c - - new 'file_exists(fn)' primitive; just calls stat(2) - -general.h - - new extern declaration for file_exists - -bashline.c - - add `~' to rl_filename_quote_characters so make_quoted_replacement - will call bash_quote_filename for words containing `~'. Then - bash_quote_filename can make choices based on that - - change quote_word_break_chars to backslash-quote the tilde in a - filename with a leading tilde that exists in the current directory, - since we want to inhibit tilde expansion in this case - -execute_cmd.c - - call file_isdir from shell_execve instead of stat(2) directly - -bashhist.c - - use file_exists and file_isdir primitives instead of calling stat - - 11/21 - ----- -redir.c - - When undoing saving of non-standard file descriptors (>=3) using - file descriptors >= SHELL_FD_BASE, we set the saving fd to be - close-on-exec and use a flag (RX_SAVCLEXEC) to decide how to set - close-on-exec when the fd is restored. Set flag in add_undo_redirect, - check in do_redirection_internal. Fixes problem reported by Andreas - Schwab - - 11/26 - ----- -subst.c - - fix param_expand to have expansions of $@ and $* exit the shell if - there are no positional parameters and `set -u' is enabled. Fixes - bug reported by Dan Jacobson - - 11/27 - ----- -lib/readline/display.c - - fix update_line to not call space_to_eol if current cursor position - (_rl_last_c_pos) indicates that we're already at end of line. - Partial fix for bug reported by Mike Frysinger - - in update_line, don't call insert_some_chars if that will start - before the last invisible character in the prompt string and not - draw the entire prompt string. More of the partial fix for bug - reported by Mike Frysinger - - fix update_line to adjust _rl_last_c_pos by wrap_offset when adding - characters beginning before the last invisible character in the - prompt. New code is same as previously existed in a different code - path. Rest of fix for bug from Mike Frysinger - - fix assignment of newline breaks (inv_lbreaks) to correctly account - for prompts longer than two screen lines containing invisible - characters. The assumption is that part of the invisible characters - are on the first line (prompt_invis_chars_first_line) and the - remainder are on the last (wrap_offset - prompt_invis_chars_first_line). - Fix is in rl_redisplay. part of fix for bug reported by - "Wesley J. Landaker" in - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=265182 - [TENTATIVE] - - fix _rl_move_cursor_relative to correctly offset `dpos' by `woff' - when there are invisible characters on lines after the second by - using (_rl_screenwidth*_rl_last_v_pos) when seeing whether or not - we just wrote some invisible characters. Rest of fix for bug - reported in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=265182 - [TENTATIVE] - - 12/11 - ----- -sig.c - - reset the execution context before running the exit trap in - termsig_handler - -general.c - - set and unset terminate_immediately like interrupt_immediately in - bash_tilde_expand - -builtins/read.def - - change terminate_immediately to a counter instead of a flag, as - interrupt_immediately is used - -lib/readline/display.c - - slight change to fix from 11/27 to deal with prompts longer than a - screen line where the invisible characters all appear after the - line wrap. Fixes bug reported by Andreas Schwab - -builtins/{echo,printf}.def - - increment terminate_immediately at entry; decrement before returning. - Fix for bug reported by Ralf.Wildenhues@gmx.de - - 12/16 - ----- -subst.c - - fix off-by-one error in /dev/fd version of add_fifo_list; make - sure we add to totfds when it is == fd, not just when fd > totfds. - Fixes bug reported by marciso@gmail.com - -[bash-4.0-beta2 frozen] - - 12/29 - ----- -doc/{bash.1,bashref.texi} - - document more clearly that when not in Posix mode, command - substitution does not inherit the -e option. From bug report from - Freddy Vulto - -{execute_cmd,sig,builtins/evalstring}.c - - sentinel variable to keep track of whether or not we're supposed to - ignore the failure status of a command executed in a command - substitution even if the `-e' option is set: comsub_ignore_return - - increment and decrement comsub_ignore_return in execute_simple_command - before calling expand_words - - in parse_and_execute, if comsub_ignore_return is non-zero and the - SUBSHELL_COMSUB bit is set in subshell_environment, enable the - CMD_IGNORE_RETURN flag in every command executed from the passed - string. Fixes problem reported by Freddy Vulto - - make sure to reset comsub_ignore_return every time we throw to the - top level, like executing_list flag - - 1/2/2009 - -------- -parse.y - - fix to rewind_input_stream to handle case of $(...) command - substitution followed by a quoted literal newline. Report and fix - from Andreas Schwab - - 1/7 - --- - -subst.c - - fix match_wpattern and match_upattern to prefix a `*' to the - pattern even if it starts with a `*(' (if extglob is enabled) - before checking whether or not it can match anywhere in the - string. Fixes bug reported by os@sernet.de. - -[bash-4.0-rc1 frozen] - - 1/9 - --- -locale.c - - since setlocale() doesn't set errno to anything meaningful, - don't include the strerror() result in the error message if - it fails - - make sure the error messages printed when setlocale fails are - localizable - - 1/11 - ---- -lib/readline/histexpand.c - - make sure that every time history_no_expand_chars is tested, we - also call the history_inhibit_expansion_function if it's set. - Fixes bug reported by Yang Zhang - - 1/12 - ---- -trap.c - - make sure to call parse_and_execute with the SEVAL_RESETLINE bit - set in the flags so it will reset the line number when running - the trap commands. Partial fix for bug reported by - peter360@fastmail.us - - 1/14 - ---- -builtins/reserved.def - - document `coproc' so it can be used with `help' builtin. Pointed - out by Pierre Gaston - -lib/sh/casemod.c - - added two new flags: CASE_UPFIRST and CASE_LOWFIRST to casemod - the first character of the passed string and pass the rest - through unchanged. Fixes bug reported by Jan Schampera - - -externs.h - - new defines for CASE_UPFIRST and CASE_LOWFIRST - -subst.c - - use CASE_UPFIRST for ^ and CASE_LOWFIRST for , casemod operators - -builtins/mapfile.def - - call zreset() before calling first zgetline(), to clean out any - remaining data in local buffer used by zreadc. Fixes bug - reported by Pierre Gaston - - 1/15 - ---- -lib/sh/zread.c - - renamed zreadintr to zreadretry -- not perfect, but better - - new functions: zreadintr, which just calls read so it can be - interruptible, and zreadcintr, which is like zreadc but uses - zreadintr to fill the buffer - -lib/sh/zgetline.c - - in zgetline, when zread/zreadc return <= 0, make sure line is - non-null before assigning to line[nr] - -builtins/mapfile.def - - return an error right away if the supplied array variable name - refers to a readonly or noassign array - - set interrupt_immediately so calls to zgetline can be - interrupted. Fixes bug reported by Pierre Gaston - - - if interactive, pass the SEVAL_INTERACT and SEVAL_NOHIST flags - to parse_and_execute when calling callbacks. Fixes bug reported - by Pierre Gaston - - add `readarray' as a synonym for mapfile - -doc/{bash.1,bashref.texi} - - document behavior of mapfile builtin adding index of array element - to be assigned as additional argument to callback string. Reported - by Pierre Gaston - - document readarray as synonym for mapfile - -builtins/common.c - - new error function, sh_ttyerror(set), prints an error message having - to do with setting or getting terminal attributes - -builtins/read.def - - print error message if read fails to set terminal attributes - - 1/16 - ---- -execute_cmd.c - - new function, coproc_reap, calls coproc_dispose if sh_coproc is - marked as COPROC_DEAD - - new function, cpl_reap, disposes coprocs marked as COPROC_DEAD - from coproc list - - change coproc_pidchk to just mark the coproc as dead instead of - calling coproc_dispose, so we don't call unsafe functions from - a signal handler. Fixes bug reported by Andreas Schwab - - -execute_cmd.h - - new extern declaration for coproc_reap - -command.h - - new flags for c_flags member of a struct coproc - -{jobs,nojobs}.c - - add call to coproc_reap in cleanup_dead_jobs, which will do the - right queueing or blocking of SIGCHLD - -trap.c - - modify change from 1/12 to not reset the line number when running - the DEBUG and RETURN traps - - 1/18 - ---- -lib/sh/casemod.c - - change default operations to work on entire passed string instead - of breaking into words at non-alpha-numerics. Use new - CASE_USEWORDS flag to enable by-word behavior. Fixes bug reported - by Jan Schampera - -builtins/printf.def - - in vbprintf, bracket each call to vsnprintf (which uses the args - passed to vbprintf) with SH_VA_START and va_end, so we can - reninitialize the argument list for each call. This is actually - what the C standard requires. Fixes bug that caused printf -b - to `ignore' first % format specifier if it came first in the - string. Reported by David Leverton - -builtins/mapfile.def - - start the line count at 1, since it doesn't get incremented before - (or after) reading the first line, so things like - `mapfile -n 5 -c 1 -C 'echo foo' array < file' work right and call - the callback after the first line is read. Fixes bug reported by - Pierre Gaston - - 1/22 - ---- -lib/readline/complete.c - - set _rl_interrupt_immediately non-zero before reading from the file - system or calling an application-defined completion function - -lib/readline/signals.c - - renamed rl_signal_handler to _rl_handle_signal; new version of - rl_signal_handler that just calls _rl_handle_signal (for now) - - new function _rl_signal_handler that calls _rl_handle_signal without - any checking - -lib/readline/rlprivate.h - - new extern declaration for _rl_signal_handler - - new define, RL_CHECK_SIGNALS, checks whether or not _rl_caught_signal - is set and calls _rl_signal_handler if so - -lib/readline/{bind,input,readline}.c - - add RL_CHECK_SIGNALS in appropriate places - -lib/readline/signals.c - - change rl_signal_handler to set a flag and return rather than - run through the entire signal handling process. If - _rl_interrupt_immediately is set, call the signal handling code - right away instead of setting the flag. Initial fix for crash - bug reported by Roman Rakus - -aclocal.m4 - - new macro, BASH_TYPE_SIG_ATOMIC_T, tests for sig_atomic_t in - , defines as int if not defined - -configure.in - - call BASH_TYPE_SIG_ATOMIC_T - - call AC_C_VOLATILE - -config.h.in - - empty define for sig_atomic_t - - empty define for volatile - - 1/27 - ---- -subst.c - - audit calls to add_character and change to add_ifs_character (which - quotes characters in $IFS). Affects primarily `:', `=', and `~'. - Fixes bug reported by Jan Schampera ; fix - suggested by Stephane Chazelas - - 2/1 - --- -configure.in - - call AC_C_RESTRICT - -config.h.in - - add empty defintion for `restrict' - -pcomplete.c - - use unwind_protects around call to execute_shell_function in - gen_shell_function_matches to prevent data corruption if - throw_to_top_level is called. Bug report and fix from - werner@suse.de. - -execute_cmd.c - - don't clamp CPU usage at 100% in print_formatted_time. Bug reported - by Linda Walsh - - 2/5 - --- -locale.c - - in set_locale_var, set errno to 0 before calling setlocale(), and - print strerror (errno) if setlocale fails and errno ends up non-zero - - 2/6 - --- -configure.in - - backed out of solaris change from 10/23/2008 (adding `-z interpose' - to LDFLAGS) due to solaris updates to fix a linker problem. - Updatted by Serge Dussud - - 2/12 - ---- -execute_cmd.c - - change execute_connection so failure of a pipeline will cause the - shell to exit if -e is on. From discussion on austin-group - mailing list - - change execute_command_internal so failure of a user-specified - subshell will cause the shell to exit if -e is on. From discussion - on austin-group mailing list - - 2/13 - ---- -doc/{bash.1,bashref.texi} - - clarified description of set -e option to accurately reflect current - implementation - - 2/19 - ---- -print_cmd.c - - fix print_deferred_heredocs to not print a space if the separator - string is null - - change print_deferred_heredocs to set `was_heredoc' after printing - something - - change connection printing code to only print the `;' separator - if we haven't just printed a here-document - - change connection printing code to print any deferred here - documents after the rhs of the connection. Fixes bug reported by - Bo Andresen - -[bash-4.0 frozen] - - 2/20 - ---- - -[bash-4.0 released] - - 2/22 - ---- - -parse.y - - fix parse_comsub to not test a character for being a possible shell - metacharacter if LEX_PASSNEXT flag is set. Fixes bug reported by - Mike Frysinger - -pcomplete.c - - add call to save_parser_state (accidentally dropped from patch) to - gen_shell_function_matches. Fixes bug with bash_completion and - file/directory completion reported by phil@Arcturus.universe - -Makefile.in - - fix assignment to LDFLAGS_FOR_BUILD to match those in subdir - Makefiles. Fixes bug reported by Mike Frysinger - -builtins/mapfile.def - - make sure the callback quantum (-c option argument) is > 0. Fixes - bug reported by Stephane Chazleas - - 2/23 - ---- -parse.y - - fix save_token_state and restore_token_state to save and restore - current_token. Fixes bug reported by Bernd Eggink - - -builtins/exit.def - - check jobs[i] before checking whether or not it's running when - the checkjobs option is set and we're looking for running jobs - at exit. Fixes bug reported by Mike Frysinger - - 2/24 - ---- -siglist.c - - include bashintl.h for definition of _. Fixes bug reported by - Greg Wooledge - - 2/25 - ---- -subst.c - - new function, skip_matched_pair. Similar to skip_to_delim and - the extract_XXX family - - move skipsubscript here from arrayfunc.c; re-implement in terms of - skip_matched_pair. Fixes bugs reported by - -arrayfunc.c - - remove skipsubscript; moved to subst.c - -parse.y - - change reset_parser to set current_token to '\n'. Rest of fix for - bug reported by Bernd Eggink ; earlier fix on - 2/23 - - 2/26 - ---- -builtins/declare.def - - when given something like array[x]=y (which sets making_array_special - to 1), don't convert an associative array to an indexed array (line - 493). Part of fix for bug reported by Pierre Gaston - - - if offset == 0, indicating that we do not have a valid assignment, - make sure any `name' containing a `[' is a valid array reference - before trying to go on. Not doing this leads to creating crazy - variables like `name[foo[bar]=bax'. Rest of fix for bug reported - by Pierre Gaston - -assoc.c - - change assoc_to_assign to single-quote the array keys if `quoted' is - non-zero. Makes things easier to read with weird characters in the - key - -parse.y - - fix parse_comsub to not set LEX_HEREDELIM when it sees "<<<". Fixes - bug reported by Mike Frysinger - - 2/27 - ---- -parse.y - - fix report_syntax_error to set last_command_exit_value to - EX_BADUSAGE (2) instead of EX_USAGE (258), since there's nothing - that will translate that to something < 128 before reading the - next command. Partial fix for bug reported by Mike Frysinger - - -sig.c - - fix sigint_sighandler to set last_command_exit_value to sig+128 - before calling throw_to_top_level. Rest of fix for bug reported - by Mike Frysinger - -jobs.c - - if fork() fails, set last_command_exit_value to 126 before calling - throw_to_top_level - -execute_cmd.c - - defer calling unlink_fifo_list in parent branch of - execute_disk_command if we're executing in a shell function - - change execute_function to call unlink_fifo_list before returning - if it's the top-level function - - 3/2 - --- -builtins/read.def - - if read times out, make sure we remove the top element from the - unwind-protect stack (the free of input_string) and run the rest, - to reset the tty and readline and alarm states. Then we jump to - assigning the variables to any partial input. Fixes bug reported - by Christopher F. A. Johnson - - 3/3 - --- -parse.y - - break comment checking code into a common COMMENT_BEGIN define so - we can use it in multiple places in parse_comsub - - in parse_comsub, don't alter the LEX_RESWDOK flag if we read a - `#' and we're checking comments, even though `#' isn't a `shell break' - character. Fixes bug reported by Mike Frysinger - -braces.c - - in expand_seqterm, decrease the total length of the rhs by the length - of any (optional) increment, so we don't end up with unwanted zero - padding because the rhs length is wrong. Fixes bug reported by - Carl Albing - - 3/4 - --- -doc/{bash.1,bashref.texi} - - changes to clean up some of the language describing the effects of - terminal process groups on the ability to read from and write to - the terminal - - 3/5 - --- -support/shobj-conf - - add host_vendor to string tested in switch to handle things like - gentoo/freebsd - - beginning with version 7, FreeBSD no longer has /usr/bin/objformat - or a.out binaries and libraries. It's always ELF. Fix from - Timothy Redaelli - -parse.y - - in parse_comsub, allow comments if we are ready to read a - reserved word (tflags & LEX_RESWDOK), haven't read anything from - one yet (lex_rwlen == 0) and the current character is a '#' - - 3/6 - --- -parse.y - - new lex flag for parse_comsub: LEX_INWORD. Turn it off when - we see a shell break character; turn it on or keep it on when - not a break character. Keep track of word length (reset to 0 - when we turn on LEX_INWORD when it was off). - - don't use COMMENT_BEGIN in parse_comsub any more; test - whether or not LEX_INWORD is set and lex_wlen == 0 in addition - to tests for LEX_RESWDOK and lex_rwlen. Comments are valid - when at the start of a word - - move LEX_PASSNEXT code to the top of parse_comsub, so the rest - of the function doesn't have to check for the flag at different - places - - 3/7 - --- -parse.y - - in parse_comsub, when looking for a reserved word (LEX_RESWDOK - non-zero), and in a case statement, we can see either an esac - or a pattern list. We handle an esac separately. We should - turn off LEX_RESWDOK if we see anything but a newline, since - we'll be reading a pattern list. Other part of fix for bug - reported by Mike Frysinger (rest of fix - on 3/3) - - 3/10 - ---- -{.,lib/readline}/doc/fdl.texi - - updated to FDL version 1.3 - - 3/11 - ---- -parse.y - - when using the |& construct with a simple command preceding it, add - the implicit redirection to the simple command's redirection list, - since the redirections associated with the command struct are never - executed. Fixes bug reported by Matt Zyzik - - 3/14 - ---- -execute_cmd.c - - in execute_case_command, if ;& is used with no following pattern - list, make sure we don't reference a NULL pointer. Bug report and - fix from Clark Jian Wang - -parse.y - - make parser_state global, so other files can use it - - command_word_acceptable now returns non-zero if PST_REDIRLIST bit - set in parser_state, so we accept assignment statements and - perform alias expansion. Fix for bug reported by Vincent - Lefevre (2/24/2009) - -parser.h - - add PST_REDIRLIST flag, notes that parser is currently parsing a - redirection list preceding a simple command - -make_cmd.c - - make_simple_command now turns on PST_REDIRLIST in parser_state when - creating a new simple command - - make_simple_command turns off PST_REDIRLIST in parser_state if it - adds a non-redirection to the command it's building - - clean_simple_command turns off PST_REDIRLIST to make sure it's off - -subst.c - - new flag for param_expand: PF_IGNUNBOUND, means to not exit if the - variable is unbound even if `set -u' is enabled - - change param_expand to not call err_unboundvar if the `pflags' - argument has the PF_IGNUNBOUND bit set - - parameter_brace_expand_word now takes an extra `pflags' argument to - pass down to param_expand; changed callers - - changed call to parameter_brace_expand_word in parameter_brace_expand - to add PF_IGNUNBOUND flag so ${@:-foo} doesn't cause the shell to - exit (but ${@} does) when there are no positional parameters. Fixes - Debian bug 519165 from Dan Jacobson - -parse.y - - add code to parse_comsub to allow here-documents within command - substitutions to be delimited by the closing right paren, with the - usual warning about here documents delimited by EOF on execution. - Fixes regression from bash-3.2 noted in Red Hat bugzilla 485664 by - Ralf Corsepius - - 3/15 - ---- -subst.c - - string_list_dollar_at now checks for Q_PATQUOTE, which getpattern() - uses to denote Q_DOUBLE_QUOTES (?). Fixes a=abcd echo "${a#$*}" - when IFS= and args are `a b' as noted by Stephane Chazleas - - - param_expand now checks for Q_PATQUOTE and treats it identically - to Q_DOUBLE_QUOTES when expanding $* - - expand_word_unsplit now sets W_NOSPLIT in the flags of the word it - passes to expand_word_internal if $IFS is NULL - - expand_word_leave_quoted now sets expand_no_split_dollar_star and - the W_NOSPLIT bit in the word flags before calling - expand_word_internal if $IFS is NULL, just like expand_word_unsplit. - It is now virtually identical to expand_word_unsplit. Rest of fix for - problems reported by Stephane Chazleas - - 3/20 - ---- -trap.c - - in _run_trap_internal, don't pass SEVAL_RESETLINE as flag to - parse_and_execute if running the ERR trap (further modification - of change from 1/12) - -execute_cmd.c - - in execute_simple_command, set line_number to line_number_for_err_trap - before calling run_error_trap. Part of fix for bug reported by - Brian J. Murrell - - change other places calling run_error_trap() to set and use - line_number_for_err_trap - - 3/21 - ---- -builtins/fc.def - - Even though command substitution through parse_and_execute turns - off remember_on_history, command substitution in a shell when - set -o history has been enabled (interactive or not) should use it - in the last_hist calculation as if it were on. Same calculation - in fc_gethnum and fc_builtin. Fixes bug reported by - Ian Kelling - -sig.c - - change termsig_sighandler to terminate immediately if it gets called - twice with the same signal before termsig_handler gets called. This - fixes the `looping on SIGSEGV' phenomenon reported by Linux users. - -parse.y - - in read_secondary_line, don't try to add NULL lines to the history - list. Report and patch from Lubomir Rintel - - 3/22 - ---- -sig.c - - Augment change from 3/21 with explicit check for signals we *don't* - want this to happen for. Patch from Lubomir Rintel - - 3/28 - ---- -array.c - - in array_reference, return NULL immediately if the desired index - is larger than the maximum - - add cache of last array referenced and last array element referenced; - use in array_reference to optimize case of sequential access; - invalidated where necessary in other functions - - array_rshift needs to set max_index to 0 if the array was empty - before shifting in the new element 0 - - array_shift needs to use element_index(a->head->prev) to set the - max_index, not a simple decrement, to deal with sparse arrays - - 4/1 - --- -bashline.c - - in bash_dequote_filename, return right away after copying the - backslash if the last character in the string to be expanded - is a backslash. The old code copied an extra NUL and overwrote - the bounds checking. Fixes bug reported by Shawn Starr - https://bugzilla.redhat.com/show_bug.cgi?id=488649 - - 4/3 - --- -subst.c - - in pat_subst.c, make sure to copy one character from the input - string in the case of a null pattern match, since we substitute - on the null match and then increment past the current character. - Not doing this means that each character of the original string - is replaced because of the null matches. Fixes debian bug - reported bhy Louis-David Mitterrand - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522160 - -lib/sh/winsize.c - - incorporate contents of readline/rlwinsize.h to get all the various - system dependencies right when trying to find TIOCGWINSZ. Fixes - bug reported by Dan Price - - 4/6 - --- -doc/{bash.1,bashref.texi} - - fix description of conditional `>' and `<' to remove statement that - the comparison pays attention to the current locale -- it has - always used strcmp - -lib/glob/glob.c - - fixed a bug in glob_filename that caused glob_dir_to_array to be - called to prepend a (globbed) directory name onto the results from - glob_vector, which, if we were globbing `**', glob_vector has - already done. Effect is to have the directory name(s) on there - twice. Fixes "dir*/**" bug reported by Matt Zyzik - - - 4/8 - --- -doc/{bash.1,bashref.texi} - - fix short syntax summary of for command to reflect full bash - syntax (which is a superset of Posix syntax). Fixes bug reported - by Reuben Thomas - - 4/10 - ---- -{expr,subst}.c - - make sure last_command_exit_value is set to EXECUTION_FAILURE - before calling err_unboundvar, in case set -e is enabled and - the shell exits from there. Fixes bug reported by Freddy - Vulto and Piotr Zielinski - - - 4/11 - ---- -jobs.c - - in restore_pipeline, don't call discard_pipeline with a NULL - argument - -trap.c - - in run_debug_trap, make sure to save and restore the pipeline, - pipeline_pgrp, and state of the pipeline around running the debug - trap, then remove any job created by running the debug trap from - the jobs table when it completes. Fixes for two bugs reported - by lex@upc.ua - - 4/12 - ---- -lib/readline/signals.c - - new functions to block and release SIGWINCH like the SIGINT blocking - and releasing functions - -lib/readline/rlprivate.h - - new extern declarations for _rl_block_sigwinch and _rl_release_sigwinch - -lib/readline/display.c - - block SIGWINCH during redisplay like SIGINT. Should fix bug reported - by Nicolai Lissner - - 4/13 - ---- -lib/readline/readline.h - - new readline state variable: RL_STATE_REDISPLAYING - -lib/readline/display.c - - in rl_redisplay, don't block SIGWINCH during redisplay; just set - the REDISPLAYING state - -lib/readline/terminal.c - - in rl_resize_terminal, don't call rl_redisplay_after_sigwinch() if - we're already in the middle of redisplay (RL_STATE_REDISPLAYING). - Fix for bug reported by Nicolai Lissner - - 4/15 - ---- -parse.y - - fix parse_comsub to add check for \n when seeing whether the current - character can change to a state where a reserved word is legal, - since it is not a shell meta character. Fixes bug reported by - Bernd Eggink . - - 4/17 - ---- -jobs.c - - new functions to save and restore the pgrp_pipe (since there's only - one): save_pgrp_pipe and restore_pgrp_pipe - -trap.c - - run_debug_trap now saves and restores the pgrp_pipe before and - after calling the debug trap - - run_debug_trap now makes sure the terminal is owned by the pipeline - pgrp after the debug trap runs. Rest of fix for bug reported by - Oleksly Melnyk (lex@upc.ca) - - 4/19 - ---- -include/posixselect.h - - new include file, encapsulates select(2) includes and defines for - bash and readline. Inspired by patch from Mike Frysinger - - -lib/sh/input_avail.c - - include "posixselect.h" - -lib/readline/{input,parens}.c - - include "posixselect.h" instead of using inline includes - - use new USEC_TO_TIMEVAL define to make sure that values for timeouts - greater than one second are handled properly - -lib/sh/fpurge.c - - updated implementation, taken from gnulib - - 4/21 - ---- -lib/glob/glob.c - - in finddirs, don't try to free a return value of glob_error_return - from glob_vector. Bug and fix from werner@suse.de - -lib/readline/signals.c - - in rl_echo_signal_char, check that SIGQUIT and SIGTSTP are defined - before trying to use them. Bug report and fix from Volker Grabsch - - - 4/24 - ---- -aclocal.m4 - - add conditional inclusion of to BASH_CHECK_TYPE - -bashtypes.h,lib/sh/strto[iu]max.c - - include if present for any existing declaration of - intmax_t and uintmax_t. Fixes Interix problem reported by - Markus Duft - -lib/sh/strindex.c,externs.h,builtins/common.h - - renamed strindex to strcasestr to agree with other implementations - (e.g., BSD, MacOS X, gnulib); changed callers - -lib/sh/{strindex.c,Makefile.in},Makefile.in - - renamed strindex.c to strcasestr.c - -configure.in - - add strcasestr to call to AC_REPLACE_FUNCS, take advantage of - existing libc implementations - -config.h.in - - add define for HAVE_STRCASESTR - -lib/sh/mbscmp.c - - fix mbscmp to return correct values when the strings do not contain - valid multibyte characters. Ideas from gnulib - -xstrchr.c - - only compare current character against C if mblength == 1 - -{shell,variables}.c - - changed some xstrchr calls back to strchr when the arguments cannot - contain multibyte characters - -lib/sh/{xstrchr.c,Makefile.in},Makefile.in - - renamed xstrchr to mbschr; renamed file to mbschr.c - -aclocal.m4 - - change BASH_CHECK_MULTIBYTE to use AC_REPLACE_FUNCS(mbschr) - -externs.h - - extern declarations for mbscmp and mbschr, conditional on the usual - HAVE_MBSCMP and HAVE_MBSCHR defines - -general.h,{alias,arrayfunc,bashline,general,execute_cmd,subst}.c - - changed calls to xstrchr to mbschr - -doc/bash.1 - - use `pathname expansion' consistently, not `filename expansion' or - `filename generation' - -doc/bashref.texi - - use the phrase `filename expansion' consistently (since this is - what the Gnu people prefer) instead of `pathname expansion' or - `filename generation' - -aclocal.m4,config.h.in - - check for mbscasecmp in BASH_CHECK_MULTIBYTE, define HAVE_MBSCASECMP - if found - -lib/sh/{mbscasecmp.c,Makefile.in} - - new file, case-insensitive multibyte string comparison - -externs.h - - extern declaration for mbscasecmp - - 4/25 - ---- -lib/readline/display.c - - in _rl_move_cursor_relative, don't adjust dpos by woff if it's - already less than woff (don't want it less than 0) - - in _rl_move_cursor_relative, short-circuit right away if the cursor - is at columns 0 and `new' is 0 (doesn't matter if it's a multibyte - locale or not, or whether there are invisible chars in the prompt) - - in _rl_move_cursor_relative, go ahead and adjust dpos if - prompt_physical_chars >= _rl_screenwidth (previous check was just > ) - Fixes bug reported by Andreas Schwab - - 4/28 - ---- -lib/glob/glob.c - - in glob_vector, don't add an empty pathname ("") if we're adding the - currect directory to the dirlist and GX_NULLDIR is set -- we can just - ignore it, since the passed directory name (".") was created by - the caller. Fixes bug reported by Matt Zyzik - - 5/5 - --- -subst.c - - make expansion of $@ and $* when set -u is in effect and there are - no positional parameters be a non-fatal error. This is the - consensus of the austin group, though it is not historical practice. - Message from Geoff Clare <20090505091501.GA10097@squonk.masqnet> of - 5 May 2009 and http://austingroupbugs.net/view.php?id=155 - - - 5/20 - ---- -lib/glob/glob.c - - tentative fix to glob_filename to compensate for glob_vector putting - null pathname at front of result vector when dflags&GX_NULLDIR. - Current fix manually removes empty string element from front of - result vector; a better fix would be to use a flag so glob_vector - doesn't add it at all. Augments patch from 4/28, which appears to - have broken some things. Fixes bug reported by Matt Zyzik - - - 5/22 - ---- - -lib/glob/glob.c - - better fix for glob_filename; supersedes patch of 5/20. Now the - code does not set GX_ADDCURDIR if directory_len == 0 and the - function has not been called recursively ((flags & GX_ALLDIRS) == 0). - Better fix for bug reported by Matt Zyzik - -Makefile.in - - fix build race condition that occurs in some makes caused by - libreadline.a and libhistory.a containing some of the same files - (e.g., xmalloc.o) and conflicting when trying to build both at - the same time. Reported by Mike Frysinger - - 5/25 - ---- -lib/readline/vi_mode.c - - fix _rl_vi_initialize_line so that the loop counter is not - unsigned (it doesn't matter, but it eliminates a compiler warning). - Bug reported by Dave Caroline - - 5/26 - ---- -doc/{bash.1,bashref.texi} - - add text to the description of array variables making it clear - that an array variable is not considered set until a subscript - has been assigned a value - - 5/29 - ---- -lib/readline/text.c - - fix rl_change_case to handle case where mbrtowc doesn't find a - valid multibyte character - -lib/readline/vi_mode.c - - fix _rl_vi_change_mbchar_case to handle case where mbrtowc doesn't - find a valid multibyte character - -lib/sh/casemod.c - - fix sh_modcase to handle case where mbrtowc doesn't find a valid - multibyte character - -lib/readline/mbutil.c - - fix _rl_find_next_mbchar_internal to not call mbrtowc at the end of - the string, since implementations return different values -- just - break the loop immediately - -lib/readline/display.c - - fix rl_redisplay to make same sort of cursor position adjustments - based on multibyte locale and _rl_last_c_pos when performing - horizontal scrolling rather than line wrapping. Probably still - more to do. Fixes bug reported by jim@jim.sh - - 6/5 - --- -doc/{bash.1,bashref.texi} - - added some more explanation of the inheritance of the ERR trap at - the suggestion of Thomas Pospisek - -findcmd.c - - use eaccess(2) if available in file_status to take other file - access mechanisms such as ACLs into account. Patch supplied - by werner@suse.de - - 6/12 - ---- -xmalloc.c - - also calculate lowest brk() value the first time xmalloc/xrealloc - (and their sh_ counterparts) are called - - error messages consolidated into a single function (allocerr/ - sh_allocerr) to avoid string duplication - - 6/16 - ---- -variables.c - - changes to allow variables.c to be compiled if ALIAS is not defined. - Bug and fix from John Gatewood Ham - -lib/sh/getcwd.c - - fix so systems defining BROKEN_DIRENT_D_INO have the necessary - defines. Fix from Jay Krell - -configure.in - - add -D_ALL_SOURCE to interix CFLAGS for struct timezone definition. - Bug and fix from John Gatewood Ham - - 6/29 - ---- -variables.c - - change initialize_shell_variables to add environment variables with - invalid names to the variables hash table, but marking them as - invisible and imported - - new function, export_environment_candidate. Used when creating the - export environment for commands to include variables with invalid - names inherited from the initial environment. Apparently this - behavior is widespread - - change make_var_export_array to use export_environment_candidate - rather than visible_and_exported to test variables for inclusion - in the export environment - - 7/1 - --- -builtins/read.def - - fix a memory leak where the number of fields is not the same as - the number of variables passed to `read'. Bug report from - werner@suse.de - -builtins/command.def - - move section of code that sets PATH from -p option before the - verbose-handling section, so command -v and command -V honor - the PATH set by command -p. Bug report and fix from - ohki@gssm.otsuka.tsukuba.ac.jp - - 7/9 - --- -subst.c - - change brace_expand_word_list to defer brace expansion on compound - array assignments that are arguments to builtins like `declare', - deferring the expansion until the assignment statement is processed. - Fixes inconsistency reported by agriffis@n01se.net - - 7/16 - ---- -bashline.c - - fix bash_execute_unix_command to set rl_point correctly based on - READLINE_POINT. The old method of using save_point will not - work because maybe_make_readline_line will change rl_point. Bug - reported by Henning Bekel - -trap.c - - fix _run_trap_internal and run_pending_traps to save and restore - value of subst_assign_varlist so the dispose_words on it doesn't - leave dangling pointers after the trap handler runs. Fixes bug - reported by Marc Herbert - - 7/22 - ---- -subst.c - - fix off-by-one error in pos_params when computing positional - parameters beginning with index 0. Bug and fix from Isaac Good - - - 7/24 - ---- -lib/readline/display.c - - add code to _rl_move_cursor_relative and _rl_col_width to short- - circuit a few special cases: prompt string and prompt string plus - line contents, both starting from 0. Saves a bunch of calls to - multibyte character functions using already-computed information. - As a side effect, fixes bug reported by Lasse Karkkainen - - -subst.c - - fixed a problem in split_at_delims that could leave *cwp set to -1 - if the line ends in IFS whitespace and SENTINEL is one of those - whitespace characters. Fixes problem with setting COMP_CWORD for - programmable completion reported by Ville Skytta - -bashline.c - - change bash_execute_unix_command to clear the current line (if the - terminal supplies the "ce" attribute) instead of moving to a new - line. Inspired by report from Henning Bekel - -builtins/printf.def - - changes to allow printf -v var to assign to array indices, the way - the read builtin can. Suggested by Christopher F. A. Johnson - - -lib/readline/complete.c - - fix rl_old_menu_complete and rl_menu_complete to appropriately set - and unset RL_STATE_COMPLETING while generating the list of matches. - Fixes debian bug #538013 reported by Jerome Reybert - - - 7/25 - ---- -execute_cmd.c - - change execute_builtin to temporarily turn off and restore the ERR - trap for the eval/source/command builtins in the same way as we - temporarily disable and restore the setting of the -e option. - Fixes bug reported by Henning Garus - - 7/27 - ---- -shell.c - - add fflush(stdout) and fflush(stderr) to exit_shell before closing - any file descriptors at exit time (e.g., coproc pipes) - - 7/30 - ---- -lib/readline/complete.c - - new function rl_backward_menu_complete, just passes negative count - argument to rl_menu_complete - - change rl_menu_complete to act appropriately if rl_last_command is - rl_backward_menu_complete, so we can cycle forward and backward - through the list of completions - -lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 - - document new "menu-complete-backward" bindable readline function. - Suggested by Jason Spiro - -lib/readline/vi_keymap.c - - add binding of C-n to menu-complete and C-p to menu-complete-backward - in vi-insert keymap, as suggested by Jason Spiro - - -pcomplete.c - - fixed a bug in programmable_completions: the options it returned from - the compspec it found were set before generating the completions, - which meant that any changes made by "compopt" were overridden and - only in effect for the duration of the executing shell function - rather than the entire completion. Fixes bug reported by Ville - Skytta - - 7/31 - ---- -lib/readline/keymaps.c - - fixed memory leak in rl_discard_keymap by freeing storage associated - with hierarchical keymaps - - new convenience function, rl_free_keymap, that calls rl_discard_keymap - and frees the keymap passed as an argument - -lib/readline/util.c - - new bindable keymap function, _rl_null_function, to be used internally - -lib/readline/rlprivate.h - - extern declaration for _rl_null_function - -lib/readline/bind.c - - fix rl_generic_bind in the case where we are trying to override a - keymap with a null function (e.g., when trying to unbind it). We - can't use a NULL function pointer in ANYOTHERKEY since that's - indistinguishable from the keymap not having been overridden at all. - We use _rl_null_function instead, which simply does nothing. We - could add an rl_ding to it later. Fixes problem with hitting ESC - repeatedly while in vi command mode reported by James Rowell - - -builtins/bind.def - - call rl_bind_keyseq instead of rl_set_key for -r option - -lib/readline/readline.c - - Set vi_movement_keymap[ESC] to _rl_null_function after binding the - arrow keys in bind_arrow_keys() to allow vi-mode users to hit ESC - multiple times in vi command mode while still allowing the arrow - keys to work - - 8/2 - --- -bashline.c - - fix clear_hostname_list by setting hostname_list_initialized to 0 - after freeing all list members. Fixes bug reported by Freddy - Vulto - -lib/readline/display.c - - in update_line, if we copy data from one line to another because we - are wrapping a multibyte character from, say, the first line to the - second, we need to update OMAX and the line indices to account for - the moved data. Bug report and fix from Martin Hamrle - - - 8/3 - --- -pcomplete.h - - defines for EMPTYCMD ("_EmptycmD_") and DEFAULTCMD ("_DefaultCmD_") - -builtins/complete.def - - change compopt_builtin to make -E work on the "empty" command - completion - - fix print_compitem and print_compopts to replace EMPTYCMD with -E - - added -D (default) option to complete/compgen/compopt. No supporting - code yet - -doc/bash.1,lib/readline/doc/rluser.texi - - document new -D, -E options to compopt - - document new -D option to complete/compgen - -shell.h - - new define, EX_WEXPCOMSUB, value of 125 - - new define, EX_RETRYFAIL, value of 124 (for programmable completion) - -subst.c - - use EX_WEXPCOMSUB instead of literal 125 as exit status when a shell - invoked to run wordexp(3) with the -n option supplied attempts a - command substitution - -pcomplete.c - - new define, PCOMP_RETRYFAIL, used to indicate a "failure, retry with - next completion" status to the programmable completion code - - 8/4 - --- -pcomplete.c - - changed gen_shell_function_matches to take an extra parameter - indicating whether the specified shell function was not found or - returned the special "fail/retry" status, and, if it was either, - to not bother returning any matches list - - changed gen_compspec_completions to take an extra parameter to pass - through the "found" status from gen_shell_function_completions - - new function gen_progcomp_completions to take care of searching for - and evaluating a compspec for a particular word, saving its status, - and returning to its caller (programmable_completions) whether or - not to retry completion. This function also checks whether a - retry changed the compspec associated with a command and short- - circuits the retry if it has not - - changed programmable_completions to try default completion (if set) - if a specific completion was not found for a command - - changed programmable_completions to implement "fail/retry" semantics - for a shell function that returns 124 and changes the compspec - associated with the command. All based on proposal and changes from - Behdad Esfahbod (Red Hat bugzilla 475229) - -doc/bash.1,lib/readline/doc/rluser.texi - - documented new dynamic programmable completion functionality - - 8/5 - --- -stringlib.c - - first argument to substring() is now `const char *' - -externs.h - - changed extern declaration for substring() - -subst.c - - skipsubscript now takes a third FLAGS argument, passes to - skip_matched_pair - - skip_matched_pair now interprets flags&1 to mean not to parse - matched pairs of quotes, backquotes, or shell word expansion - constructs - -{subst,general,expr}.c - - changed skipsubscript() callers - -assoc.c - - changed assoc_to_assign to double-quote the key if it contains any - shell metacharacters - -arrayfunc.c - - use skipsubscript in quote_assign rather than quote any glob - characters in the subscript of an array assignment - - in assign_compound_array_list, call skipsubscript with a flags - argument of 1 if assigning an associative array to avoid trying - to re-parse quoted strings - -redir.c - - set expanding_redir before expanding body of here documents and - here strings to avoid looking for variables in temporary env - - 8/7 - --- -lib/readline/readline.c - - in _rl_dispatch_callback, return value of -3 means that we have - added to a key sequence, but there are previous matches in the - sequence. Don't call _rl_subseq_result if we get a -3 from a - previous context in the chain; just go back up the chain. Report - and fix from - -bashline.c - - fixes to history_completion_generator and bash_dabbrev_expand to - make dabbrev-expand inhibit suppressing of appending space char - to matches. Have to do it with the generator too because - rl_menu_complete turns off suppressing the appended space in - set_completion_defaults(). Suggestion from Dan Nicolaescu - - - suppress completion match sorting in bash_dabbrev_expand by - setting rl_sort_completion_matches = 0. Suggestion from Dan - Nicolaescu - - don't qsort history match list in build_history_completion_array - if dabbrev_expand_active == 1 - - start the loop in build_history_completion_array that gathers words - from history for possible completions from the end of the list - rather than the beginning. It doesn't matter where you start if - the results are sorted, and dabbrev-expand is supposed to offer - the most recent completions first - - 8/12 - ---- -execute_cmd.c - - change to execute_command_internal to make [[ ... ]] conditional - command subject to settings of `set -e' and the ERR trap - - 8/14 - ---- -execute_cmd.c - - change to execute_command_internal to make (( ... )) arithmetic - command subject to settings of `set -e' and the ERR trap - -lib/readline/text.c - - new bindable function, rl_skip_csi_sequence, reads the characters - that make up a control sequence as defined by ECMA-48. Sequences - are introduced by the Control Sequence Indicator (CSI) and - contain a defined set of characters. Insert, End, Page Up and so - on are CSI sequences. Report and code from Andy Koppe - - -lib/readline/readline.h - - extern declaration for rl_skip_csi_sequence - -lib/readline/funmap.c - - new bindable command "skip-csi-sequence", runs rl_skip_csi_sequence - -doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} - - documented new bindable command "skip-csi-sequence", unbound by - default - -builtins/evalfile.c - - fix _evalfile to remove embedded null bytes from the file read - into the string. Report and proposed fix from Roman Rakus - - -{configure,config.h}.in - - check for syslog(3), define HAVE_SYSLOG - - check for syslog.h, define HAVE_SYSLOG_H - -config-top.h - - new define SYSLOG_HISTORY, disabled by default - -config-bot.h - - if HAVE_SYSLOG or HAVE_SYSLOG_H are not defined, undef SYSLOG_HISTORY - -bashhist.c - - if SYSLOG_HISTORY is defined, call bash_syslog_history with the - line added to the history in bash_add_history. - - new function, bash_syslog_history(line), sends line to syslog at - user.info. The line is truncated to send no more than 600 - (SYSLOG_MAXLEN) bytes to syslog. Feature requested by many, and - required by some national laws - -sig.c - - in termsig_handler, resend SIGHUP to children if subshell_environment - indicates we're a shell performing command or process substitution - -jobs.c - - add CHECK_TERMSIG calls to wait_for in addition to the ones in - waitchld() - -builtins/shopt.def - - new functions set_bashopts, parse_bashopts, and initialize_bashopts - to manage new environment variable $BASHOPTS, like $SHELLOPTS but - for shopt options - - change toggle_shopts to call set_bashopts after setting options, so - $BASHOPTS reflects new values - -shell.c - - call initialize_bashopts after calling initialize_shell_options at - shell startup - -configure.in - - new configure `enable' option --enable-exended-glob-default, to - set the initial default value of the `extglob' shell option - -config.h - - new define, EXTGLOB_DEFAULT, controlled by the `extended-glob-default' - configure option - -pathexp.c - - initialize extended_glob variable to EXTGLOB_DEFAULT - -doc/{bash.1,bashref.texi} - - document new $BASHOPTS variable and its behavior - -doc/bashref.texi - - document new --enable-extended-glob-default configure option - - 8/16 - ---- -print_cmd.c - - new variables: xtrace_fd and xtrace_fp, the file descriptor and - FILE * to which we send `set -x' tracing output. If fd == -1 - then fp == STDERR, the default mode - - new function xtrace_init, sets xtrace_fd == -1 and xtrace_fp = stderr - - new function xtrace_set (fd, fp), sets xtrace_fd and xtrace_fp - to the arguments - - new function xtrace_reset, handles closing old xtrace fd/fp and - moving them back to -1/stderr - - new function xtrace_fdchck, calls xtrace_reset if the fd passed as - an argument is xtrace_fd - - change xtrace functions to fprintf to xtrace_fp instead of stderr - -shell.c - - call xtrace_init() very early in main() - -variables.c - - new special variable, BASH_XTRACEFD, holds file descriptor used for - set -x trace output. Inspired by suggestion from Bruce Korb - - -doc/{bash.1,bashref.texi} - - added description of new BASH_XTRACEFD variable - -redir.c - - add calls to xtrace_fdchk to the redirections that close file - descriptors, so we notice if we close BASH_XTRACEFD and compensate - accordingly (same places that call coproc_fdchk()) - - 8/18 - ---- -lib/readline/text.c - - change to _rl_replace_text to add error checks: start must be <= - end, and we don't call rl_insert_text if passed the empty string - -config.h.in - - add define for HAVE_ICONV, already found by intl autoconf macros - - add define for HAVE_LOCALE_CHARSET - -aclocal.m4 - - add check for locale_charset() to BASH_CHECK_MULTIBYTE - -lib/sh/fnxform.c - - new file with two public function: fnx_tofs and fnx_fromfs. - Primarily intended for use on MacOS X, they use iconv to convert - between whatever the current locale encoding is and "UTF-8-MAC", - a special encoding on OS X in which all characters are - decomposed unicode, as the HFS+ filesystem stores them. These - functions return a pointer to a local buffer, allocated once and - resized as necessary, to avoid too many allocations; callers - should not free the return value, since it may be the string - passed - -Makefile.in - - make sure LIBICONV is set by autoconf (@LIBICONV@) and added to - list of link libraries - -externs.h - - new extern declarations for fnx_fromfs and fnx_tofs - -lib/glob/glob.c - - convert the filename read using readdir() in glob_vector() using - fnx_fromfs and use that value in the call to strmatch. This - ensures that we're using the precomposed Unicode value of the - filename rather than the native decomposed form. Original bug - report from Len Lattanzi ; fix inspired by - Guillaume Outters - - 8/19 - ---- -lib/readline/complete.c - - new completion hook: rl_filename_rewrite_hook, can rewrite or modify - filenames read from the filesystem before they are compared to the - word to be completed - -lib/readline/readline.h - - extern declaration for rl_filename_rewrite_hook - -lib/readline/doc/rltech.texi - - document rl_filename_rewrite_hook - -bashline.c - - new function, bash_filename_rewrite_hook, assigned to - rl_filename_rewrite_hook. Calls fnx_fromfs to convert from - filesystem format to "input" format. This makes completing - filenames with accented characters work on Mac OS X - - 8/20 - ---- -lib/readline/bind.c - - new bindable variable "skip-completed-text", bound to - _rl_skip_completed_text. If enabled, it means to note when - completing before the end of a word and skipping over characters - after rl_point that match in both the completion to be inserted - and the word being completed. It means that completing - `Makefile' with the cursor after the `e' results in `Makefile' - instead of `Makefilefile'. Inspired by an idea from Jared - Yanovich from back in 2004 - -lib/readline/rlprivate.h - - extern declaration for _rl_skip_completed_text - -lib/readline/complete.c - - implement semantics of _rl_skip_completed_text in insert_match: - skip characters in `replacement' that match chars in rl_line_buffer - from the start of the word to be completed - - 8/21 - ---- -error.c - - change parser_error to set last_command_exit_value to 2 before - calling exit_shell (if set -e is enabled), so any exit or ERR - trap gets the right value of $?. Suggestion from Stefano - Lattarini - -braces.c - - fix expand_seqterm so that a non-zero-prefixed term that's longer - than a zero-prefixed term determines the length of each term - in the brace-expanded sequence. This means that things like - {01..100} will have three digits in all the elements of the - expanded list. Fixes bug reported by Jeff Haemer - - - 8/24 - ---- -{arrayfunc,variables}.c - - when inserting a value into an associative array using syntax like - T=v where T is an already-declared associative array using key "0", - make sure the key is in newly-allocated memory so it can be freed - when the variable is unset. Fixes bug reported as redhat 518644 - by Jon Fairbairn - - 8/26 - ---- -lib/readline/funmap.c - - add "old-menu-complete" binding for rl_old_menu_complete - -lib/readline/readline.h - - add extern declaration for rl_old_menu_complete - -subst.c - - fix memory leak when processing ${!prefix@}. Need to dispose all - words in the word list created from all matching variable. Fixes - bug reported by muszi@muszi.kite.hu. - - 8/29 - ---- -execute_cmd.c - - add fflush(stdout) and fflush(stderr) to child coproc code before - calling exit after execute_in_subshell - - 8/31 - ---- -lib/readline/{{bind,readline}.c,rlprivate.h} - - new bindable variable, "echo-control-characters", enabled by default. - This controls whether or not readline honors the tty ECHOCTL bit - and displays characters corresponding to keyboard-generated signals. - Controlled by _rl_echo_control_chars variable, declared in readline.c - -lib/readline/signals.c - - if _rl_echo_control_chars == 0, don't go through _rl_echo_signal_char - - -lib/readline/doc/{readline.3,rluser.texi} - - document "echo-control-characters" bindable variable - - 9/1 - --- -lib/readline/histexpand.c - - hist_string_extract_single_quoted now takes an additional argument: - a flags word. The only defined value (flags & 1) allows backslash - to quote the single quote. This is to inhibit history expansion - inside $'...' containing an escaped single quote. - - change history_expand to call hist_string_extract_single_quoted - with flags == 1 if it sees $'. Fixes bug reported by Sean - Donner - - 9/2 - --- -builtins/printf.def - - add a call to sh_wrerror if ferror() succeeds in the PRETURN macro, - to print an error message in the case that the final fflush fails - (for instance, because it attempts to write data that didn't have a - trailing newline). Fixes bug reported by Stefano Lattarini - - - 9/7 - --- -arrayfunc.c - - some fixes to assign_compound_array_list to avoid null pointer - dereferences pointed out by clang/scan-build - -lib/glob/glob.c - - fixes to udequote_pathname and wdequote_pathname to avoid possible - null pointer dereferences pointed out by clang/scan-build - -lib/readline/undo.c - - fix to _rl_copy_undo_list (function unused) to avoid deref of - uninitialized pointer pointed out by clang/scan-build - -general.c - - fix string_to_rlimtype so it works if passed a null pointer (though - it never is) - -builtins/mapfile.def - - fix to mapfile() to avoid possible null pointer dereference pointed - out by clang/scan-build - -variables.c - - fix to valid_exportstr to avoid possible null pointer dereferences - pointed out by clang/scan-build - -bashline.c - - fix to bash_execute_unix_command to avoid possible null pointer - dereference if READLINE_LINE or READLINE_POINT is not bound - - 9/11 - ---- -[Prayers for the victimes of 9/11/2001] - -command.h - - add `rflags' member to struct redirect to hold private flags and - state information - - change redirector to a REDIRECTEE instead of int to prepare for - possible future changes - -{copy_cmd,dispose_cmd,make_cmd,print_cmd,redir}.c - - changes resulting from type change of `redirector' member of struct - redirect: change x->redirector to x->redirector.dest and add code - where appropriate to deal with x->redirector.filename - -make_cmd.h - - change extern declaration for make_redirection - -make_cmd.c - - first argument of make_redirection is now a `REDIRECTEE' to prepare - for possible future changes. First arg is now assigned directly to - redirector member instead of assigning int to redirector.dest - -{make_cmd,redir}.c,parse.y - - changes resulting from type change of first argument to - make_redirection from int to REDIRECTEE. In general, changes are - using REDIRECTEE sd and assigning old argument to sd.dest, then - passing sd to make_redirection - -make_cmd.[ch],parse.y - - add fourth argument to make_redirection: flags. Sets initial value - of `rflags' member of struct redirect - - changed all callers of make_redirection to add fourth argument of 0 - - 9/15 - ---- -parse.y - - change read_token_word to return REDIR_WORD for tokens of the form - {var} where `var' is a valid shell identifier and the character - following the } is a `<' or `>' - - add REDIR_WORD versions of all input and output file redirections - and here documents - -print_cmd.c - - change input and output file redirection direction and here - document cases of print_redirection to print a varname - specification of the form {var} when appropriate. Still need - to fix rest of cases - -redir.c - - implement REDIR_VARASSIGN semantics for file input and output - redirections and here documents - - 9/16 - ---- -parse.y - - added REDIR_WORD versions of remaining redirection constructs except - for err_and_out ones - -redir.c - - handle REDIR_VARASSIGN semantics for rest of redirection constructs - - accommodate REDIR_VARASSIGN when translating redirections - - new function, redir_varvalue, does variable lookup for {v} when - redirection needs the value (e.g., r_close_this) - -print_cmd.c - - fix rest of cases to print {varname} when REDIR_VARASSIGN is set in - redirect->rflags - -doc/{bash.1,bashref.texi} - - document new {varname} REDIR_VARASSIGN form of redirections - -tests/vredir.{right,tests},vredir[1-5].sub - - tests for new {varname} REDIR_VARASSIGN form of redirections - - 9/18 - ---- -subst.c - - new flags argument to split_at_delims: these flags are ORd with - SD_NOJMP and passed to skip_to_delim - - change skip_to_delim to honor new SD_NOQUOTEDELIM flag by not - checking whether or not single and double quotes are delimiters - if it's set in passed flags until after skipping quoted strings. - -subst.h - - change extern declaration for split_at_delims - - new define for SD_NOQUOTEDELIM flag - -pcomplete.c - - pass SD_NOQUOTEDELIM in flags argument to split_at_delims so single - and double quotes, even though they're in - rl_completer_word_break_characters, don't act as word delimiters - for programmable completion. Fixes bug reported by Freddy - Vulto - -lib/glob/glob.c - - in glob_filename, after recursively scanning a directory specified - with `**', turn off GX_ALLDIRS|GX_ADDCURDIR before calling - glob_vector on the rest of the pathname, since it may not apply to - the rest of the pattern. Turned back on if the filename makes it - appropriate. Fixes bug reported by Anders Kaseorg - -redir.c - - change execute_null_command to fork a child to execute if any of - the commands redirections have the REDIR_VARASSIGN flag set, since - those commands are not supposed to have side effects - -test.c - - < and > binary operators will obey the locale by using strcoll if - the TEST_LOCALE flag is passed to binary_test - -test.h - - new define for TEST_LOCALE - -execute_cmd.c - - execute_cond_node sets TEST_LOCALE so [[ str1 < str2 ]] (and >) - obey the locale. Fixes bug/incompatibility reported by Greg - Wooledge - -doc/{bash.1,bashref.texi} - - documented [[ command new locale-sensitive treatment of < and > - - 9/24 - ---- -configure.in - - add "darwin10" cases like darwin8 and darwin9 to handle linking with - included readline and history libraries - - 9/26 - ---- -lib/readline/display.c - - modify change of 7/24 to use prompt_physical_chars instead of - prompt_visible_length to account for visible multibyte characters in - the line (usually in the prompt). Fixes debian bug #547264 - reported by Pietro Battiston - - add flags argument to _rl_col_width; changed callers. flags > 0 - means that it's ok to use the already-computed prompt information; - flags == 0 means that we're expanding the prompt and we should not - short-circuit - -parse.y - - in decode_prompt_string, when expanding \w and \W on Mac OS X, - use fnx_fromfs to convert from "filesystem" form to "input" form. - This makes $PWD with multibyte characters work in the prompt - string on Mac OS X - -lib/sh/fnxform.c - - in fnx_fromfs and fnx_tofs, use templen instead of outlen as last - argument in calls to iconv, since outlen is used to keep track of - the size of the buffer, and iconv potentially modifies its - `outbytesleft' argument - - 9/29 - ---- -subst.c - - make skip_to_delim understand how to skip over process substitution - constructs the way it skips $(...) command substitution - - 9/30 - ---- -lib/readline/terminal.c - - don't set the `terminal has meta key' flag if the `MT' capability is - available; that means something completely different - - 10/1 - ---- -builtins/help.def - - make sure width is at least 7, since we pass `width/2 - 3' to strncpy - as the length argument. Terminal widths <= 6 are converted to 80. - Fixes bug reported by Chris Hall - -configure.in - - changed version to 4.1-alpha - -subst.h - - new flag for skip_to_delim: SD_NOSKIPCMD, which means to not skip - over embedded command and process substitutions, but rather to look - for delimiters within them - -subst.c - - implement semantics of SD_NOSKIPCMD in skip_to_delim - -bashline.c - - call skip_to_delim with SD_NOSKIPCMD from find_cmd_start, so - programmable completion can use the completion defined for `b' for - command lines like "a $(b c". Fixes inconsistency/bug reported by - Freddy Vulto - -parser.h - - replace unused PST_CMDTOKEN parser state value with PST_EXTPAT, - means currently parsing an extended glob pattern (extglob) - -parse.y - - fix cond_node() so that extended_glob is set before parsing the - rhs of the `==' or `!=' operators. For ksh93 compatibility. - - reset extended_glob to global value (saved in parse_cond_command()) - in reset_parser() - - 10/5 - ---- -jobs.c - - change waitchld() to only interrupt the wait builtin when the shell - receives SIGCHLD in Posix mode. It's a posix requirement, but - makes easy things hard to do, like run a SIGCHLD trap for every - exiting child. Change prompted by question from Alex Efros - - -doc/bashref.texi - - document new posix mode behavior about SIGCHLD arriving while the - wait builtin is executing when a trap on SIGCHLD has been set - - 10/6 - ---- -lib/readline/histexpand.c - - fix hist_expand to keep from stopping history expansion after the - first multibyte character (a `break' instead of a `continue'). - Fixes debian bug (#549933) reported by Nikolaus Schulz - - - 10/8 - ---- -builtins/read.def - - implement new `-N nchars' option: read exactly NCHARS characters, - ignoring any delimiter, and don't split the result on $IFS. - Feature requested by Richard Stallman - -doc/{bash.1,bashref.texi} - - document new `read -N' option - - 10/9 - ---- -lib/readline/bind.c - - new bindable variable, "enable-meta-key", controls whether or not - readline enables any meta modifier key the terminal claims to - support. Suggested by Werner Fink - -lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 - - document new readline "enable-meta-key" bindable variable - - 10/10 - ----- -trap.c - - new function, free_trap_string(), does what it says and turns off - SIG_TRAPPED flag without changing signal disposition - -[bash-4.1-alpha frozen] - - 10/16 - ----- -builtins/mapfile.def - - return an error if the variable passed is not an indexed array. - Fixes bug reported by Nick Hobson - - change help text to make it clear that an indexed array is required - -doc/{bash.1,bashref.texi} - - changed description of mapfile to note that the array variable - argument must be an indexed array, and mapfile will return an - error if it is not - -subst.c - - change expand_string_unsplit and expand_string_leave_quoted to - add the (previously unused) W_NOSPLIT2 flag to the created word - - change expand_word_internal to understand W_NOSPLIT2 to mean that - we're not going to split on $IFS, so we should not quote any - characters in IFS that we add to the result string. Fixes bug - reported by Enrique Perez-Terron - - change cond_expand_word similarly. Fixes rest of bug reported by - Enrique Perez-Terron - -parse.y - - save and restore value of last_command_subst_pid around call to - expand_prompt_string in decode_prompt_string. Fixes bug that causes - $? to be set wrong when using a construct like false || A=3 when - set -x is enabled and $PS4 contains a command substitution. Reported - by Jeff Haemer - - 10/17 - ----- -execute_cmd.c - - in execute_in_subshell, make sure we set setjmp(return_catch) before - running the command, in case the command or its word expansion - calls jump_to_top_level. Fixes bug reported by Nils Bernhard - - -subst.c - - new PF_NOSPLIT2 flag for param_expand - - parameter_brace_expand takes a new `pflags' argument, before the - `output' parameters; passes to param_expand as necessary - - change parameter_brace_expand to call parameter_brace_expand_word - with the PF_NOSPLIT2 flag if the pflags argument to - parameter_brace_expand has it set - -parse.y - - change report_syntax_error to set last_command_exit_value to - EX_BADSYNTAX if parse_and_execute_level is > 0, indicating a - syntax error while we're executing a dot script, eval string, - trap command, etc. - -builtins/evalstring.c - - in parse_and_execute, if parse_command() returns non-zero, - indicating a parse error, print a warning message if the conditions - would require a posix-mode shell to abort (parse error in a `.' - script or eval string) - - 10/19 - ----- -builtins/evalfile.c - - even if the `check binary' flag is not passed to _evalfile, return an - error after reading 128 null characters if called by `source', on - the assumption that it's probably a binary file. [This will be in - bash-4.1-beta] - - 10/24 - ----- -[bash-4.1-alpha released] - -bashline.c - - don't call command_substitution_completion_function if we're - completing a substring delimited by a single quote. Fixes bug - reported by bash-bugs@atu.cjb.net - -lib/readline/complete.c - - make sure _rl_skip_completed_text defaults to 0, as the - documentation states (incorrect in bash-4.1-alpha) - - in insert_match, skip over a close quote in the replacement text if - the character at point when completion is invoked is a single - quote. Fixes complaint from bash-bugs@atu.cjb.net - - 10/26 - ----- -shell.c - - in main, make sure "$EMACS" is non-null before calling strstr on its - value. Fixes Red Hat bug 530911 submitted by Mitchell Berger - -builtins/mapfile.def - - don't save callback commands in shell history. Suggested by - Jan Schampera - -mailcheck.c - - in file_mod_date_changed, make sure the modification time is later - than the saved modification date, not just that it's not equal. - Fix from Evgeniy Dushistov - - in file_access_date_changed, make sure the access time is later - than the saved access time, not just that it's not equal - - 10/27 - ----- -builtins/shopt.def - - added new `compat40' compatibility variable, with associated changes - to shell_compatibility_level(), since the default compatibility level - is now 41 - -test.c - - make the < and > operators to [[ use strcoll() only if the shell - compatibility level is greater than 40 (it is 41 by default in - bash-4.1) - - 10/28 - ----- -support/shobj-conf - - decrease the default version of FreeBSD that creates shared libraries - to 4.x. Advice from Peter Jeremy - - 11/2 - ---- -parse.y - - change parse_comsub to free `heredelim' and set it to 0 whenever the - comsub scanner finds the end of a here document. Really need to - implement a stack of here doc delimiters like in the parser (can we - use redir_stack here, too?) - - fix parse_comsub to not attempt to read another here doc delimiter - after seeing a shell break character (that is not newline) if we - already have one. Fixes Debian bash bug #553485, submitted by - Samuel Hym - - 11/3 - ---- -variables.c - - fix bind_variable_internal to call a variable's dynamic 'set function' - with the right arguments depending on whether it's an associative - array, an indexed array, or a scalar. Fixes Ubuntu bug #471504 - https://bugs.launchpad.net/ubuntu/+source/bash/+bug/471504 reported - by AJ Slater - -[bash-4.1-beta frozen] - - 11/11 - ----- -builtins/printf.def - - in getintmax(), in the case of a conversion error, return the partial - value accumulated so far, which is suppose to be what - strtoimax/strtoll/strtol returns - - 11/17 - ----- -[bash-4.1-beta released] - - 11/18 - ----- -builtins/{common.h,shopt.def},shell.c - - changed shopt variable "set functions" to take the option name as - the first argument; changed function prototypes and callers - -builtins/shopt.def - - change set_compatibility_level() to turn off other compatNN options - when one is set -- enforce mutual exclusivity. Fixes problem noted - by Jan Schampera - - 11/19 - ----- -lib/readline/rltty.c - - make sure prepare_terminal_settings() tests for the presence of - ECHOCTL before using it. Fixes bug reported by Joachim Schmitz - - -config-top.h - - new WORDEXP_OPTION define (off by default) - -shell.c - - don't include the --wordexp option or the supporting function - (run_wordexp) if WORDEXP_OPTION is not defined. Suggested by - Aharon Robbins - -execute_cmd.c - - in execute_cond_node, turn on comsub_ignore_return if the flags - indicate we're ignoring the return value before calling - cond_expand_word. Fixes bug reported by Anirban Sinha - - - 11/20 - ----- -lib/sh/snprintf.c,builtins/printf.def - - change check for HAVE_ASPRINTF and HAVE_SNPRINTF to check if value - is 1 or 0 rather than whether they are defined or not. This allows - a value of 0 to enable function replacement - -configure.in,aclocal.m4 - - new autoconf macro, BASH_FUNC_SNPRINTF, checks for snprintf present - and working as C99 specifies with a zero length argument. Idea - from Greg Wooledge - - new macro BASH_FUNC_VSNPRINTF, does same thing for vsnprintf - - 11/25 - ----- -subst.c - - in command_substitute, only tell parse_and_execute to reset the line - number in an interactive shell if sourcelevel == 0 -- we'll use the - line numbers from the sourced file - -execute_cmd.c - - in execute_simple_command, only subtract function_line_number from - line_number if sourcelevel == 0. If sourcing, we'll use the line - numbers from the sourced file. Fixes bug reported by Hugo - Mildenberger - -builtins/declare.def - - in declare_internal, call bind_assoc_variable instead of - bind_array_variable in the case of declare -A foo=bar. Fixes bug - reported by Bernd Eggink . - - 11/27 - ----- -lib/readline/util.c - - change declaration for _rl_walphabetic to use prototype, assuming - that any system with multibyte characters has a compiler that can - handle prototypes. Fix for AIX compilation problem reported by - Nick Hillman - - 11/28 - ----- -execute_cmd.c - - make funcnest file-scope static and unwind-protect its value in - execute_function, so it can be used as a real measure of function - call nesting - -general.c - - fix off-by-one error in trim_pathname that caused it to short-circuit - when PROMPT_DIRTRIM == number of directories - 1. Fixes bug - reported by Dennis Williamson - - 11/29 - ----- -jobs.c - - when fork() returns -1/EAGAIN, call waitchld(-1, 0) so the shell can - reap any dead jobs before trying fork again. Currently disabled - until bash-4.2 development starts - -lib/readline/complete.c - - when incrementing _rl_interrupt_immediately, make sure it's greater - than 0 before decrementing it. In practice, not a problem, but - the right way to do it. Suggested by Jan Kratochvil - - -lib/readline/signals.c - - make sure rl_signal_handler doesn't set rl_caught_signal if - _rl_interrupt_immediately is set, so RL_CHECK_SIGNALS doesn't - cause it to be processed twice. Suggested by Jan Kratochvil - - - if the callback interface is being used, use the code path that - immediately handles signals. This restores the readline-5.2 - behavior. Fixes GDB readline bug reported by Jan Kratochvil - - - 12/18 - ----- -[bash-4.1-rc1 released] - - 12/22 - ----- -config-top.h - - don't have SYSLOG_HISTORY enabled by default - -lib/sh/Makefile.in - - add explicit dependency on pathnames.h for parallel make support - -externs.h - - add extern declaration for xtrace_fdchk - -lib/sh/snprintf.c - - add local prototype declarations for isinf, isnan if we are providing - local definitions - -lib/sh/fnxform.c - - add extern declaration for get_locale_var if HAVE_LOCALE_CHARSET not - defined - -execute_cmd.c - - define NEED_FPURGE_DECL so we pick up any extern declaration for - fpurge (e.g., if the system doesn't provide it) - -builtins/shopt.def - - correct prototype and declaration for set_shellopts_after_change so - it's the correct type for shopt_set_func_t - - add new function shopt_enable_hostname_completion that is the correct - type for shopt_set_func_t; just calls enable_hostname_completion and - returns its result - - 12/26 - ----- -doc/{bash.1,bashref.texi} - - add \E and \" escape sequences to ANSI-C quoting description. - Suggested by Aharon Robbins - - 12/29 - ----- -doc/bash.1 - - make sure shell and environment variable names are always in - `small caps' bold. Suggested by Aharon Robbins - - 12/30 - ----- -{execute_cmd.c,parse.y,Makefile} - - changes for building minimal configuration from Matthias Klose - - -[bash-4.1 frozen] - - 12/31 - ----- -[bash-4.1 released] - - 1/5/2010 - -------- -doc/bashref.texi - - document compat32 and compat40 shopt options. Omission pointed out - by Dilyan Palauzov - - 1/6 - --- -lib/readline/complete.c - - use `convfn' (converted filename) instead of entry->d_name (filename - read from file system) when adding partial or full completions to - the command line. Bug and fix from Guillaume Outters - - - 1/7 - --- -builtins/printf.def - - fix prototype in extern declaration for vsnprintf. Fix for bug - reported by Yann Rouillard - - 1/9 - --- -parse.y - - fix shell_getc to handle alias expansions containing quoted - newlines. Problems in bash-4.1 with aliases containing quoted - newlines in the middle of and at the end of their expansion. - Fix for bug reported by Jonathan Claggett - - - change mk_alexpansion to not append a space to an alias - expansion ending with a newline. Works with shell_getc - - 1/11 - ---- -lib/glob/Makefile.in - - add dependencies on shell.h and pathnames.h. From Mike Frysinger - - - 1/15 - ---- -doc/{bash.1,{bashref,version}.texi},lib/readine/doc/rluser.texi - - some typo fixes from Aharon Robbins - - added descriptions of ENV, COPROC, and MAPFILE variables - - added descriptions of READLINE_LINE and READLINE_POINT - - 1/21 - ---- -arrayfunc.c - - free `akey', the word-expanded index into the assoc array to avoid - mem leak in array_value_internal - - free index into assoc array in unbind_array_element - - change array_value_internal to take an additional argument: an - arrayind_t *. If not null, an index to an indexed array is - returned there. If not an indexed array or subscript is @ or - *, the value is unchanged - - 1/22 - ---- -builtins/ulimit.def - - include if we found it during configure and we don't - have resources. Fixes omission reported by Joachim Schmitz - - -{configure,config.h}.in - - check for , define HAVE_ULIMIT_H if found - -lib/sh/oslib.c - - include for extern declaration for kill(2) if - HAVE_KILLPG not defined - -jobs.c - - if HAVE_KILLPG is not defined, add an extern prototype decl for - killpg() - - 1/24 - ---- -print_cmd.c - - when printing here-string redirections, don't quote the string. The - original quotes, if any, are still in place and don't need to be - requoted. Fixes bug reported by Arfrever Frehtes Taifersar Arahesis - - -subst.c - - fix array_length_reference to return 0 for variables that have not - been assigned a value. Fixes bug reported by Mart Frauenlab - , but is not backwards compatible - -arrayfunc.[ch] - - change array_value to take a new arrayind_t *indp parameter like - get_array_value; changed extern prototype declaration - -subst.c - - changed callers of array_value to add extra parameter - -expr.c - - change expr_streval to set a new `lvalue' parameter with information - about the string being evaluated: string, value, array index (if - any), variable evaluated (if set). - - saving and restoring current context now saves and restores the - current `lvalue' - - new function expr_bind_array_element, binds an array element with an - already-computed index to a specified value - - anywhere we set the current token to a string (STR), save and set - the current lvalue - - change calls to expr_bind_variable to check whether or not the - current lvalue indicates an indexed array was evaluated, and, if so, - call expr_bind_array_element using the already-computed index - (curlval.ind). Fixes problems with dynamic variables (e.g., RANDOM) - in array indices with {pre,post}-{inc,dec}rement and op= - operators reported by - - 1/25 - ---- -expr.c - - fix subexpr() to initialize curlval and lastlval when resetting all - of the rest of the expression-parsing variables - - 1/26 - ---- -builtins/setattr.def - - in show_var_attributes, if the variable is not set (value == 0), - don't print `name=""', just print `name'. Pointed out by - Mart Frauenlab - -arrayfunc.c - - fix array_keys to return NULL if the variable is not set or - invisible. Pointed out by Mart Frauenlab - - change array_value_internal to return NULL for variable which has - not been set - - 1/30 - ---- -bashline.c - - in command_word_completion_function, don't call glob_pattern_p - on hint -- use the already-computed `globpat'. At this point, - hint might contain an already-dequoted globbing character, but - glob_matches will be NULL. Fixes bug reported by - coyote@wariat.org.pl - - 2/5 - --- -builtins/exec.def - - set extern variable "exec_argv0" to the argument to -a - -shell.c - - if exec_argv0 is set, set dollar_vars[0] to it and set it to NULL, - assuming it was set by `exec -a'. `exec -a foo' now sets $0 to - foo in an executable shell script without a leading `#!' (fixes - longstanding bug) - - 2/8 - --- -variables.c - - in push_func_var, if a variable is in a special builtin's temporary - environment and needs to be propagated because we're in Posix mode, - or we just need to propagate a variable, and we are executing in a - function without any local variables (so the function-local variable - context has no variable hash table), make sure we create a hash - table so we have a place to save the variable to be propagated. - Fixes bug reported by Crestez Dan Leonard . - - 2/18 - ---- -builtins/hash.def - - change add_hashed_command to remove the command being looked up from - the hash table before trying to add it. That way, if it's not found, - there won't be anything remaining in the hash table - - 2/26 - ---- -trap.[ch] - - move IMPOSSIBLE_TRAP_HANDLER define to trap.h so other parts of the - shell can use it - -parse.y - - change yy_readline_get to use IMPOSSIBLE_TRAP_HANDER instead of NULL - as a sentinel value for the SIGINT signal handler - - make sure yy_readline_get resets interrupt_immediately to 0 after - calling readline() using the same criteria it used to set it to 1 - before the call -- make the code symmetric. Suggested by Werner - Fink - -builtins/read.def - - move assignment to `retval' before decrement of interrupt_immediately - and terminate_immediately and call to discard_unwind_frame - - move assign_vars label before decrement of interrupt_immediately and - terminate_immediately so those variables get reset appropriately - if read -t times out - -subst.h - - new define for Q_DOLBRACE, indicates double-quoted ${...} - -subst.c - - in parameter_brace_expand, before calling parameter_brace_expand_rhs, - add Q_DOLBRACE to `quoted' if we're within double quotes. - - in expand_word_internal, if the Q_DOLBRACE flag is set, remove a - backslash escaping a }. Result of a Posix discussion on the - austin-group list - - 2/27 - ---- -variables.c - - new functions to save and restore the PIPESTATUS variable's internal - array: save_pipestatus_array and restore_pipestatus_array - -variables.h - - new extern declarations for save_pipestatus_array and - restore_pipestatus_array - -trap.c - - in run_pending_traps, _run_trap_internal, and run_exit_trap, save - and restore $PIPESTATUS while traps are running. Fixes bug - reported by Florian Bruhin - -parse.y - - use save_pipestatus_array and restore_pipestatus_array in - save_parser_state and restore_parser_state, respectively, replacing - inline code - -lib/readline/histfile.c - - fix callers of history_filename to be prepared to cope with it - returning NULL - - change history_filename to return NULL if $HOME is not set, rather - than trying to write the history file in the current directory. - This is the default directory, used only if the application does - not specify a history filename. Changed due to long-ago (unsent) - bug report from OpenBSD - -{Makefile,config.h,configure}.in,externs.h,lib/sh/{dprintf.c,Makefile.in} - - change fdprintf to dprintf, which is the Posix standard interface, - look for it with configure, replace it if not available - - 2/28 - ---- -command.h - - add new subshell flag, SUBSHELL_RESETTRAP. Indicates to the trap - builtin that the shell is executing a command substitution and - should free the trap strings we left unfreed by reset_signal_handlers() - -trap.c - - free_trap_string() and free_trap_strings() are now compiled in - -builtins/trap.def - - if changing a signal disposition and the SUBSHELL_RESETTRAP flag is - set in subshell_environment, free the trap strings left unfreed by - reset_signal_handlers - -subst.c - - in command_substitute, set the SUBSHELL_RESETTRAP flag. This change - is for Austin Group Posix interpretation 53 - (http://austingroupbugs.net/view.php?id=53) - - 3/7 - --- -lib/sh/{Makefile.in,strchrnul.c},Makefile.in - - implementation of strchrnul, from gnulib - -configure.in,config.h.in - - look for strchrnul and compile in version in lib/sh/strchrnul.c if - not available - - look for mbsnrtowcs and define HAVE_MBSNRTOWCS if available - -lib/sh/xmbsrtowcs.c - - new function, xdupmbstowcs2, fast version of xdupmbstowcs used when - mbsnrtowcs is available and the indices are not required. Called - from xdupmbstowcs as required. Initial patch from - <0xe2.0x9a.0x9b@gmail.com> - - 3/22 - ---- -print_cmd.c - - call print_deferred_heredocs virtually every time a recursive call - to make_command_string_internal is made so here documents get - printed correctly when they are attached to commands inside compound - commands such as for and while. Fixes bug reported by Mike - Frysinger - - 3/25 - ---- -builtins/printf.def - - fix have_precision case in PF macro to call printf with precision - instead of fieldwidth argument. Fixes bug reported by Rob Robason - - - 3/26 - ---- -trap.[ch] - - new function, signal_is_hard_ignored, returns true if the shell - inherited SIG_IGN as a signal's disposition - - new function, set_original_signal (sig, handler), provides interface - for rest of shell to set original_signals[sig] = handler - -execute_cmd.c - - execute_disk_command needs to call reset_terminating_signals in the - child process before resetting traps with restore_original_signals - -builtins/trap.def - - call initialize_terminating_signals before calling display_traps for - trap -p or trap without any other arguments. Possible future use - -lib/readline/complete.c - - rl_filename_completion_function needs to call - rl_filename_dequoting_function with `dirname' (which has already - been tilde-expanded) instead of `users_dirname', because it calls - opendir with `dirname'. Fixes bug reported by Stefan H. Holek - - - 3/27 - ---- -sig.c - - experimental change to set_signal_handler: when setting the SIGCHLD - handler, set the SA_RESTART flag so that interruptible system calls - get restarted after a child dies. Fixes bug reported by Tomas - Trnka , but needs further evaluation - -lib/sh/eaccess.c - - eaccess(2) apparently does only half the job: it does not check that - the permission bits on a file actually allow, for instance, execution. - Need to augment with a call to sh_stataccess if eaccess returns - success on FreeBSD. Fixes FreeBSD problem reported by Johan Hattne - - - 3/28 - ---- -parse.y,bashline.c,externs.h - - history_delimiting_chars now takes a const char * as an argument: - the line being added to the history. Changed callers - -parse.y - - bash_add_history should not add a semicolon separator if the current - history entry already ends in a newline. It can introduce syntax - errors (e.g., when it results in a null command before a close brace). - Fixes bug reported by Andreas Schwab - -parse.y - - history_delimiting_chars needs to return a newline instead of a - semicolon if it thinks the current line starts a here document - (if it contains `<<'). Also keeps track of the fact with a new - static variable, LAST_WAS_HEREDOC, so it can return the right - sequence of newlines later for the here-document body. Fixes bug - reported by Andreas Schwab - - 3/29 - ---- -lib/sh/eaccess.c - - if the system has faccessat, sh_eaccess will now use it in - preference to all other options - - 3/30 - ---- -subst.h - - new string_extract and extract_dollar_brace_string flag value: - SX_POSIXEXP, set if the shell is expanding one of the new Posix - pattern removal word expansions - -parser.h - - new definitions for "word expansion state", shared between parse.y - and subst.c - -subst.c - - include parser.h - - 4/9 - --- -builtins/declare.def - - make sure declare_internal calls bind_assoc_variable with newly- - allocated memory for the key argument when using an implicit key - of "0". Bug report and fix from Andreas Schwab - - - 4/14 - ---- -lib/readline/input.c - - restructure the rl_event_hook loop in rl_read_key to call the - event hook after rl_gather_tyi() returns and rl_get_char has - a chance to collect the input. Previous behavior was to call - the event hook before attempting to read input. Problem - reported by Anant Shankar - - 4/15 - ---- -builtins/fc.def - - fc_builtin needs to check whether the calculation of last_hist - leaves hlist[last_hist] == 0, and keep decrementing it until it - leaves a non-null history entry or goes < 0. Currently only - does this if saved_command_line_count > 0, indicating we're - trying to edit a multi-line command. Fixes bug reported by - Roman Rakus - - 4/17 - ---- -subst.c - - new process substitution helper functions: - unlink_fifo - closes a single FD or FIFO - num_fifos - returns number of open FDs or active FIFOs - copy_fifo_list - returns a bitmap of open FDs or active FIFOs - by index into appropriate list (dev_fd_list or fifo_list) - close_new_fifos - take a bitmap saved by copy_fifo_list and - call unlink_fifo on any FD or FIFO open at the time of the - call that is not marked as active in list - -execute_cmd.c - - execute_builtin_or_function: use new framework to close process - substitution FDs or FIFOs created by a shell builtin or shell - function. Fixes bug reported by Charles Duffy - -doc/{bash.1,bashref.texi} - - document 'C and "C constants for printf builtin - - 4/22 - ---- -lib/readline/complete.c - - new function to return screenwidth for use when displaying possible - matches: complete_get_screenwidth; changed uses of _rl_screenwidth - to use complete_get_screenwidth(). - - change complete_get_screenwidth to query (readline-private) - _rl_completion_colums, $COLUMNS, then _rl_screenwidth in that order - - change rl_display_match_list to deal with limit < 0 (which implies - that cols == 0) when _rl_screenwidth > 0 - -lib/readline/bind.c - - new bindable variable: completion-display-width, controls the - number of columns used when displaying completions with new - sv_compwidth function to call when value is set or unset - -lib/readline/doc/{readline.3,rltech.texi} - - documented completion-display-width variable - - 4/23 - ---- -execute_cmd.c - - change execute_in_subshell to reset trap handlers without freeing - the trap strings and set SUBSHELL_RESETTRAP. In line with Austin - Group interp #53 (trap in a subshell). - - ditto for execute_simple_command where it can be determined that - the shell is going to run a builtin or function in a subshell - -trap.c - - new function, get_all_original_signals, retrieves the original - signal disposition for all signals - -trap.h - - extern declaration for get_all_original_signals - -builtins/trap.def - - change showtrap to display signals that are "hard ignored" as - trap commands to ignore them, even though that trap command would - be a no-op. Partial fix for feature request from Siddhesh - Poyarekar - - change trap_builtin to call get_all_original_signals before displaying - traps. This will show inherited ignored signals. Rest of feature - request from Siddhesh Poyarekar - -lib/readline/histexpand.c - - fix history_tokenize_word so that it understands $(...) and the - <(...) and >(...) expansions as a single word - - change history_tokenize_word so that it understands extended shell - globbing patterns as a single word. Code is very similar to - $(...) code above. Bug reported by Rajeev V. Pillai - - - 4/24 - ---- -lib/readline/vi_mode.c - - add checks to rl_vi_char_search to make sure we've already done a - search if the command is `;' or `,', and return immediately if we - have not. Fixes bug reported by Eric Ho - -lib/readline/text.c - - make sure `dir' is in the valid range before searching in - _rl_char_search_internal. Range checks in the code depend on it - being non-zero - - 5/3 - --- -lib/readline/complete.c - - in rl_complete_internal, if show-all-if-ambiguous or - show-all-if-unmodified are set (what_to_do == '!' or '@', - respectively), and the common match prefix is shorter than the - text being completed, inhibit inserting the match. - The guess is that replacing text with a shorter match will not - be wanted - - 5/20 - ---- -lib/sh/unicode.c - - new file, with unicode character conversion-related code. Will be - used to implement \u and \U escapes where appropriate, and for - other unicode-related functions in the future - - 5/21 - ---- -builtins/printf.def - - add code to handle \u and \U escapes in format strings and arguments - processed by the %b format specifier - -lib/sh/strtrans.c - - add code to handle \u and \U escapes as unicode characters, works for - both `echo -e' and $'...' - -doc/{bash.1,bashref.texi} - - document new \u and \U escape sequences for $'...' and echo (printf - defers to the system's man page or Posix) - - 5/24 - ---- -execute_cmd.c - - change execute_disk_command to return a status, instead of just - leaving it in `last_command_exit_value', since the parent's return - value is sometimes used (e.g., when a restricted shell refuses to - run a command with a `/'). Fixes bug reported by David Pitt - - - 5/25 - ---- -bashline.c - - change bash completion functions to save and restore the value of - rl_ignore_some_completions_function, and set it to the bash default - of filename_completion_ignore where appropriate. Fixes bug - reported by Henning Bekel - -variables.c - - new convenience function: find_global_variable (name). Looks for - NAME in the global variables table, skipping any local and - temporary environment variables - -builtins/declare.def - - add new -g option to declare/typeset/local, forces variables to be - created or modified at the global scope when executing inside a - shell function. Requested by many, most recently by - konsolebox@gmail.com - - 5/27 - ---- -test.c - - added new `-v var' unary test operator; returns TRUE if var is set - (i.e., has been assigned a value). Works in both test builtin and - [[ conditional command - -doc/{bash.1,bashref.texi} - - documented new `-v var' unary conditional operator - -tests/test.tests - - added tests for new -v var operator - -builtins/kill.def - - change kill builtin so -PID (pgrp specification) following a - -s sig or -n sig option is not interpreted as a signal specification. - Fixes bug reported by Roman Rakus - -builtins/evalstring.c - - in parse_and_execute, if parse_command() returns non-zero, - indicating a parse error, exit the shell if the conditions require - a posix-mode non-interactive shell to abort (parse error in a `.' - script or eval string). Bash-4.1 only printed a warning. This is - from Austin Group interp 114 - -doc/bashref.texi - - add note to the posix mode section of the texinfo manual noting - the changed behavior for `.' and `eval' - -parse.y - - change time_command_acceptable to allow TIME token to appear after - BANG token (to allow `! time foo', which is supposed to be valid) - - change pipeline_command production to allow multiple instances of - `!' (which toggle inverting the return status) and `time' (which - have no effect) - -execute_cmd.c - - In posix mode, `time' without a following pipeline prints the - elapsed user, system, and real time for the shell and its - children since the shell was invoked. - It's like `times' but obeys the setting of TIMEFORMAT. A future - revision of Posix will require this - -doc/{bashref.texi,bash.1} - - document new posix mode use of `time' - -parse.y - - add production to pipeline_command that permits `!' by itself to - be equivalent to `false' (and, with the changes above, permits - `! !' to be roughly equivalent to `true'). A future revision of - Posix will require this - - 5/28 - ---- -parse.y - - fix \W prompt expansion to use memmove instead of strcpy, since the - source and target strings overlap (though you think it wouldn't - matter, since the overlapping regions are never touched at the same - time). Fixes bug reported by Stéphane Jourdoi - - -parse.y - - Posix interp 217 states that $(( must be parsed first as an - arithmetic expansion, so avoid attempting to parse it as a nested - command substitution. Fixes bug reported by several, most recently - - -subst.c - - change extract_delimited_string to process nested $( as a possible - command substitution, but only if already parsing an arithmetic - expansion. Rest of fix for Posix interp 217 - - change parameter_brace_expand_rhs to make the := expansion operator - perform quote removal and both assign the result to the variable and - return it as the result of the expansion, rather than assign the - value after quote removal but return the value before quote removal. - Posix interp 221 - - introduce new internal quoting flag: Q_DOLBRACE. Denotes a double- - quoted ${...} expansion. In this case, Posix interp 221 requires - that a backslash quoting an embedded `}' be removed, even though it's - not one of the characters marked as special inside double quotes. - Set in parameter_brace_expand, used by expand_word_internal. - -parse.y - - introduce new parsing state, P_DOLBRACE, set when parsing a ${...} - expansion - - set a "dolbrace operator state" in parse_matched_pair to decide - whether the lexer is reading the param, op, or word in - ${paramOPword}. Will be used to decide whether or not to treat - single quotes specially in a double-quoted "${...} - - 5/29 - ---- -parse.y - - change parse_matched_pair so that a single quote appearing in a - double-quoted ${...} expansion is not special unless the expansion - operator is `#[#]' or `%[%]'. Posix interp 221 - -subst.c - - change string_extract_double_quoted so that a single quote appearing - in a double-quoted ${...} expansion is not special unless the - expansion operator is `#[#]' or `%[%]'. Posix interp 221 - -doc/bashref.texi - - document posix-mode effects of Posix interp 221 - - add section describing GNU parallel as requested by Stallman - -lib/readline/complete.c - - broke code that compares filenames read from the file system (and - possibly converted) to words being completed out into a separate - function: complete_fncmp - - augment complete_fncmp to treat hyphen and underscore as equivalent - when comparing filenames if _rl_completion_case_map is set - -lib/readline/rlprivate.h - - new extern declaration for _rl_completion_case_map - -lib/readline/util.c - - change _rl_strnicmp to return the difference between the characters, - like strcasecmp, and not modify the pointers it is passed - - change _rl_stricmp to not modify the pointers it is passed - -lib/readline/bind.c - - new bindable variable, "completion-case-map", toggles value of - _rl_completion_case_map - -lib/readline/doc/{rluser.texi,readline.3} - - document new bindable readline variable "completion-case-map" - -execute_cmd.c - - change execute_function to reset funcnest and jump back to top level - if funcnest exceeds funcnest_max - - use funcnest_max as a max function nesting level, if set to numeric - value greater than 0 (defaults to 0, so inactive) - -variables.c - - new variable FUNCNEST, controls funcnest_max value if set to numeric - value > 0 -sig.c - - reset funcnest to 0 when throw_to_top_level occurs - -doc/{bash.1,bashref.texi} - - document FUNCNEST variable and its effect on function execution - -lib/readline/funmap.c - - add new bindable command names to avoid case-insensitive matching - problems between, for instance, vi-fword and vi-fWord: - - vi-forward-word - vi-forward-bigword - vi-backward-word - vi-backward-bigword - vi-end-word - vi-end-bigword - - Suggested in a different form in 2006 (!) by Servatius Brandt - - -builtins/mapfile.def - - run_callback now takes a new third argument: curline, the line - currently being read and about to be assigned - - the callback function/command now takes an additional argument: - the line to be assigned to the array index. Feature suggested by - Dennis Williamson - -doc/{bash.1,bashref.texi} - - document new additional `line' argument to mapfile callback - - 5/30 - ---- -builtins/printf.def - - add new %(fmt)T format specifier, where FMT is a strftime format. - Argument is number of seconds since the epoch, with -1 meaning - current time (roughly date +%s) and -2 meaning shell start time - (roughly $SECONDS, unless it's been assigned a value or unset). - Fieldwidth and precision are preserved, strftime result is printed - as with %[-][[fieldwidth][.[precision]]]s - -doc/{bash.1,bashref.texi} - - document new %(datefmt)T printf format specifier and special - arguments - -builtins/hash.def - - don't permit programs with slashes to be entered into the hash table - at all, even with the -p option. Inconsistency pointed out by - Jan Schampera - -builtins/shopt.def - - add `compat41' option in preparation for bash-4.2 - - 6/6 - --- -lib/readline/vi_mode.c - - finish restructuring rl_vi_domove and the functions that call it so - it works in callback mode, including numeric arguments. Requested - a long time ago by Bob Rossi - -lib/readline/callback.c - - arrange to call appropriate callback when readline state indicates - RL_STATE_VIMOTION, so vi motion commands like `cw' and `d2w' are - handled in callback mode - -lib/sh/wcswidth.c - - replacement wcswidth implementation - -aclocal.m4 - - add REPLACE_FUNCS(wcswidth) to BASH_CHECK_MULTIBYTE - -execute_cmd.c - - fix select_query and print_index_and_element to compute correct - display width of select list elements in presence of multibyte - characters. Bug reported by Bernd Eggink - -builtins/cd.def - - add posix-mandated -e option; currently ignored in most circumstances - -doc/{bash.1,bashref.texi} - - document new `cd -e' option - - 6/12 - ---- -arrayfunc.c - - change array_value_internal to treat negative subscripts to indexed - arrays, offset from array_max_index(x) + 1, so foo[-1] is the last - element of $foo - -subst.c - - Change verify_substring_values to allow negative length specifications - when using string variables or array members. Negative lengths - mean to return characters from OFFSET until (${#var} - N) for - {var:offset:-N}. Feature requested by Richard Neill - - -doc/{bash.1,bashref.texi} - - document new behavior of negative subscripts to indexed arrays - - document new behavior of negative LENGTH in substring expansion - -configure.in - - change version to bash-4.2-devel - -variables.c - - make sure initialize_shell_variables calls sv_xtracefd if - BASH_XTRACEFD is inherited in the shell environment. Fixes but - reported by - - 6/13 - ---- -lib/readline/complete.c - - change get_y_or_n to always return 1 when in callback mode, so we - don't do a blocking read. Have to wait until readline-7.0 to add - a state so we can use callbacks, since that will change public - interface - - 6/17 - ---- -subst.c - - fix memory leak in parameter_brace_expand: when performing pattern - removal with parameter_brace_remove_pattern, make sure `name' is - freed. Fixes bug reported by oyvindh@dhampir.no - - 6/23 - ---- -{parse.y,subst.c} - - make the ${param//pat/rep}, ${param^pat}, and ${param,pat} expansions - require single quotes and double quotes to match when within double - quotes. This way every expansion except the Posix ones behaves as - bash has always behaved - -subst.c - - change remove_upattern and remove_wpattern to return their first - argument if nothing matches, change callers to allocate memory - appropriately - - change remove_pattern to short-circuit and return copy of PARAM - if remove_wpattern returns its first argument (indicating no match) - rather than convert back to multibyte string, allocating new memory - twice and calling wcsrtombs - - 6/24 - ---- -execute_cmd.c - - add missing initializers for sh_coproc to eliminate a compiler - warning. Patch from Werner Fink - - 6/27 - ---- -parse.y - - add `TIMEIGN' token to handle `time -p -- ...'. Pointed out by - Laszlo Ersek on austin-group list - - 6/28 - ---- -jobs.c - - treat a shell with (subshell_environment&SUBSHELL_PIPE) != 0 like - a command substitution in wait_for and act like we received a - SIGINT if a job we're waiting for dies of SIGINT. Fixes bug - reported by Ilya Basin - - 7/2 - --- -jobs.c - - if fork() fails in make_child, try to reap some dead children before - retrying - -execute_cmd.c - - change execute_pipeline to run the last command of a non-asynchronous - pipeline in the current shell environment if the `lastpipe' shell - option is enabled and job control is not active. Code from - Werner Fink - -parse.y - - Posix says (issue 267) that time is not recognized as a keyword - if the next token begins with a `-' - -doc/{bash.1,bashref.texi} - - changed the descriptions of BASH_SOURCE, BASH_LINENO, and FUNCNAME - as proposed in Ubuntu bug 591677. - - document new `lastpipe' shell option that runs last command of a - pipeline in the current shell environment - - document new posix-mode behavior with `time -p' - - 7/5 - --- -aclocal.m4 - - new autoconf test WEXITSTATUS_OFFSET, bit offset in status word - returned by wait() of the process's exit status - -jobs.[ch] - - change stop_pipeline to return the actual index of the job just - created and added to the jobs table, instead of the current job - - job_exit_status and job_exit_signal are now global functions, with - extern declarations in jobs.h - - append_process: new utility function for use by the lastpipe code, - takes info, creates a PROCESS from them, and adds it to the end of - the passed job id's pipeline. lastpipe code uses it to add a dummy - process for the last command in the pipeline - - freeze_jobs_list: new utility function so rest of shell can freeze - the jobs list. Used by the lastpipe code - -execute_cmd.c - - changes to lastpipe code to make `pipefail' option, $PIPESTATUS, and - $? work correctly. Uses append_process and job_exit_status - - 7/10 - ---- -subst.c - - when performing pattern substitution word expansions, a `&' in the - replacement string is replaced by the text matched by the pattern. - The `&' can be quoted with a backslash to inhibit the expansion. - CURRENTLY DISABLED - - 7/13 - ---- -pcomplib.[ch] - - new member for struct compspec: lcommand. for future use - - 7/15 - ---- -parse.y - - fix problem in parse_comsub where extra space was added to here-doc - delimiter if the first word in the comsub contained a `/'. Fixes - bug reported by Alex Khesin - - 7/20 - ---- -parse.y - - change reserved_word_acceptable to return success if the last two - tokens read were `function WORD'. Allows function definitions like - function good [[ -x foo ]];. Fixes bug reported by Linda Walsh - - -doc/{bash.1,bashref.texi} - - change function definition meta-syntax to make it clearer, rather - than let the text note the optional portions - - 7/24 - ---- -bashhist.c - - change bash_history_inhibit_expansion() to suppress history expansion - for $! parameter expansion. Fixes debian bug #589745 submitted by - Frank Heckenbach - -lib/readline/terminal.c - - change rl_resize_terminal to always fetch the new terminal size and - only force the redisplay if _rl_echoing_p is non-zero. Fixes bug - reported by Balazs Kezes - - 7/25 - ---- -lib/readline/xfree.c - - new file, contains definition of xfree moved from xmalloc.c - - 7/28 - ---- -variables.c - - check suspect return values from bind_variable before trying to use - the returned SHELL_VAR *. Changes to: initialize_shell_variables, - bind_int_variable, FIND_OR_MAKE_VARIABLE. Fixes bug reported by - Roman Rakus - - 7/31 - ---- -lib/readline/rltty.c - - fix rl_prep_terminal and rl_deprep_terminal to use fileno(stdout) - if rl_instream is NULL. Fixes bug reported by Otto Allmendinger - otto.allmendinger@googlemail.com - - 8/2 - --- -lib/sh/casemod.c - - if the passed string is NULL or empty, return it immediately. Fixes - bug reported by Dennis Williamson - -subst.c - - fix pat_subst to cope with the passed string being NULL - -arrayfunc.h - - added flag values for array_value_internal and its callers; converted - array_value_internal `allow_all' parameter into a general flags word - - get_array_value now takes a flags value - - changed array_value internal to use *indp as an index to use if the - AV_USEIND flag is set, rather than recomputing it - -subst.c - - get_var_and_type takes two new parameters: a flags word and an index - that represents an already-computed index for an array reference - (just indexed arrays so far). Index is used and passed to array_value - if flags includes AV_USEIND - - parameter_brace_expand_word takes a new argument: the already- - computed index; returns W_ARRAYIND if word expanded is being used - as an array index - - changed parameter_brace_casemod, parameter_brace_patsub, - parameter_brace_substring, parameter_brace_remove_pattern to take new - flags and index arguments from parameter_brace_expand_word. They - pass the new parameters along to get_var_and_type to use an - already-computed array index if necessary. Fixes bug where array - indexes are computed twice reported by Andrew Benton - - -doc/bash.1,lib/readline/doc/{history.3,hsuser.texi} - - modified description of history event designators to clarify that - all non-absolute event designators are relative to the current - position in the history list. Question raised by Frank - Heckenbach as debian bash bug 590012 - - 8/5 - --- -subst.c - - remove code that does not add a quoted null when the input string - is partially quoted; subsequent word splitting may require it. - Fixes bug reported by Eric Blake - - 8/12 - ---- -lib/glob/gmisc.c - - move match_pattern_wchar and match_pattern_char to new file in - glob library - - new functions: wmatchlen(pat, max) and umatchlen(pat, max), computes - number of characters PAT will match. Returns the number of chars - that will be matched or -1 if the match length is indeterminate - (i.e., contains a `*') - -subst.c - - use umatchlen/wmatchlen in match_upattern/match_wpattern to bound - the number of match attempts in large strings to (usually) one, - depending on match length. Fixes performance problems with - pattern substitution in large strings noted by Yi Yan - . Can be applied to remove_[uw]pattern also - - 8/13 - ---- -bashhist.c - - in maybe_append_history, change check for history_lines_this_session - so that we append the lines to the file if it's equal to the value - returned by where_history(). This means that without this change, - the history won't be appended if all the lines in the history list - were added in the current session since the last time the history - file was read or written. Fixes bug reported by Bruce Korb - - -shell.h,parse.y - - add prompt_string_pointer to the parser_state struct saved and - restored by {save,restore}_parser_state. Fixes both bugs exposed - by bash_completion and completion of open backquotes reported by - Egmont Koblinger - -subst.h - - new flag for skip_to_delim: SD_EXTGLOB. Skip extended globbing - patterns while looking for ending delimiter - -subst.c - - when passed the SD_EXTGLOB flag, skip_to_delim skips over extended - globbing patterns (when extended_glob is set) while looking for a - character in the delimiter set - -pathexp.c - - split_ignorespec: new function to replace calls to extract_colon_unit - in setup_ignore_patterns. uses skip_to_delim with the SD_EXTGLOB - flag to skip over extended globbing patterns in variables like - HISTIGNORE and GLOBIGNORE. Fixes bug reported by Dimitar DIMITROV - and Greg Wooledge - - 8/28 - ---- -lib/readline/rlprivate.h - - add members to search_cxt to save _rl_keymap - - new flag for isearch context: SF_CHGKMAP, set if we changed the - keymap while reading a character for the search string that - translated to a command - -lib/readline/isearch.c - - save current readline keymap in cxt->keymap and cxt->okeymap - in _rl_scxt_alloc - - in _rl_isearch_dispatch, only check for cxt->lastc as a member of - cxt->search_terminators if it's > 0 (i.e., not an isearch opcode) - - 9/3 - --- -support/signames.c - - add Solaris SIGJVM1 and SIGJVM2. Update from Stefan Teleman - - -shell.c - - instead of closing all fds 3-20 at shell startup, just set them to - be close-on-exec. Report from Rainer Mülle - -lib/readline/isearch.c - - in _rl_isearch_dispatch, if the current character maps to ISKMAP, - move to the indicated keymap (using cxt->keymap) and go on to - read another character. Fixes problem reported by Davor - Cubranic - - in _rl_isearch_dispatch, after translating key to possible opcode, - restore _rl_keymap from cxt->okeymap if necessary - - in _rl_isearch_dispatch, use key sequences that map to default - functions that ^G, ^W, and ^Y map to as equivalent to those chars - -lib/readline/complete.c - - new variable, _rl_menu_complete_prefix_first, zero by default - - change menu_complete to display common prefix (matches[0]) first - before cycling through rest of match list if - _rl_menu_complete_prefix_first is non-zero. Suggested by Sami - Pietila - -lib/readline/bind.c - - new bindable readline variable, "menu-complete-display-prefix", - controls setting of _rl_menu_complete_prefix_first - -doc/{bash.1,bashref.texi},lib/readline/doc/{readline.3,rluser.texi} - - added description of menu-complete-display-prefix bindable - readline variable - - 9/17 - ---- -configure.in - - remove AM_PATH_LISPDIR call since we don't use that bash debugger - any more. Suggested by Mike Frysinger - - 10/6 - ---- -findcmd.c - - change executable_file to set errno to EISDIR if the passed name - is a directory - -builtins/exec.def - - change exec_builtin to report appropriate error message if the - file argument is a directory. Noted by Eric Blake - in a message to austin-group - -builtins/source.def - - change source_builtin to make sure the shell exits if the file is - not found when in a non-interactive shell running in posix mode - and source_searches_cwd == 0 (as posix mode makes it by default). - Pointed out in http://thread.gmane.org/gmane.comp.shells.dash/291/focus=392 - by Jilles Tjoelker - -execute_cmd.c - - set executing_command_builtin in execute_builtin if the builtin is - command_builtin. Unwind-protected in execute_function_or_builtin - (like executing_builtin variable). Available for rest of shell - -builtins/{source.def,evalfile.c} - - make sure that non-interactive posix mode shells exit if the file - argument to `.' is not found only if they are not being executed - by the command builtin (executing_command_builtin == 0). This is - how `command' can cancel effects of special builtin exit properties - in the case of `dot file not found' - - 10/13 - ----- -lib/sh/strtrans.c - - pass \c through unchanged if not escaping for `echo -e' and they are - the final two characters in the string - - 10/15 - ----- -subst.c - - extract_dollar_brace_string: fix problem with single quotes - in unquoted ${...} for Posix compliance - - 10/16 - ----- -builtins/exec.def - - catch return value from shell_execve; don't print duplicate error - message if return value is EX_NOTFOUND. Make sure exit status - from exec is 127 if command is not found - -execute_cmd.c - - fix typo (`saved_redirects' should be `saved redirects') in - execute_function_or_builtin `command exec' case. Typo caused - too much of the unwind-protect stack to be discarded - - in same execute_function_or_builtin case, don't discard the - `saved redirects' frame unconditionally; only discard it if - saved_redirects is non-null in the `command exec' case. Fixes - sh -c 'command exec; exit 1' hanging bug uncovered by FreeBSD - sh test cases - - 10/18 - ----- -subst.c - - when in posix mode, shell should not exit if a variable assignment - error (e.g., assigning to readonly variable) occurs preceding a - command that is not a special builtin. Fixes bug uncovered by - FreeBSD sh test cases - - when in posix mode, the ${!?} and ${!#} expansions are not indirect - expansions, but posix word expansions involving the `!' variable - -parse.y - - fix parse_comsub so that it does not skip backslash-newline when - parsing a comment - - 10/19 - ----- -subst.c - - fix parameter_brace_expand so that an attempt to use the % or # - expansions on an unset variable with -u set will cause a non- - interactive shell to abort. Posix change - - fix parameter_brace_expand so that an attempt to use pattern - substitution or case modification expansions on an unset variable - with -u set will cause and unbound variable error and make a - non-interactive shell abort - - change parameter_brace_expand_length to return INTMAX_MIN if a - positional parameter is unset and -u is set - - if parameter_brace_expand_length returns INTMAX_MIN when -u is set, - treat it as an unbound variable error and make a non-interactive - shell abort. Posix change - - change parameter_brace_expand_length to return INTMAX_MIN if an - implicit reference to array[0] is made ${#array} and array[0] is - not set when -u is set - - 10/20 - ----- -builtins/cd.def - - Posix 2008 says that if no matching directories are found in $CDPATH, - use the directory name passed as an operand and go on. Posix change - -doc/bashref.texi - - change Posix mode section with latest additions and removals - - 11/4 - ---- -lib/readline/complete.c - - fix rl_menu_complete and rl_old_menu_complete to keep incrementing - match_list_index by match_list_size as long as it's < 0. Fixes - bug reported by jeenuv@gmail.com - -braces.c - - make mkseq() take intmax_t arguments for sequence start and end - and make sure it's passed intmax_t values. Fixes bug reported by - Pete Gregory - -sig.c - - if termsig_handler is called when terminate_immediately == 1, - assume we're being called as a signal handler and set - history_lines_this_session to 0 to inhibit history file being - written on shell exit. Fixes long-standing bug most recently - observed by Andreas Schwab - - 11/5 - ---- -redir.c - - add_undo_close_redirect now returns int, 0 on success, non-zero on - failure. Currently always succeeds - - new macro REDIRECTION_ERROR to make do_redirection_internal return - value of errno - - change do_redirection_internal to call REDIRECTION_ERROR after - saving file descriptor and make do_redirection_internal return error - if add_undo_redirect or add_undo_close redirect fails. This makes - failure to save a file descriptor a redirection error and the shell - behaves appropriately. Fixes bug reported by Eric Blake - - -bashline.c - - modify bash_forward_shellword to correctly handle quoted strings, - especially if point is in a quoted string when function is invoked. - Fixes bug reported by Daniel Colascione - -configure.in - - change version to 4.2-alpha - - 11/7 - ---- -lib/readline/text.c - - in rl_insert, if we're not in the multibyte code path, don't try to - optimize and insert all of the available typeahead input if we're - reading input from a macro. Fixes bug reported by Andre Majorel - - -lib/readline/text.c - - break out multibyte guts of rl_forward_char into a separate function - _rl_forward_char_internal that does nothing but calculate the new - value of point - - change rl_forward_char to call _rl_forward_char_internal instead of - having equivalent code inline - -lib/readline/rlprivate.h - - new extern declaration for _rl_forward_char_internal - -lib/readline/vi_mode.c - - change _rl_vi_append_forward to call _rl_forward_char_internal to - set rl_point, instead of calling rl_forward_char. When at the end - of the line, rl_forward_char will ring the bell. Fixes debian - bash bug 601042, reported by Alan J. Greenberger - - 11/14 - ----- -subst.c - - fix match_upattern to use correct test to immediately break out of - loop (when potential match length is greater than number of chars - remaining in the string) in MATCH_ANY case - - 11/15 - ----- -subst.c - - include "typemax.h" to make sure we have a definition of INTMAX_MIN - - 11/16 - ----- -lib/sh/unicode.c - - make sure `localconv' isn't declared on machines without iconv - - add stub_charset for systems that don't have locale_charset: looks - up LC_CTYPE, returns everything after last `.', "UTF-8" if the - value is exactly "UTF-8", and "ASCII" otherwise - - 11/20 - ----- -lib/readline/vi_mode.c - - in rl_domove_motion_callback, make sure to use m->key instead of - key, which is not initialized and should not be used. Bug report - from Andreas Schwab - - in rl_vi_domove, make assignment to `m' explicit instead of - relying on evaluation order semantics, since the C standard leaves - them unspecified. Bug report from Andreas Schwab - - - 11/21 - ----- -lib/sh/shquote.c - - sh_single_quote and sh_double_quote now take a const char * - argument. Fixes problem pointed out by Joachim Schmitz - - -externs.h - - change extern declarations for sh_single_quote and sh_double_quote - -lib/sh/strchrnul.c - - make sure that return value is cast to (char *) if we're using a - part of the passed (const char *) argument. Fixes problem pointed - out by Joachim Schmitz - -lib/glob/gmisc.c - - fix a typo that mixed up defines for LPAREN and RPAREN. Bug and - fix from Andreas Schwab - - use WLPAREN and WRPAREN in multibyte character environments - - fixed typos using L'cc' in a non-wide-char environment - -lib/readline/complete.c - - fix rl_filename_completion_function to dequote users_dirname if - there is a filename dequoting function (as well as dirname), since - users_dirname gets tacked back onto the beginning of the possible - completions and then requoted. Bug reported by Andreas Schwab - - - 11/22 - ----- -lib/readline/parens.c - - the `blink-matching-paren' variable should default to off - - 11/23 - ----- -subst.h - - add extern declaration for close_new_fifos() - -lib/sh/fnxform.c - - fix curencoding to return the character past the `.', not a string - beginning with `.' - -lib/sh/unicode.c - - fix stub_charset to do the same cut-off at `@' as curencoding(). - These two functions should be combined - -builtins/printf.def - - document new %(datefmt)T modifier in help text - - 11/24 - ----- -parse.y - - fix `W' case in decode_prompt_string: memmove was copying one too - few bytes and missed the closing NUL. Bug report from Tim Mooney - - - 11/26 - ----- -subst.c - - in expand_word_internal, don't add quoted nulls to partially- - quoted strings if the word will not be subjected to word splitting - later (which will remove the quoted null). Fixes bug reported by - Rocky Bernstein - - 11/28 - ----- -subst.c - - change multibyte case of match_pattern to revert to match_upattern - if neither the pattern nor the string has any multibyte characters - -alias.c - - fix tests of backslash-escaped characters in skipquotes, skipws, - rd_token to check for backslash at EOS and not go past the end. - Fixes debian bug 603696 reported by Tim Small - -include/shmbchar.h - - new file, mbchar.h from gnulib minus the include - -lib/sh/shmbchar.c - - new file, mbchar.c from gnulib with additions - - moved mbstrlen from subst.c to here, changed initialization of mbs - - change mbstrlen to use is_basic to avoid calls to mbrlen for ASCII - chars; code hints from gnulib - - don't copy mbs and mbsbak if we're not calling mbrlen - - 11/29 - ----- -lib/glob/smatch.c - - change xstrmatch to use internal_strmatch() if the pattern and - string don't have any multibyte characters - - 11/30 - ----- -include/shmbutil.h - - change ADVANCE_CHAR and ADVANCE_CHAR_P macros to use is_basic and - only call mbrlen and copy state and state_bak if is_basic returns - false (non-ASCII). Called all over the place. - - change rest of macros except BACKUP_CHAR and BACKUP_CHAR_P in the - same way - - 12/2 - ---- -subst.c - - audit all calls to string_list and make sure caller can handle a - NULL return value. Fixes bug reported by David Rochberg - - -general.h - - change sh_wassign_func_t to take an additional argument: an int - flags word - -subst.c - - change do_word_assignment to take an additional argument to match - wassign_func_t; change callers - - change call to (*assign_func) in expand_word_list_internal to match - new wassign_func_t prototype - - (*assign_func) passes 1 as additional arg if the simple command is - a builtin or function, in which case the assignment to the - temporary env should take effect - -variables.c - - change assign_in_env to take an additional argument to match - wassign_func_t; change callers - - move call to sv_ifs from dispose_temporary_env to - dispose_used_env_vars; we don't need to do it if called from - merge_temporary_env - - 12/3 - ---- -variables.c - - change dispose_temporary_env to maintain a list (tempvar_list) of - variables that need to be handled specially. If a variable that - gets freed by push_temp_var or propagate_temp_var is one of the - variables that the shell handles specially (IFS, LANG, etc.), it's - stored on the list. For each variable in this list, - dispose_temp_var calls stupidly_hack_special_variables. - - assign_in_env calls stupidly_hack_special_variables if flags arg - is non-zero, so variable assignments affect current shell - execution environment if a builtin or function is being executed. - Fixes bug reported by Bruno Haible - - 12/5 - ---- -subst.c - - use mbsmbchar on both string and pattern in match_pattern instead - of strlen and mbstrlen; only go through the strings once - - 12/6 - ---- -lib/readline/kill.c - - in rl_yank_last_arg, only switch directions if the `count' - argument is < 0, not < 1. This makes explicit count arguments of - 0 work as expected. Fixes bug reported by Dennis Williamson - - -doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} - - fix documentation for yank-last-arg to make it clear how the count - argument is set and how second and subsequent calls treat any - numeric argument - -doc/{bash.1,bashref.texi} - - slight changes to the description of test - - change \(bv to `|'; it seems that many `internationalized' versions - of groff don't render that as a vertical bar. Fixes Debian bug - 603805 - - 12/10 - ----- -configure.in - - changed release status to 4.2-beta - - 12/14 - ----- -[bash-4.2-beta frozen] - - 12/18 - ----- -redir.c - - change REDIRECTION_ERROR macro to accept a third argument: an - additional file descriptor to close before returning and error (pass - -1 to do nothing) - - change calls to REDIRECTION_ERROR to close appropriate file - descriptors. Fixes bug reported by Andreas Schwab - - - make sure to close any file descriptors opened for REDIR_VARASSIGN - before returning an error - - 12/19 - ----- -expr.c - - move processing of unary `-' and `+' to exp1 from exp0 to avoid - precedence problems. Fixes bug reported by <12bric@gmail.com> - - 12/22 - ----- -lib/sh/fpurge.c - - updated version from gnulib, inlined gnulib stdio-impl.h - - 12/24 - ----- -doc/bash.1 - - change the description of while and until to use `list-1' and - `list-2', similar to the Posix description. Suggested by - Jeff Haemer - - 12/27 - ----- -execute_cmd.c - - slight changes to execute_command_internal and how it captures the - exit status of (command) and shell control structures with pipes to - avoid multiple variable assignments to last_command_exit_value - - change to execute_simple_command so that parent branches of shells - forked to execute commands in pipelines don't change $? to 0 - (if (pipe_out != NO_PIPE) result = last_command_exit_value). Fixes - bug reported by Damien Nadà - - 12/28 - ----- -configure.in - - changed version to bash-4.2-rc1 - - 1/2/2011 - -------- -lib/readline/complete.c - - fix rl_filename_completion_function to dequote and save users_dirname - before calling any function to transform the directory name passed - to opendir(). Fix from Andreas Schwab - -lib/readline/doc/ - - make sure to note that rl_directory_completion_hook cannot modify - the directory name argument if it returns 0 - -bashline.c - - make sure that bash_directory_completion_hook consistently returns - non-zero whenever it modifies its directory name argument - -lib/readline/terminal.c - - don't bother with the declarations (extern or not) for PC, BS, and - UP if NCURSES_VERSION is defined, since ncurses defines local - versions of those symbols in the library. Fixes bug most recently - reported by Kevin Scott against Mac OS X - -include/filecntl.h - - make sure O_TEXT and O_BINARY are defined to avoid Windows-specific - (or cygwin-specific) code. This and the following changes from - Eric Blake for current cygwin systems - -input.h - - add a B_TEXT flag to note when the underlying file descriptor is - opened in O_TEXT mode - -lib/sh/tmpfile.c - - make sure temporary files are opened in binary mode (O_BINARY) on - systems where it matters - -input.c - - make sure to set the B_TEXT flag if the file descriptor has O_TEXT - in its flags (returned by fcntl) - - change b_fill_buffer to compensate for lseek() and read() returning - different offsets on files opened in O_TEXT mode - - cygwin now is able to lseek on files and set the unbuffered and text - flags appropriately, so can use the general test for a seekable fd - - now that cygwin uses O_TEXT or O_BINARY appropriately, we no longer - have to manually translate \r\n to \n - -redir.c - - remove the Cygwin-1.1 code from here_document_to_fd; cygwin is now - up to version 1.7 and can unlink an open file descriptor - - make sure temporary files used for here documents are opened in - binary mode (O_BINARY) on systems where it matters - -execute_cmd.c,parse.y - - make sure error messages use all printable characters in filenames - and strings - -{builtins/evalfile,shell,subst}.c - - remove cygwin-specific calls to setmode to force file descriptors - into text mode, since we're using text or binary mode according to - the mode of the mount point - -execute_cmd.c - - when creating pipes and making them stdin and stdout, make sure to - tell stdio that the mode of the underlying file descriptor may have - changed from text to binary - -subst.c - - when creating pipes for command substitution, make sure to - tell stdio that the mode of the underlying file descriptor may have - changed from text to binary - - 1/3 - --- -doc/{bash.1,bashref.texi} - - changes to the readonly documentation suggested by Jan Schampera - - - 1/4 - --- -builtins/read.def - - change bind_read_variable to consistently return NULL if there is some - kind of variable assignment error (e.g., assigning to a readonly or - noassign var) - - change read builtin to only call stupidly_hack_special_variables if - bind_read_variable returns non-NULL - - change read_builtin to return EXECUTION_FAILURE if there is an - assignment error (e.g., assigning to a readonly or noassign var). - Fixes bug reported by Jan Schampera - - 1/5 - --- -builtins/{help.def,common.c} - - change uses of a builtin's `short_doc' member to go through gettext - for possible translation before being displayed. Suggestion from - - - 1/6 - --- -shell.h - - new exit status define: EX_MISCERROR (2) - -builtins/getopts.def - - change getopts_bind_variable to return error if an attempt is made - to assign to a variable with the `noassign' attribute - - change getopts_bind_variable to return EX_MISCERROR if attempt is - made to assign to readonly or noassign variable - -builtins/cd.def - - change setpwd to return an int and return failure when PWD is - readonly; success otherwise - - change bindpwd to return failure if setpwd returns EXECUTION_FAILURE. - Inspired by message from Eric Blake - - change pwd builtin to return failure if PWD is readonly (and setpwd - returns EXECUTION_FAILURE) - - 1/8 - --- -lib/sh/eaccess.c - - on FreeBSD and Solaris, check the result of access(2) with mode X_OK - for root by checking sh_stataccess(). Same code as was added to - check result of eaccess(). Fixes Solaris 11 problem reported by - - - 1/10 - ---- -builtins/set.def - - add description of `--' to help text - -[bash-4.2-rc1 released] - - 1/14 - ---- -lib/readline/readline.h - - fix/update description of rl_directory_rewrite_hook - -lib/readline/complete.c - - if there are no directory rewrite or completion hooks, set dirname - to a duplicate copy of users_dirname instead of calling the - dequoting function again - -bashline.c - - use rl_directory_rewrite_hook instead of rl_directory_completion_hook - to avoid changing the directory name the user typed, other than - dequoting it. Fixes bug introduced by changes to directory - completion hook, pointed out first by William Bader - - - 1/16 - ---- -lib/sh/strftime.c - - portability and other (int->long) updates from Aharon Robbins - - -configure.in - - change release level to rc2 - - 1/17 - ---- -execute_cmd.c - - short-circuit select builtin if read_builtin returns anything but - EXECUTION_SUCCESS, not just EXECUTION_FAILURE. Fixes bug reported - by Pierre Gaston - - 1/19 - ---- -execute_cmd.c - - change execute_simple_command to save and restore the values of - executing_builtin and executing_command_builtin before discarding - the unwind-protect frame. Bug and fix from Werner Fink - - - 1/24 - ---- -variables.c - - change brand to set rseed to a known, constant value if it's 0, - so the sequence is known. Fixes issue reported by Olivier - Mehani - - 2/2 - --- -braces.c - - make sure to pass an `int' argument to asprintf in mkseq. Fixes - bug reported by Mike Frysinger - - 2/5 - --- -lib/glob/gmisc.c - - fix wmatchlen and umatchlen to initialize all state variables. Fix - from Andreas Schwab - -jobs.c - - change wait_for to call restore_sigint_handler right after exiting - the wait loop, instead of right before function returns. Reduces - the window for a SIGINT to be lost because a child does not exit - due to SIGINT - - 2/7 - --- -configure.in - - changed release status to `release' - - 2/9 - --- -execute_cmd.c - - make sure some variables are declared as volatile if necessary. Bug - report and fix from Eric Blake - -[bash-4.2 frozen] - - 2/11 - ---- -print_cmd.c - - in indirection_level_string, change to simpler test of result of - MBLEN (< 0 instead of MB_INVALIDCH) - diff --git a/CWRU/old-changelogs/CWRU.chlog.v2 b/CWRU/old-changelogs/CWRU.chlog.v2 deleted file mode 100644 index a494dd396..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v2 +++ /dev/null @@ -1,584 +0,0 @@ - -This documents the changes between the first `public' release of CWRU bash -and this, its second release. It summarizes, without going into detail, -the changes that have been made. - -NEW FEATURES - - o `getopts' builtin, as specified by Posix.2 - - o new configuration variable HAVE_UNISTD_H, used to include - and test for Posix features - - o `ulimit' has new -p and -n options to report the pipe buffer size - and number of available file descriptors, respectively - - o allow SIGCHLD to be trapped and useful behavior to result if it is - - o Posix termios and signal code for readline and the shell itself - - o can optionally use the GNU termcap library - - o new output for `times' builtin that looks like ksh: - - shell-user shell-sys - child-user child-sys - - o `ulimit' limits now apply to both shell and its children - - o new machines.h entries - - o no longer does the costly `close file descriptors 3-NOFILE' - each time it exec's a program -- now uses the close-on-exec - flag for the files it fiddles with - -NOTABLE BUG FIXES - - o jobs.c only sets and gets the tty state in an interactive shell - - o bash does better process group checking on Posix systems, eliminating - some error messages - - o fix for `infinite login' bug on System V machines when executing a - script from a .bash_profile - - o the `trap' command now behaves as 1003.2 specifies, as of draft 9 - - o restore original terminal process group upon exit, so as to not - confuse a parent Bourne shell - - o `bash file', where `file' is a binary file, now reports an error - - o shells started with `-s' now execute the .bashrc file - - -CHANGES (by date and files affected) - 9/20 - 9/30 - ----------- - -builtins.c, builtins.c.posix - - added getopts help text - - removed extra "let" from `let' error message - - added correct extern definition for list_rest_of_args() to shift - builtin - -jobs.c, jobs.c.posix - - removed bogus call to set_process_resource_limits() from - make_child() as a consequence of redoing `ulimit' - - initialize shell_tty to -1 - - only get or set the tty state after a command completes if the shell - is interactive - - use shell_tty in get_tty_state() and set_tty_state() instead of - reopening /dev/tty every time - -jobs.c.posix - - do better pgrp checking in initialize_jobs() to avoid error message - about not being able to setpgid(2) on startup - - changed tcsetattr() error messages slightly - -expr.c - - avoid advancing beyond the end of the expression when reporting an - error - - NULL expressions now return 0 ($[], for example) - -mailcheck.c - - #ifdef redundant definition of NOW, which is also defined in - general.h - -variables.c - - initialize $OPTIND and $OPTERR to 1 for getopts - - add correct extern definition for itos() - -subst.c - - if $IFS is unset, it defaults to " \t\n" - - add special variable hack functions for $OPTIND, $OPTERR - -builtins.h - - add definition for getopts_builtin() - -getopts.c - - new file, source for `getopts' builtin command - -ulimit.c - - remove the `struct ResourceLimit' stuff; limits now apply to both - the shell and its children - - took out set_process_resource_limits(), let ulimit(2) or - setrlimit(2) do the work - - changed error messages to use builtin_error() instead of - report_error() - - changed the block factor for RLIMIT_CPU from 1000 (milliseconds) - to 1 (seconds) - - - 10/1 - ---- - -builtins.c, builtins.c.posix - - changed `test' help text for -ef option - - made `trap -' reset all signals to their original values - -machines.h - - added a new configuration variable, HAVE_UNISTD_H, which should - be defined if /usr/include/unistd.h exists - -cpp-Makefile - - make HAVE_UNISTD_H show though from machines.h to the bash code - - add an explicit build line for ulimit.o so `psize.sh' is run - each time ulimit.o is remade. This is kind of flaky. -config.h - - include if HAVE_UNISTD_H is defined, use it to test - for various Posix features (job control, signals, termios) - -jobs.c, jobs.c.posix - - restore original signals to child process in make_child() - - keep count of number of children that exit or stop in flush_child(), - and call a trap handler for SIGCHLD that many times. This allows - SIGCHLD to be trapped without disaster occurring. - -shell.c - - If we're on a Posix system, initialize signals the Posix way - - clear signal mask in initialize_signals() if on Posix system - - set login_shell and make_login_shell to 0 upon entry to main(), - solving the System V infinite login bug - -trap.c - - preserve value of $? when running traps - - don't allow a signal ignored upon entry to the shell to be trapped - or reset to the default - - do not allow trapping SIGCHLD to change the signal handler, but - save the commands to be executed. Run these commands from the - SIGCHLD signal handler for each child that exits or stops - - don't allow SIGCHLD signal handler to be overridden or have SIGCHLD - ignored - - new function added to restore all trapped signals to their original - values - -ulimit.c - - add new -p option to report pipe buffer size. This is flaky on - all non-Posix systems (those that do not define PIPE_BUF). - -readline/readline.c - - add Posix termios and signal code - - 10/2 - ---- - -jobs.c, jobs.c.posix - - only fetch terminal state in initialize_jobs() if the shell is - interactive - - 10/3 - ---- - -machines.h - - new entry for Stardent - - new variable USE_TERMCAP_EMULATION, for those systems that have the - termcap(3) functions in the curses library, but have not linked - /usr/lib/libtermcap.a to libcurses.a - -cpp-Makefile - - use USE_TERMCAP_EMULATION to set TERMCAP and TERMLIB - -siglist.c, alias.h, general.c - - declare the return values of xmalloc() and malloc() for the benefit - of machines which cannot cope with simply casting the return value - -shell.c, execute_cmd.c - - change the re-execution of main() when executing a shell script to - use setjmp/longjmp - -builtins.c - - add code to change the shell level in exec_builtin(), decrementing - it before trying the execve(2) and incrementing it again if that - fails - -variables.c - - new function adjust_shell_level() to change shell level by a - specified increment - - initialize `noclobber' in shell_initialize(), if we have inherited - the `noclobber' variable from a parent shell - -ulimit.c - - add new option -n, which reports the max number of available file - descriptors as reported by getdtablesize(). On SunOS 4.1, this - can be set, too, with setrlimit(RLIM_NOFILE, ...). - - 10/4 - ---- - -readline/readline.c - - Ultrix turns off system call restart when executing in `Posix mode' - (when sigaction(3) is used to set signal handling), so make it use - the System V version of shell_getc() - -jobs.c.posix - - fix a bug in start_job() where `oset' was not initialized in the first - call to sigprocmask(), yet was used in subsequent calls - - remove the `shadow' instance of shell_tty_info in the code that sets - the line discipline in initialize_jobs() - -shell.c - - if job control is being used, restore the tty pgrp to its original - value so as to not screw the parent - -builtins.c, builtins.c.posix - - make the output of `times' look more like ksh - - 10/5 - ---- - -jobs.c.posix - - HP/UX no longer needs the signal handler for SIGCHLD reset via a - call to signal() in flush_child() -- this breaks job control - -machines.h - - add HAVE_VPRINTF to HP/UX entry - -siglist.c - - include , sprintf(3) requires it on some systems - - 10/8 - ---- - -execute_cmd.c - - make $LINENO in a function count the number of simple commands - executed - - 10/9 - ---- - -termcap, cpp-Makefile - - new GNU termcap library, cribbed from Emacs. #define - USE_GNU_TERMCAP in machines.h entry to use it. Small changes - required to cpp-Makefile to make it work. This works on - 4.3 BSD, at least. - -machines.h - - add new entry for AIX/370 - -general.c - - sysv_getc() is also needed for Ultrix machines running in Posix - mode, so change the #ifdef accordingly (Ultrix passes the - SV_INTERRUPT flag to sigvec(2) in sigaction(3)). - -subst.c - - use sysv_getc() for Ultrix machines running in Posix mode for - command subsitution pipe reading - - 10/10 - ----- - -shell.c, execute_cmd.c - - if the `file' portion of `bash file' is a binary file, report an - error and do not attempt to execute it - -jobs.c, jobs.c.posix - - the code that does the guts of `kill' now sends the SIGCONT to a - stopped job after it sends the specified signal, not before - - 10/11 - ----- - -parse.y - - set +H also turned off putting commands into the history list - -shell.c - - make shells started with -s read .bashrc - - - 10/14 - ----- - -expr.c - - changed calls to `report_error' to call `builtin_error'. I don't - know if this is exactly right, but it seems to me that an error - in an expression shouldn't kill the shell if -e is set. - -fc.c - - changed `report_error' to `builtin_error' - - 10/16 - ----- - -readline/vi_mode.c - - repeat count to rl_vi_subst() was incorrectly being ignored - - don't call rl_vi_change_case() on an empty line; two calls in - a row can cause a seg fault - - - 10/17 - ----- - -execute_cmd.c - - give builtins run in pipes a useful setting of top_level to - longjmp(2) to on errors - - -builtins.c, builtins.c.posix - - replace some occurrences of longjmp (top_level, ...) with simple - calls to return (EXECUTION_FAILURE) - - 10/18 - ----- - -readline/readline.c - - Make O_NDELAY be the same as O_NONBLOCK on Posix systems - - Don't use IXANY if it's not defined (some strict Posix systems do - not define it) - - Posix systems need NOFLSH for c_lflag to avoid flushing the input - buffer after a SIGINT, SIGQUIT, or SIGSUSP. This is still wrong, - though. - -execute_cmd.c, test.c, general.h - - use the Posix S_IS* macros to test file formats instead of explicitly - masking with S_IFMT and testing the result. Macros are provided - for those systems that do not have them (like 4.3 BSD). - -parse.y - - fix expansion of \W in the prompt string so that it works when - you're in the root directory - -machines.h - - add machine description for concurrent in UCB universe - -Makefile - - make sure $(MFLAGS) is passed to the recursive make of bash-Makefile - - 10/22 - ----- - -jobs.c.posix - - make sure the NOFLSH bit is turned on in the termios c_lflag word - so that typeahead doesn't get flushed on receipt of signals. THIS - HAS BEEN TAKEN OUT. - - 10/23 - ----- - -execute_cmd.c - - change extract_colon_unit() to increment the path index past a - colon when it is called, before it tries to get the next component - from the path. Without doing this, `.' was always found as the - second component in the path, whether it was actually there or not. - -trap.c, shell.c - - made SIGINT trap handling act the same as that of ksh and the BSD - sh. As a side effect (really the reason for doing this in the - first place), `read' is now interruptible. - -Makefile - - made the CPPFLAGS definition useful by passing it to cpp when - making bash-Makefile from cpp-Makefile - - made the `echo' line when creating bash-Makefile really echo by - quoting the redirection to bash-Makefile - -general.c - - make fcntl.h be included only if NO_DUP2 is defined - - 10/24 - ----- -cpp-Makefile - - make libreadline.a depend on the objects, not the sources. Without - this, you could delete on of the .o files to try to force a library - rebuild and have it not happen. - - 10/25 - ----- - -shell.c - - make a flag of `-' signal the end of option arguments, like the - 4.3 BSD sh, and in accordance with the Posix command line syntax - standard - -shell.c, builtins.c, builtins.c.posix - - shuffle some code around so -o option can be given on the command - line -- there's no reason why it shouldn't be allowed. - -variables.c, variables.h, execute_cmd.c, builtins.c, builtins.c.posix, shell.c, -subst.c, bashline.c, hash.h, variables.h - - change the implementation of shell function and variable storage to - a hash table instead of a singly-linked list - -make_cmd.c, shell.c - - bug reports only get mailed out if MAIL_BUG_REPORTS is defined - - 10/29 - ----- - -bashline.c - - some random cleanups from bfox - - make sure alias expansion is attempted in shell_expand_line () only - if ALIAS is defined - -hash.c - - add default case to make_hash_table to force the number of buckets - in the table to be the default if 0 is passed as the number of - buckets - -variables.c - - make initialize_shell_variables () call make_hash_table () with an - argument of 0 again (see previous entry). - - -variables.c, builtins.c, builtins.c.posix - - cleanups because map_over(), all_vars(), all_shell_variables(), and - all_shell_functions () can possibly return NULL lists, and such - lists should not be sorted or freed - -trap.c - - make sure we declare `extern int last_command_exit_value' in - run_interrupt_trap (). - -variables.c - - Don't override a HOSTTYPE variables that comes in from the - environment - - 10/30 - ----- - -variables.c - - Fix a bug in variables.c: make_var_array () where it called - array_len on a NULL list - -builtins.c, builtins.c.posix - - Add a description of `-m' to the help for the `set' builtin - command - - 11/1 - ---- - -general.c - - added a definition of bzero() for USG machines, because - there is a reference to it in the new variable hashing code - - 11/2 - ---- - -shell.c - - set forced_interactive to 0 in shell_reinitialize(), otherwise - shell scripts get marked as interactive - - 11/6 - ---- - -execute_cmd.c - - eliminated the costly loop from 3 to NOFILE closing all file - descriptors each time we exec a command by setting all file - descriptors > 2 opened as the result of a redirection and internal - to the shell to be close-on-exec, as well as all file descriptors - opened to save others in add_undo_redirect(). `internal to the - shell' means that the redirections were attached to shell builtin. - Other `internal' redirections include while, for, and until - loops, and shell functions. I got scared after reading that - s5r4 provides 2048 fd's per process -- 2045 (mostly useless) - close() calls on *each executed program*? No way, no how. - - This caused the other fixes for this file to be discovered. - - Unfortunately (there always seems to be a catch), 4.3 BSD up to - 4.3-tahoe leaves a file descriptor open in setpwent() if you're - using dbm password files. 4.3+NFS does this if you're not using - YP. Arghhhhhhh... I haven't decided yet what to do about this; - probably just set fd 3 to close-on-exec when the shell is - initialized. - -execute_cmd.c - - removed the call to `add_undo_redirect()' when a file is being - closed with the redirection operators [n]<&- and [n]>&-. The - effect was to make those operators useless. Sad to say, I was - probably the dummy who put it in there... - -execute_cmd.c - - when calling fcntl(redirector, F_GETFD, 0) in do_redirection() to - find out if a file descriptor is active, do it only if redirector - is not the same as `fd', which you've just opened. This has - spectacularly bad consequences if you do something like - - exec 3/tmp/foo 5 `command' - - 12/1 - ---- -parse.y, shell.c, builtins.c, builtins.c.posix, make_cmd.c - - changed the way parsing of here documents works in the presence - of continued lines (unquoted backslash-newline pair or via quoting). - Now the shell reads up to an unquoted newline before trying to - read the contents of the here-document (that's the way sh works). - The changes are spread out over multiple files. - - The cases that this fixes are these: - - cat << EOF | sed -n \ - -e 'blah blah...' \ - -e 'more more...' - input - to - cat - for - sed - EOF - - cat << EOF | echo 'a b c - d e f - g h i' - EOF - - Previously, the yacc-generated bash parser would resolve the - `<< EOF' redirection and immediately try to create the here - document, and the rest of the command would become part of - the here document. - - Changes by file: - parse.y: - added two new variables, need_here_doc, and - redirection_needing_here_doc. The yacc actions - associated with the here-document productions - were modified to set these variables appropriately. - Changed read_token to read the text of any pending - here-documents just before it returns an unquoted - newline to the parser. - make_cmd.c: - moved the code that reads the text of the - here-document out of make_redirection into a new - function named make_here_document. The cases in - make_redirection don't do anything now; they just - set the EOF marker and return - shell.c: - added a wrapper function around yyparse called - parse_command that initializes the above variables, - calls parse_command, then makes the here-document - if necessary by calling make_here_document (usually - it doesn't need to; read_token has already done it). - builtins.c.posix: - builtins.c: - changed the call to yyparse to a call to parse_command - (in parse_and_execute) - -subst.c - - for some reason which I have not yet fully divined, a shell whose - standard output (file descriptor 1) is closed cannot perform - backquote substitution if the child closes both sides of the pipe - after dup2(fildes[1], 1). The obvious fix is to not close - fildes[0] in the child, but it's not intuitive. I got the example - from the Dec Ultrix 4.0 release notes: - - exec >&- - echo `echo hi` >&2 - - The 4.3 BSD sh has the same problem. I'm stumped. - - (LATER NOTE: I'm not stumped anymore.) - - 12/2 - ---- -shell.c - - shells started to execute scripts (`bash file') should set - remember_on_history and history_expansion to 0. - - redid maybe_execute_file to eliminate a possibly unnecessary - call to stat. Just open the file immediately and call fstat - to get the size. Return if the open fails. - -execute_cmd.c - - redid same_file to eliminate some calls to stat(). Added two - new parameters, which, if non-null, are pointers to status - information about the pathnames passed. This required changes - to find_user_command_in_path. - - eliminated some calls to strlen in find_user_command_in_path - -builtins.c, builtins.c.posix - - changed calls to same_file to pass the two extra parameters - -parse.y - - only call pre_process_line in shell_getc if the shell is - interactive, because history expansion and remembering lines - on the history are not done for script shells - - make the shell echo comment lines (lines whose first character - is `#') by moving the after_pre_process label to just before - that code - - eliminated several calls to xrealloc in shell_getc when the - shell is non-interactive by correcting confusing uses of - shell_input_line_size -- after pre_process_line is called, it - must be set to strlen(shell_input_line) because we don't know - what the `true' allocated size of that block is, but not if - pre_process_line is never called. This became apparent - as a result of the previous two changes. - -readline/history.c - - make history_do_write abort on write errors instead of ignoring - them. - - 12/3 - ---- -general.c - - defined bcopy in terms of memcpy for USG systems - - changed the USG getwd to return the result of getcwd - - 12/4 - ---- -readline/vi_keymap.c, readline/funmap.c - - changed #ifdef FILE to #ifdef BUFSIZ as the test for a - previous inclusion of stdio.h - -general.c - - changed USG getwd emulation to return an error message in the - buffer if the getcwd fails - -subst.c - - fixed extern declaration of copy_word - -variables.c - - set_var_auto_export does a complete new lookup of the variable - it's setting. Most of the time in initialize_shell_variables - it's called immediately after bind_variable or set_if_not on - the same variable. Made set_if_not return a SHELL_VAR * like - bind_variable, then replaced the calls to set_var_auto_export - with calls to a new function set_auto_export that is passed a - SHELL_VAR * and skips the lookup. - -execute_cmd.c - - don't call print_simple_command in execute_simple_command if the - shell is not interactive, since the only place that's ever used - is pretty_print_job, which is never called if the shell is not - interactive. This might need to be changed. - - 12/5 - ---- -parse.y - - made read_token call atoi(3) instead of using sscanf("%d") when - reading numbers - -variables.c - - changed a call to sprintf in put_command_name_into_env into two - assignment statements and a call to strcpy - -variables.c - - changed a call to sprintf in make_var_array into two calls to - strcpy and an assignment statement - -execute_cmd.c - - only call geteuid() once in executable_file and cache the result - -general.h - - added definitions for STREQ and STREQN, which are replacements for - strcmp(a, b) == 0 and strncmp(a, b, n) == 0 that check the first - character to possibly save a function call. From C News. - -variables.c - - changed add_or_supercede to use STREQN - -parse.y - - changed most instances of strcmp() in read_token to use STREQ. - Rearranged some code to reduce the number of times this is called. - The idea is to rewrite code like - - if ((this token is xx) && (certain conditions hold)) - - to be - - if ((certain conditions hold) && (this token is xx)) - - to take advantage of left-to-right evaluation done by many (most?) - C compilers. - -subst.c - - changed instance of strcmp() in stupidly_hack_special_variables - to STREQ - -alias.c - - changed instance of strcmp() in find_alias to STREQ - -hash.c - - changed instance of strcmp() in find_hash_item to STREQ - -execute_cmd.c - - changed instance of strcmp() in find_shell_builtin to STREQ - -unwind_prot.c - - changed instance of strcmp() in unwind_frame_discard_internal - to STREQ - - 12/6 - ---- -readline/readline.c - - In rl_complete_internal, when listing all completion possibilities, - if the length of the longest item to be listed is greater than the - screen width, a divide-by-0 exception can result. Fix is to always - make sure `limit' is at least 1. - - 12/7 - ---- -readline/readline.c - - Add a new #define, HAVE_BSD_SIGNALS. This is for hybrid systems - like HP-UX (pre-Posix) that have both termio and the BSD reliable - signal mechanism (sigmask, sigblock, sigsetmask, etc.). This - allows better use of `critical sections' when changing the terminal - parameters. - -readline/history.c - - Need to #include for System V.4 - -makeargs.sh - - If we are on System V.4, define USGr4 and make it show through to - the rest of the build process - -machines.h - - changed the i386 entry to add support for recognizing System V.4 - machines - - 12/8 - ---- -shell.c - - made the TMOUT code be executed only for interactive shells - - .bashrc should not be run if the standard input and standard - output are not ttys - -machines.h - - reorganized the `i386' section so that all defines for a single - machine/OS combination are now grouped - - 12/9 - ---- -shell.c - - make the -s flag force interactive use only if all the other - conditions for interactive use are met - - since the same conditions are used to mark the shell as - interactive and to decide whether or not to execute the .bashrc, - only execute the .bashrc if we are interactive, and use the - value of `interactive' in the test - - only test if `file' in `bash file' is a binary file if the file - descriptor obtained by opening it is not a tty. An argument of - /dev/fd/xx is always a tty, and we can't read on it and seek - back to the beginning. - -variables.c - - replaced the random number generator functions with the simple - linear congruential generator from the ANSI C standard - - 12/10 - ----- -machines.h - - added new defines: HAVE_MULTIPLE_GROUPS for systems that allow - multiple simultaneous group membership and support getgroups(2), - and HAVE_RESOURCE for systems that define struct rusage and - have getrlimit(2) and setrlimit(2) - -execute_cmd.c - - changed executable_file and group_member to obey the new - HAVE_MULTIPLE_GROUPS define - -ulimit.c - - allow the full range of options for systems that define - HAVE_RESOURCE - -builtins.c, builtins.c.posix - - make systems that have HAVE_RESOURCE defined use the getrusage - code in times_builtin - - 12/11 - ----- -cpp-Makefile - - make ulimit.o dependent on `psize' so that psize can use - the same #ifdefs and #defines as the rest of the code - -psize.c - - added definition of memset for those machines that don't have - it - -psize.sh - - removed the compilation of psize.c - -shell.c - - save and restore the SIGALRM catcher around the TMOUT code in - read_command, in case it's trapped - -trap.c, execute_cmd.c, shell.c - - redid the way traps were done slightly. Now, instead of calling - parse_and_execute out of a signal handler (!), the signal handler - just sets a flag that the rest of the code checks at appropriate - times. This means traps are kind of like interrupts, but serviced - far fewer times. It also means a bit of a loss of immediacy. - - 12/12 - ----- - -shell.c - - fixed a bug in read_command that caused the handler for SIGALRM - to be reset to garbage each time through. - -variables.c - - change makunbound to call stupidly_hack_special_variables so - that things like `noclobber' and such can be reset properly - on function exit or when a `special' variable is unset. - - 12/14 - ----- -parse.y - - made `<>' without a number specifying the file descriptor open - the named file for both standard input and standard output. - -cpp-Makefile, jobs.h, endian.c, endian.h, endian.sh - - made jobs.h include a file `endian.h' if NO_WAIT_H is defined. - This file defines either BIG_ENDIAN or LITTLE_ENDIAN, and is - automatically generated by `endian' and `endian.sh'. - -execute_cmd.c - - aa && bb & was being executed incorrectly -- the subshell was - not being forced for the `aa && bb' portion. Same for aa || bb &. - Of course, if the sh `grammar' was regular `aa && bb &' would - be treated the same way as `aa ; bb &'. - -cpp-Makefile, psize.sh, ulimit.c - - changed the `psize' stuff so that ulimit.c includes a file - `pipesize.h', which contains a #define for PIPESIZE. - pipesize.h depends on psize, which is still made via the standard - `make' rules. It's exactly like the `endian' stuff. - -parse.y - - pre_process_line can return NULL, so we have to take that into - account in shell_getc - -glob.c - - fixed glob_pattern_p to only return TRUE for a pattern containing - a `[' if there is at least one `]' to match it. It produces wrong - results if allow_null_glob_expansion is set, and is inefficient - otherwise (wasted calls to glob_filename). - - For instance, if some twisted soul sets allow_null_glob_expansion, - the following would produce an error without this fix: - - if [ a = a ] ; then echo hi ; fi - - 12/16 - ----- -execute_cmd.c, parse.y, shell.h - - the `subshell bit' in the command struct is being used for two - purposes: to signal that the user requested that this command be - done in a subshell via `()' and to force some portions of a - command to be executed in a subshell, like `{ xx } &'. We need - to differentiate between the two so that the command printed when - reporting job status is correct and so the code is clearer. - - Define two `states' for that value, if non-zero: WANT_SUBSHELL is - used when the user requests a subshell, and FORCE_SUBSHELL is used - internally by the command execution code. - -parse.y - - clean up some casts, and make sure function arguments are coerced - to the correct type - -subst.c - - comment out some unnecessary `break' statements in case statement - clauses that immediately follow `goto' statements. It makes the - compilation output cleaner on a compiler that complains about such - things, like the IBM/4.3 compiler (High-C). - -make_cmd.c - - move all the error reporting code to the end of the file, so that - picky compilers that like to report about mismatches in the number - of arguments won't complain about the varargs code. - - it's not allows to pass a va_list from one function to another, so - expand the body of fatal_error to be the same as report_error in - the varargs case - - 12/17 - ----- -readline/readline.c - - Use TCXONC in rl_restart_output, if it's defined. - -make_cmd.c, builtins.c, builtins.c.posix, shell.c - - Make all the non-varargs versions of the various error reporting - functions take 5 arguments - - 12/18 - ----- -builtins.c, builtins.c.posix - - made the builtins that accept option arguments report errors when - they get a bad option, and make these error messages consistent. - The builtins affected are: export, hash, history, read, readonly, - dirs, jobs, declare, typeset, local, and type. - -shell.c - - make the function that displays the version number of the shell - indicate that it's the CWRU version. - -readline/readline.c - - On machines without BSD signals, do a signal(SIGINT, SIG_IGN) in - rl_signal_handler if an interrupt is received. This will take - the place of blocking it while in the handler. - -jobs.c, jobs.c.posix - - change the setting of the job control signals SIGTSTP, SIGTTOU, - and SIGTTIN to SIG_DFL in make_child when job control is not - active - - 12/19 - ----- -builtins.c, builtins.c.posix - - corrected some spelling errors and other mistakes in the help - documentation - -readline/readline.c - - Made the inclusion of sys/ptem.h dependent on the definition of - USGr4 - - 12/20 - ----- -machines.h - - Added -DUSGr4 to SYSDEP_CFLAGS in the System V.4 machines.h entry - for the i386 so it will get passed to readline. - - new entry for Ardent Titan - - 12/22 - ----- -general.c - - added two new functions to print time values in a standard way: - print_timeval, which prints the contents of a struct timeval, - and print_time_in_hz, which prints a time_t scaled by the value - of HZ (which is system-dependent). - -builtins.c, builtins.c.posix - - made times_builtin call the new functions for printing time - - 12/30 - ----- -general.h - - made the definition of `sighandler' as `void' or `int' depend - on the definition of VOID_SIGHANDLER; provide the definition - for those systems already using that code - -machines.h - - new entry for AIX/PS2 1.2 - - 12/31 - ----- -mailcheck.c - - When reporting that a mail file has been read, take into account - changes in the file size as well, and only report the change if - the file has gotten larger. This help for systems like USG that - don't change the access time of /usr/mail/$USER to be the same - as the modification time after the mail in the file is manipulated. - - 1/2 - --- -builtins.c, builtins.c.posix - - the `command' builtin should not reparse its arguments; it screws - up quoting (consider "command echo 'foo &'"), so instead of making - a string and calling parse_and_execute, make a new simple command - struct, put the arguments to `command' in it as its words, and - call execute_command recursively. - - added a correct extern declaration for copy_word_list () in - remember_args - -make_cmd.c - - new function: make_bare_simple_command() to support the changes to - the command builtin - - 1/3 - --- -builtins.c.posix, jobs.c.posix, jobs.h.posix - - renamed these to be `.px' to help out systems with short file names - -CWRU.changelog, CWRU.changelog.v2 - - renamed these to CWRU.chlog and CWRU.chlog.v2 for the same reason - -longest_signal_desc.c - - renamed to longest_sig.c - -enable-posix - - changed to recognize and use the `.px' suffix - -termcap/termcap.texinfo - - renamed to termcap.tex - -makeargs.sh - - change instance of `uuname' to `uuname -l' for compatibility with - more systems - - look for uuname in /bin as well as /usr/bin - -cpp-Makefile - - always define HAVE_ALLOCA if HAVE_GCC is defined - -bashline.c - - declare functions referred to in several places at the start of - the file - -jobs.c, jobs.c.px - - signal handlers should take one argument to be portable - -jobs.c.px - - hack around SCO Unix broken sigsuspend() and the fact that it - can't do job control on /dev/tty - -variables.c - - add declaration for sbrand before it is used - -machines.h - - define USGr3 for generic System V.3 entry; it is used in - readline/readline.c to conditionally include sys/ptem.h for the - `struct winsize' definition. I'm about to say screw it and - define one myself. - -readline/readline.c - - include sys/ptem.h for both system V.3 and V.4 (USGr3 and USGr4) - - 1/4 - --- -shell.h - - some USG systems have a definition for MAXPATHLEN, so only define - it if there is no existing definition - -bashline.c - - changed operate_and_get_next to realize when it is at the end of - the stifled history list and to adjust the history pointer to the - `next' line appropriately - -readline/history.c - - made three variables needed by the above change to bashline.c - public: history_stifled, max_input_history, and history_length - -parse.y - - reset last_read_token and current_token in handle_eof_input_unit - so that an alias expansion on the next command entered will be - handled correctly. If these are not reset, last_read_token ends - up being `yacc_EOF', which is not something that that will cause - command_token_position to return TRUE. - - 1/7 - --- -execute_cmd.c - - changed the test for matching jobs when testing for auto-resume - to make `exact' work as documented - -builtins.c, builtins.c.px - - Change exit_builtin so an interactive shell prints a message - when it exits: `logout' if it is a login shell, `exit' otherwise - -general.c - - include and compile in print_timeval if HAVE_RESOURCE - is defined - -readline/readline.c, readline/readline.h, bashline.c - - added a new readline function to call on filename completion, after - the match list has been generated: - rl_filename_completion_ignore_function(). - It gets to munge the list of matches to its satisfaction. It is - used to implement FIGNORE, a colon-separated list of filename - suffixes to ignore when doing filename completion - -jobs.c, jobs.c.px - - rewrote pretty_print_job to fix this bug: - - thor$ { sleep 2 ; exit 1 ;} | sleep 10 & - [1] 11854 - thor$ j - [1]+ Running { sleep 2; exit 1 } | sleep 10 & - thor$ j - [1]+ Exit 1 { sleep 2; exit 1 } | sleep 10 & - thor$ - [1]+ Exit 1 { sleep 2; exit 1 } | sleep 10 - thor$ echo $? - 0 - - (since it's the exit status of the last job in the pipeline that - bash cares about, make it the one whose status is displayed.) Also, - print "Running" if any processes in the job are still running, - instead of the status of the process group leader. The code was - rearranged a bit as well. - - 1/8 - --- -fc.c - - changed fc_replhist to call history_get with a parameter offset by - history_base, like it should have been in the first place - -execute_cmd.c - - call dispose_used_env_vars () after any call to - execute_simple_command, because the temporary environment should be - in force only for the simple command immediately following it. - This fixes the - a=c printenv a | printenv a - bug, which should print nothing, but used to print `c'. - - added form feed ('\f') to the list of acceptable control characters - in check_binary_file - - 1/9 - --- -make_cmd.c - - fix to make_simple_command to make <> work. We need to follow the - chain of redirections passed as element.redirect to the end, since - there might be more than a single redirection there. - - 1/14 - ---- -machines.h - - redid the DEC, Mips, and Sony entries to get rid of the individual - MIPSEL and MIPSEB entries. The goal is to isolate everything into - manufacturer-specific blocks. - - 1/18 - ---- -builtins.c, builtins.c.px - - added call to QUIT to history_builtin, to allow the display of - history entries to be interruptible - -variables.c - - made find_variable return the dynamic value for a variable only - if this variable is in the current context. This is to avoid - an `extra' value of RANDOM, for instance, being `wasted' in the - call to find_variable in make_local_variable - -execute_cmd.c, builtins.c, builtins.c.px, shell.h - - changed the bitmap holding the file descriptors to be closed in - the child to be a structure holding a bitmap and a size, rather - than use a char * bitmap with a fixed size, which will inevitably - be too small. You'd probably run out of processes before you - ran out of file descriptors, though. Pipe errors now call - throw_to_top_level () rather than return an error, because it's - no use continuing with the current pipeline. Not doing so can - cause a call to wait_for () for the remainder of the pipeline, - which is just going to sit there in a stopped state with no user - feedback. - - 1/20 - ---- -subst.c - - increased the amount of memory allocated when adding a number to - the string currently being expanded from 10 to 16. 10 characters - will not hold the result of 32767 * 32767, for instance. 16 - should be plenty, but 32 would be better. - - 1/21 - ---- -bashline.c - - added a new emacs-mode readline command to display the shell version - (kind of like Korn's C-V, but it displays on a separate line). It's - on C-X C-V. - - 1/22 - ---- -shell.c - - make termination_unwind_protect save the history only for an - interactive shell - - consolidated the loading and saving of the history file into - two functions: load_history () and save_history () - - changed the history writing behavior so that interactive shells - will always try to append the history from the current session - to this history file instead of rewriting it every time. - - 1/23 - ---- -general.h - - Posix systems have void signal handlers - -ulimit.c, ulimit.c.new, jobs.c.px, jobs.c, general.c - - moved the getdtablesize() emulation for non-BSD systems to - general.c, removing the private copies held by jobs.c.px, jobs.c, - ulimit.c, and ulimit.c.new - -execute_cmd.c, general.c - - replaced all references to NOFILE with references to - getdtablesize () - -machines.h - - new entries for DG AViiON and Harris Nighthawk - -general.h - - split the replacement Posix stat definitions into their own - header file, `posixstat.h' - -test.c - - removed the Posix S_IS* macro definitions and added an include of - posixstat.h to pick them up - -general.c - - added an inclusion of posixstat.h for the replacement Posix stat - definitions - -posixstat.h - - this file should be included only after - - some Posix-wannabe systems do not define the S_IS* macros, and - do not define the S_IF macros in favor of _S_IF* macros. - -shell.c - - make all signals in the terminating_signals array be conditionally - compiled it -- no signals are assumed to be present - -glob.c - - some Posix systems do not have a member d_ino in struct dirent. - Its use is now compiled out if _POSIX_SOURCE is defined. I don't - think the check is necessary anyway; isn't readdir guaranteed to - return only active directory entries? - -cpp-Makefile - - added various entries for posixstat.h - -subst.c - - changed the code by add_number in expand_word_internal to call - itos() when translating an int to a string - -misc.c - - enlarged MAX_INT_LEN to 32 - - 1/25 - ---- -shell.c - - made bash, when invoked with the -c command option, save the rest - of the arguments as the positional parameters - - 1/29 - ---- - -misc.c - - made itos() handle negative numbers correctly - -posixstat.h - - include , now can be included as a replacement for - stat.h - -builtins.c, builtins.c.px, execute_cmd.c, mailcheck.c, shell.c, test.c - - changed to include posixstat.h instead of - - 1/30 - ---- - -lots of changes to nearly every file as the result of a merge with Brian's -version of this code - - 1/31 - ---- - -parse.y - - correctly cast NULL pointer arguments passed to the command - construction functions in make_cmd.c - -test.c - - change uses of access(2) to call a new function eaccess(), which - performs a stat(2) call and checks the permission bits itself. - This means that root no longer finds that /etc/passwd is an - executable file. - - 2/3 - --- -test.c - - make eaccess() use group_member() from execute_cmd.c to test group - membership against all groups a user is in. Do this if the system - supports multiple groups. - - 2/5 - --- -shell.c - - bash always executes .bashrc unless it's a login shell or acting - like sh. Brian wants it this way. - -parse.y - - build a stack of tokens that have been alias expanded during a - single call to read_token(), and use it to stop alias loops - - 2/6 - --- -make_cmd.c - - if redirection_expand returns NULL, it means that the word being - expanded expanded into multiple words. In this case, abort the - here-document processing. Specifically: - - cat << $(date) - - no longer dumps core calling strlen with a null argument. - - 2/8 - --- -readline/vi_mode.c - - some changes to rl_vi_eWord to make completion on `*' work - right - -builtins.c, builtins.c.px - - made history_builtin add a newline at the end of the history - expansions done when the -s option is specified - - 2/9 - --- - -variables.c - - backed out of 1/18 change to find_variable(). It has the effect - of making this function always return the same value: - - rand() - { - echo $RANDOM - } - - 2/10 - ---- -parse.y - - save the value of eof_encountered around execution of - PROMPT_COMMAND, otherwise ignoreeof will not work - -documentation/bash.1 - - Add descriptions of the keybindings to go from emacs editing mode - to vi and vice versa - - 2/11 - ---- -shell.c - - added tests for running shell scripts and for stdin being a tty - to the test for reading and executing .bashrc. This means that - bash -c command still runs .bashrc (that's next :-). - -parse.y - - added test for interactive to disable alias expansion for - non-interactive shells - -builtins.c, builtins.c.px - - history -s is now gone - - 2/12 - ---- -shell.c - - implemented a better (hopefully the final) test for executing - ~/.bashrc at shell startup - -general.c - - made dup2() emulation better, based on ideas from Usenet - -fc.c - - made fc_gethnum treat 0 the same as a negative number (an offset - from the current command number) so that fc -l -30 0 works - correctly - - make sure history_base is ignored in all calculations, but use it - when reporting the command number with the -l flag - - make `last' default to the current command when the -l flag is - given so that fc -l -20 works as it does in ksh - - 2/20 - ---- - -Many changes from a merge with bfox's version 1.07 - - 2/25 - ---- - -jobs.c.px, jobs.h.px, builtins.c.px - - These files are no more, having been merged with jobs.c, jobs.h - and builtins.c - -jobs.c, jobs.h, builtins.c, shell.c, make_cmd.c, subst.c, execute_cmd.c, -nojobs.c - - Adopted pid_t and WAIT_T as `native' types - - Propagated pid_t definition around to all necessary files - -readline/readline.c - - Some systems need the USG code without being USG (like HPUX and - AIX, for instance) - - 2/27 - ---- - -fc.c - - fixed up a few remaining bugs - - added code that lets options be grouped behind a single `-' - - added fencepost code that prevents overflow errors - -Another merge with Brian's almost-1.07 - - 3/1 - --- - -A final merge with Brian's 1.07 - - 3/2 - --- - -execute_cmd.c - - fixed a problem with asynchronous commands started from `.' - scripts (run with parse_and_execute) being waited for - inappropriately on systems without job control. For example, - `. foo' where foo contains - - . bar - echo bar done - - and bar contains - - sleep 300 & - sleep 300 & - - would not echo `bar done' until 5 minutes had passed and both - `sleep' processes had exited. Badness. - -nojobs.c - - fixed up so that bash can be built without job control on BSD - systems -- God forbid. - - 3/7 - --- - -jobs.c - - Added code to initialize_jobs () to handle the broken NeXT 2.0 - rlogind, which starts bash so that the terminal still belongs - to the rlogind process and getpgrp () returns 0 (?). Looks like - a setpgrp(0, 0) is being done somewhere, and NeXT is not handling - it like 4.3 BSD does. - - 3/11 - ---- -shell.c - - $0 is now initialized to `bash' for interactive shells when there - is no argv[0] - - 3/12 - ---- - -jobs.c - - Make set_new_line_discipline return 0 when on a termio system - without NTTYDISC defined (like HP/UX 6.x) - - 3/13 - ---- - BASELINE FOR NETWORK WIDE RELEASE diff --git a/CWRU/old-changelogs/CWRU.chlog.v4 b/CWRU/old-changelogs/CWRU.chlog.v4 deleted file mode 100644 index dade7146b..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v4 +++ /dev/null @@ -1,234 +0,0 @@ -This file documents changes to CWRU bash following its first network-wide -release. - - 3/15 - ---- -Makefile - - change the declaration of $CPP_ARGS so that CPP_CC can have - embedded blanks, by adding quotes - -bashline.c - - some cosmetic changes to the FIGNORE support functions - -glob.c - - don't define USGr3 if it's already defined - -variables.c - - a declaration for the argument to put_command_name_into_env was - missing - -builtins.c - - only print the command name in builtin_error if this_command_name - is non-null - -expr.c - - catch something % 0 as an error - -subst.c - - make sure this_command_name is set to NULL before calling evalexp, - because evalexp uses builtin_error - - 3/18 - ---- - -variables.c - - changed getenv() to search the inherited environment if the hash - table of shell variables does not exist or has not been created - - 3/19 - ---- - -subst.c - - when doing command substitution, strip only the trailing newlines. - This is in accordance with Posix.2. - -general.c - - strip_trailing () has aquired a new flag telling whether to strip - all white space or just trailing newlines. - -variables.c - - since some places in the code rely on bind_variable returning a - valid value, the dynamic variable assignment functions have been - changed to take a pointer to themselves as the first parameter: - - return ((*(entry->assign_func)) (entry, value)); - - and then return that value after doing whatever they need to - - 3/30 - ---- - -bashline.c - - disabled builtin commands should not be returned to the readline - completion functions as legal command alternatives - -flags.c - - do not redefine NULL; check only after including all needed - .h files - -nojobs.c - - fix unconditional reference to status.w_* - - fix typo after call to WIFCORED in wait_for - -readline/readline.c - - make sure all calls to BSD signal mechanism are protected by test - for HAVE_BSD_SIGNALS define - - make sure declaration of struct ltchars variable is protected by - test for definition of TIOCGLTC - - change #include file from sys/errno.h to errno.h - - added a new function rl_stop_output (), the non-emacs version of - ^S, to go with rl_restart_output. Haven't done anything with it - yet. - - added Posix support in the form of tcflow() calls to - rl_restart_output and rl_stop_output - -readline/readline.h - - change the declaration of rl_filename_completion_ignore_function - to extern. It was coming up as multiply defined on some systems - -siglist.c - - change #include file from sys/signal.h to signal.h - - some systems define _NSIG but not NSIG. Define NSIG in terms of - _NSIG on those systems - -ulimit.c - - change #include file from sys/errno.h to errno.h - -subst.c - - string_extract_double_quoted() needs to ignore "" inside `` pair, - but this code should be executed only if the ` is not backslash- - escaped. - - changed sv_uids() to give UID, EUID the integer attribute - automatically - -machines.h - - check for the DG AViiON defining either __DGUX__ or DGUX, make - sure DGUX is defined in any case - -trap.c - - change run_pending_traps to loop from 1 to NSIG instead of 0 to - NSIG - -execute_cmd.c - - For a command run explicitly in a subshell via (), run_exit_trap () - needs to be called after that command has executed for /bin/sh - compatibility - -variables.c - - make $PPID have the integer attribute when it is intialized - - 4/2 - --- - -subst.c - - make string_extract_double_quoted handle backslash-escaped - ` correctly when parsing a `` pair - - 4/3 - --- - -jobs.c - - make sure job_control is set to 1 before the first time - give_terminal_to is called, so that it does its job and the - process groups are correct. - -subst.c - - make string_extract_double_quoted() not turn \\ into \ inside - quoted strings. The translations will be taken care of later. - -nojobs.c - - make sure we get the tty state in initialize_jobs(), and don't - try to set it in set_tty_state until we know we have saved - valid settings. - - 4/6 - --- - -shell.c, execute_cmd.c, shell.h - - shell now exits with status 127 when asked to execute a binary - file as a shell script - -builtins.c - - `local' is once again an error outside a function - - `trap' now formats output differently when given no arguments; - the new format is suitable for feeding back to the shell as - input to `trap' - - cleaned up a contradiction in the help text for the `export' - builtin - - `export' and `readonly' now accept a -p flag for Posix.2 compliance - that acts the same as if no flags had been specified, and take a - `--' option to disable further option processing - - `unset' takes a `--' argument to disable further option - processing - - when given the -f flag, unset will now try to unset a variable - if no function is found for the name supplied - - `kill' now takes a -s signal argument as equivalent to -signal - - `kill' takes a `--' argument to disable further option processing, - since a negative number may be used to denote a process group - - `kill -l' now takes arguments and lists the names for individual - signals by number. If the number given as argument is > 128, it - is assumed to be an exit status, and 128 is subtracted before - further processing - -builtins.c, variables.c - - `set +' is no more; print_vars_no_values() is no longer needed - -flags.c, builtins.c - - `set -C' is now an alias for noclobber - -trap.c - - SIGNULL is no longer a valid name for signal 0 - -getopts.c, subst.c - - resetopts () --> getopts_reset () - - rewrote getopt() per Brian's request - -builtins.c - - `return' is now valid when executing a file with the `.' builtin - and causes the execution to be aborted - -execute_cmd.c - - file descriptors > 2 manipulated via `exec' are no longer set to - close-on-exec - - 4/8 - --- - -cpp-Makefile - - fixed the bad definition of RANLIB if RANLIB_LOCATION was defined - - pass the correct definition of ranlib through to the make of - readline - -readline/readline.c - - make sure some defaults for screen size are defined in the case - of a dumb terminal - -builtins.c - - `return' now works for aborting files executed with the `.' - builtin - -parse.y - - a `"' before a closing ) in a $( ) construct within double - quotes is no longer an error - -subst.c - - string_extract_double_quoted now passes everything between $( - and ) through verbatim, without scanning it for double quotes. - This way, `echo "$(echo "*")"' will echo `*' like it should. - -documentation/bash.1 - - updated to reflect the changes from Posix.2 draft 11. - - 4/10 - ---- - -execute_cmd.c, builtins.c - - changed some instances of absolute_pathname to absolute_program - (like doing PATH, CDPATH searching, the `type' builtin, and - filename hashing) - -readline/readline.c - - made rl_deprep_terminal do a little sanity checking on the - values in otio that it is restoring - - Minor update of tar files available for FTP from CWRU diff --git a/CWRU/old-changelogs/CWRU.chlog.v5 b/CWRU/old-changelogs/CWRU.chlog.v5 deleted file mode 100644 index 55b994c59..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v5 +++ /dev/null @@ -1,1492 +0,0 @@ - - 4/11 - ---- - -machines.h, general.c, cpp-Makefile - - wrapped the definition of strerror() inside a new machines.h - variable, HAVE_STRERROR - -machines.h - - new machine definition for the Encore series 91 - - removed definitions of NO_WAIT_H; let makeargs.sh decide for us - -builtins.c - - the test used in cd_builtin () to decide whether or not to use - CDPATH was incorrect. It now uses CDPATH unless the directory - name begins with a slash. - -cpp-Makefile, machines.h - - added SYSDEP_LDFLAGS for flags to ld, analogous to SYSDEP_CFLAGS - - 4/13 - ---- - -machines.h - - more changes to Encore entries from pierson@encore.com - - added -Wf,-XNl3072 to SYSDEP_CFLAGS for all machines that use the - MIPS chip and compilers. This increases the maximum size of a - string constant, which some of the help strings in builtins.c - were exceeding - -jobs.c - - include trap.h only if JOB_CONTROL is defined, since nojobs.c - does not use its facilities - - 4/14 - ---- - -getopts.c - - changed error handling so that it obeys the Posix.2 draft 11 spec - (which is like ksh-88) - - 4/16 - ---- - -execute_cmd.c - - only run the exit trap in a subshell when command_subshell == - USER_SUBSHELL, which means the user forced a subshell with ( ) - -cpp-Makefile - - updated the dependency information - -quit.h - - changed the definition of throw_to_top_level to `extern' -- it - sometimes matters - -readline/vi_mode.c - - fix to make the vi-mode `b' command work when you type it twice - in a row - - 4/17 - ---- - -readline/vi_mode.c - - more fixes for vi `b' and `B' commands - - fixes for vi `w' and `W' commands - - fixed `_' command to yank the correct arg from the previous history - line - -readline/{vi_{mode,keymap}.c,readline.h} - - added a new function, rl_vi_fetch_history(), to implement the `G' - command. It's not totally right, but it's better than having none - at all. - - 4/18 - ---- - -builtins.c - - only call the with_input_from_* functions in set_minus_o_option - if the shell is interactive when doing set -o emacs or set -o vi - (this prevents core dumps when doing a "set -o emacs" from a - startup file, because none of that stuff is initialized when the - startup files are run) - -bashline.c - - make sure all of the bindings are done to explicit keymaps, so - as to not randomly change the keymap the user has chosen with - a set -o in a .bashrc file. The original ones all assumed the - current keymap was the emacs keymap, and this will screw up a - vi keymap seriously. - -readline.c - - .inputrc file parsing now recognizes the `$if mode=emacs' or - `$if mode=vi' construct in parser_if() - -trap.c - - make sure the jmp_buf stored in top_level is valid during the - execution of run_exit_trap, or we may jump off into never-never - land. - - For example, consider a script that runs until it reads eof, and - has an exit trap set that contains a call to `exit'. - parse_and_execute will be called after reader_loop (and hence the - valid definition of top_level) is already off the stack and - invalid, and the longjmp in exit_builtin will seg fault. - -machines.h - - for MIPS machines in the BSD universe (-systype bsd), make sure - HAVE_UNISTD_H is undefined -- the compiler doesn't let us get to - it, even if it is there (wierd) - -config.h - - made the HELP_TEXT define that enables the inclusion of the huge - documentation strings for builtins a configurable parameter defined - here. It's undefined by default, which means the long text is - not compiled in. - -general.c - - rewrote strip_trailing() to make it handle all cases where the - entire string should be stripped (e.g. "\n\n\n\n" when newlines - only are to be stripped) - -subst.c - - quoted results of command substitutions should have trailing - newlines stripped, not just the last newline as it was doing - -builtins.c - - aliases are no longer required to be legal identifiers, as - defined by Posix.2. This originally came from 1003.2a, - draft 5, but I think it's on its way out - - 4/19 - ---- - -shell.c - - fixed a typo in the code that decides whether or not to source - ~/.bashrc, so now it sources it when we expect it to (no more - sourcing .bashrc for `echo ls | bash'). It was a misplaced - paren. - -parse.y, subst.c - - when parsing and evaluating $() and $[] constructs, bash needs - to take into account instances of `(' and `[' respectively - inside the delimiting characters and adjust the number of closing - parens or brackets that need to be read before the construct is - complete. This is so things like $( (pwd) ) or $((pwd)) will - work as expected. - - 4/21 - ---- -parse.y - - consolidated two grammar rules for `function f { echo foo; }' - into one -- there was no real difference between the two - -variables.c - - deleted inclusion of version.h. It was not used. - -cpp-Makefile - - removed dependence of variables.o on version.h. This caused - variables.c to be unnecessarily recompiled each time - version.h changed. - -trap.h - - changed the definition of IGNORE_SIG to be SIG_IGN, because - defining it as 0 made it the same as SIG_DFL, and hence - DEFAULT_SIG - -jobs.c, nojobs.c - - changed the restoration of signals altered by traps to be - after SIGINT, SIGQUIT, and SIGTERM are restored to their - default state so that ignored signals remain ignored in - children - -jobs.c - - SIGINT and SIGQUIT should be ignored by default for asynchronous - children - - changed all calls to signal (s, SIG_DFL) in make_child for SIGINT, - SIGQUIT, and SIGTERM to call restore_default_signal() instead - (which should really be called restore_original_signal()), because - what you really want is for children to have the values for these - signals that the shell started with. - -trap.c - - make sure signals set to be ignored in the shell are set to SIG_IGN - in the child by calling ignore_signal in restore_original_signals() - - make the loop that records the original values of the signals for - the shell in initialize_traps() run from 1 to NSIG-1 - - 4/22 - ---- - -shell.c - - make sure the `i' flag is turned on (so that it appears in $-) - before the startup scripts are run - - 4/23 - ---- - -general.c - - changed pathname_backup to not back up past the start of the - path it is passed looking for a `/'. It causes core dumps on - a lot of systems. - -config.h - - Ultrix does dup2() wrong, so make it use the dup2() emulation - implemented with fcntl() by making sure NO_DUP2 is defined - -jobs.c - - fixed a posix race condition by making the first process in a - pipeline wait for all of the processes to be created and have - their process group set correctly before returning from - make_child(). The synchronization is done around a shared pipe. - - added a function close_pgrp_pipe() that other files can call to - have the pgrp pipe closed for them - -subst.c - - added call to close_pgrp_pipe from the parent half of the command - substitution code, since this code will not call start_pipeline - or stop_pipeline. Otherwise the child waits forever trying to - read the pipe. - -readline/vi_mode.c - - more changes to the vi mode code, this time to rl_vi_eWord for the - `E' command - - 4/24 - ---- - -execute_cmd.c - - only restart an auto-resume job if the job is marked as JSTOPPED. - This fixes the `for i in 1 2 3; do who; done | sort' only running - `who' once bug. - -parse.y - - removed extern declarations of index(), rindex(); they should be - taken care of in general.h - -machines.h - - some changes to the mips and sgi entries - -readline/readline.c - - change rl_redisplay so DEL is echoed as C-? - - 4/25 - ---- - -makeargs.sh - - a new implementation from Brian - -jobs.h - - changed the sense of the test for the presence of sys/wait.h to - test HAVE_WAIT_H rather than NO_WAIT_H. HAVE_WAIT_H is set by - makeargs.sh - -jobs.c - - don't bother calling tcsetpgrp() in give_terminal_to() if the - process group already owns the terminal - -test.c - - change eaccess() so that root requires execute permission for - anyone in order to be able to execute a file - -execute_cmd.c - - change executable_file() so that root can execute a file if any - of the u, g, o x-bits are turned on - -documentation/features.texinfo - - fixed a typo on line 352 ({ -> }) - -documentation/bash.1 - - some cosmetic changes to the manual page - - 4/26 - ---- - -parse.y - - made read_a_line handle a null character being returned from - yy_getc () in a reasonable fashion instead of falling out of - a loop and returning garbage to its caller - - 4/27 - ---- - -shell.c - - make the file descriptor from which we are reading the text of - a script be set to close-on-exec - -execute_cmd.c - - now that Ultrix uses the dup2() emulation in general.c, the code - that sets file descriptors to open-on-exec on Ultrix systems - can be disabled - - fixed up the test for root in executable_file() - -test.c - - fixed up the test for root in eaccess() so that root can read or - write any file, but only execute executable files - - 4/28 - ---- -braces.c - - if the text between braces does not contain a comma, just return - the text with braces intact. This is for greater /bin/sh - compatibility - - 4/29 - ---- - -bashline.c - - some changes from a merge with bfox bash-1.07 - -execute_cmd.c - - added an extern declaration for make_command_string() - -general.c - - made itos() use unsigned arithmetic so that $[ 32768*65536] works - right - - 4/30 - ---- - -readline/readline.c - - fixed typo for sys5 termio version of rl_prep_terminal() that - called ioctl with the wrong number of parameters - - made readline handle SIGALRM and clean up after itself when - it hits - -ulimit.c, ulimit.c.new - - fixed up return value for -f on HP/UX -- the man page for - ulimit(2) lies about its return value - -makeargs.sh - - need to initialize SYSDEF and SHLIB so we don't pick up any - values from the environment - -readline/history.c - - fixed typo in `mode' argument in call to open(): 066 -> 0666 - -builtins.c - - mark HP/UX as not having resources even though it has - /usr/include/sys/resource.h - -cpp-Makefile, Makefile, makeargs.sh, config.h - - changes from bfox bash-1.07 - -machines.h, builtins.c, general.c - - changes for bfox port to cadmus - -posixstat.h - - added definitions for Posix file modes for those systems that do - not have them - - 5/1 - --- - -subst.c - - added a function remove_quoted_nulls to do quote removal when we're - not doing word splitting. It's called from expand_string_unsplit - -fc.c - - removed the code that handled EOF from fc_readline - - fixed possible memory leaks in fc_builtin (line returned from - fc_readline()) and fc_readline() - - fixed calls to builtin_error so they no longer include a literal - "fc" in the error string - -execute_cmd.c - - fixed execute_simple_command so that commands called from the - command builtin do not have arguments re-expanded by another - call to expand_words() - -readline/readline.c - - disable the ONLCR bit in the termio and termios version of - rl_prep_terminal so that pesky extra ^M is no longer sent - -readline/vi_mode.c - - fixed a typo that caused a test to be reversed in rl_vi_bword() - - 5/2 - --- - -shell.c - - preserve leading `-' in argv[0] (and $0) when bash is invoked - this way. Ensure that we do not infinitely recurse executing - .bash_profile if there is a shell script that bash executes or - a command substitution by incrementing shell_name past a leading - `-' when main() is invoked a second time. Initialize $0 to - "bash" if it is null or equal to "-". - -builtins.c - - added symbolic mode printing and arguments (like chmod) to umask. - Now, "umask 002" and "umask a=rx,ug+w" are equivalent - - removed change to unset from Posix.2 draft 11; it is required to - use -f if trying to unset a function and it unsets a variable - otherwise - -bashline.c - - make sure display_shell_version leaves the cursor at column 0 - before calling rl_on_new_line() - - 5/3 - --- - -jobs.c - - defined a `unifying' way to get the process group of an arbitrary - process: getpgid(p). Constructed a bunch of #defines to get it - defined correctly in terms of getpgrp(). Used in initialize_jobs - -execute_cmd.c - - converted a call to statmode & S_IFDIR (which was wrong in the - first place, should have been (statmode & S_IFMT) == S_IFDIR) - into a call to S_ISDIR (statmode) in executable_file - - for systems with broken (4.2 BSD-style) dup2() calls, which do - not set the new descriptor to be open across execs, define - DUP2_BROKEN and do the explicit setting ourselves. Ordinarily, - setting NO_DUP2 and using the fcntl emulation is sufficient, but - on some systems (Sequent Dynix), fcntl(fd, F_DUPFD, fd2) is - broken this way, too. - -expr.c, fc.c - - make sure NULL is defined as 0, redefining it if necessary - - 5/3 - --- - -execute_cmd.c - - in execute_case_command(), make sure we call expand_word on the - case statement pattern with quoting set to Q_KEEP_BACKSLASH, so - backslashes are not treated specially depending on the character - that follows them. Here's the comment from the relevant section - of the code: - - /* expand_word calls expand_word_internal, then performs word - splitting and dequotes the result. This causes parameter - expansion, command substitution, arithmetic expansion, and - quote removal to occur. What we *really* want is only - parameter expansion and " and ' removal. Calling expand_word - with Q_KEEP_BACKSLASH is the way to do part of this. The - command substitution part is still done, but that's OK. */ - -subst.c - - break the command substitution code off into its own function, - command_substitute() - -shell.h, subst.c, execute_cmd.c - - enumerated the possible values for the `quoted' argument to the - expansion functions: Q_DOUBLE_QUOTES, which means expand as if - the string were in double quotes, Q_HERE_DOCUMENT, which means - expand the string according to the rules for expanding here- - documents, and Q_KEEP_BACKSLASH, which means to not treat back- - slashes specially at all. - -readline/vi_keymap.c - - bound `*', `=', and `\' in the vi movement keymap to rl_vi_complete - -readline/vi_mode.c - - If the command is cw or cW, we don't want whitespace after the - end of the word eaten, so change the w or W to e or E, - respectively - - made rl_vi_complete handle all three kinds of vi_mode completion - - changed rl_vi_char_search to check boundary conditions and avoid - going off the end or start of the current line searching for a - character - - changed rl_vi_domove to implement the `yy' command - - 5/6 - --- -subst.c - - check the return value from expand_string_internal in - expand_string_unsplit; make sure we don't try to dereference a - null value - -machines.h - - new entry for NCR tower 32 running System V.3 - - changes to IBM AIX entries - - Changes from a merge with bfox 1.07 sources - - 5/7 - --- - -cpp-Makefile - - take out some explicit `touch' commands that are taken care of - by the dependencies - - added the files created in the build process (endian, psize, - sysdefs) to the `make clean' target - -nojobs.c - - don't print a message if a command was terminated by SIGINT - - removed the call to QUIT from wait_for; the builtin `wait' - command does not go through this function - - added siginterrupt calls so we can run this on a 4.2+ BSD - system without job control and interrupt `wait' - -Makefile - - make the command to run to remove runs of blank lines from the - cpp output configurable (`cat -s' means nothing on System V; - there are some alternatives: ssp on HP/UX, for example) - - 5/8 - --- -test.c - - added a `posixtest()' function that implements a proposal to the - Posix.2 shell working group by David Korn. Broke the code that - handles unary and binary operators out into individual functions. - Added functions that will check whether a string is a valid test - unary or binary operator. - - changed eaccess so that the test for root and X_OK works for - both files and directories - - added a new unary operator, -a, which is true if its argument - simply exists in the file system - -shell.c - - changed the test for whether or not we are running under an emacs - shell buffer to test if TERM = "emacs", rather than for the - presence of the environment variable EMACS - -general.c - - added a function unset_nodelay_mode that will unset either flavor - of no-delay mode (O_NONBLOCK or O_NDELAY) for a given file - descriptor. This is called from shell.c$main() for the standard - input. - -glob.c - - added code to check that a directory is really a directory before - calling opendir on it. Some systems do not check, and core dump - in readdir() (e.g. MIPS) - -expr.c - - allow underscores in the names that the token reader recognizes - as variables - - set a maximum recursion level of 1024 calls to pushexp() - -builtins.c - - parse_and_execute has to setjmp (top_level) (saving the old value, - of course) so that bad substitutions and the like that call - (longjmp (top_level, DISCARD)) don't jump to the `real' top level, - which leaves input still coming from the string passed to - parse_and_execute, and sometimes core dumps - -shell.c - - made an option -- signal the end of the options list, as Posix - specifies - -getopt.c - - a slightly modified version of the GNU getopt(). The changes - are: - o the addition of a variable optopt, which holds the option - character last processed - o The value of optarg is now specified in the case of - return values: if an illegal option is given, optarg - is NULL; if a required option argument is missing, - optarg[0] == 0 - o a function to programmatically set the option order that - getopt will handle to the Posix option order: - set_posix_option_order - o changed the error messages printed to be those that - Posix.2 specifies - -getopts.c - - deleted private version of getopt() - - changes to work with the modified GNU getopt as described above - - 5/9 - --- -builtins.c - - added -v option to `unset'; changed it to comply with Hal - Jesperson's latest Posix.2 draft - -machines.h - - picked up a machine description for a 386 box running ISC 2.2 from - bfox - - add -DDUP2_BROKEN to the entries for Sequents running Dynix because - Dynix does not set the new file descriptor created with dup2() or - fcntl(fd, F_DUPFD, ...) to be open across execs - -make_cmd.c - - Make sure all the arguments to make_command are cast to the correct - values - -general.h, jobs.c, execute_cmd.c - - moved the definition of FD_CLOEXEC to general.h, which should be - included *after* - -shell.c - - timeouts should happen only when the shell is interactive, so just - move all the code in read_command that deals with it inside an - if (interactive) statement. - - changed message printed by show_shell_version to be that same as - that put into the $BASH_VERSION variable - -readline/readline.c - - don't destroy the value of the tty flags when trying to read with - O_NDELAY turned off in rl_gather_tyi() - -Makefile, squish.awk - - For systems that do not have a -s option to cat that compresses - runs of blank lines to a single blank line, there is an awk script - supplied that will do it - -parse.y - - made yy_stream_unget and yy_readline_unget return values, not - garbage - - 5/10 - ---- -variables.c - - don't deallocate the old value in bind_variable until any needed - arithmetic evaluation has been done. If we're performing an - assignment statment like `even=even+2' where even has the integer - attribute, we'll need the old value to evaluate the RHS - -shell.c - - make throw_to_top_level call bashline_reinitialize so all the - function pointers are restored to their correct values on an - interrupt (problem observed on a Sun running SunOS 4.1) - - 5/11 - ---- -jobs.c - - replaced literal `bash:' in error messages with the name of the - shell, as given in shell_name - - 5/13 - ---- -nojobs.c - - make sure the pid passed to wait_for is valid before calling - wait() by doing a kill(pid, 0) - -test.c - - test -e should return true if a file exists in the file system, - according to Posix.2. Make it equivalent to -a, document it in - the man page and help text, and make -a undocumented - - all variables global to test.c should be declared as static - (e.g. test_exit_status, test_exit_buf) - - make test -f behave as Posix.2 mandates (file exists and is a - regular file) instead of trying to please both BSD and System V - -makeargs.sh - - if the file /etc/xlc.cfg exists and contains the string _IBMR2, - assume we're on an RS/6000 and define RISC6000 - -builtins.c - - Print traps in trap_builtin only if trap_list[i] is neither of - DEFAULT_SIG or IGNORE_SIG - -jobs.c - - run trap on SIGCHLD only if it is neither of DEFAULT_SIG or - IGNORE_SIG - -trap.c - - make it an error if trap_handler catches a signal for which the - trap_list holds IGNORE_SIG or DEFAULT_SIG - - 5/14 - ---- - -execute_cmd.c - - make redirection_expand return (char *)NULL in the case where the - word expands to nothing - -jobs.c - - added two functions: terminate_stopped_jobs, which walks the job - list and sends SIGTERM and SIGCONT to each stopped job, and - hangup_all_jobs, which walks the job list and sends SIGHUP and, - if necessary, SIGCONT to all jobs - -shell.c - - added call to terminate_stopped_jobs() after reader_loop exits, - before the shell is about to exit - - added call to hangup_all_jobs if the shell receives a SIGHUP that - causes it to exit - -test.c - - removed remaining vestiges of the special-casing of the -f operator - between System V and BSD - - 5/18 - ---- - -builtins.c - - traps should be printed if trap_list[i] == IGNORE_SIG - - fixed a typo in fg_bg() that would cause a seg fault when - decode_job_spec returned DUP_JOB - -trap.c - - don't run a trap on EXIT if set to IGNORE_SIG - -shell.c - - the initialization of traps must be done before we initialize - signals, because the shell needs to know that values of signals - that it inherited from its parent - -execute_cmd.c - - broke all the stuff bash does after execve into a new function, - bash_execve, called exactly like execve. If it returns, it - returns EXECUTION_FAILURE, so the execute_simple_command code can - just do exit (bash_execve (command, argv, envp)) - -builtins.c - - made the exec builtin call bash_execve so executable shell scripts - can be the target of exec - - 5/19 - ---- -subst.c - - added new functions that will perform quote removal only on - strings, WORD_DESCs, and WORD_LISTs. - -make_cmd.c - - quote removal is the only expansion that should be performed on - the delimiter of a here document, so call the new quote removal - functions in subst.c instead of redirection_expand() - -subst.c, shell.h - - changed expand_word_internal to do the right thing when given - a `quoted' argument of Q_KEEP_BACKSLASH; it means to preserve - backslashes unconditionally. - - This causes a flag to be set inside expand_word_internal that it - passes to recursive invocations (like when expanding "string"). - The values for the `quoted' argument have been changed to be - distinct bit values so that they can be masked and OR'd together. - -execute_cmd.c - execute_cmd.c now calls expand_word with an argument of - Q_KEEP_BACKSLASH, so that only parameter expansions and "" and '' - removal are performed - - 5/22 - ---- - - Another big merge with bfox source - -builtins.c - - restore the original values of signals before calling bash_execve - in exec_builtin - - 5/23 - ---- -test.c - - Brian's change to `unop' broke it -- the function now has an - integer passed to it, not a string of the form -x - - ! with 4 arguments should not fall through to the default case; - a `break' statement was missing - -config.h, machines.h, cpp-Makefile - - change NO_DUP2 to !HAVE_DUP2 - -general.c - - change NO_DUP2 to !HAVE_DUP2 - - add a call to SET_OPEN_ON_EXEC for the new file descriptor in our - dup2() emulation using fcntl - -execute_cmd.c - - removed the calls to SET_OPEN_ON_EXEC that were enabled by defining - DUP2_BROKEN; now undef HAVE_DUP2 and use the dup2 emulation in - general.c for those machines - - 5/24 - ---- -subst.c - - Even if no expansion is performed in expand_word_internal, and - therefore no word splitting is done, the quoted null characters - still need to be removed from the WORD_LIST. Add a new function - word_list_remove_quoted_nulls to do the removal for each element - of the list, and call it from expand_words_1 - -bashline.c - - call tilde_expand on the returned $PATH components in - command_word_completion_function - -More fixes and changes from a merge with bfox's source - - 5/25 - ---- -execute_cmd.c - - changed some `pid' declarations to be pid_t instead of int - -variables.c - - dollar_dollar_pid is still an int, so cast the return value - of getpid() when assigning to it - - 5/28 - ---- -subst.c - - more quoted null character fixes -- {de,}quote_string needs to - handle quoted null strings, and list_string has to do the - right thing with them - -builtins.c, execute_cmd.c - - bash_execve -> shell_execve - -makeargs.sh - - typo fix: elc.cfg -> xlc.cfg - -cat-s - - change the length($0) == 0 to NF == 0 so that lines with only white - space are deleted as well as blank lines - -subst.c - - quote_string and dequote_string now return char * and allocate a - new string for the return value - -expr.c - - have evalexp() save and restore the old value of evalbuf around - possible recursive calls - -cpp-Makefile - - the failure of a `touch' command is no longer a fatal error - -readline/readline.c - - only try to use ONLCR if it is defined - -machines.h - - fixes to the AT&T 3B2 and IBM AIX (RT, 370) descriptions - -readline/vi_mode.c - - now `p' is allowed at the end of a line - - yank-to (yw, ye) yanked one-too-few characters -- fix in - rl_vi_yank_to - - `r' command should not advance the cursor to the right - - `cw' now works like ce (and cW like cE) in that the white space - after the deleted word is not deleted - - cw now deletes the last character on the line, when point is the - last character on the line when it is executed - - 5/29 - ---- -subst.c - - fixed a seg fault when trying to do parameter substitution assignment - (${a=b}) with a null string: ${UnDeFiNeD=`false`} - -machines.h - - new entry for Sequent Symmetry running Dynix/ptx (System V.3.2) - -builtins.c - - parse_and_execute needs to handle longjmp(top_level, EXITPROG) - (FORCE_EOF, too) by restoring the old value of top_level and - doing another longjmp. This is needed so that an exit inside a - `.' script will actually exit the shell - - make `typeset -f foo' print the definition of the function foo, - if one exists. - -jobs.h - - defined NO_PID as -1, a value that cannot possibly be a pid - -jobs.c - - all pid and pgrp variables are initialized to (pid_t) NO_PID - -subst.c - - reorganized the ${} code into several functions - - make the brace-counting code that gathers the RHS of a ${} - parameter substitution use extract_delimited_string - - if no asynchronous commands have been executed, $! should echo - nothing - - make ${#} work like $# - - make ${#-foo} a bad substitution - - test for len_alt_opener == 0 in extract_delimited_string before - comparing the string with alt_opener - - ${special_var?} should echo the standard message ``parameter - null or not set'' - - plugged some memory leaks -- memory was not freed before longjmp - calls after bad substitutions - - 5/30 - ---- - -subst.c - - more radical reorganization - -cpp-Makefile - - redid the dependencies so that it's no longer required to `touch' - a .h file if another .h file changes - -glob.c - - statbuf -> finfo - -readline/tilde.c - - new file that handles the tilde expansion for the shell and readline - -readline/readline.c - - tilde_expand removed from this file; now in tilde.c - -general.c - - new function tilde_initialize to initialize the tilde expansion - code - - bash_tilde_expand is now in general.c, since it should work even - if readline is turned off for some reason - -shell.c - - tilde_initialize called as part of shell initialization - - 5/31 - ---- - -parse.y - - aliases consisting entirely of digits are now allowed; simply - commented out the !all_digits test - -documentation/bash.1 - - the PROMPTING section should make clear the difference between - \w and \W - -machines.h - - small fix to isc386 entry -- we still have alloca if we're using - gcc - - add -D_DGUX_SOURCE to the SYSDEP_CFLAGS for the DG/UX entries - - add -DNLS to the RS6000 SYSDEP_CFLAGS - -cppmagic.sh - - improved the test for gcc-cpp by also looking for the word - `recognized' in the error message - -readline/readline.c - - don't declare getpwuid() and getpwnam() if we're on an ISC 386 - machine - -machines.h, posixstat.h, execute_cmd.c - - changes from Saul Lubkin for Posix bash on ISC 2.2 - - 6/1 - --- - -jobs.c - - make the behavior of jobs started when job control is not active - be the following: - - if the shell is interactive, set SIGTSTP, SIGTTIN, and - SIGTTOU to SIG_IGN. This way, typing ^Z to a running - process will not do anything - - if the shell is non-interactive, set SIGTSTP, SIGTTIN, - and SIGTTOU to SIG_DFL, so jobs started from scripts - will stop when the script shell gets a SIGTSTP - - It might work to simply not change the values of the signals if - job_control == 0, since this is how they *should* be, but that - seems too chancy. - -execute_cmd.c - - make && and || constructs unstoppable, because there's no other - way to prevent the second process from executing immediately - if the first one is stopped (this is what ksh appears to do). - Make sure that we add an unwind_protect call to restore the - value of job_control if the command is interrupted. - - 6/3 - --- - -subst.c - - tilde expansion should be performed if there is an unquoted tilde - anywhere in the word, so we can check for `=~' and `:~' - - 6/4 - --- - -subst.c - - tilde expansion should be performed in do_assignment_internal - only if the `expand' argument is 1 and we do the other expansions - - pass the word to tilde_expand in expand_words_internal even if - its quoted bit (tlist->word->quoted) is set - -jobs.c - - make set_job_control return the old value of job_control, so you - can say `old_job_control = set_job_control (0);' - -unwind_prot.c - - added a structure to save the value of an integer variable. Two - new functions use it: unwind_protect_var (&var) allocates this - structure, fills it in, then calls add_unwind_protect specifying - restore_variable as the function to execute. restore_variable takes - this structure as an argument, restores the specified variable, - and frees the structure it gets - -builtins.c, execute_cmd.c - - changes to use unwind_protect_var to restore variables - - 6/5 - --- - -readline/readline.c - - readline now enables 8-bit input by default for termio, termios - systems (c_iflag &= ~ISTRIP) - -shell.c, builtins.c - - special_source_interrupt was renamed to parse_and_execute_level - -builtins.c - - parse_and_execute now uses unwind-protects to clean up after itself, - allowing these to be run from another place in the code if necessary - - special_buf is no longer used as a cleanup mechanism - - new function parse_and_execute_cleanup that can be called from - anywhere that encapsulates all the necessary unwind protects for - parse_and_execute - - period_builtin now calls parse_and_execute_cleanup to have - parse_and_execute clean up if the `return' builtin is executed - while in the middle of a `.' command and not inside a function - -trap.c - - run_interrupt_trap now prevents recursive calls to itself by - making trap_list[SIGINT] null while it is executing - -shell.c - - reorganized throw_to_top_level: run_interrupt_trap is now called - as the first thing, and throw_to_top_level calls - parse_and_execute_cleanup to make parse_and_execute clean up - after itself - -subst.c - - fixed a bug caused by string_rest_of_args returning NULL, which - caused parameter_brace_expand_length to get a seg fault because - it didn't check the return value when expanding ${#*} with no - dollar variables - -machines.h - - fixed up the HP/UX entry. HP/UX 7.0 and above (the Posix versions) - define __hpux to cpp, giving us a way to automatically tell the - difference between Posix and non-Posix implementations (whether or - not to link with -lBSD) - -trap.c - - save the value of last_command_exit_value while running the exit - trap. This way any exit trap will not change the value of - `exit 5', for instance - -subst.c - - added a function unquoted_member (c, s), which behaves like - member but tests whether or not c occurs in an unquoted portion - of the string - - made the test for calling tilde expansion be - ((first character is a tilde) || - (tilde appears && word not quoted) || - (tilde appears && tilde is unquoted)) - this uses unquoted_member (c, s) - -shell.c - - Xenix has the middle two arguments to setvbuf different from - every other implementation in the world. Add #ifdef'd code - -machines.h - - the Xenix 386 definition has to have M_OS and SYSDEP_CFLAGS - undefined because they might have already been set if i386 - is defined - -cpp-Makefile - - make the gcc line for making malloc.o include a -o $@, since we - know gcc can handle it - -builtins.c - - preserve the value of last_command_exit_value around the - execution of ~/.bash_logout - - 6/6 - --- -subst.c - - generalized unquoted_member to unquoted_substring, and changed - the tilde expansion tests to call unquoted_substring with the - full tilde prefixes as the substrings (:~, =~) - -builtins.c - - `read' now accepts a `--' argument to signal the end of the - options - - 6/7 - --- -documentation/bash.1 - - added description of the `silent' error reporting mechanism of - getopts that is enabled when the first character of the option - string is a `:' - - added description of the new features of tilde expansion (:~ - and =~) - -subst.c - - fixed sv_optind to call getopts_reset with the value of $OPTIND - rather than resetting it to 1 - -getopt.c - - commented out the code executed when optind is reset to 0 that - decides on the option order. We always want REQUIRE_ORDER - -getopts.c - - only call set_posix_option_order once - -builtins.c - - `type' gets a -- option to signal the end of the option arguments - - `typeset/declare' gets a -- option to signal the end of the - option arguments - - `hash' gets a -- option to signal the end of the option arguments, - and gets rewritten to boot - - redid `umask' option processing code to be more regular -- fixed - the bug where `umask --' would print nothing - - added Posix.2 `-p' option to `command' builtin, also added a - `--' argument with the standard meaning - - `trap' gets a -- option to signal the end of the option arguments, - and gets rewritten to structure it like other builtins - - set_or_show_attributes was changed so that you can't just make a - read-only variable read-write by saying `readonly -n var' - - 6/8 - --- -variables.c - - if bash is executing a function (variable_context > 0), then look - in the temporary environment for a variable's value first - -machines.h - - new entry for Honeywell Bull X20 from lele@idea.sublink.org - - for hp/ux versions < 7.0, we still need to link with -lPW to - get alloca - - 6/11 - ---- -subst.c - - include - -machines.h - - change the `catch-all' entries for things like MIPS to use - #if defined (mips) && !defined (M_MACHINE) - -builtins.c - - took out the readonly -n change. Enable it for strict sh - compatibility - -unwind_prot.c - - extended the saved variable code to full generality by adding a - size field to the struct. Variables bigger than a char * will - be copied into a block of memory allocated to hold their value - and restored from there - -builtins.c, trap.c, execute_cmd.c - - changes to unwind_protect_var calls to add value, size arguments - -shell.c, jobs.c - - only catch SIGINT with sigint_sighandler if the shell is - interactive; otherwise let termination_unwind_protect get it - -shell.c - - startup files may now be aborted by using the `return' builtin - - set SIGTERM to SIG_IGN if the shell is interactive, not just if - it's a login shell. Without this, `kill 0' will kill an - interactive shell - - 6/12 - ---- -jobs.c - - replace instances of M_UNIX with the more descriptive SCO - -machines.h - - gather all 386 machines into one block, stop #undef'ing i386 - -builtins.c - - make exec_builtin not completely expand the command name and - stick it in argv[0] if the `-' flag is supplied -- instead, - tack a `-' on the front of whatever the user typed - - 6/13 - ---- -jobs.c - - don't change SIGQUIT's signal handler at all in - initialize_job_signals - -execute_cmd.c - - change execute_case_command to do string_list on the result of - expand_word (word) instead of just taking the first word and - assuming no splitting was done - - in execute_simple_command, make sure the call to bind_lastarg - is done before the dispose_words, because lastarg just points - at the last word, which is invalid after the dispose_words - -machines.h, jobs.c - - new machine-specific variables: BSD_GETPGRP, TERMIOS_MISSING - -glob.c - - make an incomplete character class (e.g. [X-]) behave as if - no class were specified instead of giving an error - -filecntl.h - - new include file that encapsulates fcntl.h and the declarations - for close-on-exec stuff - -execute_cmd.c, builtins.c, shell.c - - new arg for execute*command* functions that tells whether or not - to obey the -e flag and exit when a simple command exits with a - non-zero exit status - - fixed exit status of while to be success if no commands are - executed - - fixed exit status of until to be success if no commands are - executed - - 6/15 - ---- -execute_cmd.c - - since while and until commands are so similar, combined the bodies - into execute_while_or_until (), which takes a type argument to - decide which one it is. execute_{while,until}_command just call - this function - - added unwind protect calls to execute_for_command to free up the - list (for word in list) - - eliminated a possible call to find_function in execute_simple_command - - added unwind protect calls to execute_simple_command - - plugged a couple of memory leaks in execute_simple_command: - o freeing the expanded command words when executing a function - or builtin with a pipe in or out - o the name of the command (`command') when executing from a - disk file - -subst.c - - implemented the Posix.2-style $(( )) arithmetic substitution. I - think we'll let this remain mercifully undocumented - -variables.c - - removed support for old Posix.2-style exported functions, since - Posix.2 no longer specifies exported functions - - 6/17 - ---- -nojobs.c - - make wait_for_single_pid () check the validity of its pid - argument before calling wait(2), returning 127 if the pid is - invalid - -jobs.c - - if wait_for_single_pid () is called with an argument that does - not match a child of the shell, return 127 as Posix.2 specifies - - -builtins.c - - made `set' treat `set -' and `set +xv' as equivalent, like the - Posix.2 spec mandates (though it does mark the construct as - obsolescent) - - made the strings output by `export' and `readonly' when showing - variable definitions match those specified by Posix.2 - - if STRICT_POSIX_COMPATIBILITY is #defined when compiling the - shell, the shell will exit in the event that it cannot find the - file specified as the first argument to `.' - -variables.c - - turned set_auto_export(var) into a two-statement macro, saving a - number of function calls - - 6/19 - ---- -execute_cmd.c - - split the different parts of execute_simple_command into different - functions: execute_builtin_or_function, execute_disk_command, and - execute_subshell_builtin_or_function to make the whole mess - easier to understand - - 6/21 - ---- -builtins.c - - make sure that `type' does not report directories as executable. - Call executable_file to make sure. - - have the `set' builtin check the validity of its flags arguments - before actually doing anything with them. This prevents things - like `set -help' from exiting the shell - -flags.h - - added declarations for the functions exported by flags.c - - added #if defined (_FLAGS_H) protection against multiple inclusion - -shell.c - - don't do the .bashrc if we're a login shell, even if we're not - doing the .profile - -general.c - - uts -> ut, since UTS compilers define uts for the C preprocessor - -makeargs.sh - - better treatment of machines that do not have the `hostname' - command - - 6/22 - ---- -readline/readline.c - - on termio and termios systems, turn off NL -> CR and CR -> NL - input translation so bash will see the two characters distinctly - - 6/23 - ---- -ulimit.c - - cleaned up the shell_ulimit code so there was not so much code - duplication (cut 70K from binary!) - - added -H, -S to use hard, soft BSD resource limits - - ulimit now allows multiple options: -d -t -c or -dtc - - ulimit can print multiple options in the same format it uses for - -a - - USG systems can use -p, -n, -a -- there is no longer a ulimit.c.new - - -n uses RLIMIT_NOFILE for getting as well as setting, and so can - use hard and soft limits - - `ulimit limit' now behaves like `ulimit -f limit' - - 6/25 - ---- -execute_cmd.c - - since do_redirection () is the only place where we have the value - of the expanded redirection word, report open () failures there - - - broke the #! emulation code out into a separate function and made - it handle the single argument that you can give interpreters - -builtins.c - - make `command -p' use the Posix.2 configuration variable _CS_PATH - (with confstr()) or the #define CS_PATH to find the path that will - pick up all the standard utilities before falling back to using - COMMAND_MINUS_P_PATH - - 6/26 - ---- -builtins.c - - make sure we include `-o' in the list of legal flags when checking - for illegal ones in the set builtin - - 6/29 - ---- -fc.c - - parse and execute the entire edited file of commands when doing - `fc -e' so that compound commands work - -readline/readline.c - - allow leading whitespace in lines passed to rl_parse_and_bind() - -machines.h - - MIPS machines cannot handle the inclusion of /usr/include/sys/wait.h, - so #undef HAVE_WAIT_H - -cpp-Makefile - - pass only a subset of the CFLAGS down to the make in readline, - because some make programs and cc's get overloaded - - 6/30 - ---- -ulimit.c - - rewrote to do the 6/23 changes right - - added -- to mean end of options - -execute_cmd.c - - made a number of functions static - - changed do_redirection to do_redirection_internal - -cpp-Makefile, config.h, builtins.h, builtins.c, subst.c - - made the inclusion of the getopts code dependent on the definition - of GETOPTS_BUILTIN - -vprint.c - - new name for misc.c, since all that it contains now are definitions - for v[fs]printf() - -builtins.c - - made help for history_builtin include -s only if HISTORY_DASH_S - is defined, to match the code - - made the help for the ulimit builtin match the code, depending on - HAVE_RESOURCE being defined - - make the help builtin interruptible by adding calls to QUIT in - the loop - - `cd -' now prints the name of the directory it's changing to - - change the help text for the wait builtin to show that job specs - are allowed only on systems which support job control - - changed an fprintf(stdout, ...) to printf(...) in history_builtin - -jobs.c - - make kill_pid kill the correct pid when walking through all the - pids in a job - -test.c - - don't call strlen when we just want to know whether or not a string - is null; it suffices to test the first character - -bashline.c - - fixed a typo in the comment text for the FIGNORE code - -documentation/bash.1 - - some typo fixes - -documentation/features.texi - - fixed some typos - -glob/glob.c - - if we're not globbing dot filenames, and the first character of the - pathname is a `.', make sure the pattern matches it exactly before - we call glob_match in glob_vector() - - 7/1 - --- -fc.c - - use maybe_execute_file instead of calling parse_and_execute - when re-executing the file of commands - -builtins.c - - removed the help text #define; the savings is too small to bother - -ulimit.c - - set `verbose_print' after a group of specific options is given, - so `ulimit -pdt -m' prints everything verbosely - - 7/3 - --- -getopts.c - - made it include the Gnu `getopt.h' instead of declaring its - variables as extern - -getopt.c - - added a function getopt_set_posix_option_order() to set the - default option ordering to that required by Posix.2 - - added a variable default_ordering to hold the default style - of option ordering that getopt() handles. Usually it is - PERMUTE, but it can be set to REQUIRE_ORDER - -cpp-Makefile - - made all of the getopts files depend on GETOPTS_BUILTIN being - defined; changed some variable names for the getopts files - -builtins.c - - made exit_builtin and logout_builtin return the value of - exit_and_logout() instead of expecting exit_and_logout not to - return - - the `type' builtin now prints `keyword' instead of `reserved word' - when given the `-type' option - -jobs.c - - removed the final default #else clause for set_new_tty_driver(); - if none of NEW_TTY_DRIVER, TERMIO_TTY_DRIVER, or TERMIOS_TTY_DRIVER - is defined, the compilation is hopeless anyway - - 7/4 - --- -jobs.c - - added support for another format for pretty_print_job: print the - information only of the job is marked as not having been notified, - then set the job as having been notified so there will not be - multiple lines of information about the same job. flush_child () - resets this flag to 0 when a job's status changes - - made a number of private functions static - -builtins.c - - added a Posix.2a-like `-n' flag to the jobs builtin to print only - those jobs that have changed status since they were last printed - -documentation/bash.1 - - added description of -n option to `jobs' builtin section - - 7/5 - --- -shell.c - - test help file name for nullness and emptyness (hf && *hf) before - trying to read the history from it. Make the same changes when - saving the history. - -shell.c, jobs.c, quit.h - - changed the type of throw_to_top_level from type `sighandler' to - void - -execute_cmd.c, builtins.c - - make sure all int-valued functions return some value - -readline/readline.c - - if S_ISDIR is defined, then use it, otherwise use S_IFDIR - (Posix vs. traditional Unix) - - 7/6 - --- -builtins.c - - made the exit status of the kill builtin agree with the Posix.2 - specification - -documentation/bash.1 - - added specifications of the return values of most of the builtins - likely to be used in scripts - - 7/8 - --- -execute_cmd.c - - set this_shell_builtin and last_shell_builtin each time we - execute a simple command. This means that this_shell_builtin - being non-null will indicate we are running a builtin - -variables.c - - if we're executing a builtin, look in the temp environment first - for a variable before looking in the variable hash table - - 7/11 - ---- -test.c - - fixed precedence bug by making bash adhere to traditional sh - grammar for -a and -o - -readline/readline.c - - fixed a bug that would cause core dumps when trying to use ^P - to get to a line longer than rl_line_buffer_len, then trying - to insert something. - - - -[Radical reorganization of the shell sources, inclusion of builtins/*] diff --git a/CWRU/old-changelogs/CWRU.chlog.v6 b/CWRU/old-changelogs/CWRU.chlog.v6 deleted file mode 100644 index 3fb0fb178..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v6 +++ /dev/null @@ -1,1010 +0,0 @@ -[Beginning of work with version 1.10] - - 7/14 - ---- -documentation/bash.1 - - added description of the `bind' builtin - - fixed typo in description of the `command' builtin - -builtins/bind.def - - fixed up the error message printed when rl_read_init_file fails - -builtins/alias.def - - print_alias should be a static function - -builtins/history.def - - added support for `--' - -builtins/break.def - - added the glue for the `continue' builtin, which had been left out - -builtins/common.c - - changed find_shell_builtin to use a binary search. This eliminates - 40 calls to `strcmp' each time `test' is called, for instance - - added a function initialize_shell_builtins () that sorts the array - of shell builtins so the binary search will work - -shell.c - - added call to initialize_shell_variables in shell_initialize() - -builtins/mkbuiltins.c - - added a footer to the text written to builtins.c that initializes - the variable num_shell_builtins to the number of shell builtins in - the shell_builtins array - -builtins.h - - added an extern declaration of num_shell_builtins - -builtins/enable.def, builtins/help.def - - changed to use num_shell_builtins - -cpp-Makefile - - make the copy of builtins/builtext.h happen only if builtext.h - has changed, using `cmp'. This keeps bashline.c from being - recompiled every time something in the builtins directory - changes - - 7/15 - ---- -builtins/history.def - - fixed up the help text to reflect reality - -documentation/bash.1 - - more changes to the `alias' builtin text - - 7/16 - ---- -builtins/Makefile - - added a .SUFFIXES line to define .def as a suffix; old versions of - make require it - -getcppsyms.c - - corrected spelling error: MTPSEL -> MIPSEL - - added more defines: mc68020, m68k, bsd4_2, bsd4_3, ibmrt, ns32000, - hp9000s800, hp9000s500, hp9000s300, hp9000s200 - -readline/readline.c - - fixed a typo on rl_prep_terminal for BSD tty driver systems that - caused ^J and ^M to both be mapped to ^M on input. The net - effect was that it was impossible to get a literal ^M into a line, - like into an `ed' here document - - 7/17 - ---- - -cpp-Makefile - - make sure CPPFLAGS is passed to sub-makes - -machines.h - - Pyramid's don't have alloca(), so #undef HAVE_ALLOCA in the - machines.h entry - -builtins/history.def - - cleaned up the option parsing a little bit; corrected support - for the `--' option - - 7/18 - ---- -variables.c - - don't inherit IFS from the environment anymore - -machines.h - - fix the definition of SYSDEP_CFLAGS for ultrix machines - -cpp-Makefile - - make builtins/libbuiltins.a depend on pipesize.h, because ulimit.def - includes it - - shell.o needs to depend on endian.h - -getcppsyms.c - - more HP symbols for the 9000 series - -subst.c - - if command_substitute is passed a null or empty string, then just - return ((char *)NULL) immediately, without forking a child - -parse.y, subst.c, shell.c, execute_cmd.c - - added ksh-like process substitution using FIFOs (named pipes) - - 7/19 - ---- - -config.h - - made PROCESS_SUBSTITUTION a configurable option - -cpp-Makefile - - made y.tab.c depend on files included by shell.h - - 7/20 - ---- -subst.c - - make sure we call close_pgrp_pipe from the process substitution - code in the parent - - 7/24 - ---- -subst.c - - no longer unconditionally tilde-expand `:~' in words (but still - do it in assignments) - -test.c - - trim trailing blanks from integer expressions so isint() does not - choke on them - - 7/25 - ---- -makeargs.sh - - remove the -D from the SYSDEF definition of USGr4 - -builtins/history.def - - include "../filecntl.h" instead of sys/file.h - -make_cmd.c - - add declaration of reverse_list () - -subst.c - - add cast to return value from strlen() in sub_append_string (); - ANSI C makes the return value a size_t, which can be unsigned - -builtins/suspend.def - - add argument to suspend_continue(), since it's a signal handler - -readline/readline.c - - make rl_handle_sigwinch have only one argument: int sig - - make rl_signal_handler have only one argument: int sig - - add extern char *getenv() declaration at top level - - add extern char *index(), *rindex() declarations at top level, if - these are not already #defines - - add cast to d_namlen area of struct dirent, because it's an - unsigned short - -test.c - - change isint to: - take a string as first argument - accept a NULL second argument, meaning toss the value - work correctly with leading - and + - compute the value on the fly, rather than calling atol - - change age_of to: - take a string as first argument - accept a NULL second argument - - int_expt_err -> integer_expected_error - - changed all calls to stat to call a new function test_stat, which - immediately returns an error when given a null pathname. This is - what Posix.1 says - - changed eaccess, age_of to disallow null pathnames as well - -builtins/ulimit.def - - System V.4 does not define RLIMIT_RSS, so disable the `m' option - -builtins/mkbuiltins.c - - need to include "../filecntl.h" - -builtins/source.def - - need to include "../filecntl.h" - -builtins/times.def - - System V.4 does not define a struct rusage, so use times(2) instead - of getrusage(2) - - 7/26 - ---- -readline/readline.c - - output a \r in crlf() only if we're running under the BSD tty - driver (NEW_TTY_DRIVER) -- the Posix (termios) and System V - (termio) drivers do not disable output nl->crnl mapping - - if read returns 0 in rl_getc, return EOF to the caller - -cpp-Makefile - - make sure we pass -DHAVE_UNISTD_H down to the make in readline - so that the proper tty driver is used (BSD, termio, or termios) - - 7/27 - ---- -config.h, parse.y - - made csh-style `!' history expansion and prompt string decoding - configurable, based on the definition of CSH_HISTORY_EXPANSION - and PROMPT_STRING_DECODE, respectively. Both can be enabled - and disabled in config.h - -readline/readline.c - - reformatted maybe_unsave_line and maybe_replace_line - - if we use ^R to find a history line longer than rl_line_buffer_len, - we can't simply do a strcpy(the_line, line_found). We have to use - xrealloc to increase the length of rl_line_buffer in - rl_search_history - - do the same xrealloc trick in maybe_unsave_line, rl_get_next_history - -execute_cmd.c - - changed the way pipes are created. Now, SIGCHLD is blocked before - anything is done, and pipelines are created in a tight while loop - -parse.y - - changed pipelines to be right associative rather than left. This - way, the process tree is right-heavy rather than left -- there will - never be a command with a pipeline in cmd->value.Connection->first - -jobs.c - - removed all references to the pgrp_pipe process group synchronization - hack, including the functions pipe_read, pipe_close, and - close_pgrp_pipe - -subst.c - - removed calls to close_pgrp_pipe for command and process - substitution - -execute_cmd.c - - obey_minus_e_flag -> check_exit_on_error - - 7/30 - ---- -builtins/command.def - - HP/UX 7.x defines _CS_PATH, but does not have the getconf() function - to support it. Need a special #define to work around. - - 7/31 - ---- - -shell.h, parse.y, make_cmd.c, copy_cmd.c, print_cmd.c, execute_cmd.c - - consolidated the command->subshell and command->invert_pipeline - members into a single command->flags - -execute_cmd.c, shell.c, builtins/common.c, builtins/command.def - - removed the check_exit_on_error parameter to the execute_* - functions; the functionality is now one of the flag bits attached - to each command. - -shell.h, make_cmd.c - - each command type now has a `flags' member associated with it, - initialized to 0 in make_XXX_command - - 8/3 - --- -jobs.c - - wrap the system dependencies for waiting for children inside a - WAIT_FOR_CHILD macro, whose syntax matches the Posix waitpid() - function - -readline/readline.c - - make sure all definitions for XON/XOFF are wrapped inside the - USE_XON_XOFF cpp define - -subst.c - - make string_list and string_list_dollar_star use a common base - function: string_list_internal (list, separator) - - 8/5 - --- -builtins/mkbuiltins.c - - build the new builtins.c as a temp file, then rename it when - it's done - -shell.c - - when on an Apollo, turn off line editing if executing in a pad - - 8/6 - --- -inlib.def - - new builtin for use on Apollo machines - -lib/readline/vi_mode.c - - fixed `blind strcpy into the_line' bug in rl_vi_dosearch - - made ~ vi change case command take a numeric argument, like ksh-88 - - made vi character search commands (t, T, f, F, ;) take arguments - - made vi `_' directive unconditionally append a space before - inserting the last arg - - make rl_vi_replace only create vi_replace_keymap once - - 8/7 - --- -lib/readline/{Makefile, readline.c, vi_mode.c} - - finally made vi_mode.c standalone and not included by readline.c - so I don't have to wait so long for recompiles each time I change - something in either file - -lib/readline/vi_mode.c - - made rl_vi_change_char (vi `r' command) accept an argument count - - if user has bound ^H to erase, make ^H erase when in overstrike - mode (vi `R' command) - - `cl' deletes one too many characters, so don't advance rl_mark an - extra character in rl_vi_change_to if the command is `l' - - readline thinks that the first word on a line is the 0th, while vi - thinks the first word on a line is the 1st. Compensate. This is - for the vi `_' command - - `dl' deletes one too many characters, make fix to rl_vi_delete_to - analogous to that made to rl_vi_change_to to not move mark forward - - fixed handling of numeric args in rl_vi_domove so that the correct - numeric arg was displayed, the digit read was used to initialize - rl_numeric_arg, and the non-digit key stuffed back by rl_digit_loop1 - was re-read, executed, and passed back as the value of the - movement command (makes d5l work right, for instance) - - made rl_vi_fetch_history treat a numeric argument correctly -- an - argument of n means we want the command that `history' would have - labeled as the nth command in its output - - extended the vi search commands `/' and `?' to accept a string - starting with `^' and find only matches that are prefixes of - history lines. Used a new function vi_history_search_pos that - acts like history_search_pos but understands `^' - - use rl_line_buffer instead of the_line so the_line can be static - and private to readline.c - -lib/readline/history.c - - fixed the calculation of how much of the history line to test when - searching forward in the history list for a string. Previously, - the absolute value of the difference in length was not used. - - generalized history_search into history_search_internal, which - takes a third parameter that tells whether or not the string must - match at the beginning of a history line. A new function - history_search_prefix uses it, and get_history_event now uses it. - history_search (string, dir) now simply calls - history_search_internal (string, dir, 0) - -lib/readline/readline.c - - fixed rl_yank_nth_arg to always move point forward and append a - space if in vi mode - -bashline.c - - added a function to implement the vi movement mode `v' command, - which runs `fc -e ${VISUAL:-${EDITOR:-vi}}' on either the - command being entered or a command from the history corresponding - to the numeric argument given to the command. This is commented - out, because currently there's no way for the shell to know - whether or not vi-mode has been compiled into readline - - 8/8 - --- -shell.h, execute_cmd.c, parse.y, print_cmd.c - - CMD_INVERT_PIPELINE -> CMD_INVERT_RETURN - CMD_IGNORE_EXIT_VALUE -> CMD_IGNORE_RETURN - -execute_cmd.c - - changes from bfox - - need to initialize lastarg to NULL at start of - execute_simple_command. For a command that's just an assignment - statement, `words' is nil and lastarg never gets set, binding - garbage and possibly stepping on memory - - lastarg now can be a variable local to execute_simple_command, - and it works better that way (e.g. it gets set to garbage when - executing a `.' command) - -builtins/exec.def - - after testing for `-' as argument, make sure there are more - arguments before doing anything else. Return if no more args - - 8/9 - --- -builtins/trap.def - - make sure the shell always ignores SIGQUIT, especially after a - call to trap that restores the default value of the signal handler. - The same thing needs to happen for SIGTERM if interactive, and - SIGTTIN, SIGTTOU, and SIGTSTP if job control is active - -parse.y - - call run_pending_traps () immediately after calling readline - - 8/10 - ---- -jobs.c - - only declare sys_siglist once, at top of file, rather than have - three or four separate extern declarations - - 8/13 - ---- -subst.c - - rewrote string_extract_double_quoted as a state machine to fix a - quoting bug and implement the Posix.2 draft 11 quoting rules - -lib/readline/vi_mode.c - - don't go back into insertion mode after performing completion in - command mode - - 8/15 - ---- -subst.c - - rewrote list_string to implement the Posix.2 draft 11 field - splitting rules - - 8/16 - ---- -builtins/alias.def - - make sure single_quote() adds terminating alias - -parse.y - - make sure we turn off expand_next_token when returning tokens that - are not words, like `>' - -lib/readline/readline.c - - make the termio and termios versions of rl_prep_terminal and - rl_deprep_terminal use the static flag terminal_prepped to tell - whether or not they should do anything - -test.c - - removed unused definition of test_io_error - - 8/18 - ---- -lib/readline/readline.c - - fixed the BSD/v7 terminal driver versions of rl_prep_terminal and - rl_deprep_terminal to mimic the structure of the sys5/Posix versions - with respect to terminal_prepped - - fixed a possible call to malloc(0) when allocating space for - macro_keys in rl_macro_bind - - made rl_variable_bind ring the bell if asked to set the editing mode - to vi when vi mode has not been compiled into libreadline - -test.c - - fixed term() so that -l string is recognized correctly as the LHS - of a binary operator - - made enough changes so that test.c compiles standalone on the RT - running 4.3 and can be installed as /bin/test - - 8/20 - ---- -parse.y - - fixed turning off alias expansion so aliases are still expanded - after || and &&, for instance - -execute_cmd.c - - should only add an unwind-protect to restore the signal mask if - job control is in effect - -builtins/suspend.def - - should only be compiled in if job control is in effect - -builtins/alias.def - - make sure we free the string allocated and returned by single_quote() - in print_alias() - -builtins/reserved.def - - fix help text for `for' loop to indicate that the semicolon is - required only if the `in words' portion is present - - 8/21 - ---- -documentation/bash.1 - - fixed the description of tilde expansion to indicate that it is - performed on the RHS of assignment statements, and that =~ and - :~ are expanded in such cases - -machines.h - - updated Ultrix MIPS machines entry to undefine HAVE_ALLOCA_H. - Ultrix 4.2 on Decstations has /usr/include/alloca.h, which defines - alloca as __builtin_alloca, but this version of alloca is severely - limited and unusable - -jobs.c, subst.c - - some Posix systems (e.g. SGI) can't even handle a call to setpgid - when the only other member of the process group is a zombie. - Restored the old pgrp_pipe synchronization code, #ifdef'd on - PGRP_PIPE - -machines.h - - added -DPGRP_PIPE to the SGI SYSDEP_CFLAGS - -trap.c - - need to re-install signal handler on USG machines without BSD - signals (in trap_handler). There's still the USG signal race - condition, though - - if interrupt_immediately is set, run a trap handler directly - from trap_handler, instead of just setting the flag - - 8/26 - ---- -subst.c - - changed parameter_brace_expand_rhs to perform tilde expansion on - the value it's expanding - -parse.y - - declared shell_pgrp as extern pid_t, need to include jobs.h on - job control systems to make sure it's defined - -jobs.c - - make a job that is suspended show the signal that caused the - suspension in the exit status (128 + WSTOPSIG(s)) - -jobs.c, execute_cmd.c, builtins/fg_bg.def - - make start_job return -1 on error, 0 when starting a background - job, and the return value from wait_for when starting a fore- - ground job - -lib/readline/vi_mode.c - - there was an off-by-one error in rl_vi_domove. We are not at - the end of the line if rl_point <= rl_end - 1, not just <. - This messed up things like `dw' to the end of the line - - 8/28 - ---- -subst.c - - forgot to malloc space for tresult before trying to use it in - word_list_quote_removal - - 8/29 - ---- -lib/readline/Makefile - - make sure that ../glob/tilde_expand.o is linked into the readline - library - - make sure that xmalloc.o is linked into the readline library - -lib/readline/xmalloc.c - - new file, linked into readline library for those applications that - do not define their own versions - -nojobs.c - - removed redundant call to signal(SIGQUIT, SIG_IGN) - - rearranged code in make_child so signals get the right values - in children of the shell - -jobs.c - - don't call restore_default_signal -- let restore_original_signals - do the work, because signals ignored in the shell with trap '' sig - are supposed to be ignored in children - -trap.c - - make sure restore_original_signals restores the values of SIGINT, - SIGQUIT, and SIGTERM, unless there has been a trap command called - on them - - 9/4 - --- -builtins/exec.def - - make sure that all signals are restored to their original values - before execing the new program - -bashline.c - - make shell_expand_line output an extra \r after pre_process_line - runs - - 9/5 - --- -lib/readline/readline.[ch] - - new function rl_tilde_expand, which attempts to perform - tilde expansion on the word under the cursor - - readline now recognizes a new variable, `expand-tilde', which - controls whether the tilde expansion functions are called - when bash does completion (default is off). The internal - form of this variable is rl_complete_with_tilde_expansion - -lib/readline/vi_mode.c - - new function rl_vi_tilde_expand, which performs tilde expansion - on the word under the cursor when in movement mode, then enters - vi insertion mode. - -lib/readline/{vi,emacs}_keymap.c - - bind rl_tilde_expand to M-& in emacs mode, and rl_vi_tilde_expand - to & in vi command (movement) mode - - 9/6 - --- -subst.c - - fix string_extract_double_quoted to malloc the correct amount of - space for the returned string - -execute_cmd.c - - add an undo redirection to do_redirection_internal for the `close - descriptor' case - - 9/7 - --- -lib/readline/vi_mode.c - - the first character of the string inserted into the command line - when the vi mode `#' command is executed is now controlled by the - internal variable `rl_vi_comment_character' - -lib/readline/readline.c - - the readline user-settable variable `vi-comment-character' now - controls the value of rl_vi_comment_character - - 9/10 - ---- -test.c - - fixed problems in binary_operator() caused by -l. Made sure that - bash always dereferences a valid member of argv. Check that the - (new) operator is a valid binary operator after a leading -l arg - is processed. - -lib/readline/vi_mode.c - - changed rl_vi_comment_character to rl_vi_comment_begin, which is - a character string - -lib/realine/readline.c - - changed the name of the variable controlling the vi comment - string to comment-begin - - 9/11 - ---- -subst.c - - changed ${#@} and ${#*} to return the number of arguments, for - sh and ksh compatibility, since the latest Posix.2 draft has - left it unspecified - -shell.c - - added a workaround for a bug in the NeXT 2.1 rlogind, which causes - the shell to start with no control terminal -- just open(2) the - result of ttyname(3), which causes it to become a controlling - terminal - - 9/13 - ---- -parse.y - - added the reserved words that can precede a list of commands to - the list of command word predecessors in command_token_position - -builtins/kill.def - - added support for negative process specifications to kill - process groups - - 9/17 - ---- -builtins/read.def - - turn off att_invisible when binding a variable to the results of - read - -subst.c - - don't expand invisible variables in the $VAR expansion code - - 9/18 - ---- -lib/readline/readline.c - - changed the use of _POSIX_VERSION to use HAVE_POSIX_SIGNALS and - TERMIOS_TTY_DRIVER - - 9/24 - ---- -shell.h, execute_cmd.c, builtins/command.def - - replaced two global variables, inhibit_command_word_expansion - and ignore_function_references, and replaced them with flags - in the simple command structure - -jobs.c - - make sure current_job and previous_job are reset to NO_JOB in - delete_all_jobs() - - stop_pipeline allocates an extra slot in the jobs array - - 9/27 - ---- -builtins/wait.def - - make the wait builtin use interrupt_immediately to get immediate - trap execution while waiting for commands - -subst.c - - when IFS is set to the null string (IFS=""), "$*" should - concatenate the positional parameters into a single word - -builtins/break.def - - if the argument to `break' or `continue' is not >= 1, Posix.2 - says the builtin should return EXECUTION_FAILURE - -shell.h - - Posix.2 has specified that the shell should exit with status - 126 when asked to execute a file that is not executable. This - changes the definition of EX_BINARY_FILE - -builtins/trap.def - - the format of the command string printed out when trap has - no arguments has changed to "trap -- %s %s" in the latest - version of Posix.2 - - 9/30 - ---- -builtins/alias.def - - make sure single_quote allocates space for the opening and closing - quotes by allocating 3 + (2 * strlen(s)) bytes - -nojobs.c - - Under certain circumstances, when set_tty_state is called - without a successful get_tty_state, the file descriptor - opened on /dev/tty could be left unclosed - - 10/2 - ---- -execute_cmd.c - - with redirections of type r_close_this, we don't need to check - if redirectee != redirector, since redirectee is not being used - there - -parse.y - - in yy_readline_get, we should only worry about shell_pgrp and - job_control if JOB_CONTROL is defined - -builtins/enable.def - - make enable_shell_command skip over entries with null values - for `function' - -subst.c - - fixed a typo: S_ISFIFO -> S_IFIFO - - 10/3 - ---- -builtins/ulimit.def - - some machines have a setdtablesize() system call, the `set' - analog of getdtablesize(). If HAVE_SETDTABLESIZE is defined, - call it when ulimit -n newlim is used. - -machines.h - - Sequent symmetry machines have setdtablesize(), add a - -DHAVE_SETDTABLESIZE to SYSDEP_CFLAGS - -parse.y - - made reserved_word_acceptable() static - - rearranged tests for reserved words so that in_case_pattern_list - test is performed first - - turned command_token_position into a #define, since it was almost - identical to reserved_word_acceptable - - 10/4 - ---- -shell.c - - for Ultrix Decstations or machines using Gwyn's alloca() emulation, - call alloca(0) in reader_loop after executing each command to try - and reclaim outstanding storage - - 10/7 - ---- -bashline.c - - fixed a bug that caused the internal index into the shell builtins - array to be incremented by one too many before returning matches - for command completion - -jobs.c - - if PGRP_PIPE is not defined, have each child process give the - terminal to the pipeline process group - - 10/8 - ---- -support/mksysdefs - - make Xenix machines call /bin/uname instead of the one found in - $PATH - -subst.c - - added a declaration for unquoted_substring at the top of the - file - -maxpath.h - - include rather than , since that is the - Posix-specified include file - -bashline.c - - make ` be a command separator for purposes of command completion - Now `ch[TAB] will attempt command completion - -lib/readline/readline.c - - don't compile in the termios code if TERMIOS_MISSING is defined - -machines.h - - since Ultrix typeahead is broken using the termios code, define - TERMIOS_MISSING in SYSDEP_CFLAGS - - 10/9 - ---- - -general.c - - add a pathname canonicalization routine canonicalize_pathname to - remove sequences of > 1 slash, remove . and ./, munge the - passed pathname to handle .. and ../, and remove trailing / - characters - -builtins/cd.def - - call canonicalize_pathname after making the pathname absolute - with make_absolute - - 10/10 - ----- -builtins/source.def - - check that the file being sourced is not a binary file - -builtins/ulimit.def - - added a new flag -v that reports the current and maximum limits - on the amount of virtual memory allocated to a process. This is - implemented using RLIMIT_VMEM on those machines that have it - (svr4) and as the sum of RLIMIT_DATA and RLIMIT_STACK on other - machines with the BSD resource limits - - 10/11 - ----- -general.c, parse.y - - unified #defines surrounding sysv_getc () declaration and use - -shell.c - - have first setjmp before startup files are executed test the - return code from setjmp to decide whether or not to exit the - shell or to skip the startup files - - 10/13 - ----- -expr.c - - need to initialize tokval and tokstr each time evalexp() is - executed - -execute_cmd.c - - make sure that functions executed in the background set up a - valid place to return to (using return_catch) so that trying - to execute `return' doesn't result in a longjmp botch - - 10/14 - ----- -lib/readline/vi_mode.c - - make rl_vi_ccmment insert a space after inserting `:' as the - comment character - -builtins/getopt.c - - make string.h be included #if defined (USG) || defined (hpux) - - 10/15 - ----- -bashline.c - - fix bug that causes bash to get a seg fault on attempting - completion after FIGNORE= - -test.c - - test -foobar was the same as test -f. Make sure an operator is - only two characters long - - 10/16 - ----- -shell.c - - interactive shells should call get_tty_state after reading the - startup files, so that any stty commands therein are not lost - -support/mksysdefs - - for a machine to be an `isc386', it must have both - /etc/conf/kconfig.d and /usr/include/sys/limits.h - - 10/17 - ----- -subst.c - - re-implemented ${#xx} in parameter_brace_expand_length to - call expand_string on $xx and take the length of the result. - If no result (e.g. if xx is undefined variable), return 0 - -execute_cmd.c - - remove the attempt to put commands on both sides of && and || - in a non-job-control environment - - 10/18 - ----- -lib/readline/history.c - - If we are compiling for the shell, allow quotes to inhibit - history expansion - -test.c - - A new version from djm@eng.umd.edu - -subst.c - - If we don't get all of the name when we go to expand ${#xx}, - where `name' is the stuff inside the braces, it's a bad - expansion error - - the ${xx} code advanced `sindex' one too many, so the character - immediately following the close brace was skipped - - 10/21 - ----- -type.def - - the state variable used in calls to user_command_matches when - looking up disk files was not being reset to 0 for each item - looked up - -nojobs.c - - reversed the sense of the first test for _POSIX_VERSION - vs. USG to determine what time of terminal handling code to - use - - 10/22 - ----- -lib/glob/fnmatch.[ch] - - Roland McGrath's implementation of the Posix.2 pattern matching - function fnmatch() - -subst.c - - removed emulation of fnmatch, declaration of FNM_NOMATCH - - include - -execute_cmd.c - - removed declaration of FNM_NOMATCH, now includes - - case pattern expansion now calls fnmatch(pat, str, FNM_NOESCAPE) - to disable backslash escaping. Still not sure this is the - right thing. - -cpp-Makefile - - changes so that ./lib/glob (actually $(GLIBSRC)) is in the include - file search path - - make sure fnmatch.c gets put into lib/glob/libglob.a - -machines.h - - isc386 needs -DPGRP_PIPE added to SYSDEP_CFLAGS - -make_cmd.c - - <<- means kill leading TAB characters, not all whitespace - - 10/24 - ----- -builtins/type.def - - make sure we note that we found something if a file is found in - the hash table, so a successful exit status is returned - - 10/25 - ----- -machines.h - - for Convex machines, also check for __convex__ and __convexc__ - being defined by cpp - - 10/27 - ----- -lib/glob/glob.c - - Posix systems should always use the `dirent' style of reading - directories, for portability - -lib/readline/readline.c - - restructured the maze of defines and include files for the - directory reading code to default to Posix-style if - _POSIX_VERSION is defined, regardless of whether the system is - BSD or System V - - in readline_internal, lastc should be initialized to -1, because - 0 can be a valid input character (some people use ^@ (NUL) as - the eof character, for instance, because it's easy to type) - - readline should bind eof_char for the termios and termio ttyio - systems - - make sure _POSIX_VDISABLE is defined for termio and termios - systems - - readline should check against _POSIX_VDISABLE rather than -1 to - decide whether a special character is disabled - - if VLNEXT is defined, termios systems should bind c_cc[VLNEXT] to - rl_quoted_insert - - if VWERASE is defined, termios systems should bind c_cc[VWERASE] - to rl_unix_word_rubout - - readline should always call readline_default_bindings each time, - so changes made by `stty' are obeyed. Move the call from - readline_initialize_everything to readline_initialize so any new - settings are recognized each time readline is called. This is - for erase, kill, literal-next, and word erase characters - -lib/readline/funmap.c - - added a funmap entry for rl_call_last_kbd_macro in default_funmap - (as "call-last-kbd-macro") - -execute_cmd.c - - when executing a ()-subshell command with redirections, - execute_command_internal performs the redirections associated with - the entire subshell command itself, but then forgets to dispose of - and clear command->redirects before calling itself recursively - -subst.c - - ${#-} and ${#?} are not illegal, and should expand to the lengths - of $- and $?, respectively - - 10/28 - ----- -variables.c - - fix from bfox: change bind_variable to call var_lookup rather - than find_variable, because find_variable will look in the - temporary environment under some circumstances - -subst.c - - ${#:} should be (and is now) an error - - 10/29 - ----- -lib/readline/readline.c - - readline_default_bindings is again called from - readline_initialize_everything, so it is only called once - - 10/30 - ----- -test.c - - make sure uid_t and gid_t are defined on non-Posix USG systems - (this may be overkill) - -machines.h - - Ardent has a non-functional vfprintf?? - -lib/malloc/gmalloc.c - - new Gnu malloc, written by Mike Haertel, snagged from gdb 4.2 - - define the code that tries to intuit getpagesize - -builtins/ulimit.def - - make sure all calls to getmaxvm are protected by HAVE_RESOURCE - -builtins/times.def - - protect the getrusage calls with #if defined (HAVE_RESOURCE) && - defined (RUSAGE_SELF) rather than some system specific - identifiers - -[end of work with version 1.10] diff --git a/CWRU/old-changelogs/CWRU.chlog.v7 b/CWRU/old-changelogs/CWRU.chlog.v7 deleted file mode 100644 index be260f07f..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v7 +++ /dev/null @@ -1,671 +0,0 @@ -[Beginning of work with version 1.11] - - 10/31 - ----- -Makefile - - changed instances of $(AWK) to $(GAWK) -- political correctness from - bfox - -builtins.h, builtins/help.def, builtins/mkbuiltins.c - - changed representation of long_doc from a single string to an - array of strings - -execute_cmd.c - - only call __setostype() if on isc386 and _POSIX_SOURCE is - defined - -general.c - - only define functions for index and rindex if index and rindex - are not already cpp defines - -jobs.c - - #undef some things that clash between and - on Posix suns - -machines.h - - make isc386 machines links with the shared C library explicitly - (-lc_s) - - new entry for a MagicStation (?) from bfox - -variables.c - - use a cpp define _CONST_HACK to determine whether the parameter to - getenv() is a char const * (yes for _STDC_, no otherwise) - -builtins/type.def - - make found_file local to the block that searches for executable - disk files - - 11/4 - ---- -execute_cmd.c - - make execute_function_or_builtin use unwind protects to protect - the `return catch' variables - -support/getcppsyms.c - - added definitions for M_UNIX, M_XENIX, and _AIX - - 11/5 - ---- -bashline.c - - fix a call to savestring in command_word_completion_function with - a post-incremented int parameter, since savestring is a macro that - evaluates its argument twice (builtin completion) - -lib/glob/fnmatch.c - - add `^' as a character that negates a character class ([]) - - 11/6 - ---- -subst.c - - add a new variable last_command_subst_pid to keep track of the - pid of the last child created for command substitution. Used - to determine whether or not command substitution has taken - place. - -execute_cmd.c - - made the exit status of a command that has only assignments and - redirections obey the Posix spec - -unwind_prot.c, trap.c - - make sure all sigset_t variables are initialized with sigemptyset - before use - -lib/glob/fnmatch.c - - fixed a couple of bugs with [] classes in fnmatch: not checking - whether or not we've hit the ']' and not incrementing the string - argument in the right place - - 11/7 - ---- -braces.c - - Make backquotes inhibit brace expansion -- defer it until the - subshell runs - - Ditto for $( ) - -subst.c - - since braces.c now calls unquoted_member and unquoted_substring, - they can no longer be static functions - -config.h - - two new configuration options: ALLOW_RIGID_POSIX_COMPLIANCE and - DISABLED_BUILTINS - -shell.c, jobs.c - - define and use top_level_signal_mask, restored on longjmps to - top_level by throw_to_top_level - -builtins/builtin.def - - use builtin_address to find the function (if so configured) so - that `builtin foo' still works after `enable -n foo' - -builtins/common.c - - have both find_shell_builtin, which never finds disabled builtins, - and builtin_address, which does - - 11/8 - ---- -general.c - - the getdtablesize emulation should ensure that _SC_OPEN_MAX is - defined on Posix systems before trying to use it in a call to - sysconf() - - - 11/10 - ----- -lib/glob/fnmatch.c - - fixes from Roland McGrath for some of the more egregious bugs - - naturally, Roland missed a few - -lib/readline/readline.c - - add missing calls to sigemptyset(), since Posix specifies that - all sigset_t variables be initialized before use using it - - only turn off ISTRIP and INPCK in the termio(s) code if the - character size is 8 bits ((otio.c_cflag & CSIZE) == CS8) - - Sequents running Dynix/ptx should include rather - that - -builtins/type.def - - change a call to printf to builtin_error when printing a - diagnostic that something is not found - -builtins/times.def - - changed file inclusion code to include and - if HAVE_RESOURCE is defined, then to include - if !HAVE_RESOURCE and RUSAGE_SELF is not defined. - This catches systems with deficient files - - 11/11 - ----- -lib/readline/readline.c - - Don't try to dereference funmap in rl_named_function() if it's - null (as it is before rl_initialize_funmap is called) - - 11/12 - ----- -lib/readline/readline.c - - backed out of change of 11/11 to rl_named_function - -bashline.c - - add a state variable bash_readline_initialized to keep track of - whether or not readline has been initialized with a call to - initialize_readline() - -builtins/bind.def - - if readline has not been initialized the first time this is - called, call initialize_readline - - 11/13 - ----- -execute_cmd.c - - execute_subshell_builtin_or_function would only let the output - of `jobs' be piped if pipe_in and pipe_out were both != NO_PIPE - (?). Obviously a typo. - -builtins/command.def - - add an unwind_protect to dispose of the new command created - by the call to make_bare_simple_command - -builtins/jobs.def - - add the `jobs -x command args' form from the System V.4 sh - All job specs in `args' are replaced with the appropriate - job's process group id and `command' is executed - -builtins/getopt.c - - if getopt() finds that optind > argc when it is called, it - sets optind = argc and returns EOF - -builtins/times.def - - backed out of 11/10 change. Some systems, most notably - HP/UX have all the correct includes and defines and simply - do not implement getrusage(). At all. - -subst.c - - if sv_optind finds that OPTIND has been unset or set to an - empty string, call getopts_reset (0). The Gnu getopt - resets its internal state when optind == 0. - - call getopts_reset(0) if OPTIND=1, because that's what the - Posix spec says to use to reset - - 11/14 - ----- -builtins/alias.def - - fixed a typo in the SHORT_DOC for the unalias builtin - -builtins/shift.def - - allowed the shift count to be 0 - - 11/15 - ----- -lib/readline/readline.c - - turn on 8 bit characters if NO_EIGHT_BIT_CHARACTERS is not - defined and the Posix termios code path is being taken - -[The following two entries describe what's needed for an initial -implementation of the vi mode `.' command] - -lib/readline/vi_mode.c - - new variables: - vi_last_command: last command that modified text in - the buffer - vi_last_repeat: the repeat count to vi_last_command - vi_last_arg_sign: arg sign for vi_last_repeat - vi_last_motion: the last motion qualifier for the - text modification commands that use one - vi_redoing: state variable, if 1 we're re-doing a - command - vi_textmod: list of commands that modify text - (initially "_*\\AaIiCcDdPpYyRrSsXx~") - - - new functions: - rl_vi_redo: an initial implementation of the vi mode - `.' command - rl_vi_set_last: initialize the state of the new variables - described above - rl_vi_textmod_command: return true if command passed is - a text modification command - - changed rl_vi_domove to save the movement command information in - vi_last_motion - - changed rl_vi_movement_mode to call rl_vi_set_last to initialize - the `last command' state - -lib/readline/readline.c - - changed rl_dispatch to save vi_last_command, vi_last_repeat, - and vi_last_arg_sign - - changed rl_newline to call vi_set_last - -lib/readline/readline.h - - new function rl_vi_redo - -lib/readline/vi_keymap.c - - bind rl_vi_redo to `.' - - 11/20 - ----- -posixstat.h - - make isc386 defines for S_IFDIR and S_IFMT be used if they - do not already appear, no matter whether or not gcc is being - used for the compile - -machines.h - - new entry for Omron Luna 88k running Mach 2.5 (nice machines) - -lib/readline/vi_mode.c - - fixed a bug with rl_vi_domove and the last word on the line. - If rl_point ended up > rl_end, it was being set to rl_end - 1 - rather than to rl_end. - -cpp-Makefile - - quote the values of RANLIB and AR passed to makes in - subdirectories - -shell.c - - instead of making all Xenix systems swap the second and third - arguments to setvbuf, make that behavior dependent on the - definition of REVERSED_SETVBUF_ARGS - - 11/21 - ----- -lib/readline/readline.c - - fixed an error in rl_forward that caused vi-mode to walk off - the end of the line after executing `l' in command mode on an - empty line - - 11/22 - ----- -support/getcppsyms.c - - added the `luna88k' define - - 11/24 - ----- -execute_cmd.c - - all calls to dup2 in do_redirection_internal should be checked - for errors and the redirection should fail if the dup2 fails - -shell.h, parse.y, execute_cmd.c, print_cmd.c, make_cmd.c - - replaced the single redirection operator `r_duplicating' with - r_duplicating_input and r_duplicating_output to avoid the - read 1<&7 getting printed as read 1>&7 problem: - foo() - { - exec 9&word -parse.y - - eliminated the old yacc production for >& word, meaning put stdout - and stderr into `word' - - added productions for [n]<&word and [n]>&word that use the new - redirection operators -execute_cmd.c - - the first thing done in do_redirection_internal is now a check for - r_duplicating_input_word and r_duplicating_output_word. If the - redirection is one of those two, `word' is expanded and a new - redirection is made -print_cmd.c - - new code to print the [n]<&word and [n]>&word redirections - (r_duplicating_input_word and r_duplicating_output_word) -make_cmd.c - - new code for make_redirection to handle r_duplicating_input_word - and r_duplicating_output_word - -documentation/bash.1 - - added documentation for the -x option to `jobs' + minor cleanups - and corrections - - 11/25 - ----- -cpp-Makefile - - added GCC_EXTRAS for gcc-specific compiler flags - -execute_cmd.c - - removed some unused functions (close_all_files) and variables - (file_exists_p) - -parse.y - - added new command-oriented-style history: all lines of a multiple - line command will be added to the same history line - - new variable current_command_line_count to keep track of the - number of lines in the current command. If > 1, a line is appended - to the current history line to implement command-oriented history - - new function bash_add_history - -shell.c - - added code to reset current_command_line_count to 0 before calling - parse_command and yyparse - -subst.c - - the command-oriented history is controlled by the setting of the - variable command_oriented_history - -builtins/reserved.def - - a new help topic: `variables', giving help on some common shell - variables - - 11/26 - ----- -lib/glob/glob.c - - if the filename portion of the pathname to be matched is null - (e.g. a*/), do not call glob_vector to attempt to match each - file in the expanded directories against the null string. - - 11/27 - ----- -lib/glob/glob.c - - force globbing of directory names even if the metacharacters - contained therein are protected by backslashes. The globbing - strips the quotes correctly - -shell.c - - make sure current_command_line_count is declared everywhere - it's used - -parse.y - - remove declaration of history_lines_this_session from - pre_process_line - - add extern declaration of history_lines_this_session to - bash_add_history - - 12/2 - ---- -trap.h - - removed inclusion of because most files include it - themselves, and this is dangerous on systems that do not protect - against multiple inclusion of header files - -trap.c - - include before "trap.h" since it was the only file - in the distribution not to do so - -shell.c - - Install the SIGINT sighandler the Posix way on machines with - _POSIX_VERSION defined - - 12/3 - ---- -dispose_cmd.c - - make sure dispose_redirects properly handles r_duplicating_input_word - and r_duplicating_output_word by freeing the `filename' - -execute_cmd.c - - fix do_redirection_internal to copy new_redirect->redirectee.filename - using alloca() so no memory has to be freed at function exit - - 12/4 - ---- -parse.y - - expand \n in PS1 or PS2 into \r\n only if line editing is enabled - -shell.c - - define top_level_mask if _POSIX_VERSION defined - -newversion.c - - made it write a definition of SCCSVERSION to version.h -- an SCCS - string so the `what' command will be useful - -version.c - - new variable `sccsversion' set to SCCSVERSION - - 12/5 - ---- -builtins/fc.def - - make fc_gethist check that the history list is non-null before - trying to access its members - - 12/6 - ---- -lib/readline/readline.c - - changed the ISTRIP code (again) to force bash to disable ISTRIP - only if the tty driver guarantees eight bits (cflag & CSIZE == CS8) - - 12/9 - ---- -lib/readline/readline.c - - tgetent returns 0 if it can't find the terminal name in /etc/termcap, - so we failed if it returns <= 0, not < 0. - - 12/11 - ----- -machines.h - - Sony machines running NEWS-OS 4.0 (V.4) should have strerror(), - so define HAVE_STRERROR - - Pyramids running BSD do not all have the vprintf family of functions, - so remove the definition of HAVE_VPRINTF - - 12/12 - ----- -parse.y - - make sure that shell_getc always checks that shell_input_line is - valid before trying to reference shell_input_line[0] - - 12/13 - ----- -mailcheck.c - - Since `dollar_underscore' saves the value of $_ in a local variable, - it's possible that bind_variable can free and reallocate the cell - for $_, leaving dollar_underscore pointing at freed storage. The - fix is to copy it into freshly-allocated memory. - - ensure that when saving and restoring dollar_underscore that we do - not try to call strlen on a null string - - 12/15 - ----- -general.c, execute_cmd.c - - moved the utility function `all_digits' from execute_cmd.c to - general.c - -builtins/kill.def - - remove use of sscanf, used calls to all_digits and atoi instead - -machines.h - - if not using gcc, need to make SYSDEP_LDFLAGS = -Xp for Posix - on isc386 - - 12/16 - ----- -machines.h - - isc386 has multiple groups - -execute_cmd.c - - add a QUIT to the while loop in find_user_command_in_path that - searches the path, so users can interrupt a lengthy path search - - 12/17 - ----- -builtins/alias.def - - added the Posix-specified -a option to unalias, made unalias obey - the getopt argument syntax guidelines - -builtins/jobs.def - - made `jobs' handle the -- option to signal the end of arguments - -flags.c - - Posix.2a has specified that the -b flag stand for asynchronous - notification, so move the definition of asynchronous_notification - here and add a new entry to the `flags' struct if JOB_CONTROL is - defined - -flags.h - - add an extern declaration of asynchronous_notification - -jobs.c - - change the definition of asynchronous_notification to extern, since - it's now declared in flags.c - -builtins/set.def - - change documentation strings to add -b option, note that - set -o notify is now the same as set -b - - change the code to make set -o notify the same as set -b - (list_long_opts(), take the special case out of set_minus_o_option) - - 12/19 - ----- -lib/readline/readline.c - - added support for $LINES, $COLUMNS. The variables are read after - the ioctl(TIOCGWINSZ) and before calls to tgetent - -builtins/fc.def - - made the fc output format correspond to that specified by Posix.2a - ("%d\t%s\n") - - 12/20 - ----- -execute_cmd.c - - user_command_matches did not properly handle a null $PATH element, - which should be the same as ".". Changed the code to mirror - find_user_command_in_path () - - - 12/23 - ----- -execute_cmd.c - - added a new function get_next_path_element, which calls - extract_colon_unit and interprets the result, translating - "" to "." - -builtins/cd.def - - added description of -l option to dirs short_doc - - fixed the bug that caused `dirs' to always print an extra - trailing space - -documentation/bash.1 - - added description of -l option to dirs - -parse.y - - added optional leading ( for case clause, as per Posix.2 - - 12/30 - ----- -lib/readline/vi_mode.c - - removed unused variable `added_blank' - -bashline.c - - added dynamic completion from bfox - -execute_cmd.c - - redirections must be performed in a child before execution of - the command is attempted or aborted (because it's not found - by a hash table or $PATH search), according to Posix.2 - -getcwd.c - - new file, from the Gnu C library, for systems that don't do - this right -- they use popen("/bin/pwd", "r") instead - - 12/31 - ----- -builtins/type.def - - the type builtin would not report a name as not found if any name - had previously been found because the flag variable used to report - this (found_something) was not reset each time through the loop. - Added a variable `found_any' to be global and reset found_something - to 0 each time through the loop - - 1/4 - --- -builtins/jobs.def - - make sure that the call to add_unwind_protect in - execute_list_with_replacements is made after the new command - struct is completely initialized - -support/mksysdefs - - look for /dev/fd, define HAVE_DEV_FD if present - -cpp-Makefile - - pass HAVE_DEV_FD through to make in SYSTEM_FLAGS - -shell.c, execute_cmd.c - - call unlink_fifo_list only if HAVE_DEV_FD is not defined and - PROCESS_SUBSTITUTION is defined - -subst.c - - new function make_dev_fd_filename to return /dev/fd/xx, where - xx corresponds to the parent end of the pipe - - all the named pipe utility functions should be #if !defined - (HAVE_DEV_FD) - - change process_subsitute to do the following on systems with /dev/fd: - 1. Make a pipe in the parent - 2. if (open_for_read_in_child) - parent_pipe_fd = fildes[1] - child_pipe_fd = fildes[0] - else - parent_pipe_fd = fildes[0] - child_pipe_fd = fildes[1] - 3. pathname = make_dev_fd_filename (parent_pipe_fd); - 4. fork - 5. In parent, close child_pipe_fd and return pathname - 6. In child, turn off job control, dup child_pipe_fd to - either fd 0 or 1 depending on OPEN_FOR_READ_IN_CHILD, - close parent_pipe_fd, parse and execute the string, - and exit - -shell.c - - added call to unlink_fifo_list in reader_loop so that all fifos - get closed, even after builtin commands are executed - - 1/6 - --- -machines.h, make_cmd.c, print_cmd.c, shell.c, cpp-Makefile - - HAVE_VPRINTF --> HAVE_VFPRINTF - -cpp-Makefile, machines.h, test.c - - HAVE_MULTIPLE_GROUPS --> HAVE_GETGROUPS - -cpp-Makefile, machines.h - - HAVE_SIGLIST --> HAVE_SYS_SIGLIST - -parse.y - - add if_command production - -builtins/echo.def - - validate all arguments before using them so that -nanything != -n - - document the -E option and its use - -builtins/umask.def - - allow other arguments to be used with -S - -subst.c - - make sure to close all files in the child created to run a - process substutition to avoid holding write file descriptors - to pipes that will cause the shell to hang - - 1/7 - --- -cpp-Makefile - - fixed a typo: SEARCHLIB -> SEARCH_LIB - -machines.h - - new description for Amiga 3000 running System V.4 - -shell.c - - default secondary prompt is now "> " - -builtins/bashgetopt.c - - more internal cleanups and bug fixes - -support/mksysdefs - - detect the amiga by the presence of /usr/amiga - - 1/9 - --- -general.c - - canonicalize_pathname should remove ./ only if it's at the - beginning of the pathname, or immediately preceded by a `/' - - 1/10 - ---- -documentation/bash.1 - - clean up the documentation for test -t, since according to - Posix, it always requires an argument - -general.c - - don't build index and rindex for DG machines - - -machines.h - - description for System V.4 on IBM 370 architecture - - fixed up DG/UX machine description diff --git a/CWRU/old-changelogs/CWRU.chlog.v8 b/CWRU/old-changelogs/CWRU.chlog.v8 deleted file mode 100644 index 2aa1437a3..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v8 +++ /dev/null @@ -1,251 +0,0 @@ -[ Work begins after network release of version 1.11 ] - - 1/11 - ---- -nojobs.c - - Posix systems now reap zombie children and retry a fork() once if - it fails - - Posix systems should use waitpid() rather than wait() wherever - possible - - Posix systems do not need to validate a pid before calling waitpid() - in wait_for_single_pid(); waitpid takes a pid argument - - 1/13 - ---- -execute_cmd.c - - get_next_path_element can return NULL, so the code that calls it - must take that possibility into account - -jobs.c - - there was an extra parameter in the select() call - -builtins/type.def - - successful_finds needed to be initialized to 0 - -machines.h - - fixed a typo (_D -> -D) in the DG/UX machine description - - 1/14 - ---- -execute_cmd.c - - fixed extract_colon_unit to return "" in the case of a trailing - colon in the path - -INSTALL - - note that on SCO Xenix 386 one must use cc -E rather than /lib/cpp - to process cpp-Makefile - -cpp-Makefile - - fixed the problem of a single quote in a makefile comment - -machines.h - - Xenix 386 machines need -DUSG in SYSDEP_CFLAGS - -lib/readline/readline.c - - changed the includes around so that the Xenix 386 support is - in the same section as the USGr3 code, and the Xenix 286 - support is in the same section as the plain USG code - -shell.c - - split the `int code = setjmp (top_level)' statement in - reader_loop into two statements -- some compilers don't like - it - -parse.y - - changed the overloaded `yy_input_dev' to a `union STREAM', - where a `union STREAM' is - - typedef union STREAM { - FILE *s_file; - char *s_string; - } STREAM; - - and changed the parameter to init_yy_io and all the functions - that call it to use a STREAM argument instead of casting back - and forth between a (char *) and a (FILE *) - -builtins/times.def - - If hpux or USGr4, #undef HAVE_RESOURCE, rather than try to fit - all the special cases onto a single line deciding whether or - not to include - - 1/15 - ---- -bashline.c - - changed the bindable name for the ksh-style ^O function from - operate_and_get_next to operate-and-get-next - -execute_cmd.c - - some systems (e.g SGI) allow the result of alloca to be assigned - only to a `simple' variable, so I introduced a dummy one instead - of assigning to redirectee->word directly - -shell.c - - fixed a typo: PENDANTIC -> PEDANTIC - -machines.h - - took -DREVERESED_SETVBUF_ARGS out of the entries for Xenix 386 - -cpp-Makefile - - added double quotes around the RHS of the assignment to - SYSTEM_NAME to avoid further cpp processing if the system name - happens to be a cpp define - -bashline.c - - added `search-forward', `search-backward' functions that perform - non-incremental history searches using the vi-mode code - - 1/16 - ---- -builtins/ulimit.def - - fixed a typo in a comment - - added parens around the object in an #if defined preprocessor - statement - -machines.h - - the Xenix 386 machine descriptions need to #undef HAVE_GETWD - -builtins/read.def - - Fixed read to treat backslash as an escape character unless - -r is given, as per Posix.2 - -lib/readline/readline.c - - Fixed up the maze of dire[cn]t includes and defines so that - they're correct for Xenix (finally) - -lib/glob/glob.c - - ditto. Now the defines/includes are correct for Xenix 386 - -execute_cmd.c - - a loop of the form - while : ; do echo -n 1; done - can run a machine using Gwyn's alloca() emulation out of memory - because alloca() keeps getting called at the same stack level - and never frees anything up. Added a call to alloca(0) after - the call to execute_simple_command in execute_command_internal - - added Karl Kleinpaste's workaround for the AFS file creation - bug, dependent on AFS_CREAT_BUG - -parse.y - - \s in a prompt string needs to decode to the shell basename, as - per the documentation, rather than the full shell name - - 1/17 - ---- -nojobs.c - - fixed a typo in one of the WAITPID calls, thanks to Bruce Evans - -[At this point, all of these fixes were sent along to bfox] - -support/getcppsyms.c - - now recognizes cpp symbol __hppa for use on HP precision - architecture machines - -machines.h - - M_MACHINE is now `hppa' for HP Precision Architecture machines, so - to make sure hpux is defined, it's now in SYSDEP_CFLAGS - - Make sure that the RS6000/AIXv3 description defines M_OS as AIX, - not "AIX". The quotes are added in cpp-Makefile - - 1/27 - ---- -parser.h - - new file, contains structures necessary to parse commands - -input.h - - new file, contains definitions and structures used to read input - -bashline.c - - removed the definitions for search-backward, search-forward - -cpp-Makefile - - removed the definition of DESTDIR; now passed down from Makefile - -error.c, error.h - - new files to isolate the error-handling functions - -command.h - - new file including structures used internally to represent - commands - -parse.y - - include input.h, parser.h - - changed all the code that deals with input streams to fit the - new framework defined in input.h - -make_cmd.c - - moved the error reporting code to error.c - - added cpp code to ensure that alloca is defined correctly - -shell.h - - removed the code that was moved to input.h, parser.h, command.h - -builtins/common.c - - moved a call to setjmp out of an if statement - - changed the input code to work with the new input framework - -builtins/getopt.c - -include config.h if compiling for the shell - -lib/readline/readline.c - - change representation of characters > 127 to octal - rather than M-c - - changed representation of characters < ' ' to ^X rather - than C-x - - fixed a memory leak in parser_if () by freeing `tname' - -machines.h - - removed MIPS_CFLAGS from the ultrix Decstation entry, since the - limit no longer needs increasing - -variables.c - - move the initialization of PWD before the environment is read, so - an exported version of PWD takes precedence - -readline.c, funmap.c, emacs_keymap.c - - removed support for rl_arrow_keys -- it should now be done by the - inputrc file - -documentation/bash.1 - - only non-job-control shells start background jobs ignoring SIGINT - and SIGQUIT - -builtins/umask.def - - don't print the octal representation of the umask if the symbolic - representation has already been displayed - - a bad option to umask should return EXECUTION_FAILURE, not -1 - -shell.c - - new function, init_signal_handler (sig), to initialize the SIG - signal hander, call it in main loop - -nojobs.c - - call init_signal_handler (SIGINT, sigint_sighandler) so the correct - thing happens on Posix systems - -general.c - - updated the comment above the fallback implemenation of killpg() - -machines.h - - machine entry for the Unix PC - - new variable HAVE_DIRENT - - 1/28 - ---- -machines.h - - SCO needs to #undef HAVE_GETCWD so that the getcwd() function - supplied with bash is used - -subst.c - - USG machines should include , others - - sub_append_number should use itos() rather than xmalloc and - sprintf - -builtins/ulimit.def - - changed the resource limit struct to one that has no explicit - size to account for systems with differing numbers of resource - limits - -lib/readline/readline.c - - there was an off-by-one error in the code that counts the number - of items to list when doing completion listing diff --git a/CWRU/old-changelogs/CWRU.chlog.v9 b/CWRU/old-changelogs/CWRU.chlog.v9 deleted file mode 100644 index d1474fbff..000000000 --- a/CWRU/old-changelogs/CWRU.chlog.v9 +++ /dev/null @@ -1,5062 +0,0 @@ -[work begins on post-netwide-1.12 release.] - - 1/30 - ---- -machines.h, general.c, nojobs.c - - changes for AIX/RT 2.2.1 - -lib/readline/vi_mode.c - - fixed a bug with vi mode, `cw' and whitespace that removed the - last character of the previous word - -lib/readline/readline.c - - readline did not correctly save the value of last_readline_init_file - across things like `bind'. Now it does the following: - - last_readline_init_file initialized to NULL - readline_initialize_everything calls rl_read_init_file with - an explicit argument of ~/.inputrc - rl_read_init_file sets last_readline_init_file to - savestring(filename) so it saves a fresh copy - -getcwd.c - - new version from Roland McGrath, with changes for the bash build - environment - -execute_cmd.c, variables.c - - bash was not looking for $PATH in the temp environment when - looking up a command. Now, find_variable looks in the temp - environment if subshell_environment is set. This will be - set when bash is looking a command up in the path (it's set in - find_user_command_internal while looking up the path string to - pass to find_user_command_in_path) - - 1/31 - ---- -make_cmd.c - - removed useless call to alloca, replaced with a static array - definition - - 2/3 - --- -machines.h - - Cray machine description - - 2/4 - --- -builtins/getopt.[ch] - - upgraded to a more recent version from the Gnu C library - -jobs.c - - added a call to init_signal_handler to replace equivalent in-line - code in initialize_jobs - -trap.c - - new function: maybe_call_trap_handler (sig) calls a trap function - for signal SIG if one exists - -jobs.c - - bash now (effectively) ignores SIGINT while waiting for a job run - from a script. We don't want to die if a SIGINT is received while - running another process, only if that job dies due to SIGINT. This - lets interactive processes run from scripts that want to catch - SIGINT and handle it do so without disturbing the shell that's - interpreting the script. All other versions of sh behave this way. - - The implementation is fairly straightforward. In wait_for, the - parent shell sets the SIGINT handler to wait_sigint_handler, which - allows the wait builtin to be interrupted and sloughs off everything - else. flush_child controls the behavior when a `foreground' process - dies due to SIGINT: it calls a trap handler if one exists; - otherwise it calls either sigint_sighandler (interactive) or - termination_unwind_protect (non-interactive). It then resets the - SIGINT signal handler to what it was before wait_for changed it. - wait_for does reset the sighandler before returning if flush_child - does not, so the SIGINT does not stay ignored. - - There is a race condition between the time that make_child creates - a child and sets it to run and the time the parent calls wait_for. - This is handled by having old_sigint_handler, which holds the - value of the `real' SIGINT signal handler, be NULL except when the - shell is in wait_for, and only operate on the SIGINT handler state - if this variable is non-null. - - Should the stuff be unwind-protected? I don't think so; u-p gets - run on interrupts, and we're controlling the interrupt handler. - - 2/5 - --- -trap.c - - new function signal_is_trapped (sig) returns 1 if a trap handler - has been established for SIG - -shell.c - - have throw_to_top_level call longjmp(top_level, DISCARD) if the - shell is non-interactive and a SIGINT occurred and was trapped - -cpp-Makefile, machines.h - - instead of running `basename ...` to discover the name of the - alloca object file, use a new variable $ALLOCA_OBJECT. It's set - to alloca.o if we're using the C emulation, and to ALLOCA_OBJ, - which must be defined in the machines.h entry, for an - architecture defining ALLOCA_ASM - -cpp-Makefile - - BSD make of 4.3-tahoe and later already defines MACHINE and does - not allow it to be overridden, so replace it with Machine. - -endian.c - - added changes from Cray to configure endianness correctly on - machines with 8-byte longs - -parse.y - - added '&' to no_semi_successors in bash_add_history so bash will - not add a semicolon after it appears - - 2/6 - --- -subst.c - - since string_extract_verbatim was overloaded, added a new function - string_extract_single_quoted to call when extracting strings in - '' - -lib/readline/history.c - - changed call to string_extract_verbatim to a call to - string_extract_single_quoted - -lib/readline/vi_mode.c - - rl_vi_subst was not calling rl_end_undo_group properly (i.e. at all) - -execute_cmd.c - - On systems without job control, async commands (`&') have an - extra redirection added before calling execute_command_internal - that redirects /dev/null to standard input. This redirection - must be removed right after execute_command_internal returns, - because the loop functions call execute_command_internal multiple - times with the same command struct. If we keep tacking redirections - onto the front of it, eventually we'll run out of file descriptors - on a big enough loop. - -jobs.c - - some functions were not correctly blocking SIGCHLD while running: - delete_all_jobs, map_over_jobs, start_job when it calls - reset_current - - 2/7 - --- -print_cmd.c - - an extra space was being printed at the end of a redirection list. - This caused exporting of functions with embedded here-documents to - fail, since the end marker would not be matched - - 2/8 - --- -nojobs.c - - change reap_zombie_children to keep calling waitpid while it returns - something > 0 (a valid pid) - - add a call to reap_zombie_children if we get a valid pid after - waiting in wait_for - -variables.c - - include pwd.h after sys/types.h. It matters on some systems. - -shell.c - - added a function to encapsulate the differences between systems - in setting a file pointer to line-buffered: line_buffer_file - - 2/9 - --- -shell.c - - unbuffer stdin when it's not a tty and bash is reading a script - from stdin - - 2/10 - ---- - -machines.h, cpp-Makefile - - a new machine description variable HAVE_DIRENT, passed down to - makes in libraries - -support/mksysdefs - - check for the existance of /usr/include/dirent.h, define - HAVE_DIRENT_H if there - - 2/11 - ---- -machines.h - - add #define USE_TERMCAP_EMULATION to HP-UX machine description - - added #define HAVE_DIRENT to a number of entries - -jobs.h - - added missing definitions for WSTOPSIG, WTERMSIG, WEXITSTATUS - for Posix systems that do not have them and do not have the - `union wait' defined - -builtins/suspend.def, unwind_prot.c, longest_sig.c - - include before -- some systems require - it - -support/mksysdefs - - For HP machines running HPUX, SYSDEF is set to one of hpux8, hpux7, - hpux6, or hpux, corresponding to different releases of HP-UX. - - if `uname -m' returns something starting with XD88, the machine is - a Tektronix XD88 - - 2/12 - ---- -variables.c - - stop core dumping on startup if SHLVL is not set - -lib/glob/glob.c - - make sure we always recurse and glob the entire filename so the - quoting characters added in shell_glob_filename get removed - correctly - -jobs.c - - new function end_job_control to terminate stopped jobs and - give the terminal back to the original pgrp - - new function restart_job_control to re-initialize the job - control state - -builtins/exec.def - - call end_job_control before we try to execve the command so - we're back in the original process group for the new process - and restart_job_control if the shell_execve fails and we're - not exiting - -shell.c - - change the code that resets the pgrp just before exiting to - call end_job_control instead - -lib/readline/chardefs.h - - new define, MACRO_CHAR - -lib/readline/readline.c - - changed rl_generic bind to correctly handle binding keys > 128 - by using the appropriate meta keymap (map[ESC].function as a - keymap) - - changed rl_dispatch, rl_show_char, and rl_bind_key to use - UNMETA instead of substracting 128 and to use META_CHAR to - check for a character's `meta-ness' - - 2/13 - ---- -lib/readline/readline.c, lib/glob/glob.c - - define HAVE_DIRENT if it's not defined but HAVE_DIRENT_H is - -lib/readline/history.c - - instead of calling write(2) twice for each history line, build - a big buffer of all the history data to write, fill it, and - call write(2) once - -subst.c - - wrapped up the eight-bit changes by making the single-quoted - strings and double-quoted strings code in expand_word_internal - simply discard a word if it's "" or '' and that's not the - entire word. This preserves sh semantics. - -parse.y - - If process substitution is compiled into the shell, there was - a mistake by which <[ and >[ were treated the same as $[ - -lib/glob/glob.c, lib/readline/readline.c - - Reorganized the twisty maze of defines for HAVE_DIRENT - - 2/14 - ---- -posixstat.h - - removed lines consisting of only a single #. Some ANSI cpps - don't like lines like that - -execute_cmd.c - - added a call to QUIT between commands in cmd1 ; cmd2 sequence - -test.c - - removed redundant declaration of expr() in test_command() - - 2/16 - ---- -builtins/Makefile - - added dependencies on the header files in the main shell directory - -jobs.c, jobs.h, builtins/fg_bg.def, builtins/kill.def - - replaced the notified, foreground, and job_control members of the - job structure with a flags field and bits J_NOTIFIED, J_FOREGROUND, - and J_JOBCONTROL - -subst.c - - fixed a typo (result[0] == '\0') in EIGHT_BIT version of - dequote_string - -cpp-Makefile - - added dependencies for the builtin object files - -execute_cmd.c - - complete fix from 2/14 -- add QUIT calls to &&, ||, and `;' when - executing a command and ignoring the return value - -jobs.c - - if a job is suspended while running in a loop, break out of the - loop - -nojobs.c - - made the same wait_sigint_handler and wait_for changes as those - made to jobs.c - -shell.c - - moved the code that adds 128 to last_command_exit_value before - any SIGINT trap handler is run - -subst.c - - if a word is enclosed completely in "" or '', set the quoted - flag when the word is returned from expand_word_internal. This - keeps the globbing routines from being called - - 2/17 - ---- -shell.c - - use shell_name instead of (++argv[0]) when testing for a - restricted shell - - 2/18 - ---- -general.c - - redid the defines for index and rindex to define and use - HAVE_INDEX and HAVE_RINDEX, respectively - -machines.h - - added HAVE_DIRENT to the AIXRT machine description - -jobs.c - - define and use INVALID_SIGNAL_HANDLER as something old_sigint_handler - cannot be set to - - 2/19 - ---- - -config.h - - made restricted shell mode configurable, #define RESTRICTED_SHELL - -shell.c, flags.c, execute_cmd.c, builtins/cd.def - - add code to implement ksh/sh restricted shell mode - -shell.c - - new function maybe_make_restricted (name) which turns the shell - into a restricted shell if name == `rbash' - -lib/readline/readline.c - - fixed rl_key_sequence_length problem when meta-ized characters are - read (one too short). This left extra characters in macros when - end-kbd-macro was bound to a meta-ized character - -builtins/common.c - - added set_working_directory (name) as analog of - get_working_directory - -variables.h - - added `imported' variable attribute - - 2/20 - ---- -Makefile - - DESTDIR -> bindir - - aix-Makefile -> ansi-Makefile because an ANSI C compiler like that - in SunOS5 (hah!) need not accept /**/# as a directive - -bashline.c - - added code from bfox to do completion into brace expansions - - use BUILTIN_ENABLED flag - -builtins.h - - added a flags field to struct builtin to replace the `enabled' - structure member - -cpp-Makefile - - set SHELL=MAKE_SHELL if MAKE_SHELL is defined - - added support for the LD_HAS_NO_DASH_L definition from machines.h - - PROGRAM -> Program - - support for the new LD_HAS_NO_DASH_L machine defintion variable - -execute_cmd.c - - removed the subshell_environment variable - - find_user_command_internal now calls find_variable_internal - -general.c - - moved init_signal_handler here, changed name to set_signal_handler - -general.h - - added definition for set_signal_handler for non-Posix systems - -jobs.c - - now print `Done' when a background job exits with status 0 - -machines.h - - combined all of the Sun machine descriptions into one - - new descriptions for SunOS5, Alliant, Motorola Delta 68k - - completely redid the HPUX description, making M_MACHINE much more - specific rather than just `hpux' - -nojobs.c - - change all instances of signal() to set_signal_handler() - -shell.c - - removed definition of init_signal_handler - - changed more instances of signal to set_signal_handler - -subst.c - - monster reformat - -variables.c - - added a function find_variable_internal that can be explictly told - to search the temporary environment, changed find_variable to call - it - - changed all variables and functions from the initial shell - environment to have the `imported' attribute - - made set_func_auto_export return the pointer to the function struct - -builtins/Makefile - - ar clq --> ar cq - -builtins/cd.def - - `pushd_silent' is gone - -builtins/common.c - - there is no more `enabled' member of a builtin struct; - test with BUILTIN_ENABLED instead - -builtins/enable.def, builtins/help.def - - use BUILTIN_ENABLED bitmask - -builtins/mkbuiltins.c - - initialize all builtins to be BUILTIN_ENABLED | STATIC_BUILTIN - -lib/glob/Makefile - - ar clq -> ar cq - -lib/glob/glob.c - - added another shell interruption point - - reorganized the twisty maze of dirent defines to use HAVE_DIRENT_H - -lib/readline/readline.c, lib/readline/funmap.c - - put rl_arrow_keys back in - -lib/readline/Makefile - - ar clq -> ar cq - -lib/readline/readline.c - - reorganized the twisty maze of dirent defines to use HAVE_DIRENT_H - - made the search string for i-searches dynamically allocated and - expandable rather than using alloca - - turned on USE_XON_XOFF again - - RL_DEFAULT_INPUT_FILE -> DEFAULT_INPUTRC - -support/cppmagic - - added `legal' to the list of unknown flags - -support/getcppsyms - - now recognizes _M88KBCS_TARGET - -support/mksysdefs - - code to distinguish SunOS5 from SunOS4 - - aix-Makefile -> ansi-Makefile - -lib/readline/vi_mode.c - - after completing with `*' or `\', Posix.2a says to go into - insertion mode - - for c[wW], don't move back any farther than we started to - emulate c[eE] -- Posix.2 says the cursor position should not - change - -variables.c - - if we get PWD from the environment, and it's the same directory - as `.' (calling same_file) set the_current_working_directory - to that value - -builtins.h - - added a #define for SPECIAL_BUILTIN - -mksysdefs - - Xenix systems now have one of XENIX_22, XENIX_23, or XENIX_32 - defined based on the OS release level - - test for /dev/fd being a directory and /dev/fd/0 being readable - to decide whether or not we have the /dev/fd way of naming open - files - - 2/24 - ---- -builtins/common.c - - set_working_directory is now a void - -general.c - - new implementation of canonicalize_pathname from bfox - (+ bug fixes, of course) - -bashline.c - - make bash_symbolic_link_hook call canonicalize_pathname - -variables.c - - set_func_auto_export no longer returns a SHELL_VAR * - -lib/readline/readine.c - - added code to determine whether or not the terminal has a - meta key and to use it while editing if one is available - -subst.c - - minor bug fix to remove_quoted_escapes (logic bomb :-) - - 2/25 - ---- -machines.h - - cleaned up the hpux section. Cannot define M_OS as HPUX_X, - because HPUX_X is already defined as expanding to nothing; - this results in a blank M_OS - - - attempted to rationalize Xenix support. Depending on the - XENIX_nn define provided by support/mksysdefs, configure in - -DREVERSED_SETVBUF_ARGS, -xenix, -lx, -ldir, and HAVE_DIRENT - - Xenix 2.2: -DREVERSED_SETVBUF_ARGS - cc -lx - - Xenix 2.3: HAVE_DIRENT - cc -ldir - - Xenix 3.2: HAVE_DIRENT - cc -xenix -ldir - - 2/26 - ---- -builtins/source.def - - POSIX_PENDANTIC -> POSIX_PEDANTIC - - 2/27 - ---- -support/getcppsyms.c - - consolidated HP definitions to be of the form - - #if defined (__hp9000s300) || defined (hp9000s300) - printf (" -Dhp9000s300") - #endif /* __hp9000s300 || hp9000s300 */ - -machines.h - - changed the way the hp9000s300 tests for hp9000s200 being defined - -support/mksysdefs - - changed the XENIX_nn defines a little bit - -input.c - - new input buffering package -- like stdio but allows syncing with - the underlying file descriptor when creating child processes, and - provides a fd-stream mapping. - -input.h, shell.c, jobs.c - - changes for the input buffering package, using default_buffered_input - in place of default_input - -general.c - - fix canonicalize_pathname to keep from running off the end of the - result string (check result[i] before assigning start = i++) - -jobs.c - - change some calls to signal to call set_signal_handler instead - - 2/29 - ---- -shell.c - - only initialize default_buffered_input to the input file - descriptor if the shell is not interactive - -builtins/getopt.c - - cast the arguments properly in calls to my_bcopy - -execute_cmd.c - - added code to do_redirection_internal to change buffered streams - if one of the file descriptors corresponding to a buffered input - stream is modified. This lets the shell do proper buffering if - the file descriptor from which the shell is reading input is - modified by a redirection (e.g., exec 0b_size == 1, so that no special- - case code is needed when reads are done. - -input.h - - the member of the BASH_INPUT union in effect if it describes a - buffered stream is now a file descriptor - -jobs.c - - SCO 3.2.4 has fixed the sigsuspend() bug, so don't execute the - hack workaround if SCOv4 is defined - - 3/1 - --- -builtins/common.c - - made shell_builtin_compare perform some tests itself before - calling strcmp to cut down the number of strcmp calls - - did the same thing for builtin_address_internal - -parse.y - - removed calls to strcmp from read_token, just test if token[0] == } - and !token[1] - - only call clearerr if bash_input.type == st_stream in shell_getc - - removed a call to strcpy from shell_getc that only added a newline; - changed it to two assignment statements - - used token_index instead of a call to strlen at the end of - read_token where the word is being constructed and returned - -unwind_prot.c - - changed a strcmp to a STREQ in unwind_frame_run_internal - -variables.c - - removed some dead code that had been #if'd out - - added a variable to avoid a call to strlen in - initialize_shell_variables - - change a call to strncmp to a STREQN in initialize_shell_variables - - changed strcmp to STREQ in non_unsettable - - 3/2 - --- -jobs.c - - rearranged the code that calls flush_child (0) for SCO so it is - easier to do something like SCO && !SCOv4 - - changed flush_child so that the loop is performed in a blocking - fashion only if SCO && !SCOv4 - - 3/3 - --- -signames.c - - new standalone program to create a signames.h file that contains - the initialization code for the signal_names array - -trap.h - - removed the signal_names array initialization code - - include "signames.h" - -cpp-Makefile - - make sure signames.aux builds signames.h correctly - -input.c - - changed fd_is_seekable and bufstream_getc into macros - -mksysdefs - - changes to define SCOv4 if uname returns the right info - -machines.h - - changes to define BROKEN_SIGSUSPEND and NO_DEV_TTY_JOB_CONTROL - for various SCO systems - -jobs.c - - check for BROKEN_SIGSUSPEND and NO_DEV_TTY_JOB_CONTROL instead - of using SCO - - 3/4 - --- -general.c - - make set_signal_handler return the old signal handler again - -shell.c - - set SIGINT handler to sigint_sighandler for non-interactive shells - - remove SIGQUIT from list of terminating signals - - 3/5 - --- -builtins/trap.def - - added special SIGINT handling for the case of reverting a signal - handler to the default - -shell.c - - added SIGINT back to the list of terminating signals for - non-interactive shells - -variables.c - - initialize mail variables in initialize_shell_variables only if - interactive_shell is true - - only check for command_oriented_history if interactive shell - - only initialize the history variables if history expansion is - being performed (remember_on_history == 1) - - only make PS1 and PS2 non-unsettable if the shell is interactive - - 3/6 - --- -variables.c - - set up a new temporary environment, FUNCTION_ENV, which is the - temporary environment provided to a function - - make find_tempenv_variable search both temporary_env and - function_env, searching function_env if variable_context > 0 - - change maybe_make_export_env to add variables from function_env - to the environment - - new function dispose_function_env to deallocate the temporary - function environment and cause a new export_env to be made - - added code to qsort_string_compare to compare the first - characters of the strings passed before calling strcmp - -general.c - - new function copy_array (char **array) returns a newly-allocated - copy of ARRAY - -execute_cmd.c - - added code to execute_builtin_or_function that initializes the - temporary function environment and takes care of disposing of - it on normal or abnormal exit - - dispose of temporary environment after we initialize the function - environment - - added same code to execute_subshell_builtin_or_function - - since the trap code now restores the SIGCHLD handler to the - original, any time make_child is called and the shell needs to - run in the child process, set_sigchld_handler should be called - to reinstall the proper SIGCHLD handler - -jobs.c - - new function set_sigchld_handler to reinstall flush_child as the - SIGCHLD signal handler - - 3/9 - --- -bashline.c - - swapped code around to avoid calling savestring (this_fignore) - when this_fignore is null - - 3/10 - ---- -jobs.c - - make sure the code in flush_child that calls the SIGCHLD trap - handler saves last_made_pid and the_pipeline using unwind-protects - -lib/readline/readline.c - - make sure the code that uses VLNEXT is protected by #ifdef - TERMIOS_TTY_DRIVER - -shell.c - - add a `beenhere' flag to avoid executing $ENV more than once - -parse.y - - added a new token ASSIGNMENT_WORD - - made read_token return ASSIGNMENT_WORD if in a simple command - position, token contains `=', the `=' is not the first character, - and the characters before `=' are a legal identifier (as Posix.2 - specifies) - - a simple_command_element can now also be an ASSIGNMENT_WORD - - alias expansion is attempted if the last token was an - ASSIGNMENT_WORD, as Posix.2a specifies - - 3/11 - ---- -execute_cmd.c - - moved the code that checks command words for `/' down into - execute_disk_command, and made it check only the first command - word, like sh and ksh - - vfree() is no longer static, so other code that needs to add - unwind-protects that use free can use it - -trap.c - - added a function set_sigchld_trap (command) to set the SIGCHLD - trap handler to `command', because unwind-protects cannot take - two arguments - -jobs.c - - changed the code in flush_child to set up and use and unwind-protect - frame to protect the things it needs to while running the SIGCHLD - trap commands - - 3/12 - ---- -nojobs.c - - added the BUFFERED_INPUT code to make_child - -subst.c - - folded the test and increment of the string pointer into - string_extract_double_quoted and string_extract_single_quoted - - made string_extract_verbatim and string_extract static - -lib/readline/history.c - - changed code that calls string_extract_single_quoted to not - increment the string pointer after the call - -variables.c - - added code to qsort_var_comp to compare the first character of - the variable names before calling strcmp - - 3/13 - ---- -parse.y - - include string.h or strings.h - -lib/readline/readline.c, lib/glob/glob.c - - removed the code that defined HAVE_DIRENT_H if _POSIX_VERSION - was defined -- it breaks on apollos, and is a bad idea - anyway - -input.c - - make sure close_buffered_fd closes the fd, whether or not it - was a buffered stream - - 3/16 - ---- -machines.h - - added a #define LD_HAS_NO_DASH_L to the Sequent Dynix entries - -trap.c - - made trap_list[SIGINT] == IMPOSSIBLE_TRAP_HANDLER while running - the interrupt trap, so we can tell if the trap handler sets - another trap and not restore the original handler if so - - 3/17 - ---- -trap.c - - a new function set_sigint_handler, which subshells doing `shellsy' - things like command substitution and ( cmd ) call to make sure - they handle interrupts right - -execute_cmd.c, subst.c - - added calls to set_sigint_handler in the appropriate spots - - 3/18 - ---- -hash.c - - replaced the old hash function with the one from Gnu cpp, which has - a much better distribution - -jobs.c - - make end_job_control call setpgid to reset the pgrp to the original - only if original_pgrp >= 0 - -builtins/exec.c - - remove the calls to restore_default_signal; restore_original_signals - now does all the necessary work - - 3/19 - ---- -jobs.c, nojobs.c - - make sure that make_child resets default_buffered_input to -1 - after closing it with close_buffered_fd - - 3/23 - ---- -lib/glob/tilde.c - - had an extern declaration for malloc rather than xmalloc - -general.h - - added #define for REVERSE_LIST, a macro which calls reverse_list - on a list only if the pointer is valid and there is more than one - element - -parse.y - - removed calls to legal_assignment in read_token; assignment() - already does those checks - -general.c - - reformatted reverse_list - -copy_cmd.c - - changed calls to reverse_list in copy_word_list and copy_redirects - to calls to REVERSE_LIST - -subst.c - - changed a call to reverse_list in expand_word_internal to one to - REVERSE_LIST - - 3/24 - ---- -builtins/common.c - - replaced a call to sscanf with code to skip leading whitespace and - calls to all_digits and atoi - -mailcheck.c - - did the same for a call to sscanf in time_to_check_mail - - 3/26 - ---- -variables.c - - made find_variable_internal call find_tempenv_variable only if - temporary_env or function_env exists -[gprof.int.4] - -alias.c, alias.h - - rewrote the alias code so that it now uses a hash table instead - of looking things up in a linear list - -subst.c - - removed the inclusion of alias.h - -parse.y - - added inclusion of alias.h - -cpp-Makefile - - removed alias.h from subst.o's dependencies - - added alias.h to y.tab.o's dependencies - -bashline.c, builtins/alias.def - - rewrote code that knew about the internal alias data structure - to use an array of alias structures to search, match, and print - - 3/27 - ---- -test.c - - group_member() needs to check against gid and egid regardless - of whether or not the system has getgroups(2); Posix.1 does not - require that the primary group id show up in the group list, - and some systems do not put it there - - 3/30 - ---- -parse.y - - add `|' to the list of tokens that should not have a semicolon - following them when adding a line to the history when command- - oriented history is active - -lib/readline/readline.c - - fixed up the control character display by making the code print - c ^ 0x40 - -support/cppmagic - - add support for recognizing the s5r4 c pre-processor, - /usr/ccs/lib/cpp - -lib/readline/vi_mode.c - - made rl_vi_delete_to pay attention to whether or not we're redoing, - and to use the last motion key if we are - - made rl_vi_char_search use the last char searched for if we're - redoing - - 3/31 - ---- -parse.y - - removed the check for non-interactive-ness when doing shell - comments - - 4/1 - --- -lib/readline/readline.c - - completion with tilde expansion needs to have any `/' present at - the end of the user's directory name re-inserted manually, because - pathname canonicalization strips any trailing `/', before tacking - on the expanded filename - -subst.c - - fixed a bug in dequote_string that caused reading beyond the end - of the string if the last character in the string was an (unquoted) - CTLESC - - made list_string obey the setting of `quoted' and not do the - initial strip of whitespace from the beginning and end of the - word if it was set - - expand_word_internal calls list_string with quoting == 1 if splitting - a word after expanding "$@" - -error.c - - new function itrace for interactive traces - -subst.c - - command_substitute should give the terminal back to pipeline_pgrp - only if the shell is interactive - -execute_cmd.c - - execute_disk_command should turn off interactive while performing - redirections for an asynchronous command. The problem was a race - condition with command_subst. A command like - date > `hostname` & - - would leave the subshell begun to run date and the primary shell - fighting over the terminal. After the subshell did the command - substitution, it wanted to give the terminal back to pipeline_pgrp, - which was its own pid. Since it was in the background, though, - that was wrong, and ended up taking the terminal away from the - primary (interactive) shell, which thought it had the thing. - -lib/readline/readline.c - - if SYSTEM_CALL_RESTART is not defined, declare c as an integer - - 4/3 - --- -bashline.c - - put code into command_word_completion_func to skip all but pathname - completion checks if the hint given is an absolute pathname - - fix strncmp of basename against hint text (??); this always failed - unless there was no pathname given - - 4/7 - --- -bashline.c - - fixed the cases where the simple `last character is a command - separator' test fails for distinguishing between program name - completion and filename completion: the tokens >&, >|, and <&. - - corrected fix of 4/3 to handle command word completion with and - without leading paths - - 4/8 - --- -lib/readline/readline.c - - break the declaration and initialization of a variable with a call - to setjmp into a declaration and separate assignment statement (for - Cray) - - 4/10 - ---- -subst.c - - A word that uses both "" and '' to do quoting will not be marked - as fully quoted by expand_word_internal. Wrote a - fully_quoted_word () predicate function to solve that. - - Quoted patterns with globbing characters are sent to the - globbing functions because glob_pattern_p doesn't understand - shell quoting. Wrote a new function unquoted_glob_pattern_p, - to fix that. - - 4/13 - ---- -shell.c - - make sure default_input is valid and being used for an interactive - shell started without line editing - - 4/15 - ---- -builtins/common.c - - redid part of the new get_numeric_argument code to avoid a call to - atoi and just do everything ourselves - -variables.c - - only call set_if_not on PS1 and PS2 in initialize_shell_variables - if the shell is not interactive - - check the variable returned by looking up PWD to make sure it's - non-null before trying to use it in initialize_shell_variables - -jobs.c - - add a descriptive tag to the call to get_working_directory in - job_working_directory - - 4/17 - ---- -test.c - - fixed a typo in group_member: gid -> pgid in assignment statement - - in the normal Sun compilation environment, getgroups returns an - array of ints, not gid_ts. getgid and getegid also return ints. - stat structures contain a gid_t, though. - - Need to reorder the includes so that stat.h is included first, then - uid_t and gid_t are redefined to int, then the rest of the files - are included. - - Also need to cast the values from a stat structure to gid_t and - uid_t before comparing them to the results of getgid and getuid - when implementing -O and -G - - 4/21 - ---- -lib/readline/readline.c - - added code to rl_getc to handle EWOULDBLOCK/EAGAIN and turning off - no-delay mode - - 4/22 - ---- - -builtins/cd.def - - made change_to_directory canonicalize the pathname before attempting - to chdir(2) if follow_symbolic_links is set - - 4/23 - ---- -builtins/type.def - - made type handle absolute program names by just echoing the name - -builtins/alias.def - - made single_quote correctly handle single quotes in aliases - - 4/28 - ---- -trap.c - - made ignore_sig and restore_default_signal check that the value - of the original signal handler (in original_signals) was valid - before trying to use it. Bug noticed with `trap "" 1 2 3' as - first line in script. - - 4/29 - ---- -lib/readline/readline.c - - made rl_signal_handler only unblock the signal it just received - on BSD and Posix systems - - 5/5 - --- -builtins/type.def - - don't look up the function with find_function until we actually - need the info - -execute_cmd.c - - in do_redirection_internal, don't do unnecessary work. For instance, - >&1 ends up duplicating fd 1 as itself (then adding a close for it, - which is a bug) - - 5/8 - --- -general.h - - don't attempt to declare index and rindex if `index' is defined - (with #define) - -lib/readline/vi_mode.c - - fixed the `c' command so that cl and c are equivalent -- - formerly the c changed two characters instead of one. - The same fix was made to rl_vi_change_to, rl_vi_delete_to, and - rl_vi_yank_to - -parse.y - - bash_add_history did not correctly handle lines that ended with - an escaped newline. It would insert semicolons in the locations - where the line breaks occurred. - - 5/12 - ---- -documentation/bash.1 - - removed references to pushd_silent - - added setion on process substitution - -subst.c - - fixed a bug in expand_word_internal that caused $xxx"" to expand - to nothing when `xxx' was unset. The code now explicitly turns - a partially quoted string that expands to nothing (istring[0] == 0) - into a QUOTED_NULL (istring[0] = CTLNUL) before returning the - word list. - - 5/15 - ---- -documentation/bash.1 - - added a missing .PD in the builtins section after the line - summarizing `:' - - added text describing the effect of additional arguments to the - `.' command - -subst.c, general.c, jobs.c, nojobs.c, error.c, getcwd.c - - only declare errno as `extern int' if it's not #defined - -builtins/{bind,exec,fc,kill,source}.def, lib/readline/{readline,history}.c - - ditto with errno - -lib/glob/fnmatch.c - - ditto with errno - - 5/17 - ---- -execute_cmd.c - - shells compiled with job control active should perform the implicit - ` before defining set_signal_handler - (on Posix systems) - -builtins/command.def - - change HPUX_7 to hpux_7 - - 5/27 - ---- -builtins/times.def - - added USGr3 to the list of systems that should have HAVE_RESOURCE - undefined even though exists - - 5/28 - ---- -machines.h - - added a description for 386/486 boxes running BSDI BSD/386 - -support/mksysdefs - - looks for and writes a define to sysdefs.h if it's - found - -maxpath.h - - rewritten -- now includes limits.h if HAVE_LIMITS_H is defined, - then tries to define MAXPATHLEN as PATH_MAX - - 5/29 - ---- -lib/readline/history.c - - added definition for rl_string_extract_single_quoted so the - code inhibiting history expansion inside quotes does not depend - on the shell - - change to use rl_string_extract_single_quoted - - removed code that would have inhibited history expansion in - double-quoted strings - -subst.c - - make string_extract_{single,double}_quoted static again - - 6/1 - --- -trap.c - - systems with _POSIX_VERSION defined need not reset the signal handler - inside trap_handler - - set_signal should use set_signal_handler() to install the signal - handler rather than signal() - - initialize_traps needs to use set_signal_handler for SIGINT and - SIGQUIT rather than signal() - - restore_default_signal needs to use set_signal_handler - -parse.y - - the readline interface code needs to use set_signal_handler to - install the SIGINT handler - -lib/readline/readline.c - - new function rl_set_sighandler, which is the readline analogue of - the bash set_signal_handler - - rl_set_signals and rl_clear_signals need to use rl_set_sighandler - for SIGINT and SIGALRM - - 6/2 - --- -signames.c - - fixed a typo (signame_names -> signal_names) - - 6/3 - --- -subst.c, general.c - - AIX machines need to use sysv_getc rather than getc when reading - from the command substitution pipe -- read(2) is not restarted - automatically when interrupted by a signal and returns EINTR - - 6/5 - --- -documentation/bash.1 - - removed documentation of M-C-j command in emacs editing mode - - added description of M-{ (complete-into-braces) - - added description of M-! and C-x ! command completion - - added description of M-TAB dynamic history completion - -lib/readline/search.c - - new file containing code to perform non-incremental history - searches. Functions to call are rl_noninc_forward_search - and rl_noninc_backward_search - -lib/readline/emacs_keymap.c - - bound M-^R to non-incremental-search-backward, M-^S to - non-incremental-search-forward - -lib/readline/readline.h - - extern defintions for rl_noninc_{forward,backward}_search - -lib/readline/funmap.c - - added names `non-incremental-forward-search-history' and - `non-incremental-reverse-search-history' - -lib/readline/vi_mode.c - - rl_vi_yank_arg should put readline into insertion mode when - it is done - -lib/readline/vi_keymap.c - - ^I should just insert when in vi insertion mode, rather than - attempt completion - - 6/6 - --- - -lib/readline/funmap.c - - removed the `vi-dosearch' bindable string, since rl_vi_dosearch - is really a private function for vi_mode.c. It does not fit - the calling conventions of the bindable readline functions - (and I've since removed it) - -lib/readline/readline.h - - removed the extern definition for rl_vi_dosearch - -lib/readline/search.c - - added new functions rl_noninc_forward_search_again and - rl_noninc_backward_search_again to search for the last saved - search string from the current `noninc' history position - -lib/readline/vi_mode.c - - removed the vi history search code and changed rl_vi_search - and rl_vi_search_again to call the non-incremental search code - from search.c - - 6/8 - --- - -[changes from bfox version dated 5/10] - -bashline.c - - changed the conditional clause that decides whether a token is - in a command position for command name completion to be a little - simpler - -bracecomp.c - - new version from bfox - -config.h - - moved BUFFERED_INPUT define here - -flags.c - - new flag for interactive comments - - reformatted find_flag - -flags.h - - added interactive_comments and an extern declaration of restricted - -machines.h - - new cray definition from bfox - -maxpath.h - - don't include limits.h if BUILDING_MAKEFILE is defined - -shell.c - - moved the check for restricted to immediately after the sourcing - or .profile - -test.c - - now includes shell.h in the initial block of includes - -trap.c - - new function get_original_signal to take care of the bookkeeping - of correctly setting up original_signals[sig] - -trap.h - - signal_decode -> decode_signal - -builtins/exec.def - - adjusted the help text to make it clear that only non-interactive - shells check the no_exit_on_failed_exec variable and exit if the - execve fails - -builtins/set.def - - added description and code to implement set -o interactive_comments - -lib/glob/glob.c - - if PAT is empty when glob_vector is called, skip the loop and - return one empty filename. This is how to make echo */ echo - only directory names - -lib/readline/parens.c - - new file from bfox implementing parenthesis matching for readline - -lib/readline/emacs_keymap.c - - if PAREN_MATCHING is defined, perform `show-matching' on `)', `}', - and `]' - -lib/readline/history.c - - add `$' to the list of separating characters in history_tokenize - so that two-character `$' tokens ($$, $!, $() are parsed correctly - -lib/readline/readline.c - - Make an argument of 1 to rl_rubout and rl_delete work the same - as if any other argument had been given by saving the text on - the kill ring - - in rl_getc, check that the value returned from read == sizeof - unsigned char - -lib/readline/readline.h - - added declaration of rl_event_hook, which is the address of a - function to call periodically while readline is awaiting - character input - -support/cppmagic - - new implementation from bfox, now returns a full cpp specification, - complete with system dependent flags - -support/mksysdefs - - added a variable MAKE_ANSI which, if set to true, causes the - ansi Makefile to be generated - - added code to recognize various types of cray/unicos machines - -[end of fixes from bfox] - -getcwd.c - - integrated changes that allow getcwd to handle paths longer - than PATH_MAX by shifting to using a dynamically-allocated - buffer - -builtins/set.def - - make the check for emacs or vi check to make sure the shell is - interactive - - 6/10 - ---- -builtins/common.c - - the dollar_arg_stack was never being reallocated in push_dollar_vars - because of a stray `if (!dollar_arg_stack)' before the realloc call - - 6/12 - ---- -cpp-Makefile - - added some missing $(RM) $@ in explicit targets for objects (the - ones that don't go through the default rules) as well as the - targets for the auxiliary programs - -subst.c - - redid the way bash handles assignment statements on command lines - to fix two bugs: - - 1) variable assignments are not supposed to affect expansion - performed on the same line, if a command is to be run - 2) if the words left after removing the variable and environment - assignments don't expand to a command word, the assignments - should affect the shell's environment - - new function: separate_out_assignments - removes variable assignments that precede other words and puts - them on VARLIST - removes environment assignments in the rest of the words, if - set -k is in effect, and puts them on ENVLIST - - just before expand_words_internal returns, it checks varlist and - envlist (if it is doing expansion) and performs the assignments, if - any. If it's returning a null list, these assignments affect the - shell's environment - - 6/13 - ---- -subst.c - - eliminated ENVLIST; VARLIST can serve for both variable and - environment assignments - - - sped up expand_words_internal's section for brace expansion by - eliminating unnecessary copies -- original word is used unless brace - expansion occurred, in which case the original word is linked to - a list of words to dispose when brace expansion is completed - - - sped up the word expansions section of expand_words_internal by - (possibly) eliminating a call to reverse_list on the results of - word expansion and splitting on $IFS, because the most common - case will expand to only a single word - - `expanded' needs to be freed only if expansion and word splitting - took place, no moving the call to dispose_words up after the call - to word_list_split means that the common case no longer needs to - copy the list - - - sped up globbing by eliminating copying as was done for brace - expansion -- keeping a list of `disposable' words and using the - original list contents if expansion failed or was not performed - - in the case that we're not globbing a word because it has no - unquoted globbing characters, eliminated the copy and creation of - a brand new list - - added a define GLOB_FAILED that handles the cases of using and - not using the GNU libc Posix.2 globbing library - - moved the code that dequotes the original word so it's executed - only if the glob fails - - wrapped the code that performs globbing inside an if (new_list) - clause - - call REVERSE_LIST only if we're actually doing globbing; otherwise - dequote the list and go on to performing assignments - - 6/15 - ---- -lib/glob/glob.c - - if the directory portion of a pathname to be globbed contains - quoted globbing characters, the quotes (backslashes) need to be - removed before the code tries to open and read that directory - - 6/17 - ---- -execute_cmd.c - - index -> indx in extract_colon_unit - -nojobs.c - - make wait_for_single_pid return the status of the pid it's waited - for, instead of throwing it away - - added a simple pid-status array to avoid multiple calls to - wait_for and calling wait on dead processes. make_child adds - pids to this array, and the status of a pid is updated when - it's returned from wait(2) or waitpid(2) - - removed the checks for whether or not the pid is valid (using - kill(2)) in favor of using the information in the pid_list - -parse.y - - call cleanup_dead_jobs on non-job-control systems to clean up the - pid_list - - 6/18 - ---- -subst.c - - include config.h before trying to include string.h or strings.h - so USG is properly defined - - 6/19 - ---- -support/mksysdefs - - look for /usr/include/string.h and define HAVE_STRING_H if - found. This is the file mandated by ANSI C. - -cpp-Makefile - - look for the HAVE_STRING_H definition from sysdefs.h and define - it as part of SYSTEM_FLAGS if found - - added the HAVE_STRING_H to LIBRARY_CFLAGS, so readline can - decide what to include - -general.c, parse.y, subst.c - - use the HAVE_STRING_H define in deciding which flavor of the - include file to use - -builtins/common.c - - include strings.h or string.h, depending on the definition of - HAVE_STRING_H - - added extern declaration of rindex and index at file scope - - removed extern declaration of rindex in find_hashed_filename - -lib/readline/rldefs.h - - removed the messy #ifdef clauses and such from readline.c and - moved them to this new file - - added a section on string functions (string.h vs. strings.h, - whether or not index and rindex need to be defined) - -lib/readline/readline.c - - removed the messy #ifdef clauses that attempt to parameterize - things and define constants on a system-specific basis - - removed the definition of the unused variable xoff_state - -flags.c - - corrected a typo in the comment describing jobs_m_flag - -jobs.c - - new function, current_working_directory (), which returns the - cwd without calling malloc to allocate memory, even indirectly. - This can safely be called from a signal handler, like when - flush_child calls notify_of_job_status if async notification is on - - changed call to job_working_directory in pretty_print_job to call - current_working_directory - - moved assignment to DIR in notify_of_job_status after the calls - to sigprocmask to block SIGCHLD and SIGTTOU - - in notify_of_job_status, DIR is now assigned via a call to - current_working_directory and hence does not need to be freed - - notify_of_job_status now initializes DIR to NULL and calls - current_working_directory only if it needs to - - changed a call to reverse_list in stop_pipeline to REVERSE_LIST, - because most pipelines will be only one process long - -builtins/jobs.def - - make an illegal jobspec cause a failure instead of returning 0 all - the time - -builtins/times.def - - times now ignores any arguments for sh and ksh compatibility - - 6/20 - ---- -execute_cmd.c - - fixed execute_until_or_while to actually return the status of the - last command executed in the body rather than - last_command_exit_value, which is the status of the test (which - has just failed) - - 6/23 - ---- -execute_cmd.c - - fixed execute_subshell_builtin_or_function to exit with - last_command_exit_value if a builtin longjmps to top_level - with value EXITPROG, rather than with EXITPROG (3) - - 6/25 - ---- -cpp-Makefile - - added rldefs.h to READLINE_SOURCE - -builtins/type.def - - `type' now returns 0 if no arguments are given - -jobs.c - - make wait_sigint_handler obey interrupt_immediately as well - as whether the wait builtin is the current command (XXX - in - the future remove the check for wait_builtin entirely and - just use interrupt_immediately, because this_shell_builtin - could be changed by the code that runs from a SIGCHLD trap) - - make the code that runs commands from SIGCHLD traps set - interrupt_immediately to 1 each time through the loop - - 6/26 - ---- -builtins/common.c - - declare extern void vfree and use it in the add unwind protect - call, to avoid having to declare what type free returns - -execute_cmd.c, builtins/common.c - - removed all references to builtin_pipe_in_hack, which is no - longer used - -parse.y - - removed all references to current_token_being_expanded and - pending_token_being_expanded, since their function is subsumed - by expanded_token_stack. Also no need to save this on the - pushed string stack, so that element is removed from the - struct. - (current_token_being_expanded == expanded_token_stack->saved_token) - -builtin/jobs.def - - removed immediate return if job_control == 0. This makes it work - in command substitution subshells - - 6/29 - ---- -expr.c - - added unary `+' - - added bitwise not (`~') at same precedence as logical not (`!') - - added left and right shifts (<<, >>) between +,- and the comparisons - - added bitwise and, or, xor (&, |, ^) - - added logical and, or (&&, ||) - - changed exp1 to allow multiple consecutive ! and ~ (in the same way - that exp0 allows multiple consecutive leading - and + - -lib/readline/history.c - - close memory leak -- in history_do_write, free the output filename - before returning - - close same memory leak in read_history_range - -builtins/enable.def - - make `enable' with no arguments print only the enabled builtins, and - `enable -n' with no other arguments print only the disabled builtins - -builtins/setattr.def - - make readonly and export return failure when given -f with an - argument that is not a function name - - added -n to the documentation for readonly - -execute_cmd.c - - cleaned up the code that checks for #! and binary files some: made - sure the file descriptor was always closed, made sure sample_len - was > 0 before checking the first two characters, collapsed two - if statements into one - -jobs.c - - changed call to job_working_directory in start_job to call to - current_working_directory - - changed input_tty to a macro - - changed the call to QUIT in wait_for after the wait_loop - label to depend on whether job_control is enabled; the test - against the terminal process group is superfluous now that - we use wait_sigint_handler - -builtins/fg_bg.def - - Posix.2a specifies that fg and bg should return failure if - run when job control is disabled - - 7/2 - --- -variables.c - - when an existing variable is given a new value by bind_variable, - turn off the invisible attribute - -shell.c - - dup default_buffered_input using fcntl(fd, F_DUPFD, 10) to put - it above the shell's user-manipulatable range - -execute_cmd.c - - in add_undo_redirect, make the redirection added a - r_duplicating_input so buffered streams get duplicated as - necessary. It makes no difference for the non-buffered-stream - code - - 7/3 - --- -subst.c - - command_substitute needs to set interactive = 0 and leave - interactive_shell reflecting the interactive state of the - parent shell - -signames.c - - prevent SIGGRANT and SIGRETRACT from overriding other already-defined - signal names, since, on the RT at least, they override SIGUSR2 - and SIGEMT, respectively, which are much more common - -jobs.c - - in notify_of_job_status, if job control is not enabled, do not - print the status messages. Mark dead jobs as notified so they - get cleaned up properly - -braces.c - - when checking for `,' if a closing brace was not found, make - sure the , is unquoted - - make sure we found an unquoted , before attempting to perform - the expansion -- since brace_gobbler purports to understand - quoting with \, the rest of the code should support it - - disabled the code that caused a failure longjmp if a matching - closing brace was not found -- the pattern should be left - unchanged, as with any other failed expansion - -trap.c - - new function maybe_set_sigchld_trap, which sets the trap on - SIGCHLD if and only if the signal is not currently trapped - -jobs.c - - call maybe_set_sigchld_trap after running SIGCHLD trap commands - on the death of a child to restore the trap handler, so if the - trap handler calls `trap xxx CHLD' it will not be overwritten - -lib/glob/fnmatch.c - - fnmatch must treat [ without a matching ] as a `regular' character - to be matched against the string so that the Posix.2 rules for - case command matching are not broken - -shell.c - - change the call to fcntl that sets default_buffered_input to one - to dup2(fd, getdtablesize() - 1) to hopefully get the highest - file descriptor - - 7/6 - --- -parse.y - - if read_token reads a character that matches the current delimiter - character, it should make sure the character is `"' before - checking delimited_paren_level and blindly accepting it. There - are other values for `delimiter' besides `"'. - -shell.c - - turn on no_line_editing for non-interactive shells - -builtins/set.def - - removed test against interactive_shell when deciding whether or - not emacs or vi is `on' [backed out of fix from 6/8] - - 7/8 - --- -lib/readline/history.c - - changed get_history_event so that shell metacharacters (;&()|<>) - can terminate an event spec - -subst.c - - the TERM and TERMCAP variables need special handling only if - READLINE is defined - - ditto for history_completion_file - -machines.h - - new description for HPs running OSF/1 - - 7/9 - --- -lib/readline/readline.c - - new variable `eight-bit-input'. If this is on, readline disables - ISTRIP for the Posix or sysv tty drivers - -execute_cmd.c, variables.c - - new variable `subshell_environment' set in children right after - forking and reset in shell_reinitialize. It means to look in - the temporary environment first when looking up variables and - functions - - 7/13 - ---- -config.h, parse.y - - changed CSH_HISTORY_EXPANSION to BANG_HISTORY_EXPANSION - -shell.c - - made all the history-related code #ifdef HISTORY - - made maybe_save_shell_history be called only if the shell is - interactive and we're remembering history lines - -parse.y, flags.c, flags.h, subst.c, variables.c - - made all the history-related code #ifdef HISTORY - - assignment_acceptable and command_token_position no longer are - dependent on ALIAS being defined, since they are used to return - ASSIGNMENT_WORD tokens - -builtins/bind.def - - removed inclusion of readline/history.h - -builtins/exec.def, builtins/common.c - - made all the history-related code #ifdef HISTORY - -builtins/fc.def, builtins/history.def - - added a $DEPENDS_ON HISTORY line - -builtins/mkbuitins.c - - line_error should not try to print error_directory without checking - to see whether it is NULL - -builtins/Makefile - - add $(DIRECTDEFINE) to the command line that builds builtins.c - -lib/glob/tilde.c - - use getpwuid(getuid()) to look up the home directory of the user - executing the shell for tilde expansion ~/foo if $HOME unset - -cpp-Makefile, subst.c, config.h - - Fixes to make brace expansion a configuration option, on by default - - 7/14 - ---- -builtins/set.def - - fixed unset so an attempt to unset a readonly variable or function - is an error (as Posix.2 specifies) - -general.h - - removed extern declarations of index, rindex - - added extern declarations for strchr, strrchr - - changed `member' to use strchr - -subst.c, general.c, bashline.c, execute_cmd.c, parse.y, test.c - - changed calls to index to calls to strchr, calls to rindex to calls - to strrchr - -builtins/echo.def, builtins/fc.def, builtins/common.c - - changed calls to index to calls to strchr, calls to rindex to calls - to strrchr - -lib/glob/glob.c - - changed calls to index to calls to strchr, calls to rindex to calls - to strrchr - -lib/readline/history.c, lib/readline/readline.c, lib/readline/vi_mode.c - - changed calls to index to calls to strchr, calls to rindex to calls - to strrchr - -lib/readline/vi_mode.c - - changed calls to strchr to inline checks, since we're only checking - for two characters - - 7/15 - ---- -variables.c - - If PPID is imported, turn off export status - - 7/17 - ---- -general.h - - for USG and Posix systems, define NO_READ_RESTART_ON_SIGNAL - - -general.c - - sysv_getc --> getc_with_restart - - compile in getc_with_restart if NO_READ_RESTART_ON_SIGNAL is - defined - -subst.c - - call getc_with_restart in command_substitute if on a system - with NO_READ_RESTART_ON_SIGNAL defined - -parse.y - - call getc_with_restart in yy_stream_get if NO_READ_RESTART_ON_SIGNAL - is defined - -input.c - - change b_fill_buffer to restart reads on EINTR - -general.h - - wrap the declarations of strchr and strrchr inside an #ifdef strchr - because some ANSI C compilers (e.g., RS/6000) make them defines in - /usr/include/string.h - - 7/20 - ---- -lib/readline/readline.c - - wrap the declarations of strchr and strrchr inside an #ifdef strchr - because some ANSI C compilers (e.g., RS/6000) make them defines in - /usr/include/string.h - - 7/21 - ---- -lib/readline/parens.c - - wrap all parameters and variables associated with the select call - into #ifdef FD_SET - -execute_cmd.c - - added tilde expansion to the pattern list members of case statement - clauses, as specified by Posix.2 d11.3 - -lib/readline/readline.c - - when comparing members of the c_cc array directly against - _POSIX_VDISABLE, cast both sides to unsigned char - -support/getcppsyms.c - - recognized __svr4__ - -machines.h - - for Sun machines, if __svr4__ is defined and USGr4 is not, define - USGr4 - -shell.c - - some machines need sys/types.h included before stdio.h (mostly for - size_t) - -lib/malloc/malloc.c - - add SunOS5 to the list of systems that do no redefine valloc (?) - - 7/22 - ---- -make_cmd.c - - save and restore the value of line_number around reading a - here-document - -lib/glob/glob.c - - change to use HAVE_STRING_H to decide which version of the - header files to include - - 7/25 - ---- -execute_cmd.c - - fixed execute_command_internal so that failure to perform - redirections attached to a shell compound command like if - or while causes the command to return failure right away - - eliminated use of redir_result in execute_builtin_or_function - - changed execute_while_or_until so that body_status is - initialized to EXECUTION_SUCCESS, and then directly returned - without a check for commands_executed, so that the Posix.2 - behavior of returning success when no body commands are - executed is preserved - - 7/27 - ---- -jobs.c - - make sure that trap_list[SIGCHLD] is not set to IGNORE_SIG - before trying to run commands when a SIGCHLD is caught - -test.c - - define and use UID_T and GID_t, which are equivalent to uid_t - and gid_t on all systems but SunOS 4.1.?, because SunOS makes - `int' the return value of all the uid and gid functions (except - stat!) - - 7/28 - ---- -shell.c - - call end_job_control in termination_unwind_protect - -variables.c - - if PWD is imported from the environment and it is wrong (i.e., - not the same as the current directory), rebind it to the current - directory (as obtained by get_working_directory) - - 7/29 - ---- -lib/readline/history.c - - do not history expand ! when immediately preceded by [, assuming - it's the globbing pattern negation character - -execute_cmd.c - - plug some memory leaks -- redirectee_word needs to be freed - before returning from do_redirection_internal - - changed the noclobber code to open the file with O_EXCL after - verifying that it's not there with stat to shorted possible - race conditions (this doesn't help over NFS) - - 7/30 - ---- -lib/readline/history.c - - treat a negative arg to stifle_history as 0 - -lib/readline/readline.c - - #undef PC before declaring it as a variable because some systems - (Solaris2) define it in system header files - - changed type of insert_some_chars, update_line, and delete_chars - to void - - added a check when doing filename completion in - filname_completion_function to see if the first characters of the - filename and directory entry match before calling strncmp - (inline expansion of STREQN) - - 7/31 - ---- -lib/readline/vi_keymap.c - - Make arrow keys work for history in vi command mode by binding - `o' and `[' in vi_escape keymap to rl_arrow_keys - - 8/6 - --- -subst.c - - broke the code that quotes strings for the globbing functions - into a separate function: quote_string_for_globbing (), so - there are not two copies of it - -execute_cmd.c - - rewrote execute_case_command so that quote_string_for_globbing - is called for the patterns in a pattern list and reordered some - other code for clarity - - execute_case_command now turns quoted null strings into empty - strings because quote_string_for_globbing does not do it - - 8/7 - --- -lib/readline/readline.c - - added generic code to init_terminal_io to fetch the termcap - codes for the arrow keys (ku, kd, kl, kr) and bind the right - functions to them - -lib/readline/vi_keymap.c, lib/readline/emacs_keymap.c - - removed bindings to `rl_arrow_keys' from all keymaps - - 8/13 - ---- -subst.c - - command_substitute: only close fildes[1] if it's > 2 - - 8/26 - ---- -lib/readline/readline.c - - rewrote get_y_or_n to get rid of label and goto - - added code to the completion listing function that makes it - skip padding the line out with blanks after writing what will - be the last filename on the line - -machines.h - - added -DHAVE_SETDTABLESIZE to SYSDEP_CFLAGS for Sequents - running Dynix/ptx - - 8/28 - ---- -machines.h - - added a machine description for the BBN Butterfly from - Kaveh Ghazi - -variables.c - - HPOSF1 machines cannot redefine getenv() - -support/getcppsyms.c - - recognize __hp_osf - -parse.y - - allow reserved word recognition after done, fi, and esac - Posix.2 section 3.4 seems to allow this - -lib/readline/readline.c - - include on OSF/1 machines for TIOCGWINSZ - -subst.c - - in command_substitute, when checking to see that we're not - overflowing `istring', allow for the insertion of two characters - in the check to account for possible quoting - - 9/3 - --- -builtins/bashgetopt.c - - force reset_internal_getopt to set loptend to NULL - - force internal_getopt to set loptend to NULL when the list it - gets is NULL, and when it detects that it's been called with - a different word list - - 9/8 - --- -variables.c - - make adjust_shell_level clamp the value of $SHLVL at 1 - -[Fixes from bfox 1.13] - -bashline.c - - remove `%' from list of readline special prefixes - -config.h - - BANG_HISTORY_EXPANSION -> BANG_HISTORY - -cpp-Makefile - - add HAVE_STRCHR - - changes to macros that build libraries - - reorganized library declarations and support - -execute_cmd.c - - indx -> p_index in extract_colon_unit - -general.c - - provide definitions of strchr, strrchr for systems that do not - have them - -machines.h - - define `Solaris' for Suns running Solaris 2.x - - turn all the definitions of M_OS into strings - -parse.y - - replace delimiter and old_delimiter with a stack of delimiters - encountered while parsing the current token - -subst.c - - removed all traces of EIGHT_BIT - -variables.c - - new function dispose_temporary_vars, for both dispose_used_env_vars - and dispose_function_env - -lib/readline/readline.c - - `eight-bit-input' -> `meta-flag' - -lib/tilde - - new directory for the tilde expansion library code - -[end of bfox changes] - -cpp-Makefile - - pass $(RM) down to makes in libraries - - 9/10 - ---- -parse.y - - remove the bfox change that set CMD_FORCE_SUBSHELL for async - commands - - 9/14 - ---- -builtins/bind.def - - surround the code with #ifdef READLINE - -builtins/fg_bg.def - - surround the body of the code with #ifdef JOB_CONTROL - -builtins/getopts.def - - surround the body of the code with #ifdef GETOPTS_BUILTIN - -builtins/alias.def - - surround the body of the code with #ifdef ALIAS - - 9/15 - ---- -lib/readline/emacs_keymap.c - - bind rl_noninc_reverse_search to M-P and rl_noninc_forward_search - to M-N, respectively - -lib/readline/readline.c - - made name_key_alist struct static - - added new functions to manipulate keymaps: - rl_get_keymap_by_name() - rl_get_keymap() - rl_set_keymap() - -lib/readline/keymaps.h - - added declarations for the new keymap functions - -builtins/bind.def - - added -m map option to allow bind commands to specify the keymap - to be used when binding key sequences to readline commands - - 9/16 - ---- -builtins/alias.def - - in single_quote, allocate a new string three times as big as the - old to handle the possible quoting characters - -bashline.c - - set last_fignore to null after freeing it in setup_ignore_patterns - - 9/17 - ---- -parse.y - - added code to handle the functionality of `ignoreboth' as a - value for history_control (ignore both lines beginning with - spaces and duplicates of the last history entry) - - don't use history_control for the second and subsequent lines - of a multi-line command when command_oriented_history is in - effect - - 9/18 - ---- -bashline.c - - fix attempt_shell_completion to call command_word_completion_function - even if the supplied text begins with `/' - - fix command_word_completion_function to make sure that absolute - program names passed are executable before returning them as - possible matches - - 9/20 - ---- -parse.y - - If we read a blank line (shell_input_line[0] == 0) and we have - reached EOF (shell_input_line_terminator == EOF) then don't echo - the line, even if -v has been turned on - - 9/23 - ---- -lib/malloc/malloc.c - - changed to use USG rather than SYSV - - changed BSD42 to BSD4_2 like emacs malloc.c - - removed conditional compilation code dealing with VMS - - include getpagesize.h only if BSD4_2 is not defined - - changed conditionally compiled code dealing with BSD, since - BSD is not defined by bash and malloc.c does not include - sys/param.h, which defines BSD on 4.x BSD systems - -lib/malloc/getpagesize.h - - new implementation, inspired by gdb 4.6 - uses _SC_PAGESIZE, if present - defaults to 4096 - -lib/readline/vi_keymap.c - - when in insert mode, Posix.2a says that \ is quoted-insert - - remove the binding to vi_escape_keymap; Posix.2a says that - ESC in movement mode does nothing (vi description) - - 9/24 - ---- -shell.c - - shell should send SIGHUP to all it's jobs when it receives - SIGHUP only if it is an interactive login shell - -execute_cmd.c - - systems running the Andrew File System don't use the Unix file - mode bits to decide whether or not a file is executable (they're - unused, since AFS as ACLs), so executable_file needs to call - access (file, X_OK) if running on AFS - - 9/25 - ---- -jobs.c - - make sure a non-interactive shell initializes original_pgrp to - NO_PID, so it does not attempt to give the terminal back to that - pgrp when it exits or calls the `exec' builtin - - 10/3 - ---- -machines.h - - add -DHAVE_RESOURCE to the NeXT machine description as SYSDEP_CFLAGS - - add -DHAVE_GETDTABLSIZE and -DHAVE_SETDTABLESIZE to Dynix/ptx - description - -shell.c - - make a non-interactive script shell call dup2 on the fd it has - open to the script file to move the descriptor to one that hopefully - user programs will not attempt to use - -general.c - - make the definition of getdtablesize() depend on HAVE_GETDTABLESIZE - not being defined. Auto-define that for non-USG systems (or HPUX). - This allows a SYSDEP_CFLAGS entry to override it - -builtins/ulimit.def - - new function canraise(cmd, curlim, newlim) to call on systems - without HAVE_RESOURCE to decide whether or not the limit can be - raised. Maybe we should remove the test altogether and let the - system call fail instead - - 10/8 - ---- -execute_cmd.c - - If a command is not found, make the exit status 127 like Posix.2 - says - - 10/14 - ----- -print_cmd.c - - changed cprintf(s) to cnprintf(args_length, s) and made cnprintf - malloc the buffer it uses for vsprintf to avoid overrun of the - 5000-character temp buffer used previously. args_length is the - expected total length of all the arguments - - 10/15 - ----- -jobs.c - - set last_command_exit_value before calling a trap handler for - SIGINT: new function process_exit_status(), changes to use it - - 10/18 - ----- -print_cmd.c - - removed `cnprintf' changes - - re-implemented cprintf as a miniature vsprintf interpreting %s, - %d, and %c and using a dynamically-allocated buffer - -support/mksysdefs - - look for /usr/include/varargs.h and define HAVE_VARARGS_H if - found - -cpp-Makefile - - pass HAVE_VARARGS_H down to the makes in the various libraries - - 10/26 - ----- -lib/glob/glob.c - - free `result' before using temp_results to return the value - of glob_dir_to_array -- plugs a small memory leak - - 11/2 - ---- -[Fixes from bfox version dated 10/18] - -bashline.c - - separated definitions of BRACE_COMPLETION and the extern declaration - of the brace completion functions - -config.h - - make PROCESS_SUBSTITUTION depend on the value of MKFIFO_MISSING - -cpp-Makefile - - add posixstat.h, tilde.[ch], xmalloc.c to the readline library - sources (also the corresponding object files) - - make the definition of HAVE_TILDE_SOURCE depend on the definition - of HAVE_READLINE_SOURCE - -lib/posixheaders - - new directory, for posix support functions and header files - - various cleanups to the library support rules - -execute_cmd.c - - make the practice of checking hashed filenames for executability - dependent on $POSIXLY_CORRECT - -general.c - - The `hppa' running hpux-8 does not have `getdtablesize' - -general.h - - make the extern declaration of strchr and strrchr go away if - __STDC__ is defined -jobs.h - - test for and define all of the W* macros individually - -machines.h - - completely new alliant description from bfox - - add -DMKFIFO_MISSING to NeXT SYSDEP_CFLAGS - - add description for Siemens MX500 running `sinix' - -builtins/common.c - - move code that depends on BANG_HISTORY being defined inside #ifdef - HISTORY blocks, since you can't have BANG_HISTORY without HISTORY - -builtins/echo.def - - make -E work all the time, not just on sys5 systems - -builtins/enable.def - - add -all option (with synonym of -a) - - change `DISABLED' to 2 and make argument to list_some_builtins a - bitmask - -builtins/kill.def - - it is an error if `signum' == NSIG - -documentation/bash.1 - - added -E flag to `echo' - - added description of -all to enable - -lib/readline/tilde.c, lib/readline/xmalloc.c - - links to these files for standalone readline lib - -lib/readline/{funmap.c,history.c,keymaps.c,readline.c} - - make xmalloc and xrealloc static again and dependent on the - definition of STATIC_MALLOC - -lib/readline/readline.c - - include only if NO_SYS_FILE is not defined - - add support for a `stat' char after filenames when listing completion - alternatives if VISIBLE_STATS is defined - - add support for _GO32_ definition (PC) - - add LibraryVersion internal variable - - initialize rl_instream and rl_outstream to NULL, because all of a - sudden stdin and stdout may no longer be constants - - make readline_default_bindings `static void' - - add support for quoting a portion of the input line to make it - immune from completion - -support/getcppsyms.c - - recognize `alliant' - -support/mksysdefs - - presence of /bin/fxc.info indicates that the machine is an alliant - -support/{FAQ,PORTING,mklinks,fixdist} - - new files - -[end of changes from bfox] - -machines.h - - added support for HP-UX 9.0 (hpux_9) - - 11/12 - ----- -machines.h - - added -lsocket to the REQUIRED_LIBRARIES define for ICL RS6000 - - removed the `#undef HAVE_WAIT_H' from the isc386 description - -lib/readline/rltty.c - - split off almost all tty-related code from readline.c to this file - - 11/13 - ----- -lib/readline/rltty.c - - changed the way the bsd tty code works to use a `struct bsdtty' - that encapsulates all of the bsd tty state into a single structure - that can be passed around by reference - - changed the bsd tty setup and teardown code to be more like the - ce version of things -lib/readline/rldefs.h - - added code to define HAVE_USG_SIGHOLD for svr3 machines. The - prepping and deprepping code uses them to block SIGINT while - getting and setting the tty attributes - - 11/14 - ----- -lib/readline/rltty.c - - encapsulated the system-specific code for setting up the terminal - into a function: `prepare_terminal_settings'. This means that the - code for rl_prep_terminal and rl_deprep_terminal is basically - identical between tty driver versions - - changed the BSD version of rltty_set_default_bindings to use a - struct bsdtty and get_tty_settings - - rl_prep_terminal and rl_deprep terminal are now non tty-driver - specific -- there is only one version of each function. The - tty-driver specific code is now in {set,get}_tty_settings and - prepare_terminal_settings - - 11/24 - ----- - -general.c - - make the function definitions for bcopy and bzero depend on a - HAVE_BCOPY define - -machines.h - - define HAVE_BCOPY for RS/6000s, RTs running AIX, and Linux - - new description for Linux - -shell.c, variables.c - - don't declare getpwuid for Linux systems - -support/getcppsyms.c - - recognize `linux' and `__linux__' - -builtins/psize.c - - don't redefine memset() for USG machines - -general.c - - add extern declaration of getdtablesize() to dup2() replacement - - don't compile in bcopy and bzero on Linux machines - -test.c - - don't declare getgid, getegid, or geteuid on Linux - -lib/readline/rldefs.h - - don't try to include on Linux machines - -lib/readline/readline.c - - only call rl_parse_and_bind on non-empty lines when reading - ~/.inputrc - - allow backslash to quote characters in the key sequence to be - bound, which allows you to bind C-x \ for example - - allow delimiter characters in the body of a macro, quoted with - a backslash - - changed rl_function_dumper so that it outputs backslash-quoted - " and \ when called by bind -d - -lib/readline/funmap.c - - fixed a typo in the entry for `vi-replace' - -subst.c - - make sure the $(( xxx )) case sets this_command_name to NULL so - there are no confusing garbled error messages - - fix a memory leak in $[ xxx ] code (free temp) - - make $(( xxx )) case do the same variable expansion that the - $[ xxx ] case does - - 11/25 - ----- -parse.y - - removed CMD_FORCE_SUBSHELL assignments - -command.h - - add a new flag for commands: CMD_NO_FORK - -shell.c - - added a function run_one_command for -c shells that just sets up - the top_level stuff for longjmp and calls parse_and_exec. This - is controlled by the definition of ONESHOT - -execute_cmd.c - - execute_disk_command takes an extra argument: nofork. If non-zero, - this tells it to not fork for a command without pipes in or out - - set NO_FORK for a simple command run in a subshell with - want_subshell ( `( xxx )' ) - -builtins/common.c - - if the from_file argument to parse_and_execute is "-c", then - assume this is a one-shot -c command and set NO_FORK for simple - commands. This is controlled by the definition of ONESHOT - - 12/1 - ---- -support/getcppsyms.c - - add defines for bsdi and __386BSD__ - -machines.h - - add a section for 386bsd - - 12/2 - ---- -input.c - - added a new function check_bash_input (fd) which checks whether - or not file descriptor fd is the buffered fd which bash is using - to read a script, and, if so, swaps the buffered fd to a new - file descriptor and reinits bash_input - - input buffering now solves these problems: - parent-child synchronization - using the script fd in a user redirection - auto-restart of interrupted reads on all systems - speed - -execute_cmd.c - - call check_bash_input from do_redirection_internal before a call - to dup2 and a call to duplicate_buffered_fd - - 12/3 - ---- -builtins/getopt.c - - only redefine `const' if it is not already #defined - -lib/readline/rltty.c - - make sure HANDLE_SIGNALS is defined here as it is in readline.c - - 12/7 - ---- -lib/malloc/malloc.c - - change the conditional around get_lim_data to be HAVE_RESOURCE - (ulimit if not defined, getrlimit if it is) - - removed the 4.1BSD version of get_lim_data - - conditionalize the inclusion of sys/resource.h on the definition - of HAVE_RESOURCE - - 12/11 - ----- -lib/readline/readline.c - - changed the name of strpbrk to rl_strpbrk to avoid any conflicts - with OS include files and libraries - - 12/15 - ----- - -bashline.c - - changed initialize_readline to type void - -execute_cmd.c - - execute_for_command called expand_words with an extra argument - -jobs.c - - changed stop_pipeline to use xrealloc instead of realloc - -lib/readline/readline.c - - changed rl_complete_internal to call xmalloc instead of malloc - -variables.c - - dispose_used_env_vars, non_unsettable declared void - -builtins/common.c - - include because we cast things to struct stat * - -builtins/exit.def - - change exit_or_logout to be declared static - -builtins/psize.c - - removed call to memset and therefore the need to #ifdef it's - definition - -builtins/bind.def, builtins/ulimit.def - - add extern declaration for strerror() - -builtins/exec.def - - add extern declaration for strerror() - - add extern declaration for full_pathname() and remove casts to - char * - - add extern declaration for make_word_array() and remove casts to - char ** - -builtins/fc.def, copy_cmd.c, shell.c, parse.y - - add extern declaration for reverse_list() - -builtins/read.def - - change free to vfree so systems don't complain about the extern - declaration (type clashes, etc.) - -lib/tilde/tilde.c - - include string.h or strings.h as appropriate to get the correct - declaration of strcpy before the savestring macro uses it - -parse.y - - add extern declaration for sub_append_string and remove casts to - char * - - add extern declaration for add_string_to_list and remove casts to - WORD_LIST * - - 12/16 - ----- -lib/malloc/malloc.c - - move the check for RLIMIT_DATA after the inclusion of - (duh!) - -bashline.c - - added extern declaration for get_working_directory - -jobs.c - - added extern declaration for polite_directory_format - -execute_cmd.c - - added extern declaration for copy_redirects - -subst.c - - added extern declaration for reverse_list - -machines.h - - new entry for KSR1 running KSROS (OSF/1) - -support/getcppsyms.c - - recognize `ksr1' - -general.h - - make sure that strcpy is declared before the definition of - savestring - -alias.c, bashline.c, bracecomp.c, braces.c, copy_cmd.c, execute_cmd.c, -expr.c, general.c, hash.c, jobs.c, mailcheck.c, make_cmd.c, print_cmd.c, -trap.c, variables.c, parse.y - - make sure that string.h or strings.h is included before general.h - (which is included by shell.h) - -builtins/mkbuiltins.c - - add extern declaration of strcpy if __STDC__ and strcpy not defined - - include or as needed - -builtins/cd.def, builtins/shift.def, builtins/source.def, builtins/test.def, -builtins/command.def, builtins/declare.def, builtins/fc.def, -builtins/getopts.def, builtins/hash.def - - include or before definition of savestring - -lib/tilde/tilde.c, lib/readline/chardefs.h - - include or before definition of savestring - -lib/readline/readline.c - - made glean_key_from_name cast NAME to unsigned char * before - dereferencing it to better handle 8-bit character sets - - 12/17 - ----- -subst.c - - made command_substitute set up top_level with setjmp so that shells - running command substitution won't longjmp all the way back to - main() if they're interrupted and call throw_to_top_level - - 12/18 - ----- -lib/readline/readline.c - - split the code that handles setting the screen size off into a new - function: set_screen_size - - changed init_terminal_io to call set_screen_size - - changed rl_handle_sigwinch to call set_screen_size instead of - totally reinitializing the world on each SIGWINCH - - added a new function cr() that simply puts the cursor at physical - column 0 - - changed rl_handle_sigwinch to call cr() and - rl_forced_update_display() after resetting its idea of the screen - size - - 12/20 - ----- -lib/readline/history.c - - changed the way history_expand treats `\' to make it a general - quoting character like the shell treats it so that allows single - quotes to be quoted - - 12/23 - ----- -machines.h - - changed M_OS define in BSDI description to BSD386, since cpp - doesn't like BSD/386 - - 12/28 - ----- -execute_cmd.c - - changed execute_case_command so that expand_word_no_split is called - on the `word', as Posix.2 specifies - - 1/5 - --- -machines.h - - new machine description for Dec Alpha running Dec OSF/1 - -support/getcppsyms.c - - recognize alpha, __alpha, osf, and __osf__ - - 1/7 - --- -lib/readline/readline.c - - removed definition of HANDLE_SIGNALS - - changed rl_signal_handler so that systems with HAVE_POSIX_SIGNALS - defined will not set the SIGINT handler to SIG_IGN - - include for _386BSD and BSD386 for TIOCGWINSZ - -lib/readline/rldefs.h - - added definition of HANDLE_SIGNALS - -lib/readline/rltty.c - - added GETATTR and SETATTR macros for termios/termio systems for - use by get_tty_settings and set_tty_settings - - 1/9 - --- -shell.c - - new variable: startup_state. Set to 0 for scripts, 1 for - interactive shells, and 2 for -c command shells. Superset of - the functionality provided by the `interactive_shell' variable - -builtins/common.c - - changed parse_and_execute to use startup_state to detect that - it's being called as a result of -c command, rather than the - ad-hoc method previously employed - - 1/11 - ---- -support/getcppsyms.c - - recognize `m88k' - -machines.h - - new description for Motorola M88K Delta running SVR4 - -support/mksysdefs - - moved the defaulting of `SYSDEF' to `cadmus' until just before - the definition is written out - -shell.c - - changed ambiguous assignment to `login_shell' by introducing a - dummy variable (~line 400: login_shell = -++login_shell) - -lib/malloc/malloc.c - - moved the code that decides whether or not to define USG or - BSD4_2 inside checks for USG and USGr4, since USGr4 passes - the tests for the various signals - -alias.c - - changed a call to index() to strchr() - - 1/12 - ---- -lib/readline/readline.c - - moved inclusion of posixstat.h before inclusion of rldefs.h - (rldefs.h requires that stat.h be included before it) - - don't test whether or not a file is a symlink or a socket - in stat_char unless S_ISLNK and S_ISSOCK are defined, - respectively - - 1/13 - ---- -machines.h - - added -I/usr/ucbinclude to SYSDEP_CFLAGS and a #define - USE_GNU_TERMCAP for the ICL DRS6000 description - -support/bashbug.c - - added definition for gethostname() for systems that do not have - it (USG except for SGI and HP) - - 1/14 - ---- -test.c - - made the #define of uid_t also dependent on HAVE_UID_T being - undefined. That way, hosts which have trouble can add a - -DHAVE_UID_T to SYSDEP_CFLAGS in the machines.h entry - - made the extern declaration of getgid() be conditionalized out - on Sony non-Posix machines - -machines.h - - added -DHAVE_UID_T to SYSDEP_CFLAGS in the Sony/BSD entry - - 1/15 - ---- -parse.y - - made type of `report_syntax_error' be static void - - made type of `handle_eof_input_unit' be static void - - added an error message when EOF is reached unexpectedly - (if EOF_Reached is 1 when report_syntax_error is called) - - added `extern void make_here_document ();' - -make_cmd.c - - made type of make_here_document be void - -execute_cmd.c - - added declarations of set_clexec to function prologues for - do_redirection and do_redirection_internal - -variables.c - - added `extern long atol()' to assign_seconds () - -jobs.c - - changed type of `making_children ()' to void - - removed unused label `wait_exit' in wait_for() - - changed `sigset_t set' to `sigset_t suspend_set' inside the - BROKEN_SIGSUSPEND definition because `set' shadows the - definition used in BLOCK_CHILD and UNBLOCK_CHILD - -mailcheck.c - - changed type of add_mail_file to void - -alias.c - - changed type of delete_all_aliases to void - - changed block-local declaration of `tl' to `tlen', because - `tl' shadows a function-scope variable - -input.c - - made duplicate_buffered_stream return new fd (like dup2) when - it finishes - - made free_buffered_stream() a void-valued function - -bashline.c - - cleaned up the precedence of the expression that checks whether - or not the ignore patterns have changed in setup_ignore_patterns - -lib/readline/readline.c - - made rl_gather_tyi a void-valued function - - made rl_dispatch a void-valued function - - made rl_redisplay a void-valued function - - made free_history_entry a void-valued function - - removed unused label `some_matches' from rl_complete_internal - -lib/readline/vi_mode.c - - removed check of return value from rl_dispatch in rl_vi_redo, - since rl_dispatch never returned one anyway - -lib/readline/history.c - - removed unused label `search_won' in get_history_event - - removed unused label `read_which' in get_history_event - - removed unused label `bad_word_spec' in history_expand - - removed unused label `error_exit' in history_expand - - changed block-local declaration of `len' to `slen' in - history_expand because len shadows a function-local variable - - changed block-local declaration of `l' to `ll' in - history_expand because len shadows a function-local variable - - removed unused label `get_first' in get_history_word_specifier - - 1/18 - ---- -parse.y - - fixed up the support for `unexpected EOF' errors by making - read_token set `EOF_Reached' to 1 before returning yacc_EOF - when it reads EOF while looking for the start of a token - - added better messages for unexpected eof to report_syntax_error - - added better messages for unexpected tokens to report_syntax_error - - made handle_eof_input_unit reset EOF_Reached to 0 if the - shell is interactive - - made report_syntax_error reset EOF_Reached to 0 if the - shell is interactive - - changed the non-interactive error messages to add `line' before - printing the line number rather than simply use filename:digit: - - 1/19 - ---- -builtins/type.def - - changed code so that simple `type' (-all not specified) takes - the same path as a regular command search (find_user_command() - rather than user_command_matches()) - - 1/20 - ---- -shell.c - - new variable `passwd_shell' set from the pw_shell field in the - password file - - new variable `passwd_dir' set from the pw_dir field in the - password file - -variables.c - - used passwd_shell and passwd_dir to eliminate the calls to the - getpw* functions - - if $SHELL is unset at shell startup, it is set to the value of - passwd_shell - - 1/21 - ---- -support/mksysdefs - - look for sys/ptem.h, define HAVE_SYS_PTEM_H if found - - look for sys/pte.h, define HAVE_SYS_PTE_H if found - -cpp-Makefile - - pass HAVE_SYS_PTEM_H and HAVE_SYS_PTE_H to the readline make - -lib/readline/rldefs.h - - include sys/ptem.h and sys/pte.h depending on the above two - definitions - -lib/readline/readline.c - - include if on an AIX system to get TIOCGWINSZ and - struct winsize - -machines.h - - added #undef HAVE_ALLOCA to hpux_6 description. alloca seems - to have problems when passing alloca'd memory to other functions - (esp. in the globbing code, passing directory_name) - - 1/22 - ---- -machines.h - - make the cadmus definition active only of M_MACHINE is not defined - when the code gets there - - 2/1 - --- -builtins/set.def - - changed the reference to $9 in the help string - - added `-' to the help string listing the options - -documentation/bash.1 - - changed the reference to $9 in the set builtin description - - added `-' to the set builtin synopsis listing the options - - 2/2 - --- -machines.h - - added REQUIRED_LIBARIES = -lPW -lc_s to SCO unix description - when not using gcc - -variables.c - - new variable builtin_env; builtin analogue of function_env - - new function dispose_builtin_env to free up all strings in - builtin_env - - find_tempenv_variable now looks in builtin_env after the - temporary environment - -execute_cmd.c - - execute_builtin_or_function and execute_subshell_builtin_or_function - now set up builtin_env for the `source' builtin so that things like - this work: - foo contains: - echo XXX=$XXX - echo XXX=$XXX - and you run - XXX=aaa . foo - which should output - XXX=aaa - XXX=aaa - (bug report by mfg@castle.ed.ac.uk) - - 2/3 - --- -execute_cmd.c - - when a command is forced into a subshell with ( ), turn off its - INVERT_RETURN bit in the flags so the exit status of the subshell - is not inverted. In execute_command_internal - - 2/5 - --- -[work to make readline configurably 8-bit clean] - -lib/readline/readline.c - - added variable convert_meta_chars_to_ascii, which controls - whether meta characters are converted into ESC-prefixed - key sequences. Set to 1 by default - - added a readline variable `convert-meta', settable in a - .inputrc, that controls the value of convert_meta_chars_to_ascii - -lib/readline/keymaps.h - - changed the hard-coded keymap size of 128 to a #define - of KEYMAP_SIZE, which is initially 128 - -lib/readline/keymaps.c - - changed all instances of 128 to KEYMAP_SIZE - - changed rl_make_keymap to initialize positions 128-256 to - rl_insert if KEYMAP_SIZE > 128 - -lib/readline/chardefs.h - - properly define _CHARDEFS_ to protect against multiple inclusion - -documentation/bash.1 - - documented new `convert-meta' readline variable - - 2/7 - --- -lib/readline/keymaps.h - - increased KEYMAP_SIZE to 256 - -lib/readline/emacs_keymap.c - - added entries to make the keymaps 256 entries. The entries in - emacs_standard_keymap are the ISO Latin-1 characters - -lib/readline/vi_keymap.c - - added entries to make the keymaps 256 entries. The entries in - vi_insertion_keymap are the ISO Latin-1 characters - - 2/8 - --- -lib/readline/readline.c - - make sure that rl_display checks that there is room for 8 more - characters when deciding whether or not to realloc the line, - since we might have to insert a tab - - rl_display_search should not use MESSAGE as a printf format - string, since it might contain % - - reversed arguments in calls to rl_kill_text in - rl_unix_word_rubout so that killed text is prepended to the - undo data rather than appended - - 2/9 - --- -builtins/alias.def - - moved single_quote() to builtins/common.c and made it global - -builtins/trap.def - - made sure that the output of `trap' is suitable for re-input - to the shell as a trap definition by using proper single-quoting - of the command - -lib/readline/readline.c - - new readline variable `completion-query-items' to control the - value of rl_completion_query_items (initially and by default - 100) - - new function rl_insert_completions which performs a call to - rl_complete_internal ('*') - -lib/readline/readline.h - - added extern declaration for rl_insert_completions () - -lib/readline/funmap.c - - added bindable command name `insert-completions' that maps to a - call to rl_insert_completions () - -documentation/bash.1 - - added documentation for new `completion-query-items' readline - variable - - added documentation for new `insert-completions' readline - command - - 2/10 - ---- -subst.c - - made ${xxx} behave correctly when the -u option was on and xxx - was not set - - made $xxx with -u enabled and xxx unset set $? to 1 - -lib/malloc/malloc.c - - made free() a void function, like ANSI and Posix say to - -support/mksydefs - - look for /usr/include/stdlib.h and define HAVE_STDLIB_H if found - -cpp-Makefile - - pass HAVE_STDLIB_H to all makes - -ansi_stdlib.h - - new file containing the extern function declarations that ANSI - puts into that bash uses; really a link to - lib/posixheaders/ansi_stdlib.h - -lib/posixheaders/ansi_stdlib.h - - real copy of ansi_stdlib.h - -alias.c, bashline.c, variables.c, shell.c, error.c, hash.c, signames.c, -expr.c, general.c, input.c, builtins/mkbuiltins.c, builtins/fc.def, -lib/glob/glob.c, lib/tilde/tilde.c, lib/malloc/xmalloc.c - - include if HAVE_STDLIB_H is defined, include - ansi_stdlib.h if not - -general.h, alias.h - - removed extern declarations for malloc and realloc - -lib/readline/{readline,history,funmap,keymaps,vi_mode}.c - - include or ansi_stdlib.h - - remove extern char *getenv() declarations - -cpp-Makefile - - added dependencies on ansi_stdlib.h - -support/fixdist - - changes to make things work with ansi_stdlib.h (basically just - dupliating the lines for posixstat.h) - -alias.h, braces.c, expr.c, general.h, hash.h, vprint.c, -builtins/fc.def, builtins/getopts.def, lib/glob/glob.c, -lib/tilde/tilde.c - - define NULL as ((void *)0) if NULL undefined and compiling in an - ANSI C environment (__STDC__) - - 2/11 - ---- -lib/readline/readline.c - - moved declaration of convert_meta_chars_to_ascii into the `forward' - declarations section, before its first use - - 2/13 - ---- -expr.c - - if x is a char *, don't compare *x to NULL, use '\0' instead - - 2/15 - ---- -lib/readline/readline.c - - add a call to rl_initialize_funmap at the beginning of - rl_named_function to make sure all of the function names will - be found - - 2/16 - ---- -parse.y - - handle double-quoted ${...} words like the Posix.2 spec says -- - count braces and skip command substitutions and quoted strings - to find the end of the pattern: new variables delimited_brace_level - and dollar_brace_level - - add new variable embedded_quoted_string so that the parser can - skip embedded quoted strings while parsing $() and ${} - constructs - -subst.c - - new function: extract_dollar_brace_string () which implements - the Posix.2 rules about ${...} extraction: counting braces while - skipping quoted strings and command substitutions. Called from - extract_string_double_quoted and expand_word_internal - - changed the way pattern removal was done: the pattern is now - run through tilde expansion, parameter expansion, command - substitution, and arithmetic substitution, then quoted in a - way acceptable to fnmatch with quote_string_for_globbing - - add code so that expansions like ${HOME:`xxxx`} are errors, as - they should be, and put the full expansion string in the error - message - - 2/17 - ---- - -subst.c - - changed expand_word_internal to call parameter_brace_expand_rhs - with the `quoted' parameter set to 0 except when the separator - between PARAM and WORD is `+'. This makes things like - - echo "${undef-"foo bar"}" - echo `foo bar' without the quotes. I'm still not sure this is - right, but it is compatible with other versions of sh - - 2/18 - ---- -parse.y - - add code to reserved_word_acceptable so that bash will parse a - reserved word after a `}' - -getcwd.c - - make it compilable on machines without dirent.h and struct direct - or unistd.h (like the NeXT) using the proper conditional inclusion - with HAVE_DIRENT_H and HAVE_UNISTD_H - -general.c - - moved the getwd() replacement out from inside #ifdef USG and just - protected it with #ifdef HAVE_GETWD - -machines.h - - added #undef HAVE_GETWD and #undef HAVE_GETCWD to the NeXT - machine description - -subst.c - - added `forward' declarations for tilde_expand and - expand_string_unsplit and removed the function-local extern - declarations - - 2/19 - ---- -getcwd.c - - changed to do conditional inclusion of limits.h, stdlib.h, string.h - - 2/22 - ---- -builtins/cd.def - - if the chdir to the canonicalized form of the pathname in - change_to_directory fails, try what the user passed. If that - succeeds, reinitialize the_current_working_directory to what - getwd() returns, and return success. Fix for pathological - cases like - - mkdir x - cd x - ( cd .. ; mv x y ) - cd . - - 2/24 - ---- -command.h - - added extern declarations for make_word_array, make_command, - make_bare_simple_command, and make_here_document - - added extern declarations for functions in copy_command.c: - copy_command, copy_word, copy_word_list, copy_redirect, - copy_redirects - -copy_cmd.c - - made all functions not used outside this file static - -execute_cmd.c - - removed extern declaration of make_word_array - - 2/25 - ---- -shell.c - - made non-interactive shell look for $BASH_ENV startup file rather - than $ENV (conflict with Posix.2) - -command.h - - broke the `union redirectee' out of the struct redirect, made - the union it's own typedef (REDIRECTEE), then added - REDIRECTEE redirectee to the struct redirect - - made the `dest' member of a REDIRECTEE a long. It matters on - some machines (sizeof(long) == sizeof(pointer) != sizeof(int) - and works on those machines with all those sizes being 32 bits - (this should really be a typedef rather than a long) - -execute_cmd.c, parse.y - - changed all calls to make_redirection to pass a WORD_DESC * or - a long as the third argument to make_redirection -[this should conclude the changes needed for the alpha] - - 3/2 - --- -subst.c, variables.c - - moved some function-scope extern function declarations to file - scope - -subst.c - - changed paramter_brace_expand_pattern to call expand_string_internal - on the removal pattern, since we do not want word splitting - -jobs.c - - call get_tty_state or set_tty_state in wait_for() depending on - a job's exit status when interactive_shell is set, rather - than testing interactive. This makes stty commands in scripts - executed with `.' `stick' - -nojobs.c - - make sure we only call {set,get}_tty_state when interactive_shell - is set - - 3/3 - --- -unwind_prot.c - - make sure there is actually something on unwind_protect_list - before calling without_interrupts to run something on it or - delete something from it - -jobs.c - - make sure job_slots is not empty in cleanup_dead_jobs and - delete_all_jobs before actually doing something - - 3/4 - --- -machines.h - - add #undef HAVE_GETWD to Xenix286 machine description - -lib/readline/history.c - - fixed an off-by-one error in the history expansion code: if - the length of the result string after adding the current piece - is (allocated_len - 1), the strcpy will write over the first - marker placed there by the malloc debugging code. - - changed the history realloc code to work in 256-character chunks - rather than 255-character ones - - 3/8 - --- -execute_cmd.c - - new variable exec_redirection_undo_list that holds redirections - that must be undone even when `exec' throws away - redirection_undo_list. These are copies of open files for - constructs like 7<&1. Set in add_undo_redirect and used in - execute_builtin_or_function. Disposed of otherwise. - - 3/9 - --- -execute_cmd.c - - fixed a memory leak in execute_builtin_or_function by adding an - unwind_protect to dispose of saved_undo_list - - anywhere do_redirections is called with INTERNAL==1 (which means - we make redirection_undo_list), arrange to clean up - exec_redirection_undo_list - -print_cmd.c - - massive namespace cleanups -- made almost all functions static - - new function `colon' to be called in place of `cprintf(";")' - to ensure that we don't print a `;' right after a `&' from - compound command printing functions (if, while, until, for) - -[put code out for FTP on 3/10] - - 3/11 - ---- -documentation/bash.1 - - removed the description of >&word as a way to redirect both - standard output and standard error - -endian.c - - moved new-endian.c to this. This handles 64-bit machines - directly - -lib/readline/readline.c - - rl_copy -> rl_copy_text to avoid clashes with Sun's libraries - - moved the completion code to a new file - -lib/readline/complete.c - - new file with the completion code from readline - -lib/readline/Makefile, cpp-Makefile - - added complete.c and complete.o to the necessary make variables - -subst.c - - added an entry to special_vars to make a change to $TERMINFO - cause readline to reset itself (sv_terminal()) - - 3/12 - ---- -builtins/exec.def - - free `command' if the exec fails - -machines.h - - change sgi machine description to define HAVE_GETWD - -lib/readline/history.c - - fixed a memory leak in read_history_range -- need to free - `buffer' before returning - - if read(2) returns <= 0 in history_truncate_file, then - immediately exit - - start checking at buffer[chars_read - 1] for newlines - -lib/readline/readline.c - - fixed a memory leak in rl_read_init_file -- `buffer' must - be freed before we return - - rearranged code in update_line so that we check for ols and - nls being in bounds before trying to compare their values - -parse.y - - fixed memory leak in read_token -- don't need to save `token' - into a fresh variable before calling push_string because - push_string does its own savestring in save_expansion - -subst.c - - fixed memory leak in expand_words_internal -- the word_list - allocated by the `@' case when expanding $@ needs to - be freed after turning it into a string with string_list - - fixed memory leak in expand_word_internal -- the string - returned by extract_dollar_brace_string needs to be freed - - fixed memory leak in expand_word_internal -- the string - returned by substring() in the `default:' case needs to be - freed - -variables.c - - fixed a free-memory reference in makunbound -- have to save the - value of `name' before calling dispose_variable, because it - might directly reference old_var->name. If so, then - stupidly_hack_special_variables will refer to freed memory - -dispose_cmd.c - - fixed a memory leak in dispose_command: if a group_command is - being disposed, need to free command->value.Group after - calling dispose_command (command->value.Group->command); - - fixed a memory leak in dispose_command: if a case command is - being disposed, need to free command->value.Case after - freeing everything else - -mailcheck.c - - fixed memory leak in remember_mail_dates -- need to - free the value returned by get_mailpaths() - - fixed memory leak in remember_mail_dates -- need to - free the value returned by extract_colon_unit() - - 3/13 - ---- -bashline.c - - fixed memory leak in bash_symbolic_link_hook -- - get_working_directory always returns newly-allocated memory - that must be freed - - fixed memory leak in bash_symbolic_link_hook -- - if `*dirname' is going to be replaced, the current contents - have to be freed (if non-null) - - make bash_symbolic_link_hook call get_working_directory with - a non-empty string for the value of `for_whom' - -execute_cmd.c - - make sure that execute_command cleans up after itself by - disposing the fd_bitmap it allocates - -shell.c - - fixed memory leak in reader_loop -- if throw_to_top_level is - called with DISCARD, the current command needs to be disposed - -lib/readline/complete.c - - when we return NULL to indicate the end of a set of completion - matches, free dirname, filename, and users_dirname -- there's - no reason to let them persist between calls, consuming memory - - 3/16 - ---- -shell.c - - when moving the `script' fd to the highest available fd, check - for getdtablesize returning -1 and default to 20 in that case - -jobs.c - - if getdtablesize returns something < 0, default to 20 - - check that getdtablesize() leaves `nds' set to something valid - before trying to dup2 shell_tty to it - -machines.h - - changed M_OS in KSR/1 description to OSF1 - -maxpath.h - - include sys/param.h if __ksr1__ defined - -parse.y - - changed declaration of the_time from long to time_t - -lib/readline/readline.c - - changed extern declarations for rl_basic_word_break_characters - and rl_completer_word_break_characters to file scope rather - than block scope - - changed declaration of chars_avail (param to FIONREAD ioctl) to - int, which it should have been all along - - 3/17 - ---- -jobs.c - - clamp nfds in initialize_jobs at 256 - -shell.c - - clamp the value returned by getdtablesize() to 256 - - 3/19 - ---- -execute_cmd.c - - make find_user_command_in_path return a pathname if it exists - and the caller wants FS_EXISTS files. This affects the `.' - builtin and files as script arguments to the shell (shell.c) - - clamp the highest-numbered file descriptior at 256 in - close_all_files(). - -jobs.c - - make get_tty_info print error message on tcgetattr failure only - if interactive != 0 (that is, we're really interactive now) - -lib/readline/rltty.c - - changed SETATTR macro to call tcsetattr with TCSANOW flag, since - this call is being used to affect an input file descriptor. - Ditto for the sys5 tty driver code and TCSETA (was TCSADRAIN and - TCSETAW, respectively) - - added a flag for ksr1 machines `ksrflow' which is the state of - suspended output for this process. If 1, this process has called - tcflow (tty, TCOOFF) to suspend output and tcflow(tty, TCOON) - may be called safely - - temporarily (?) disabled the code that simulates at ^Q at the end - of set_tty_settings. Let's see if it makes any difference - - 3/22 - ---- -execute_cmd.c - - new global variable (yucch) `current_fds_to_close' that is set to - the fd_bitmap passed to execute_simple_command while expand_words - is being executed so that this information is available to the - process substitution code - - set current_fds_to_close to NULL at start of execute_command - -subst.c - - change call to close_all_files in process_substitute to call - close_fd_bitmap (current_fds_to_close) - - fixed memory leak in parameter_brace_expand_length() -- need to - free the memory used to expand the PS1 in something like ${#PS1} - - fixed memory leak in expand_word_internal ${3:+posix} did not - free the memory used to expand the $3 - -documentation/bash.1 - - && and || have equal precedence; fixed up man page to reflect - this - - 3/23 - ---- -[fixes from bfox version of 1.13 dated 3/21/93 from eos.ucsb.edu] - -config.h - - #undef alloca before redefining it as __builtin_alloca - -cpp-Makefile - - compile newversion.c with $(CFLAGS) instead of $(DEBUG_FLAGS) - -general.h - - new #define: maybe_free(x) - -jobs.c - - alliant has same problem as NeXT wrt /usr/etc/rlogind and /dev/tty - - make delete_all_jobs be static void - -builtins/cd.def - - use maybe_free define - -builtins/common.c - - HAVE_VPRINTF --> HAVE_VFPRINTF - -builtins/test.def - - document -h as a synonym for -L - -lib/readline/history.c, lib/readline/rldefs.h - - #undef alloca before redefining it as __builtin_alloca - -lib/readline/history.c - - new functions history_get_state and history_set_state - -lib/readline/tilde.c - - put in #pragma alloca if on AIX machine - -support/getcppsyms.c - - recognize __GNUC__ and __STDC__ and pass them along as output - - 3/24 - ---- - -subst.c - - removed fully_quoted_word(), since it was unused - -execute_cmd.c - - added extern declarations for functions in dispose_cmd.c - - removed extern declaration of atol() - -parse.y - - added extern declaration for dispose_words() - -documentation/bash.1 - - re-added the description of >&filename as a way to redirect - both stdout and stderr to filename - -machines.h - - slight changes to the alpha description - -shell.c - - moved all the extern function declarations to have file scope - -print_cmd.c - - colon --> semicolon - -parse.y - - in read_token, if we're parsing an embedded quoted string, don't - bother with special processing of `$' and characters following - - 3/25 - ---- -print_cmd.c - - added a new function the_printed_command_resize to expand the - printed command buffer in cprintf() - -builtins/bind.def - - removed the unwind-protect code, because unwind_protect_pointer - is not guaranteed to work on a FILE * - -lib/readline/readline.c - - assign in_stream and out_stream immediately, because they may - be used before readline_internal is called - - 3/26 - ---- -cpp-Makefile - - allow for use of different compress programs with the use of - $(COMPRESS) and $(COMPRESS_EXT) - - 3/29 - ---- - -general.c - - new function set_lines_and_columns to set $LINES and $COLUMNS in - response to a SIGWINCH - -lib/readline/readline.c - - call set_lines_and_columns() in set_screen_size() to set the - right environment variables on a SIGWINCH (code needed to be - rearranged a bit to make this happen) - -jobs.c - - add a SIGWINCH handler to set $LINES and $COLUMNS if readline is - not being compiled into the shell and TIOCGWINSZ and SIGWINCH - are defined - -subst.c - - made dequote_string extern so `read' can use it - -builtins/read.def - - added CTLESC characters to represent escapes instead of doing - backslash processing internally - -braces.c - - fixed the brace expansion code so that backslash can correctly - act as an escape character, and escape `"' in a double-quoted - string - - 3/31 - ---- -make_cmd.c - - the `<>' redirection needs to open the file O_RDWR|O_CREAT - for Posix.2 compatibility - - 4/1 - --- -parse.y - - the function read_a_line was changed to take a flag telling it - whether or not to remove quoted newlines - - read_secondary_line was changed to call read_a_line with an arg - of 1, telling it to strip \ pairs - - These two changes fix two bugs with here documents: - 1. delimiter check occurs after \ stripping - 2. leading tab deletion occurs after \ stripping - -lib/readline/rldefs.h - - include if on Linux - -lib/readline/readline.c - - don't declare PC, BC, and UP if on Linux (??) - - change the conditional parsing code that handles the `$if term=' - construct to test the name given in the if command against both - the `long' and `short' forms of rl_terminal_name. For instance, - if `rl_terminal_name' were `sun-cmd', it would be tested with - stricmp against both `sun' and `sun-cmd' - -machines.h - - add HAVE_VFPRINTF to the Linux description - -unwind_prot.h - - change the unwind_protect_int macro to cast the second argument to - unwind_protect_var to a (char *), which is what unwind_protect_var - expects - -unwind_prot.c - - change unwind_protect_var to allocate memory and do a bcopy if the - size of the variable passed to save is not sizeof(int). That's - what restore_variable expects - -lib/readline/complete.c - - fixed rl_complete_internal so that it pays attention to the value - of rl_completer_quote_characters and quotes a match if the match - contains a word break character - -bashline.c - - set rl_completer_quote_characters to ' and " - - 4/5 - --- -lib/readline/complete.c - - changed rl_complete_internal so that an `attempted completion - function' may tell readline not to perform filename completion - if it fails by returning (char **) -1 - -bashline.c - - attempt_shell_completion should return (char **) -1 if doing - command word completion and no matches are found. This will - tell readline not to perform filename completion - - 4/6 - --- -builtins/common.c - - fixed the error message printer by get_working_directory: - `for_whom', shell_name, or `bash: ' is printed first; the - first non-empty one being printed. Explanatory text is - added to the error message - - 4/7 - --- -machines.h - - in the Sun section, define Solaris of either `USGr4' or __svr4__ - is defined - - Solaris 2 systems have sys_siglist, so don't #undef HAVE_SYS_SIGLIST - -jobs.c - - don't declare sys_siglist if on Solaris 2 - - 4/8 - --- -lib/readline/rldefs.h - - do not define USE_XON_XOFF. This causes output to be swallowed - when using bash over a relatively slow line (like a modem line). - This means that ^S and ^Q don't work on termio/termios systems; - use ^V to quote characters instead - -variables.c - - don't perform a get_working_directory on startup unless we did - not inherit $PWD or the inherited value of $PWD is wrong - -trap.c - - new functions: free_trap_strings and reset_original_signals. - Together they do the same thing as restore_original_signals() - -jobs.c, nojobs.c - - removed call to restore_original_signals from make_child. Now - callers have to handle this themselves - -execute_cmd.c - - added a call to restore_original_signals after make_child in the - child process everywhere make_child is called - -subst.c - - added call to restore_original_signals after make_child in - process_substitute - - added call to reset_signal_handlers after make_child in - command_substitute for the child process - - [THERE IS A PROBLEM WITH A TRAP on `0' -- it is inherited in the - child process started to run the command substitution] - -[These are fixes to make savetraps="$(trap)" work as Posix.2 specifies] - - 4/11 - ---- -bashline.c - - supply a value for rl_completer_word_break_characters; `$' is - not a shell word break character - - 4/13 - ---- -lib/readline/complete.c - - only look at adding quote characters to completion matches if - we're doing filename completion - -bashline.c - - don't supply a value for rl_completer_word_break_characters - - 4/14 - ---- -documentation/bash.1 - - clarify what the readline function shell-expand-line does - -jobs.c - - clean up dead jobs in wait_for even in non-interactive shells - rather than waiting for the next call to the parser - - 4/15 - ---- -bashline.c - - reorganized the shell_expand_line code; broke it up into several - discrete functions - - added new functions: history_and_alias_expand_line, - history_expand_line - - added a new emacs-mode command, M-!, bound to history-expand-line - - 4/18 - ---- -unwind_prot.c - - more fixes to the save-variable and restore-variable code, - mostly to make things work better on machines like the alpha - where sizeof(int) != sizeof(char *): - - save and restore now use identical logic and nearly - identical code to decide whether or not to use malloc and - bcopy or assignment - -builtins/common.c - - new functions to manage the state of the dollar variables: - - dollar_vars_changed - return 1 if the dollar variables have - been changed - set_dollar_vars_changed - set the state of dollar variable - modification to `changed' - set_dollar_vars_unchanged - set the state of dollar variable - modification to `unchanged' - -builtins/source.def - - new function: maybe_pop_dollar_vars. This is called so that the - `.' command will restore the dollar variables only if the script - run with . has not changed them. If the script changed $@, the - new values should stay in place - - changes to source_builtin to set the state of the dollar - variables to `unchanged' before executing the script, and calling - maybe_pop_dollar_vars() to decide whether or not to restore the - dollar variables and to do so if warranted - -machines.h - - new description for NEC EWS4800, from m-hirano@sra.co.jp via - hikichi@sra.co.jp - - 4/19 - ---- -support/mksysdefs - - check for both /hp-ux and /bin/uname before deciding a machine - should be checked for an HP/UX revision level - - 4/22 - ---- -input.h, general.h, lib/readline/readline.h, lib/tilde/tilde.h - - added typedefs for CPFunction (pointer to function returning - pointer to char) and CPPFunction (pointer to function returning - pointer to pointer to char) - -execute_cmd.c - - replaced all instances of (int)redirectee in do_redirection_internal - with a variable redir_fd, which is set to redirectee.dest - -print_cmd.c - - replaced all instances of (int)redirectee in print_redirection - with a variable redir_fd, which is set to redirectee.dest - -maxpath.h - - #include on OSF/1 systems - -subst.c - - added extern declaration for list_append - - changed sv_allow_null_glob_expansion to compare the return value - from find_variable to NULL to set the value of - allow_null_glob_expansion - -parse.y - - fix the assignment_acceptable macro so we cannot return - ASSIGNMENT_WORD while in the middle of a case statement pattern - list (in_case_pattern_list != 0) - -general.c - - Linux has gethostname() and does not need the emulation - -jobs.c - - Linux has a declaration for sys_siglist that conflicts with the - extern declaration; use the one from the standard include file - - the sigprocmask emulation did not handle NULL arguments in - oldset and newset; check them before using - - 4/23 - ---- -lib/readline/complete.c - - use single_quote() to quote a completion replacement with - embedded occurrences of characters from rl_completer_quote_characters - - 4/26 - ---- -print_cmd.c - - redid cprintf() for systems without varargs to be what bfox has - (using char * where bfox has void *) - -parse.y - - make read_secondary_line take an argument telling it whether or - not to have read_a_line remove quoted newlines - -make_cmd.c - - pass an argument to read_secondary_line saying whether or not to - remove quoted newlines, set to 1 if the delimiter of a here - document is unquoted - - 4/28 - ---- -builtins/ulimit.def - - added -u option to set and get the max number of processes - available to a user; available on systems which define - RLIMIT_NPROC - - added better handling of getrlimit failures to ulimit_builtin - -cpp-Makefile - - made $(HOSTTYPE_DECL) appear on the cc command line before the - $(CPPFLAGS) when making variables.o - - 4/29 - ---- -lib/readline/complete.c - - added an extern declaration for getpwent() for isc386 machines - where __STDC__ is not defined and _POSIX_SOURCE is - - 4/30 - ---- -general.c - - new function legal_identifier, which returns 1 if a string - passed is a legal shell identifier and 0 otherwise. Used - to decide what is and is not a legal variable name for the - expansion functions - -subst.c - - make expand_word_internal check that a ${ } expression - that starts with a digit is composed of all digits before - deciding that a variable starting with a digit is special - (setting var_is_special to 1) - - new function valid_brace_expansion_word (name, var_is_special) - returns 1 if name is a legal lhs of a brace expansion - expression - - make expand_word_internal check an identifier for validity - before passing it off to parameter_brace_expand_word by calling - valid_brace_expansion_word () - - new function valid_length_expression (name) returns 1 if NAME is - something that can be passed to parameter_brace_expand_length(); - called from expand_word_internal before calling - parameter_brace_expand_length() - - - These fix the following: - ${#} was treated as x=$, ${#x} - ${} was treated as ${} - ${} was not flagged as an error - ${#} was not flagged as an error - - 5/2 - --- -input.c - - make check_bash_input change the value of default_buffered_fd - if it moves the input fd to a new fd as the result of a - redirection - -execute_cmd.c - - don't make do_piping try the dup2 and close if pipe_out == - REDIRECT_BOTH (-2) -- it's useless work - - add error checking to do_piping to see if the dup2 calls fail - and why - -error.c - - new function internal_error for shell internal error messages - -jobs.c - - changed some fprintf(stderr, ...) calls to internal_error() - calls - - 5/3 - --- -execute_cmd.c - - do not change the buffered stream associated with a file descriptor - when processing an r_inputa_direction redirection in - do_redirection_internal - -jobs.c, nojobs.c - - don't sync the buffered stream associated with default_buffered_input - in make_child if the shell is reading input from fd 0 and running an - asynchronous command - - 5/4 - --- - -execute_cmd.c - - if the shell is not interactive, clean up the dead jobs each time - we call execute_command () - -jobs.c - - new function, mark_dead_jobs_as_notified - - if the shell is not interactive, mark all dead jobs as notified in - notify_and_cleanup so that cleanup_dead_jobs frees up the slot in - the jobs array - -nojobs.c - - make cleanup_dead_jobs call reap_zombie_children on Posix systems, - so the shell doesn't keep growing in size as more jobs accumulate - before a call to wait_for() - - 5/6 - --- -jobs.c - - take the code that resets the signal handler out of flush_child; - it should be done in wait_for - - new function reap_dead_jobs to be run by non-interactive shells - that marks all dead jobs as notified and cleans up the job list - - removed the code from notify_and_cleanup that marks dead jobs as - notified if the shell is not interactive - -execute_cmd.c - - took the code that cleaned up dead jobs out of execute_command - There is a problem when this is run as the result of a trap on - SIGINT and the trap command is called directly from flush_child -- - a job slot can disappear out from underneath flush_child and - wait_for and cause the shell to abort - - added a new define REAP that causes a non-interactive shell to - clean out the job table by calling reap_dead_jobs or - cleanup_dead_jobs - - added calls to reap to execute_for_command and - execute_until_or_while - -nojobs.c - - changed wait_sigint_handler to not do anything when it is called, - not even run a signal handler - - changed wait_for to call the old sigint handler if a foreground - process exits due to a SIGINT - - [these make nojobs.c behave like jobs.c when waiting for a job in - a non-interactive shell] - -config.h.mini - - new `minimal' configuration file - - 5/7 - --- -subst.c - - make sure that command_substitute closes the pipe file descriptors - if there is a goto error_exit - - 5/10 - ---- -nojobs.c - - add a SIGWINCH handler to set $LINES and $COLUMNS if readline is - not being compiled into the shell and TIOCGWINSZ and SIGWINCH - are defined - -[code put out for FTP on slc2.ins.cwru.edu] - - 5/11 - ---- - -braces.c - - commas within backquotes inside matching braces are now treated as - quoted (e.g., echo {`echo foo:bar | sed s/:/,/`}) - -lib/readline/search.c - - added extern declarations for xmalloc, xrealloc - - 5/12 - ---- -lib/malloc/malloc.c - - added a #define wrapper around the sbrk() declaration so that it's - not declared as char * if hpux_8 or VOID_STAR_SBRK are defined - -subst.c - - changed sense of #ifdef so that unless KSH_INCOMPATIBLE is defined - ${#@} and ${#*} are equivalent to $# - - 5/13 - ---- -execute_cmd.c - - don't create the export env unless we are running a command with - shell_execve (in execute_disk_command) - -jobs.c, nojobs.c - - don't create the export env in make_child (why were we doing this - in the first place?) - -hash.c - - removed declaration of initialize_hashed_filenames, which is unused - -subst.c - - make list_rest_of_args, list_string, and the brace expansion code - in expand_words_internal use the REVERSE_LIST macro rather than a - call to reverse_list() - -make_cmd.c, copy_cmd.c - - change uses of reverse_list to REVERSE_LIST - - 5/17 - ---- -execute_cmd.c - - make execute_disk_command look in the temp environment for an - assignment to PATH, and disable hash lookup for the command if - such an assignment is present - - 5/18 - ---- -parse.y - - changed read_a_line so that a backslash can quote a \ - pair and prevent its removal when remove_quoted_newline is 1 - - 5/19 - ---- -siglist.h - - new file, to encapsulate the declarations of sys_siglist and - provide a `strsignal' macro - -jobs.h, siglist.c, longest_sig.c - - include siglist.h - -jobs.c, nojobs.c - - removed declaration of sys_siglist - - 5/20 - ---- -execute_cmd.c - - don't set up the loop_redirections unwind-protect unless there - are actually some redirections - - combined the AND_AND and OR_OR cases of execute_command_internal - to remove some duplicated code - - folded two tests together in the simple command case of - execute_command_internal to remove a layer of indentation and - braces - - don't set up the unwind_protect in execute_simple_command unless - the command actually expands to something - - broke the code that executes functions and builtins out into new - functions (execute_function and execute_builtin) and changed - execute_builtin_or_function and execute_subshell_builtin_or_function - to call them - - replaced the async_redirections unwind-protect in - execute_disk_command, since there's no reason to do it if we're - already in a subshell and simply going to exit if the redirections - fail - - set up the unwind-protect on saved_undo_list in - execute_builtin_or_function only if there are redirections saved - in saved_undo_list - - only call do_redirections in execute_disk_command if there are - redirections to perform -- no need for the side effects since - we're in a subshell - - 5/21 - ---- -parse.y - - make read_a_line, shell_getc, decode_prompt_string, prompt_again, - bash_add_history, reset_readline_prompt, read_token, discard_until, - shell_ungetc static functions - - eliminated the after_preprocess label in shell_getc - - broke the prompt command execution code out into a separate - function: execute_prompt_command - -subst.c - - combined some common code in extract_string_double_quoted for the - $( ) and ${ } cases - - changed the allocation scheme in string_list_internal to hopefully - reduce the number of allocations - - added a new define SET_INT_VAR and changed all of the sv_* - functions that set a variable depending on whether or not a - variable exists to use it - -variables.c - - declare argument to getenv as `const char *' on Linux - -machines.h - - Linux has the fixed include files if gcc is being used to compile - the shell - - 5/23 - ---- -subst.c - - only call rl_reset_terminal in sv_term if no_line_editing is 0 - (which means we're actually using readline) - - 5/25 - ---- -execute_cmd.c - - changed execute_for_command to explicitly call the functions that - were to be called by the unwind-protect code (e.g., dispose_words), - and changed the run_unwind_frame call to a call to - dispose_unwind_frame. This is to avoid using the kernel to block - interrupts as much as possible - - did the same for execute_case_command and execute_builtin - -jobs.c - - only run traps on SIGCHLD if job_control != 0 - - 6/3 - --- -unwind_prot.c - - have without_interrupts call QUIT only if interrupt_immediately - is set to 1 - - 6/7 - --- -machines.h, jobs.h, lib/readline/chardefs.h, maxpath.h - - changes for Solaris 2 with gcc from Greg Onufer - -lib/malloc/malloc.c - - define NO_SBRK_DECL if hpux_8 or Solaris - - declare sbrk as extern char * unless NO_SBRK_DECL is defined. - VOID_STAR_SBRK has been removed - -lib/readline/readline.c - - changed a call to alloca to a call to xmalloc to avoid problems - on the DEC alpha (can't pass memory allocated with alloca to - another function) - - moved key binding and startup file code to bind.c - -lib/readline/rldefs.h - - created common definitions for emacs_mode and vi_mode - -lib/readline/bind.c - - new file containing the key binding and startup file code. - - 6/8 - --- -lib/readline/readline.c - - changed rl_message to use varargs, if HAVE_VARARGS_H is defined - -lib/readline/rldefs.h - - include if HAVE_VARARGS_H is defined - -lib/readline/{readline.c,bind.c,rltty.c,vi_mode.c,search.c} - - cleaned up the namespace by prefixing all pseudo-global readline - variables (variables private to the library but used in multiple - files) with _rl_ - - 6/10 - ---- -[changes from bfox] - -bashansi.h - - new file, including both string.h and ansi_stdlib.h - -dispose_cmd.h, make_cmd.h, subst.h - - new files containing extern function declarations - -endian.c - - for machines with sizeof(long)==8, shift by 31, then 1 to fake - out gcc 2.4, which complains when you shift by 32 - -general.h - - added an include of string.h or strings.h - - changed the declarations of the savestring() and member() macros - -shell.c - - changed the structure of the long_args struct to be more portable - -subst.c - - made dequote_string and dequote_list static - -[end of changes from bfox] - -general.h - - added extern declarations for all of the non-int functions - defined in general.c - - - - removed extern declarations that appear in one of the bash header - files - - 6/15 - ---- -lib/readline/readline.c - - incorporated a patch to rl_transpose_chars from Tom Tromey - which allows C-t to be undone - - fixed rl_rubout so the fast screen fixup when deleting the - last character on the line handles characters that are more - than one screen position wide by erasing the right number of - physical characters - - 6/16 - ---- -siglist.h - - don't declare sys_siglist on 4.4 BSD - -builtins/mkbuiltins.c, lib/readline/history.c - - include if HAVE_UNISTD_H is defined - - 6/19 - ---- -machines.h - - new description for the Intel Paragon running OSF/1 - -support/getcppsyms.c - - new variables for the paragon (__i860__, __PARAGON__, etc.) - -documentation/bash.1 - - make it clear the the -noprofile switch disables the sourcing - of ~/.bash_login and ~/.profile as well as /etc/profile and - ~/.bash_profile - - 6/23 - ---- -shell.c - - instead of calling maybe_execute_file on "/etc/profile", - use a #define for SYS_PROFILE, which is initially defined - to be "/etc/profile" by default - -lib/readline/isearch.c - - new file, with the isearch code - -lib/readline/display.c - - new file, with the incremental redisplay code - -lib/readline/readline.c - - removed the isearch, display code - - 6/24 - ---- -lib/readline/readline.c - - removed the signal-handling code - -lib/readline/signals.c - - new file with the signal-handling code - - 7/1 - ---- -test.c - - changed the `advance' macro to get around some picky compilers - -machines.h - - machine description for hp9000 running 4.4 BSD - -support/getcppsyms.c - - recognize __BSD_4_4__ for 4.4 BSD machines - -builtins/souirce.def - - cast the st_size stat struct member to int because it's - 64 bits on 4.4 BSD - -lib/readline/signals.c - - include if compiling on a 4.4 BSD machine - - 7/2 - --- -builtins/read.def - - if $IFS is unset it defaults to "" when splitting the line - read into words (so no splitting is performed) - - 7/5 - --- -shell.c - - remove SIGKILL from terminating_signals[] -- it can't be caught - or ignored - - make terminating_signals[] static - - make terminating_signals[] an array of structs that hold the signal - number and the original handler - - change initialize_terminating_signals to use the new struct termsig - and to set the original handlers for all the terminating_signals - - new function reset_terminating_signals to restore original handlers - for all terminating signals in terminating_signals[] - -trap.c - - new function signal_is_special, returns 1 if a signal is one of - the signals the shell treats specially - - call reset_terminating_signals from restore_original_signals - -getcwd.c - - changed call to `stat' to call `lstat' to keep symlinks that - point to non-existant files from causing getcwd to fail - - if S_ISLNK is not defined after inclusing `posixstat.h', use - a cpp #define lstat stat - -machines.h - - new entry for Symmetric 375 running 4.2 BSD - -support/getcppsyms.c - - recognize and pass along `scs' for the Symmetric 375 - -lib/readline/bind.c - - new function: rl_set_keymap_from_edit_mode, which sets the - keymap appropriately depending on the editing mode as if we - were about to edit a command line - - 7/6 - --- -lib/termcap - - new code from the GNU termcap library distribution 1.02 - -endian.c - - include bashansi.h - -shell.c - - fall back to sourcing $ENV if $BASH_ENV is not found - -variables.c - - make add_or_supercede search `array' only if it is non-null - - 7/7 - --- -subst.c - - made do_assignment_internal an int function that returns 1 if - the assignment was made correctly and 0 if it was not - - do_assignment and do_assignment_no_expand now return the value - from do_assignment_internal - -variables.c - - made assign_in_env return 1 if everything appeared to go - successfully (which it always does) - -cpp-Makefile - - add variables.c as an explicit dependency for variables.o; there - appears to be a bug in Gnu make - -braces.c - - removed static version of copy_array since there's already one - in general.c, declared extern in general.h - -lib/malloclib - - updated to sources from Gnu libc 1.06 - - 7/9 - --- -shell.h - - new struct: user_info, containing uid, gid and passwd file info - about the current user - -shell.c - - new variable current_user of type struct user_info - - eliminated passwd_shell, passwd_dir, and current_user_name - -subst.c - - rewrote sv_uids to use the info in current_user.uid and .euid - and to use itos rather than sprintf - -variables.c, mailcheck.c, test.c, execute_cmd.c, parse.y - - changed to use current_user.user_name rather than current_user_name - and to use current_user.shell and current_user.home_dir instead of - passwd_shell and passwd_dir, respectively - -flags.c, flags.h - - new flag, `-p' for `privileged', a la ksh. This is set automatically - if uid != euid || gid != egid - - if +p, set the real and effective uids and gids to the real uid and - gid - -flags.c - - include shell.h for the current_user struct and don't explicitly - include header files included by shell.h - -builtins/set.def - - code to handle -p and -o privileged - -documentation/bash.1 - - added documentation for set -p/set -o privileged - - added documentation for bind -m keymap - - added documentation to readline section for non-inc search bindings - -builtins/bind.def - - documented the -m keymap option - - 7/10 - ---- -machines.h - - new description for NeXTstep running on intel 486 - -lib/tilde/tilde.c - - fixed up definition of savestring macro - -bashline.c - - changed attempt_shell_completion so that when completing command - words and no matches are found, it tells readline to perform - filename completion but sets the completion ignore function - to one that will ignore all filenames matched, leaving only - directories in the list of matches - - generalized the ignore processing, breaking the body of the - existing ignore function into a generic function that takes as an - argument a pointer to a function used to test each filename in the - match list for `acceptability' - - added a new ignore function to support the `ignore filenames' - behavior described above - - 7/12 - ---- - -machines.h - - add #undef HAVE_GETCWD to Motorola M88100 description -[put code out for FTP on slc2.ins.cwru.edu] - - 7/13 - ---- -builtins/type.def - - broke the code that does the work of the type builtin out into a - separate function and added a couple of other display options, - for eventual use by command -v and -V - -builtins/bashgetopt.c - - added a new function `report_bad_option' - -builtins/jobs.def, bultins/histctl.def - - changed to use report_bad_option - -builtins/command.def - - added the Posix.2 -v and -V options - - 7/14 - ---- -execute_cmd.c - - make sure that execute_command_internal sets redirection_undo_list - and exec_redirection_undo_list to NULL after making local copies - so things don't get undone twice. This can happen as the result - of an `fc' redoing a command with redirections: - wc subst.c > xxx & - r - [bug report from Ian Watson] - -builtins/setattr.def - - converted to use internal_getopt, so export and readonly both use - it - -builtins/bashgetopt.c - - changed the default error messages a little bit - -shell.h - - new exit values: EX_NOEXEC, for when a command name is not - executable (126), and EX_NOTFOUND, for when a command is not - found (127) - -execute_cmd.c - - change to use EX_NOEXEC and EX_NOTFOUND - -parse.y - - broke function definitions off into their own production, - function_def - - 7/15 - ---- -builtins/kill.def - - added code so that signals are listed by kill -l in the manner - specified by Posix.2 if the POSIXLY_CORRECT variable exists in - the environment - - Posix.2 UPE says kill can take % job control arguments even if - job control is disabled, so let interactive shells use them - -parse.y - - decode_prompt_string now performs the Posix.2 ! expansion for - $PS1 and $PS2, if POSIXLY_CORRECT is turned on - -builtins/exec.def - - changed exit status to be in line with Posix.2 specification - (127 for not found, 126 for not executable) - -builtins/wait.def - - unknown jobs should cause wait to return 127 - -shell.c - - change the behavior of sh -c so that if POSIXLY_CORRECT is in the - environment, the first argument after -c command is assigned to - $0, and the rest of the arguments, if any, are bound to $1 ... $n - Posix.2 4.56.3 specifies this behavior - - move the code that does -c command out of the !local_skip_execution - block. I can't see why it was there in the first place - - made some of the private variables static to clean up the name - space - - moved the code that runs the startup files into a separate - function: run_startup_files. This is called with an argument - telling it whether or not to use the Posix.2 startup file sequence - ($ENV). This argument is 1 if POSIXLY_CORRECT is found in the - environment at startup - -builtins/fg_bg.def - - bg needs to set last_asynchronous_pid when restarting a job in - the background, as per Posix.2, 5.4.2 - -jobs.c - - make sure the status of exited jobs is printed as Done(n) where - `n' is the exit status, if POSIXLY_CORRECT is specified - - 7/16 - ---- -general.c - - fixed a problem with canonicalize_pathname which made it get - confused with xxx/./yyy if yyy was `.' or `..' - -parse.y - - broke the code in read_token that checked for reserved words - into a macro: CHECK_FOR_RESERVED_WORD - - if posixly_correct is 1, read_token does not allow reserved words - to be aliased (checks for reserved words before doing alias - expansion). See Posix.2 3.3.1 - - changed the function_def production to make redirections - specified with a function definition bind to the function - rather than to the definition. This introduced 66 (!) - bison shift/reduce conflicts. From Posix.2 3.9.5 - - if `posixly_correct' is set, <>word will open word for read/write - on fd 0, rather than fd 0 and fd 1 as normal - -builtins/source.def - - removed the ALLOW_RIGID_POSIX_COMPLIANCE define; the check for - POSIXLY_CORRECT will always be performed - -shell.c - - new long option: -posix, sets posixly_correct to 1 - - posixly_correct set to 1 in main if POSIXLY_CORRECT found in - shell environment - -subst.c - - new function sv_strict_posix, sets value of posixly_correct - depending on $POSIXLY_CORRECT - - if posixly_correct is set, don't do tilde expansion on - =~ in words that are not shell assignment statements - -execute_cmd.c, jobs.c - - removed calls to getenv("POSIXLY_CORRECT") with checks of - posixly_correct - - if posixly_correct is set, don't translate >&x into >x 2>&1 - -expr.c - - implemented the OP= Posix.2 arithmetic assignment operators - (see Posix.2 table 2.15, section 2.9.2.1, and section 3.6.4) - -documentation/bash.1 - - added documentation of new arithmetic evaluation assignment - operators - - documented the new -posix long option - - 7/17 - ---- -builtins/setattr.def - - made set_or_show_attributes correctly quote the values of shell - variables it prints so the output of `export' or `readonly' can - be used as input to the shell - -builtins/fc.def - - made fc write its output as Posix.2 5.12.6.1 specifies: when not - numbering, the command should still be output with a leading tab - -variables.c - - if `posixly_correct' is true, bash uses ~/.sh_history as the - default value of $HISTFILE - -shell.c, subst.c - - if posixly_correct is true, turn on interactive comments, since - that's what Posix.2 says to do - - 7/20 - ---- -lib/malloclib/{malloc.c,free.c,malloc.h} - - bug fix from Mike Haertel - -builtins/mkbuiltins.c - - added code so that the Posix.2 `special' builtins have - SPECIAL_BUILTIN added to the flags in their entry in the - builtins array defined in builtins.c - -shell.c - - declare `restricted' as `extern int', since it's already - declared in flags.c - -lib/readline/bind.c - - only try to set the keymap to vi_insertion_keymap in - rl_set_keymap_from_edit_mode if VI_MODE is #defined - -lib/malloc/malloc.c - - define NO_SBRK_DECL for hpux_9 - -machines.h - - hpux_9 needs to link with libPW.a to pick up alloca(), which - has reportedly been fixed - -lib/tilde/Makefile - - add a definition for RM to the makefile - - 7/21 - ---- -documentation/Makefile - - added info, dvi targets - - changed `squeaky-clean' to `distclean' - - use $(MAKEINFO) in recipes rather than `makeinfo' - -bashline.c - - fixed memory leak in cleanup_expansion_error - - fixed up some extern declarations of pre_process_line - -cpp-Makefile - - define HAVE_FIXED_INCLUDES by default if we're using gcc - - 7/27 - ---- -machines.h - - add -ldgc to the DG/UX description if we're not building an - `M88KBCS_TARGET' - - 7/28 - ---- -shell.c - - always initialize top_level_mask from what the shell inherits, - even for login shells - -lib/tilde/tilde.c - - declare the getpw functions only for USG systems - - 7/30 - ---- -lib/readline/readline.c - - new function: _rl_kill_kbd_macro () to cancel any keyboard - macros being defined on a SIGINT - -lib/readline/signals.c - - call _rl_kill_kbd_macro on a SIGINT - -bashline.c - - don't bind anything with a META via rl_add_defun; change those to - add the definition unbound, then explicitly bind it into - emacs_meta_keymap - - 8/3 - --- -bashline.c - - save and restore the value of rl_startup_hook when using it in - special editing functions - - 8/4 - --- -general.c - - new global variable: global_error_list, returned instead of -1 - from functions returning lists - - changed delete_element to return &global_error_list instead of - (char **)-1 - -braces.c, general.c, expr.c - - removed the conditional definition of NULL; it should be defined - in general.h - -lib/glob/glob.c - - new global variable: glob_error_return, returned instead of - (char **)-1 to signal a glob error - - changed functions to return &glob_error_return instead of - (char **)-1 - -subst.c - - fix the GLOB_FAILED macro to test against &glob_error_return - rather than (char **)-1 - -builtins/ulimit.def - - cleaned up the casts like (long) -1; changed to -1L, which is - equivalent and more correct - -lib/readline/complete.c - - use the address of a new local variable `dead_slot' to mark - dead slots in the list of completion matches rather than - (char *)-1, which doesn't work everywhere - -lib/readline/history.c - - have get_history_word_specifier return the address of a static - variable `error_pointer' in case of error, rather than (char *)-1 - -lib/readline/signals.c - - if SHELL is defined, don't mess with SIGTSTP, SIGTTIN, or SIGTTOU - -lib/readline/vi_mode.c - - make rl_vi_change_case skip over characters that are neither - upper nor lower case - - 8/5 - --- -lib/readline/funmap.c - - made qsort_string_compare compare the first characters of the - two strings before calling strcmp() - -builtins/bind.def - - rewrote to use internal_getopt - - map specifications made with -m now affect all other options - and binding specifications - - no processing is done until all the options have been processed - - the -q option is now limited to a single argument, as the - documentation has always stated - -lib/readline/vi_mode.c - - fixed the `r' command so that the replacement is saved, and it - is redoable - -command.h - - add `line' members to the simple_command and command structs to - keep track of the line number the command appears on for $LINENO - -make_cmd.c - - save line number when making a `bare' simple command to the value - of line_number - - save the first line of a function definition in make_function_def - -copy_cmd.c - - make sure that the line number information is copied with a command - -execute_cmd.c - - use the line number attached to the start of a function definition - and the line number of commands to update line_number while a - function is executing - - 8/6 - --- -config.h, config.h.mini, cpp-Makefile - - made ONESHOT a configuration option rather than a cpp define in - cpp-Makefile - -builtins/fc.def, builtins/getopts.def - - removed the code that defines NULL if undefined -- these files - include general.h, which already does that - -lib/posixheaders/stdc.h - - new file containing macros so that functions can be defined with - prototypes using the __P macro and compile on both ANSI C and - `traditional' C compilers - -lib/malloc/malloc.c - - changed the ASSERT macro to use a new __STRING define when calling - botch(), so that ANSI C systems see the correct error string - rather than `p' (unfortunately, the MAGICx constants are expanded - in the string passed to botch()) - - 8/7 - --- -bashline.c, execute_cmd.c, variables.c, parse.y, make_cmd.c, jobs.c - - removed extern declarations of functions already declared as extern - in bash header files - -execute_cmd.c - - include lib/tilde/tilde.h - - include builtins/common.h - - include builtins/builtext.h for the extern declarations for the - shell builtins - - moved vfree() to general.c - -builtins/common.c - - made dotted_filename static - - made builtin_address_internal static - -builtins/common.h - - new file with extern declarations for all functions defined in - common.c - -variables.h - - added extern declaration of qsort_string_compare, assign_in_env - -mailcheck.c - - removed full_pathname (), since it is a function of general use - -general.c - - moved full_pathname () here from mailcheck.c - - moved vfree() here from execute_cmd.c - -general.h - - added extern declaration for full_pathname - -subst.h - - added extern declaration for dequote_string - -jobs.h - - added external declarations for wait_for_background_pids and - wait_for_single_pid - -parse.y - - new function: find_reserved_word - -builtins/{alias,builtin,cd,exec,exit,hash,read,setattr,shift,trap,wait}.def - - removed extern declarations, replaced with inclusion of common.h - -builtins/type.def - - include common.h, remove extraneous extern declarations - - call find_reserved_word instead of searching word_token_alist - -builtins/bashgetopt.h - - new file, extern declarations for stuff defined in bashgetopt.c - -builtins/{bind,command,fc,histctl,jobs,setattr}.def - - include bashgetopt, removed internal getopt extern declarations - -cpp-Makefile, builtins/Makefile - - add dependencies on bashgetopt.h to builtins - - add dependencies on common.h to builtins - -nojobs.c - - wait_for_background_pids should be void - - 8/9 - --- -builtins/common.c - - new function, double_quote(), to double-quote strings - -documentation/bash.1 - - added text specifying return value of `command -[vV]' - - added description of the -E option to echo - - added text specifying that `enable' accepts -a in place of -all - - 8/10 - ---- -shell.c - - since non-Posix systems with job control use top_level_mask, - it needs to be initialized correctly by - initialize_terminating_signals - -mailcheck.c - - fixed mailpath-parsing code to correctly handle backslash-quoted - `?' and `%' in the $MAILPATH entries by adding a function - parse_mailpath_spec to return a pointer to the first unquoted - `?' or `%' and having remember_mail_dates and check_mail call it - -documentation/bash_builtins.1 - - new man page for bash builtins, from jaws@pangaea.dme.nt.gov.au - (implemented by using number registers as flags and sourcing - bash.1) - - 8/16 - ---- -bashline.c - - have maybe_make_readline_line use rl_delete_text rather than - rl_kill_text because the text need not be saved on the kill - ring - - 8/17 - ---- -jobs.h - - don't include extern declarations for fork(), getpid(), or - getpgrp() if __SVR4_2__ is defined (Unixware, SVR4.2). - __SVR4_2__ used as in siglist.h - -test.c - - don't include extern declarations for getegid(), getgid(), - or geteuid() if __SVR4_2__ is defined (Unixware, SVR4.2) - - 8/18 - ---- -execute_cmd.c - - don't check that the current directory in the path is `.' if - we've already found `.' in the path in find_user_command_internal - - new function make_full_pathname, to glue `path' and `name' - together in find_user_command_internal rather than using sprintf, - which is very slow - - 8/19 - ---- - -support/mksysdefs - - packaged all of the uname calls into one block at the top of the - script; uname sets up some script variables: - - UNAME - UNAME_R - UNAME_M - RELEASE - LEVEL - - make sure machines running SVR4.2 have __SVR4_2__ defined - -machines.h - - for i386 machines running SVR4.2, make sure that __SVR4_2__ is - added to SYSDEP_CFLAGS - -test.c - - changed the test_exit define to use the do { ... } while(0) idiom - - made GID_T and UID_T be int for BSD/386, since that's what - getgroups() returns - - cast both sides of a test to UID_T or GID_T to make sure we're - on the same page when testing - -lib/readline/bind.c, lib/readline/readline.c - - fixes to deal with the Cray's pointers of different sizes -- - pointers to functions are a different size than pointers to - structs - - 8/20 - ---- -machines.h, test.c, jobs.h, siglist.h, support/mksysdefs - - changed __SVR4_2__ to USGr4_2 - -support/getcppsyms.c - - added support for recognizing __SVR4_2__ and USGr4_2 - - 8/23 - ---- - -variables.c - - added a static variable that keeps track of whether or not - function local variables have been created with the `local' - or `typeset' builtins and short-circuits the call to - kill_all_local_variables if none have been created - -lib/readline/vi_mode.c - - extern declaration for rl_vi_check and rl_digit_loop1 - - declare `count' argument to rl_vi_delete - - made rl_vi_set_last a void function - -lib/readline/bind.c - - declare `count' argument to strnicmp - -lib/readline/readline.c - - made rl_add_undo, free_undo_list void functions - -lib/readline/readline.c, lib/readline/bind.c, lib/readline/search.c, -lib/readline/vi_mode.c - - changed return; to return 0; and added explicit returns to many - `int' returning functions that didn't return a value - - 8/24 - ---- -builtins/ulimit.def - - check for RLIMIT_RSS being defined before trying to use it - -machines.h - - fixes to cray machine description from Bill Jones - -builtins/common.c - - make all of the dollar_arg_stack stuff static - -lib/malloc/alloca.c - - new version, from emacs 19 - - 8/26 - ---- -lib/readline/complete.c - - use double quotes to quote replacement text with word breaks - rather than single quotes, which inhibit tilde expansion - -lib/readline/vi_keymap.c - - changed TAB to default to completion for the VI insert keymap - -bashline.c - - new function: posix_readline_initialize to make any changes - to the readline keymaps when switching into and out of Posix.2 - mode - - call posix_readline_initialize from initialize_readline - -subst.c - - call posix_readline_initialize from sv_strict_posix - - 8/27 - ---- -subst.c - - changed USE_GLOB_LIBRARY to USE_POSIX_GLOB_LIBRARY to make the - intent clear - -shell.c - - new function, issock(fd) returns 1 if FD is a socket according - to fstat(2) -- note that this only works if S_ISSOCK is defined - in posixstat.h - - run_startup_files calls issock to see whether or not to run - the .bashrc - -input.c - - include general.h for declarations of xmalloc, xrealloc - -lib/tilde/tilde.c, lib/tilde/tilde.h - - tilde_expansion_failure_hook is now a pointer to a CPFunction, - since that's how it's used - -lib/readline/history.c - - include or as appropriate - - 8/29 - ---- -machines.h - - avoid `M_MACHINE redefined' messages in the hpux description - - 8/30 - ---- -jobs.h - - added #defines for sigfillset, sigdelset, and sigismember to fill - out the Posix.1 signal functions - -general.h - - add an extern declaration for getwd() - -general.c - - NeXT machines already have a vfree() with a declaration in stdlib.h, - so don't define our vfree() on those systems - -cpp-Makefile - - NeXT machines don't have a link to `gcc', so make sure that - HAVE_GCC is not defined on those machines, even if __GNUC__ is - -lib/readline/readline.h, lib/readline/complete.c - - rl_attempted_completion_function is now declared as a pointer to - a CPPFunction, since that's how it is used - -bashline.c, bracecomp.c - - fixed assignments to rl_attempted_completion_function, since it's - now a pointer to a CPPFunction - -lib/readline/keymaps.h - - fleshed out declarations of function types inside __FUNCTION_DEF - macro to match other files - -lib/readline/readline.h - - removed typedefs for function pointer types, since they are now - declared in keymaps.h - - 8/31 - ---- - -lib/readline/complete.c - - if there is more than one match, don't quote the replacement - text unless the matching prefix has a word break character. The - old code quoted the replacement if any of the possible replacements - had a word break character - -builtins/alias.def - - fixed memory leak -- free the array returned by all_aliases when - alias is called without arguments - -builtins/read.def - - fixed memory leak -- need to free return value from - string_list_dollar_star - -builtins/fc.def - - fixed memory leak -- need to free return value from fc_readline - -builtins/hash.def - - fixed memory leak -- need to free return value from - find_user_command - -builtins/alias.def - - fixed memory leak -- remove_alias needs to free the key in the - hash table entry it deletes - -execute_cmd.c - - fixed memory leak in find_user_command_in_path: if we're not - returning full_path, we need to free it - -lib/readline/bind.def - - fixed memory leak -- need to free the returned arrays from - recursive calls to invoking_keyseqs_in_map - - 9/1 - --- -builtins/bind.def - - return failure immediately if no_line_editing is set - -builtins/shift.def - - fixed memory leak -- make sure all of the word list element from - rest_of_args is freed when shifting it into dollar_vars[9] - -builtins/hash.def - - fixed memory leak -- only need to save the key for a particular - hash item once in remember_filename - -expr.c - - fixed memory leak -- free `tokstr' after performing the assignment - statement and before assigning to it with savestring - -execute_cmd.c - - fixed memory leak -- need to free the copy of the command line - passed to make_child in execute_disk_command if the command is - not found - -lib/readline/display.c - - fixed call to tgoto in delete_chars -- caused the delete to fail - when using term_DC on some systems - -[code made available via ftp -- first redistributable version] diff --git a/CWRU/old-conf/Makefile b/CWRU/old-conf/Makefile deleted file mode 100644 index 533131960..000000000 --- a/CWRU/old-conf/Makefile +++ /dev/null @@ -1,116 +0,0 @@ -# Hey Emacs, this Makefile is in -*- makefile -*- mode! -# -# Makefile for Bash. -# If your cpp doesn't like -P, just get rid of it (the -P, not cpp). -# If you wish to use Gcc, then type `make CC=gcc CPPNAME='$(CC) -E''. -# If you wish to use GNU's Make, then change `MAKE'. -# If you don't like the destination, then change `bindir'. -# The file that you most likely want to look at is cpp-Makefile. -# -# If you haven't read README, now might be a good time. - -# Include some boilerplate Gnu makefile definitions. -prefix = /usr/local -exec_prefix = $(prefix) -bindir = $(exec_prefix)/bin -srcdir = . -VPATH = $(srcdir) - -# MAKE = make -RM = rm -f -SHELL = /bin/sh -GAWK = awk -# GAWK = gawk - -# Force CPPNAME to be the name of your C preprocesor if Bash can't -# find it. For instance, `CPPNAME=/usr/libexec/cpp' on 4.4 BSD. -# If all else fails, set CPPNAME=$(CC) -E -CPPNAME = -CPP = `/bin/sh $(CPPMAGIC) $(GETCPPSYMS) "$(CPPNAME)"` -P - -CPP_MAKEFILE = $(srcdir)/cpp-Makefile -ANSI_MAKEFILE = ansi-Makefile - -# CPPFLAGS = $(SYSTEM) $(CPP_DEFINES) -CPPFLAGS = $(CPP_DEFINES) -I. -I$(srcdir) -CPP_ARGS = -DCPP_CC="$(CC)" - -SUPPORTDIR = ./support/ -SUPPORTSRC = $(srcdir)/support/ - -MKSYSDEFS = $(SUPPORTSRC)mksysdefs -CPPMAGIC = $(SUPPORTSRC)cppmagic -CAT_S = $(SUPPORTSRC)cat-s -GETCPPSYMS = $(SUPPORTDIR)getcppsyms -GETCPPSYMS_SRC = $(SUPPORTSRC)getcppsyms.c - -# Here is a command which compresses runs of multiple blank lines to a -# single blank line. "cat -s" works for BSD systems, but not for USG -# systems. You can use an awk script if you like. If you have too -# much trouble with this, just forget it. It is for making -# bash-Makefile pretty and readable; something that isn't strictly -# necessary. -# SQUASH_BLANKS = cat -s -# -SQUASH_BLANKS = $(GAWK) -f $(CAT_S) - -all: .notified bash-Makefile - $(MAKE) -f bash-Makefile $(MFLAGS) $(MAKEARGS) srcdir=$(srcdir) \ - prefix=$(prefix) - -bash-Makefile: $(CPP_MAKEFILE) Makefile machines.h sysdefs.h config.h - @-if [ -f ansi-Makefile ]; then \ - echo "cp ansi-Makefile tmp-Makefile.c"; \ - cp ansi-Makefile tmp-Makefile.c; else \ - echo "cp $(CPP_MAKEFILE) tmp-Makefile.c"; \ - cp $(CPP_MAKEFILE) tmp-Makefile.c; \ - fi - $(RM) $(GETCPPSYMS) - $(SHELL) $(SUPPORTSRC)mkdirs support - $(CC) -o $(GETCPPSYMS) $(GETCPPSYMS_SRC) - rm -f bash-Makefile - @$(SHELL) -c 'echo $(CPP) $(CPPFLAGS) $(CPP_ARGS) tmp-Makefile.c \| $(SQUASH_BLANKS) \> bash-Makefile' - @$(SHELL) -c '$(CPP) $(CPPFLAGS) $(CPP_ARGS) tmp-Makefile.c | $(SQUASH_BLANKS) >bash-Makefile' - rm -f tmp-Makefile.c - @test -s bash-Makefile || { rm -f bash-Makefile ; exit 1; } - -sysdefs.h: $(MKSYSDEFS) - $(SHELL) $(MKSYSDEFS) -s $(srcdir) - -# This is also performed by support/mksysdefs, but there's no way to change -# it if cpp-Makefile is changed without changing anything else, since there -# are no dependencies. This lets you run `make ansi-Makefile'. -ansi-Makefile: $(CPP_MAKEFILE) - grep -v '/\*\*/' $(CPP_MAKEFILE) > $@ - -# Subsequent lines contain targets that are correctly handled by an -# existing bash-Makefile. - -install uninstall newversion architecture: bash-Makefile - $(MAKE) -f bash-Makefile $(MFLAGS) $(MAKEARGS) bindir=$(bindir) \ - prefix=$(prefix) $@ - -tests DEFINES tags documentation: bash-Makefile directory-frob - $(MAKE) -f bash-Makefile $(MFLAGS) $(MAKEARGS) bindir=$(bindir) $@ - -clean distclean realclean: bash-Makefile directory-frob - rm -f .notified - $(MAKE) -f bash-Makefile $(MFLAGS) $(MAKEARGS) bindir=$(bindir) $@ - -directory-frob: - -.NOEXPORT: - -.notified: - @echo "" - @echo " You are about to make this version of GNU Bash for" - @echo " this architecture for the first time. If you haven't" - @echo " yet read the README file, you may want to do so. If" - @echo " you wish to report a bug in Bash, or in the installation" - @echo " procedure, please run the bashbug script and include:" - @echo "" - @echo " * a description of the bug," - @echo " * a recipe for recreating the bug reliably," - @echo " * a fix for the bug if you have one!" - @echo "" - @touch .notified diff --git a/CWRU/old-conf/Makefile.builtins b/CWRU/old-conf/Makefile.builtins deleted file mode 100644 index 1d486e945..000000000 --- a/CWRU/old-conf/Makefile.builtins +++ /dev/null @@ -1,268 +0,0 @@ -# This Makefile for building libbuiltins.a is in -*- text -*- for Emacs. -# -MKBUILTINS = mkbuiltins -RANLIB = ranlib -CFLAGS = -g -I.. -I. -SHELL = /bin/sh -# CC = cc -AR = ar -RM = rm -f -CP = cp - -srcdir = . -VPATH = .:$(srcdir) - -.SUFFIXES: -.SUFFIXES: .def .c .o -# How to make a .o file from a .def file. -.def.o: - $(RM) $@ - ./$(MKBUILTINS) $(DIRECTDEFINE) $< - $(CC) -c $(CFLAGS) $(CPPFLAGS) $*.c || ( $(RM) $*.c ; exit 1 ) - $(RM) $*.c - -# How to make a .c file from a .def file. -.def.c: - $(RM) $@ - ./$(MKBUILTINS) $(DIRECTDEFINE) $< - -# Here is a rule for making .o files from .c files that does not -# force the type of the machine (like -M_MACHINE) into the flags. -.c.o: - $(RM) $@ - $(CC) -c $(CFLAGS) $(CPPFLAGS) $< - -DEFS = $(srcdir)/alias.def $(srcdir)/bind.def $(srcdir)/break.def \ - $(srcdir)/builtin.def $(srcdir)/cd.def $(srcdir)/colon.def \ - $(srcdir)/command.def $(srcdir)/declare.def $(srcdir)/echo.def \ - $(srcdir)/enable.def $(srcdir)/eval.def $(srcdir)/getopts.def \ - $(srcdir)/exec.def $(srcdir)/exit.def $(srcdir)/fc.def \ - $(srcdir)/fg_bg.def $(srcdir)/hash.def $(srcdir)/help.def \ - $(srcdir)/history.def $(srcdir)/jobs.def $(srcdir)/kill.def \ - $(srcdir)/let.def $(srcdir)/read.def $(srcdir)/return.def \ - $(srcdir)/set.def $(srcdir)/setattr.def $(srcdir)/shift.def \ - $(srcdir)/source.def $(srcdir)/suspend.def $(srcdir)/test.def \ - $(srcdir)/times.def $(srcdir)/trap.def $(srcdir)/type.def \ - $(srcdir)/ulimit.def $(srcdir)/umask.def $(srcdir)/wait.def \ - $(srcdir)/reserved.def $(srcdir)/pushd.def $(srcdir)/shopt.def - -STATIC_SOURCE = common.c getopt.c bashgetopt.c getopt.h - -OFILES = builtins.o \ - alias.o bind.o break.o builtin.o cd.o colon.o command.o \ - common.o declare.o echo.o enable.o eval.o exec.o exit.o \ - fc.o fg_bg.o hash.o help.o history.o jobs.o kill.o let.o \ - pushd.o read.o return.o set.o setattr.o shift.o source.o \ - suspend.o test.o times.o trap.o type.o ulimit.o umask.o \ - wait.o getopts.o shopt.o getopt.o bashgetopt.o - -THINGS_TO_TAR = $(DEFS) $(STATIC_SOURCE) Makefile ChangeLog - -CREATED_FILES = builtext.h builtins.c psize.aux pipesize.h - -all: $(MKBUILTINS) libbuiltins.a - -libbuiltins.a: $(MKBUILTINS) $(OFILES) - $(RM) $@ - $(AR) cq $@ $(OFILES) - -$(RANLIB) $@ - -builtext.h builtins.c: $(MKBUILTINS) $(DEFS) - $(RM) builtext.h builtins.c - ./$(MKBUILTINS) -externfile builtext.h -structfile builtins.c \ - -noproduction $(DIRECTDEFINE) $(DEFS) - -mkbuiltins: $(srcdir)/mkbuiltins.c ../config.h - $(CC) $(CFLAGS) -o $(MKBUILTINS) $(srcdir)/mkbuiltins.c - -ulimit.o: ulimit.def pipesize.h - -pipesize.h: psize.aux - $(SHELL) $(srcdir)/psize.sh > pipesize.h - -psize.aux: psize.c - $(CC) $(CFLAGS) -o $@ $(srcdir)/psize.c - -documentation: builtins.texi - -$(OFILES): $(MKBUILTINS) ../config.h - -builtins.texi: $(MKBUILTINS) - ./$(MKBUILTINS) -documentonly $(DEFS) - -clean: - $(RM) $(OFILES) $(CREATED_FILES) $(MKBUILTINS) libbuiltins.a - -alias.o: alias.def -bind.o: bind.def -break.o: break.def -builtin.o: builtin.def -cd.o: cd.def -colon.o: colon.def -command.o: command.def -declare.o: declare.def -echo.o: echo.def -enable.o: enable.def -eval.o: eval.def -exec.o: exec.def -exit.o: exit.def -fc.o: fc.def -fg_bg.o: fg_bg.def -hash.o: hash.def -help.o: help.def -history.o: history.def -jobs.o: jobs.def -kill.o: kill.def -let.o: let.def -pushd.o: pushd.def -read.o: read.def -return.o: return.def -set.o: set.def -setattr.o: setattr.def -shift.o: shift.def -source.o: source.def -suspend.o: suspend.def -test.o: test.def -times.o: times.def -trap.o: trap.def -type.o: type.def -umask.o: umask.def -wait.o: wait.def -getopts.o: getopts.def -reserved.o: reserved.def - -common.o: ../shell.h ../command.h ../config.h ../memalloc.h ../general.h -common.o: ../variables.h ../input.h hashcom.h ../bashhist.h -common.o: ../quit.h ../unwind_prot.h ../maxpath.h ../jobs.h ../builtins.h -common.o: ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -common.o: ../execute_cmd.h ../error.h -alias.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -alias.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -alias.o: ../shell.h ../unwind_prot.h ../variables.h common.h ../maxpath.h -bind.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -bind.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -bind.o: ../maxpath.h ../bashline.h -bind.o: ../shell.h ../unwind_prot.h ../variables.h bashgetopt.h -break.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -break.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -break.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -builtin.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -builtin.o: ../quit.h common.h ../maxpath.h -builtin.o: ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -builtin.o: ../shell.h ../unwind_prot.h ../variables.h -cd.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -cd.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -cd.o: ../shell.h ../unwind_prot.h ../variables.h common.h ../maxpath.h -command.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -command.o: ../quit.h bashgetopt.h ../maxpath.h -command.o: ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -command.o: ../shell.h ../unwind_prot.h ../variables.h -declare.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -declare.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -declare.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -echo.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -echo.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -echo.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -enable.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -enable.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -enable.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -eval.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -eval.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -eval.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -exec.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -exec.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -exec.o: ../shell.h ../unwind_prot.h ../variables.h common.h ../execute_cmd.h -exec.o: ../maxpath.h ../flags.h -exit.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -exit.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -exit.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -fc.o: ../builtins.h ../command.h bashgetopt.h ../bashhist.h -fc.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -fc.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -fc.o: ../flags.h ../unwind_prot.h ../variables.h ../shell.h ../maxpath.h -fg_bg.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -fg_bg.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -fg_bg.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -getopts.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -getopts.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -getopts.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -hash.o: ../builtins.h ../command.h ../quit.h ../execute_cmd.h -hash.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -hash.o: ../shell.h ../unwind_prot.h ../variables.h common.h ../maxpath.h -help.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -help.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -help.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -history.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -history.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -history.o: ../filecntl.h ../shell.h ../unwind_prot.h ../variables.h -history.o: ../bashhist.h ../maxpath.h -inlib.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -inlib.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -inlib.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -jobs.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -jobs.o: ../quit.h bashgetopt.h ../maxpath.h -jobs.o: ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -jobs.o: ../shell.h ../unwind_prot.h ../variables.h -kill.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -kill.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -kill.o: ../shell.h ../trap.h ../unwind_prot.h ../variables.h ../maxpath.h -let.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -let.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -let.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -pushd.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -pushd.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -pushd.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h common.h -read.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -read.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -read.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -return.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -return.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -return.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -set.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -set.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -set.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -setattr.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -setattr.o: ../quit.h common.h bashgetopt.h ../maxpath.h -setattr.o: ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -setattr.o: ../shell.h ../unwind_prot.h ../variables.h -shift.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -shift.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -shift.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -source.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -source.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -source.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -suspend.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -suspend.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -suspend.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -test.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -test.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -test.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -times.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -times.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -times.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -trap.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -trap.o: ../quit.h common.h ../maxpath.h -trap.o: ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -trap.o: ../shell.h ../unwind_prot.h ../variables.h ../execute_cmd.h -type.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -type.o: ../quit.h common.h ../maxpath.h -type.o: ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -type.o: ../shell.h ../unwind_prot.h ../variables.h -ulimit.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -ulimit.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -ulimit.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -umask.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -umask.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -umask.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -wait.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -wait.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -wait.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -shopt.o: ../command.h ../config.h ../memalloc.h ../error.h ../general.h -shopt.o: ../quit.h ../dispose_cmd.h ../make_cmd.h ../subst.h ../externs.h -shopt.o: ../shell.h ../unwind_prot.h ../variables.h ../maxpath.h -shopt.o: common.h bashgetopt.h -bashgetopt.o: ../bashansi.h ../ansi_stdlib.h -mkbuiltins.o: ../bashansi.h ../ansi_stdlib.h -fc.o: ../bashansi.h ../ansi_stdlib.h - -#bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h diff --git a/CWRU/old-conf/Makefile.documentation b/CWRU/old-conf/Makefile.documentation deleted file mode 100644 index 3096a51bd..000000000 --- a/CWRU/old-conf/Makefile.documentation +++ /dev/null @@ -1,119 +0,0 @@ -# This Makefile is for the Bash/documentation directory -*- text -*-. -# -CP = cp -RM = rm -f - -INSTALL_DATA = install -c -m 644 - -DOC_SUPPORT = ../lib/doc-support/ -TEXINDEX = $(DOC_SUPPORT)texindex -TEXINDSRC = $(DOC_SUPPORT)texindex.c -TEX = tex -QUIETPS = #set this to -q to shut up dvips -DVIPS = dvips -D 300 $(QUIETPS) -o $@ # tricky -TEXINPUTS = ./../lib/readline/doc -MAKEINFO = makeinfo - -# Change to groff -Tascii if you don't have nroff -NROFF = nroff - -# This should be a program that converts troff to postscript -GROFF = groff - -HSUSER = ./../lib/readline/doc/hsuser.texinfo -RLUSER = ./../lib/readline/doc/rluser.texinfo - -.SUFFIXES: .0 .1 .3 .ms .ps .txt .dvi - -.1.ps: - $(RM) $@ - -${GROFF} -man $< > $@ - -.1.0: - $(RM) $@ - -${NROFF} -man $< > $@ - -.ms.ps: - $(RM) $@ - -${GROFF} -ms $< > $@ - -.ms.txt: - $(RM) $@ - -${NROFF} -ms $< > $@ - -.3.ps: - $(RM) $@ - -${GROFF} -man $< > $@ - -.3.0: - $(RM) $@ - -${NROFF} -man $< > $@ - -all: ps info dvi text - -ps: bash.ps builtins.ps readline.ps article.ps -dvi: features.dvi features.ps -info: features.info -text: bash.0 builtins.0 readline.0 - -features.dvi: features.texi $(HSUSER) $(RLUSER) - TEXINPUTS=.:$(TEXINPUTS):$$TEXINPUTS $(TEX) features.texi - $(TEXINDEX) features.?? - TEXINPUTS=.:$(TEXINPUTS):$$TEXINPUTS $(TEX) features.texi - -features.ps: features.dvi - $(RM) $@ - $(DVIPS) features.dvi - -features.info: features.texi $(HSUSER) $(RLUSER) - $(MAKEINFO) --no-split -I$(TEXINPUTS) features.texi - -bash.dvi: $(TEXINDEX) bash.texinfo $(HSUSER) $(RLUSER) - TEXINPUTS=.:$(TEXINPUTS):$$TEXINPUTS $(TEX) bash.texinfo - $(TEXINDEX) bash.?? - TEXINPUTS=.:$(TEXINPUTS):$$TEXINPUTS $(TEX) bash.texinfo - -bashman.ps: bash.dvi - rm -f $@ - $(DVIPS) bash.dvi - -bash.txt: bash.1 -bash.ps: bash.1 -builtins.ps: builtins.1 bash.1 -builtins.txt: builtins.1 bash.1 -readline.txt: readline.3 -readline.ps: readline.3 -article.ps: article.ms - -$(TEXINDEX): $(TEXINDSRC) - (cd $(DOC_SUPPORT); $(MAKE) $(MFLAGS) texindex) - -hsuser.texinfo: ../lib/readline/doc/hsuser.texinfo - ln -s ../lib/readline/doc/hsuser.texinfo . - -rluser.texinfo: ../lib/readline/doc/rluser.texinfo - ln -s ../lib/readline/doc/rluser.texinfo . - -clean: - rm -f *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \ - *.fns *.kys *.tps *.vrs *.o core texindex rluser.texinfo hsuser.texinfo - -distclean: - rm -f *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \ - *.dvi *.info *.info-* *.fns *.kys *.tps *.vrs *.o core texindex \ - rluser.texinfo hsuser.texinfo - -realclean: clean - -install: all - -[ -d $(mandir) ] || mkdir $(mandir) - $(INSTALL_DATA) bash.1 $(mandir) - sed 's:so bash.1:so man1/bash.1:' < builtins.1 > $(mandir)/bash_builtins.1 - -[ -d $(man3dir) ] || mkdir $(man3dir) - $(INSTALL_DATA) readline.3 $(man3dir) - -[ -d $(infodir) ] || mkdir $(infodir) - $(INSTALL_DATA) features.info $(infodir)/bash.info - -uninstall: - $(RM) $(mandir)/bash.1 $(mandir)/bash_builtins.1 - $(RM) $(man3dir)/readline.3 $(infodir)/bash.info diff --git a/CWRU/old-conf/Makefile.lib.glob b/CWRU/old-conf/Makefile.lib.glob deleted file mode 100644 index 467a510f5..000000000 --- a/CWRU/old-conf/Makefile.lib.glob +++ /dev/null @@ -1,92 +0,0 @@ -## -*- text -*- #################################################### -# # -# Makefile for the GNU Glob Library. # -# # -#################################################################### - -# This Makefile is hand made from a template file, found in -# ../template. Each library must provide several Makefile -# targets: `all', `clean', `documentation', `install', and -# `what-tar'. The `what-tar' target reports the names of the -# files that need to be included in a tarfile to build the full -# code and documentation for this library. - -# Please note that the values for INCLUDES, CC, AR, RM, CP, -# RANLIB, and selfdir are passed in from ../Makefile, and do -# not need to be defined here. -srcdir = . -VPATH = .:$(srcdir) - -# Here is a rule for making .o files from .c files that doesn't force -# the type of the machine (like -sun3) into the flags. -.c.o: - $(CC) -c $(CFLAGS) $(INCLUDES) $(LOCAL_DEFINES) $(CPPFLAGS) $< - -# LOCAL_DEFINES are flags that are specific to this library. -# Define -DUSG if you are using a System V operating system. -LOCAL_DEFINES = $(LOCAL_INCLUDES) #-DUSG - -# For libraries which include headers from other libraries. -LOCAL_INCLUDES = -I.. - -# The name of the library target. -LIBRARY_NAME = libglob.a - -# The C code source files for this library. -CSOURCES = $(srcdir)glob.c $(srcdir)fnmatch.c - -# The header files for this library. -HSOURCES = $(srcdir)fnmatch.h - -OBJECTS = glob.o fnmatch.o - -# The texinfo files which document this library. -DOCSOURCE = doc/glob.texi -DOCOBJECT = doc/glob.dvi -DOCSUPPORT = doc/Makefile -DOCUMENTATION = $(DOCSOURCE) $(DOCOBJECT) $(DOCSUPPORT) - -SUPPORT = Makefile ChangeLog $(DOCSUPPORT) - -SOURCES = $(CSOURCES) $(HSOURCES) $(DOCSOURCE) - -THINGS_TO_TAR = $(SOURCES) $(SUPPORT) - -###################################################################### - -all: $(LIBRARY_NAME) - -$(LIBRARY_NAME): $(OBJECTS) - $(RM) -f $@ - $(AR) cq $@ $(OBJECTS) - -[ -n "$(RANLIB)" ] && $(RANLIB) $@ - -what-tar: - @for file in $(THINGS_TO_TAR); do \ - echo $(selfdir)$$file; \ - done - -documentation: force - -(cd doc; $(MAKE) $(MFLAGS)) -force: - -# The rule for 'includes' is written funny so that the if statement -# always returns TRUE unless there really was an error installing the -# include files. -install: - -$(MV) $(bindir)/$(LIBRARY_NAME) $(bindir)/$(LIBRARY_NAME)-old - $(CP) $(LIBRARY_NAME) $(bindir)/$(LIBRARY_NAME) - -[ -n "$(RANLIB)" ] && $(RANLIB) -t $(bindir)/$(LIBRARY_NAME) - -clean: - rm -f $(OBJECTS) $(LIBRARY_NAME) - -(cd doc; $(MAKE) $(MFLAGS) clean) - - -###################################################################### -# # -# Dependencies for the object files which make up this library. # -# # -###################################################################### - -fnmatch.o: fnmatch.c fnmatch.h diff --git a/CWRU/old-conf/Makefile.lib.malloc b/CWRU/old-conf/Makefile.lib.malloc deleted file mode 100644 index c6a7b0eff..000000000 --- a/CWRU/old-conf/Makefile.lib.malloc +++ /dev/null @@ -1,33 +0,0 @@ -# Skeleton Makefile for the GNU malloc code -# -# Maybe this should really create a library instead of just compiling -# source files - -srcdir = . -VPATH = .:$(srcdir) - -.c.o: - $(CC) $(CFLAGS) $(CPPFLAGS) -c $< - -.s.o: - $(CC) $(CFLAGS) $(CPPFLAGS) -c $< - -MALLOC_SOURCE = malloc.c - -ALLOCA_SOURCE = alloca.c -ALLOCA_OBJECT = alloca.o - -libmalloc.a: malloc.o $(ALLOCA) - rm -f $@ - ar cq $@ malloc.o $(ALLOCA) - -[ -n "$(RANLIB)" ] && $(RANLIB) $@ - -malloc.o: malloc.c getpagesize.h - -$(ALLOCA_OBJECT): $(ALLOCA_SOURCE) - -alloca.o: $(ALLOCA_SOURCE) - $(CC) $(CFLAGS) $(CPPFLAGS) -c $< - @- if [ "$(ALLOCA_OBJECT)" != alloca.o ]; then \ - mv $(ALLOCA_OBJECT) alloca.o >/dev/null 2>&1 ; \ - fi diff --git a/CWRU/old-conf/Makefile.lib.readline b/CWRU/old-conf/Makefile.lib.readline deleted file mode 100644 index 7a12a1fd8..000000000 --- a/CWRU/old-conf/Makefile.lib.readline +++ /dev/null @@ -1,154 +0,0 @@ -## -*- text -*- #################################################### -# # -# Makefile for the GNU Readline and History Libraries. # -# # -#################################################################### - -srcdir = . -VPATH = .:$(srcdir) - -INSTALL = install -c -INSTALL_PROGRAM = ${INSTALL} -INSTALL_DATA = ${INSTALL} -m 644 - -RANLIB = ranlib -AR = ar -RM = rm -CP = cp -MV = mv - -# See the file STANDALONE for the -D defines that readline understands -DEFS = -# For libraries which include headers from other libraries. -LOCAL_INCLUDES = -I. -I.. - -CPPFLAGS = $(DEFS) $(LOCAL_INCLUDES) - -# Here is a rule for making .o files from .c files that doesn't force -# the type of the machine (like -sun3) into the flags. -.c.o: - $(CC) -c $(CPPFLAGS) $(CFLAGS) $< - -# The name of the main library target. -LIBRARY_NAME = libreadline.a - -# The C code source files for this library. -CSOURCES = $(srcdir)readline.c $(srcdir)funmap.c $(srcdir)keymaps.c \ - $(srcdir)vi_mode.c $(srcdir)parens.c $(srcdir)rltty.c \ - $(srcdir)complete.c $(srcdir)bind.c $(srcdir)isearch.c \ - $(srcdir)display.c $(srcdir)signals.c $(srcdir)emacs_keymap.c \ - $(srcdir)vi_keymap.c $(srcdir)util.c $(srcdir)kill.c \ - $(srcdir)undo.c $(srcdir)macro.c $(srcdir)input.c \ - $(srcdir)callback.c $(srcdir)xmalloc.c \ - $(srcdir)history.c $(srcdir)histsearch.c $(srcdir)histexpand.c \ - $(srcdir)histfile.c \ - $(srcdir)tilde.c \ - -# The header files for this library. -HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h histlib.h \ - posixstat.h tilde.h rlconf.h - -HISTOBJ = history.o histexpand.o histfile.o histsearch.o -TILDEOBJ= tilde.o -OBJECTS = readline.o vi_mode.o funmap.o keymaps.o parens.o search.o \ - rltty.o complete.o bind.o isearch.o display.o signals.o \ - util.o kill.o undo.o macro.o input.o callback.o xmalloc.o \ - $(HISTOBJ) $(TILDEOBJ) - -# The texinfo files which document this library. -DOCSOURCE = doc/rlman.texinfo doc/rltech.texinfo doc/rluser.texinfo -DOCOBJECT = doc/readline.dvi -DOCSUPPORT = doc/Makefile -DOCUMENTATION = $(DOCSOURCE) $(DOCOBJECT) $(DOCSUPPORT) - -SUPPORT = Makefile ChangeLog $(DOCSUPPORT) examples/[-a-z.]* - -SOURCES = $(CSOURCES) $(HSOURCES) $(DOCSOURCE) - -THINGS_TO_TAR = $(SOURCES) $(SUPPORT) - -INSTALLED_HEADERS = readline.h chardefs.h keymaps.h history.h tilde.h - -########################################################################## - -all: libreadline.a libhistory.a - -libreadline.a: $(OBJECTS) - $(RM) -f $@ - $(AR) cq $@ $(OBJECTS) - -[ -n "$(RANLIB)" ] && $(RANLIB) $@ - -libhistory.a: $(HISTOBJ) xmalloc.o - $(RM) -f $@ - $(AR) cq $@ $(HISTOBJ) xmalloc.o - -[ -n "$(RANLIB)" ] && $(RANLIB) $@ - -documentation: force - [ ! -d doc ] && mkdir doc - (if [ -d doc ]; then cd doc; $(MAKE) $(MFLAGS); fi) - -force: - -# The rule for 'includes' is written funny so that the if statement -# always returns TRUE unless there really was an error installing the -# include files. -install: installdirs libreadline.a - for file in $(INSTALLED_HEADERS) ; do \ - $(INSTALL_DATA) $(srcdir)/$$file $(incdir)/readline ; \ - done - ${INSTALL_DATA} readline.h keymaps.h chardefs.h history.h \ - $(incdir)/readline - -${MV} $(libdir)/libreadline.a $(libdir)/libreadline.old - ${INSTALL_DATA} libreadline.a $(bindir)/libreadline.a - -[ -n "$(RANLIB)" ] && $(RANLIB) -t $(bindir)/libreadline.a - -installdirs: - -[ ! -d $(incdir)/readline ] && { \ - mkdir $(incdir)/readline && chmod 755 $(incdir)/readline; } - -[ ! -d $(libdir) ] && mkdir $(libdir) - -uninstall: - cd $(incdir)/readline && ${RM} -f ${INSTALLED_HEADERS} - cd $(libdir) && ${RM} -f libreadline.a libreadline.old - -clean: - rm -f $(OBJECTS) *.a - (if [ -d doc ]; then cd doc; $(MAKE) $(MFLAGS) $@; fi) - -tags: force - etags $(CSOURCES) $(HSOURCES) - -TAGS: force - ctags -x $(CSOURCES) $(HSOURCES) > $@ - -readline: readline.h rldefs.h chardefs.h -readline: $(OBJECTS) - $(CC) $(CFLAGS) $(CPPFLAGS) $(READLINE_DEFINES) \ - $(LOCAL_INCLUDES) -DTEST -o readline readline.c vi_mode.o funmap.o \ - keymaps.o -ltermcap - -realclean distclean mostlyclean: clean - -# Dependencies -readline.o: readline.c readline.h rldefs.h rlconf.h chardefs.h -readline.o: keymaps.h history.h -vi_mode.o: rldefs.h rlconf.h readline.h history.h -funmap.o: funmap.c readline.h rlconf.h -keymaps.o: keymaps.c emacs_keymap.c vi_keymap.c keymaps.h chardefs.h rlconf.h -history.o: history.h histlib.h -histexpand.o: history.h histlib.h -histsearch.o: history.h histlib.h -histfile.o: history.h histlib.h -isearch.o: readline.h history.h -search.o: readline.h history.h -display.o: readline.h history.h rldefs.h rlconf.h -complete.o: readline.h rldefs.h rlconf.h -rltty.o: rldefs.h rlconf.h readline.h -bind.o: rldefs.h rlconf.h readline.h history.h -signals.o: rldefs.h rlconf.h readline.h history.h -parens.o: readline.h -kill.o: rldefs.h rlconf.h readline.h history.h -macro.o: rldefs.h rlconf.h readline.h history.h -undo.o: rldefs.h rlconf.h readline.h history.h -input.o: rldefs.h rlconf.h readline.h history.h -callback.o: rlconf.h rldefs.h readline.h diff --git a/CWRU/old-conf/Makefile.lib.termcap b/CWRU/old-conf/Makefile.lib.termcap deleted file mode 100644 index bbdf99f2a..000000000 --- a/CWRU/old-conf/Makefile.lib.termcap +++ /dev/null @@ -1,64 +0,0 @@ -## -*- text -*- #################################################### -# # -# Makefile for termcap replacement libbrary. # -# # -#################################################################### - -# Here is a rule for making .o files from .c files that doesn't force -# the type of the machine (like -sun3) into the flags. -.c.o: - $(CC) -c $(CFLAGS) $(LOCAL_INCLUDES) $(CPPFLAGS) $*.c - -# Destination installation directory. The libraries are copied to DESTDIR -# when you do a `make install'. -DESTDIR = /usr/local/lib - -DEBUG_FLAGS = -g -#OPTIMIZE_FLAGS = -O -LDFLAGS = $(DEBUG_FLAGS) -CFLAGS = $(DEBUG_FLAGS) $(OPTIMIZE_FLAGS) - -SHELL = /bin/sh - -# A good alternative is gcc -traditional. -#CC = gcc -traditional -CC = cc -RANLIB = /usr/bin/ranlib -AR = ar -RM = rm -CP = cp - -CSOURCES = termcap.c tparam.c - -SOURCES = $(CSOURCES) - -OBJECTS = termcap.o tparam.o - -DOCUMENTATION = termcap.texinfo - -THINGS_TO_TAR = $(SOURCES) $(DOCUMENTATION) - -########################################################################## - -all: libtermcap.a - -libtermcap.a: $(OBJECTS) - $(RM) -f $@ - $(AR) clq $@ $(OBJECTS) - -[ -n "$(RANLIB)" ] && $(RANLIB) $@ - -termcap.tar: $(THINGS_TO_TAR) - tar -cf $@ $(THINGS_TO_TAR) - -termcap.tar.Z: termcap.tar - compress -f termcap.tar - -install: $(DESTDIR)/libtermcap.a - -clean: - rm -f *.o *.a *.log *.cp *.tp *.vr *.fn *.aux *.pg *.toc - -$(DESTDIR)/libtermcap.a: libtermcap.a - -mv $(DESTDIR)/libtermcap.a $(DESTDIR)/libtermcap.old - cp libtermcap.a $@ - -[ -n "$(RANLIB)" ] && $(RANLIB) -t $@ diff --git a/CWRU/old-conf/Makefile.lib.tilde b/CWRU/old-conf/Makefile.lib.tilde deleted file mode 100644 index b3f4c26a9..000000000 --- a/CWRU/old-conf/Makefile.lib.tilde +++ /dev/null @@ -1,94 +0,0 @@ -## -*- text -*- #################################################### -# # -# Makefile for the GNU Tilde Library. # -# # -#################################################################### - -# This Makefile is hand made from a template file, found in -# ../template. Each library must provide several Makefile -# targets: `all', `clean', `documentation', `install', and -# `what-tar'. The `what-tar' target reports the names of the -# files that need to be included in a tarfile to build the full -# code and documentation for this library. - -# Please note that the values for INCLUDES, CC, AR, RM, CP, -# RANLIB, and selfdir are passed in from ../Makefile, and do -# not need to be defined here. -RM = rm - -srcdir = . -VPATH = .:$(srcdir) - -# Here is a rule for making .o files from .c files that doesn't force -# the type of the machine (like -sun3) into the flags. -.c.o: - $(CC) -c $(CFLAGS) $(INCLUDES) $(LOCAL_DEFINES) $(CPPFLAGS) $< - -# LOCAL_DEFINES are flags that are specific to this library. -# Define -DUSG if you are using a System V operating system. -LOCAL_DEFINES = $(LOCAL_INCLUDES) #-DUSG - -# For libraries which include headers from other libraries. -LOCAL_INCLUDES = -I.. - -# The name of the library target. -LIBRARY_NAME = libtilde.a - -# The C code source files for this library. -CSOURCES = $(srcdir)/tilde.c - -# The header files for this library. -HSOURCES = $(srcdir)/tilde.h - -OBJECTS = tilde.o - -# The texinfo files which document this library. -DOCSOURCE = doc/tilde.texi -DOCOBJECT = doc/tilde.dvi -DOCSUPPORT = doc/Makefile -DOCUMENTATION = $(DOCSOURCE) $(DOCOBJECT) $(DOCSUPPORT) - -SUPPORT = Makefile ChangeLog $(DOCSUPPORT) - -SOURCES = $(CSOURCES) $(HSOURCES) $(DOCSOURCE) - -THINGS_TO_TAR = $(SOURCES) $(SUPPORT) - -###################################################################### - -all: $(LIBRARY_NAME) - -$(LIBRARY_NAME): $(OBJECTS) - $(RM) -f $@ - $(AR) cq $@ $(OBJECTS) - -[ -n "$(RANLIB)" ] && $(RANLIB) $@ - -what-tar: - @for file in $(THINGS_TO_TAR); do \ - echo $(selfdir)$$file; \ - done - -documentation: force - -(cd doc; $(MAKE) $(MFLAGS)) -force: - -# The rule for 'includes' is written funny so that the if statement -# always returns TRUE unless there really was an error installing the -# include files. -install: - -$(MV) $(bindir)/$(LIBRARY_NAME) $(bindir)/$(LIBRARY_NAME)-old - $(CP) $(LIBRARY_NAME) $(bindir)/$(LIBRARY_NAME) - -[ -n "$(RANLIB)" ] && $(RANLIB) -t $(bindir)/$(LIBRARY_NAME) - -clean: - $(RM) -f $(OBJECTS) $(LIBRARY_NAME) - -(cd doc; $(MAKE) $(MFLAGS) clean) - - -###################################################################### -# # -# Dependencies for the object files which make up this library. # -# # -###################################################################### - -tilde.o: tilde.h tilde.c diff --git a/CWRU/old-conf/config.h b/CWRU/old-conf/config.h deleted file mode 100644 index b805d0d2c..000000000 --- a/CWRU/old-conf/config.h +++ /dev/null @@ -1,178 +0,0 @@ -/* config.h -- Configuration file for bash. */ - -/* Copyright (C) 1987,1991 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#if !defined (_CONFIG_H_) -#define _CONFIG_H_ - -#if !defined (BUILDING_MAKEFILE) -#include "memalloc.h" -#endif - -#if defined (HAVE_UNISTD_H) && !defined (BUILDING_MAKEFILE) -# ifdef CRAY -# define word __word -# endif -#include -# ifdef CRAY -# undef word -# endif -#endif - -/* Define JOB_CONTROL if your operating system supports - BSD-like job control. */ -#define JOB_CONTROL - -/* Note that vanilla System V machines don't support BSD job control, - although some do support Posix job control. */ -#if defined (USG) || defined (MINIX) || defined (Minix) -# if !defined (_POSIX_JOB_CONTROL) -# undef JOB_CONTROL -# endif /* !_POSIX_JOB_CONTROL */ -#endif /* USG || Minix || MINIX */ - -/* Define ALIAS if you want the alias features. */ -#define ALIAS - -/* Define PUSHD_AND_POPD if you want those commands to be compiled in. - (Also the `dirs' commands.) */ -#define PUSHD_AND_POPD - -/* Define BRACE_EXPANSION if you want curly brace expansion a la Csh: - foo{a,b} -> fooa foob. Even if this is compiled in (the default) you - can turn it off at shell startup with `-nobraceexpansion', or during - shell execution with `set +o braceexpand'. */ -#define BRACE_EXPANSION - -/* Define READLINE to get the nifty/glitzy editing features. - This is on by default. You can turn it off interactively - with the -nolineediting flag. */ -#define READLINE - -/* Define BANG_HISTORY if you want to have Csh style "!" history expansion. - This is unrelated to READLINE. */ -#define BANG_HISTORY - -/* Define HISTORY if you want to have access to previously typed commands. - - If both HISTORY and READLINE are defined, you can get at the commands - with line editing commands, and you can directly manipulate the history - from the command line. - - If only HISTORY is defined, the `fc' and `history' builtins are - available. */ -#define HISTORY - -#if defined (BANG_HISTORY) && !defined (HISTORY) - /* BANG_HISTORY requires HISTORY. */ -# define HISTORY -#endif /* BANG_HISTORY && !HISTORY */ - -#if defined (READLINE) && !defined (HISTORY) -# define HISTORY -#endif - -/* Define this if you want completion that puts all alternatives into - a brace expansion shell expression. */ -#if defined (BRACE_EXPANSION) && defined (READLINE) -# define BRACE_COMPLETION -#endif /* BRACE_EXPANSION */ - -/* The default value of the PATH variable. */ -#define DEFAULT_PATH_VALUE \ - "/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:." - -/* The value for PATH when invoking `command -p'. This is only used when - the Posix.2 confstr () function, or CS_PATH define are not present. */ -#define STANDARD_UTILS_PATH \ - "/bin:/usr/bin:/usr/ucb:/usr/sbin:/etc:/usr/etc" - -/* Define V9_ECHO if you want to give the echo builtin backslash-escape - interpretation using the -e option, in the style of the Bell Labs 9th - Edition version of echo. */ -#define V9_ECHO - -/* Define DEFAULT_ECHO_TO_USG if you want the echo builtin to interpret - the backslash-escape characters by default, like the System V echo. - This requires that V9_ECHO be defined. */ -/* #define DEFAULT_ECHO_TO_USG */ -#if !defined (V9_ECHO) -# undef DEFAULT_ECHO_TO_USG -#endif - -/* Define CONTINUE_AFTER_KILL_ERROR if you want the kill command to - continue processing arguments after one of them fails. */ -#define CONTINUE_AFTER_KILL_ERROR - -/* Define BREAK_COMPLAINS if you want the non-standard, but useful - error messages about `break' and `continue' out of context. */ -#define BREAK_COMPLAINS - -/* Define HELP_BUILTIN if you want the `help' shell builtin and the long - documentation strings compiled into the shell. */ -#define HELP_BUILTIN - -/* Define RESTRICTED_SHELL if you want the generated shell to have the - ability to be a restricted one. The shell thus generated can become - restricted by being run with the name "rbash", or by setting the -r - flag. */ -#define RESTRICTED_SHELL - -/* If the shell is called by this name, it will become restricted. */ -#if defined (RESTRICTED_SHELL) -#define RESTRICTED_SHELL_NAME "rbash" -#endif - -/* Define DISABLED_BUILTINS if you want "builtin foo" to always run the - shell builtin "foo", even if it has been disabled with "enable -n foo". */ -/* #define DISABLED_BUILTINS */ - -/* Define PROCESS_SUBSTITUTION if you want the K*rn shell-like process - substitution features "<(file)". */ -/* Right now, you cannot do this on machines without fully operational - FIFO support. This currently include NeXT and Alliant. */ -#if !defined (MKFIFO_MISSING) || defined (HAVE_DEV_FD) -# define PROCESS_SUBSTITUTION -#endif /* !MKFIFO_MISSING */ - -/* Define PROMPT_STRING_DECODE if you want the backslash-escaped special - characters in PS1 and PS2 expanded. Variable expansion will still be - performed. */ -#define PROMPT_STRING_DECODE - -/* Define BUFFERED_INPUT if you want the shell to do its own input - buffering. */ -#define BUFFERED_INPUT - -/* Define ONESHOT if you want sh -c 'command' to avoid forking to execute - `command' whenever possible. */ -#define ONESHOT - -/* Default primary and secondary prompt strings. */ -#define PPROMPT "\\s\\$ " -#define SPROMPT "> " - -/* Define SELECT_COMMAND if you want the Korn-shell style `select' command: - select word in word_list; do command_list; done */ -#define SELECT_COMMAND - -/* Define ARRAY_VARS if you want ksh-style one-dimensional array variables. */ -#define ARRAY_VARS - -#endif /* !_CONFIG_H_ */ diff --git a/CWRU/old-conf/config.h.mini b/CWRU/old-conf/config.h.mini deleted file mode 100644 index 3c967ac55..000000000 --- a/CWRU/old-conf/config.h.mini +++ /dev/null @@ -1,191 +0,0 @@ -/* config.h -- Configuration file for bash. */ - -/* This is a `minimal' configuration file. It will create a shell without: - job control - aliases - pushd and popd - readline - history - restricted shell mode - `disabled' builtins (builtin xxx finds xxx even after enable -n xxx) - process substitution - prompt string decoding (though variable expansion is still done) - the `select' command - the `help' builtin -*/ - -/* Copyright (C) 1987,1991 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#if !defined (_CONFIG_H_) -#define _CONFIG_H_ - -#include "memalloc.h" - -#if defined (HPUX) || defined (UNIXPC) || defined (Xenix) -# if !defined (USG) -# define USG -# endif -#endif - -#if defined (HAVE_UNISTD_H) && !defined (BUILDING_MAKEFILE) -#include -#endif - -/* Define JOB_CONTROL if your operating system supports - BSD-like job control. */ -/* #define JOB_CONTROL */ - -/* Note that vanilla System V machines don't support BSD job control, - although some do support Posix job control. */ -#if defined (USG) && !defined (_POSIX_JOB_CONTROL) -# undef JOB_CONTROL -#endif /* USG && !_POSIX_JOB_CONTROL */ - -/* Define ALIAS if you want the alias features. */ -/* #define ALIAS */ - -/* Define PUSHD_AND_POPD if you want those commands to be compiled in. - (Also the `dirs' commands.) */ -/* #define PUSHD_AND_POPD */ - -/* Define BRACE_EXPANSION if you want curly brace expansion a la Csh: - foo{a,b} -> fooa foob. Even if this is compiled in (the default) you - can turn it off at shell startup with `-nobraceexpansion', or during - shell execution with `set +o braceexpand'. */ -/* #define BRACE_EXPANSION */ - -/* Define READLINE to get the nifty/glitzy editing features. - This is on by default. You can turn it off interactively - with the -nolineediting flag. */ -/* #define READLINE */ - -/* Define BANG_HISTORY if you want to have Csh style "!" history expansion. - This is unrelated to READLINE. */ -/* #define BANG_HISTORY */ - -/* Define HISTORY if you want to have access to previously typed commands. - - If both HISTORY and READLINE are defined, you can get at the commands - with line editing commands, and you can directly manipulate the history - from the command line. - - If only HISTORY is defined, the `fc' and `history' builtins are - available. */ -/* #define HISTORY */ - -#if defined (BANG_HISTORY) && !defined (HISTORY) - /* BANG_HISTORY requires HISTORY. */ -# define HISTORY -#endif /* BANG_HISTORY && !HISTORY */ - -#if defined (READLINE) && !defined (HISTORY) -# define HISTORY -#endif - -/* Define this if you want completion that puts all alternatives into - a brace expansion shell expression. */ -#if defined (BRACE_EXPANSION) && defined (READLINE) -# define BRACE_COMPLETION -#endif /* BRACE_EXPANSION */ - -/* The default value of the PATH variable. */ -#define DEFAULT_PATH_VALUE \ - "/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:." - -/* The value for PATH when invoking `command -p'. This is only used when - the Posix.2 confstr () function, or CS_PATH define are not present. */ -#define STANDARD_UTILS_PATH \ - "/bin:/usr/bin:/usr/ucb:/usr/sbin:/etc:/usr/etc" - -/* The default directory in which to look for mail files when - checking mail. The trailing slash is required. */ -#if defined (USG) -# define DEFAULT_MAIL_PATH "/usr/mail/" -#else -# define DEFAULT_MAIL_PATH "/usr/spool/mail/" -#endif - -/* Define V9_ECHO if you want to give the echo builtin backslash-escape - interpretation using the -e option, in the style of the Bell Labs 9th - Edition version of echo. */ -#define V9_ECHO - -/* Define DEFAULT_ECHO_TO_USG if you want the echo builtin to interpret - the backslash-escape characters by default, like the System V echo. - This requires that V9_ECHO be defined. */ -/* #define DEFAULT_ECHO_TO_USG */ -#if !defined (V9_ECHO) -# undef DEFAULT_ECHO_TO_USG -#endif - -/* Define CONTINUE_AFTER_KILL_ERROR if you want the kill command to - continue processing arguments after one of them fails. */ -#define CONTINUE_AFTER_KILL_ERROR - -/* Define BREAK_COMPLAINS if you want the non-standard, but useful - error messages about `break' and `continue' out of context. */ -#define BREAK_COMPLAINS - -/* Define HELP_BUILTIN if you want the `help' shell builtin and the long - documentation strings compiled into the shell. */ -/* #define HELP_BUILTIN */ - -/* Define RESTRICTED_SHELL if you want the generated shell to have the - ability to be a restricted one. The shell thus generated can become - restricted by being run with the name "rbash", or by setting the -r - flag. */ -/* #define RESTRICTED_SHELL */ - -/* Define DISABLED_BUILTINS if you want "builtin foo" to always run the - shell builtin "foo", even if it has been disabled with "enable -n foo". */ -/* #define DISABLED_BUILTINS */ - -/* Define PROCESS_SUBSTITUTION if you want the K*rn shell-like process - substitution features "<(file)". */ -/* Right now, you cannot do this on machines without fully operational - FIFO support. This currently include NeXT and Alliant. */ -#if !defined (MKFIFO_MISSING) -# define PROCESS_SUBSTITUTION -#endif /* !MKFIFO_MISSING */ - -/* Define PROMPT_STRING_DECODE if you want the backslash-escaped special - characters in PS1 and PS2 expanded. Variable expansion will still be - performed. */ -/* #define PROMPT_STRING_DECODE */ - -/* Define BUFFERED_INPUT if you want the shell to do its own input - buffering. */ -#define BUFFERED_INPUT - -/* Define ONESHOT if you want sh -c 'command' to avoid forking to execute - `command' whenever possible. */ -#define ONESHOT - -/* Default primary and secondary prompt strings. */ -#define PPROMPT "\\s\\$ " -#define SPROMPT "> " - -/* Define SELECT_COMMAND if you want the Korn-shell style `select' command: - select word in word_list; do command_list; done */ -/* #define SELECT_COMMAND */ - -/* Define ARRAY if you want ksh-style one-dimensional arrays. */ -/* #define ARRAY_VARS */ - -#endif /* !_CONFIG_H_ */ diff --git a/CWRU/old-conf/configure b/CWRU/old-conf/configure deleted file mode 100755 index 53e10b6e3..000000000 --- a/CWRU/old-conf/configure +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# This shell script does nothing since Bash doesn't require -# configuration to be forced on it; it auto-configures. You can -# change the location of the source directory with +srcdir. -# -echo "Bash is configured to auto configure." -exit 0 diff --git a/CWRU/old-conf/cpp-Makefile b/CWRU/old-conf/cpp-Makefile deleted file mode 100644 index 3e8887a4e..000000000 --- a/CWRU/old-conf/cpp-Makefile +++ /dev/null @@ -1,1379 +0,0 @@ -/* This -*- C -*- file (cpp-Makefile) is run through the C preprocessor - to produce bash-Makefile which is machine specific. - - If you have Gcc and/or Bison, you might wish to mention that right - below here. - - Since this is to become a Makefile, blank lines which appear outside - of comments may not contain a TAB character. - - Copyright (C) 1987,1991 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/**/# This Makefile is automagically made from cpp-Makefile. You should -/**/# not be editing this file; edit cpp-Makefile, machines.h, or -/**/# support/mksysdefs instead. Then, assuming the edits were required -/**/# to compile Bash on your system, mail the changes you had to make to -/**/# bash-maintainers@prep.ai.mit.edu. We will do our best to incorporate -/**/# them into the next release. - -/**/# Make sure the first target in the makefile is the right one -all: .made - -/* **************************************************************** */ -/* */ -/* Which compiler are you using? */ -/* */ -/* **************************************************************** */ - -/* Define HAVE_GCC if you have the GNU C compiler. */ -/* #define HAVE_GCC */ - -#if defined (__GNUC__) && !defined (HAVE_GCC) && !defined (GCC_STANDARD) -# define HAVE_GCC -#endif - -/* Undefine HAVE_FIXED_INCLUDES if you are not using GCC with the fixed - header files. */ -#if defined (HAVE_GCC) && !defined (HAVE_FIXED_INCLUDES) -# define HAVE_FIXED_INCLUDES -#endif /* HAVE_GCC && !HAVE_FIXED_INCLUDES */ - -/* Include some boilerplate Gnu makefile definitions. */ -prefix = /usr/local - -/**/#prefix = @prefix@ - -exec_prefix = $(prefix) -bindir = $(exec_prefix)/bin -libdir = $(exec_prefix)/lib - -manroot = $(prefix)/man - -man1ext = 1 -man1dir = $(manroot)/man$(man1ext) -man3ext = 3 -man3dir = $(manroot)/man$(man3ext) -mandir = $(man1dir) -manext = $(man1ext) - -infodir = $(prefix)/info - -srcdir = . -/**/#srcdir = @srcdir@ - -VPATH = .:$(srcdir) - -incdir = $(prefix)/include -/**/#incdir = @incdir@ - -/* If you have purify, and want to use it, uncomment this definition or - run the make as `make -f bash-Makefile bash PURIFY=purify'. */ -PURIFY = # purify - -/* This includes the appropriate description for the machine that you are - using (we hope). If the compilation doesn't work correctly, then you - will have to edit the file `machines.h' to include a description for the - machine that your Cpp uniquely identifies this as. For example, Sun 4's - are recognized by the Cpp identifier `sparc', Vax is recognized with `vax', - etc. The order of these files is very important. Config.h must come last, - since it is capable of undef'ing various things. */ -#define BUILDING_MAKEFILE /* Tell config.h to avoid #including anything. */ -#include "sysdefs.h" -#include "machines.h" -#include "config.h" - -/**/# Here is a rule for making .o files from .c files that does not -/**/# force the type of the machine (like -M_MACHINE) into the flags. -.c.o: - $(RM) $@ - $(CC) $(CCFLAGS) $(CPPFLAGS) -c $< - -YACC = YACC_PROG - -#if defined (HAVE_GCC) -# if defined (GCC_FLAGS) -GCC_EXTRAS = GCC_FLAGS -# endif /* GCC_FLAGS */ -# if !defined (HAVE_FIXED_INCLUDES) -/* This is guaranteed to work, even if you have the fixed includes! - (Unless, of course, you have the fixed include files installed in - /usr/include. Then it will break.) */ -CC = gcc -traditional -I/usr/include $(GCC_EXTRAS) -# else /* HAVE_FIXED_INCLUDES */ -CC = gcc $(GCC_EXTRAS) -# endif /* HAVE_FIXED_INCLUDES */ -#else /* !HAVE_GCC */ -CC = CPP_CC -#endif /* !HAVE_GCC */ - -SHELL=/bin/sh -CP = cp -RM = rm -f -AR = ar -#if defined (RANLIB_LOCATION) -RANLIB = RANLIB_LOCATION -#else -RANLIB = ranlib -#endif /* RANLIB_LOCATION */ - -INSTALL_PROGRAM = $(SUPPORT_SRC)install.sh -c -s -INSTALL_DATA = $(SUPPORT_SRC)install -c -m 644 - -COMPRESS = gzip -COMPRESS_EXT = .gz - -Machine = M_MACHINE -OS = M_OS - -/**/# PROFILE_FLAGS is either -pg, to generate profiling info for use -/**/# with gprof, or nothing (the default). -PROFILE_FLAGS= - -/* These are defined in machines.h or sysdefs.h */ -#if defined (SYSDEP_CFLAGS) -/**/# This system has some peculiar flags that must be passed to the -/**/# the C compiler (or to cpp). -SYSDEP = SYSDEP_CFLAGS -#endif /* SYSDEP_CFLAGS */ - -#if defined (SYSDEP_LDFLAGS) -/**/# This system has some peculiar flags that must be passed to the -/**/# link editor (ld). -SYSDEP_LD = SYSDEP_LDFLAGS -#endif /* SYSDEP_LDFLAGS */ - -#if defined (HAVE_SETLINEBUF) -/**/# This system has the setlinebuf () call. -LINEBUF = -DHAVE_SETLINEBUF -#endif - -#if defined (HAVE_VFPRINTF) -/**/# This system has the vprintf () and vfprintf () calls. -VPRINTF = -DHAVE_VFPRINTF -#endif /* HAVE_VFPRINTF */ - -#if defined (USE_VFPRINTF_EMULATION) -VPRINTF = -DHAVE_VFPRINTF -DUSE_VFPRINTF_EMULATION -#endif /* USE_VFPRINTF_EMULATION */ - -#if defined (VOID_SIGHANDLER) -/**/# The signal () call provided by the system returns a pointer to -/**/# a function returning void. The signal handlers themselves are -/**/# thus void functions. -SIGHANDLER = -DVOID_SIGHANDLER -#endif - -#if defined (HAVE_STRERROR) -/**/# This system has the strerror () function. -STRERROR = -DHAVE_STRERROR -#endif - -#if defined (HAVE_GETGROUPS) -/**/# This system has multiple groups. -GROUPS = -DHAVE_GETGROUPS -#endif - -#if defined (HAVE_GETWD) -/**/# This system has the getwd () call. -GETWD = -DHAVE_GETWD -#endif - -#if defined (HAVE_GETCWD) -/**/# This system has the getcwd () call. -GETCWD = -DHAVE_GETCWD -#endif - -#if defined (HAVE_DUP2) -/**/# This system has a working version of dup2 (). -DUP2 = -DHAVE_DUP2 -#endif /* HAVE_DUP2 */ - -#if defined (HAVE_DIRENT) -/**/# This system uses struct dirent for reading directories with readdir. -DIRENT = -DHAVE_DIRENT -#endif /* HAVE_DIRENT */ - -#if defined (HAVE_STRCHR) -/**/# This system has strchr () and strrchr () string functions. -STRCHR = -DHAVE_STRCHR -#endif /* HAVE_STRCHR */ - -#if defined (HAVE_STRCASECMP) -STRCASE = -DHAVE_STRCASECMP -#endif /* HAVE_STRCASECMP */ - -#if defined (HAVE_SYS_SIGLIST) -SIGLIST = -DHAVE_SYS_SIGLIST -#endif /* HAVE_SYS_SIGLIST */ - -#if defined (HAVE_DLOPEN) -DLOPEN = -DHAVE_DLOPEN -#endif - -#if defined (HAVE_DLSYM) -DLSYM = -DHAVE_DLSYM -#endif - -#if defined (HAVE_DLCLOSE) -DLCLOSE = -DHAVE_DLCLOSE -#endif - -#if defined (HAVE_ALLOCA) -ALLOCA_DEFINE = -DHAVE_ALLOCA -#else -ALLOCA_DEFINE = -#endif /* HAVE_ALLOCA */ - -#if defined (HAVE_SYS_STREAM_H) -/**/# This system has -STREAM = -DHAVE_SYS_STREAM_H -#endif /* HAVE_SYS_STREAM_H */ - -#if defined (HAVE_SYS_PTEM_H) -/**/# This system has -PTEM = -DHAVE_SYS_PTEM_H -#endif /* HAVE_SYS_PTEM_H */ - -#if defined (HAVE_SYS_PTE_H) -/**/# This system has -PTE = -DHAVE_SYS_PTE_H -#endif /* HAVE_SYS_PTE_H */ - -/**/# This system has . -#if defined (HAVE_UNISTD_H) -UNISTD = -DHAVE_UNISTD_H -#endif - -/**/# This system has -#if defined (HAVE_STDLIB_H) -STDLIB = -DHAVE_STDLIB_H -#endif - -/**/# This system has -#if defined (HAVE_LIMITS_H) -LIMITSH = -DHAVE_LIMITS_H -#endif - -/**/# This system has -#if defined (HAVE_LOCALE_H) -LOCALE = -DHAVE_LOCALE_H -#endif - -#if defined (HAVE_ALLOCA_H) -ALLOCA_H_DEFINE = -DHAVE_ALLOCA_H -#else -ALLOCA_H_DEFINE = -#endif /* HAVE_ALLOCA_H */ - -#if defined (HAVE_RESOURCE) -/**/# This system has -RESOURCE = -DHAVE_RESOURCE -#endif - -#if defined (HAVE_SYS_PARAM) -/**/# This system has -PARAM = -DHAVE_SYS_PARAM -#endif - -#if defined (HAVE_WAIT_H) -/**/# This system has -WAITH = -DHAVE_WAIT_H -#endif - -#if defined (HAVE_DIRENT_H) -/**/# This system has /usr/include/dirent.h -DIRENTH = -DHAVE_DIRENT_H -#endif /* HAVE_DIRENT_H */ - -#if defined (HAVE_STRING_H) -/**/# This system has /usr/include/string.h -STRINGH = -DHAVE_STRING_H -#endif /* HAVE_STRING_H */ - -#if defined (HAVE_VARARGS_H) -/**/# This system has /usr/include/varargs.h -VARARGSH = -DHAVE_VARARGS_H -#endif /* HAVE_VARARGS_H */ - -#if defined (HAVE_DEV_FD) -/**/# This system has the /dev/fd directory for naming open files. -DEVFD = -DHAVE_DEV_FD -#endif /* HAVE_DEV_FD */ - -/**/# The GNU coding standards don't recognize the possibility that -/**/# other information besides optimization and debugging might be -/**/# passed to cc. A different name should have been used. -CFLAGS = -O -g - -SYSTEM_FLAGS = $(LINEBUF) $(VPRINTF) $(UNISTD) $(STDLIB) $(LIMITSH) $(LOCALE) \ - $(GROUPS) $(RESOURCE) $(PARAM) $(SIGHANDLER) $(SYSDEP) $(WAITH) \ - $(GETWD) $(GETCWD) $(DUP2) $(STRERROR) $(DIRENT) $(DIRENTH) $(STRINGH) \ - $(VARARGSH) $(STRCHR) $(STRCASE) $(DEVFD) $(DLOPEN) $(DLSYM) \ - $(DLCLOSE) $(SIGLIST) -D$(Machine) -D$(OS) -DPROGRAM='"$(Program)"' \ - -DHOSTTYPE='$(Machine)' -DOSTYPE='$(OS)' - -/* Compilation flags to use in the shell directory and to pass to builds - in subdirectories (readline, termcap) to ensure that alloca is treated - in a consistent fashion. */ -ALLOCA_CFLAGS = $(ALLOCA_DEFINE) $(ALLOCA_H_DEFINE) - -LDFLAGS = $(NOSHARE) $(SYSDEP_LD) $(EXTRA_LD_PATH) $(PROFILE_FLAGS) $(CFLAGS) -CCFLAGS = $(PROFILE_FLAGS) $(SYSTEM_FLAGS) -DSHELL $(ALLOCA_CFLAGS) \ - $(MALLOC_CFLAGS) $(CFLAGS) -CPPFLAGS= -I. -I$(srcdir) -I$(LIBSRC) -I$(incdir) -GCC_LINT_FLAGS = -ansi -Wall -Wshadow -Wpointer-arith -Wcast-qual \ - -Wwrite-strings -Werror -Wstrict-prototypes \ - -Wmissing-prototypes -GCC_LINT_CFLAGS = $(CCFLAGS) $(GCC_LINT_FLAGS) - -/* It is conceivable that you wish to edit some things beyond this point, - but I guess that it is highly unlikely, and may give you a headache. */ - -/* **************************************************************** */ -/* */ -/* How to Build the support libraries. */ -/* */ -/* **************************************************************** */ - -/**/# The location of sources for the support libraries. -LIBPATH = ./lib/ -LIBSRC = $(srcdir)/$(LIBPATH) - -/**/# Preface building with the full path of the current library source. -LIBINC_DECL = topdir=`sh $(srcdir)/support/srcdir $(srcdir)`; export topdir -LIBINC_USAGE = "-I$${topdir} -I$${topdir}/$(LIBPATH) -I$(LIBSRC)" - -/* Defines used when building libraries. */ -#define LIBMAKE_FLAGS CFLAGS='$(LIBRARY_CFLAGS) '$(LIBINC_USAGE) \ - CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' \ - RANLIB='$(RANLIB)' AR='$(AR)' CC='$(CC)' RM='$(RM)' \ - -/**/# Flags used when building libraries. -LIBRARY_CFLAGS = $(PROFILE_FLAGS) $(CFLAGS) $(SIGHANDLER) $(ALLOCA_CFLAGS) \ - $(SYSDEP) $(DIRENT) $(DIRENTH) $(STRINGH) $(VARARGSH) \ - $(PTEM) $(PTE) $(STREAM) $(STRERROR) $(RESOURCE) \ - $(STRCHR) -D$(Machine) -D$(OS) $(UNISTD) $(LIMITSH) \ - $(STRCASE) $(STDLIB) -DSHELL - -/* Macro used to build a library. */ -#define build_lib_in_dir(directory, target, srcdef, makefile) \ - @echo "Building in " directory "..."; \ - sh $(SUPPORT_SRC)mkdirs directory ; \ - ($(LIBINC_DECL); cd directory; \ - if [ ! -f Makefile ]; then cp makefile Makefile; fi; \ - $(MAKE) target $(MFLAGS) LIBMAKE_FLAGS srcdef) - -BUILTIN_CFLAGS = $(CCFLAGS) -BUILTIN_LIBFLAGS = "-I. -I$${topdir} -I$${topdir}/$(LIBPATH) -I$(incdir)" - -/* The builtins are somewhat special in that more information is needed - to compile them correctly. */ -#define build_builtins(target) \ - @sh $(SUPPORT_SRC)mkdirs $(DEFDIR) ; \ - ($(LIBINC_DECL); cd $(DEFDIR); \ - if [ ! -f Makefile ]; then \ - cp $(BUILTIN_ABSSRC)/Makefile Makefile; \ - fi; \ - $(MAKE) $(MFLAGS) target \ - srcdir=$(BUILTIN_ABSSRC) CPPFLAGS='' \ - CFLAGS='$(CCFLAGS) -I$(BUILTIN_ABSSRC) '$(BUILTIN_LIBFLAGS) \ - LDFLAGS='$(LDFLAGS)' RANLIB='$(RANLIB)' AR='$(AR)' CC='$(CC)' \ - RM='$(RM)' RL_LIBSRC='$(RL_ABSSRC)' \ - DIRECTDEFINE='-D '$(BUILTIN_SRCDIR)) - -/**/# The name of this program. -Program = bash - -/* **************************************************************** */ -/* */ -/* Support for desired libraries. */ -/* This includes Termcap, Glob, Tilde, History, and Readline. */ -/* */ -/* **************************************************************** */ - -/* Does this machine's linker need a space after -L? */ -#if defined (HAVE_GCC) -# undef SEARCH_LIB_NEEDS_SPACE -#endif /* HAVE_GCC */ - -#if defined (SEARCH_LIB_NEEDS_SPACE) -/**/# The native compiler for this machines requires a space after '-L'. -SEARCH_LIB = -L $(UNSET_VARIABLE_CREATES_SPACE) -#else -/**/# The compiler being used to build Bash can handle -L/library/path. -SEARCH_LIB = -L -#endif /* !SEARCH_LIB_NEEDS_SPACE */ - -#if defined (EXTRA_LIB_SEARCH_PATH) -/**/# Additional instructions to the linker telling it how to find libraries. -LOCAL_LD_PATH = EXTRA_LIB_SEARCH_PATH -EXTRA_LD_PATH = $(SEARCH_LIB)$(LOCAL_LD_PATH) -#endif /* EXTRA_LIB_SEARCH_PATH */ - -/* Right now we assume that you have the full source code to Bash. If - you simply have the library and header files installed, then - undefine HAVE_READLINE_SOURCE. */ -#define HAVE_READLINE_SOURCE - -#if defined (HAVE_READLINE_SOURCE) - -RL_LIBSRC = $(LIBSRC)readline/ -RL_LIBDOC = $(RL_LIBSRC)doc/ -RL_LIBDIR = $(LIBPATH)readline/ -RL_ABSSRC = $${topdir}/$(RL_LIBDIR) - -READLINE_LIBRARY = $(RL_LIBDIR)libreadline.a - -/**/# The source, object and documentation of the GNU Readline library. -READLINE_SOURCE = $(RL_LIBSRC)rldefs.h $(RL_LIBSRC)rlconf.h \ - $(RL_LIBSRC)readline.h \ - $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)keymaps.h \ - $(RL_LIBSRC)history.h $(RL_LIBSRC)histlib.h \ - $(RL_LIBSRC)posixstat.h $(RL_LIBSRC)tilde.h \ - $(RL_LIBSRC)funmap.c $(RL_LIBSRC)emacs_keymap.c \ - $(RL_LIBSRC)search.c $(RL_LIBSRC)vi_keymap.c \ - $(RL_LIBSRC)keymaps.c $(RL_LIBSRC)parens.c \ - $(RL_LIBSRC)vi_mode.c $(RL_LIBSRC)callback.c \ - $(RL_LIBSRC)readline.c $(RL_LIBSRC)tilde.c \ - $(RL_LIBSRC)rltty.c $(RL_LIBSRC)complete.c \ - $(RL_LIBSRC)bind.c $(RL_LIBSRC)isearch.c \ - $(RL_LIBSRC)display.c $(RL_LIBSRC)signals.c \ - $(RL_LIBSRC)util.c $(RL_LIBSRC)kill.c \ - $(RL_LIBSRC)undo.c $(RL_LIBSRC)macro.c \ - $(RL_LIBSRC)input.c $(RL_LIBSRC)xmalloc.c \ - $(RL_LIBSRC)histexpand.c $(RL_LIBSRC)history.c \ - $(RL_LIBSRC)histsearch.c $(RL_LIBSRC)histfile.c - -READLINE_OBJ = $(RL_LIBDIR)readline.o $(RL_LIBDIR)funmap.o \ - $(RL_LIBDIR)parens.o $(RL_LIBDIR)search.o \ - $(RL_LIBDIR)keymaps.o $(RL_LIBDIR)xmalloc.o \ - $(RL_LIBDIR)rltty.o $(RL_LIBDIR)complete.o \ - $(RL_LIBDIR)bind.o $(RL_LIBDIR)isearch.o \ - $(RL_LIBDIR)display.o $(RL_LIBDIR)signals.o \ - $(RL_LIBDIR)tilde.o $(RL_LIBDIR)util.o \ - $(RL_LIBDIR)kill.o $(RL_LIBDIR)undo.o \ - $(RL_LIBDIR)macro.o $(RL_LIBDIR)input.o \ - $(RL_LIBDIR)callback.o \ - $(RL_LIBDIR)history.o $(RL_LIBDIR)histexpand.o \ - $(RL_LIBDIR)histsearch.o $(RL_LIBDIR)histfile.o - -READLINE_DOC = $(RL_LIBDOC)rlman.texinfo $(RL_LIBDOC)rluser.texinfo \ - $(RL_LIBDOC)rltech.texinfo - -READLINE_DOC_SUPPORT = $(RL_LIBDOC)Makefile $(RL_LIBDOC)readline.dvi \ - $(RL_LIBDOC)readline.info - -/**/# This has to be written funny to avoid looking like a C comment starter. -READLINE_EXAMPLES = $(RL_LIBSRC)examples/[a-zA-Z]*.[ch] \ - $(RL_LIBSRC)examples/Makefile $(RL_LIBSRC)examples/Inputrc - -/**/# Support files for GNU Readline. -READLINE_SUPPORT = $(RL_LIBSRC)Makefile $(RL_LIBSRC)ChangeLog \ - $(RL_LIBSRC)COPYING $(READLINE_EXAMPLES) \ - $(READLINE_DOC_SUPPORT) - -#else /* !HAVE_READLINE_SOURCE */ - -# if defined (READLINE) -READLINE_LIBRARY = -lreadline -# endif /* READLINE */ -RL_LIBDIR = $(srcdir)/$(LIBSRC)readline/ - -#endif /* !HAVE_READLINE_SOURCE */ - -#if defined (READLINE) -/**/# You wish to compile with the line editing features installed. -READLINE_LIB = -lreadline - -/**/# You only need termcap (or curses) if you are linking with GNU Readline. -# if defined (USE_TERMCAP_EMULATION) -TERMCAP_LIB = -lcurses -# else /* !USE_TERMCAP_EMULATION */ -TERMCAP_LIB = -ltermcap -# endif /* !USE_TERMCAP_EMULATION */ - -/**/# Directory list for -L so that the link editor (ld) can find -lreadline. -# if !defined (LD_HAS_NO_DASH_L) -# if defined (HAVE_READLINE_SOURCE) -READLINE_LDFLAGS = $(SEARCH_LIB)$(RL_LIBDIR) $(TERMCAP_LDFLAGS) -# else -READLINE_LDFLAGS = $(TERMCAP_LDFLAGS) $(SEARCH_LIB)$(libdir) \ - $(SEARCH_LIB)/usr/local/lib -# endif /* HAVE_READLINE_SOURCE */ -# endif /* LD_HAS_NO_DASH_L */ -#endif /* READLINE */ - -/* Right now we assume that you have the full source code to Bash, - including the source code to the history library. If you only have - the library and header files installed, then you can undefine - HAVE_HISTORY_SOURCE. */ -#define HAVE_HISTORY_SOURCE - -# if defined (HISTORY) && !defined (READLINE) -/**/# You are compiling with history features but without line editing. -HISTORY_LIB = -lhistory -# endif /* HISTORY && !READLINE */ - -#if defined (HAVE_HISTORY_SOURCE) - -HIST_LIBSRC = $(LIBSRC)readline/ -HIST_LIBDOC = $(HIST_LIBSRC)doc/ -HIST_LIBDIR = $(LIBPATH)readline/ -HIST_ABSSRC = $${topdir}/$(HIST_LIBDIR)/ - -/* If you are building with readline, then you do not explicitly need the - history library. */ -# if defined (READLINE) -HISTORY_LIBRARY = -# else -HISTORY_LIBRARY = $(HIST_LIBDIR)libhistory.a -# endif /* !READLINE */ - -/**/# The source, object and documentation of the history library. -HISTORY_SOURCE = $(HIST_LIBSRC)history.c $(HIST_LIBSRC)histexpand.c \ - $(HIST_LIBSRC)histsearch.c $(HIST_LIBSRC)histfile.c \ - $(HIST_LIBSRC)history.h $(HIST_LIBSRC)histlib.h -HISTORY_OBJ = $(HIST_LIBDIR)history.o $(HIST_LIBDIR)histexpand.o \ - $(HIST_LIBDIR)histsearch.o $(HIST_LIBDIR)histfile.o -HISTORY_DOC = $(HIST_LIBDOC)hist.texinfo $(HIST_LIBDOC)hsuser.texinfo \ - $(HIST_LIBDOC)hstech.texinfo - -/**/# Directory list for -L so that the link editor (ld) can find -lhistory. -# if defined (HISTORY) && !defined (READLINE) -# if !defined (LD_HAS_NO_DASH_L) -HISTORY_LDFLAGS = $(SEARCH_LIB)$(HIST_LIBDIR) -# endif /* LD_HAS_NO_DASH_L */ -# endif /* HISTORY && !READLINE */ -#else /* !HAVE_HISTORY_SOURCE */ -# if defined (HISTORY) && !defined (READLINE) -HISTORY_LIBRARY = -lhistory -HISTORY_LDFLAGS = $(SEARCH_LIB)$(libdir) $(SEARCH_LIB)/usr/local/lib -# endif /* HISTORY && !READLINE */ -#endif /* !HAVE_HISTORY_SOURCE */ - -#if defined (USE_GNU_TERMCAP) -# define HAVE_TERMCAP_SOURCE -TERM_LIBSRC = $(LIBSRC)termcap/ -TERM_LIBDIR = $(LIBPATH)termcap/ -TERM_ABSSRC = $${topdir}/$(TERM_LIBDIR) - -/**/# The source, object and documentation for the GNU Termcap library. -TERMCAP_LIBRARY = $(TERM_LIBDIR)libtermcap.a - -TERMCAP_SOURCE = $(TERM_LIBSRC)termcap.c $(TERM_LIBSRC)tparam.c -TERMCAP_OBJ = $(TERM_LIBDIR)termcap.o $(TERM_LIBDIR)tparam.o -TERMCAP_DOC = $(TERM_LIBSRC)termcap.texinfo -TERMCAP_SUPPORT = $(TERM_LIBSRC)Makefile $(TERM_LIBSRC)ChangeLog - -# if !defined (LD_HAS_NO_DASH_L) -TERMCAP_LDFLAGS = $(SEARCH_LIB)$(TERM_LIBDIR) -# endif /* !LD_HAS_NO_DASH_L */ -#else /* !USE_GNU_TERMCAP */ - -/* Guessed at symbol for LIBRARIES, below. */ -# if defined (USE_TERMCAP_EMULATION) -TERMCAP_LIBRARY = -lcurses -# else /* !USE_TERMCAP_EMULATION */ -TERMCAP_LIBRARY = -ltermcap -# endif /* !USE_TERMCAP_EMULATION */ -#endif /* !USE_GNU_TERMCAP */ - -/* The glob library is always used. */ -#define USE_GLOB_LIBRARY - -#if defined (USE_GLOB_LIBRARY) -GLOB_LIBSRC = $(LIBSRC)glob/ -GLOB_LIBDIR = $(LIBPATH)glob/ -GLOB_ABSSRC = $${topdir}/$(GLOB_LIBDIR) - -GLOB_LIBRARY = $(GLOB_LIBDIR)libglob.a - -GLOB_SOURCE = $(GLOB_LIBSRC)glob.c $(GLOB_LIBSRC)fnmatch.c \ - $(GLOB_LIBSRC)glob.h $(GLOB_LIBSRC)fnmatch.h -GLOB_OBJ = $(GLOB_LIBDIR)glob.o $(GLOB_LIBDIR)fnmatch.o -GLOB_DOC = $(GLOB_LIBSRC)doc/glob.texi $(GLOB_LIBSRC)doc/Makefile -GLOB_SUPPORT= $(GLOB_LIBSRC)Makefile $(GLOB_LIBSRC)ChangeLog - -# if !defined (LD_HAS_NO_DASH_L) -GLOB_LDFLAGS = $(SEARCH_LIB)$(GLOB_LIBDIR) -# endif /* !LD_HAS_NO_DASH_L */ -GLOB_LIB = -lglob -#endif /* USE_GLOB_LIBRARY */ - -/* The source code for the tilde expansion library. */ -#if defined (HAVE_READLINE_SOURCE) -# define HAVE_TILDE_SOURCE -#endif /* HAVE_READLINE_SOURCE */ - -#if defined (HAVE_TILDE_SOURCE) -/**/# The source, object and documentation for the GNU Tilde library. -TILDE_LIBSRC = $(LIBSRC)tilde/ -TILDE_LIBDIR = $(LIBPATH)tilde/ -TILDE_ABSSRC = $${topdir}/$(TILDE_LIBDIR) - -TILDE_LIBRARY = $(TILDE_LIBDIR)libtilde.a - -TILDE_SOURCE = $(TILDE_LIBSRC)tilde.c $(TILDE_LIBSRC)tilde.h -TILDE_OBJ = $(TILDE_LIBDIR)tilde.o -TILDE_DOC = $(TILDE_LIBSRC)doc/tilde.texi $(TILDE_LIBSRC)doc/Makefile -TILDE_SUPPORT = $(TILDE_LIBSRC)Makefile $(TILDE_LIBSRC)ChangeLog - -TILDE_LIB = -ltilde - -# if !defined (LD_HAS_NO_DASH_L) -TILDE_LDFLAGS = $(SEARCH_LIB)$(TILDE_LIBDIR) -# endif /* !LD_HAS_NO_DASH_L */ - -#else /* !HAVE_TILDE_SOURCE */ -/**/# Guessed at location of the tilde -TILDE_LIBRARY = $(libdir)/libtilde.a -#endif /* !HAVE_TILDE_SOURCE */ - -/**/# The directory which contains the source for malloc. The name must -/**/# end in a slash, as in "./lib/malloc/". -ALLOC_LIBSRC = $(LIBSRC)malloc/ -ALLOC_LIBDIR = $(LIBPATH)malloc/ -ALLOC_ABSSRC = $${topdir}/$(ALLOC_LIBDIR) - -/**/# Our malloc. -#if defined (USE_GNU_MALLOC) - -MALLOC_OBJ = $(ALLOC_LIBDIR)malloc.o -MALLOC_SRC = $(ALLOC_LIBSRC)malloc.c -MALLOC_FLAGS = -Drcheck -Dbotch=programming_error - -MALLOC_LIBRARY = $(ALLOC_LIBDIR)libmalloc.a - -# if !defined (LD_HAS_NO_DASH_L) -MALLOC_LDFLAGS = $(SEARCH_LIB)$(ALLOC_LIBDIR) -# endif /* !LD_HAS_NO_DASH_L */ -MALLOC_LIB = -lmalloc - -MALLOC_DEP = $(MALLOC_LIBRARY) -#endif /* USE_GNU_MALLOC */ - -/* If this user doesn't have alloca (), then we must try to supply them - with a working one. */ -#if !defined (HAVE_ALLOCA) -ALLOCA = alloca.o -# if defined (ALLOCA_ASM) -ALLOCA_SOURCE = ALLOCA_ASM -ALLOCA_OBJECT = ALLOCA_OBJ -# else -ALLOCA_SOURCE = alloca.c -ALLOCA_OBJECT = alloca.o -# endif /* ALLOCA_ASM */ -ALLOCA_DEP = $(ALLOC_LIBSRC)$(ALLOCA_SOURCE) -#endif /* !HAVE_ALLOCA */ - -/* Protect the `i386' used in the definition of ALLOC_FILES. */ -#if defined (i386) -# undef i386 -# define i386_defined -#endif /* i386 */ - -ALLOC_HEADERS = $(ALLOC_LIBSRC)getpagesize.h -ALLOC_FILES = $(ALLOC_LIBSRC)malloc.c $(ALLOC_LIBSRC)alloca.c \ - $(ALLOC_LIBSRC)i386-alloca.s $(ALLOC_LIBSRC)x386-alloca.s \ - $(ALLOC_LIBSRC)xmalloc.c - -/* Perhaps restore the `i386' define. */ -#if defined (i386_defined) -# define i386 -# undef i386_defined -#endif /* i386_defined */ - -#if defined (USE_GNU_MALLOC) -$(ALLOC_LIBDIR)libmalloc.a: $(MALLOC_SRC) $(ALLOCA_DEP) - @sh $(SUPPORT_SRC)mkdirs $(ALLOC_LIBDIR) - @$(RM) $@ - @($(LIBINC_DECL); cd $(ALLOC_LIBDIR) ; \ - if [ ! -f Makefile ]; then cp $(ALLOC_ABSSRC)Makefile Makefile ; fi; \ - $(MAKE) $(MFLAGS) CC=$(CC) \ - CFLAGS='$(LIBRARY_CFLAGS) $(MALLOC_FLAGS)' \ - CPPFLAGS='$(CPPFLAGS)' MALLOC_SOURCE=$(MALLOC_SRC) \ - ALLOCA=$(ALLOCA) RANLIB=$(RANLIB) \ - ALLOCA_SOURCE=$(ALLOCA_SOURCE) \ - ALLOCA_OBJECT=$(ALLOCA_OBJECT) \ - srcdir=$(ALLOC_ABSSRC) libmalloc.a ) -#endif /* USE_GNU_MALLOC */ - -BASHPOSIX_LIB = $(LIBSRC)posixheaders/ -BASHPOSIX_SUPPORT = $(BASHPOSIX_LIB)posixstat.h $(BASHPOSIX_LIB)ansi_stdlib.h \ - $(BASHPOSIX_LIB)memalloc.h $(BASHPOSIX_LIB)stdc.h - -/**/# Declare all of the sources for the libraries that we have. -LIBRARY_SOURCE = $(READLINE_SOURCE) $(HISTORY_SOURCE) $(TERMCAP_SOURCE) \ - $(GLOB_SOURCE) $(TILDE_SOURCE) $(MALLOC_SOURCE) -LIBRARY_DOC = $(READLINE_DOC) $(HISTORY_DOC) $(TERMCAP_DOC) $(GLOB_DOC) \ - $(TILDE_DOC) $(MALLOC_DOC) -LIBRARY_SUPPORT = $(READLINE_SUPPORT) $(HISTORY_SUPPORT) $(TERMCAP_SUPPORT) \ - $(GLOB_SUPPORT) $(TILDE_SUPPORT) $(MALLOC_SUPPORT) -LIBRARY_TAR = $(LIBRARY_SOURCE) $(LIBRARY_DOC) $(LIBRARY_SUPPORT) - -/**/# The order is important. Most dependent first. -#if defined (LD_HAS_NO_DASH_L) -/**/# This linker does not know how to grok the -l flag, or perhaps how -/**/# to grok the -L flag, or both. -LIBRARIES = $(READLINE_LIBRARY) $(HISTORY_LIBRARY) $(TERMCAP_LIBRARY) \ - $(GLOB_LIBRARY) $(TILDE_LIBRARY) $(MALLOC_LIBRARY) $(LOCAL_LIBS) -#else /* !LD_HAS_NO_DASH_L */ -LIBRARIES = $(READLINE_LIB) $(HISTORY_LIB) $(TERMCAP_LIB) $(GLOB_LIB) \ - $(TILDE_LIB) $(MALLOC_LIB) $(LOCAL_LIBS) -#endif /* !LD_HAS_NO_DASH_L */ - -#if defined (READLINE) -# if defined (HAVE_TERMCAP_SOURCE) -TERMCAP_DEP = $(TERMCAP_LIBRARY) -# endif /* HAVE_TERMCAP_SOURCE */ -# if defined (HAVE_READLINE_SOURCE) -READLINE_DEP = $(READLINE_LIBRARY) -# endif /* HAVE_READLINE_SOURCE */ -#endif /* READLINE */ - -#if defined (HISTORY) && defined (HAVE_HISTORY_SOURCE) && !defined (READLINE) -HISTORY_DEP = $(HISTORY_LIBRARY) -#endif - -#if defined (USE_GLOB_LIBRARY) -GLOB_DEP = $(GLOB_LIBRARY) -#else -GLOBC = glob.c fnmatch.c -GLOBO = glob.o fnmatch.o -#endif /* USE_GLOB_LIBRARY */ - -#if defined (HAVE_TILDE_SOURCE) -TILDE_DEP = $(TILDE_LIBRARY) -#endif - -/**/# Source files for libraries that Bash depends on. -LIBDEP = $(READLINE_DEP) $(TERMCAP_DEP) $(GLOB_DEP) $(HISTORY_DEP) \ - $(TILDE_DEP) $(MALLOC_DEP) - -/**/# Rules for cleaning the readline and termcap sources. -#if defined (HAVE_READLINE_SOURCE) -CLEAN_READLINE = (cd $(RL_LIBDIR); $(MAKE) $(MFLAGS) clean) -#else -CLEAN_READLINE = : -#endif /* !HAVE_READLINE_SOURCE */ - -#if defined (HAVE_HISTORY_SOURCE) -# if !defined (READLINE) -CLEAN_HISTORY = (cd $(HIST_LIBDIR); $(MAKE) $(MFLAGS) clean) -# else -CLEAN_HISTORY = : -# endif /* READLINE */ -#endif /* !HAVE_HISTORY_SOURCE */ - -#if defined (HAVE_TERMCAP_SOURCE) -CLEAN_TERMCAP = (cd $(TERM_LIBDIR); $(MAKE) $(MFLAGS) clean) -#else -CLEAN_TERMCAP = : -#endif /* !HAVE_TERMCAP_SOURCE */ - -#if defined (USE_GLOB_LIBRARY) -CLEAN_GLOB = (cd $(GLOB_LIBDIR); $(MAKE) $(MFLAGS) clean) -#else -CLEAN_GLOB = : -#endif /* !USE_GLOB_LIBRARY */ - -#if defined (HAVE_TILDE_SOURCE) -CLEAN_TILDE = (cd $(TILDE_LIBDIR); $(MAKE) $(MFLAGS) clean) -#else -CLEAN_TILDE = : -#endif /* !HAVE_TILDE_SOURCE */ - -CLEAN_MALLOC = (cd $(MALLOC_LIBDIR); $(MAKE) $(MFLAGS) clean) - -LIBRARY_LDFLAGS = $(READLINE_LDFLAGS) $(HISTORY_LDFLAGS) $(TILDE_LDFLAGS) \ - $(GLOB_LDFLAGS) $(MALLOC_LDFLAGS) - -#if defined (REQUIRED_LIBRARIES) -/**/# Locally required libraries. -LOCAL_LIBS = REQUIRED_LIBRARIES -#endif /* REQUIRED_LIBRARIES */ - -BUILTINS_LIB = builtins/libbuiltins.a - -/**/# The main source code for the Bourne Again SHell. -CSOURCES = shell.c parse.y general.c make_cmd.c print_cmd.c y.tab.c \ - dispose_cmd.c execute_cmd.c variables.c $(GLOBC) version.c \ - expr.c copy_cmd.c flags.c subst.c hash.c mailcheck.c \ - test.c trap.c jobs.c nojobs.c $(ALLOC_FILES) braces.c \ - vprint.c input.c bashhist.c array.c sig.c \ - unwind_prot.c siglist.c getcwd.c $(RL_SUPPORT_SRC) error.c - -HSOURCES = shell.h flags.h trap.h hash.h jobs.h builtins.h alias.c y.tab.h \ - general.h variables.h config.h $(ALLOC_HEADERS) alias.h maxpath.h \ - quit.h machines.h posixstat.h filecntl.h unwind_prot.h parser.h \ - command.h input.h error.h bashansi.h dispose_cmd.h make_cmd.h \ - subst.h externs.h siglist.h bashhist.h bashline.h bashtypes.h \ - array.h sig.h mailcheck.h - -SOURCES = $(CSOURCES) $(HSOURCES) $(BUILTIN_DEFS) - -/**/# Matching object files. -OBJECTS = shell.o y.tab.o general.o make_cmd.o print_cmd.o $(GLOBO) \ - dispose_cmd.o execute_cmd.o variables.o copy_cmd.o error.o \ - expr.o flags.o jobs.o subst.o hash.o mailcheck.o test.o \ - trap.o input.o unwind_prot.o sig.o version.o \ - alias.o array.o braces.o bracecomp.o bashhist.o bashline.o \ - getcwd.o siglist.o vprint.o \ - $(BUILTINS_LIB) - -/**/# Where the source code of the shell builtins resides. -BUILTIN_SRCDIR=$(srcdir)/builtins/ -DEFSRC=$(BUILTIN_SRCDIR) -/**/# The trailing slash was left off this definition on purpose -BUILTIN_ABSSRC=$${topdir}/builtins -DEFDIR = builtins/ -BUILTIN_DEFS = $(DEFSRC)alias.def $(DEFSRC)bind.def $(DEFSRC)break.def \ - $(DEFSRC)builtin.def $(DEFSRC)cd.def $(DEFSRC)colon.def \ - $(DEFSRC)command.def $(DEFSRC)declare.def \ - $(DEFSRC)echo.def $(DEFSRC)enable.def $(DEFSRC)eval.def \ - $(DEFSRC)exec.def $(DEFSRC)exit.def $(DEFSRC)fc.def \ - $(DEFSRC)fg_bg.def $(DEFSRC)hash.def $(DEFSRC)help.def \ - $(DEFSRC)history.def $(DEFSRC)jobs.def $(DEFSRC)kill.def \ - $(DEFSRC)let.def $(DEFSRC)read.def $(DEFSRC)return.def \ - $(DEFSRC)set.def $(DEFSRC)setattr.def $(DEFSRC)shift.def \ - $(DEFSRC)source.def $(DEFSRC)suspend.def $(DEFSRC)test.def \ - $(DEFSRC)times.def $(DEFSRC)trap.def $(DEFSRC)type.def \ - $(DEFSRC)ulimit.def $(DEFSRC)umask.def $(DEFSRC)wait.def \ - $(DEFSRC)getopts.def $(DEFSRC)reserved.def $(DEFSRC)pushd.def \ - $(DEFSRC)shopt.def -BUILTIN_C_SRC = $(DEFSRC)mkbuiltins.c $(DEFSRC)common.c \ - $(DEFSRC)hashcom.h $(DEFSRC)/bashgetopt.c $(GETOPT_SOURCE) -BUILTIN_C_OBJ = $(DEFDIR)common.o $(DEFDIR)bashgetopt.o -BUILTIN_OBJS = $(DEFDIR)alias.o $(DEFDIR)bind.o $(DEFDIR)break.o \ - $(DEFDIR)builtin.o $(DEFDIR)cd.o $(DEFDIR)colon.o \ - $(DEFDIR)command.o $(DEFDIR)declare.o \ - $(DEFDIR)echo.o $(DEFDIR)enable.o $(DEFDIR)eval.o \ - $(DEFDIR)exec.o $(DEFDIR)exit.o $(DEFDIR)fc.o \ - $(DEFDIR)fg_bg.o $(DEFDIR)hash.o $(DEFDIR)help.o \ - $(DEFDIR)history.o $(DEFDIR)jobs.o $(DEFDIR)kill.o \ - $(DEFDIR)let.o $(DEFDIR)pushd.o $(DEFDIR)read.o \ - $(DEFDIR)return.o $(DEFDIR)shopt.o \ - $(DEFDIR)set.o $(DEFDIR)setattr.o $(DEFDIR)shift.o \ - $(DEFDIR)source.o $(DEFDIR)suspend.o $(DEFDIR)test.o \ - $(DEFDIR)times.o $(DEFDIR)trap.o $(DEFDIR)type.o \ - $(DEFDIR)ulimit.o $(DEFDIR)umask.o $(DEFDIR)wait.o \ - $(DEFDIR)getopts.o $(BUILTIN_C_OBJ) -GETOPT_SOURCE = $(DEFSRC)getopt.c $(DEFSRC)getopt.h -PSIZE_SOURCE = $(DEFSRC)psize.sh $(DEFSRC)psize.c -BUILTIN_SUPPORT = $(DEFSRC)Makefile $(PSIZE_SOURCE) $(BUILTIN_C_SRC) - -/**/# Documentation for the shell. -DOCDIR = $(srcdir)/documentation/ - -ENDIAN_SUPPORT = $(SUPPORT_SRC)endian.c -#if !defined (HAVE_WAIT_H) -ENDIAN_HEADER = bash_endian.h -#endif - -SIGNAMES_SUPPORT = $(SUPPORT_SRC)mksignames.c - -SUPPORT_SRC = $(srcdir)/support/ -SDIR = ./support/ -EXAMPLES = ./examples/ -TEST_SUITE = ./test-suite/ - -CREATED_SUPPORT = bash_endian.h signames.h sysdefs.h \ - $(SDIR)getcppsyms recho tests/recho - -/**/# Keep GNU Make from exporting the entire environment for small machines. -.NOEXPORT: - -.made: $(Program) bashbug - cp .machine .made - -$(Program): .build $(OBJECTS) $(LIBDEP) $(srcdir)/.distribution - $(RM) $@ - $(PURIFY) $(CC) $(LDFLAGS) $(LIBRARY_LDFLAGS) -o $(Program) $(OBJECTS) $(LIBRARIES) - ls -l $(Program) - size $(Program) - -.build: $(SOURCES) cpp-Makefile mkversion - if ./mkversion -dir $(srcdir) -build; then mv -f newversion.h version.h; fi - @echo - @echo " ***************************************************" - @echo " * *" - @echo " * Making Bash-`cat $(srcdir)/.distribution`.`cat $(srcdir)/.patchlevel` for a $(Machine) running $(OS)" - @echo " * *" - @echo " ***************************************************" - @echo - @echo "$(Program) last made for a $(Machine) running $(OS)" >.machine - -bashbug: $(SUPPORT_SRC)bashbug.sh cpp-Makefile mkversion - @sed -e "s:@MACHINE@:$(Machine):" -e "s:@OS@:$(OS):" \ - -e "s:@CFLAGS@:$(CCFLAGS):" -e "s:@CC@:$(CC):" \ - -e "s:@RELEASE@:`cat $(srcdir)/.distribution`:" \ - -e "s:@PATCHLEVEL@:`cat $(srcdir)/.patchlevel`:" \ - $(SUPPORT_SRC)bashbug.sh > $@ - @chmod a+rx bashbug - -version.h: mkversion - if ./mkversion -dir $(srcdir) -build; then mv -f newversion.h version.h; fi - -y.tab.c: parser-built -y.tab.h: parser-built -parser-built: parse.y parser.h command.h stdc.h input.h - $(RM) $@ - -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi - $(YACC) -d $(srcdir)/parse.y - -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; fi - touch $@ - -#if defined (READLINE) && defined (HAVE_READLINE_SOURCE) -$(READLINE_LIBRARY): $(READLINE_SOURCE) - build_lib_in_dir ($(RL_LIBDIR), libreadline.a, srcdir=$(RL_ABSSRC), $(RL_ABSSRC)Makefile) -#endif /* READLINE && HAVE_READLINE_SOURCE */ - -#if defined (HISTORY) && defined (HAVE_HISTORY_SOURCE) && !defined (READLINE) -$(HISTORY_LIBRARY): $(HISTORY_SOURCE) - build_lib_in_dir ($(HIST_LIBDIR), libhistory.a, srcdir=$(HIST_ABSSRC), $(HIST_ABSSRC)Makefile) -#endif /* HISTORY && HAVE_HISTORY_SOURCE && !READLINE */ - -#if defined (HAVE_TERMCAP_SOURCE) -$(TERMCAP_LIBRARY): $(TERMCAP_SOURCE) - build_lib_in_dir ($(TERM_LIBDIR), libtermcap.a, srcdir=$(TERM_ABSSRC), $(TERM_ABSSRC)Makefile) -#endif /* HAVE_TERMCAP_SOURCE */ - -#if defined (USE_GLOB_LIBRARY) -$(GLOB_LIBRARY): $(GLOB_SOURCE) - build_lib_in_dir ($(GLOB_LIBDIR), libglob.a, srcdir=$(GLOB_ABSSRC), $(GLOB_ABSSRC)Makefile) -#endif /* USE_GLOB_LIBRARY */ - -#if defined (HAVE_TILDE_SOURCE) -$(TILDE_LIBRARY): $(TILDE_SOURCE) - build_lib_in_dir ($(TILDE_LIBDIR), libtilde.a, srcdir=$(TILDE_ABSSRC), $(TILDE_ABSSRC)Makefile) -#endif /* HAVE_TILDE_SOURCE */ - -mkendian: $(SUPPORT_SRC)endian.c - $(CC) $(CCFLAGS) $(CPPFLAGS) -o $@ $(SUPPORT_SRC)endian.c - -bash_endian.h: mkendian - $(RM) $@ - ./mkendian $@ - -mksignames: $(SUPPORT_SRC)mksignames.c - $(CC) $(CCFLAGS) $(CPPFLAGS) -o $@ $(SUPPORT_SRC)mksignames.c - -signames.h: mksignames - $(RM) $@ - ./mksignames $@ - -builtins/libbuiltins.a: $(BUILTIN_OBJS) config.h memalloc.h - build_builtins (libbuiltins.a) - -builtins/common.o: $(BUILTIN_SRCDIR)common.c - build_builtins (common.o) -builtins/bashgetopt.o: $(BUILTIN_SRCDIR)bashgetopt.c - build_builtins (bashgetopt.o) - -builtins/builtext.h: builtins/libbuiltins.a - -/* Dependencies for the main bash source. */ -copy_cmd.o: shell.h sig.h command.h stdc.h hash.h -copy_cmd.o: general.h variables.h config.h memalloc.h quit.h -copy_cmd.o: dispose_cmd.h make_cmd.h subst.h externs.h -dispose_cmd.o: shell.h sig.h command.h stdc.h -dispose_cmd.o: general.h variables.h config.h memalloc.h quit.h -dispose_cmd.o: dispose_cmd.h make_cmd.h subst.h externs.h -error.o: error.h -execute_cmd.o: shell.h sig.h command.h stdc.h y.tab.h posixstat.h flags.h jobs.h -execute_cmd.o: general.h variables.h config.h memalloc.h quit.h hash.h -execute_cmd.o: unwind_prot.h siglist.h builtins/builtext.h -execute_cmd.o: dispose_cmd.h make_cmd.h subst.h externs.h bashtypes.h -expr.o: shell.h sig.h command.h stdc.h hash.h -expr.o: general.h variables.h config.h memalloc.h quit.h -expr.o: dispose_cmd.h make_cmd.h subst.h externs.h -flags.o: flags.h stdc.h config.h memalloc.h general.h quit.h -general.o: shell.h sig.h command.h stdc.h maxpath.h -general.o: general.h variables.h config.h memalloc.h quit.h machines.h -general.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -hash.o: shell.h sig.h command.h stdc.h hash.h -hash.o: general.h variables.h config.h memalloc.h quit.h -hash.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -jobs.o: shell.h sig.h command.h stdc.h hash.h trap.h jobs.h siglist.h -jobs.o: general.h variables.h config.h memalloc.h quit.h -jobs.o: dispose_cmd.h make_cmd.h subst.h externs.h builtins/builtext.h -mailcheck.o: posixstat.h maxpath.h variables.h -mailcheck.o: hash.h quit.h mailcheck.h -make_cmd.o: shell.h sig.h command.h stdc.h flags.h input.h bashtypes.h -make_cmd.o: general.h variables.h config.h memalloc.h quit.h -make_cmd.o: dispose_cmd.h make_cmd.h subst.h externs.h -y.tab.o: shell.h sig.h command.h stdc.h flags.h maxpath.h alias.h -y.tab.o: general.h variables.h config.h memalloc.h quit.h mailcheck.h -y.tab.o: dispose_cmd.h make_cmd.h subst.h externs.h bashtypes.h bashline.h -print_cmd.o: shell.h sig.h command.h stdc.h y.tab.h -print_cmd.o: general.h variables.h config.h memalloc.h quit.h -print_cmd.o: dispose_cmd.h make_cmd.h subst.h externs.h -shell.o: shell.h sig.h command.h stdc.h flags.h machines.h stdc.h parser.h -shell.o: general.h variables.h config.h memalloc.h quit.h -shell.o: dispose_cmd.h make_cmd.h subst.h externs.h mailcheck.h -shell.o: posixstat.h filecntl.h jobs.h input.h $(ENDIAN_HEADER) -subst.o: shell.h sig.h command.h stdc.h flags.h jobs.h siglist.h bashtypes.h -subst.o: general.h variables.h config.h memalloc.h quit.h -subst.o: dispose_cmd.h make_cmd.h subst.h externs.h execute_cmd.h -subst.o: builtins/getopt.h $(GLOB_LIBSRC)glob.h bashline.h -test.o: posixstat.h -trap.o: trap.h shell.h sig.h command.h stdc.h hash.h unwind_prot.h signames.h -trap.o: general.h variables.h config.h memalloc.h quit.h -trap.o: dispose_cmd.h make_cmd.h subst.h externs.h -unwind_prot.o: config.h memalloc.h general.h unwind_prot.h sig.h -variables.o: shell.h sig.h command.h stdc.h hash.h flags.h mailcheck.h -variables.o: config.h memalloc.h general.h variables.h quit.h -variables.o: execute_cmd.h dispose_cmd.h make_cmd.h subst.h externs.h -sig.o: shell.h sig.h command.h stdc.h hash.h flags.h -sig.o: config.h memalloc.h general.h variables.h quit.h -sig.o: bashtypes.h jobs.h bashline.h -version.o: version.h .build - -alias.o: ansi_stdlib.h -bashline.o: ansi_stdlib.h -variables.o: ansi_stdlib.h -shell.o: ansi_stdlib.h -error.o: ansi_stdlib.h -hash.o: ansi_stdlib.h -signames.o: ansi_stdlib.h -expr.o: ansi_stdlib.h -general.o: ansi_stdlib.h -input.o: ansi_stdlib.h - -#if !defined (JOB_CONTROL) -jobs.o: nojobs.c -#endif /* !JOB_CONTROL */ - -array.o: general.h shell.h sig.h variables.h quit.h config.h memalloc.h -array.o: command.h error.h maxpath.h unwind_prot.h dispose_cmd.h -array.o: make_cmd.h subst.h externs.h -array.o: array.h stdc.h builtins/common.h - -braces.o: general.h shell.h sig.h variables.h quit.h config.h memalloc.h -braces.o: dispose_cmd.h make_cmd.h subst.h externs.h -braces.o: maxpath.h unwind_prot.h command.h stdc.h - -bracecomp.o: bracecomp.c -bracecomp.o: shell.h sig.h command.h hash.h builtins.h general.h variables.h -bracecomp.o: quit.h alias.h config.h -bracecomp.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -#if defined (HAVE_READLINE_SOURCE) -bracecomp.o: $(RL_LIBSRC)readline.h -#endif /* HAVE_READLINE_SOURCE */ - -bashline.o: shell.h sig.h command.h stdc.h hash.h builtins.h execute_cmd.h -bashline.o: general.h variables.h config.h memalloc.h quit.h alias.h -bashline.o: dispose_cmd.h make_cmd.h subst.h externs.h config.h bashline.h -bashline.o: $(GLOB_LIBSRC)glob.h - -bashhist.o: config.h bashansi.h posixstat.h filecntl.h -bashhist.o: shell.h sig.h command.h stdc.h hash.h builtins.h execute_cmd.h -bashhist.o: general.h variables.h memalloc.h quit.h alias.h -bashhist.o: dispose_cmd.h make_cmd.h subst.h externs.h flags.h - -/* Dependencies which rely on the user using the source to READLINE. */ -#if defined (READLINE) && defined (HAVE_READLINE_SOURCE) -bashline.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h -y.tab.o: $(RL_LIBSRC)keymaps.h $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h -#endif /* READLINE && HAVE_READLINE_SOURCE */ - -#if defined (HISTORY) && defined (HAVE_HISTORY_SOURCE) -subst.o: $(HIST_LIBSRC)history.h -bashline.o: $(HIST_LIBSRC)history.h -bashhist.o: $(HIST_LIBSRC)history.h -y.tab.o: $(HIST_LIBSRC)history.h -#endif /* HISTORY && HAVE_HISTORY_SOURCE */ - -#if defined (USE_GLOB_LIBRARY) -subst.o: $(GLOB_LIBSRC)fnmatch.h -execute_cmd.o: $(GLOB_LIBSRC)fnmatch.h -bashhist.o: $(GLOB_LIBSRC)fnmatch.h -#endif /* USE_GLOB_LIBRARY */ - -#if defined (HAVE_TILDE_SOURCE) -execute_cmd.o: $(TILDE_LIBSRC)tilde.h -general.o: $(TILDE_LIBSRC)tilde.h -mailcheck.o: $(TILDE_LIBSRC)tilde.h -shell.o: $(TILDE_LIBSRC)tilde.h -subst.o: $(TILDE_LIBSRC)tilde.h -variables.o: $(TILDE_LIBSRC)tilde.h -#endif /* HAVE_TILDE_SOURCE */ - -/* Dependencies for the shell builtins. */ -builtins/common.o: shell.h sig.h command.h config.h memalloc.h general.h error.h -builtins/common.o: variables.h input.h $(DEFDIR)hashcom.h siglist.h -builtins/common.o: quit.h unwind_prot.h maxpath.h jobs.h builtins.h -builtins/common.o: dispose_cmd.h make_cmd.h subst.h externs.h bashhist.h -builtins/common.o: execute_cmd.h stdc.h -builtins/alias.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/alias.o: quit.h builtins/common.h -builtins/alias.o: shell.h sig.h command.h stdc.h unwind_prot.h variables.h -builtins/alias.o: dispose_cmd.h make_cmd.h subst.h externs.h -builtins/bind.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/bind.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/bind.o: shell.h sig.h unwind_prot.h variables.h quit.h -builtins/bind.o: $(DEFDIR)bashgetopt.h -builtins/break.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/break.o: shell.h sig.h unwind_prot.h variables.h quit.h -builtins/break.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/builtin.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/builtin.o: quit.h $(DEFDIR)common.h -builtins/builtin.o: shell.h sig.h unwind_prot.h variables.h -builtins/builtin.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/cd.o: command.h config.h memalloc.h error.h general.h maxpath.h quit.h -builtins/cd.o: shell.h sig.h unwind_prot.h variables.h $(DEFDIR)common.h -builtins/cd.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/command.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/command.o: quit.h $(DEFDIR)bashgetopt.h -builtins/command.o: shell.h sig.h unwind_prot.h variables.h -builtins/command.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/declare.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/declare.o: shell.h sig.h unwind_prot.h variables.h quit.h -builtins/declare.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/echo.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/echo.o: shell.h sig.h unwind_prot.h variables.h quit.h -builtins/echo.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/enable.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/enable.o: shell.h sig.h unwind_prot.h variables.h quit.h -builtins/enable.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/eval.o: command.h config.h memalloc.h error.h general.h maxpath.h quit.h -builtins/eval.o: shell.h sig.h unwind_prot.h variables.h -builtins/eval.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/exec.o: command.h config.h memalloc.h error.h general.h maxpath.h quit.h -builtins/exec.o: shell.h sig.h unwind_prot.h variables.h $(DEFDIR)common.h stdc.h -builtins/exec.o: dispose_cmd.h make_cmd.h subst.h externs.h execute_cmd.h -builtins/exec.o: flags.h -builtins/exit.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/exit.o: shell.h sig.h unwind_prot.h variables.h quit.h -builtins/exit.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/fc.o: builtins.h command.h stdc.h -builtins/fc.o: command.h config.h memalloc.h error.h general.h maxpath.h quit.h -builtins/fc.o: flags.h unwind_prot.h variables.h shell.h sig.h -builtins/fc.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/fc.o: $(DEFDIR)bashgetopt.h bashhist.h -builtins/fg_bg.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/fg_bg.o: shell.h sig.h unwind_prot.h variables.h quit.h -builtins/fg_bg.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/getopts.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/getopts.o: shell.h sig.h unwind_prot.h variables.h quit.h -builtins/getopts.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/hash.o: builtins.h command.h execute_cmd.h stdc.h -builtins/hash.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/hash.o: shell.h sig.h unwind_prot.h variables.h $(DEFDIR)common.h quit.h -builtins/help.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/help.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/help.o: shell.h sig.h unwind_prot.h variables.h quit.h -builtins/help.o: $(GLOB_LIBSRC)glob.h -builtins/history.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/history.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/history.o: filecntl.h shell.h sig.h unwind_prot.h variables.h -builtins/history.o: bashhist.h -builtins/inlib.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/inlib.o: shell.h sig.h unwind_prot.h variables.h quit.h -builtins/inlib.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/jobs.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/jobs.o: quit.h $(DEFDIR)bashgetopt.h -builtins/jobs.o: shell.h sig.h unwind_prot.h variables.h -builtins/jobs.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/kill.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/kill.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/kill.o: shell.h sig.h trap.h unwind_prot.h variables.h -builtins/let.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/let.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/let.o: shell.h sig.h unwind_prot.h variables.h -builtins/pushd.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/pushd.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/pushd.o: shell.h sig.h unwind_prot.h variables.h $(DEFDIR)common.h -builtins/read.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/read.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/read.o: shell.h sig.h unwind_prot.h variables.h -builtins/return.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/return.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/return.o: shell.h sig.h unwind_prot.h variables.h -builtins/set.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/set.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h -builtins/set.o: shell.h sig.h unwind_prot.h variables.h flags.h stdc.h -builtins/setattr.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/setattr.o: quit.h $(DEFDIR)common.h $(DEFDIR)bashgetopt.h -builtins/setattr.o: shell.h sig.h unwind_prot.h variables.h -builtins/setattr.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/shift.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/shift.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/shift.o: shell.h sig.h unwind_prot.h variables.h -builtins/shift.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/source.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/source.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/source.o: shell.h sig.h unwind_prot.h variables.h -builtins/suspend.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/suspend.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/suspend.o: shell.h sig.h unwind_prot.h variables.h -builtins/test.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/test.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/test.o: shell.h sig.h unwind_prot.h variables.h -builtins/times.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/times.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/times.o: shell.h sig.h unwind_prot.h variables.h -builtins/trap.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/trap.o: quit.h $(DEFDIR)common.h -builtins/trap.o: shell.h sig.h unwind_prot.h variables.h -builtins/trap.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/type.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/type.o: quit.h $(DEFDIR)common.h -builtins/type.o: shell.h sig.h unwind_prot.h variables.h execute_cmd.h -builtins/type.o: dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/ulimit.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/ulimit.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/ulimit.o: shell.h sig.h unwind_prot.h variables.h -builtins/umask.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/umask.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/umask.o: shell.h sig.h unwind_prot.h variables.h -builtins/wait.o: command.h config.h memalloc.h error.h general.h maxpath.h -builtins/wait.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h stdc.h -builtins/wait.o: shell.h sig.h unwind_prot.h variables.h -builtins/shopt.o: command.h config.h memalloc.h error.h general.h -builtins/shopt.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h -builtins/shopt.o: shell.h unwind_prot.h variables.h maxpath.h -builtins/shopt.o: builtins/common.h builtins/bashgetopt.h - -builtins/bashgetopt.o: bashansi.h ansi_stdlib.h -builtins/mkbuiltins.o: bashansi.h ansi_stdlib.h -builtins/fc.o: bashansi.h ansi_stdlib.h - -#if defined (READLINE) && defined (HAVE_READLINE_SOURCE) -builtins/bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h -#endif /* READLINE && HAVE_READLINE_SOURCE */ - -#if defined (HISTORY) && defined (HAVE_HISTORY_SOURCE) -builtins/bind.o: $(HIST_LIBSRC)history.h -builtins/fc.o: $(HIST_LIBSRC)history.h -builtins/history.o: $(HIST_LIBSRC)history.h -#endif /* HISTORY && HAVE_HISTORY_SOURCE */ - -#if defined (HAVE_TILDE_SOURCE) -builtins/common.o: $(TILDE_LIBSRC)tilde.h -builtins/cd.o: $(TILDE_LIBSRC)tilde.h -#endif /* HAVE_TILDE_SOURCE */ - -builtins/alias.o: builtins/alias.def -builtins/bind.o: builtins/bind.def -builtins/break.o: builtins/break.def -builtins/builtin.o: builtins/builtin.def -builtins/cd.o: builtins/cd.def -builtins/colon.o: builtins/colon.def -builtins/command.o: builtins/command.def -builtins/declare.o: builtins/declare.def -builtins/echo.o: builtins/echo.def -builtins/enable.o: builtins/enable.def -builtins/eval.o: builtins/eval.def -builtins/exec.o: builtins/exec.def -builtins/exit.o: builtins/exit.def -builtins/fc.o: builtins/fc.def -builtins/fg_bg.o: builtins/fg_bg.def -builtins/getopts.o: builtins/getopts.def -builtins/hash.o: builtins/hash.def -builtins/help.o: builtins/help.def -builtins/history.o: builtins/history.def -builtins/inlib.o: builtins/inlib.def -builtins/jobs.o: builtins/jobs.def -builtins/kill.o: builtins/kill.def -builtins/let.o: builtins/let.def -builtins/pushd.o: builtins/pushd.def -builtins/read.o: builtins/read.def -builtins/reserved.o: builtins/reserved.def -builtins/return.o: builtins/return.def -builtins/set.o: builtins/set.def -builtins/setattr.o: builtins/setattr.def -builtins/shift.o: builtins/shift.def -builtins/shopt.o: builtins/shopt.def -builtins/source.o: builtins/source.def -builtins/suspend.o: builtins/suspend.def -builtins/test.o: builtins/test.def -builtins/times.o: builtins/times.def -builtins/trap.o: builtins/trap.def -builtins/type.o: builtins/type.def -builtins/ulimit.o: builtins/ulimit.def -builtins/umask.o: builtins/umask.def -builtins/wait.o: builtins/wait.def - -install: .made - $(INSTALL_PROGRAM) $(Program) $(bindir)/$(Program) - $(INSTALL_PROGRAM) bashbug $(bindir)/bashbug - $(RM) installed-$(Program) - -ln -s $(bindir)/$(Program) installed-$(Program) - ( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) mandir=$(mandir) \ - man3dir=$(man3dir) infodir=$(infodir) \ - INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ - INSTALL_DATA="${INSTALL_DATA}" $@ ) - -uninstall: .made - $(RM) $(bindir)/$(Program) installed-$(Program) $(bindir)/bashbug - ( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) mandir=$(mandir) man3dir=$(man3dir) infodir=$(infodir) $@ ) - -.distribution: - ./mkversion -dir $(srcdir) -dist `$(Program) -c 'echo $$BASH_VERSION'` - -mkversion: $(SUPPORT_SRC)mkversion.c - $(CC) $(CCFLAGS) $(CPPFLAGS) -I$(srcdir) -I.. -o $@ $(SUPPORT_SRC)mkversion.c - -newversion: mkversion - $(RM) .build - ./mkversion -dir $(srcdir) -dist - mv -f newversion.h version.h - $(MAKE) -f $(srcdir)/Makefile $(MFLAGS) srcdir=$(srcdir) - -texindex: force - build_lib_in_dir($(LIBPATH)doc-support, texindex, $${topdir}/lib/doc-support, $${topdir}/lib/doc-support/Makefile) - -documentation: force texindex - (cd $(DOCDIR); $(MAKE) $(MFLAGS) CFLAGS='$(CCFLAGS)') - -force: - -tags: $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE) - etags $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE) - -TAGS: $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE) - ctags -x $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE) > $@ - -clean: - $(RM) $(OBJECTS) $(Program) bashbug ansi-Makefile *.aux - $(RM) .build .made .machine version.h - $(RM) $(CREATED_SUPPORT) bash-Makefile tags TAGS - (cd $(DOCDIR); $(MAKE) $(MFLAGS) clean) - (cd builtins; $(MAKE) $(MFLAGS) clean) - $(CLEAN_READLINE) ; - $(CLEAN_HISTORY) ; - $(CLEAN_TERMCAP) ; - $(CLEAN_GLOB) ; - $(CLEAN_TILDE) ; - $(CLEAN_MALLOC) ; - -distclean: clean - $(RM) installed-bash - -realclean: clean - $(RM) y.tab.c y.tab.h parser-built installed-bash - -recho: $(SUPPORT_SRC)recho.c - @$(CC) -o $@ $(SUPPORT_SRC)recho.c - -tests: force $(Program) recho - -[ -d tests ] || mkdir tests - @cp recho $(SUPPORT_SRC)printenv tests - ( cd tests ; sh run-all ) diff --git a/CWRU/old-conf/machines.h b/CWRU/old-conf/machines.h deleted file mode 100644 index 3a6633892..000000000 --- a/CWRU/old-conf/machines.h +++ /dev/null @@ -1,2314 +0,0 @@ -/* machines.h -- - Included file in the makefile that gets run through Cpp. This file - tells which machines have what features based on the unique machine - identifier present in Cpp. */ - -/* Copyright (C) 1993 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/* **************************************************************** */ -/* */ -/* Global Assumptions (true for most systems). */ -/* */ -/* **************************************************************** */ - -/* We make some global assumptions here. This can be #undef'ed in - various machine specific entries. */ - -/* If this file is being processed with Gcc, then the user has Gcc. */ -#if defined (__GNUC__) && !defined (NeXT) && !defined (__FreeBSD__) -# if !defined (HAVE_GCC) -# define HAVE_GCC -# endif /* HAVE_GCC */ -#endif /* __GNUC__ && !NeXT && !__FreeBSD__ **/ - -/* Assume that all machines have the getwd () system call. We unset it - for USG systems. */ -#define HAVE_GETWD - -/* Assume that all systems have a working getcwd () call. We unset it for - ISC systems. */ -#define HAVE_GETCWD - -/* Most (but not all) systems have a good, working version of dup2 (). - For systems that don't have the call (HP/UX), and for systems - that don't set the open-on-exec flag for the dup'ed file descriptors, - (Sequents running Dynix, Ultrix), #undef HAVE_DUP2 in the machine - description. */ -#define HAVE_DUP2 - -/* Every machine that has Gcc has alloca as a builtin in Gcc. If you are - compiling Bash without Gcc, then you must have alloca in a library, - in your C compiler, or be able to assemble or compile the alloca source - that we ship with Bash. */ -#define HAVE_ALLOCA - -/* We like most machines to use the GNU Malloc routines supplied in the - source code because they provide high quality error checking. On - some machines, our malloc () cannot be used (because of library - conflicts, for example), and for those, you should specifically - #undef USE_GNU_MALLOC in the machine description. */ -#define USE_GNU_MALLOC - -/* This causes the Gnu malloc library (from glibc) to be used. */ -/* #define USE_GNU_MALLOC_LIBRARY */ - -/* Assume that every operating system supplies strchr () and strrchr () - in a standard library until proven otherwise. */ -#define HAVE_STRCHR - -/* Hardware-dependent CFLAGS. */ -#define MACHINE_CFLAGS - -/* **************************************************************** */ -/* */ -/* Sun Microsystems Machines */ -/* */ -/* **************************************************************** */ - -/* NetBSD running on a sparc. */ -#if defined (sparc) && defined (__NetBSD__) -# define M_MACHINE "sun4" -# define M_OS "NetBSD" -# define SYSDEP_CFLAGS -DOPENDIR_NOT_ROBUST -DINT_GROUPS_ARRAY \ - -DRLIMTYPE=quad_t -# define SYSDEP_LDFLAGS -static -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define HAVE_DIRENT -# define HAVE_STRCASECMP -#endif /* sparc && __NetBSD__ */ - -#if defined (sun) && !defined (M_MACHINE) -/* We aren't currently using GNU Malloc on Suns because of a bug in Sun's - YP which bites us when Sun free ()'s an already free ()'ed address. - When Sun fixes their YP, we can start using our winning malloc again. */ -/* #undef USE_GNU_MALLOC */ - -/* Most Sun systems have signal handler functions that are void. */ -# define VOID_SIGHANDLER - -/* Most Sun systems have the following. */ -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define HAVE_GETGROUPS - -/* Check for SunOS4 or greater. */ -# if defined (SunOS5) -# define M_OS "SunOS5" -# define SYSDEP_CFLAGS -DUSGr4 -DUSG -DSolaris -DOPENDIR_NOT_ROBUST \ - -DSBRK_DECLARED -DINT_GROUPS_ARRAY -# define EXTRA_LIB_SEARCH_PATH /usr/ccs/lib -# if !defined (HAVE_GCC) -# define REQUIRED_LIBRARIES -ldl -# define SYSDEP_LDFLAGS -Bdynamic -# endif /* !HAVE_GCC */ -# define HAVE_STRERROR -# undef HAVE_GETWD -# undef HAVE_SETLINEBUF -# endif /* SunOS5 */ - -# if defined (SunOS4) -# define M_OS "SunOS4" -# define SYSDEP_CFLAGS -DHAVE_BSD_PGRP -DOPENDIR_NOT_ROBUST -DTERMIOS_LDISC \ - -DINT_GROUPS_ARRAY -# define HAVE_DIRENT -# define HAVE_DLOPEN -# define HAVE_DLSYM -# define HAVE_DLCLOSE -# define REQUIRED_LIBRARIES -ldl -# if !defined (HAVE_GCC) -# define SYSDEP_LDFLAGS -Bdynamic -# endif -# endif /* SunOS4 */ - -# if !defined (SunOS4) && !defined (SunOS5) -# define M_OS "SunOS3" -# if !defined (sparc) && !defined (__sparc__) -# undef VOID_SIGHANDLER -# endif /* !sparc */ -# endif /* !SunOS4 && !SunOS5 */ - -# if defined (mc68010) -# define sun2 -# define M_MACHINE "sun2" -# endif -# if defined (mc68020) -# define sun3 -# define M_MACHINE "sun3" -# endif -# if defined (sparc) || defined (__sparc__) -# define sun4 -# define M_MACHINE "sparc" -# endif -# if defined (i386) -# define done386 -# if !defined (SunOS5) -# define Sun386i -# define M_MACHINE "Sun386i" -# else -# define M_MACHINE "i386" -# endif -# endif /* i386 */ - -#endif /* sun && !M_MACHINE */ - -/* **************************************************************** */ -/* */ -/* DEC Machines (vax, decstations) */ -/* */ -/* **************************************************************** */ - -/* ************************ */ -/* */ -/* Alpha with OSF/1 */ -/* */ -/* ************************ */ -#if defined (__alpha) || defined (alpha) -# define M_MACHINE "alpha" -# define M_OS "OSF1" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define HAVE_STRERROR -# define HAVE_GETGROUPS -# define VOID_SIGHANDLER -# define HAVE_DLOPEN -# define HAVE_DLSYM -# define HAVE_DLCLOSE -# define USE_TERMCAP_EMULATION -# if !defined (__GNUC__) -# define SYSDEP_CFLAGS -DNLS -D_BSD -# endif /* !__GNUC__ */ -# undef HAVE_ALLOCA -# undef USE_GNU_MALLOC -#endif /* __alpha || alpha */ - -/* ************************ */ -/* */ -/* Ultrix */ -/* */ -/* ************************ */ -#if defined (ultrix) -# if defined (MIPSEL) -# undef HAVE_ALLOCA_H -# define M_MACHINE "MIPSEL" -# else /* !MIPSEL */ -# define M_MACHINE "vax" -# endif /* !MIPSEL */ -# define SYSDEP_CFLAGS -DHAVE_BSD_PGRP -DTERMIOS_MISSING -DTERMIOS_LDISC \ - -DINT_GROUPS_ARRAY -# define M_OS "Ultrix" -# define HAVE_DIRENT -# define VOID_SIGHANDLER -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define HAVE_GETGROUPS -# undef HAVE_DUP2 -#endif /* ultrix */ - -/* ************************ */ -/* */ -/* VAX 4.3 BSD */ -/* */ -/* ************************ */ -#if defined (vax) && !defined (ultrix) -# define M_MACHINE "vax" -# define M_OS "Bsd" -# define HAVE_SETLINEBUF -# define HAVE_SYS_SIGLIST -# define HAVE_GETGROUPS -# define USE_VFPRINTF_EMULATION -#endif /* vax && !ultrix */ - -/* ************************ */ -/* */ -/* Tahoe 4.3 BSD */ -/* */ -/* ************************ */ -#if defined (tahoe) -# define M_MACHINE "tahoe" -# define M_OS "Bsd" -# define HAVE_SETLINEBUF -# define HAVE_SYS_SIGLIST -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -#endif /* tahoe */ - -/* **************************************************************** */ -/* */ -/* Machines with MIPSco processors */ -/* */ -/* **************************************************************** */ - -/* **************************************** */ -/* */ -/* SGI Iris/IRIX */ -/* */ -/* **************************************** */ -#if defined (sgi) -# if defined (Irix3) -# define M_OS "Irix3" -# if !defined (HAVE_GCC) -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -real_frameptr -Wf,-XNl3072 -# endif -# undef HAVE_ALLOCA -# endif /* Irix3 */ -# if defined (Irix4) -# define M_OS "Irix4" -# if !defined (HAVE_GCC) -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -Wf,-XNl3072 -# endif -# endif /* Irix4 */ -# if defined (Irix5) -# define M_OS "Irix5" -# if !defined (HAVE_GCC) -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -Wf,-XNl3072 -# endif -# endif /* Irix5 */ -# if defined (Irix6) -# define M_OS "Irix6" -# if !defined (HAVE_GCC) -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -mips2 -# endif /* !HAVE_GCC */ -# endif /* Irix6 */ -# define M_MACHINE "sgi" -# define HAVE_GETGROUPS -# define VOID_SIGHANDLER -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# if !defined (Irix6) -# define REQUIRED_LIBRARIES -lsun -# endif /* !Irix6 */ - /* SGI cc uses ansi c features *without* defining __STDC__ */ -# if defined (__EXTENSIONS__) && !defined (__STDC__) -# define ANSIC -D__STDC__ -# else -# define ANSIC -# endif /* !__EXTENSIONS__ || __STDC__ */ -# if defined (Irix5) || defined (Irix6) -# define SGI_CFLAGS -DUSG -DPGRP_PIPE -DHAVE_BCOPY -DHAVE_GETPW_DECLS \ - -DHAVE_SOCKETS -DSBRK_DECLARED -# else -# define SGI_CFLAGS -DUSG -DPGRP_PIPE -DHAVE_BCOPY -DHAVE_GETPW_DECLS \ - -DHAVE_SOCKETS -# endif /* !Irix5 */ -# define SYSDEP_CFLAGS SGI_CFLAGS MACHINE_CFLAGS ANSIC -#endif /* sgi */ - -/* ************************ */ -/* */ -/* NEC EWS 4800 */ -/* */ -/* ************************ */ -#if defined (nec_ews) -# if defined (SYSTYPE_SYSV) || defined (USGr4) -# define M_MACHINE "ews4800" -# define M_OS "USG" -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_STRERROR -# define HAVE_DUP2 -# undef HAVE_GETWD -# undef HAVE_RESOURCE /* ? */ - /* Alloca requires either Gcc or cc with -lucb. */ -# if !defined (HAVE_GCC) -# define EXTRA_LIB_SEARCH_PATH /usr/ucblib -# define REQUIRED_LIBRARIES -lc -lucb -# endif /* !HAVE_GCC */ -# if defined (MIPSEB) -# if !defined (HAVE_GCC) -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -Wf,-XNl3072 -# endif -# define SYSDEP_CFLAGS MACHINE_CFLAGS -DUSGr4 -DUSGr3 -D_POSIX_JOB_CONTROL -# else /* !MIPSEB */ -# define SYSDEP_CFLAGS -DUSGr4 -# endif /* MIPSEB */ -# else /* !SYSTYPE_SYSV && !USGr4 */ -# define M_OS "Bsd" -# endif /* !SYSTYPE_SYSV && !USGr4 */ -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -#endif /* nec_ews */ - -/* ************************ */ -/* */ -/* Generic MIPS SVR4, 4.2 */ -/* */ -/* ************************ */ -#if defined (MIPSEB) && defined (USGr4) -# define M_MACHINE "MIPSEB" -# define M_OS "USG" -# if defined (sony) && !defined (HAVE_GCC) -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -Wf,-XNl3072 -# endif -/* XXX - os/svr4.h -- for the future -- XXX */ -# undef HAVE_GETWD -# define HAVE_DIRENT -# define HAVE_STRERROR -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -/* alloca */ -# if !defined (HAVE_GCC) -# define EXTRA_LIB_SEARCH_PATH /usr/ucblib -# define REQUIRED_LIBRARIES -lc -lucb -# endif /* !HAVE_GCC */ -# if defined (USGr4_2) -# define SYSDEP_CFLAGS MACHINE_CFLAGS -DUSGr4 -DUSGr4_2 -# else -# define SYSDEP_CFLAGS MACHINE_CFLAGS -DUSGr4 -# endif /* !USGr4_2 */ -#endif - -/* ************************ */ -/* */ -/* Sony */ -/* */ -/* ************************ */ -#if defined (sony) && !defined (M_MACHINE) -# if defined (MIPSEB) -# define M_MACHINE "MIPSEB" -# else /* !MIPSEB */ -# define M_MACHINE "sony" -# endif /* !MIPSEB */ - -# if defined (SYSTYPE_SYSV) || defined (USGr4) -# define M_OS "USG" -# undef HAVE_GETWD -# define HAVE_DIRENT -# define HAVE_STRERROR -# define HAVE_VPRINTF -# define VOID_SIGHANDLER - /* Alloca requires either Gcc or cc with -lucb. */ -# if !defined (HAVE_GCC) -# define EXTRA_LIB_SEARCH_PATH /usr/ucblib -# define REQUIRED_LIBRARIES -lc -lucb -# endif /* !HAVE_GCC */ -# if defined (MIPSEB) -# if !defined (HAVE_GCC) -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -Wf,-XNl3072 -# endif -# define SYSDEP_CFLAGS MACHINE_CFLAGS -DUSGr4 -# else /* !MIPSEB */ -# define SYSDEP_CFLAGS -DUSGr4 -# endif /* !MIPSEB */ -# else /* !SYSTYPE_SYSV && !USGr4 */ -# define M_OS "Bsd" -# define SYSDEP_CFLAGS -DHAVE_UID_T -# endif /* !SYSTYPE_SYSV && !USGr4 */ -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -#endif /* sony */ - -/* ******************************* */ -/* */ -/* Ardent Titan OS v2.2 and later */ -/* */ -/* ******************************* */ -#if defined (ardent) -# define M_MACHINE "Ardent Titan" -# define M_OS "Bsd" -# if defined (titan) -# undef HAVE_GETGROUPS -# else -# define HAVE_GETGROUPS -# endif /* !titan */ -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define SYSDEP_CFLAGS -43 -w -# define SYSDEP_LDFLAGS -43 -# undef HAVE_ALLOCA -# undef USE_GNU_MALLOC -# undef HAVE_VPRINTF -# undef HAVE_DIRENT_H -#endif /* ardent */ - -/* ************************ */ -/* */ -/* Stardent */ -/* */ -/* ************************ */ -#if defined (stardent) && !defined (M_MACHINE) -# define M_MACHINE "Stardent" -# define M_OS "USG" -# define HAVE_SYS_SIGLIST -# define USE_TERMCAP_EMULATION -# define VOID_SIGHANDLER -# undef HAVE_GETWD -# undef HAVE_ALLOCA -#endif /* stardent */ - -/* ******************************** */ -/* */ -/* MIPS RISC/os */ -/* */ -/* ******************************** */ - -/* Notes on compiling with "make": - - * Place /bsd43/bin in your PATH before /bin. - * Use `$(CC) -E' instead of `/lib/cpp' in Makefile. -*/ -#if defined (mips) && (!defined (M_MACHINE) || defined (RiscOS)) - -# if defined (MIPSEB) -# define M_MACHINE "MIPSEB" -# else /* !MIPSEB */ -# if defined (MIPSEL) -# define M_MACHINE "MIPSEL" -# else /* !MIPSEL */ -# define M_MACHINE "mips" -# endif /* !MIPSEL */ -# endif /* !MIPSEB */ - -# define M_OS "Bsd" - - /* Special things for machines from MIPS Co. */ -# define MIPS_CFLAGS -DOPENDIR_NOT_ROBUST -DPGRP_PIPE - -# if !defined (HAVE_GCC) -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -Wf,-XNl3072 -systype bsd43 -# endif /* !HAVE_GCC */ -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define HAVE_GETGROUPS -# undef HAVE_UNISTD_H -# if !defined (HAVE_RESOURCE) -# define HAVE_RESOURCE -# endif /* !HAVE_RESOURCE */ -# if defined (bsd4_4) -# define VOID_SIGHANDLER -# define HAVE_UNISTD_H /* ??? atsuo@harl.hitachi.co.jp */ -# define SYSDEP_CFLAGS MACHINE_CFLAGS MIPS_CFLAGS -D__BSD_4_4__ -# else - /* /usr/include/sys/wait.h appears not to work correctly, so why use it? */ -# undef HAVE_WAIT_H -# define SYSDEP_CFLAGS MACHINE_CFLAGS MIPS_CFLAGS -# endif -#endif /* mips */ - -/* ************************ */ -/* */ -/* Pyramid */ -/* */ -/* ************************ */ -#if defined (pyr) -# define M_MACHINE "Pyramid" -# define M_OS "Bsd" -# if !defined (HAVE_GCC) -# undef HAVE_ALLOCA -# endif /* HAVE_GCC */ -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -#endif /* pyr */ - -/* ************************ */ -/* */ -/* IBMRT */ -/* */ -/* ************************ */ -#if defined (ibm032) -# define M_MACHINE "IBMRT" -# define M_OS "Bsd" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define USE_VFPRINTF_EMULATION - /* Alloca requires either gcc or hc or pcc with -ma in SYSDEP_CFLAGS. */ -# if !defined (HAVE_GCC) -# define SYSDEP_CFLAGS -ma -U__STDC__ -# endif /* !HAVE_GCC */ -# define HAVE_GETGROUPS -/* #define USE_GNU_TERMCAP */ -#endif /* ibm032 */ - -/* **************************************************************** */ -/* */ -/* All Intel 386 Processor Machines are Defined Here! */ -/* */ -/* **************************************************************** */ - -#if defined (i386) - -/* Sequent Symmetry running Dynix/ptx 2.x */ -# if !defined (done386) && defined (_SEQUENT_) -# define done386 -# define M_MACHINE "Symmetry" -# define M_OS "Dynix" -# define DYNIX_CFLAGS -DHAVE_GETDTABLESIZE -DHAVE_SETDTABLESIZE \ - -DHAVE_GETPW_DECLS -DHAVE_SOCKETS -# define SYSDEP_CFLAGS -DUSG -DUSGr3 DYNIX_CFLAGS -# define HAVE_DIRENT -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -/* Might need to add -lsocket -linet -lnsl to the list of libraries. */ -# define REQUIRED_LIBRARIES -lPW -lseq -# undef HAVE_GETWD -# undef HAVE_RESOURCE -# undef HAVE_ALLOCA -# endif /* _SEQUENT_ */ - -/* Sequent Symmetry running Dynix (4.2 BSD) */ -# if !defined (done386) && defined (sequent) -# define done386 -# define M_MACHINE "Symmetry" -# define M_OS "Bsd" -# define SYSDEP_CFLAGS -DCPCC -DHAVE_SETDTABLESIZE -# define HAVE_SETLINEBUF -# define HAVE_SYS_SIGLIST -# define HAVE_GETGROUPS -# define LD_HAS_NO_DASH_L -# undef HAVE_DUP2 -# endif /* Sequent 386 */ - -/* NeXT 3.x on i386 */ -# if !defined (done386) && defined (NeXT) -# define done386 -# define M_MACHINE "i386" -# define M_OS "NeXTstep" -# define HAVE_VPRINTF -# define HAVE_SYS_SIGLIST -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# if !defined (HAVE_RESOURCE) -# define HAVE_RESOURCE -# endif -# define HAVE_STRCASECMP -# define GCC_STANDARD -# undef HAVE_GETWD -# undef HAVE_GETCWD -# undef USE_GNU_MALLOC -# undef HAVE_DIRENT_H -# define SYSDEP_CFLAGS -DNeXT -DMKFIFO_MISSING -DRLOGIN_PGRP_BUG -# endif - -/* Generic 386 clone running Mach (4.3 BSD-compatible). */ -# if !defined (done386) && defined (MACH) -# define done386 -# define M_MACHINE "i386" -# define M_OS "Bsd" -# define HAVE_SETLINEBUF -# define HAVE_SYS_SIGLIST -# define HAVE_GETGROUPS -# endif /* i386 && MACH */ - -/* AIX PS/2 1.[23] for the [34]86. */ -# if !defined (done386) && defined (aixpc) -# define done386 -# define M_MACHINE "aixpc" -# define M_OS "AIX" -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# if defined (AIX_13) /* AIX PS/2 1.3 */ -# define SYSDEP_CFLAGS -DTERMIOS_LDISC -# define REQUIRED_LIBRARIES -lc_s -# else -# define SYSDEP_CFLAGS -D_BSD -DTERMIOS_LDISC -# define REQUIRED_LIBRARIES -lbsd -lc_s -# endif /* !AIX_13 */ -# define HAVE_GETGROUPS -# if !defined (HAVE_GCC) -# undef HAVE_ALLOCA -# undef HAVE_ALLOCA_H -# endif /* !HAVE_GCC */ -# define USE_TERMCAP_EMULATION -# endif /* AIXPC i386 */ - -/* System V Release 4 on the 386 */ -# if !defined (done386) && defined (USGr4) -# define done386 -# define M_MACHINE "i386" -# define M_OS "USG" -# define HAVE_DIRENT -# define HAVE_SYS_SIGLIST -# define HAVE_VPRINTF -# define VOID_SIGHANDLER - /* Alloca requires either Gcc or cc with -lucb. */ -# if !defined (HAVE_GCC) -# define EXTRA_LIB_SEARCH_PATH /usr/ucblib -# define REQUIRED_LIBRARIES -lc -lucb -# endif /* !HAVE_GCC */ -# define HAVE_GETGROUPS -# if defined (USGr4_2) -# define SYSDEP_CFLAGS -DUSGr4 -DUSGr4_2 -DSBRK_DECLARED -# else -# define SYSDEP_CFLAGS -DUSGr4 -# endif /* ! USGr4_2 */ -# undef HAVE_GETWD -# endif /* System V Release 4 on i386 */ - -/* 386 box running Interactive Unix 2.2 or greater. */ -# if !defined (done386) && defined (isc386) -# define done386 -# define M_MACHINE "isc386" -# define M_OS "USG" -# define HAVE_DIRENT -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_GETGROUPS -# define USE_TERMCAP_EMULATION -# if defined (HAVE_GCC) -# define SYSDEP_LDFLAGS -posix -# define ISC_POSIX -# else -# define REQUIRED_LIBRARIES -lPW -# define SYSDEP_LDFLAGS -Xp -# define ISC_POSIX -Xp -# endif -# define ISC_SYSDEPS -DUSGr3 -DPGRP_PIPE -DHAVE_GETPW_DECLS -D_POSIX_SOURCE -DOPENDIR_NOT_ROBUST -DMEMMOVE_MISSING -# if defined (__STDC__) -# if defined (HAVE_GCC) -# define ISC_EXTRA -DO_NDELAY=O_NONBLOCK -# else -# define ISC_EXTRA -Dmode_t="unsigned short" -DO_NDELAY=O_NONBLOCK -# endif /* HAVE_GCC */ -# else -# define ISC_EXTRA -# endif /* __STDC__ */ -# define SYSDEP_CFLAGS ISC_SYSDEPS ISC_POSIX ISC_EXTRA -# undef HAVE_GETWD -# if !defined (ISC_4) -# undef HAVE_GETCWD -# else /* ISC_4 */ -# undef HAVE_RESOURCE -# endif /* ISC_4 */ -# endif /* isc386 */ - -/* Xenix386 machine (with help from Ronald Khoo ). */ -# if !defined (done386) && defined (Xenix386) -# define done386 -# define M_MACHINE "i386" -# define M_OS "Xenix" -# define XENIX_CFLAGS -DUSG -DUSGr3 -DMEMMOVE_MISSING - -# if defined (XENIX_22) -# define XENIX_EXTRA -DSETVBUF_REVERSED -# define REQUIRED_LIBRARIES -lx -# else /* !XENIX_22 */ -# define HAVE_DIRENT -# if defined (XENIX_23) -# define XENIX_EXTRA -DLD_HAS_NO_DASH_L -# define REQUIRED_LIBRARIES -ldir -# else /* !XENIX_23 */ -# define XENIX_EXTRA -xenix -# define SYSDEP_LDFLAGS -xenix -# define REQUIRED_LIBRARIES -ldir -l2.3 -# endif /* !XENIX_23 */ -# endif /* !XENIX_22 */ - -# define SYSDEP_CFLAGS XENIX_CFLAGS XENIX_EXTRA -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define ALLOCA_ASM x386-alloca.s -# define ALLOCA_OBJ x386-alloca.o -# undef HAVE_ALLOCA -# undef HAVE_GETWD -# undef HAVE_RESOURCE -# endif /* Xenix386 */ - -/* SCO UNIX 3.2 chip@count.tct.com (Chip Salzenberg) */ -# if !defined (done386) && defined (M_UNIX) -# define done386 -# define M_MACHINE "i386" -# define M_OS "SCO" -# define SCO_CFLAGS -DUSG -DUSGr3 -DNO_DEV_TTY_JOB_CONTROL -DPGRP_PIPE -# if defined (SCOv4) -# define SYSDEP_CFLAGS SCO_CFLAGS -DWAITPID_BROKEN -# else /* !SCOv4 */ -# define SYSDEP_CFLAGS SCO_CFLAGS -DMUST_UNBLOCK_CHLD -DOPENDIR_NOT_ROBUST -# endif /* !SCOv4 */ -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_GETGROUPS -# undef HAVE_GETWD -# undef HAVE_RESOURCE -/* advice from wbader@cess.lehigh.edu and Eduard.Vopicka@vse.cz */ -# if !defined (HAVE_GCC) -# define REQUIRED_LIBRARIES -lc_s -lc -lPW -# else -# define REQUIRED_LIBRARIES -lc_s -lc -# endif /* !HAVE_GCC */ -# endif /* SCO Unix on 386 boxes. */ - -# if !defined (done386) && defined (__OSF1__) -# define done386 -# define M_MACHINE "i386" -# define M_OS "OSF1" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define HAVE_STRERROR -# define HAVE_GETGROUPS -# define VOID_SIGHANDLER -# define HAVE_BCOPY -# define USE_TERMCAP_EMULATION -# define SYSDEP_CFLAGS -D_BSD -# define REQUIRED_LIBRARIES -lbsd -# endif /* OSF/1 */ - -/* BSDI BSD/OS running on a 386 or 486. */ -# if !defined (done386) && defined (__bsdi__) -# define done386 -# define M_MACHINE "i386" -# if defined (BSDI2) -# define M_OS "BSD_OS" -# define SYSDEP_CFLAGS -DOPENDIR_NOT_ROBUST -DRLIMTYPE=quad_t -# else -# define M_OS "BSD386" -# define SYSDEP_CFLAGS -DOPENDIR_NOT_ROBUST -DINT_GROUPS_ARRAY -# endif -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define HAVE_DIRENT -# define HAVE_STRCASECMP -# endif /* !done386 && bsdi */ - -/* NetBSD running on a 386 or 486. */ -# if !defined (done386) && defined (__NetBSD__) -# define done386 -# define M_MACHINE "i386" -# define M_OS "NetBSD" -# define SYSDEP_CFLAGS -DOPENDIR_NOT_ROBUST -DINT_GROUPS_ARRAY \ - -DRLIMTYPE=quad_t -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define HAVE_DIRENT -# define HAVE_STRCASECMP -# endif /* !done386 && __NetBSD__ */ - -/* FreeBSD running on a 386 or 486. */ -# if !defined (done386) && defined (__FreeBSD__) -# define done386 -# define M_MACHINE "i386" -# define M_OS "FreeBSD" -# if __FreeBSD__ > 1 -# define SYSDEP_CFLAGS -D__BSD_4_4__ -DRLIMTYPE=quad_t -# else -# define SYSDEP_CFLAGS -DOPENDIR_NOT_ROBUST -DINT_GROUPS_ARRAY -# endif -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define HAVE_DIRENT -# define HAVE_STRCASECMP -# define GCC_STANDARD -# endif /* !done386 && __FreeBSD__ */ - -/* Jolitz 386BSD running on a 386 or 486. */ -# if !defined (done386) && defined (__386BSD__) -# define done386 -# define M_MACHINE "i386" -# define M_OS "_386BSD" -# define SYSDEP_CFLAGS -DOPENDIR_NOT_ROBUST -DINT_GROUPS_ARRAY -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define HAVE_DIRENT -# define HAVE_STRCASECMP -# endif /* !done386 && __386BSD__ */ - -# if !defined (done386) && (defined (__linux__) || defined (linux)) -# define done386 -# define M_MACHINE "i386" -# define M_OS "Linux" -# define SYSDEP_CFLAGS -DHAVE_GETDTABLESIZE -DHAVE_BCOPY \ - -DHAVE_GETPW_DECLS -DHAVE_GETHOSTNAME -# define REQUIRED_LIBRARIES -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define HAVE_SYS_SIGLIST -# define HAVE_VPRINTF -# define HAVE_VARARGS_H -# define SEARCH_LIB_NEEDS_SPACE -# if defined (__GNUC__) -# define HAVE_FIXED_INCLUDES -# endif /* __GNUC__ */ -# undef USE_GNU_MALLOC -# undef HAVE_SETLINEBUF -# undef HAVE_GETWD -# endif /* !done386 && __linux__ */ - -/* QNX 4.2 with GCC pt@flard.ocunix.on.ca (Paul Trunley) */ -# if !defined (done386) && defined (qnx) -# define done386 -# define M_MACHINE "i386" -# define M_OS "QNX" -# define SYSDEP_CFLAGS -D_POSIX_SOURCE -O2 -DUSG -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_GCC -# define HAVE_FIXED_INCLUDES -# define HAVE_STRERROR -# define HAVE_GETGROUPS -# undef USE_GNU_MALLOC -# endif /* QNX 4.2 with GCC */ - -/* Lynx 2.1.0 (Mike Brennen ) */ -# if !defined (done386) && (defined (__Lynx__) || defined (Lynx)) -# define done386 -# define M_MACHINE "i386" -# define M_OS "Lynx" -# define SYSDEP_CFLAGS -DHAVE_GETDTABLESIZE -DHAVE_BCOPY -# define REQUIRED_LIBRARIES -lc_p -# define HAVE_GETGROUPS -# define VOID_SIGHANDLER -# define HAVE_SYS_SIGLIST -# define HAVE_VPRINTF -# define HAVE_VARARGS_H -# if defined (__GNUC__) -# define HAVE_FIXED_INCLUDES -# endif /* __GNUC__ */ -/* Actually, Lynx does have unistd.h, but it defines _POSIX_VERSION, - and doesn't supply a fully compatible job control package. We just - pretend that it doesn't have it. */ -# undef HAVE_UNISTD_H -/* Lynx's wait structure reverses w_Stopval and w_Stopsig - don't use it */ -# undef HAVE_WAIT_H -# undef HAVE_DIRENT_H -# endif /* !done386 && __Lynx__ */ - -/* Assume a generic 386 running Sys V Release 3. */ -# if !defined (done386) -# define done386 -# define M_MACHINE "i386" -# define M_OS "USG" -# define SYSDEP_CFLAGS -DUSGr3 -# define HAVE_VPRINTF -# define VOID_SIGHANDLER - /* Alloca requires either Gcc or cc with libPW.a */ -# if !defined (HAVE_GCC) -# define REQUIRED_LIBRARIES -lPW -# endif /* !HAVE_GCC */ -# undef HAVE_GETWD -# endif /* Generic i386 Box running Sys V release 3. */ -#endif /* All i386 Machines with an `i386' define in cpp. */ - -/* **************************************************************** */ -/* */ -/* Alliant FX/800 */ -/* */ -/* **************************************************************** */ -/* Original descs flushed. FX/2800 machine desc 1.13 bfox@ai.mit.edu. - Do NOT use -O with the stock compilers. If you must optimize, use - -uniproc with fxc, and avoid using scc. */ -#if defined (alliant) -# define M_MACHINE "alliant" -# define M_OS "Concentrix" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -# define HAVE_RESOURCE -# define VOID_SIGHANDLER -# define HAVE_STRERROR -# define USE_GNU_MALLOC -# define LD_HAS_NO_DASH_L -# define SYSDEP_CFLAGS -DTERMIOS_MISSING -DMKFIFO_MISSING \ - -DHAVE_BSD_PGRP -DRLOGIN_PGRP_BUG -w - /* Actually, Alliant does have unistd.h, but it defines _POSIX_VERSION, - and doesn't supply a fully compatible job control package. We just - pretend that it doesn't have it. */ -# undef HAVE_UNISTD_H -# undef HAVE_ALLOCA -#endif /* alliant */ - -/* **************************************************************** */ -/* */ -/* Motorola Delta series running System V R3V6/7 */ -/* */ -/* **************************************************************** */ -/* Contributed by Robert L. McMillin (rlm@ms_aspen.hac.com). */ - -#if defined (m68k) && defined (sysV68) -# define M_MACHINE "Delta" -# define M_OS "USG" -# define SYSDEP_CFLAGS -DUSGr3 -# define VOID_SIGHANDLER -# define HAVE_VPRINTF -# define REQUIRED_LIBRARIES -lm881 -# undef HAVE_GETWD -# undef HAVE_RESOURCE -# undef HAVE_DUP2 -# undef HAVE_ALLOCA -#endif /* Delta series */ - -/* **************************************************************** */ -/* */ -/* Motorola m68k system running Linux */ -/* */ -/* **************************************************************** */ - -#if defined (mc68020) && (defined (__linux__) || defined (linux)) -# define M_MACHINE "m68k" -# define M_OS "Linux" -# define SYSDEP_CFLAGS -DUSG -DUSGr3 -DHAVE_GETDTABLESIZE -DHAVE_BCOPY \ - -DHAVE_GETPW_DECLS -DHAVE_GETHOSTNAME -# define REQUIRED_LIBRARIES -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define HAVE_SYS_SIGLIST -# define HAVE_VPRINTF -# define HAVE_VARARGS_H -# define SEARCH_LIB_NEEDS_SPACE -# if defined (__GNUC__) -# define HAVE_FIXED_INCLUDES -# endif /* __GNUC__ */ -# undef USE_GNU_MALLOC -# undef HAVE_SETLINEBUF -# undef HAVE_GETWD -# endif /* m68k && __linux__ */ - -/* **************************************************************** */ -/* */ -/* Gould 9000 - UTX/32 R2.1A */ -/* */ -/* **************************************************************** */ -#if defined (gould) /* Maybe should be GOULD_PN ? */ -# define M_MACHINE "gould" -# define M_OS "Bsd" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -#endif /* gould */ - -/* ************************ */ -/* */ -/* NeXT */ -/* */ -/* ************************ */ -#if defined (NeXT) && !defined (M_MACHINE) -# define M_MACHINE "NeXT" -# define M_OS "NeXTstep" -# define HAVE_VPRINTF -# define HAVE_SYS_SIGLIST -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# if !defined (HAVE_RESOURCE) -# define HAVE_RESOURCE -# endif -# define HAVE_STRCASECMP -# define GCC_STANDARD -# undef HAVE_GETWD -# undef HAVE_GETCWD -# undef HAVE_DIRENT_H -# define SYSDEP_CFLAGS -DMKFIFO_MISSING -DRLOGIN_PGRP_BUG -# undef USE_GNU_MALLOC -#endif /* NeXT */ - -/* ********************** */ -/* */ -/* m68k NetBSD */ -/* */ -/* ********************** */ -#if defined (m68k) && defined (__NetBSD__) -# include -# define M_MACHINE MACHINE -# define M_OS "NetBSD" -/* os/netbsd.h */ -# define SYSDEP_CFLAGS -DOPENDIR_NOT_ROBUST -DINT_GROUPS_ARRAY \ - -DRLIMTYPE=quad_t -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define HAVE_DIRENT -# define HAVE_STRCASECMP -#endif /* m68k && __NetBSD__ */ - -/* ************************ */ -/* */ -/* hp9000 4.4 BSD */ -/* */ -/* ************************ */ -#if defined (hp9000) && defined (__BSD_4_4__) -# define M_MACHINE "hp9000" -# define M_OS "BSD_4_4" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_STRCASECMP -# define SYSDEP_CFLAGS -DHAVE_GETDTABLESIZE -DHAVE_BCOPY -DHAVE_RESOURCE -# undef HAVE_ALLOCA -#endif /* hp9000 && __BSD_4_4__ */ - -/* ************************ */ -/* */ -/* hp9000 4.3 BSD */ -/* */ -/* ************************ */ -#if defined (hp9000) && !defined (hpux) && !defined (M_MACHINE) -# define M_MACHINE "hp9000" -# define M_OS "Bsd" -# undef HAVE_ALLOCA -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define USE_VFPRINTF_EMULATION -#endif /* hp9000 && !hpux */ - -/* ************************ */ -/* */ -/* hpux */ -/* */ -/* ************************ */ -#if defined (hpux) - -/* HPUX comes in several different flavors, from pre-release 6.2 (basically - straight USG), to Posix compliant 9.0. */ - - /* HP machines come in several processor types. - They are distinguished here. */ -# if defined (hp9000s200) && !defined (hp9000s300) -# define M_MACHINE "hp9000s200" -# endif /* hp9000s200 */ -# if defined (hp9000s300) && !defined (M_MACHINE) -# define M_MACHINE "hp9000s300" -# endif /* hp9000s300 */ -# if defined (hp9000s500) && !defined (M_MACHINE) -# define M_MACHINE "hp9000s500" -# endif /* hp9000s500 */ -# if defined (hp9000s700) && !defined (M_MACHINE) -# define M_MACHINE "hp9000s700" -# endif /* hp9000s700 */ -# if defined (hp9000s800) && !defined (M_MACHINE) -# define M_MACHINE "hp9000s800" -# endif /* hp9000s800 */ -# if defined (hppa) && !defined (M_MACHINE) -# define M_MACHINE "hppa" -# endif /* hppa */ - -/* Define the OS as the particular type that we are using. */ -/* This is for HP-UX systems earlier than HP-UX 6.2 -- no job control. */ -# if defined (HPUX_USG) -# define M_OS "USG" -# define HPUX_CFLAGS -Dhpux -# define REQUIRED_LIBRARIES -lPW -lBSD -# undef HAVE_WAIT_H -# define HPUX_EXTRA -# else /* !HPUX_USG */ - -/* All of the other operating systems need HPUX to be defined. */ -# define HPUX_EXTRA -DHPUX -Dhpux -DHAVE_GETHOSTNAME -DUSG - - /* HPUX 6.2 .. 6.5 require -lBSD for getwd (), and -lPW for alloca (). */ -# if defined (HPUX_6) -# define M_OS "hpux_6" -# define REQUIRED_LIBRARIES -lPW -lBSD -# undef HAVE_ALLOCA -# undef HAVE_WAIT_H -# endif /* HPUX_6 */ - - /* On HP-UX 7.x, we do not link with -lBSD, so we don't have getwd (). */ -# if defined (HPUX_7) -# define M_OS "hpux_7" -# define REQUIRED_LIBRARIES -lPW -# define HPUX_CFLAGS -DHAVE_SOCKETS -# undef HAVE_GETWD -# undef USE_GNU_MALLOC -# endif /* HPUX_7 */ - - /* HP-UX 8.x systems do not have a working alloca () on all platforms. - This can cause us problems, especially when globbing. HP has the - same YP bug as Sun, so we #undef USE_GNU_MALLOC. */ -# if defined (HPUX_8) -# define M_OS "hpux_8" -# if !defined (__GNUC__) -# undef HAVE_ALLOCA -# define HPUX_ANSI +O3 -Aa -D_HPUX_SOURCE -# else -# define HPUX_ANSI -# endif -# undef HAVE_GETWD -# undef USE_GNU_MALLOC -# define HPUX_CFLAGS -DSBRK_DECLARED -DHAVE_SOCKETS HPUX_ANSI -# endif /* HPUX_8 */ - - /* HP-UX 9.0 reportedly fixes the alloca problems present in the 8.0 - release. If so, -lPW is required to include it. */ -# if defined (HPUX_9) -# define M_OS "hpux_9" -# if !defined (__GNUC__) -# undef HAVE_ALLOCA -# define HPUX_ANSI +O3 -Ae -# else -# define HPUX_ANSI -# endif -# undef HAVE_GETWD -# undef USE_GNU_MALLOC -# undef HAVE_RESOURCE -# define HPUX_CFLAGS -DSBRK_DECLARED -DHAVE_SOCKETS -DHAVE_GETHOSTNAME HPUX_ANSI -# endif /* HPUX_9 */ - -# endif /* !HPUX_USG */ - - /* All of the HPUX systems that we have tested have the following. */ -# define HAVE_DIRENT -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# define USE_TERMCAP_EMULATION -# define SEARCH_LIB_NEEDS_SPACE - -# if defined (HPUX_CFLAGS) -# define SYSDEP_CFLAGS HPUX_CFLAGS HPUX_EXTRA -# else /* !HPUX_CFLAGS */ -# define SYSDEP_CFLAGS HPUX_EXTRA -# endif /* !HPUX_CFLAGS */ - -#endif /* hpux */ - -/* ************************ */ -/* */ -/* MIPS OSF/1 */ -/* */ -/* ************************ */ -# if defined (MIPSEL) && defined (__OSF1__) -# define M_MACHINE "mips" -# define M_OS "OSF1" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define HAVE_STRERROR -# define HAVE_GETGROUPS -# define VOID_SIGHANDLER -# define HAVE_BCOPY -# define USE_TERMCAP_EMULATION -# define SYSDEP_CFLAGS -D_BSD -# define REQUIRED_LIBRARIES -lbsd -# endif /* MIPSEL && __OSF1__ */ - -/* ************************ */ -/* */ -/* HP OSF/1 */ -/* */ -/* ************************ */ -#if defined (__hp_osf) -# define M_MACHINE "HPOSF1" -# define M_OS "OSF1" -# define SYSDEP_CFLAGS -q no_sl_enable -# define SYSDEP_LDFLAGS -q lang_level:classic -# define REQUIRED_LIBRARIES -lPW -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# undef HAVE_ALLOCA -#endif /* __hp_osf */ - -/* ************************ */ -/* */ -/* KSR1 OSF/1 */ -/* */ -/* ************************ */ -#if defined (__ksr1__) -# define M_MACHINE "KSR1" -# define M_OS "OSF1" -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# define SYSDEP_CFLAGS -DHAVE_GETDTABLESIZE -DHAVE_BCOPY -DHAVE_UID_T -# undef HAVE_ALLOCA -# undef USE_GNU_MALLOC -#endif /* ksr1 */ - -/* ************************ */ -/* */ -/* Intel Paragon - OSF/1 */ -/* */ -/* ************************ */ -#if defined (__i860) && defined (__PARAGON__) -# define M_MACHINE "Paragon" -# define M_OS "OSF1" -# define HAVE_GETGROUPS -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_STRERROR -# define HAVE_SYS_SIGLIST -#endif /* __i860 && __PARAGON__ */ - -/* ************************ */ -/* */ -/* IBM AIX/ESA (OSF/1) */ -/* */ -/* ************************ */ -#if defined(AIXESA) || (defined(__ibmesa) && defined(_AIX)) -# define M_MACHINE "IBMESA" -# define M_OS "OSF1" -# define HAVE_GETGROUPS -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_STRERROR -# define HAVE_SYS_SIGLIST -# define HAVE_ALLOCA_H /* hack for AIX/ESA, which has malloc.h */ -# undef USE_GNU_MALLOC -#endif /* AIXESA || (__ibmesa && _AIX) */ - -/* ************************ */ -/* */ -/* Intel i860 -- SVR4 */ -/* */ -/* ************************ */ -#if defined (__i860) && defined (USGr4) && !defined (M_MACHINE) -# define M_MACHINE "i860" -# define M_OS "USG" -# define HAVE_DIRENT -# define HAVE_SYS_SIGLIST -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_GETGROUPS -# if !defined (HAVE_GCC) && !defined (HAVE_ALLOCA_H) -# undef HAVE_ALLOCA -# endif /* !HAVE_GCC && !HAVE_ALLOCA_H */ -# if defined (USGr4_2) -# define SYSDEP_CFLAGS -DUSGr4 -DUSGr4_2 -# else -# define SYSDEP_CFLAGS -DUSGr4 -# endif /* ! USGr4_2 */ -# undef HAVE_GETWD -#endif /* __i860 && USGr4 */ - -/* ************************ */ -/* */ -/* Xenix286 */ -/* */ -/* ************************ */ -#if defined (Xenix286) -# define M_MACHINE "i286" -# define M_OS "Xenix" - -# define XENIX_CFLAGS -DUSG -DUSGr3 -DMEMMOVE_MISSING - -# if defined (XENIX_22) -# define XENIX_EXTRA -DSETVBUF_REVERSED -# define REQUIRED_LIBRARIES -lx -# else /* !XENIX_22 */ -# define HAVE_DIRENT -# if defined (XENIX_23) -# define XENIX_EXTRA -DLD_HAS_NO_DASH_L -# define REQUIRED_LIBRARIES -ldir -# else /* !XENIX_23 */ -# define XENIX_EXTRA -xenix -# define SYSDEP_LDFLAGS -xenix -# define REQUIRED_LIBRARIES -ldir -l2.3 -# endif /* !XENIX_23 */ -# endif /* !XENIX_22 */ - -# define SYSDEP_CFLAGS XENIX_CFLAGS XENIX_EXTRA -# undef HAVE_ALLOCA -# undef HAVE_GETWD -# undef HAVE_RESOURCE -#endif /* Xenix286 */ - -/* ************************ */ -/* */ -/* convex */ -/* */ -/* ************************ */ -#if defined (convex) -# define M_MACHINE "convex" -# define M_OS "Bsd" -# undef HAVE_ALLOCA -# define HAVE_SETLINEBUF -# define HAVE_SYS_SIGLIST -# define HAVE_GETGROUPS -#endif /* convex */ - -/* ************************ */ -/* */ -/* AIX/RT */ -/* */ -/* ************************ */ -#if defined (aix) && !defined (aixpc) -# define M_MACHINE "AIXRT" -# define M_OS "USG" -# define HAVE_DIRENT -# define HAVE_VPRINTF -# define HAVE_SYS_SIGLIST -# define VOID_SIGHANDLER -# define HAVE_GETGROUPS -# define USE_TERMCAP_EMULATION -# if !defined (HAVE_GCC) -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -a -# endif /* !HAVE_GCC */ -# define SYSDEP_CFLAGS MACHINE_CFLAGS -DNLS -DUSGr3 -DHAVE_BCOPY -# undef USE_GNU_MALLOC -# undef HAVE_ALLOCA -# undef HAVE_RESOURCE -#endif /* aix && !aixpc */ - -/* **************************************** */ -/* */ -/* IBM RISC 6000 */ -/* */ -/* **************************************** */ -#if defined (RISC6000) || defined (_IBMR2) -# define M_MACHINE "RISC6000" -# define M_OS "AIX" -# define HAVE_DIRENT -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define USE_TERMCAP_EMULATION -# define HAVE_GETGROUPS -# define SYSDEP_CFLAGS -DNLS -DUSGr3 -DHAVE_BCOPY -# undef HAVE_ALLOCA -# undef HAVE_GETWD -# undef USE_GNU_MALLOC -#endif /* RISC6000 */ - -/* **************************************** */ -/* */ -/* u370 IBM AIX/370 */ -/* */ -/* **************************************** */ -#if defined (u370) -# if defined (_AIX370) -# define M_MACHINE "AIX370" -# define M_OS "Bsd" -# define REQUIRED_LIBRARIES -lbsd -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define SYSDEP_CFLAGS -D_BSD -# define HAVE_GETGROUPS -# define USE_TERMCAP_EMULATION -# undef USE_GNU_MALLOC -# endif /* _AIX370 */ -# if defined (USGr4) /* System V Release 4 on 370 series architecture. */ -# define M_MACHINE "uxp" -# define M_OS "USG" -# define HAVE_DIRENT -# define HAVE_SYS_SIGLIST -# define HAVE_VPRINTF -# define USE_GNU_MALLOC -# define VOID_SIGHANDLER -# if !defined (HAVE_GCC) -# undef HAVE_ALLOCA -# define EXTRA_LIB_SEARCH_PATH /usr/ucblib -# define REQUIRED_LIBRARIES -lc -lucb -# endif /* !HAVE_GCC */ -# define HAVE_GETGROUPS -# define HAVE_RESOURCE -# define SYSDEP_CFLAGS -DUSGr4 -DSBRK_DECLARED -# endif /* USGr4 */ -#endif /* u370 */ - -/* ************************ */ -/* */ -/* ATT 3B */ -/* */ -/* ************************ */ -#if defined (att3b) || defined (u3b2) -# if defined (att3b) -# define M_MACHINE "att3b" -# define HAVE_SYS_SIGLIST -# else /* !att3b */ -# define M_MACHINE "u3b2" -# endif /* !att3b */ -# define M_OS "USG" -# undef HAVE_GETWD -# define HAVE_VPRINTF -# define VOID_SIGHANDLER - /* For an AT&T Unix before V.3 take out the -DUSGr3 and the HAVE_DIRENT. */ -# define SYSDEP_CFLAGS -DUSGr3 -# define HAVE_DIRENT - /* Alloca requires either Gcc or cc with libPW.a. */ -# if !defined (HAVE_GCC) -# define REQUIRED_LIBRARIES -lPW -# endif /* !HAVE_GCC */ -#endif /* att3b */ - -/* ************************ */ -/* */ -/* ATT 386 */ -/* */ -/* ************************ */ -#if defined (att386) -# define M_MACHINE "att386" -# define M_OS "USG" -# undef HAVE_GETWD - /* Alloca requires either Gcc or cc with libPW.a. */ -# if !defined (HAVE_GCC) -# define REQUIRED_LIBRARIES -lPW -# endif /* HAVE_GCC */ -# define HAVE_SYS_SIGLIST -# define HAVE_VPRINTF -# define VOID_SIGHANDLER - /* For an AT&T Unix before V.3 take out the -DUSGr3 and the HAVE_DIRENT. */ -# define SYSDEP_CFLAGS -DUSGr3 -# define HAVE_DIRENT -#endif /* att386 */ - -/* ************************ */ -/* */ -/* ATT UNIX PC */ -/* */ -/* ************************ */ -#if defined (unixpc) -# define M_MACHINE "unixpc" -# define M_OS "USG" -# define HAVE_VPRINTF -# define HAVE_DIRENT -# if defined (HAVE_GCC) -# define REQUIRED_LIBRARIES -ldirent -shlib -# else /* !HAVE_GCC */ -# define REQUIRED_LIBRARIES -ldirent -# endif /* !HAVE_GCC */ -# undef HAVE_GETWD -# undef HAVE_DUP2 -# undef VOID_SIGHANDLER -# undef HAVE_WAIT_H -#endif /* unixpc */ - -/* ************************ */ -/* */ -/* Encore */ -/* */ -/* ************************ */ -#if defined (MULTIMAX) -# if defined (n16) -# define M_MACHINE "Multimax32k" -# else -# define M_MACHINE "Multimax" -# endif /* n16 */ -# if defined (UMAXV) -# define M_OS "USG" -# define REQUIRED_LIBRARIES -lPW -# define SYSDEP_CFLAGS -DUSGr3 -# define HAVE_DIRENT -# define HAVE_VPRINTF -# define USE_TERMCAP_EMULATION -# define VOID_SIGHANDLER -# else -# if defined (CMU) -# define M_OS "Mach" -# else -# define M_OS "Bsd" -# endif /* CMU */ -# define HAVE_SYS_SIGLIST -# define HAVE_STRERROR -# define HAVE_SETLINEBUF -# endif /* UMAXV */ -# define HAVE_GETGROUPS -#endif /* MULTIMAX */ - -/* ******************************************** */ -/* */ -/* Encore Series 91 (88K BCS w Job Control) */ -/* */ -/* ******************************************** */ -#if defined (__m88k) && defined (__UMAXV__) -# define M_MACHINE "Gemini" -# define M_OS "USG" -# define REQUIRED_LIBRARIES -lPW -# define USE_TERMCAP_EMULATION -# define HAVE_DIRENT -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define SYSDEP_CFLAGS -q ext=pcc -D_POSIX_JOB_CONTROL -D_POSIX_VERSION \ - -Dmalloc=_malloc -Dfree=_free -Drealloc=_realloc -#endif /* m88k && __UMAXV__ */ - -/* ******************************************** */ -/* */ -/* System V Release 4 on the ICL DRS6000 */ -/* */ -/* ******************************************** */ -#if defined (drs6000) -# define M_MACHINE "drs6000" -# define M_OS "USG" -# define SYSDEP_CFLAGS -Xa -DUSGr4 -# define SEARCH_LIB_NEEDS_SPACE -# define HAVE_DIRENT -# define HAVE_SYS_SIGLIST -# define HAVE_VPRINTF -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define USE_GNU_TERMCAP -# if !defined (__GNUC__) -# undef HAVE_ALLOCA -# endif -# undef HAVE_ALLOCA_H -# undef USE_GNU_MALLOC -#endif /* drs6000 */ - -/* ******************************************** */ -/* */ -/* System V Release 4 on the Sparc (generic) */ -/* */ -/* ******************************************** */ -#if defined (sparc) && defined (__svr4__) && !defined (M_MACHINE) -# define M_MACHINE "sparc" -# define M_OS "SVR4" -# define SYSDEP_CFLAGS -DUSG -DUSGr4 -DHAVE_UID_T -# define HAVE_DIRENT -# define HAVE_VPRINTF -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define USE_GNU_TERMCAP -# if !defined (__GNUC__) -# undef HAVE_ALLOCA -# endif -# undef HAVE_BCOPY -# undef HAVE_GETWD -# undef USE_GNU_MALLOC -#endif /* sparc && __svr4__ */ - -/* ******************* */ -/* */ -/* Commodore Amiga */ -/* */ -/* ******************* */ -#if defined (amiga) && defined (__NetBSD__) -# define M_MACHINE "amiga" -# define M_OS "NetBSD" -# define SYSDEP_CFLAGS -DOPENDIR_NOT_ROBUST -DINT_GROUPS_ARRAY \ - -DRLIMTYPE=quad_t -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# define HAVE_DIRENT -# define HAVE_STRCASECMP -#endif /* amiga && __NetBSD__ */ - -#if defined (amiga) && !defined (M_MACHINE) -# define M_MACHINE "amiga" -# define M_OS "USG" -# define SYSDEP_CFLAGS -DUSGr4 -# if !defined (HAVE_GCC) -# define EXTRA_LIB_SEARCH_PATH /usr/ucblib -# define REQUIRED_LIBRARIES -lc -lucb -# endif /* !HAVE_GCC */ -# define HAVE_DIRENT -# define HAVE_SYS_SIGLIST -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# undef HAVE_GETWD -# undef USE_GNU_MALLOC -#endif /* System V Release 4 on amiga */ - -/* ************************ */ -/* */ -/* clipper */ -/* */ -/* ************************ */ -/* This is for the Orion 1/05 (A BSD 4.2 box based on a Clipper processor) */ -#if defined (clipper) && !defined (M_MACHINE) -# define M_MACHINE "clipper" -# define M_OS "Bsd" -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -#endif /* clipper */ - -/* ******************************** */ -/* */ -/* Integrated Solutions 68020? */ -/* */ -/* ******************************** */ -#if defined (is68k) -# define M_MACHINE "is68k" -# define M_OS "Bsd" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define USE_VFPRINTF_EMULATION -# undef HAVE_ALLOCA -#endif /* is68k */ - -/* ******************************** */ -/* */ -/* Omron Luna/Mach 2.5 */ -/* */ -/* ******************************** */ -#if defined (luna88k) -# define M_MACHINE "Luna88k" -# define M_OS "Bsd" -# define HAVE_SYS_SIGLIST -# define USE_GNU_MALLOC -# define HAVE_SETLINEBUF -# define HAVE_VPRINTF -# define HAVE_GETGROUPS -# define HAVE_VPRINTF -#endif /* luna88k */ - -/* ************************ */ -/* */ -/* BBN Butterfly GP1000 */ -/* Mach 1000 v2.5 */ -/* */ -/* ************************ */ -#if defined (butterfly) && defined (BFLY1) -#define M_MACHINE "BBN Butterfly" -#define M_OS "Mach 1000" -#define HAVE_SETLINEBUF -#define HAVE_SYS_SIGLIST -#define HAVE_GETGROUPS -#define HAVE_VPRINTF -# ifdef BUILDING_MAKEFILE -MAKE = make -# endif /* BUILDING_MAKEFILE */ -#endif /* butterfly */ - -/* **************************************** */ -/* */ -/* Apollo/SR10.2/BSD4.3 */ -/* */ -/* **************************************** */ -/* This is for the Apollo DN3500 running SR10.2 BSD4.3 */ -#if defined (apollo) -# define M_MACHINE "apollo" -# define M_OS "Bsd" -# define SYSDEP_CFLAGS -D_POSIX_VERSION -D_INCLUDE_BSD_SOURCE \ - -D_INCLUDE_POSIX_SOURCE -DTERMIOS_MISSING \ - -DHAVE_BSD_PGRP -Dpid_t=int -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -#endif /* apollo */ - -/* ************************ */ -/* */ -/* DG AViiON */ -/* */ -/* ************************ */ -/* This is for the DG AViiON box (runs DG/UX with both AT&T & BSD features.) */ -/* DG/UX comes standard with Gcc. */ -#if defined (__DGUX__) || defined (DGUX) -# define M_OS "DGUX" -# if !defined (_M88KBCS_TARGET) -# define M_MACHINE "AViiON" -# define REQUIRED_LIBRARIES -ldgc -# else /* _M88KBCS_TARGET */ -# define M_MACHINE "m88kBCS_AV" -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -D_M88K_SOURCE -# undef HAVE_RESOURCE -# endif /* _M88KBCS_TARGET */ -# define SYSDEP_CFLAGS MACHINE_CFLAGS -D_DGUX_SOURCE -DPGRP_PIPE -DUSG -# define HAVE_GCC -# define HAVE_FIXED_INCLUDES -# define HAVE_STRERROR -# define HAVE_GETGROUPS -# define VOID_SIGHANDLER -# undef HAVE_GETWD -# undef USE_GNU_MALLOC - -/* If you want to build bash for M88K BCS compliance on a DG/UX 5.4 - or above system, do the following: - - If you have built in this directory before run "make clean" to - endure the Bash directory is clean. - - Run "eval `sde-target m88kbcs`" to set the software development - environment to build BCS objects. - - Run "make". - - Do "eval `sde-target default`" to reset the SDE. */ -#endif /* __DGUX__ */ - -/* ************************ */ -/* */ -/* Harris Night Hawk */ -/* */ -/* ************************ */ -/* This is for the Harris Night Hawk family. */ -#if defined (_CX_UX) -# if defined (_M88K) -# define M_MACHINE "nh4000" -# else /* !_M88K */ -# if defined (hcx) -# define M_MACHINE "nh2000" -# else /* !hcx */ -# if defined (gcx) -# define M_MACHINE "nh3000" -# endif /* gcx */ -# endif /* !hcx */ -# endif /* !_M88K */ -# define M_OS "USG" -# define SYSDEP_CFLAGS -g -Xa -v -Dgetwd=bash_getwd -D_POSIX_SOURCE \ - -D_POSIX_JOB_CONTROL -# define USE_TERMCAP_EMULATION -# define HAVE_VPRINTF -# define HAVE_GETGROUPS -# define VOID_SIGHANDLER -# undef USE_GNU_MALLOC -# undef HAVE_GETWD -#endif /* _CX_UX */ - -/* **************************************** */ -/* */ -/* Tektronix */ -/* */ -/* **************************************** */ -/* These are unproven as yet. */ -#if defined (Tek4132) -# define M_MACHINE "Tek4132" -# define M_OS "Bsd" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -#endif /* Tek4132 */ - -#if defined (Tek4300) -# define M_MACHINE "Tek4300" -# define M_OS "Bsd" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -#endif /* Tek4300 */ - -/* ************************ */ -/* */ -/* Tektronix XD88 */ -/* */ -/* ************************ */ -#if defined (m88k) && defined (XD88) -# define M_MACHINE "XD88" -# define M_OS "USG" -# define HAVE_DIRENT -# define HAVE_VPRINTF -# define HAVE_GETCWD -# define VOID_SIGHANDLER -# define HAVE_GETGROUPS -# undef HAVE_GETWD -# undef HAVE_ALLOCA -#endif /* m88k && XD88 */ - -/* ************************ */ -/* */ -/* Motorola M88100 */ -/* */ -/* ************************ */ -#if defined (m88k) && (defined (M88100) || defined (USGr4)) -# define M_MACHINE "M88100" -# define M_OS "USG" -# if defined (USGr4) -# define SYSDEP_CFLAGS -DUSGr4 -D_POSIX_JOB_CONTROL -# else -# define SYSDEP_CFLAGS -D_POSIX_JOB_CONTROL -# endif -# define HAVE_DIRENT -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define HAVE_GETGROUPS -# undef HAVE_GETWD -# if !defined (USGr4) -# undef HAVE_GETCWD -# endif -# undef HAVE_ALLOCA -#endif /* m88k && M88100 */ - -/* ************************ */ -/* */ -/* Sequent Balances */ -/* (Dynix 3.x) */ -/* ************************ */ -#if defined (sequent) && !defined (M_MACHINE) -# define M_MACHINE "Sequent" -# define M_OS "Bsd" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# define LD_HAS_NO_DASH_L -# undef HAVE_DUP2 -#endif /* sequent */ - -/* ****************************************** */ -/* */ -/* NCR Tower 32, System V Release 3 */ -/* */ -/* ****************************************** */ -#if defined (tower32) -# define M_MACHINE "tower32" -# define M_OS "USG" -# if !defined (HAVE_GCC) -# define REQUIRED_LIBRARIES -lPW - /* Disable stack/frame-pointer optimization, incompatible with alloca */ -# undef MACHINE_CFLAGS -# define MACHINE_CFLAGS -W2,-aat -# endif /* !HAVE_GCC */ -# define SYSDEP_CFLAGS -DUSGr3 MACHINE_CFLAGS -# define HAVE_VPRINTF -# define USE_TERMCAP_EMULATION -# define VOID_SIGHANDLER -# undef HAVE_GETWD -#endif /* tower32 */ - -/* ************************ */ -/* */ -/* Concurrent */ -/* */ -/* ************************ */ -#if defined (concurrent) -# define M_MACHINE "Concurrent" -# if defined (USE_BSD_UNIVERSE) - /* Use the BSD universe (`universe ucb') */ -# define M_OS "Bsd" -# define HAVE_SYS_SIGLIST -# define HAVE_SETLINEBUF -# define HAVE_GETGROUPS -# else /* !USE_BSD_UNIVERSE */ - /* Concurrent 7000 with RTU 6.1A using the ATT universe (`universe att') */ -# define M_OS "USG" -# define SYSDEP_CFLAGS -DHAVE_BCOPY -DHAVE_UID_T -DHAVE_GETDTABLESIZE -Dmc7000 -# define REQUIRED_LIBRARIES -ljobs -# define HAVE_VPRINTF -# define HAVE_GETGROUPS -# define HAVE_DUP2 -# define HAVE_DIRENT -# define HAVE_SYS_SIGLIST -# endif /* !USE_BSD_UNIVERSE */ -#endif /* concurrent */ - -/* **************************************************************** */ -/* */ -/* Honeywell Bull X20 (lele@idea.sublink.org) */ -/* */ -/* **************************************************************** */ -#if defined (hbullx20) -# define M_MACHINE "Honeywell" -# define M_OS "USG" -# define SYSDEP_CFLAGS -DUSG - /* Bull x20 needs -lposix for struct dirent. */ -# define REQUIRED_LIBRARIES -lPW -lposix -# define HAVE_DIRENT -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define USE_TERMCAP_EMULATION -# undef HAVE_GETWD -#endif /* hbullx20 */ - -/* **************************************************************** */ -/* */ -/* Bull DPX2 (F.Pierresteguy@frcl.bull.fr) */ -/* */ -/* **************************************************************** */ -#if defined (DPX2) -# define M_MACHINE "DPX2" -# define M_OS "USG" -# define SYSDEP_CFLAGS -DUSG -DUSGr3 -DHAVE_BCOPY -DHAVE_UID_T -D_POSIX_JOB_CONTROL -/* # define REQUIRED_LIBRARIES -lPW -lposix */ -# define HAVE_DIRENT -# define VOID_SIGHANDLER -# define HAVE_POSIX_SIGNALS -# define HAVE_VPRINTF -# define HAVE_SETVBUF -# define HAVE_STRERROR -# define HAVE_GETGROUPS -# define HAVE_GETDTABLESIZE -# define USE_TERMCAP_EMULATION -#endif /* DPX2 */ - -/* ************************ */ -/* */ -/* CRAY */ -/* */ -/* ************************ */ -#if defined (cray) -# include -# if defined (Cray1) || defined (Cray2) -# define M_MACHINE "Cray" -# define CRAY_STACK -# endif -# if defined (CrayXMP) && !defined (M_MACHINE) -# define M_MACHINE "CrayXMP" -# define CRAY_STACK -DCRAY_STACKSEG_END=getb67 -# endif -# if defined (CrayYMP) && !defined (M_MACHINE) -# define M_MACHINE "CrayYMP" -# if RELEASE_LEVEL >= 7000 -# define CRAY_STACK -DCRAY_STACKSEG_END=_getb67 -# else -# define CRAY_STACK -DCRAY_STACKSEG_END=getb67 -# endif /* RELEASE_LEVEL < 7000 */ -# endif -# if !defined (M_MACHINE) -# define M_MACHINE "Cray" -# define CRAY_STACK -# endif -# define M_OS "Unicos" -# define SYSDEP_CFLAGS -DUSG -DPGRP_PIPE -DOPENDIR_NOT_ROBUST \ - -DHAVE_BCOPY CRAY_STACK -# define HAVE_VPRINTF -# define HAVE_MULTIPLE_GROUPS -# define VOID_SIGHANDLER -# define USE_TERMCAP_EMULATION -# undef HAVE_ALLOCA -# undef HAVE_RESOURCE -# undef USE_GNU_MALLOC -#endif /* cray */ - -/* ************************ */ -/* */ -/* MagicStation */ -/* */ -/* ************************ */ -#if defined (MagicStation) -# define M_MACHINE "MagicStation" -# define M_OS "USG" -# define SYSDEP_CFLAGS -DUSGr4 -# define HAVE_DIRENT -# define HAVE_GETGROUPS -# define HAVE_STRERROR -# define VOID_SIGHANDLER -# undef HAVE_ALLOCA -# undef HAVE_GETWD -#endif /* MagicStation */ - -/* ************************ */ -/* */ -/* Plexus */ -/* */ -/* ************************ */ -#if defined (plexus) -# define M_MACHINE "plexus" -# define M_OS "USG" -# define REQUIRED_LIBRARIES -lndir -# define USE_TERMCAP_EMULATION -# undef HAVE_DUP2 -# undef HAVE_GETWD -# define HAVE_VPRINTF -# undef HAVE_ALLOCA /* -lPW doesn't work w/bash-cc? */ -#endif /* plexus */ - -/* ************************ */ -/* */ -/* Siemens MX500 */ -/* (SINIX 5.2x) */ -/* ************************ */ -#if defined (sinix) -#define M_MACHINE "Siemens MX500" -#define M_OS "SINIX V5.2x" -#define USG -#define HAVE_GETCWD -#define VOID_SIGHANDLER -#define HAVE_STRERROR -#define HAVE_GETGROUPS -#define HAVE_VPRINTF -#define HAVE_POSIX_SIGNALS -#define HAVE_RESOURCE -#define USE_GNU_MALLOC -#define SYSDEP_CFLAGS -DUSGr3 -DUSG -#define REQUIRED_LIBRARIES syscalls.o -#undef HAVE_ALLOCA -#undef HAVE_GETWD -#endif /* sinix */ - -/* ************************ */ -/* */ -/* Symmetric 375 (4.2 BSD) */ -/* */ -/* ************************ */ -#if defined (scs) && !defined (M_MACHINE) -# define M_MACHINE "Symmetric_375" -# define M_OS "Bsd" -# define HAVE_SYS_SIGLIST -# define HAVE_GETGROUPS -# define HAVE_SETLINEBUF -# define USE_VFPRINTF_EMULATION -# define USE_GNU_MALLOC -# undef HAVE_STRCHR -#endif /* scs */ - -/* ************************ */ -/* */ -/* Tandem running SVR3 */ -/* */ -/* ************************ */ -#if defined (tandem) && !defined (M_MACHINE) -# define M_MACHINE "tandem" -# define M_OS "USG" -# define SYSDEP_CFLAGS -DUSGr3 -# define HAVE_VPRINTF -# define VOID_SIGHANDLER - /* Alloca requires either Gcc or cc with libPW.a */ -# if !defined (HAVE_GCC) -# define REQUIRED_LIBRARIES -lPW -# endif /* !HAVE_GCC */ -# undef HAVE_GETWD -#endif /* Tandem running SVR3 */ - -/* ****************** */ -/* */ -/* Amdahl UTS */ -/* */ -/* ****************** */ - -#if defined (UTS) -# define M_MACHINE "uts" -# define M_OS "systemV" -# define SYSDEP_CFLAGS -DUSG -DMEMMOVE_MISSING -# define REQUIRED_LIBRARIES -# undef HAVE_SYS_SIGLIST -# undef HAVE_GETWD -# undef HAVE_ALLOCA -# define HAVE_VPRINTF -# define HAVE_DIRENT -# undef HAVE_RESOURCE -#endif /* UTS */ - -/* ************************ */ -/* */ -/* PCS Cadmus System */ -/* */ -/* ************************ */ -#if defined (cadmus) && !defined (M_MACHINE) -# define M_MACHINE "cadmus" -# define M_OS "BrainDeath" -# define SYSDEP_CFLAGS -DUSG -# define HAVE_DIRENT -# define HAVE_VPRINTF -# define VOID_SIGHANDLER -# define USE_TERMCAP_EMULATION -# undef HAVE_GETWD -# undef HAVE_ALLOCA -# undef HAVE_WAIT_H -#endif /* cadmus */ - -/* **************************************************************** */ -/* */ -/* Generic Entry */ -/* */ -/* **************************************************************** */ - -/* Use this entry for your machine if it isn't represented here. It - is loosely based on a Vax running 4.3 BSD. */ - -#if !defined (M_MACHINE) -# define UNKNOWN_MACHINE -#endif - -#if defined (UNKNOWN_MACHINE) -# define M_MACHINE "UNKNOWN_MACHINE" -# define M_OS "UNKNOWN_OS" - -/* Required libraries for building on this system. */ -# define REQUIRED_LIBRARIES - -/* Define HAVE_SYS_SIGLIST if your system has sys_siglist[]. */ -# define HAVE_SYS_SIGLIST - -/* Undef HAVE_GETWD if your C library does not provide a working version - of getwd(). */ -/* # undef HAVE_GETWD */ - -/* Undef HAVE_GETCWD if your C library does not provide a working version - of getcwd(). */ -/* # undef HAVE_GETCWD */ - -/* Undef HAVE_ALLOCA if you are not using Gcc, and neither your library - nor compiler has a version of alloca (). In that case, we will use - our version of alloca () in alloca.c */ -/* # undef HAVE_ALLOCA */ - -/* Undef USE_GNU_MALLOC if there appear to be library conflicts, or if you - especially desire to use your OS's version of malloc () and friends. We - reccommend against this because GNU Malloc has debugging code built in. */ -/* # undef USE_GNU_MALLOC */ - -/* Define USE_GNU_TERMCAP if you want to use the GNU termcap library - instead of your system termcap library. */ -/* # define USE_GNU_TERMCAP */ - -/* Define HAVE_SETLINEBUF if your machine has the setlinebuf () - stream library call. Otherwise, setvbuf () will be used. If - neither of them work, you can edit in your own buffer control - based upon your machines capabilities. */ -# define HAVE_SETLINEBUF - -/* Define HAVE_VPRINTF if your machines has the vfprintf () library - call. Otherwise, printf will be used. */ -# define HAVE_VPRINTF - -/* Define USE_VFPRINTF_EMULATION if you want to use the BSD-compatible - vfprintf() emulation in vprint.c. */ -/* # define USE_VFPRINTF_EMULATION */ - -/* Define HAVE_GETGROUPS if your OS allows you to be in multiple - groups simultaneously by supporting the `getgroups' system call. */ -# define HAVE_GETGROUPS - -/* Define SYSDEP_CFLAGS to be the flags to cc that make your compiler - work. For example, `-ma' on the RT makes alloca () work. */ -/* This is a summary of the semi-machine-independent definitions that - can go into SYSDEP_CFLAGS: - - AFS - The Andrew File System is being used - AFS_CREATE_BUG - AFS has a bug with file creation if O_CREAT is - specified - BROKEN_SIGSUSPEND - sigsuspend(2) does not work to wake up processes - on SIGCHLD - HAVE_BSD_PGRP - getpgrp(2) takes a pid argument, a la 4.3 BSD - HAVE_BCOPY - bcopy(3) exists and works as in BSD - HAVE_GETDTABLESIZE - getdtablesize(2) exists and works correctly - HAVE_GETHOSTNAME - gethostname(2) or gethostname(3) is present and - works as in BSD - HAVE_GETPW_DECLS - USG machines with the getpw* functions defined in - that cannot handle redefinitions in the - bash source - HAVE_RESOURCE - and [gs]rlimit exist and work - HAVE_SETDTABLESIZE - setdtablesize(2) exists and works correctly - HAVE_SOCKETS - this system has BSD sockets added to a System V base - HAVE_UID_T - Definitions for uid_t and gid_t are in - INT_GROUPS_ARRAY - the second argument to getgroups(3) is an array - of integers - MEMMOVE_MISSING - the system does not have memmove(3) - MKFIFO_MISSING - named pipes do not work or mkfifo(3) is missing - NO_DEV_TTY_JOB_CONTROL - system can't do job control on /dev/tty - SBRK_DECLARED - don't declare sbrk as extern char *sbrk() in - lib/malloc/malloc.c - OPENDIR_NOT_ROBUST - opendir(3) allows you to open non-directory files - PGRP_PIPE - Requires parent-child synchronization via pipes to - make job control work right - SETVBUF_REVERSED - brain-damaged implementation of setvbuf that - has args 2 and 3 reversed from the SVID and - ANSI standard - RLOGIN_PGRP_BUG - processes started by rlogind have a process group - of 0 - TERMIOS_LDISC - system has a c_line line discipline member in struct - termios - TERMIOS_MISSING - the termios(3) functions are not present or don't - work, even though _POSIX_VERSION is defined - USG - The machine is running some sort of System V Unix - USGr3 - The machine is running SVR3.x - USGr4 - The machine is running SVR4 - USGr4_2 - The machine is running SVR4.2 - - Some other machine-dependent options: - CPCC - Dynix - NLS - Alpha, AIX - _BSD - Alpha - _DGUX_SOURCE - DG/UX - _INCLUDE_BSD_SOURCE - Apollo - _INCLUDE_POSIX_SOURCE - Apollo - - Posix.1 options that are normally set in : - _POSIX_VERSION - Encore, Apollo - _POSIX_SOURCE - ISC, QNX, Harris - _POSIX_JOB_CONTROL - NEC EWS, Encore, Harris, Motorola, Bull -*/ -# define SYSDEP_CFLAGS - -/* Define HAVE_STRERROR if your system supplies a definition for strerror () - in the C library, or a macro in a header file. */ -/* # define HAVE_STRERROR */ - -/* Define HAVE_STRCASECMP if your system supplies definitions for the - casel-insensitive string comparison functions strcasecmp and strncasemp - in the C library or one of the system header files. */ -/* # define HAVE_STRCASECMP */ - -/* Define HAVE_DIRENT if you have the dirent library and a definition of - struct dirent. If not, the BSD directory reading library and struct - direct are assumed. */ -/* # define HAVE_DIRENT */ - -/* If your system does not supply /usr/lib/libtermcap.a, but includes - the termcap routines as a part of the curses library, then define - this. This is the case on some System V machines. */ -/* # define USE_TERMCAP_EMULATION */ - -/* Define VOID_SIGHANDLER if your system's signal () returns a pointer to - a function returning void. */ -/* # define VOID_SIGHANDLER */ - -/* Define EXTRA_LIB_SEARCH_PATH if your required libraries (or standard) - ones for that matter) are not normally in the ld search path. For - example, some machines require /usr/ucblib in the ld search path so - that they can use -lucb. */ -/* # define EXTRA_LIB_SEARCH_PATH /usr/ucblib */ - -/* Define SEARCH_LIB_NEEDS_SPACE if your native ld requires a space after - the -L argument, which gives the name of an alternate directory to search - for libraries specified with -llib. For example, the HPUX ld requires - this: - -L lib/readline -lreadline - instead of: - -Llib/readline -lreadline - */ -/* # define SEARCH_LIB_NEEDS_SPACE */ - -/* Define LD_HAS_NO_DASH_L if your ld can't grok the -L flag in any way, or - if it cannot grok the -l flag, or both. */ -/* # define LD_HAS_NO_DASH_L */ - -/* Define GCC_STANDARD if the standard `cc' is gcc and you don't want - to use the compiler named `gcc' for some reason. */ -/* # define GCC_STANDARD */ - -# if defined (LD_HAS_NO_DASH_L) -# undef SEARCH_LIB_NEEDS_SPACE -# endif /* LD_HAS_NO_DASH_L */ - -#endif /* UNKNOWN_MACHINE */ diff --git a/CWRU/old-conf/support/cat-s b/CWRU/old-conf/support/cat-s deleted file mode 100644 index 87ba1634e..000000000 --- a/CWRU/old-conf/support/cat-s +++ /dev/null @@ -1,16 +0,0 @@ -# This awk script is called from within Makefile to strip multiple blank -# lines from stdin. -BEGIN { newlines = 0 } -{ - if (NF == 0) - newlines = 1; - else - { - if (newlines) - { - printf "\n"; - newlines = 0; - } - print $0; - } -} diff --git a/CWRU/old-conf/support/cppmagic b/CWRU/old-conf/support/cppmagic deleted file mode 100755 index b0a951c23..000000000 --- a/CWRU/old-conf/support/cppmagic +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -# Return a full cpp specification, complete with system dependent flags. -# -# Syntax: cppmagic [ program-to-generate-flags [ guessed-cpp ]] -# -# If only one arg is present it is the name of a program to invoke -# which should generate -Dfoo defines. -# -# If two args are present the second arg is the name of the C -# preprocessor to use. -# -# Invoked with no args, provides a C preprocessor name and -# -traditional flag if that is appropriate. -# -# ../Makefile calls this file thusly: "cppmagic getcppsyms". -# -# Typical output: -# -# /lib/cpp -Dunix -Dm68k -# - -Cpp= - -if [ "$2" ]; then - Cpp=$2 -else - for cpp in /lib/cpp /usr/lib/cpp /usr/ccs/lib/cpp; do - if [ -f $cpp ]; then - Cpp=$cpp - fi - done - if [ "$Cpp" = "" ]; then - Cpp=cpp - fi -fi - -TRADITIONAL= -FLAGS= - -# First flag might be `-traditional' if this is Gnu Cpp. -unknown_flag=`$Cpp -traditional /dev/null 2>&1 | - egrep 'known|recognized|valid|bad|legal'` -if [ "$unknown_flag" = "" ]; then - TRADITIONAL=-traditional -fi - -if [ "$1" ]; then - FLAGS=`$1` -fi - -echo $Cpp $TRADITIONAL $FLAGS diff --git a/CWRU/old-conf/support/getcppsyms.c b/CWRU/old-conf/support/getcppsyms.c deleted file mode 100644 index e4cb04483..000000000 --- a/CWRU/old-conf/support/getcppsyms.c +++ /dev/null @@ -1,427 +0,0 @@ -/* getcppsyms.c - Find unique compiler symbols. */ - -/* Copyright (C) 1993 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/* Some cpp's do not define any symbols, but instead let /bin/cc do it - for them. For such machines, running this file may prove useful. It - outputs the list of symbols which /bin/cc or /lib/cpp define and which - we had the foresight to guess at. */ - -#include - -int -main () -{ -#if defined (__BSD_4_4__) - printf ("-D__BSD_4_4__"); -#endif /* __BSD_4_4__ */ -#if defined (CMU) - printf (" -DCMU"); -#endif /* CMU */ -#if defined (_COFF) - printf (" -D_COFF"); -#endif /* _COFF */ -#if defined (DGUX) - printf (" -DDGUX"); -#endif /* DGUX */ -#if defined (GOULD_PN) - printf (" -DGOULD_PN"); -#endif /* GOULD_PN */ -#if defined (MACH) - printf (" -DMACH"); -#endif /* MACH */ -#if defined (MIPSEB) - printf (" -DMIPSEB"); -#endif /* MIPSEB */ -#if defined (MIPSEL) - printf (" -DMIPSEL"); -#endif /* MIPSEL */ -#if defined (MULTIMAX) - printf (" -DMULTIMAX"); -#endif /* MULTIMAX */ -#if defined (M_UNIX) - printf (" -DM_UNIX"); -#endif /* M_UNIX */ -#if defined (M_XENIX) - printf (" -DM_XENIX"); -#endif /* M_XENIX */ -#if defined (_M_XENIX) - printf (" -D_M_XENIX"); -#endif /* _M_XENIX */ -#if defined (NeXT) - printf (" -DNeXT"); -#endif /* NeXT */ -#if defined (__PARAGON__) - printf (" -D__PARAGON__"); -#endif /* __PARAGON__ */ -#if defined (_PGC_) - printf (" -D_PGC_"); -#endif /* _PGC_ */ -#if defined (__PGC__) - printf (" -D__PGC__"); -#endif /* __PGC__ */ -#if defined (RES) - printf (" -DRES"); -#endif /* RES */ -#if defined (RISC6000) - printf (" -DRISC6000"); -#endif /* RISC6000 */ -#if defined (RT) - printf (" -DRT"); -#endif /* RT */ -#if defined (SYSTYPE_BSD) - printf (" -DSYSTYPE_BSD"); -#endif /* SYSTYPE_BSD */ -#if defined (SYSTYPE_SYSV) - printf (" -DSYSTYPE_SYSV"); -#endif /* SYSTYPE_SYSV */ -#if defined (Sun386i) - printf (" -DSun386i"); -#endif /* Sun386i */ -#if defined (Tek4132) - printf (" -DTek4132"); -#endif /* Tek4132 */ -#if defined (Tek4300) - printf (" -DTek4300"); -#endif /* Tek4300 */ -#if defined (UMAXV) - printf (" -DUMAXV"); -#endif /* UMAXV */ -#if defined (USGr4) - printf (" -DUSGr4"); -#endif /* USGr4 */ -#if defined (USGr4_2) - printf (" -DUSGr4_2"); -#endif /* USGr4_2 */ -#if defined (__SVR4_2__) - printf (" -D__SVR4_2__"); -#endif /* __SVR4_2__ */ -#if defined (Xenix286) - printf (" -DXenix286"); -#endif /* Xenix286 */ -#if defined (_AIX) - printf (" -D_AIX"); -#endif /* _AIX */ -#if defined (_AIX370) - printf (" -D_AIX370"); -#endif /* _AIX370 */ -#if defined (_IBMESA) - printf (" -D_IBMESA"); -#endif /* _IBMESA */ -#if defined (__ibmesa) - printf (" -D__ibmesa"); -#endif /* __ibmesa */ -#if defined (_U370) - printf (" -D_U370"); -#endif /* _U370 */ -#if defined (_NLS) - printf (" -D_NLS"); -#endif /* _NLS */ -#if defined (_CX_UX) - printf (" -D_CX_UX"); -#endif /* _CX_UX */ -#if defined (_IBMR2) - printf (" -D_IBMR2"); -#endif /* _IBMR2 */ -#if defined (_M88K) - printf (" -D_M88K"); -#endif /* _M88K */ -#if defined (_M88KBCS_TARGET) - printf (" -D_M88KBCS_TARGET"); -#endif /* _M88KBCS_TARGET */ -#if defined (__DGUX__) - printf (" -D__DGUX__"); -#endif /* __DGUX__ */ -#if defined (__UMAXV__) - printf (" -D__UMAXV__"); -#endif /* __UMAXV__ */ -#if defined (__m88k) - printf (" -D__m88k"); -#endif /* __m88k */ -#if defined (__uxpm__) - printf (" -DUSGr4 -Du370 -D__uxpm__"); -#endif /* __uxpm__ */ -#if defined (__uxps__) - printf (" -D__svr4__ -D__uxps__"); -#endif /* __uxps__ */ -#if defined (alliant) - printf (" -Dalliant"); -#endif /* alliant */ -#if defined (alpha) - printf (" -Dalpha"); -#endif /* alpha */ -#if defined (__alpha) - printf (" -D__alpha"); -#endif /* __alpha */ -#if defined (aix) - printf (" -Daix"); -#endif /* aix */ -#if defined (aixpc) - printf (" -Daixpc"); -#endif /* aixpc */ -#if defined (apollo) - printf (" -Dapollo"); -#endif /* apollo */ -#if defined (ardent) - printf (" -Dardent"); -#endif /* ardent */ -#if defined (att386) - printf (" -Datt386"); -#endif /* att386 */ -#if defined (att3b) - printf (" -Datt3b"); -#endif /* att3b */ -#if defined (bsd4_2) - printf (" -Dbsd4_2"); -#endif /* bsd4_2 */ -#if defined (bsd4_3) - printf (" -Dbsd4_3"); -#endif /* bsd4_3 */ -#if defined (__bsdi__) - printf (" -D__bsdi__"); -#endif /* __bsdi__ */ -#if defined (bsdi) - printf (" -Dbsdi"); -#endif /* bsdi */ -#if defined (__386BSD__) - printf (" -D__386BSD__"); -#endif /* __386BSD__ */ -#if defined (cadmus) - printf (" -Dcadmus"); -#endif /* cadmus */ -#if defined (clipper) - printf (" -Dclipper"); -#endif /* clipper */ -#if defined (concurrent) - printf (" -Dconcurrent"); -#endif /* concurrent */ -#if defined (convex) || defined (__convex__) || defined (__convexc__) -# if !defined (__GNUC__) - printf (" -pcc"); -# endif /* !__GNUC__ */ - printf (" -Dconvex"); -#endif /* convex */ -#if defined (dmert) - printf (" -Ddmert"); -#endif /* dmert */ -#if defined (gcos) - printf (" -Dgcos"); -#endif /* gcos */ -#if defined (gcx) - printf (" -Dgcx"); -#endif /* gcx */ -#if defined (gould) - printf (" -Dgould"); -#endif /* gould */ -#if defined (hbullx20) - printf (" -Dhbullx20"); -#endif /* hbullx20 */ -#if defined (hcx) - printf (" -Dhcx"); -#endif /* hcx */ -#if defined (host_mips) - printf (" -Dhost_mips"); -#endif /* host_mips */ -#if defined (hp9000) || defined (__hp9000) - printf (" -Dhp9000"); -#endif /* hp9000 || __hp9000 */ -#if defined (hp9000s200) || defined (__hp9000s200) - printf (" -Dhp9000s200"); -#endif /* hp9000s200 || __hp9000s200 */ -#if defined (hp9000s300) || defined (__hp9000s300) - printf (" -Dhp9000s300"); -#endif /* hp9000s300 || __hp9000s300 */ -#if defined (hp9000s500) || defined (__hp9000s500) - printf (" -Dhp9000s500"); -#endif /* hp9000s500 || __hp9000s500 */ -#if defined (hp9000s700) || defined (__hp9000s700) - printf (" -Dhp9000s700"); -#endif /* hp9000s700 || __hp9000s700 */ -#if defined (hp9000s800) || defined (__hp9000s800) - printf (" -Dhp9000s800"); -#endif /* hp9000s800 || __hp9000s800 */ -#if defined (hppa) || defined (__hppa) - printf (" -Dhppa"); -#endif /* hppa || __hppa */ -#if defined (hpux) || defined (__hpux) - printf (" -Dhpux"); -#endif /* hpux */ -#if defined (__hp_osf) - printf (" -D__hp_osf"); -#endif /* __hp_osf */ -#if defined (i386) - printf (" -Di386"); -#endif /* i386 */ -#if defined (__i386__) - printf (" -D__i386__"); -#endif -#if defined (__i860) - printf(" -D__i860"); -#endif /* __i860 */ -#if defined (__i860__) - printf(" -D__i860__"); -#endif /* __i860__ */ -#if defined (ibm) - printf (" -Dibm"); -#endif /* ibm */ -#if defined (ibm032) - printf (" -Dibm032"); -#endif /* ibm032 */ -#if defined (ibmrt) - printf (" -Dibmrt"); -#endif /* ibmrt */ -#if defined (interdata) - printf (" -Dinterdata"); -#endif /* interdata */ -#if defined (is68k) - printf (" -Dis68k"); -#endif /* is68k */ -#if defined (ksr1) - printf (" -Dksr1"); -#endif /* ksr1 */ -#if defined (__ksr1__) - printf (" -D__ksr1__"); -#endif /* __ksr1__ */ -#if defined (linux) - printf (" -Dlinux"); -#endif /* linux */ -#if defined (__linux__) - printf (" -D__linux__"); -#endif /* __linux__ */ -#if defined (luna88k) - printf (" -Dluna88k"); -#endif /* luna88k */ -#if defined (m68k) - printf (" -Dm68k"); -#endif /* m68k */ -#if defined (m88k) - printf (" -Dm88k"); -#endif /* m88k */ -#if defined (mc68010) - printf (" -Dmc68010"); -#endif /* mc68010 */ -#if defined (mc68020) - printf (" -Dmc68020"); -#endif /* mc68020 */ -#if defined (mc68030) - printf (" -Dmc68030"); -#endif /* mc68030 */ -#if defined (mc68040) - printf (" -Dmc68040"); -#endif /* mc68040 */ -#if defined (mc68k32) - printf (" -Dmc68k32"); -#endif /* mc68k32 */ -#if defined (mips) - printf (" -Dmips"); -#endif /* mips */ -#if defined (n16) - printf (" -Dn16"); -#endif /* n16 */ -#if defined (ns32000) - printf (" -Dns32000"); -#endif /* ns32000 */ -#if defined (os) - printf (" -Dos"); -#endif /* os */ -#if defined (osf) - printf (" -Dosf"); -#endif /* osf */ -#if defined (__osf__) - printf (" -D__osf__"); -#endif /* __osf__ */ -#if defined (__OSF1__) - printf(" -D__OSF1__"); -#endif /* __OSF1__ */ -#if defined (pdp11) - printf (" -Dpdp11"); -#endif /* pdp11 */ -#if defined (plexus) - printf (" -Dplexus") -#endif /* plexus */ -#if defined (pyr) - printf (" -Dpyr"); -#endif /* pyr */ -#if defined (scs) - printf (" -Dscs"); -#endif /* scs */ -#if defined (sequent) - printf (" -Dsequent"); -#endif /* sequent */ -#if defined (sgi) - printf (" -Dsgi"); -#endif /* sgi */ -#if defined (sony) - printf (" -Dsony"); -#endif /* sony */ -#if defined (sparc) - printf (" -Dsparc"); -#endif /* sparc */ -#if defined (stardent) - printf (" -Dstardent"); -#endif /* stardent */ -#if defined (sun) - printf (" -Dsun"); -#endif /* sun */ -#if defined (sun2) - printf (" -Dsun2"); -#endif /* sun2 */ -#if defined (sun3) - printf (" -Dsun3"); -#endif /* sun3 */ -#if defined (sun4) - printf (" -Dsun4"); -#endif /* sun4 */ -#if defined (__svr4__) - printf (" -D__svr4__"); -#endif /* __svr4__ */ -#if defined (tower32) - printf (" -Dtower32"); -#endif /* tower32 */ -#if defined (tss) - printf (" -Dtss"); -#endif /* tss */ -#if defined (u370) - printf (" -Du370"); -#endif /* u370 */ -#if defined (u3b) - printf (" -Du3b"); -#endif /* u3b */ -#if defined (u3b2) - printf (" -Du3b2"); -#endif /* u3b2 */ -#if defined (u3b20d) - printf (" -Du3b20d"); -#endif /* u3b20d */ -#if defined (u3b5) - printf (" -Du3b5"); -#endif /* u3b5 */ -#if defined (ultrix) - printf (" -Dultrix"); -#endif /* ultrix */ -#if defined (unix) - printf (" -Dunix"); -#endif /* unix */ -#if defined (vax) - printf (" -Dvax"); -#endif /* vax */ - - printf ("\n"); - exit (0); -} diff --git a/CWRU/old-conf/support/inpath b/CWRU/old-conf/support/inpath deleted file mode 100755 index 95f28bc16..000000000 --- a/CWRU/old-conf/support/inpath +++ /dev/null @@ -1,19 +0,0 @@ -#! /bin/sh -# -# Search $PATH for a file the same name as $1; return TRUE if found. -# - -command=$1 -[ -n "$command" ] || exit 1 - -set `echo $PATH | sed 's/^:/.:/ - s/::/:.:/g - s/:$/:./ - s/:/ /g'` - -while [ $# -ne 0 ] ; do - [ -f $1/$command ] && exit 0 # test -x not universal - shift -done - -exit 1 diff --git a/CWRU/old-conf/support/mkmachtype b/CWRU/old-conf/support/mkmachtype deleted file mode 100755 index b2bc5ca58..000000000 --- a/CWRU/old-conf/support/mkmachtype +++ /dev/null @@ -1,282 +0,0 @@ -#!/bin/sh -# This script attempts to guess a canonical system name. -# Copyright (C) 1992, 1993 Free Software Foundation, Inc. -# -# This file 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 of the License, or -# (at your option) any later version. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ - -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit system type (host/target name). -# -# Only a few systems have been added to this list; please add others -# (but try to keep the structure clean). -# - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - alpha:OSF1:1.*:*) - # 1.2 uses "1.2" for uname -r. - echo alpha-dec-osf${UNAME_RELEASE} - exit 0 ;; - alpha:OSF1:V1.*:*) - # 1.3 uses "V1.3" for uname -r. - echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'` - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - sun4*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - echo sparc-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - mips:*:5*:RISCos) - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - echo m88k-dg-dgux${UNAME_RELEASE} - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - *:IRIX:*:*) - echo mips-sgi-irix${UNAME_RELEASE} - exit 0 ;; - i[34]86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - *:AIX:2:3) - echo rs6000-ibm-aix3.2 - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/31?:HP-UX:*:*) - echo m68000-hp-hpux - exit 0 ;; - 9000/[34]??:HP-UX:*:*) - echo m68k-hp-hpux - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/7??:HP-UX:*:* | 9000/8?7:HP-UX:*:* ) - echo hppa1.1-hp-hpux - exit 0 ;; - 9000/8??:HP-UX:*:*) - echo hppa1.0-hp-hpux - exit 0 ;; - 3050*:HI-UX:*:*) - sed 's/^ //' << EOF >dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?7:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - C1*:ConvexOS:*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:*) - echo c2-convex-bsd - exit 0 ;; - CRAY*X-MP:UNICOS:*:*) - echo xmp-cray-unicos - exit 0 ;; - CRAY*Y-MP:UNICOS:*:*) - echo ymp-cray-unicos - exit 0 ;; - CRAY-2:UNICOS:*:*) - echo cray2-cray-unicos - exit 0 ;; - hp3[0-9][05]:NetBSD:*:*) - echo m68k-hp-netbsd${UNAME_RELEASE} - exit 0 ;; - i[34]86:NetBSD:*:*) - echo ${UNAME_MACHINE}-unknown-netbsd${UNAME_RELEASE} - exit 0 ;; - amiga:NetBSD:*:*) - echo m68k-cbm-netbsd{$UNAME_RELEASE} - exit 0 ;; - i[34]86:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux - exit 0 ;; - i[34]86:UNIX_SV:4.*:*) - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} - else - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - i[34]86:*:3.2:*) - if /bin/uname -X 2>/dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-unknown-sysv3.2 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - M680[234]0:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:*) - uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m680[234]0:LynxOS:2.2*:*) - echo m68k-lynx-lynxos${UNAME_RELEASE} - exit 0 ;; - i[34]86:LynxOS:2.2*:*) - echo i386-lynx-lynxos${UNAME_RELEASE} - exit 0 ;; - TSUNAMI:LynxOS:2.2*:*) - echo sparc-lynx-lynxos${UNAME_RELEASE} - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -cat >dummy.c <&2 - -exit 1 diff --git a/CWRU/old-conf/support/mksysdefs b/CWRU/old-conf/support/mksysdefs deleted file mode 100755 index 05040d1c3..000000000 --- a/CWRU/old-conf/support/mksysdefs +++ /dev/null @@ -1,489 +0,0 @@ -#!/bin/sh -# -# This file creates a file called "sysdefs.h" which contains CPP defines -# helping to describe the operating system features. We just take guesses -# by looking at random files. - -# Removes any inherited definitions. -SYSDEF= -MAKE_ANSI= - -while [ $# -gt 0 ]; do - case "$1" in - -s) shift; srcdir=$1; shift ;; - -i) shift; incdir="$1"; shift ;; - -A) shift; MAKE_ANSI=true ;; - *) break ;; - esac -done - -sysdefs=${1-./sysdefs.h} -: ${srcdir=.} - -rm -f $sysdefs - -echo "/* sysdefs.h -- #defines for your system created by $0." >>$sysdefs -echo " Do NOT EDIT this file, since any changes will disappear." >>$sysdefs -echo " Instead, edit $0, or config.h, or machines.h. */" >>$sysdefs -echo "" >>$sysdefs -echo "#if !defined (_SYSDEFS_H_)" >>$sysdefs -echo "# define _SYSDEFS_H_" >>$sysdefs - -# was if [ -f /usr/bin/uname ] || [ -f /bin/uname ] -if ( uname >/dev/null 2>&1 ) 2>/dev/null -then - UNAME=`uname` # SunOS - UNAME_R=`uname -r 2>/dev/null` # 4.1.2 - UNAME_M=`uname -m 2>/dev/null` # sun4m - UNAME_V=`uname -v 2>/dev/null` # 13 - UNAME_S=`uname -s 2>/dev/null` # SunOS - RELEASE=`expr "$UNAME_R" : '[^0-9]*\([0-9]*\)'` # 4 - case "$RELEASE" in - "") RELEASE=0 ;; - *) RELEASE=`expr "$RELEASE" + 0` ;; - esac - LEVEL=`expr "$UNAME_R" : '[^0-9]*[0-9]*.\([0-9]*\)'` # 1 - SUBLEVEL=`expr "$UNAME_R" : '[^0-9]*[0-9]*.[0-9]*.\([0-9]*\)'` # 2 -fi - -# check for versions of SunOS and BSD/OS -case "${UNAME}${RELEASE}" in -SunOS4*) SYSDEF=SunOS4 ;; -SunOS5*) SYSDEF=SunOS5 ;; -BSD/OS2*) SYSDEF=BSDI2 ;; -esac - -# Test for NeXT -if [ -d /NextLibrary ]; then - MAKE_ANSI=true -fi - -# Intel Paragon -case "$UNAME_M" in -paragon) MAKE_ANSI=true ;; -esac - -# Test for shared libraries (this is pretty sVr4ish). -if [ -f /usr/ccs/lib/libc.so ]; then - SYSDEF=USGr4 -fi - -# Some versions of i386 SVR4.2 make `uname' equivalent to `uname -n', which -# is contrary to all other versions of uname -if [ -n "$UNAME" ] && [ "$UNAME_S" != "$UNAME" ] && [ "$UNAME_S" = UNIX_SV ]; then - UNAME=UNIX_SV -fi - -# another check for SVR4 on 386 or 486 machines -case "${UNAME_M}:${UNAME}:${UNAME_R}" in -i[34]86:UNIX_SV:4.*) SYSDEF=USGr4 ;; -esac - -# A check for Mips RISCos -case "$UNAME_V" in -UMIPS|RISCos) SYSDEF=RISCos_${RELEASE}_${LEVEL} ;; -esac - -# A check for Amdahl UTS -case "$UNAME" in -uts) SYSDEF=UTS ;; -esac - -# Look for an error message when trying to exec bison. If we find -# what we're looking for, then we don't have it. If we get something -# else (like an error message about no grammar file), then we have -# it. -YACC=yacc -if ( cd /tmp ; bison /dev/null 2>&1 >/dev/null | grep 'no input grammar' >/dev/null 2>&1 ) 2>/dev/null; then - YACC="bison -y" -elif ( cd /tmp ; byacc /dev/null 2>&1 >/dev/null | grep 'unexpected ' >/dev/null 2>&1) 2>/dev/null; then - YACC=byacc -fi - -# Try to locate ranlib. I think this is a bad idea. -if sh ${srcdir}/support/inpath ranlib; then - RANLIB_LOCATION=ranlib -elif [ -f /usr/bin/ranlib ]; then - RANLIB_LOCATION=/usr/bin/ranlib; -elif [ -f /bin/ranlib ]; then - RANLIB_LOCATION=/bin/ranlib; -elif [ -f /usr/local/bin/ranlib ]; then - RANLIB_LOCATION=/usr/local/bin/ranlib; -elif [ -f /usr/gnu/bin/ranlib ]; then - RANLIB_LOCATION=/usr/gnu/bin/ranlib -elif [ -f /usr/local/gnubin/ranlib ]; then - RANLIB_LOCATION=/usr/local/gnubin/ranlib; -else - RANLIB_LOCATION=: # XXX -fi - -if [ -n "${RANLIB_LOCATION}" ]; then - echo "" >>$sysdefs - echo "#if !defined (RANLIB_LOCATION)" >>$sysdefs - echo "# define RANLIB_LOCATION ${RANLIB_LOCATION}" >>$sysdefs - echo "#endif /* RANLIB_LOCATION */" >>$sysdefs -fi - -# -# Is this a Xenix system? -# -if [ -f /xenix ]; then - SYSDEF="Xenix" - case "`/bin/uname -p`" in - *286) SYSDEF="Xenix286" ;; - *386) SYSDEF="Xenix386" ;; - esac - - # make sure that `i386' is defined for machines.h - if [ "$SYSDEF" = "Xenix386" ]; then - echo "" >>$sysdefs - echo "#if !defined (i386)" >>$sysdefs - echo "# define i386" >>$sysdefs - echo "#endif /* !i386 */" >>$sysdefs - fi - - # Pass the release number of the OS through to the machine descriptions - # in machines.h. - if [ -f /etc/perms/soft ]; then - rel=`grep rel= /etc/perms/soft` - case "$rel" in - *2.2.*) XREL=XENIX_22 ;; - *2.3.*) XREL=XENIX_23 ;; - *3.2.*) XREL=XENIX_32 ;; - *) XREL= ;; - esac - - if [ "$XREL" ]; then - echo "" >>$sysdefs - echo "#if !defined ($XREL)" >>$sysdefs - echo "# define $XREL" >>$sysdefs - echo "#endif /* !$XREL */" >>$sysdefs - fi - fi -fi - -# -# Is this some kind of Sys Vish system? -# -if [ -f /unix ]; then - if [ -d /generic ]; then # This is an AIX system. - SYSDEF="aixpc" - MAKE_ANSI=true - elif [ -d /etc/conf/kconfig.d ] && [ -f /usr/include/sys/limits.h ]; then - SYSDEF="isc386" # This is a 386 running ISC? - ISCREL="ISC_$RELEASE" - echo "#if !defined ($ISCREL)" >>$sysdefs - echo "# define $ISCREL" >>$sysdefs - echo "#endif /* $ISCREL */" >>$sysdefs - elif [ -f /etc/xlc.cfg ]; then - if fgrep _IBMR2 /etc/xlc.cfg >/dev/null 2>&1; then - SYSDEF=RISC6000 - MAKE_ANSI=true - fi - elif [ -f /bin/4d -a -f /bin/uname ]; then - case "$UNAME_R" in - 3.*) SYSDEF="Irix3" ;; - 4.*) SYSDEF="Irix4" ;; - 5.*) SYSDEF="Irix5" ;; - 6.*) SYSDEF="Irix6" ;; - *) SYSDEF="Irix3" ;; - esac - elif [ -d /usr/amiga ]; then - SYSDEF="amiga" # An Amiga running V.4. - elif [ -f /bin/fxc.info ]; then - SYSDEF="alliant" - fi -fi - -# Is this a Unicos system? -if [ -f /unicos ]; then - MAKE_ANSI=true - UnicosMachine= - - # Test for the variaous flavors of Cray machines. - if [ -x /bin/cray1 ] && /bin/cray1 2>/dev/null; then - UnicosMachine=Cray1 - fi - - if [ -x /bin/cray2 ] && /bin/cray2 2>/dev/null; then - UnicosMachine=Cray2 - fi - - if [ -x /bin/crayxmp ] && /bin/crayxmp 2>/dev/null; then - UnicosMachine=CrayXMP - fi - if [ -x /bin/crayymp ] && /bin/crayymp 2>/dev/null; then - UnicosMachine=CrayYMP - fi - - if [ "$UnicosMachine" ]; then - echo "#if !defined ($UnicosMachine)" >>$sysdefs - echo "# define $UnicosMachine" >>$sysdefs - echo "#endif /* !$UnicosMachine */" >>$sysdefs - fi -fi - -# Is this (and what kind of) a HPUX system? -if [ -f /hp-ux ]; then - SYSDEF=HPUX_${RELEASE} - if [ "$RELEASE" = 6 -a "$LEVEL" -lt 2 ]; then - SYSDEF=HPUX_USG - fi -fi - -if [ "$SYSDEF" = "" ]; then - case "$UNAME_M" in - ESA) SYSDEF=AIXESA ;; - XD88*) SYSDEF=XD88 ;; - M88100) SYSDEF=M88100 ;; # Motorola Delta 88K - esac -fi - -# What release of SCO Unix is this? -if [ "$SYSDEF" = "" -a -f /bin/uname ]; then - case `/bin/uname -X 2>/dev/null | grep '^Release' 2>/dev/null` in - *3.2v4.*) SYSDEF=SCOv4 ;; - *) SYSDEF=SCO ;; - esac -fi - -# -# Default to cadmus for unknown SysVish systems -# -if [ -f /unix ] && [ "$SYSDEF" = "" ]; then - SYSDEF="cadmus" -fi - -if [ "$SYSDEF" != "" ]; then - echo "" >>$sysdefs - echo "#if !defined ($SYSDEF)" >>$sysdefs - echo "# define $SYSDEF" >>$sysdefs - echo "#endif /* $SYSDEF */" >>$sysdefs -fi - -# Now look for certain include files in a list of directories -# Poor substitute for autoconf - -# Add any other directories where include files are found to this list or -# create another case -if [ -n "$incdir" ]; then - dirlist="$incdir" -else - case "$SYSDEF" in - RISCos*) dirlist="/bsd43/usr/include";; - *) dirlist="/usr/include /usr/include/bsd /usr/include/ansi" ;; - esac -fi - -# Code fragment to be executed to find a particular include file. Make sure -# to set `file' to the pathname of the file you want, relative to /usr/include, -# before calling `eval $findf'. -findf=" -found=''; -for d in \$dirlist; -do - if test -f \$d/\$file; - then - found=yes; - break; - fi; -done -" - -file=sys/stream.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_SYS_STREAM_H)" >>$sysdefs - echo "# define HAVE_SYS_STREAM_H" >>$sysdefs - echo "#endif /* HAVE_SYS_STREAM_H */" >>$sysdefs -fi - -file=sys/ptem.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_SYS_PTEM_H)" >>$sysdefs - echo "# define HAVE_SYS_PTEM_H" >>$sysdefs - echo "#endif /* HAVE_SYS_PTEM_H */" >>$sysdefs -fi - -file=sys/pte.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_SYS_PTE_H)" >>$sysdefs - echo "# define HAVE_SYS_PTE_H" >>$sysdefs - echo "#endif /* HAVE_SYS_PTE_H */" >>$sysdefs -fi - -file=sys/wait.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_SYS_WAIT_H)" >>$sysdefs - echo "# define HAVE_SYS_WAIT_H" >>$sysdefs - echo "#endif /* HAVE_SYS_WAIT_H */" >>$sysdefs -fi - -file=sys/resource.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_RESOURCE)" >>$sysdefs - echo "# define HAVE_RESOURCE" >>$sysdefs - echo "#endif /* HAVE_RESOURCE */" >>$sysdefs -fi - -file=sys/param.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_SYS_PARAM_H)" >>$sysdefs - echo "# define HAVE_SYS_PARAM_H" >>$sysdefs - echo "#endif /* HAVE_SYS_PARAM_H */" >>$sysdefs -fi - -file=unistd.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_UNISTD_H)" >>$sysdefs - echo "# define HAVE_UNISTD_H" >>$sysdefs - echo "#endif /* HAVE_UNISTD_H */" >>$sysdefs -fi - -file=stdlib.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_STDLIB_H)" >>$sysdefs - echo "# define HAVE_STDLIB_H" >>$sysdefs - echo "#endif /* HAVE_STDLIB_H */" >>$sysdefs -fi - -file=limits.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_LIMITS_H)" >>$sysdefs - echo "# define HAVE_LIMITS_H" >>$sysdefs - echo "#endif /* HAVE_LIMITS_H */" >>$sysdefs -fi - -file=locale.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_LOCALE_H)" >>$sysdefs - echo "# define HAVE_LOCALE_H" >>$sysdefs - echo "#endif /* HAVE_LOCALE_H */" >>$sysdefs -fi - -file=alloca.h -eval $findf -if [ -f /usr/include/alloca.h ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_ALLOCA_H)" >>$sysdefs - echo "# define HAVE_ALLOCA_H" >>$sysdefs - echo "#endif /* HAVE_ALLOCA_H */" >>$sysdefs -fi - -file=dirent.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_DIRENT_H)" >>$sysdefs - echo "# define HAVE_DIRENT_H" >>$sysdefs - echo "#endif /* HAVE_DIRENT_H */" >>$sysdefs -fi - -file=string.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_STRING_H)" >>$sysdefs - echo "# define HAVE_STRING_H" >>$sysdefs - echo "#endif /* HAVE_STRING_H */" >>$sysdefs -fi - -file=varargs.h -eval $findf -if [ -n "$found" ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_VARARGS_H)" >>$sysdefs - echo "# define HAVE_VARARGS_H" >>$sysdefs - echo "#endif /* HAVE_VARARGS_H */" >>$sysdefs -fi - -# Does the system have a /dev/fd directory? -if [ -d /dev/fd ]; then - echo "" >>$sysdefs - echo "#if !defined (HAVE_DEV_FD)" >>$sysdefs - echo "# define HAVE_DEV_FD" >>$sysdefs - echo "#endif /* HAVE_DEV_FD */" >>$sysdefs -fi - -# Is this SVR4.2? It's subtly different from USGr4 -if [ "$UNAME" = "UNIX_SV" ] && [ "$UNAME_R" = "4.2" ]; then - echo "" >>$sysdefs - echo "#if !defined (USGr4_2)" >>$sysdefs - echo "# define USGr4_2" >>$sysdefs - echo "#endif /* USGr4_2 */" >>$sysdefs -fi - -# Is this AIX PS/2 1.3? Yuck. -if [ "$UNAME" = "AIX" ] && [ "$UNAME_V" = "1" ] && [ "$RELEASE" = "3" ]; then - case "$UNAME_M" in - i386|i486) - echo "" >>$sysdefs - echo "#if !defined (AIX_13)" >>$sysdefs - echo "# define AIX_13" >>$sysdefs - echo "#endif /* AIX_13 */" >>$sysdefs - ;; - esac -fi - -if [ -n "$YACC" ]; then - echo "" >>$sysdefs - echo "#if !defined (YACC_PROG)" >>$sysdefs - echo "# define YACC_PROG $YACC" >>$sysdefs - echo "#endif /* YACC_PROG */" >>$sysdefs -fi - -# Functions to test for a la autoconf -# getwd -# getcwd -# strchr -# strcasecmp -# getgroups -# setlinebuf -# strerror -# vfprintf -# bcopy -# getdtablesize -# setdtablesize -# alloca -# gethostname -# memmove (missing) -# mkfifo (missing) -# -# Other things to test -# opendir robustness -# dup2 working -# void sighandler -# sys_siglist[] -# uid_t, gid_t -# have_getpw_decls -# reversed setvbuf args -# int getgroups - -# If this system's cpp might not like `/**/#' in cpp-Makefile, make an -# alternate ansi-style cpp-Makefile. -if [ -n "$MAKE_ANSI" ]; then - grep -v '/\*\*/' ${srcdir}/cpp-Makefile >ansi-Makefile -fi - -# These should be the last 2 lines in this file! -echo "" >>$sysdefs -echo "#endif /* _SYSDEFS_H_ */" >>$sysdefs diff --git a/CWRU/old-conf/support/srcdir b/CWRU/old-conf/support/srcdir deleted file mode 100755 index 9d8ccd71b..000000000 --- a/CWRU/old-conf/support/srcdir +++ /dev/null @@ -1,13 +0,0 @@ -#! /bin/sh -# -# srcdir - print out the absolute pathname of the top of the bash source -# tree. Used for getting the right value to makes in subdirectories -# - -case "$1" in -'.'|./) pwd ;; -./*|..*) echo `pwd`/"$1" ;; -*) echo "$1" ;; -esac - -exit 0 diff --git a/CWRU/old/KSH.README b/CWRU/old/KSH.README deleted file mode 100644 index 8d19d88de..000000000 --- a/CWRU/old/KSH.README +++ /dev/null @@ -1,136 +0,0 @@ - -This is a description of the changes made to bash for increased ksh -compatibility. - -1. $SECONDS - - "Each time this parameter is referenced, the number of seconds - since shell invocation is returned. If this parameter is assigned - a value, then the value returned will be the value that was - assigned plus the number of seconds since the assignment." - - Files changed: variables.c - variables.h - subst.c - general.c - shell.c - general.h - -2. $TMOUT - - "If set to a value greater than 0, the shell will terminate if a - command is not entered within the prescribed number of seconds - after issuing the PS1 prompt." - - Files changed: shell.c (the implementation is not perfect) - -3. $RANDOM - - "Each time this parameter is referenced, a random integer is - generated. The sequence of random numbers can be initialized - by assigning a numeric value to RANDOM." - - Files changed: subst.c - variables.c - -4. $REPLY - - "This parameter is set by the `read' special command when no - arguments are supplied." - - Files changed: builtins.c - -5. integer variables - - `declare -i' (also export) makes a variable an integer (turns on - the integer attribute). When assignment is made to a variable with - the -i attribute, arithmetic expression evaluation is done on the - value before it is assigned to the variable. - - Files changed: variables.h - variables.c - builtins.c - -6. Arithmetic expression evaluation. - - Here is the comment at the beginning of the new file `expr.c': - - - ksh-style expression evaluation. - - All arithmetic is done as long integers with no checking for overflow - (though division by 0 is caught and flagged as an error). - - The following operators are handled, grouped into a set of levels in - order of decreasing precedence. - - "-" [level 0 (unary negation)] - "!" [level 1] - "*", "/", "%" [level 2] - "+", "-" [level 3] - "<=", ">=", "<", ">" [level 4] - "==", "!=" [level 5] - "=" [level 6 (assignment)] - - (Note that most of these operators have special meaning to bash, and an - entire expression should be quoted, e.g. "a=$a+1" or "a=a+1" to ensure - that it is passed intact to the evaluator). - - Sub-expressions within parentheses have a precedence level greater than - all of the above levels and are evaluated first. Within a single prece- - dence group, evaluation is left-to-right, except for the arithmetic - assignment operator (`='), which is evaluated right-to-left (as in C). - - The expression evaluator returns the value of the expression (assignment - statements have as a value what is returned by the RHS). The `let' - builtin, on the other hand, returns 0 if the last expression evaluates to - a non-zero, and 1 otherwise. - - Implementation is a recursive-descent parser. - - Files added: expr.c - -7. `let' builtin - - Parameters may be assigned numeric values via the `let' builtin. - Each of its arguments is an expression to be evaluated. `let' - returns 0 if the value of the last expression is non-zero, and - 1 otherwise. - - Note that the "((...))" form of this command has not yet been - implemented; it requires changes to the parsing functions. - - Files changed: builtins.c - -8. $_ - - $_ is set to the last argument of the previous command line, after - expansion. It is still used as before when checking for mail. - Two new keybindings have been added to insert this into the current - command line (M-_ and M-.). - - Files changed: mailcheck.c - execute_cmd.c - bashline.c - -9. `cd -' - - Equivalent to 'cd $OLDPWD' - - Files changed: builtins.c - -10. "ulimit -a" - - "List all of the current resource limits (BSD only)." - - Files changed: builtins.c - -11. ${#@} and ${#*} - - These expand to the number of positional parameters. - - Files changed: subst.c - -Chet Ramey -Information Network Services, Case Western Reserve University -chet@ins.CWRU.Edu diff --git a/CWRU/old/RELEASE.113 b/CWRU/old/RELEASE.113 deleted file mode 100644 index f38e5f219..000000000 --- a/CWRU/old/RELEASE.113 +++ /dev/null @@ -1,140 +0,0 @@ -This file details the changes between the previous release of CWRU bash -(07/11/93) and this release. - -1. Bugs Fixed - -Readline's vi-mode once again has TAB bound to completion; entering `posix -mode' changes it to self-insert - -Bash now binds its special emacs-mode functions directly into -emacs_meta_keymap so that eight-bit character handling does not interfere - -Some source restructuring: more extern functions are defined in header files -and not in C source files - -The handling of `line number' inside functions is now more correct and -closer to reality - -Some functions of `general use' were moved to general.c (vfree, -full_pathname) - -A bug that caused some redirections to be applied twice was fixed in -execute_command_internal (dispose of redirection_undo_list after copying it; -ditto for exec_redirection_undo_list) - -The exit status of a command that is not found is 126, as Posix.2 specifies - -More speed improvements -- bash now runs as fast as the SunOS sh on -Haertel's `shell benchmark' - -Instead of returning pointers to -1, bash and the readline, history, and -glob libraries now return pointers to special `error pointers', which the -calling code checks for in place of -1 - -Fixed a problem with canonicalize_pathname which made it get -confused with xxx/./yyy if yyy was `.' or `..' - -Fixes to make bash recognize SVR4.2 and set USGr4_2 for SVR4.2 systems - -Fixes to the HP/UX machine descriptions to make alloca work on HPUX_9 -and to avoid `M_MACHINE redefined' warnings - -Fixes to the CRAY machine description - -Fixes to the mailpath code to make it Posix.2-compliant -- backslash -may now quote `%' and `?' - -The namespace was further cleaned up, and more functions and variables -were made static - -On systems with S_IFSOCK or S_ISSOCK defined in sys/stat.h, bash checks -whether fd 0 is a socket to decide whether or not it's being started by -rshd and to run the startup files - -Bash now gives the signal mask it inherits to its children -- previously, -login shells cleared the signal mask - -cpp-Makefile and subst.c both used the `USE_GLOB_LIBRARY' define, but -with different meanings; subst.c now uses `USE_POSIX_GLOB_LIBRARY' - -Fixed pattern substitution so that ${a%%$b}, where b was unset, no longer -causes a core dump - -Changed the `test_exit' define in test.c to no longer use `longjmp' as -the rhs or a comma-ized expression; this causes core dumps on some -optimizer/machine combinations - -A speed hack in variables.c: if no local variables are defined for a level -of shell context, kill_all_local_variables does not need to search the -whole variable hash table when popping a context - -Fixed the `bind' builtin so that -m now changes the keymap for all of the -subsequent operations - -Changed some more builtins to use internal_getopt: bind, command, export, -readonly, declare, typeset - -Fixed fc to use the Posix.2 format for listing commands in the -history list - -Changed bg to set `!', as Posix.2 specifies - -Fixed ulimit.def to compile if RLIMIT_RSS is not defined, -as some systems seem to have it - -Replaced lib/malloc/alloca.c with the version from emacs 19. The old one -lives in alloca.c.old - -malloc.c now uses the ANSI C features to `stringize' macro arguments if -__STDC__ is defined - -Fixes to the GNU malloc library from glibc 1.06 and Mike Haertel - -Fixes to readline key binding and lookup for Cray systems, which don't -like the casting that readline does - -Fixes to all readline library source files to clean up the code: make sure -`int'-returning functions use `return x;' rather than `return;', declare all -arguments, even the `int' ones, and make some functions void. Cleaned up -the code formatting a little, too. - -The readline completer now double-quotes filenames with special word-break -characters, so that tilde expansion still works - -^C now breaks out of keyboard macros - -If being compiled as part of the shell, readline no longer attempts to -handle SIGTTIN, SIGTTOU, or SIGTSTP - -tilde_expansion_failure_hook is now a CPFunction rather than a Function, -since that's how it's used - -Readline vi-mode `change case' function now skips over characters which -are neither upper nor lower case - -Readline vi-mode now allows replacement to be redoable with `.' - -2. New Features - -A `strict Posix.2' mode, enabled with the -posix startup option or -setting the POSIXLY_CORRECT variable (see CWRU/POSIX.NOTES for a -description of the changed behavior) - -`ONESHOT' is now an option in config.h - -cpp-Makefile assumes that fixed header files are present if gcc is being -used - -The redirections attached to a function declaration are now part of that -function, applied when the function is executed, as specified by Posix.2. -This caused a change to parse.y that resulted in 66 shift/reduce -conflicts(!) - -All of the OP= functions that Posix.2 specifies are now implemented for -both `let' and arithmetic substitution - -The `command' builtin has acquired the Posix.2 `-v' and `-V' options -(this shares code with the `type' builtin) - -A new `bash_builtins' man page, like the `csh_builtins' page on some -systems diff --git a/CWRU/old/RSH.README b/CWRU/old/RSH.README deleted file mode 100644 index 6a3498b20..000000000 --- a/CWRU/old/RSH.README +++ /dev/null @@ -1,54 +0,0 @@ - -This is a description of the changes made to bash to provide a `restricted' -shell, `rbash', organized by changes to various source files. - -1. shell.c - - Moved the declaration of restricted to flags.c; it is now declared - extern here. Changed the detection of a restricted shell; now, any - instance of the shell for which *(basename(argv[0])) == 'r' (where - basename returns either everything after the last '/' in its - argument or its argument is restricted. Also, if SHELL is set on - entry to the shell, and it's basename is "rbash", the shell is - restricted. - - This paragraph applies only to CWRU, or to those who have compiled - the shell with "CWRU" defined. When a shell is determined to be - restricted, and it is a login shell, the file "/etc/rprofile" (and - only that file) is executed. There is no execution of ~/.profile - or ~/.bash_profile. The .bashrc file is executed, but after the - restrictions have been turned on (users may customize their instances - of the shell in this file while not compromising any kind of security - arrangements set up by the administrator). - -2. builtins.c - - cd_builtin was modified to return failure if bash is operating in - `restricted mode', so changing directories is not allowed. - -3. variables.c - - initialize_shell_variables () was modified to make PATH and SHELL - read-only when restricted == 1. These variables may not be unset - in a restricted shell. - -4. flags.c - - The variable `restricted' is now declared here. A new flag `-r', - to turn on restricted mode, has been added. `change_flag' has - been modified to disallow `set +r' if restricted == 1. - -5. execute_cmd.c - - execute_simple_command () was modified to disallow commands and - file names that contain a slash. - - Code was added to do_redirections () and do_redirection() to - disallow output file redirection specifications if restricted is - 1. - -Chet Ramey -Information Network Services, Case Western Reserve University -chet@ins.CWRU.Edu - -(I took almost all of this stuff out again after putting it in.) diff --git a/CWRU/old/array.doc b/CWRU/old/array.doc deleted file mode 100644 index 1bd14b5e9..000000000 --- a/CWRU/old/array.doc +++ /dev/null @@ -1,53 +0,0 @@ -This describes how bash users create, destroy, assign, and reference array -variables. Array variables are variables whose values are arrays of strings, -and whose elements may be referenced individually. - -CREATING - - any variable may be declared as an array using `typeset -a' - - an ordinary variable may be converted to an array using - `typeset -a'; the value becomes array[0] - - - there is a question of notation used to simultaneously declare - an array variable and populate it with values sequentially, - like ksh does with `set -A'. `set -A' is a horrible choice; - it should be discarded immediately. - - - we can use `typeset -a array [values...]' - -DESTROYING - - `unset name' will destroy the array `name' - - how to treat `typeset +a array'? - - I think we should keep the variable, convert it from an - array to an `ordinary' variable, and make the value at - the smallest index of the array the value of the new - variable - -ASSIGNING - - array[index]=value will serve to assign values to individual - elements of the array - - the subscript can be an arbitrary arithmetic expression; it - will be run through the expression evaluator - - this can create arrays, too - - this is analogous to defining a variable by simply - assigning to it - -REFERENCING - - $array will expand to all elements of the array, just like $* - expands to all the positional parameters - - "$array" is like "$@" - - ${array[index]} is used to reference array element `index', where - `index' can be an arbitrary arithmetic expression - - two special values for `index': * and @ expand to all - elements of the array, just like $* and $@. Quoting - behavior is the same, too - - using a subscript is an error if a variable has not been declared - as an array (is this wise?) - - ${#variable}, if `variable' is an array, expands to the number of - elements in the array - - ${#variable[n]} expands to the length of variable[n]. n - may be an arbitrary arithmetic expression - - ${#variable[*]} and ${#variable[@]} expand to the number of - elements in the array - -OPEN QUESTIONS - - should we allow them to be exported? Ksh does not, but rc does diff --git a/CWRU/old/fixlib b/CWRU/old/fixlib deleted file mode 100755 index 7d74c086d..000000000 --- a/CWRU/old/fixlib +++ /dev/null @@ -1,87 +0,0 @@ - -# This script is for bash-maintainers only! It takes a freshly unpacked Bash, -# and reorganizes it so that there is exactly one version of any given -# source file. -# - -if [ "$0" != "./fixdist" ]; then - echo "You must run 'fixdist' from the 'support' directory!" - exit 1 -fi - -cd ../lib -must_exist="posixheaders/posixstat.h posixheaders/ansi_stdlib.h" -must_exist="$must_exist tilde/tilde.c tilde/tilde.h" -must_exist="$must_exist malloc/xmalloc.c" - -for filename in $must_exist; do - if [ ! -f $filename ]; then - echo "The file lib/$filename doesn't exist, but it must!" - exit 1 - fi -done - -echo -n "Relinking neccessary files in lib/readline..." -cd readline -for filename in tilde.c tilde.h; do - rm $filename - ln -s ../tilde/$filename . -done - -rm posixstat.h && ln -s ../posixheaders/posixstat.h . -rm ansi_stdlib.h && ln -s ../posixheaders/ansi_stdlib.h . -rm xmalloc.c && ln -s ../malloc/xmalloc.c . -echo "done." - -echo -n "Linking files in . ..." -cd ../.. -rm posixstat.h && ln -s lib/posixheaders/posixstat.h . -rm ansi_stdlib.h && ln -s lib/posixheaders/ansi_stdlib.h . -echo "done." - -echo "Should I move the \"lib\" directory to \"../lib\" if I wouldn't" -echo -n "clobber anything by doing so (y/n)? " -read reply -if [ "$reply" != 'y' ]; then - echo "You said no, so in that case I'm all done." - exit 0 -fi - -# Try as hard as we can to move the lib directory to ../lib. -# -if [ -d ../lib ]; then - echo "The directory $(cd ../lib; pwd) already exists. It looks like:" - echo $(cd ../lib; ls -ldg .; ls -lF) - echo "I can:" - echo " 1) Move the directory to another name," - echo " 2) Delete matching directories from within it," - echo " 3) Copy files into existing directories, or" - echo " 4) Quit now, while you are ahead." - echo "" - echo -n "Which will it be? " - read reply - case "$reply" in - 1) - echo "I would be moving the directory to lib-old now" - ;; - 2) - echo "I would be deleting the matching directories now" - ;; - 3) - echo "I would just go ahead and copy the directories now" - ;; - 4) - echo "Probably a good move. Look at the script support/mklinks." - ;; - esac -else - echo -n "Moving lib to ../lib, and relinking lib in this directory..." - mv lib ../lib - mkdir lib - cd lib - ../support/mklinks ../../lib - echo "done." -fi - -echo "That concludes this fixing of the distribution." -exit 0 diff --git a/CWRU/old/histctl.def b/CWRU/old/histctl.def deleted file mode 100644 index f319a71f5..000000000 --- a/CWRU/old/histctl.def +++ /dev/null @@ -1,110 +0,0 @@ -This file is histctl.def, from which is created histctl.c. -It implements the builtin "histctl" in Bash. - -Copyright (C) 1987, 1989, 1991, 1992 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. - -$PRODUCES histctl.c - -$BUILTIN histctl -$FUNCTION histctl_builtin -$DEPENDS_ON HISTORY -$SHORT_DOC histctl [-cC] [-iI space|dups|both|none] -Control how lines are saved into the command history. An option -of -c enables command-oriented history, in which all lines of a -compound command are saved as a single history entry. The -i -option permits certain lines to be discarded without being stored -in the history: SPACE means to ignore lines beginning with a space; -DUPS means to ignore lines the same as the last command entered -into the history; BOTH enables SPACE and DUPS; and NONE means to -store all lines. -$END - -#include "../shell.h" - -#if defined (HISTORY) -#include "bashgetopt.h" -#include "../bashhist.h" - -#define HIGNORE_NONE 0x0 -#define HIGNORE_SPACE 0x01 -#define HIGNORE_DUPS 0x02 -#define HIGNORE_BOTH (HIGNORE_SPACE | HIGNORE_DUPS) - -int -histctl_builtin (list) - WORD_LIST *list; -{ - int opt; - char *spec; - - reset_internal_getopt (); - while ((opt = internal_getopt (list, "CcI:i:")) != -1) - { - switch (opt) - { - case 'c': - command_oriented_history++; - break; - case 'C': - command_oriented_history = 0; - break; - case 'i': - spec = list_optarg; - if (strcmp (spec, "none") == 0) - history_control = HIGNORE_NONE; - else if (strcmp (spec, "space") == 0) - history_control |= HIGNORE_SPACE; - else if (strcmp (spec, "dups") == 0) - history_control |= HIGNORE_DUPS; - else if (strcmp (spec, "both") == 0) - history_control |= HIGNORE_BOTH; - else - { - builtin_error ("invalid argument to -i: %s", spec); - builtin_error ("usage: histctl [-cC] [-iI space|dups|both|none]"); - return (EX_USAGE); - } - break; - case 'I': - spec = list_optarg; - if (strcmp (spec, "none") == 0) - history_control = HIGNORE_NONE; - else if (strcmp (spec, "space") == 0) - history_control &= ~HIGNORE_SPACE; - else if (strcmp (spec, "dups") == 0) - history_control &= ~HIGNORE_DUPS; - else if (strcmp (spec, "both") == 0) - history_control &= ~HIGNORE_BOTH; - else - { - builtin_error ("invalid argument to -I: %s", spec); - builtin_error ("usage: histctl [-cC] [-iI space|dups|both|none]"); - return (EX_USAGE); - } - break; - default: - report_bad_option (); - builtin_error ("usage: histctl [-cC] [-iI space|dups|both|none]"); - return (EX_USAGE); - } - } - - return (EXECUTION_SUCCESS); -} -#endif /* HISTORY */ diff --git a/CWRU/old/longsig.c b/CWRU/old/longsig.c deleted file mode 100644 index 56ec91ca1..000000000 --- a/CWRU/old/longsig.c +++ /dev/null @@ -1,50 +0,0 @@ -/* The answer to this question is 24. */ -#include -#include -#include -#include "siglist.h" - -/* Copyright (C) 1987,1989 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -main (argc, argv) - int argc; - char **argv; -{ - int longest, length = 0; - int i; - - for (i = 0; i < NSIG; i++) - { - printf ("%2d) %s\n", i, sys_siglist[i]); - if (strlen (sys_siglist[i]) > length) - { - longest = i; - length = strlen (sys_siglist[i]); - } - } - - printf ("The longest name is %d:\"%s\", which is %d chars in length.\n", - longest, sys_siglist[longest], length); -} - -/* - * Local variables: - * compile-command: "cc -o longest_sig longest_sig.c" - * end: - */ diff --git a/CWRU/old/mklinks b/CWRU/old/mklinks deleted file mode 100755 index 612aa99ae..000000000 --- a/CWRU/old/mklinks +++ /dev/null @@ -1,41 +0,0 @@ - -# Yet another script which requires an already built Bash. -# -# This makes links in the current directory to the directory specified as -# the first argument. -# - -topdir=$1 - -if [ ! "$topdir" ]; then - echo "No directory specified. Read the script $0." - exit 1 -fi - -function clone_files () -{ - local dir=$1; - local files; - - files=$(cd $dir; echo *); - - if [ ! "$files" ]; then - return 0; - fi - - for filename in $files; do - if [ -d $dir/$filename ]; then - # If the file to clone is this directory, then skip it. - if [ $(cd $dir/$filename; pwd) = $(pwd) ]; then - continue; - fi - mkdir $filename; - (cd $filename; clone_files ../$dir/$filename) - else - ln -s $dir/$filename .; - fi - done - rm -f \#* *~ .*~ *.bak .*.bak *.tmp .*.tmp *.o core a.out; -} - -clone_files $topdir diff --git a/CWRU/old/mktarfile b/CWRU/old/mktarfile deleted file mode 100755 index 88097f5db..000000000 --- a/CWRU/old/mktarfile +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -# How to make a distribution tarfile. -# -# $1 is the name of the program. -# $2 is the version number. -# Remaining args are files to tar. -# Optional argument of "~+notar" means don't create the actual tar file, -# just create the symlinked directory. - -tar_inhibited="" -if [ "$1" = "+notar" ]; then - tar_inhibited=yes - shift -fi - -PROGRAM=$1 -VERSION=$2 - -if [ "$PROGRAM" = "" -o "$VERSION" = "" ]; then - echo "Usage: mktarfile [+notar] " - echo "Using the \`+notar' option causes a clone directory to be made." - exit 2; -fi - -shift; shift - -TARFILE=$PROGRAM.tar -TARDIR=$PROGRAM-$VERSION - -# Delete the tarfile if we are to create it. -if [ ! "tar_inhibited" ]; then - rm -rf $TARFILE -fi - -# Delete the destination directory if it already exists. -rm -rf $TARDIR - -# Make the destination directory. -echo "Making directory $TARDIR..." -mkdir $TARDIR - -topdir=`pwd` -where_I_am=$TARDIR - -trap "cd $topdir" 3 - -for i in $*; do - filename=$i - while [ "$filename" ]; do - remainder=`echo $filename | sed 's@[-_a-zA-Z~0-9.]*/@@'` - dir=`echo $filename | sed "s@$remainder\\\$@@" | sed "s@/@@"` - if [ "$dir" ]; then - if [ ! -d $where_I_am/$dir ]; then - echo "Making directory $where_I_am/$dir..." - mkdir $where_I_am/$dir - fi - cd $where_I_am/$dir; where_I_am=`pwd` - filename=$remainder - else - break - fi - done - cd $topdir; where_I_am=$TARDIR - ln -s $topdir/$i $TARDIR/$i -done - -if [ ! "$tar_inhibited" ]; then - echo "tar -chf $TARFILE $TARDIR" - tar -chf $TARFILE $TARDIR - echo "rm -rf $TARDIR" - rm -rf $TARDIR -fi - -exit 0 diff --git a/CWRU/old/mkversion.c b/CWRU/old/mkversion.c deleted file mode 100644 index 8164a8fec..000000000 --- a/CWRU/old/mkversion.c +++ /dev/null @@ -1,305 +0,0 @@ -/* Simple program to make new version numbers for the shell. - Big deal, but it was getting out of hand to do everything - in the makefile. */ - -/* Copyright (C) 1989 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#include "config.h" - -#include -#include "posixstat.h" -#include -#include "bashansi.h" - -char *progname; -char *dir; -char *status; - -FILE *must_open (); - -main (argc, argv) - int argc; - char **argv; -{ - FILE *file; - float distver = 0.0; - int buildver = 0, patchlevel = 0; - int dist = 0, build = 0, patch = 0; - int dist_inc = 0, build_inc = 0, patch_inc = 0; - int dot_dist_needs_making = 0; - int arg_index = 1; - struct stat sb; - - progname = argv[0]; - - status = dir = (char *)0; - while (arg_index < argc && argv[arg_index][0] == '-') - { - if (strcmp (argv[arg_index], "-dist") == 0) - { - dist++; - dist_inc++; - } - else if (strcmp (argv[arg_index], "-build") == 0) - { - build++; - build_inc++; - } - else if (strcmp (argv[arg_index], "-patch") == 0) - { - patch++; - patch_inc++; - } - else if (strcmp (argv[arg_index], "-dir") == 0) - { - dir = argv[++arg_index]; - if (dir == 0) - { - fprintf (stderr, "%s: `-dir' requires an argument\n", progname); - exit (1); - } - if (stat (dir, &sb) < 0) - { - fprintf (stderr, "%s: cannot stat %s\n", progname, dir); - exit (1); - } - if ((sb.st_mode & S_IFMT) != S_IFDIR) - { - fprintf (stderr, "%s: not a directory\n", progname); - exit (1); - } - } - else if (strcmp (argv[arg_index], "-status") == 0) - { - status = argv[++arg_index]; - if (status == 0) - { - fprintf (stderr, "%s: `-status' requires an argument\n", progname); - exit (1); - } - } - else - { - fprintf (stderr, "%s: unknown option: %s\n", progname, argv[arg_index]); - fprintf (stderr, "usage: %s [-dist|-patch|-build] [-dir directory]\n", progname); - exit (1); - } - arg_index++; - } - - if (get_float_from_file (".distribution", &distver, 1) == 0) - dot_dist_needs_making++; - - if (get_int_from_file (".patchlevel", &patchlevel, 1) == 0) - { - patchlevel = 0; - patch_inc = 0; - } - - if (get_int_from_file (".build", &buildver, 0) == 0) - buildver = 0; - - /* Setting distribution version. */ - if (dist && arg_index < argc) - if (sscanf (argv[arg_index], "%f", &distver) != 1) - { - fprintf (stderr, "%s: Bad input `%s'. Expected float value for -dist.\n", - progname, argv[arg_index]); - exit (1); - } - else - { - arg_index++; - dist_inc = 0; - } - - /* Setting patchlevel via argument. */ - if (patch && arg_index < argc) - if (sscanf (argv[arg_index], "%d", &patchlevel) != 1) - { - fprintf (stderr, "%s: Bad input `%s'. Expected int value for -patch.\n", - progname, argv[arg_index]); - exit (1); - } - else - { - arg_index++; - patch_inc = 0; - } - - if (build && arg_index < argc) - if (sscanf (argv[arg_index], "%d", &buildver) != 1) - { - fprintf (stderr, "%s: Bad input `%s'. Expected int value for -build.\n", - progname, argv[arg_index]); - exit (1); - } - else - { - arg_index++; - build_inc = 0; - } - - if (dot_dist_needs_making && !distver) - { - fprintf (stderr, "%s: There is no `.distribution' file to infer from.\n", progname); - exit (1); - } - - if (dist_inc) - distver = distver + 0.01; - - if (patch_inc) - patchlevel++; - - if (build_inc) - buildver++; - - file = must_open ("newversion.h", "w"); - - /* Output the leading comment. */ - fprintf (file, -"/* Version control for the shell. This file gets changed when you say\n\ - `make newversion' to the Makefile. It is created by mkversion. */\n"); - - fprintf (file, "\n/* The distribution version number of this shell. */\n"); - fprintf (file, "#define DISTVERSION \"%.2f\"\n", distver); - - fprintf (file, "\n/* The patch level of this version of the shell. */\n"); - fprintf (file, "#define PATCHLEVEL %d\n", patchlevel); - - fprintf (file, "\n/* The last built version of this shell. */\n"); - fprintf (file, "#define BUILDVERSION %d\n", buildver); - - if (status) - { - fprintf (file, "\n/* The release status of this shell. */\n"); - fprintf (file, "#define RELSTATUS \"%s\"\n", status); - } - - fprintf (file, "\n/* A version string for use by sccs and the what command. */\n\n"); - if (status) - fprintf (file, "#define SCCSVERSION \"@(#)Bash version %.2f.%d(%d) %s GNU\"\n\n", - distver, patchlevel, buildver, status); - else - fprintf (file, "#define SCCSVERSION \"@(#)Bash version %.2f.%d(%d) GNU\"\n\n", - distver, patchlevel, buildver); - - fclose (file); - - file = must_open (".build", "w"); - fprintf (file, "%d\n", buildver); - fclose (file); - - /* Making a new distribution. */ - if (dist) - { - file = must_open (".distribution", "w"); - fprintf (file, "%.2f\n", distver); - fclose (file); - } - - /* Releasing a new patch level. */ - if (patch) - { - file = must_open (".patchlevel", "w"); - fprintf (file, "%d\n", patchlevel); - fclose (file); - } - - exit (0); -} - -char * -makename (fn, from_srcdir) - char *fn; -{ - char *ret; - int dlen; - - dlen = (from_srcdir && dir) ? strlen (dir) + 1 : 0; - ret = (char *)malloc (dlen + strlen (fn) + 1); - if (ret == 0) - { - fprintf (stderr, "%s: malloc failed\n", progname); - exit (1); - } - if (from_srcdir && dir) - sprintf (ret, "%s/%s", dir, fn); - else - (void)strcpy (ret, fn); - - return ret; -} - -get_float_from_file (filename, var, from_srcdir) - char *filename; - float *var; - int from_srcdir; -{ - FILE *stream; - int result; - char *name; - - name = makename (filename, from_srcdir); - stream = fopen (name, "r"); - free (name); - if (stream == (FILE *)NULL) - return (0); - result = fscanf (stream, "%f\n", var); - fclose (stream); - return (result == 1); -} - -get_int_from_file (filename, var, from_srcdir) - char *filename; - int *var, from_srcdir; -{ - FILE *stream; - int result; - char *name; - - name = makename (filename, from_srcdir); - stream = fopen (name, "r"); - free (name); - if (stream == (FILE *)NULL) - return (0); - result = fscanf (stream, "%d\n", var); - fclose (stream); - return (result == 1); -} - -FILE * -must_open (name, mode) - char *name, *mode; -{ - FILE *temp = fopen (name, mode); - - if (!temp) - { - fprintf (stderr, "%s: Cannot open `%s' for mode `%s'.\n", - progname, name, mode); - fprintf - (stderr, - "Perhaps you don't have %s permission to the file or directory.\n", - (strcmp (mode, "w") == 0) ? "write" : "read"); - exit (3); - } - return (temp); -} diff --git a/CWRU/old/pagesize.c b/CWRU/old/pagesize.c deleted file mode 100644 index ee2baa30b..000000000 --- a/CWRU/old/pagesize.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * getpagesize - print the system pagesize - * - * Chet Ramey - * chet@ins.cwru.edu - */ - -#include - -/* - * I know these systems have getpagesize(2) - */ - -#if defined (Bsd) || defined (Ultrix) || defined (sun) -# define HAVE_GETPAGESIZE -#endif - -#if !defined (HAVE_GETPAGESIZE) - -#if defined (HAVE_UNISTD_H) -# include -# if defined (_SC_PAGESIZE) -# define getpagesize() sysconf(_SC_PAGESIZE) -# endif /* _SC_PAGESIZE */ -#endif - -#if !defined (getpagesize) -# include -# if defined (PAGESIZE) -# define getpagesize() PAGESIZE -# else /* !PAGESIZE */ -# if defined (EXEC_PAGESIZE) -# define getpagesize() EXEC_PAGESIZE -# else /* !EXEC_PAGESIZE */ -# if defined (NBPG) -# if !defined (CLSIZE) -# define CLSIZE 1 -# endif /* !CLSIZE */ -# define getpagesize() (NBPG * CLSIZE) -# else /* !NBPG */ -# if defined (NBPC) -# define getpagesize() NBPC -# endif /* NBPC */ -# endif /* !NBPG */ -# endif /* !EXEC_PAGESIZE */ -# endif /* !PAGESIZE */ -#endif /* !getpagesize */ - -#if !defined (getpagesize) -# define getpagesize() 4096 /* Just punt and use reasonable value */ -#endif - -#endif /* no EXEC_PAGESIZE */ - -#endif /* not HAVE_GETPAGESIZE */ - -main() -{ -#if defined (HAVE_GETPAGESIZE) || defined (getpagesize) - printf ("%ld\n", getpagesize ()); -#else - puts ("1024"); -#endif -} diff --git a/CWRU/old/pagesize.sh b/CWRU/old/pagesize.sh deleted file mode 100755 index 08a29355f..000000000 --- a/CWRU/old/pagesize.sh +++ /dev/null @@ -1,20 +0,0 @@ -#! /bin/sh -# -# pagesize.sh -- determine this system's page size, and write a define to -# lib/malloc/pagesize.h for the Gnu malloc's valloc(). - -echo "/*" -echo " * pagesize.h" -echo " *" -echo " * This file is automatically generated by pagesize.sh" -echo " * Do not edit!" -echo " */" -echo "" - -if [ -x /bin/pagesize ]; then - echo "#define getpagesize() `/bin/pagesize`" -else - echo "#define getpagesize() `./support/pagesize.aux`" -fi - -exit 0 diff --git a/CWRU/old/parse.y.noctlnul b/CWRU/old/parse.y.noctlnul deleted file mode 100644 index 1e8921a72..000000000 --- a/CWRU/old/parse.y.noctlnul +++ /dev/null @@ -1,3163 +0,0 @@ -/* Yacc grammar for bash. */ - -/* Copyright (C) 1989 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -%{ -#include "config.h" - -#include "bashtypes.h" -#include "bashansi.h" - -#if defined (HAVE_UNISTD_H) -# include -#endif - -#include -#include - -#include "shell.h" -#include "trap.h" -#include "flags.h" -#include "input.h" -#include "mailcheck.h" -#include "builtins/common.h" -#include "builtins/builtext.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" -#endif /* ALIAS */ - -#if defined (PROMPT_STRING_DECODE) -#include -#include -#include "maxpath.h" -#endif /* PROMPT_STRING_DECODE */ - -#define RE_READ_TOKEN -99 -#define NO_EXPANSION -100 - -#define YYDEBUG 1 -extern int eof_encountered; -extern int no_line_editing, running_under_emacs; -extern int current_command_number; -extern int interactive, interactive_shell, login_shell; -extern int posixly_correct; -extern int last_command_exit_value; -extern int interrupt_immediately; -extern char *shell_name, *current_host_name; -extern Function *last_shell_builtin, *this_shell_builtin; -#if defined (BUFFERED_INPUT) -extern int bash_input_fd_changed; -#endif - -/* **************************************************************** */ -/* */ -/* "Forward" declarations */ -/* */ -/* **************************************************************** */ - -static int reserved_word_acceptable (); -static int read_token (); -static int yylex (); -static int read_token_word (); -static void discard_parser_constructs (); - -static void report_syntax_error (); -static void handle_eof_input_unit (); -static void prompt_again (); -static void reset_readline_prompt (); -static void print_prompt (); - -/* 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; - -/* 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; - -/* 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 = 0; -static int shell_input_line_size = 0; /* Amount allocated for shell_input_line. */ -static int shell_input_line_len = 0; /* strlen (shell_input_line) */ - -/* Either zero or EOF. */ -static int shell_input_line_terminator = 0; - -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 recognized only under special circumstances. */ -%token IF THEN ELSE ELIF FI CASE ESAC FOR SELECT WHILE UNTIL DO DONE FUNCTION -%token IN BANG TIME - -/* More general tokens. yylex () knows how to make these. */ -%token WORD ASSIGNMENT_WORD -%token NUMBER -%token AND_AND OR_OR GREATER_GREATER LESS_LESS LESS_AND -%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 function_def 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 - -%start inputunit - -%left '&' ';' '\n' yacc_EOF -%left AND_AND OR_OR -%right '|' -%% - -inputunit: simple_list '\n' - { - /* 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_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 = 0L; - $$ = make_redirection (1, r_close_this, redir); - } - | NUMBER GREATER_AND '-' - { - redir.dest = 0L; - $$ = make_redirection ($1, r_close_this, redir); - } - | LESS_AND '-' - { - redir.dest = 0L; - $$ = make_redirection (0, r_close_this, redir); - } - | NUMBER LESS_AND '-' - { - redir.dest = 0L; - $$ = 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; - /* 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. */ - if (tc->type == cm_function_def) - { - tc = tc->value.Function_def->command; - if (tc->type == cm_group) - tc = tc->value.Group->command; - } - if (tc->redirects) - { - register REDIRECT *t; - for (t = tc->redirects; t->next; t = t->next) - ; - t->next = $2; - } - else - tc->redirects = $2; - $$ = $1; - } - ; - -shell_command: for_command - { $$ = $1; } - | case_command - { $$ = $1; } - | WHILE list DO list DONE - { $$ = make_while_command ($2, $4); } - | UNTIL list DO list DONE - { $$ = make_until_command ($2, $4); } - | select_command - { $$ = $1; } - | if_command - { $$ = $1; } - | subshell - { $$ = $1; } - | group_command - { $$ = $1; } - | function_def - { $$ = $1; } - ; - -for_command: FOR WORD newline_list DO list DONE - { $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5); } - | FOR WORD newline_list '{' list '}' - { $$ = make_for_command ($2, add_string_to_list ("$@", (WORD_LIST *)NULL), $5); } - | FOR WORD ';' newline_list DO list DONE - { $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6); } - | FOR WORD ';' newline_list '{' list '}' - { $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6); } - | FOR WORD newline_list IN word_list list_terminator newline_list DO list DONE - { $$ = make_for_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9); } - | FOR WORD newline_list IN word_list list_terminator newline_list '{' list '}' - { $$ = make_for_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9); } - ; - -select_command: SELECT WORD newline_list DO list DONE - { - $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5); - } - | SELECT WORD newline_list '{' list '}' - { - $$ = make_select_command ($2, add_string_to_list ("$@", (WORD_LIST *)NULL), $5); - } - | SELECT WORD ';' newline_list DO list DONE - { - $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6); - } - | SELECT WORD ';' newline_list '{' list '}' - { - $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6); - } - | SELECT WORD newline_list IN word_list list_terminator newline_list DO list DONE - { - $$ = make_select_command ($2, (WORD_LIST *)reverse_list ($5), $9); - } - | SELECT WORD newline_list IN word_list list_terminator newline_list '{' list '}' - { - $$ = make_select_command ($2, (WORD_LIST *)reverse_list ($5), $9); - } - ; - -case_command: CASE WORD newline_list IN newline_list ESAC - { $$ = make_case_command ($2, (PATTERN_LIST *)NULL); } - | CASE WORD newline_list IN case_clause_sequence newline_list ESAC - { $$ = make_case_command ($2, $5); } - | CASE WORD newline_list IN case_clause ESAC - { $$ = make_case_command ($2, $5); } - ; - -function_def: WORD '(' ')' newline_list group_command - { $$ = make_function_def ($1, $5); } - - | FUNCTION WORD '(' ')' newline_list group_command - { $$ = make_function_def ($2, $6); } - - | FUNCTION WORD newline_list group_command - { $$ = make_function_def ($2, $4); } - ; - -subshell: '(' compound_list ')' - { $2->flags |= CMD_WANT_SUBSHELL; $$ = $2; } - ; - -if_command: IF list THEN list FI - { $$ = make_if_command ($2, $4, (COMMAND *)NULL); } - | IF list THEN list ELSE list FI - { $$ = make_if_command ($2, $4, $6); } - | IF list THEN list elif_clause FI - { $$ = make_if_command ($2, $4, $5); } - ; - - -group_command: '{' list '}' - { $$ = make_group_command ($2); } - ; - -elif_clause: ELIF list THEN list - { $$ = make_if_command ($2, $4, (COMMAND *)NULL); } - | ELIF list THEN list ELSE list - { $$ = make_if_command ($2, $4, $6); } - | ELIF list THEN 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; } - ; - -list_terminator:'\n' - | ';' - | 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 - { - $2->flags |= CMD_INVERT_RETURN; - $$ = $2; - } - | TIME pipeline - { - $2->flags |= CMD_TIME_PIPELINE; - $$ = $2; - } - | TIME BANG pipeline - { - $3->flags |= CMD_TIME_PIPELINE|CMD_INVERT_RETURN; - $$ = $3; - } - | BANG TIME pipeline - { - $3->flags |= CMD_TIME_PIPELINE|CMD_INVERT_RETURN; - $$ = $3; - } - ; - -pipeline: - pipeline '|' newline_list pipeline - { $$ = command_connect ($1, $4, '|'); } - | command - { $$ = $1; } - ; -%% - -/* Initial size to allocate for tokens, and the - amount to grow them by. */ -#define TOKEN_DEFAULT_GROW_SIZE 512 - -/* Shell meta-characters that, when unquoted, separate words. */ -#define shellmeta(c) (strchr ("()<>;&|", (c)) != 0) -#define shellbreak(c) (strchr ("()<>;&| \t\n", (c)) != 0) -#define shellquote(c) ((c) == '"' || (c) == '`' || (c) == '\'') - -/* The token currently being read. */ -static int current_token = 0; - -/* The last read token, or NULL. read_token () uses this for context - checking. */ -static int last_read_token = 0; - -/* The token read prior to last_read_token. */ -static int token_before_that = 0; - -/* The token read prior to token_before_that. */ -static int two_tokens_ago; - -/* 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; - -/* Global var is non-zero when end of file has been reached. */ -int EOF_Reached = 0; - -/* 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. */ -void -initialize_bash_input () -{ - bash_input.type = st_none; - bash_input.name = (char *)NULL; - bash_input.location.file = (FILE *)NULL; - bash_input.location.string = (char *)NULL; - bash_input.getter = (Function *)NULL; - bash_input.ungetter = (Function *)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) - Function *get, *unget; - int type; - char *name; - INPUT_STREAM location; -{ - bash_input.type = type; - FREE (bash_input.name); - - if (name) - bash_input.name = savestring (name); - else - bash_input.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; -} - -/* Call this to get the next character of input. */ -int -yy_getc () -{ - return (*(bash_input.getter)) (); -} - -/* Call this to unget C. That is, to make C the next character - to be read. */ -int -yy_ungetc (c) - int c; -{ - return (*(bash_input.ungetter)) (c); -} - -#if defined (BUFFERED_INPUT) -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 /* 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, c; - - if (!current_readline_line) - { - if (!bash_readline_initialized) - initialize_readline (); - -#if defined (JOB_CONTROL) - if (job_control) - give_terminal_to (shell_pgrp); -#endif /* JOB_CONTROL */ - - 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) - { - interrupt_immediately--; - set_signal_handler (SIGINT, old_sigint); - } - - /* Reset the prompt to the decoded value of prompt_string_pointer. */ - reset_readline_prompt (); - - if (!current_readline_line) - return (EOF); - - current_readline_line_index = 0; - line_len = strlen (current_readline_line); - - current_readline_line = 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]) - { - 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 int c; - - string = bash_input.location.string; - c = EOF; - - /* If the string doesn't exist, or is empty, EOF found. */ - if (string && *string) - { - c = *string++; - bash_input.location.string = string; - } - return (c); -} - -static int -yy_string_unget (c) - int c; -{ - *(--bash_input.location.string) = c; - return (c); -} - -void -with_input_from_string (string, name) - char *string, *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. */ -/* */ -/* **************************************************************** */ - -static int -yy_stream_get () -{ - int result = EOF; - - if (bash_input.location.file) -#if !defined (HAVE_RESTARTABLE_SYSCALLS) - result = getc_with_restart (bash_input.location.file); -#else /* HAVE_RESTARTABLE_SYSCALLS */ - result = getc (bash_input.location.file); -#endif /* HAVE_RESTARTABLE_SYSCALLS */ - return (result); -} - -static int -yy_stream_unget (c) - int c; -{ - return (ungetc (c, bash_input.location.file)); -} - -void -with_input_from_stream (stream, name) - FILE *stream; - 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; - -STREAM_SAVER *stream_list = (STREAM_SAVER *)NULL; - -void -push_stream () -{ - 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 = buffers[bash_input.location.buffered_fd]; - buffers[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 = 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; - } - } - buffers[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; -} - -/* - * 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' - */ -static int in_case_pattern_list = 0; - -#if defined (ALIAS) - -#define END_OF_ALIAS 0 - -/* - * Pseudo-global variables used in implementing token-wise alias expansion. - */ - -static int expand_next_token; - -/* - * 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; - alias_t *expander; /* alias that caused this line to be pushed. */ - int saved_line_size, saved_line_index, saved_line_terminator; -} STRING_SAVER; - -STRING_SAVER *pushed_string_list = (STRING_SAVER *)NULL; - -#if 0 -static void push_expansion (); -static void pop_expansion (); -static int token_is_being_expanded (); -#endif - -/* - * 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; - temp->expander = ap; - temp->next = pushed_string_list; - pushed_string_list = temp; - - ap->flags |= AL_BEINGEXPANDED; -#if 0 - push_expansion (ap->name); -#endif - - shell_input_line = s; - shell_input_line_size = strlen (s); - shell_input_line_index = 0; - shell_input_line_terminator = '\0'; - expand_next_token = 0; -} - -/* - * 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; - expand_next_token = pushed_string_list->expand_alias; - - t = pushed_string_list; - pushed_string_list = pushed_string_list->next; - - t->expander->flags &= ~AL_BEINGEXPANDED; - - free((char *)t); -} - -static void -free_string_list () -{ - register STRING_SAVER *t, *t1; - - for (t = pushed_string_list; t; ) - { - t1 = t->next; - FREE (t->saved_line); - t->expander->flags &= ~AL_BEINGEXPANDED; - free ((char *)t); - t = t1; - } - pushed_string_list = (STRING_SAVER *)NULL; -} - -#if 0 -/* XXX - NO LONGER USED - XXX */ -/* This is a stack to save the values of all tokens for which alias - expansion has been performed during the current call to read_token (). - It is used to prevent alias expansion loops: - - alias foo=bar - alias bar=baz - alias baz=foo - - Ideally this would be taken care of by push and pop string, but because - of when strings are popped the stack will not contain the correct - strings to test against. (The popping is done in shell_getc, so that when - the current string is exhausted, shell_getc can simply pop that string off - the stack, restore the previous string, and continue with the character - following the token whose expansion was originally pushed on the stack.) - - What we really want is a record of all tokens that have been expanded for - aliases during the `current' call to read_token(). This does that, at the - cost of being somewhat special-purpose (OK, OK vile and unclean). */ - -typedef struct _exp_saver { - struct _exp_saver *next; - char *saved_token; -} EXPANSION_SAVER; - -EXPANSION_SAVER *expanded_token_stack = (EXPANSION_SAVER *)NULL; - -static void -push_expansion (s) - char *s; -{ - EXPANSION_SAVER *t; - - t = (EXPANSION_SAVER *)xmalloc (sizeof (EXPANSION_SAVER)); - t->saved_token = savestring (s); - t->next = expanded_token_stack; - expanded_token_stack = t; -} - -/* Return 1 if TOKEN has already been expanded in the current `stack' of - expansions. If it has been expanded already, it will appear as the value - of saved_token for some entry in the stack of expansions created for the - current token being expanded. */ -static int -token_has_been_expanded (token) - char *token; -{ - register EXPANSION_SAVER *t; - - for (t = expanded_token_stack; t; t = t->next) - { - if (STREQ (token, t->saved_token)) - return (1); - } - - return (0); -} - -static void -free_expansion_stack () -{ - register EXPANSION_SAVER *t, *t1; - - for (t = expanded_token_stack; t; ) - { - t1 = t->next; - free (t->saved_token); - free (t); - t = t1; - } - expanded_token_stack = (EXPANSION_SAVER *)NULL; -} - -static void -pop_expansion () -{ - EXPANSION_SAVER *t; - - if (expanded_token_stack == NULL) - return; - - t = expanded_token_stack; - expanded_token_stack = t->next; - - free (t->saved_token); - free (t); -} -#endif /* 0 */ -#endif /* ALIAS */ - -/* 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; - - pass_next = 0; - while (1) - { - c = yy_getc (); - - /* Allow immediate exit if interrupted during input. */ - QUIT; - - if (c == 0) - continue; - - /* If there is no more input, then we return NULL. */ - if (c == EOF) - { - if (indx == 0) - return ((char *)NULL); - c = '\n'; - } - - /* `+2' in case the final character in the buffer is a newline. */ - if (indx + 2 > buffer_size) - line_buffer = xrealloc (line_buffer, 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') - 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; - 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 }, - { (char *)NULL, 0} -}; - -/* 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. */ - -static int -shell_getc (remove_quoted_newline) - int remove_quoted_newline; -{ - register int i; - int c; - static int mustpop = 0; - - QUIT; - -#if defined (ALIAS) - /* 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 */ - if (!shell_input_line || !shell_input_line[shell_input_line_index]) -#endif /* !ALIAS */ - { - line_number++; - - restart_read: - - /* Allow immediate exit if interrupted during input. */ - QUIT; - - i = 0; - shell_input_line_terminator = 0; - -#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 (interactive && bash_input.type != st_string && no_line_editing) -#else - if (interactive && bash_input.type != st_string) -#endif - print_prompt (); - - if (bash_input.type == st_stream) - clearerr (stdin); - - while (c = yy_getc ()) - { - /* Allow immediate exit if interrupted during input. */ - QUIT; - - if (i + 2 > shell_input_line_size) - { - shell_input_line_size += 256; - shell_input_line = xrealloc (shell_input_line, shell_input_line_size); - } - - 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) */ - -#if defined (HISTORY) -#if 0 - if (interactive && shell_input_line && shell_input_line[0]) -#else - if (remember_on_history && shell_input_line && shell_input_line[0]) -#endif - { - char *expansions; - - expansions = pre_process_line (shell_input_line, 1, 1); - - 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; - } -#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; - 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 = 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'; - } - } - - c = shell_input_line[shell_input_line_index]; - - if (c) - shell_input_line_index++; - - if (c == '\\' && remove_quoted_newline && - shell_input_line[shell_input_line_index] == '\n') - { - prompt_again (); - line_number++; - goto restart_read; - } - -#if defined (ALIAS) - /* If C 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 (!c && (pushed_string_list != (STRING_SAVER *)NULL)) - { - if (mustpop) - { - pop_string (); - c = shell_input_line[shell_input_line_index]; - if (c) - shell_input_line_index++; - mustpop--; - } - else - { - mustpop++; - c = ' '; - } - } -#endif /* ALIAS */ - - if (!c && shell_input_line_terminator == EOF) - return ((shell_input_line_index != 0) ? '\n' : EOF); - - return ((unsigned char)c); -} - -/* Put C back into the input for the shell. */ -static void -shell_ungetc (c) - int c; -{ - if (shell_input_line && shell_input_line_index) - shell_input_line[--shell_input_line_index] = c; -} - -static void -shell_ungetchar () -{ - if (shell_input_line && shell_input_line_index) - shell_input_line_index--; -} - -/* 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; -{ - Function *temp_last, *temp_this; - char *last_lastarg; - int temp_exit_value, temp_eof_encountered; - - temp_last = last_shell_builtin; - temp_this = this_shell_builtin; - temp_exit_value = last_command_exit_value; - temp_eof_encountered = eof_encountered; - last_lastarg = get_string_value ("_"); - if (last_lastarg) - last_lastarg = savestring (last_lastarg); - - parse_and_execute (savestring (command), "PROMPT_COMMAND", 0); - - last_shell_builtin = temp_last; - this_shell_builtin = temp_this; - last_command_exit_value = temp_exit_value; - eof_encountered = temp_eof_encountered; - - bind_variable ("_", last_lastarg); - 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 = 0; - -/* 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 && interactive) - 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 allow_esac_as_next = 0; - -/* When non-zero, accept single '{' as a token itself. */ -static int allow_open_brace = 0; - -/* DELIMITERS is a stack of the nested delimiters that we have - encountered so far. */ -static char *delimiters = (char *)NULL; - -/* Offset into the stack of delimiters. */ -int delimiter_depth = 0; - -/* How many slots are allocated to DELIMITERS. */ -static int delimiter_space = 0; - -void -gather_here_documents () -{ - int r = 0; - while (need_here_doc) - { - make_here_document (redir_stack[r++]); - need_here_doc--; - } -} - -/* Macro for accessing the top delimiter on the stack. Returns the - delimiter or zero if none. */ -#define current_delimiter() \ - (delimiter_depth ? delimiters[delimiter_depth - 1] : 0) - -#define push_delimiter(character) \ - do \ - { \ - if (delimiter_depth + 2 > delimiter_space) \ - delimiters = xrealloc \ - (delimiters, (delimiter_space += 10) * sizeof (char)); \ - delimiters[delimiter_depth] = character; \ - delimiter_depth++; \ - } \ - while (0) - -/* When non-zero, an open-brace used to create a group is awaiting a close - brace partner. */ -static int open_brace_awaiting_satisfaction = 0; - -#define command_token_position(token) \ - (((token) == ASSIGNMENT_WORD) || \ - ((token) != SEMI_SEMI && reserved_word_acceptable(token))) - -#define assignment_acceptable(token) command_token_position(token) && \ - (in_case_pattern_list == 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 (in_case_pattern_list && (word_token_alist[i].token != ESAC)) \ - break; \ - if (word_token_alist[i].token == ESAC) \ - in_case_pattern_list = 0; \ - if (word_token_alist[i].token == '{') \ - open_brace_awaiting_satisfaction++; \ - 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 the shell is in interactive mode, 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 (in_case_pattern_list). */ -static int -alias_expand_token (token) - char *token; -{ - char *expanded; - int c, expand_next; - alias_t *ap; - - if (expand_next_token || command_token_position (last_read_token) && !in_case_pattern_list) - { - ap = find_alias (token); - -#if 0 - /* Currently expanding this token. */ - if ((expanded_token_stack && token_has_been_expanded (token))) - return (NO_EXPANSION); -#else - if (ap && (ap->flags & AL_BEINGEXPANDED)) - return (NO_EXPANSION); -#endif - - expanded = ap ? savestring (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 */ - -/* 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 `allow_esac_as_next' - to be set - - `{' is recognized if the last token as WORD and the token - before that was FUNCTION. - - `}' is recognized if there is an unclosed `{' prsent. -*/ - -static int -special_case_tokens (token) - char *token; -{ - 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 - (token[0] == 'i' && token[1] == 'n' && !token[2])) - { - if (token_before_that == CASE) - { - in_case_pattern_list = 1; - allow_esac_as_next++; - } - 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 - (token[0] == 'd' && token[1] == 'o' && !token[2])) - 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 (allow_esac_as_next) - { - allow_esac_as_next--; - if (STREQ (token, "esac")) - { - in_case_pattern_list = 0; - return (ESAC); - } - } - - if (allow_open_brace) - { - allow_open_brace = 0; - if (token[0] == '{' && !token[1]) - { - open_brace_awaiting_satisfaction++; - return ('{'); - } - } - - if (open_brace_awaiting_satisfaction && token[0] == '}' && !token[1]) - { - open_brace_awaiting_satisfaction--; - return ('}'); - } - - 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 () -{ - delimiter_depth = 0; /* No delimiters found so far. */ - open_brace_awaiting_satisfaction = 0; - in_case_pattern_list = 0; - -#if defined (ALIAS) - if (pushed_string_list) - { - free_string_list (); - pushed_string_list = (STRING_SAVER *)NULL; - } - -#if 0 - if (expanded_token_stack) - { - free_expansion_stack (); - expanded_token_stack = (EXPANSION_SAVER *)NULL; - } -#endif - - expand_next_token = 0; -#endif /* ALIAS */ - - if (shell_input_line) - { - free (shell_input_line); - shell_input_line = (char *)NULL; - shell_input_line_size = shell_input_line_index = 0; - } - - 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; - token_to_read = 0; - return (result); - } - -#if defined (ALIAS) - /* If we hit read_token () and there are no saved strings on the - pushed_string_list, then we are no longer currently expanding a - token. This can't be done in pop_stream, because pop_stream - may pop the stream before the current token has finished being - completely expanded (consider what happens when we alias foo to foo, - and then try to expand it). */ -#if 0 - if (!pushed_string_list && expanded_token_stack) - { - free_expansion_stack (); - expanded_token_stack = (EXPANSION_SAVER *)NULL; - } -#endif - - /* 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 (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) - expand_next_token = 0; -#endif /* ALIAS */ - - return (character); - } - - /* Shell meta-characters. */ - if (shellmeta (character)) - { -#if defined (ALIAS) - /* Turn off alias tokenization iff this character sequence would - not leave us ready to read a command. */ - if (character == '<' || character == '>') - expand_next_token = 0; -#endif /* ALIAS */ - - 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 - { - shell_ungetc (peek_char); - return (LESS_LESS); - } - - case '>': - return (GREATER_GREATER); - - case ';': - in_case_pattern_list = 1; -#if defined (ALIAS) - expand_next_token = 0; -#endif /* ALIAS */ - return (SEMI_SEMI); - - case '&': - return (AND_AND); - - case '|': - return (OR_OR); - } - } - else if (character == '<' && peek_char == '&') - return (LESS_AND); - else if (character == '>' && peek_char == '&') - return (GREATER_AND); - else if (character == '<' && peek_char == '>') - return (LESS_GREATER); - else if (character == '>' && peek_char == '|') - return (GREATER_BAR); - else if (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 (character == ')' && last_read_token == '(' && token_before_that == WORD) - { - allow_open_brace = 1; -#if defined (ALIAS) - expand_next_token = 0; -#endif /* ALIAS */ - } - - if (in_case_pattern_list && character == ')') - in_case_pattern_list = 0; - -#if defined (PROCESS_SUBSTITUTION) - /* Check for the constructs which introduce process substitution. - Shells running in `posix mode' don't do process substitution. */ - if (posixly_correct || - ((character != '>' && character != '<') || peek_char != '(')) -#endif /* PROCESS_SUBSTITUTION */ - return (character); - } - - /* Hack <&- (close stdin) case. */ - if (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; -} - -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_digits; - - /* DOLLAR_PRESENT becomes non-zero if we see a `$'. */ - int dollar_present; - - /* 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; - - /* Non-zero means parsing a dollar-paren construct. It is the count of - un-quoted close parens we need to see. */ - int dollar_paren_level; - - /* Another level variable. This one is for dollar_parens inside of - double-quotes. */ - int delimited_paren_level; - - /* Non-zero means parsing a dollar-bracket construct ($[...]). It is - the count of un-quoted `]' characters we need to see. */ - int dollar_bracket_level; - - /* Non-zero means parsing a `${' construct. It is the count of - un-quoted `}' we need to see. */ - int dollar_brace_level; - - /* A level variable for parsing '${ ... }' constructs inside of double - quotes. */ - int delimited_brace_level; - - /* A boolean variable denoting whether or not we are currently parsing - a double-quoted string embedded in a $( ) or ${ } construct. */ - int embedded_quoted_string; - - /* The current delimiting character. */ - int cd; - int result, peek_char; - - if (token_buffer_size < TOKEN_DEFAULT_GROW_SIZE) - { - FREE (token); - token = xmalloc (token_buffer_size = TOKEN_DEFAULT_GROW_SIZE); - } - - token_index = 0; - all_digits = digit (character); - dollar_present = quoted = 0; - embedded_quoted_string = pass_next_character = 0; - dollar_paren_level = delimited_paren_level = 0; - dollar_brace_level = delimited_brace_level = dollar_bracket_level = 0; - - for (;;) - { - if (character == EOF) - goto got_token; - - if (pass_next_character) - { - pass_next_character = 0; - goto got_character; - } - - cd = current_delimiter (); - - if (cd && character == '\\' && cd != '\'') - { - peek_char = shell_getc (0); - if (peek_char != '\\') - shell_ungetc (peek_char); - else - { - token[token_index++] = character; - goto got_character; - } - } - - /* Handle backslashes. Quote lots of things when not inside of - double-quotes, quote some things inside of double-quotes. */ - - if (character == '\\' && (delimiter_depth == 0 || cd != '\'')) - { - peek_char = shell_getc (0); - - /* Backslash-newline is ignored in all cases excepting - 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, do it now. */ - if (cd == 0 || cd == '`' || - (cd == '"' && member (peek_char, slashify_in_quotes))) - { - pass_next_character++; - quoted = 1; - goto got_character; - } - } - } - - /* This is a hack, in its present form. If a backquote substitution - appears within double quotes, everything within the backquotes - should be read as part of a single word. Jesus. Now I see why - Korn introduced the $() form. */ - if (delimiter_depth && (cd == '"') && (character == '`')) - { - push_delimiter (character); - goto got_character; - } - - /* cd = current_delimiter (); */ /* XXX - may not need */ - if (delimiter_depth) - { - if (character == cd) - { - /* If we see a double quote while parsing a double-quoted - $( ) or ${ }, and we have not seen ) or }, respectively, - note that we are in the middle of reading an embedded - quoted string. */ - if ((delimited_paren_level || delimited_brace_level) && - (character == '"')) - { - embedded_quoted_string = 1 - embedded_quoted_string; - goto got_character; - } - - delimiter_depth--; - goto got_character; - } - } - - /* If the delimiter character is not single quote, parse some of - the shell expansions that must be read as a single word. */ - if (cd != '\'') - { -#if defined (PROCESS_SUBSTITUTION) - if (character == '$' || character == '<' || character == '>') -#else - if (character == '$') -#endif /* !PROCESS_SUBSTITUTION */ - { - /* If we're in the middle of parsing a $( ) or ${ } - construct with an embedded quoted string, don't - bother looking at this character any further. */ - if (embedded_quoted_string) - goto got_character; - - peek_char = shell_getc (1); - shell_ungetc (peek_char); - if (peek_char == '(') - { - if (!delimiter_depth) - dollar_paren_level++; - else - delimited_paren_level++; - - pass_next_character++; - goto got_character; - } - else if (peek_char == '[' && character == '$') - { - if (!delimiter_depth) - dollar_bracket_level++; - - pass_next_character++; - goto got_character; - } - /* This handles ${...} constructs. */ - else if (peek_char == '{' && character == '$') - { - if (!delimiter_depth) - dollar_brace_level++; - else - delimited_brace_level++; - - pass_next_character++; - goto got_character; - } - } - -#if defined (ARRAY_VARS) - if (character == '=') - { - if (embedded_quoted_string) - goto got_character; - - peek_char = shell_getc (1); - shell_ungetc (peek_char); - if (peek_char == '(') - { - if (!delimiter_depth) - dollar_paren_level++; - else - delimited_paren_level++; - - pass_next_character++; - goto got_character; - } - } -#endif - -/* Generally, delim_xxx counts occurrences of xxx inside double quotes, while - dollar_xxx counts unquoted occurrences. These macros take care of - incrementing and decrementing both appropriately. */ -#define INC_DELIM(delim, dol) \ - do \ - { \ - if (delimiter_depth && delim) \ - delim++; \ - if (!delimiter_depth && dol) \ - dol++; \ - } \ - while (0) - -#define DEC_DELIM(delim, dol) \ - do \ - { \ - if (delimiter_depth && delim) \ - delim--; \ - if (!delimiter_depth && dol) \ - { \ - dol--; \ - goto got_character; \ - } \ - } \ - while (0) - - /* If we are parsing a $() or $[] construct, we need to balance - parens and brackets inside the construct. This whole function - could use a rewrite. */ - if (character == '(' && !embedded_quoted_string) - INC_DELIM (delimited_paren_level, dollar_paren_level); - - /* This code needs to take into account whether we are inside a - case statement pattern list, and whether this paren is supposed - to terminate it (hey, it could happen). It's not as simple - as just using in_case_pattern_list, because we're not parsing - anything while we're reading a $( ) construct. */ - else if (character == ')' && !embedded_quoted_string) - DEC_DELIM (delimited_paren_level, dollar_paren_level); - - else if (character == '[' && !delimiter_depth && dollar_bracket_level) - dollar_bracket_level++; - - else if (character == ']' && !delimiter_depth && dollar_bracket_level) - { - dollar_bracket_level--; - goto got_character; - } - - else if (character == '{' && embedded_quoted_string == 0) - INC_DELIM (delimited_brace_level, dollar_brace_level); - - else if (character == '}' && embedded_quoted_string == 0) - DEC_DELIM (delimited_brace_level, dollar_brace_level); - } - - /* When not parsing a multi-character word construct, shell meta- - characters break words. */ - if (!dollar_paren_level && !dollar_bracket_level && - !dollar_brace_level && !delimiter_depth && - shellbreak (character)) - { - shell_ungetc (character); - goto got_token; - } - - /* If we see a delimiter, remember it. */ - if (!delimiter_depth && shellquote (character)) - { - push_delimiter (character); - quoted = 1; - goto got_character; - } - -#if 0 - all_digits = all_digits ? digit (character) : 0; -#else - all_digits &= digit (character); -#endif - dollar_present |= character == '$'; - - got_character: - - if (character == CTLESC /* || character == CTLNUL */) - token[token_index++] = CTLESC; - - token[token_index++] = character; - - if (token_index == (token_buffer_size - 1)) - { - token_buffer_size += TOKEN_DEFAULT_GROW_SIZE; - token = xrealloc (token, token_buffer_size); - } - next_character: - if (character == '\n' && interactive && bash_input.type == st_stream) - 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 (); - character = shell_getc (cd != '\'' && !pass_next_character); - } /* end for (;;) */ - -got_token: - - token[token_index] = '\0'; - - /* EOF while reading a multi-char word construct generates an error. */ - if ((delimiter_depth || dollar_paren_level || dollar_bracket_level) && - character == EOF) - { - char reporter = '\0'; - - if (delimiter_depth == 0) - { - if (dollar_paren_level) - reporter = ')'; - else if (dollar_bracket_level) - reporter = ']'; - } - - if (reporter == 0) - reporter = current_delimiter (); - - report_error ("unexpected EOF while looking for `%c'", reporter); - return (-1); - } - - /* 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 (all_digits && (character == '<' || character == '>' || - last_read_token == LESS_AND || - last_read_token == GREATER_AND)) - { - yylval.number = atoi (token); - return (NUMBER); - } - - /* Check for special case tokens. */ - result = special_case_tokens (token); - 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 (posixly_correct) - CHECK_FOR_RESERVED_WORD (token); - - /* Aliases are expanded in interactive shells only, and quoting inhibits - alias expansion. */ - if (interactive_shell && quoted == 0) - { - result = alias_expand_token (token); - if (result == RE_READ_TOKEN) - return (RE_READ_TOKEN); - else if (result == NO_EXPANSION) - expand_next_token = 0; - } - - /* If not in Posix.2 mode, check for reserved words after alias - expansion. */ - if (!posixly_correct) -#endif - CHECK_FOR_RESERVED_WORD (token); - - the_word = (WORD_DESC *)xmalloc (sizeof (WORD_DESC)); - the_word->word = 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 (assignment (token)) - the_word->flags |= W_ASSIGNMENT; - - yylval.word = the_word; - - /* 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. */ - result = (assignment_acceptable (last_read_token) && - (the_word->flags & W_ASSIGNMENT)) ? ASSIGNMENT_WORD : WORD; - - if (last_read_token == FUNCTION) - allow_open_brace = 1; - - return (result); -} - -/* Return 1 if TOKEN is a token that after being read would allow - a reserved word to be seen, else 0. */ -static int -reserved_word_acceptable (token) - int token; -{ - if (token == '\n' || token == ';' || token == '(' || token == ')' || - token == '|' || token == '&' || token == '{' || - token == '}' || /* XXX */ - token == AND_AND || - token == BANG || - token == TIME || - token == DO || - token == ELIF || - token == ELSE || - token == FI || - token == IF || - token == OR_OR || - token == SEMI_SEMI || - token == THEN || - token == UNTIL || - token == WHILE || - token == DONE || /* XXX these two are experimental */ - token == ESAC || - token == 0) - return (1); - else - 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 (token) - char *token; -{ - int i; - for (i = 0; word_token_alist[i].word; i++) - if (STREQ (token, word_token_alist[i].word)) - return i; - return -1; -} - -#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 = xmalloc (1); - temp_prompt[0] = '\0'; - } - - FREE (current_readline_prompt); - current_readline_prompt = temp_prompt; - } -} -#endif /* READLINE */ - -#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, - 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 () -{ - if (delimiter_depth == 0) - { - register int i; - - /* 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 `(', assume - it's a parenthesized command and add the semicolon. */ - /*)(*/ - if (token_before_that == ')') - return ((two_tokens_ago == '(') ? " " : "; "); /*)*/ - - for (i = 0; no_semi_successors[i]; i++) - { - if (token_before_that == no_semi_successors[i]) - return (" "); - } - return ("; "); - } - else - return ("\n"); -} -#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) /* 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 = 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; - } -} - -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) - \e escape (ascii 033) - \d the date in Day Mon Date format - \h the hostname - \H the hostname up to the first `.' - \n CRLF - \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 am/pm format - \w the current working directory - \W the last element of $PWD - \u your username - \# the command number of this command - \! the history 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 50 -char * -decode_prompt_string (string) - char *string; -{ - WORD_LIST *list; - char *result, *t; -#if defined (PROMPT_STRING_DECODE) - int result_size, result_index; - int c, n; - char *temp, octal_string[4]; - time_t the_time; - - result = 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 = xmalloc (3); - - if (n == CTLESC || n == CTLNUL) - { - string += 3; - temp[0] = CTLESC; - temp[1] = n; - temp[2] = '\0'; - } - else if (n == -1) - { - temp[0] = '\\'; - temp[1] = '\0'; - } - else - { - string += 3; - temp[0] = n; - temp[1] = '\0'; - } - - c = 0; - goto add_string; - - case 't': - case 'd': - case 'T': - case '@': - /* Make the current time/date into a string. */ - the_time = time (0); - temp = ctime (&the_time); - - temp = (c != 'd') ? savestring (temp + 11) : savestring (temp); - temp[(c != 'd') ? 8 : 10] = '\0'; - - /* quick and dirty conversion to 12-hour time */ - if (c == 'T' || c == '@') - { - if (c == '@') - { - temp[5] = 'a'; /* am/pm format */ - temp[6] = 'm'; - temp[7] = '\0'; - } - c = temp[2]; - temp[2] = '\0'; - n = atoi (temp); - temp[2] = c; - n -= 12; - if (n > 0) - { - temp[0] = (n / 10) + '0'; - temp[1] = (n % 10) + '0'; - if (temp[5] == 'a') temp[5] = 'p'; - } - } - goto add_string; - - case 'n': - temp = 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 'w': - case 'W': - { - /* Use the value of PWD because it is much more efficient. */ - char t_string[MAXPATHLEN]; - - temp = get_string_value ("PWD"); - - if (temp == 0) - getwd (t_string); - else - strcpy (t_string, temp); - - if (c == 'W') - { - t = strrchr (t_string, '/'); - if (t && t != t_string) - strcpy (t_string, t + 1); - temp = savestring (t_string); - } - else - temp = savestring (polite_directory_format (t_string)); - goto add_string; - } - - case 'u': - 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 '$': - temp = xmalloc (2); - temp[0] = current_user.euid == 0 ? '#' : '$'; - temp[1] = '\0'; - goto add_string; - -#if defined (READLINE) - case '[': - case ']': - temp = 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 '\\': - temp = xmalloc (2); - temp[0] = c; - temp[1] = '\0'; - goto add_string; - - case 'a': - case 'e': - temp = xmalloc (2); - temp[0] = (c == 'a') ? '\07' : '\033'; - temp[1] = '\0'; - goto add_string; - - default: - temp = 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 - { - if (result_index > result_size - 3) - { - while (result_index > result_size - 3) - result_size += PROMPT_GROWTH; - result = xrealloc (result, result_size); - } - - result[result_index++] = c; - result[result_index] = '\0'; - } - } -#else /* !PROMPT_STRING_DECODE */ - result = savestring (string); -#endif /* !PROMPT_STRING_DECODE */ - - /* Perform variable and parameter expansion and command substitution on - the prompt string. */ - if (promptvars) - { - list = expand_string_unsplit (result, Q_DOUBLE_QUOTES); - free (result); - result = string_list (list); - dispose_words (list); - } - else - { - t = dequote_string (result); - free (result); - result = t; - } - - return (result); -} - -/* Report a syntax error, and restart the parser. Call here for fatal - errors. */ -int -yyerror () -{ - report_syntax_error ((char *)NULL); - reset_parser (); - return (0); -} - -/* 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 *name, *msg, *t; - int token_end, i; - - if (message) - { - if (!interactive) - { - name = bash_input.name ? bash_input.name : "stdin"; - report_error ("%s: line %d: `%s'", name, line_number, message); - } - else - { - if (EOF_Reached) - EOF_Reached = 0; - report_error ("%s", message); - } - - last_command_exit_value = EX_USAGE; - return; - } - - if (shell_input_line && *shell_input_line) - { - t = shell_input_line; - i = shell_input_line_index; - token_end = 0; - - 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++; - - if (token_end) - { - msg = xmalloc (1 + (token_end - i)); - strncpy (msg, t + i, token_end - i); - msg[token_end - i] = '\0'; - - report_error ("syntax error near unexpected token `%s'", msg); - free (msg); - } - else if ((i == 0) && (token_end == 0)) /* a 1-character token */ - { - report_error ("syntax error near unexpected token `%c'", t[i]); - } - - if (!interactive) - { - msg = savestring (shell_input_line); - token_end = strlen (msg); - name = bash_input.name ? bash_input.name : "stdin"; - - while (token_end && msg[token_end - 1] == '\n') - msg[--token_end] = '\0'; - - report_error ("%s: line %d: `%s'", name, line_number, msg); - free (msg); - } - } - else - { - msg = EOF_Reached ? "syntax error: unexpected end of file" : "syntax error"; - if (!interactive) - { - name = bash_input.name ? bash_input.name : "stdin"; - report_error ("%s: line %d: %s", name, line_number, msg); - } - else - { - /* This file uses EOF_Reached only for error reporting - when the shell is interactive. Other mechanisms are - used to decide whether or not to exit. */ - EOF_Reached = 0; - report_error (msg); - } - } - 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; -{ -} - -/* 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 prompt string to be $PS1. */ - prompt_string_pointer = (char **)NULL; - prompt_again (); - last_read_token = current_token = '\n'; - 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; - } -} diff --git a/CWRU/old/read.def.stdio b/CWRU/old/read.def.stdio deleted file mode 100644 index 681138422..000000000 --- a/CWRU/old/read.def.stdio +++ /dev/null @@ -1,293 +0,0 @@ -This file is read.def, from which is created read.c. -It implements the builtin "read" in Bash. - -Copyright (C) 1987, 1989, 1991 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. - -$PRODUCES read.c - -$BUILTIN read -$FUNCTION read_builtin -$SHORT_DOC read [-r] [-p prompt] [-a array] [name ...] -One line is read from the standard input, and the first word is -assigned to the first NAME, the second word to the second NAME, etc. -with leftover words assigned to the last NAME. Only the characters -found in $IFS are recognized as word delimiters. The return code is -zero, unless end-of-file is encountered. If the -r option is given, -this signifies `raw' input, and backslash processing is disabled. If -the `-p' option is supplied, the string supplied as an argument is -output without a trailing newline before attempting to read. If -a -is supplied, the words read are assigned to sequential indices of ARRAY, -starting at zero. -$END - -#include -#include "../shell.h" -#include "common.h" -#include "bashgetopt.h" - -static int stream_close (); - -extern int interrupt_immediately; - -/* Read the value of the shell variables whose names follow. - The reading is done from the current input stream, whatever - that may be. Successive words of the input line are assigned - to the variables mentioned in LIST. The last variable in LIST - gets the remainder of the words on the line. If no variables - are mentioned in LIST, then the default variable is $REPLY. */ -read_builtin (list) - WORD_LIST *list; -{ - register char *varname; - int size, c, i, fildes, raw_mode, pass_next, saw_escape, opt, retval; - char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; - FILE *input_stream; - SHELL_VAR *ifs; -#if defined (ARRAY_VARS) - SHELL_VAR *v; - WORD_LIST *alist; -#endif - - i = 0; /* Index into the string that we are reading. */ - raw_mode = 0; /* Not reading raw input be default. */ - arrayname = prompt = (char *)NULL; - - reset_internal_getopt (); - while ((opt = internal_getopt (list, "rp:a:")) != -1) - { - switch (opt) - { - case 'r': - raw_mode = 1; - break; - case 'p': - prompt = list_optarg; - break; -#if defined (ARRAY_VARS) - case 'a': - arrayname = list_optarg; - break; -#endif - default: - builtin_usage (); - return (EX_USAGE); - } - } - list = loptend; - - /* We need unbuffered input from stdin. So we make a new stream with - the same file descriptor as stdin, then unbuffer it. */ - fildes = dup (fileno (stdin)); - - if (fildes == -1) - return (EXECUTION_FAILURE); - - input_stream = fdopen (fildes, "r"); - - if (!input_stream) - { - close (fildes); - return (EXECUTION_FAILURE); - } - - ifs = find_variable ("IFS"); - if (ifs == 0) - ifs_chars = " \t\n"; - else - ifs_chars = value_cell (ifs); - - input_string = xmalloc (size = 128); - - setbuf (input_stream, (char *)NULL); - - begin_unwind_frame ("read_builtin"); - add_unwind_protect (xfree, input_string); - add_unwind_protect (stream_close, input_stream); - interrupt_immediately++; - - if (prompt && isatty (0)) - { - fprintf (stderr, "%s", prompt); - fflush (stderr); - } - - pass_next = 0; /* Non-zero signifies last char was backslash. */ - saw_escape = 0; /* Non-zero signifies that we saw an escape char */ - - while ((c = getc (input_stream)) != EOF) - { - if (i + 2 >= size) - input_string = xrealloc (input_string, size += 128); - - /* If the next character is to be accepted verbatim, a backslash - newline pair still disappears from the input. */ - if (pass_next) - { - if (c == '\n') - i--; /* back up over the CTLESC */ - else - input_string[i++] = c; - pass_next = 0; - continue; - } - - if (c == '\\' && !raw_mode) - { - pass_next++; - saw_escape++; - input_string[i++] = CTLESC; - continue; - } - - if (c == '\n') - break; - - if (c == CTLESC || c == CTLNUL) - input_string[i++] = CTLESC; - - input_string[i++] = c; - } - input_string[i] = '\0'; - - interrupt_immediately--; - discard_unwind_frame ("read_builtin"); - - fclose (input_stream); - - if (c == EOF) - { - retval = EXECUTION_FAILURE; - input_string[0] = '\0'; - } - else - retval = EXECUTION_SUCCESS; - -#if defined (ARRAY_VARS) - /* If -a was given, take the string read, break it into a list of words, - an assign them to `arrayname' in turn. */ - if (arrayname) - { - v = find_variable (arrayname); - if (v == 0) - v = make_new_array_variable (arrayname); - else if (array_p (v) == 0) - v = convert_var_to_array (v); - - alist = list_string (input_string, " \t\n", 0); - if (alist) - { - assign_word_list (array_cell (v), alist); - dispose_words (alist); - } - free (input_string); - return (retval); - } -#endif /* ARRAY_VARS */ - - if (!list) - { - SHELL_VAR *var; - char *t; - - if (saw_escape) - { - t = dequote_string (input_string); - var = bind_variable ("REPLY", t); - free (t); - } - else - var = bind_variable ("REPLY", input_string); - var->attributes &= ~att_invisible; - free (input_string); - } - else - { - SHELL_VAR *var; - char *t; - /* This code implements the Posix.2 spec for splitting the words - read and assigning them to variables. If $IFS is unset, we - use the default value of " \t\n". */ - if (!ifs_chars) - ifs_chars = ""; - - orig_input_string = input_string; - while (list->next) - { - char *e, *t1; - - varname = list->word->word; - - /* If there are more variables than words read from the input, - the remaining variables are set to the empty string. */ - if (*input_string) - { - /* This call updates INPUT_STRING. */ - t = get_word_from_string (&input_string, ifs_chars, &e); - if (t) - *e = '\0'; - /* Don't bother to remove the CTLESC unless we added one - somewhere while reading the string. */ - if (t && saw_escape) - { - t1 = dequote_string (t); - var = bind_variable (varname, t1); - free (t1); - } - else - var = bind_variable (varname, t); - } - else - { - t = (char *)0; - var = bind_variable (varname, ""); - } - - stupidly_hack_special_variables (varname); - var->attributes &= ~att_invisible; - - if (t) - free (t); - - list = list->next; - } - - if (saw_escape) - { - t = dequote_string (input_string); - var = bind_variable (list->word->word, t); - free (t); - } - else - var = bind_variable (list->word->word, input_string); - stupidly_hack_special_variables (list->word->word); - var->attributes &= ~att_invisible; - free (orig_input_string); - } - - return (retval); -} - -/* This way I don't have to know whether fclose () is a - function or a macro. */ -static int -stream_close (file) - FILE *file; -{ - return (fclose (file)); -} diff --git a/CWRU/old/subst.c.noctlnul b/CWRU/old/subst.c.noctlnul deleted file mode 100644 index b6621c0d0..000000000 --- a/CWRU/old/subst.c.noctlnul +++ /dev/null @@ -1,5659 +0,0 @@ -/* subst.c -- The part of the shell that does parameter, command, and - globbing substitutions. */ - -/* Copyright (C) 1987,1989 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#include "config.h" - -#include "bashtypes.h" -#include -#include -#include -#include - -#if defined (HAVE_UNISTD_H) -# include -#endif - -#include "bashansi.h" -#include "posixstat.h" - -#include "shell.h" -#include "flags.h" -#include "jobs.h" -#include "execute_cmd.h" -#include "filecntl.h" -#include "trap.h" -#include "pathexp.h" - -#include "builtins/getopt.h" -#include "builtins/common.h" - -#if defined (READLINE) -# include "bashline.h" -# include -#else -# include -#endif - -#if defined (HISTORY) -# include "bashhist.h" -# include -#endif - -#include - -#if !defined (errno) -extern int errno; -#endif /* !errno */ - -/* The size that strings change by. */ -#define DEFAULT_ARRAY_SIZE 128 - -/* How to quote character C. */ -static char *make_quoted_char (); - -/* Process ID of the last command executed within command substitution. */ -pid_t last_command_subst_pid = NO_PID; - -/* Extern functions and variables from different files. */ -extern int last_command_exit_value, interactive, interactive_shell; -extern int subshell_environment, startup_state; -extern int dollar_dollar_pid; -extern int posixly_correct; -extern int eof_encountered, eof_encountered_limit, ignoreeof; -extern char *this_command_name; -extern struct fd_bitmap *current_fds_to_close; -#if defined (READLINE) -extern int no_line_editing; -extern int hostname_list_initialized; -#endif - -/* Non-zero means to allow unmatched globbed filenames to expand to - a null file. */ -int allow_null_glob_expansion; - -static WORD_LIST expand_word_error, expand_word_fatal; -static char expand_param_error, expand_param_fatal; - -static WORD_LIST *expand_string_internal (); -static WORD_LIST *expand_word_internal (), *expand_word_list_internal (); -static WORD_LIST *expand_string_leave_quoted (); -static WORD_LIST *expand_string_for_rhs (); -static WORD_LIST *word_list_split (); -static WORD_LIST *quote_list (), *dequote_list (); -static int unquoted_substring (), unquoted_member (); -static int do_assignment_internal (); -static char *string_extract_verbatim (), *string_extract (); -static char *string_extract_double_quoted (), *string_extract_single_quoted (); -static int skip_single_quoted (), skip_double_quoted (); -static char *extract_delimited_string (); -static char *extract_dollar_brace_string (); - -/* **************************************************************** */ -/* */ -/* Utility Functions */ -/* */ -/* **************************************************************** */ - -/* Cons a new string from STRING starting at START and ending at END, - not including END. */ -char * -substring (string, start, end) - char *string; - int start, end; -{ - register int len; - register char *result; - - len = end - start; - result = xmalloc (len + 1); - strncpy (result, string + start, len); - result[len] = '\0'; - return (result); -} - -/* Conventions: - - A string with s[0] == CTLNUL && s[1] == 0 is a quoted null string. - The parser passes CTLNUL as CTLESC CTLNUL. */ - -/* The parser passes us CTLESC as CTLESC CTLESC and CTLNUL as CTLESC CTLNUL. - This is necessary to make unquoted CTLESC and CTLNUL characters in the - data stream pass through properly. - Here we remove doubled CTLESC characters inside quoted strings before - quoting the entire string, so we do not double the number of CTLESC - characters. */ -static char * -remove_quoted_escapes (string) - char *string; -{ - register char *s; - int docopy; - char *t, *t1; - - if (string == NULL) - return (string); - - t1 = t = xmalloc (strlen (string) + 1); - for (docopy = 0, s = string; *s; s++, t1++) - { -#if 0 - if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL)) -#else - if (*s == CTLESC && s[1] == CTLESC) -#endif - { - s++; - docopy = 1; - } - *t1 = *s; - } - *t1 = '\0'; - if (docopy) - strcpy (string, t); - free (t); - return (string); -} - -/* Quote escape characters in string s, but no other characters. This is - used to protect CTLESC and CTLNUL in variable values from the rest of - the word expansion process after the variable is expanded. */ -static char * -quote_escapes (string) - char *string; -{ - register char *s, *t; - char *result; - - result = xmalloc ((strlen (string) * 2) + 1); - for (s = string, t = result; *s; ) - { - if (*s == CTLESC /* || *s == CTLNUL */) - *t++ = CTLESC; - *t++ = *s++; - } - *t = '\0'; - return (result); -} - -static char * -dequote_escapes (string) - char *string; -{ - register char *s, *t; - char *result; - - result = xmalloc (strlen (string) + 1); - for (s = string, t = result; *s; ) - { -#if 0 - if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL)) -#else - if (*s == CTLESC && s[1] == CTLESC) -#endif - { - s++; - if (*s == '\0') - break; - } - *t++ = *s++; - } - *t = '\0'; - return result; -} - -/* Extract a substring from STRING, starting at SINDEX and ending with - one of the characters in CHARLIST. Don't make the ending character - part of the string. Leave SINDEX pointing at the ending character. - Understand about backslashes in the string. If VARNAME is non-zero, - and array variables have been compiled into the shell, everything - between a `[' and a corresponding `]' is skipped over. */ -static char * -string_extract (string, sindex, charlist, varname) - char *string, *charlist; - int *sindex, varname; -{ - register int c, i; - char *temp; - - for (i = *sindex; c = string[i]; i++) - { - if (c == '\\') - if (string[i + 1]) - i++; - else - break; -#if defined (ARRAY_VARS) - else if (varname && c == '[') - { - int ni; - /* If this is an array subscript, skip over it and continue. */ - ni = skipsubscript (string, i); - if (string[ni] == ']') - i = ni; - } -#endif - else if (MEMBER (c, charlist)) - break; - } - c = i - *sindex; - temp = xmalloc (1 + c); - strncpy (temp, string + *sindex, c); - temp[c] = '\0'; - *sindex = i; - return (temp); -} - -/* Extract the contents of STRING as if it is enclosed in double quotes. - SINDEX, when passed in, is the offset of the character immediately - following the opening double quote; on exit, SINDEX is left pointing after - the closing double quote. If STRIPDQ is non-zero, unquoted double - quotes are stripped and the string is terminated by a null byte. - Backslashes between the embedded double quotes are processed. If STRIPDQ - is zero, an unquoted `"' terminates the string. */ -static inline char * -string_extract_double_quoted (string, sindex, stripdq) - char *string; - int *sindex, stripdq; -{ - int c, j, i, t; - char *temp, *ret; /* The new string we return. */ - int pass_next, backquote, si; /* State variables for the machine. */ - int dquote; - - pass_next = backquote = dquote = 0; - temp = xmalloc (1 + strlen (string) - *sindex); - - for (j = 0, i = *sindex; c = string[i]; i++) - { - /* Process a character that was quoted by a backslash. */ - if (pass_next) - { - /* Posix.2 sez: - - ``The backslash shall retain its special meaning as an escape - character only when followed by one of the characters: - $ ` " \ ''. - - If STRIPDQ is zero, we handle the double quotes here and let - expand_word_internal handle the rest. If STRIPDQ is non-zero, - we have already been through one round of backslash stripping, - and want to strip these backslashes only if DQUOTE is non-zero, - indicating that we are inside an embedded double-quoted string. */ - - /* If we are in an embedded quoted string, then don't strip - backslashes before characters for which the backslash - retains its special meaning, but remove backslashes in - front of other characters. If we are not in an - embedded quoted string, don't strip backslashes at all. - This mess is necessary because the string was already - surrounded by double quotes (and sh has some really weird - quoting rules). - The returned string will be run through expansion as if - it were double-quoted. */ - if ((stripdq == 0 && c != '"') || - (stripdq && ((dquote && strchr (slashify_in_quotes, c)) || dquote == 0))) - temp[j++] = '\\'; - temp[j++] = c; - pass_next = 0; - continue; - } - - /* A backslash protects the next character. The code just above - handles preserving the backslash in front of any character but - a double quote. */ - if (c == '\\') - { - pass_next++; - continue; - } - - /* Inside backquotes, ``the portion of the quoted string from the - initial backquote and the characters up to the next backquote - that is not preceded by a backslash, having escape characters - removed, defines that command''. */ - if (backquote) - { - if (c == '`') - backquote = 0; - temp[j++] = c; - continue; - } - - if (c == '`') - { - temp[j++] = c; - backquote++; - continue; - } - - /* Pass everything between `$(' and the matching `)' or a quoted - ${ ... } pair through according to the Posix.2 specification. */ - if (c == '$' && ((string[i + 1] == '(') || (string[i + 1] == '{'))) - { - si = i + 2; - if (string[i + 1] == '(') - ret = extract_delimited_string (string, &si, "$(", "(", ")"); - else - ret = extract_dollar_brace_string (string, &si, 1); - - temp[j++] = '$'; - temp[j++] = string[i + 1]; - - for (t = 0; ret[t]; t++, j++) - temp[j] = ret[t]; - temp[j++] = string[si]; - - i = si; - free (ret); - continue; - } - - /* Add any character but a double quote to the quoted string we're - accumulating. */ - if (c != '"') - { - temp[j++] = c; - continue; - } - - /* c == '"' */ - if (stripdq) - { - dquote ^= 1; - continue; - } - - break; - } - temp[j] = '\0'; - - /* Point to after the closing quote. */ - if (c) - i++; - *sindex = i; - - return (temp); -} - -/* This should really be another option to string_extract_double_quoted. */ -static inline int -skip_double_quoted (string, sind) - char *string; - int sind; -{ - int c, j, i; - char *ret; - int pass_next, backquote, si; - - pass_next = backquote = 0; - - for (j = 0, i = sind; c = string[i]; i++) - { - if (pass_next) - { - pass_next = 0; - continue; - } - else if (c == '\\') - { - pass_next++; - continue; - } - else if (backquote) - { - if (c == '`') - backquote = 0; - continue; - } - else if (c == '`') - { - backquote++; - continue; - } - else if (c == '$' && ((string[i + 1] == '(') || (string[i + 1] == '{'))) - { - si = i + 2; - if (string[i + 1] == '(') - ret = extract_delimited_string (string, &si, "$(", "(", ")"); - else - ret = extract_dollar_brace_string (string, &si, 0); - i = si; - free (ret); - continue; - } - else if (c != '"') - continue; - else - break; - } - - if (c) - i++; - - return (i); -} - -/* Extract the contents of STRING as if it is enclosed in single quotes. - SINDEX, when passed in, is the offset of the character immediately - following the opening single quote; on exit, SINDEX is left pointing after - the closing single quote. */ -static inline char * -string_extract_single_quoted (string, sindex) - char *string; - int *sindex; -{ - register int i, j; - char *temp; - - for (i = *sindex; string[i] && string[i] != '\''; i++) - ; - - j = i - *sindex; - temp = xmalloc (1 + j); - strncpy (temp, string + *sindex, j); - temp[j] = '\0'; - - if (string[i]) - i++; - *sindex = i; - - return (temp); -} - -static inline int -skip_single_quoted (string, sind) - char *string; - int sind; -{ - register int i; - - for (i = sind; string[i] && string[i] != '\''; i++) - ; - if (string[i]) - i++; - return i; -} - -/* Just like string_extract, but doesn't hack backslashes or any of - that other stuff. Obeys quoting. Used to do splitting on $IFS. */ -static char * -string_extract_verbatim (string, sindex, charlist) - char *string, *charlist; - int *sindex; -{ - register int i = *sindex; - int c; - char *temp; - - if (charlist[0] == '\'' && charlist[1] == '\0') - return (string_extract_single_quoted (string, sindex)); - - for (i = *sindex; c = string[i]; i++) - { - if (c == CTLESC) - { - i++; - continue; - } - - if (MEMBER (c, charlist)) - break; - } - - c = i - *sindex; - temp = xmalloc (1 + c); - strncpy (temp, string + *sindex, c); - temp[c] = '\0'; - *sindex = i; - - return (temp); -} - -/* Extract the $( construct in STRING, and return a new string. - Start extracting at (SINDEX) as if we had just seen "$(". - Make (SINDEX) get the position just after the matching ")". */ -char * -extract_command_subst (string, sindex) - char *string; - int *sindex; -{ - return (extract_delimited_string (string, sindex, "$(", "(", ")")); -} - -/* Extract the $[ construct in STRING, and return a new string. - Start extracting at (SINDEX) as if we had just seen "$[". - Make (SINDEX) get the position just after the matching "]". */ -char * -extract_arithmetic_subst (string, sindex) - char *string; - int *sindex; -{ - return (extract_delimited_string (string, sindex, "$[", "[", "]")); -} - -#if defined (PROCESS_SUBSTITUTION) -/* Extract the <( or >( construct in STRING, and return a new string. - Start extracting at (SINDEX) as if we had just seen "<(". - Make (SINDEX) get the position just after the matching ")". */ -char * -extract_process_subst (string, starter, sindex) - char *string; - char *starter; - int *sindex; -{ - return (extract_delimited_string (string, sindex, starter, "(", ")")); -} -#endif /* PROCESS_SUBSTITUTION */ - -#if defined (ARRAY_VARS) -char * -extract_array_assignment_list (string, sindex) - char *string; - int *sindex; -{ - return (extract_delimited_string (string, sindex, "(", "(", ")")); -} -#endif - -/* Extract and create a new string from the contents of STRING, a - character string delimited with OPENER and CLOSER. SINDEX is - the address of an int describing the current offset in STRING; - it should point to just after the first OPENER found. On exit, - SINDEX gets the position just after the matching CLOSER. If - OPENER is more than a single character, ALT_OPENER, if non-null, - contains a character string that can also match CLOSER and thus - needs to be skipped. */ - -#define INC_NEST \ - do \ - { \ - if (delimiter == 0) \ - nesting_level++; \ - else \ - delimited_nesting_level++; \ - } \ - while (0) - -/* Cannot use the do...while(0) idiom because of the `break' in the - macro body. */ -#define DEC_NEST \ - if (delimiter && delimited_nesting_level) \ - delimited_nesting_level--; \ - if (delimiter == 0) \ - { \ - nesting_level--; \ - if (nesting_level == 0) \ - break; \ - } - -static char * -extract_delimited_string (string, sindex, opener, alt_opener, closer) - char *string; - int *sindex; - char *opener, *alt_opener, *closer; -{ - register int i, c, l; - int pass_character, nesting_level; - int delimiter, delimited_nesting_level; - int len_closer, len_opener, len_alt_opener; - char *result; - - len_opener = STRLEN (opener); - len_alt_opener = STRLEN (alt_opener); - len_closer = STRLEN (closer); - - pass_character = delimiter = delimited_nesting_level = 0; - - nesting_level = 1; - - for (i = *sindex; c = string[i]; i++) - { - if (pass_character) - { - pass_character = 0; - continue; - } - - if (c == CTLESC) - { - pass_character++; - continue; - } - - if (c == '\\' && delimiter == '"' && - (member (string[i + 1], slashify_in_quotes))) - { - pass_character++; - continue; - } - - if (!delimiter || delimiter == '"') - { - if (STREQN (string + i, opener, len_opener)) - { - INC_NEST; - i += len_opener - 1; - continue; - } - - if (len_alt_opener && STREQN (string + i, alt_opener, len_alt_opener)) - { - INC_NEST; - i += len_alt_opener - 1; - continue; - } - - if (STREQN (string + i, closer, len_closer)) - { - i += len_closer - 1; - DEC_NEST; - } - } - - if (delimiter) - { - if (c == delimiter || delimiter == '\\') - delimiter = 0; - continue; - } - else if (c == '"' || c == '\'' || c == '\\') - delimiter = c; - } - - l = i - *sindex; - result = xmalloc (1 + l); - strncpy (result, string + *sindex, l); - result[l] = '\0'; - *sindex = i; - - if (c == 0 && (delimiter || nesting_level)) - { - report_error ("bad substitution: no `%s' in %s", closer, string); - free (result); - jump_to_top_level (DISCARD); - } - return (result); -} - -/* Extract a parameter expansion expression within ${ and } from STRING. - Obey the Posix.2 rules for finding the ending `}': count braces while - skipping over enclosed quoted strings and command substitutions. - SINDEX is the address of an int describing the current offset in STRING; - it should point to just after the first `{' found. On exit, SINDEX - gets the position just after the matching `}'. QUOTED is non-zero if - this occurs inside double quotes. */ -/* XXX -- this is very similar to extract_delimited_string -- XXX */ -static char * -extract_dollar_brace_string (string, sindex, quoted) - char *string; - int *sindex, quoted; -{ - register int i, c, l; - int pass_character, nesting_level, si; - int delimiter, delimited_nesting_level; - char *result, *t; - - pass_character = delimiter = delimited_nesting_level = 0; - - nesting_level = 1; - - for (i = *sindex; c = string[i]; i++) - { - if (pass_character) - { - pass_character = 0; - continue; - } - - if (c == CTLESC) - { - pass_character++; - continue; - } - - /* Backslashes quote the next character. */ - if (c == '\\') - { - if ((delimiter == '"') && - (member (string[i + 1], slashify_in_quotes))) - { - pass_character++; - continue; - } - } - - if (!delimiter || delimiter == '"') - { - if (string[i] == '$' && string[i+1] == '{') - { - INC_NEST; - i++; - continue; - } - - /* Pass the contents of old-style command substitutions through - verbatim. */ - if (string[i] == '`') - { - si = i + 1; - t = string_extract (string, &si, "`", 0); - i = si; - free (t); - continue; - } - - /* Pass the contents of new-style command substitutions through - verbatim. */ - if (string[i] == '$' && string[i+1] == '(') - { - si = i + 2; - t = extract_delimited_string (string, &si, "$(", "(", ")"); - i = si; - free (t); - continue; - } - - if (string[i] == '{') - { - INC_NEST; - continue; - } - - if (string[i] == '}') - { - DEC_NEST; - } - } - - if (delimiter) - { - if (c == delimiter || delimiter == '\\') - delimiter = 0; - continue; - } - else if (c == '"' || c == '\'' || c == '\\') - delimiter = c; - } - - l = i - *sindex; - result = xmalloc (1 + l); - strncpy (result, string + *sindex, l); - result[l] = '\0'; - *sindex = i; - - if (c == 0 && (delimiter || nesting_level)) - { - report_error ("bad substitution: no ending `}' in %s", string); - free (result); - jump_to_top_level (DISCARD); - } - return (result); -} - -/* Remove backslashes which are quoting backquotes from STRING. Modifies - STRING, and returns a pointer to it. */ -char * -de_backslash (string) - char *string; -{ - register int i, l; - - for (i = 0, l = strlen (string); i < l; i++) - if (string[i] == '\\' && (string[i + 1] == '`' || string[i + 1] == '\\' || - string[i + 1] == '$')) - strcpy (string + i, string + i + 1); /* XXX - should be memmove */ - return (string); -} - -#if 0 -/* Replace instances of \! in a string with !. */ -void -unquote_bang (string) - char *string; -{ - register int i, j; - register char *temp; - - temp = xmalloc (1 + strlen (string)); - - for (i = 0, j = 0; (temp[j] = string[i]); i++, j++) - { - if (string[i] == '\\' && string[i + 1] == '!') - { - temp[j] = '!'; - i++; - } - } - strcpy (string, temp); - free (temp); -} -#endif - -#if defined (READLINE) -/* Return 1 if the portion of STRING ending at EINDEX is quoted (there is - an unclosed quoted string), or if the character at EINDEX is quoted - by a backslash. */ -int -char_is_quoted (string, eindex) - char *string; - int eindex; -{ - int i, pass_next, quoted; - - for (i = pass_next = quoted = 0; i <= eindex; i++) - { - if (pass_next) - { - pass_next = 0; - if (i >= eindex) /* XXX was if (i >= eindex - 1) */ - return 1; - continue; - } - else if (string[i] == '\'' || string[i] == '"') - { - i = (string[i] == '\'') ? skip_single_quoted (string, ++i) - : skip_double_quoted (string, ++i); - if (i > eindex) - return 1; - } - else if (string[i] == '\\') - { - pass_next = 1; - continue; - } - } - return (0); -} - -int -unclosed_pair (string, eindex, openstr) - char *string; - int eindex; - char *openstr; -{ - int i, pass_next, openc, olen; - - olen = strlen (openstr); - for (i = pass_next = openc = 0; i <= eindex; i++) - { - if (pass_next) - { - pass_next = 0; - if (i >= eindex) /* XXX was if (i >= eindex - 1) */ - return 0; - continue; - } - else if (STREQN (string + i, openstr, olen)) - { - openc = 1 - openc; - i += olen - 1; - } - else if (string[i] == '\'' || string[i] == '"') - { - i = (string[i] == '\'') ? skip_single_quoted (string, i) - : skip_double_quoted (string, i); - if (i > eindex) - return 0; - } - else if (string[i] == '\\') - { - pass_next = 1; - continue; - } - } - return (openc); -} -#endif /* READLINE */ - -#if 0 -/* UNUSED */ -/* Extract the name of the variable to bind to from the assignment string. */ -char * -assignment_name (string) - char *string; -{ - int offset; - char *temp; - - offset = assignment (string); - if (offset == 0) - return (char *)NULL; - temp = xmalloc (offset + 1); - strncpy (temp, string, offset); - temp[offset] = '\0'; - return (temp); -} -#endif - -/* Return a single string of all the words in LIST. SEP is the separator - to put between individual elements of LIST in the output string. */ -static char * -string_list_internal (list, sep) - WORD_LIST *list; - char *sep; -{ - register WORD_LIST *t; - char *result, *r; - int word_len, sep_len, result_size; - - if (list == 0) - return ((char *)NULL); - - /* This is nearly always called with either sep[0] == 0 or sep[1] == 0. */ - sep_len = STRLEN (sep); - result_size = 0; - - for (t = list; t; t = t->next) - { - if (t != list) - result_size += sep_len; - result_size += strlen (t->word->word); - } - - r = result = xmalloc (result_size + 1); - - for (t = list; t; t = t->next) - { - if (t != list && sep_len) - { - if (sep_len > 1) - { - FASTCOPY (sep, r, sep_len); - r += sep_len; - } - else - *r++ = sep[0]; - } - - word_len = strlen (t->word->word); - FASTCOPY (t->word->word, r, word_len); - r += word_len; - } - - *r = '\0'; - return (result); -} - -/* Return a single string of all the words present in LIST, separating - each word with a space. */ -char * -string_list (list) - WORD_LIST *list; -{ - return (string_list_internal (list, " ")); -} - -/* Return a single string of all the words present in LIST, obeying the - quoting rules for "$*", to wit: (P1003.2, draft 11, 3.5.2) "If the - expansion [of $*] appears within a double quoted string, it expands - to a single field with the value of each parameter separated by the - first character of the IFS variable, or by a if IFS is unset." */ -char * -string_list_dollar_star (list) - WORD_LIST *list; -{ - char *ifs, sep[2]; - - ifs = get_string_value ("IFS"); - if (ifs == 0) - sep[0] = ' '; - else if (*ifs == '\0') - sep[0] = '\0'; - else - sep[0] = *ifs; - - sep[1] = '\0'; - - return (string_list_internal (list, sep)); -} - -/* Return the list of words present in STRING. Separate the string into - words at any of the characters found in SEPARATORS. If QUOTED is - non-zero then word in the list will have its quoted flag set, otherwise - the quoted flag is left as make_word () deemed fit. - - This obeys the P1003.2 word splitting semantics. If `separators' is - exactly , then the splitting algorithm is that of - the Bourne shell, which treats any sequence of characters from `separators' - as a delimiter. If IFS is unset, which results in `separators' being set - to "", no splitting occurs. If separators has some other value, the - following rules are applied (`IFS white space' means zero or more - occurrences of , , or , as long as those characters - are in `separators'): - - 1) IFS white space is ignored at the start and the end of the - string. - 2) Each occurrence of a character in `separators' that is not - IFS white space, along with any adjacent occurrences of - IFS white space delimits a field. - 3) Any nonzero-length sequence of IFS white space delimits a field. - */ - -/* BEWARE! list_string strips null arguments. Don't call it twice and - expect to have "" preserved! */ - -/* Perform quoted null character removal on STRING. We don't allow any - quoted null characters in the middle or at the ends of strings because - of how expand_word_internal works. remove_quoted_nulls () simply - turns STRING into an empty string iff it only consists of a quoted null. */ -#define remove_quoted_nulls(string) \ - do { if (QUOTED_NULL (string)) string[0] ='\0'; } while (0) - -/* Perform quoted null character removal on each element of LIST. - This modifies LIST. */ -void -word_list_remove_quoted_nulls (list) - WORD_LIST *list; -{ - register WORD_LIST *t; - - for (t = list; t; t = t->next) - remove_quoted_nulls (t->word->word); -} - -/* This performs word splitting and quoted null character removal on - STRING. */ -#define issep(c) (member ((c), separators)) - -WORD_LIST * -list_string (string, separators, quoted) - register char *string, *separators; - int quoted; -{ - WORD_LIST *result; - WORD_DESC *t; - char *current_word, *s; - int sindex, sh_style_split; - - if (!string || !*string) - return ((WORD_LIST *)NULL); - - sh_style_split = - separators && *separators && (STREQ (separators, " \t\n")); - - /* Remove sequences of whitespace at the beginning of STRING, as - long as those characters appear in IFS. Do not do this if - STRING is quoted or if there are no separator characters. */ - if (!quoted || !separators || !*separators) - { - for (s = string; *s && spctabnl (*s) && issep (*s); s++); - - if (!*s) - return ((WORD_LIST *)NULL); - - string = s; - } - - /* OK, now STRING points to a word that does not begin with white space. - The splitting algorithm is: - extract a word, stopping at a separator - skip sequences of spc, tab, or nl as long as they are separators - This obeys the field splitting rules in Posix.2. */ - for (result = (WORD_LIST *)NULL, sindex = 0; string[sindex]; ) - { - current_word = string_extract_verbatim (string, &sindex, separators); - if (current_word == 0) - break; - - /* If we have a quoted empty string, add a quoted null argument. We - want to preserve the quoted null character iff this is a quoted - empty string; otherwise the quoted null characters are removed - below. */ -#if 0 - if (QUOTED_NULL (current_word)) - { - t = make_bare_word (""); - t->flags |= W_QUOTED; - free (t->word); - t->word = make_quoted_char ('\0'); - result = make_word_list (t, result); - } - else if (current_word[0] != '\0') -#else - if (current_word[0] != '\0') -#endif - { - /* If we have something, then add it regardless. However, - perform quoted null character removal on the current word. */ -#if 0 - remove_quoted_nulls (current_word); -#endif - result = make_word_list (make_word (current_word), result); - if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) - result->word->flags |= W_QUOTED; - } - - /* If we're not doing sequences of separators in the traditional - Bourne shell style, then add a quoted null argument. */ - else if (!sh_style_split && !spctabnl (string[sindex])) - { - t = make_bare_word (""); - t->flags |= W_QUOTED; - free (t->word); - t->word = make_quoted_char ('\0'); - result = make_word_list (t, result); - } - - free (current_word); - - /* Move past the current separator character. */ - if (string[sindex]) - sindex++; - - /* Now skip sequences of space, tab, or newline characters if they are - in the list of separators. */ - while (string[sindex] && spctabnl (string[sindex]) && issep (string[sindex])) - sindex++; - } - return (REVERSE_LIST (result, WORD_LIST *)); -} - -/* Parse a single word from STRING, using SEPARATORS to separate fields. - ENDPTR is set to the first character after the word. This is used by - the `read' builtin. - XXX - this function is very similar to list_string; they should be - combined - XXX */ -char * -get_word_from_string (stringp, separators, endptr) - char **stringp, *separators, **endptr; -{ - register char *s; - char *current_word; - int sindex, sh_style_split; - - if (!stringp || !*stringp || !**stringp) - return ((char *)NULL); - - s = *stringp; - - sh_style_split = - separators && *separators && (STREQ (separators, " \t\n")); - - /* Remove sequences of whitespace at the beginning of STRING, as - long as those characters appear in IFS. */ - if (sh_style_split || !separators || !*separators) - { - for (; *s && spctabnl (*s) && issep (*s); s++); - - /* If the string is nothing but whitespace, update it and return. */ - if (!*s) - { - *stringp = s; - if (endptr) - *endptr = s; - return ((char *)NULL); - } - } - - /* OK, S points to a word that does not begin with white space. - Now extract a word, stopping at a separator, save a pointer to - the first character after the word, then skip sequences of spc, - tab, or nl as long as they are separators. - - This obeys the field splitting rules in Posix.2. */ - sindex = 0; - current_word = string_extract_verbatim (s, &sindex, separators); - - /* Set ENDPTR to the first character after the end of the word. */ - if (endptr) - *endptr = s + sindex; - - /* Move past the current separator character. */ - if (s[sindex]) - sindex++; - - /* Now skip sequences of space, tab, or newline characters if they are - in the list of separators. */ - while (s[sindex] && spctabnl (s[sindex]) && issep (s[sindex])) - sindex++; - - /* Update STRING to point to the next field. */ - *stringp = s + sindex; - return (current_word); -} - -/* Remove IFS white space at the end of STRING. Start at the end - of the string and walk backwards until the beginning of the string - or we find a character that's not IFS white space and not CTLESC. - Only let CTLESC escape a white space character if SAW_ESCAPE is - non-zero. */ -char * -strip_trailing_ifs_whitespace (string, separators, saw_escape) - char *string, *separators; - int saw_escape; -{ - char *s; - - s = string + STRLEN (string) - 1; - while (s > string && ((spctabnl (*s) && issep (*s)) || - (saw_escape && *s == CTLESC && spctabnl (s[1])))) - s--; - *++s = '\0'; - return string; -} - -#if defined (ARRAY_VARS) -WORD_LIST * -list_string_with_quotes (string) - char *string; -{ - WORD_LIST *list; - char *token, *s; - int c, i, tokstart, len; - - for (s = string; s && *s && spctabnl (*s); s++) - ; - if (s == 0 || *s == 0) - return ((WORD_LIST *)NULL); - - tokstart = i = 0; - list = (WORD_LIST *)NULL; - while (1) - { - c = s[i]; - if (c == '\\') - { - i++; - if (s[i]) - i++; - } - else if (c == '\'') - i = skip_single_quoted (s, ++i); - else if (c == '"') - i = skip_double_quoted (s, ++i); - else if (c == 0 || spctabnl (c)) - { - /* We have found the end of a token. Make a word out of it and - add it to the word list. */ - len = i - tokstart; - token = xmalloc (len + 1); - strncpy (token, s + tokstart, len); - token[len] = '\0'; - list = make_word_list (make_word (token), list); - free (token); - while (spctabnl (s[i])) - i++; - if (s[i]) - tokstart = i; - else - break; - } - else - i++; /* normal character */ - } - return (REVERSE_LIST (list, WORD_LIST *)); -} -#endif /* ARRAY_VARS */ - -#if defined (PROCESS_SUBSTITUTION) -#define EXP_CHAR(s) (s == '$' || s == '`' || s == '<' || s == '>' || s == CTLESC) -#else -#define EXP_CHAR(s) (s == '$' || s == '`' || s == CTLESC) -#endif - -/* If there are any characters in STRING that require full expansion, - then call FUNC to expand STRING; otherwise just perform quote - removal if necessary. This returns a new string. */ -static char * -maybe_expand_string (string, quoted, func) - char *string; - int quoted; - WORD_LIST *(*func)(); -{ - WORD_LIST *list; - int i, saw_quote; - char *ret; - - for (i = saw_quote = 0; string[i]; i++) - { - if (EXP_CHAR (string[i])) - break; - else if (string[i] == '\'' || string[i] == '\\' || string[i] == '"') - saw_quote = 1; - } - - if (string[i]) - { - list = (*func) (string, quoted); - if (list) - { - ret = string_list (list); - dispose_words (list); - } - else - ret = (char *)NULL; - } - else if (saw_quote && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0)) - ret = string_quote_removal (string, quoted); - else - ret = savestring (string); - return ret; -} - -#if defined (ARRAY_VARS) -SHELL_VAR * -do_array_element_assignment (name, value) - char *name, *value; -{ - char *t; - int ind, ni; - SHELL_VAR *entry; - - t = strchr (name, '['); - if (t == 0) - return ((SHELL_VAR *)NULL); - ind = t - name; - ni = skipsubscript (name, ind); - if ((ALL_ELEMENT_SUB (t[1]) && t[2] == ']') || (ni <= ind + 1)) - { - report_error ("%s: bad array subscript", name); - return ((SHELL_VAR *)NULL); - } - *t++ = '\0'; - ind = array_expand_index (t, ni - ind); - if (ind < 0) - { - t[-1] = '['; /* restore original name */ - report_error ("%s: bad array subscript", name); - return ((SHELL_VAR *)NULL); - } - entry = bind_array_variable (name, ind, value); - t[-1] = '['; /* restore original name */ - return (entry); -} -#endif /* ARRAY_VARS */ - -/* Given STRING, an assignment string, get the value of the right side - of the `=', and bind it to the left side. If EXPAND is true, then - perform parameter expansion, command substitution, and arithmetic - expansion on the right-hand side. Perform tilde expansion in any - case. Do not perform word splitting on the result of expansion. */ -static int -do_assignment_internal (string, expand) - char *string; - int expand; -{ - int offset; - char *name, *value; - SHELL_VAR *entry; -#if defined (ARRAY_VARS) - char *t; - int ni, assign_list = 0; -#endif - - offset = assignment (string); - name = savestring (string); - value = (char *)NULL; - - if (name[offset] == '=') - { - char *temp; - - name[offset] = 0; - temp = name + offset + 1; - -#if defined (ARRAY_VARS) - if (expand && temp[0] == '(' && strchr (temp, ')')) - { - assign_list = ni = 1; - value = extract_delimited_string (temp, &ni, "(", "(", ")"); - } - else -#endif - if (expand && temp[0]) - { - temp = (strchr (temp, '~') && unquoted_member ('~', temp)) - ? bash_tilde_expand (temp) - : savestring (temp); - - value = maybe_expand_string (temp, 0, expand_string_unsplit); - free (temp); - } - else - value = savestring (temp); - } - - if (value == 0) - value = savestring (""); - - if (echo_command_at_execute) -#if defined (ARRAY_VARS) - if (assign_list) - fprintf (stderr, "%s%s=(%s)\n", indirection_level_string (), name, value); - else -#endif - fprintf (stderr, "%s%s=%s\n", indirection_level_string (), name, value); - -#define ASSIGN_RETURN(r) FREE (value); free (name); return (r); - -#if defined (ARRAY_VARS) - if (t = strchr (name, '[')) - { - if (assign_list) - { - report_error ("%s: cannot assign list to array member", name); - ASSIGN_RETURN (0); - } - entry = do_array_element_assignment (name, value); - if (entry == 0) - ASSIGN_RETURN (0); - } - else if (assign_list) - entry = assign_array_from_string (name, value); - else -#endif /* ARRAY_VARS */ - entry = bind_variable (name, value); - - stupidly_hack_special_variables (name); - - if (entry) - entry->attributes &= ~att_invisible; - - /* Return 1 if the assignment seems to have been performed correctly. */ - ASSIGN_RETURN (entry ? ((entry->attributes & att_readonly) == 0) : 0); -} - -/* Perform the assignment statement in STRING, and expand the - right side by doing command and parameter expansion. */ -int -do_assignment (string) - char *string; -{ - return do_assignment_internal (string, 1); -} - -/* Given STRING, an assignment string, get the value of the right side - of the `=', and bind it to the left side. Do not do command and - parameter substitution on the right hand side. */ -int -do_assignment_no_expand (string) - char *string; -{ - return do_assignment_internal (string, 0); -} - -/* Most of the substitutions must be done in parallel. In order - to avoid using tons of unclear goto's, I have some functions - for manipulating malloc'ed strings. They all take INDX, a - pointer to an integer which is the offset into the string - where manipulation is taking place. They also take SIZE, a - pointer to an integer which is the current length of the - character array for this string. */ - -/* Append SOURCE to TARGET at INDEX. SIZE is the current amount - of space allocated to TARGET. SOURCE can be NULL, in which - case nothing happens. Gets rid of SOURCE by freeing it. - Returns TARGET in case the location has changed. */ -inline char * -sub_append_string (source, target, indx, size) - char *source, *target; - int *indx, *size; -{ - if (source) - { - int srclen, n; - - srclen = strlen (source); - if (srclen >= (int)(*size - *indx)) - { - n = srclen + *indx; - n = (n + DEFAULT_ARRAY_SIZE) - (n % DEFAULT_ARRAY_SIZE); - target = xrealloc (target, (*size = n)); - } - - FASTCOPY (source, target + *indx, srclen); - *indx += srclen; - target[*indx] = '\0'; - - free (source); - } - return (target); -} - -#if 0 -/* UNUSED */ -/* Append the textual representation of NUMBER to TARGET. - INDX and SIZE are as in SUB_APPEND_STRING. */ -char * -sub_append_number (number, target, indx, size) - int number, *indx, *size; - char *target; -{ - char *temp; - - temp = itos (number); - return (sub_append_string (temp, target, indx, size)); -} -#endif - -/* Return the word list that corresponds to `$*'. */ -WORD_LIST * -list_rest_of_args () -{ - register WORD_LIST *list, *args; - int i; - - /* Break out of the loop as soon as one of the dollar variables is null. */ - for (i = 1, list = (WORD_LIST *)NULL; i < 10 && dollar_vars[i]; i++) - list = make_word_list (make_bare_word (dollar_vars[i]), list); - - for (args = rest_of_args; args; args = args->next) - list = make_word_list (make_bare_word (args->word->word), list); - - return (REVERSE_LIST (list, WORD_LIST *)); -} - -int -number_of_args () -{ - register WORD_LIST *list; - int n; - - for (n = 0; n < 9 && dollar_vars[n+1]; n++) - ; - for (list = rest_of_args; list; list = list->next) - n++; - return n; -} - -/* Make a single large string out of the dollar digit variables, - and the rest_of_args. If DOLLAR_STAR is 1, then obey the special - case of "$*" with respect to IFS. */ -char * -string_rest_of_args (dollar_star) - int dollar_star; -{ - register WORD_LIST *list; - char *string; - - list = list_rest_of_args (); - string = dollar_star ? string_list_dollar_star (list) : string_list (list); - dispose_words (list); - return (string); -} - -/*************************************************** - * * - * Functions to Expand a String * - * * - ***************************************************/ -/* Call expand_word_internal to expand W and handle error returns. - A convenience function for functions that don't want to handle - any errors or free any memory before aborting. */ -static WORD_LIST * -call_expand_word_internal (w, q, c, e) - WORD_DESC *w; - int q, *c, *e; -{ - WORD_LIST *result; - - result = expand_word_internal (w, q, c, e); - if (result == &expand_word_error) - jump_to_top_level (DISCARD); - else if (result == &expand_word_fatal) - jump_to_top_level (FORCE_EOF); - else - return (result); -} - -/* Perform parameter expansion, command substitution, and arithmetic - expansion on STRING, as if it were a word. Leave the result quoted. */ -static WORD_LIST * -expand_string_internal (string, quoted) - char *string; - int quoted; -{ - WORD_DESC td; - WORD_LIST *tresult; - - if (string == 0 || *string == 0) - return ((WORD_LIST *)NULL); - - bzero (&td, sizeof (td)); - td.word = string; - tresult = call_expand_word_internal (&td, quoted, (int *)NULL, (int *)NULL); - return (tresult); -} - -/* Expand STRING by performing parameter expansion, command substitution, - and arithmetic expansion. Dequote the resulting WORD_LIST before - returning it, but do not perform word splitting. The call to - remove_quoted_nulls () is in here because word splitting normally - takes care of quote removal. */ -WORD_LIST * -expand_string_unsplit (string, quoted) - char *string; - int quoted; -{ - WORD_LIST *value; - - if (!string || !*string) - return ((WORD_LIST *)NULL); - - value = expand_string_internal (string, quoted); - if (value) - { -#if 0 - if (value->word) - remove_quoted_nulls (value->word->word); -#endif - dequote_list (value); - } - return (value); -} - -/* Expand STRING just as if you were expanding a word, but do not dequote - the resultant WORD_LIST. This is called only from within this file, - and is used to correctly preserve quoted characters when expanding - things like ${1+"$@"}. This does parameter expansion, command - subsitution, arithmetic expansion, and word splitting. */ -static WORD_LIST * -expand_string_leave_quoted (string, quoted) - char *string; - int quoted; -{ - WORD_LIST *tlist; - WORD_LIST *tresult; - - if (string == 0 || *string == '\0') - return ((WORD_LIST *)NULL); - - tlist = expand_string_internal (string, quoted); - - if (tlist) - { - tresult = word_list_split (tlist); - dispose_words (tlist); - return (tresult); - } - return ((WORD_LIST *)NULL); -} - -/* This does not perform word splitting or dequote the WORD_LIST - it returns. */ -static WORD_LIST * -expand_string_for_rhs (string, quoted, dollar_at_p, has_dollar_at) - char *string; - int quoted, *dollar_at_p, *has_dollar_at; -{ - WORD_DESC td; - WORD_LIST *tresult; - - if (string == 0 || *string == '\0') - return (WORD_LIST *)NULL; - - bzero (&td, sizeof (td)); - td.word = string; - tresult = call_expand_word_internal (&td, quoted, dollar_at_p, has_dollar_at); - return (tresult); -} - -/* Expand STRING just as if you were expanding a word. This also returns - a list of words. Note that filename globbing is *NOT* done for word - or string expansion, just when the shell is expanding a command. This - does parameter expansion, command substitution, arithmetic expansion, - and word splitting. Dequote the resultant WORD_LIST before returning. */ -WORD_LIST * -expand_string (string, quoted) - char *string; - int quoted; -{ - WORD_LIST *result; - - if (!string || !*string) - return ((WORD_LIST *)NULL); - - result = expand_string_leave_quoted (string, quoted); - return (result ? dequote_list (result) : result); -} - -/*************************************************** - * * - * Functions to handle quoting chars * - * * - ***************************************************/ - -static WORD_LIST * -dequote_list (list) - WORD_LIST *list; -{ - register char *s; - register WORD_LIST *tlist; - - for (tlist = list; tlist; tlist = tlist->next) - { - s = dequote_string (tlist->word->word); - free (tlist->word->word); - tlist->word->word = s; - } - return list; -} - -static char * -make_quoted_char (c) - int c; -{ - char *temp; - - temp = xmalloc (3); - if (c == 0) - { -#if 0 - temp[0] = CTLNUL; - temp[1] = '\0'; -#else - temp[0] = '\0'; -#endif - } - else - { - temp[0] = CTLESC; - temp[1] = c; - temp[2] = '\0'; - } - return (temp); -} - -/* Quote STRING. Return a new string. */ -char * -quote_string (string) - char *string; -{ - register char *t; - char *result; - - if (*string == 0) - { - result = xmalloc (2); -#if 0 - result[0] = CTLNUL; - result[1] = '\0'; -#else - result[0] = '\0'; -#endif - } - else - { - result = xmalloc ((strlen (string) * 2) + 1); - - for (t = result; *string; ) - { - *t++ = CTLESC; - *t++ = *string++; - } - *t = '\0'; - } - return (result); -} - -/* De-quoted quoted characters in STRING. */ -char * -dequote_string (string) - char *string; -{ - register char *t; - char *result; - - result = xmalloc (strlen (string) + 1); - -#if 0 - if (QUOTED_NULL (string)) - { - result[0] = '\0'; - return (result); - } -#endif - - /* If no character in the string can be quoted, don't bother examining - each character. Just return a copy of the string passed to us. */ - if (strchr (string, CTLESC) == NULL) /* XXX */ - { /* XXX */ - strcpy (result, string); /* XXX */ - return (result); /* XXX */ - } - - for (t = result; *string; string++, t++) - { - if (*string == CTLESC) - { - string++; - - if (!*string) - break; - } - - *t = *string; - } - - *t = '\0'; - return (result); -} - -/* Quote the entire WORD_LIST list. */ -static WORD_LIST * -quote_list (list) - WORD_LIST *list; -{ - register WORD_LIST *w; - char *t; - - for (w = list; w; w = w->next) - { - t = w->word->word; - w->word->word = quote_string (t); - free (t); - w->word->flags |= W_QUOTED; - } - return list; -} - -/* **************************************************************** */ -/* */ -/* Functions for Removing Patterns */ -/* */ -/* **************************************************************** */ - -/* Remove the portion of PARAM matched by PATTERN according to OP, where OP - can have one of 4 values: - RP_LONG_LEFT remove longest matching portion at start of PARAM - RP_SHORT_LEFT remove shortest matching portion at start of PARAM - RP_LONG_RIGHT remove longest matching portion at end of PARAM - RP_SHORT_RIGHT remove shortest matching portion at end of PARAM -*/ - -#define RP_LONG_LEFT 1 -#define RP_SHORT_LEFT 2 -#define RP_LONG_RIGHT 3 -#define RP_SHORT_RIGHT 4 - -static char * -remove_pattern (param, pattern, op) - char *param, *pattern; - int op; -{ - register int len; - register char *end; - register char *p, *ret, c; - - if (param == NULL || *param == '\0') - return (param); - if (pattern == NULL || *pattern == '\0') /* minor optimization */ - return (savestring (param)); - - len = STRLEN (param); - end = param + len; - - switch (op) - { - case RP_LONG_LEFT: /* remove longest match at start */ - for (p = end; p >= param; p--) - { - c = *p; *p = '\0'; - if (fnmatch (pattern, param, 0) != FNM_NOMATCH) - { - *p = c; - return (savestring (p)); - } - *p = c; - } - break; - - case RP_SHORT_LEFT: /* remove shortest match at start */ - for (p = param; p <= end; p++) - { - c = *p; *p = '\0'; - if (fnmatch (pattern, param, 0) != FNM_NOMATCH) - { - *p = c; - return (savestring (p)); - } - *p = c; - } - break; - - case RP_LONG_RIGHT: /* remove longest match at end */ - for (p = param; p <= end; p++) - { - if (fnmatch (pattern, p, 0) != FNM_NOMATCH) - { - c = *p; *p = '\0'; - ret = savestring (param); - *p = c; - return (ret); - } - } - break; - - case RP_SHORT_RIGHT: /* remove shortest match at end */ - for (p = end; p >= param; p--) - { - if (fnmatch (pattern, p, 0) != FNM_NOMATCH) - { - c = *p; *p = '\0'; - ret = savestring (param); - *p = c; - return (ret); - } - } - break; - } - return (savestring (param)); /* no match, return original string */ -} - -/* Return 1 of the first character of STRING could match the first - character of pattern PAT. Used to avoid n2 calls to fnmatch(). */ -static int -match_pattern_char (pat, string) - char *pat, *string; -{ - register char *np; - int neg; - char c, c1; - - if (*string == 0) - return (0); - - switch (c = *pat++) - { - default: - return (*string == c); - case '\\': - return (*string == *pat); - case '?': - case '*': - return (1); - case '[': - for (np = pat; *np != ']'; np++); - if (*np == 0) - return (*string == '['); - if (neg = (*pat == '!' || *pat == '^')) - pat++; - for ( ; (c1 = *pat++) != ']'; ) - { - if (c1 == '\\') - c1 = *pat++; - if (c1 == 0) - return (0); - if (*pat != '-' || pat[1] == '\0' || pat[1] == ']') - return (neg ? *string != c1 : *string == c1); - if (c1 <= *string && *string <= pat[1]) - return (1); - pat += 2; - } - } -} - -/* Match PAT anywhere in STRING and return the match boundaries. - This returns 1 in case of a successful match, 0 otherwise. SP - and EP are pointers into the string where the match begins and - ends, respectively. MTYPE controls what kind of match is attempted. - MATCH_BEG and MATCH_END anchor the match at the beginning and end - of the string, respectively. The longest match is returned. */ -static int -match_pattern (string, pat, mtype, sp, ep) - char *string, *pat; - int mtype; - char **sp, **ep; -{ - int c; - register char *p, *p1; - char *end; - - if (string == 0 || *string == 0 || pat == 0 || *pat == 0) - return (0); - - end = string + STRLEN (string); - - switch (mtype) - { - case MATCH_ANY: - for (p = string; p <= end; p++) - { - if (match_pattern_char (pat, p)) - { - for (p1 = end; p1 >= p; p1--) - { - c = *p1; *p1 = '\0'; - if (fnmatch (pat, p, 0) == 0) - { - *p1 = c; - *sp = p; - *ep = p1; - return 1; - } - *p1 = c; - } - } - } - return (0); - - case MATCH_BEG: - if (match_pattern_char (pat, string) == 0) - return (0); - for (p = end; p >= string; p--) - { - c = *p; *p = '\0'; - if (fnmatch (pat, string, 0) == 0) - { - *p = c; - *sp = string; - *ep = p; - return 1; - } - *p = c; - } - return (0); - - case MATCH_END: - for (p = string; p <= end; p++) - if (fnmatch (pat, p, 0) == 0) - { - *sp = p; - *ep = end; - return 1; - } - return (0); - } - - return (0); -} - -/******************************************* - * * - * Functions to expand WORD_DESCs * - * * - *******************************************/ - -/* Expand WORD, performing word splitting on the result. This does - parameter expansion, command substitution, arithmetic expansion, - word splitting, and quote removal. */ - -WORD_LIST * -expand_word (word, quoted) - WORD_DESC *word; - int quoted; -{ - WORD_LIST *result, *tresult; - - tresult = call_expand_word_internal (word, quoted, (int *)NULL, (int *)NULL); - result = word_list_split (tresult); - dispose_words (tresult); - return (result ? dequote_list (result) : result); -} - -/* Expand WORD, but do not perform word splitting on the result. This - does parameter expansion, command substitution, arithmetic expansion, - and quote removal. */ -WORD_LIST * -expand_word_no_split (word, quoted) - WORD_DESC *word; - int quoted; -{ - WORD_LIST *result; - - result = call_expand_word_internal (word, quoted, (int *)NULL, (int *)NULL); - return (result ? dequote_list (result) : result); -} - -/* Perform shell expansions on WORD, but do not perform word splitting or - quote removal on the result. */ -WORD_LIST * -expand_word_leave_quoted (word, quoted) - WORD_DESC *word; - int quoted; -{ - return (call_expand_word_internal (word, quoted, (int *)NULL, (int *)NULL)); -} - -/* Return the value of a positional parameter. This handles values > 10. */ -char * -get_dollar_var_value (ind) - int ind; -{ - char *temp; - WORD_LIST *p; - - if (ind < 10) - temp = dollar_vars[ind] ? savestring (dollar_vars[ind]) : (char *)NULL; - else /* We want something like ${11} */ - { - ind -= 10; - for (p = rest_of_args; p && ind--; p = p->next) - ; - temp = p ? savestring (p->word->word) : (char *)NULL; - } - return (temp); -} - -#if defined (PROCESS_SUBSTITUTION) - -/* **************************************************************** */ -/* */ -/* Hacking Process Substitution */ -/* */ -/* **************************************************************** */ - -#if !defined (HAVE_DEV_FD) -/* Named pipes must be removed explicitly with `unlink'. This keeps a list - of FIFOs the shell has open. unlink_fifo_list will walk the list and - unlink all of them. add_fifo_list adds the name of an open FIFO to the - list. NFIFO is a count of the number of FIFOs in the list. */ -#define FIFO_INCR 20 -extern char *mktemp (); - -static char **fifo_list = (char **)NULL; -static int nfifo = 0; -static int fifo_list_size = 0; - -static void -add_fifo_list (pathname) - char *pathname; -{ - if (nfifo >= fifo_list_size - 1) - { - fifo_list_size += FIFO_INCR; - fifo_list = (char **)xrealloc (fifo_list, - fifo_list_size * sizeof (char *)); - } - - fifo_list[nfifo++] = savestring (pathname); -} - -void -unlink_fifo_list () -{ - if (nfifo == 0) - return; - - while (nfifo--) - { - unlink (fifo_list[nfifo]); - free (fifo_list[nfifo]); - fifo_list[nfifo] = (char *)NULL; - } - nfifo = 0; -} - -static char * -make_named_pipe () -{ - char *tname; - - tname = mktemp (savestring ("/tmp/sh-np-XXXXXX")); - if (mkfifo (tname, 0666) < 0) - { - free (tname); - return ((char *)NULL); - } - - add_fifo_list (tname); - return (tname); -} - -#else /* HAVE_DEV_FD */ - -/* DEV_FD_LIST is a bitmap of file descriptors attached to pipes the shell - has open to children. NFDS is a count of the number of bits currently - set in DEV_FD_LIST. TOTFDS is a count of the highest possible number - of open files. */ -static char *dev_fd_list = (char *)NULL; -static int nfds = 0; -static int totfds; /* The highest possible number of open files. */ - -static void -add_fifo_list (fd) - int fd; -{ - if (!dev_fd_list || fd >= totfds) - { - int zero; - - totfds = getdtablesize (); - if (totfds < 0 || totfds > 256) - totfds = 256; - if (fd > totfds) - totfds = fd + 2; - - zero = dev_fd_list == (char *) NULL; - dev_fd_list = xrealloc (dev_fd_list, totfds); - if (zero) - bzero (dev_fd_list, totfds); - /* XXX - should zero out new portion of list here - XXX */ - } - - dev_fd_list[fd] = 1; - nfds++; -} - -void -unlink_fifo_list () -{ - register int i; - - if (nfds == 0) - return; - - for (i = 0; nfds && i < totfds; i++) - if (dev_fd_list[i]) - { - close (i); - dev_fd_list[i] = 0; - nfds--; - } - - nfds = 0; -} - -#if defined (NOTDEF) -print_dev_fd_list () -{ - register int i; - - fprintf (stderr, "pid %d: dev_fd_list:", getpid ()); - fflush (stderr); - - for (i = 0; i < totfds; i++) - { - if (dev_fd_list[i]) - fprintf (stderr, " %d", i); - } - fprintf (stderr, "\n"); -} -#endif /* NOTDEF */ - -static char * -make_dev_fd_filename (fd) - int fd; -{ - char *ret; - - ret = xmalloc (16); - sprintf (ret, "/dev/fd/%d", fd); - add_fifo_list (fd); - return (ret); -} - -#endif /* HAVE_DEV_FD */ - -/* Return a filename that will open a connection to the process defined by - executing STRING. HAVE_DEV_FD, if defined, means open a pipe and return - a filename in /dev/fd corresponding to a descriptor that is one of the - ends of the pipe. If not defined, we use named pipes on systems that have - them. Systems without /dev/fd and named pipes are out of luck. - - OPEN_FOR_READ_IN_CHILD, if 1, means open the named pipe for reading or - use the read end of the pipe and dup that file descriptor to fd 0 in - the child. If OPEN_FOR_READ_IN_CHILD is 0, we open the named pipe for - writing or use the write end of the pipe in the child, and dup that - file descriptor to fd 1 in the child. The parent does the opposite. */ - -static char * -process_substitute (string, open_for_read_in_child) - char *string; - int open_for_read_in_child; -{ - char *pathname; - int fd, result; - pid_t old_pid, pid; -#if defined (HAVE_DEV_FD) - int parent_pipe_fd, child_pipe_fd; - int fildes[2]; -#endif /* HAVE_DEV_FD */ -#if defined (JOB_CONTROL) - pid_t old_pipeline_pgrp; -#endif - - if (!string || !*string) - return ((char *)NULL); - -#if !defined (HAVE_DEV_FD) - pathname = make_named_pipe (); -#else /* HAVE_DEV_FD */ - if (pipe (fildes) < 0) - { - internal_error ("can't make pipes for process substitution: %s", - strerror (errno)); - return ((char *)NULL); - } - /* If OPEN_FOR_READ_IN_CHILD == 1, we want to use the write end of - the pipe in the parent, otherwise the read end. */ - parent_pipe_fd = fildes[open_for_read_in_child]; - child_pipe_fd = fildes[1 - open_for_read_in_child]; - pathname = make_dev_fd_filename (parent_pipe_fd); -#endif /* HAVE_DEV_FD */ - - if (!pathname) - { - internal_error ("cannot make pipe for process subsitution: %s", - strerror (errno)); - return ((char *)NULL); - } - - old_pid = last_made_pid; - -#if defined (JOB_CONTROL) - old_pipeline_pgrp = pipeline_pgrp; - pipeline_pgrp = shell_pgrp; - cleanup_the_pipeline (); -#endif /* JOB_CONTROL */ - - pid = make_child ((char *)NULL, 1); - if (pid == 0) - { - reset_terminating_signals (); /* XXX */ - /* Cancel traps, in trap.c. */ - restore_original_signals (); - setup_async_signals (); - subshell_environment++; - } - -#if defined (JOB_CONTROL) - set_sigchld_handler (); - stop_making_children (); - pipeline_pgrp = old_pipeline_pgrp; -#endif /* JOB_CONTROL */ - - if (pid < 0) - { - internal_error ("cannot make a child for process substitution: %s", - strerror (errno)); - free (pathname); -#if defined (HAVE_DEV_FD) - close (parent_pipe_fd); - close (child_pipe_fd); -#endif /* HAVE_DEV_FD */ - return ((char *)NULL); - } - - if (pid > 0) - { - last_made_pid = old_pid; - -#if defined (JOB_CONTROL) && defined (PGRP_PIPE) - close_pgrp_pipe (); -#endif /* JOB_CONTROL && PGRP_PIPE */ - -#if defined (HAVE_DEV_FD) - close (child_pipe_fd); -#endif /* HAVE_DEV_FD */ - - return (pathname); - } - - set_sigint_handler (); - -#if defined (JOB_CONTROL) - set_job_control (0); -#endif /* JOB_CONTROL */ - -#if !defined (HAVE_DEV_FD) - /* Open the named pipe in the child. */ - fd = open (pathname, open_for_read_in_child ? O_RDONLY : O_WRONLY); - if (fd < 0) - { - internal_error ("cannot open named pipe %s for %s: %s", pathname, - open_for_read_in_child ? "reading" : "writing", strerror (errno)); - exit (127); - } -#else /* HAVE_DEV_FD */ - fd = child_pipe_fd; -#endif /* HAVE_DEV_FD */ - - if (dup2 (fd, open_for_read_in_child ? 0 : 1) < 0) - { - internal_error ("cannot duplicate named pipe %s as fd %d: %s", - pathname, open_for_read_in_child ? 0 : 1, strerror (errno)); - exit (127); - } - - close (fd); - - /* Need to close any files that this process has open to pipes inherited - from its parent. */ - if (current_fds_to_close) - { - close_fd_bitmap (current_fds_to_close); - current_fds_to_close = (struct fd_bitmap *)NULL; - } - -#if defined (HAVE_DEV_FD) - /* Make sure we close the parent's end of the pipe and clear the slot - in the fd list so it is not closed later, if reallocated by, for - instance, pipe(2). */ - close (parent_pipe_fd); - dev_fd_list[parent_pipe_fd] = 0; -#endif /* HAVE_DEV_FD */ - - result = parse_and_execute (string, "process substitution", 0); - -#if !defined (HAVE_DEV_FD) - /* Make sure we close the named pipe in the child before we exit. */ - close (open_for_read_in_child ? 0 : 1); -#endif /* !HAVE_DEV_FD */ - - exit (result); - /*NOTREACHED*/ -} -#endif /* PROCESS_SUBSTITUTION */ - -/* Perform command substitution on STRING. This returns a string, - possibly quoted. */ -static char * -command_substitute (string, quoted) - char *string; - int quoted; -{ - pid_t pid, old_pid, old_pipeline_pgrp; - char *istring; - int istring_index, istring_size, c, result, fildes[2]; - FILE *istream; - - istring_index = istring_size = 0; - - /* Don't fork () if there is no need to. In the case of no command to - run, just return NULL. */ - if (!string || !*string || (string[0] == '\n' && !string[1])) - return ((char *)NULL); - - /* Pipe the output of executing STRING into the current shell. */ - if (pipe (fildes) < 0) - { - internal_error ("Can't make pipes for command substitution!"); - goto error_exit; - } - - old_pid = last_made_pid; -#if defined (JOB_CONTROL) - old_pipeline_pgrp = pipeline_pgrp; - pipeline_pgrp = shell_pgrp; - cleanup_the_pipeline (); -#endif - - istring= (char *)NULL; - pid = make_child ((char *)NULL, 0); - if (pid == 0) - /* Reset the signal handlers in the child, but don't free the - trap strings. */ - reset_signal_handlers (); - -#if defined (JOB_CONTROL) - set_sigchld_handler (); - stop_making_children (); - pipeline_pgrp = old_pipeline_pgrp; -#endif /* JOB_CONTROL */ - - if (pid < 0) - { - internal_error ("Can't make a child for command substitution: %s", - strerror (errno)); - error_exit: - - FREE (istring); - close (fildes[0]); - close (fildes[1]); - return ((char *)NULL); - } - - if (pid == 0) - { - set_sigint_handler (); /* XXX */ -#if defined (JOB_CONTROL) - set_job_control (0); -#endif - if (dup2 (fildes[1], 1) < 0) - { - internal_error - ("command_substitute: cannot duplicate pipe as fd 1: %s", - strerror (errno)); - exit (EXECUTION_FAILURE); - } - - /* If standard output is closed in the parent shell - (such as after `exec >&-'), file descriptor 1 will be - the lowest available file descriptor, and end up in - fildes[0]. This can happen for stdin and stderr as well, - but stdout is more important -- it will cause no output - to be generated from this command. */ - if ((fildes[1] != fileno (stdin)) && - (fildes[1] != fileno (stdout)) && - (fildes[1] != fileno (stderr))) - close (fildes[1]); - - if ((fildes[0] != fileno (stdin)) && - (fildes[0] != fileno (stdout)) && - (fildes[0] != fileno (stderr))) - close (fildes[0]); - - /* The currently executing shell is not interactive. */ - interactive = 0; - - /* Command substitution does not inherit the -e flag. */ - exit_immediately_on_error = 0; - - remove_quoted_escapes (string); - - startup_state = 2; /* see if we can avoid a fork */ - /* Give command substitution a place to jump back to on failure, - so we don't go back up to main (). */ - result = setjmp (top_level); - - if (result == EXITPROG) - exit (last_command_exit_value); - else if (result) - exit (EXECUTION_FAILURE); - else - exit (parse_and_execute (string, "command substitution", -1)); - } - else - { - istream = fdopen (fildes[0], "r"); - -#if defined (JOB_CONTROL) && defined (PGRP_PIPE) - close_pgrp_pipe (); -#endif /* JOB_CONTROL && PGRP_PIPE */ - - close (fildes[1]); - - if (!istream) - { - internal_error ("Can't reopen pipe to command substitution (fd %d): %s", - fildes[0], strerror (errno)); - goto error_exit; - } - - /* Read the output of the command through the pipe. */ - while (1) - { -#if !defined (HAVE_RESTARTABLE_SYSCALLS) - c = getc_with_restart (istream); -#else - c = getc (istream); -#endif /* HAVE_RESTARTABLE_SYSCALLS */ - - if (c == EOF) - break; - - /* Add the character to ISTRING. */ - if (istring_index + 2 >= istring_size) - { - while (istring_index + 2 >= istring_size) - istring_size += DEFAULT_ARRAY_SIZE; - istring = xrealloc (istring, istring_size); - } - - if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || c == CTLESC /* || c == CTLNUL */) - istring[istring_index++] = CTLESC; - - istring[istring_index++] = c; - } - - if (istring) - istring[istring_index] = '\0'; - - fclose (istream); - close (fildes[0]); - - last_command_exit_value = wait_for (pid); - last_command_subst_pid = pid; - last_made_pid = old_pid; - -#if defined (JOB_CONTROL) - /* If last_command_exit_value > 128, then the substituted command - was terminated by a signal. If that signal was SIGINT, then send - SIGINT to ourselves. This will break out of loops, for instance. */ - if (last_command_exit_value == (128 + SIGINT)) - kill (getpid (), SIGINT); - - /* wait_for gives the terminal back to shell_pgrp. If some other - process group should have it, give it away to that group here. */ - if (interactive && pipeline_pgrp != (pid_t)0) - give_terminal_to (pipeline_pgrp); -#endif /* JOB_CONTROL */ - - /* If we read no output, just return now and save ourselves some - trouble. */ - if (istring_index == 0) - goto error_exit; - - /* Strip trailing newlines from the output of the command. */ - if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) - { - while (istring_index > 0) - { - if (istring[istring_index - 1] == '\n') - { - --istring_index; - - /* If the newline was quoted, remove the quoting char. */ - if (istring[istring_index - 1] == CTLESC) - --istring_index; - } - else - break; - } - istring[istring_index] = '\0'; - } - else - strip_trailing (istring, 1); - - return (istring); - } -} - -/******************************************************** - * * - * Utility functions for parameter expansion * - * * - ********************************************************/ - -static int -getpatspec (c, value) - int c; - char *value; -{ - if (c == '#') - return ((*value == '#') ? RP_LONG_LEFT : RP_SHORT_LEFT); - else /* c == '%' */ - return ((*value == '%') ? RP_LONG_RIGHT : RP_SHORT_RIGHT); -} - -/* Posix.2 says that the WORD should be run through tilde expansion, - parameter expansion, command substitution and arithmetic expansion. - This leaves the result quoted, so quote_string_for_globbing () has - to be called to fix it up for fnmatch (). If QUOTED is non-zero, - it means that the entire expression was enclosed in double quotes. - This means that quoting characters in the pattern do not make any - special pattern characters quoted. For example, the `*' in the - following retains its special meaning: "${foo#'*'}". */ -static char * -getpattern (value, quoted, expandpat) - char *value; - int quoted, expandpat; -{ - char *pat, *tword; - WORD_LIST *l; - int i; - - tword = strchr (value, '~') ? bash_tilde_expand (value) : savestring (value); - - /* expand_string_internal () leaves WORD quoted and does not perform - word splitting. */ - if (expandpat && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && *tword) - { - i = 0; - pat = string_extract_double_quoted (tword, &i, 1); - free (tword); - tword = pat; - } - - /* There is a problem here: how to handle single or double quotes in the - pattern string when the whole expression is between double quotes? */ -#if 0 - l = *tword ? expand_string_for_rhs (tword, quoted, (int *)NULL, (int *)NULL) -#else - l = *tword ? expand_string_for_rhs (tword, - (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? Q_NOQUOTE : quoted, - (int *)NULL, (int *)NULL) -#endif - : (WORD_LIST *)0; - free (tword); - pat = string_list (l); - dispose_words (l); - if (pat) - { - tword = quote_string_for_globbing (pat, 1); - free (pat); - pat = tword; - } - return (pat); -} - -/* Handle removing a pattern from a string as a result of ${name%[%]value} - or ${name#[#]value}. */ -static char * -parameter_brace_remove_pattern (value, temp, c, quoted) - char *value, *temp; - int c, quoted; -{ - int patspec; - char *pattern, *tword; - - patspec = getpatspec (c, value); - if (patspec == RP_LONG_LEFT || patspec == RP_LONG_RIGHT) - value++; - - pattern = getpattern (value, quoted, 1); - - tword = remove_pattern (temp, pattern, patspec); - - FREE (pattern); - return (tword); -} - -static char * -list_remove_pattern (list, pattern, patspec, type, quoted) - WORD_LIST *list; - char *pattern; - int patspec, type, quoted; -{ - WORD_LIST *new, *l; - WORD_DESC *w; - char *tword; - - for (new = (WORD_LIST *)NULL, l = list; l; l = l->next) - { - tword = remove_pattern (l->word->word, pattern, patspec); - w = make_bare_word (tword); - new = make_word_list (w, new); - } - - l = REVERSE_LIST (new, WORD_LIST *); - if (type == '*') - tword = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? string_list_dollar_star (l) : string_list (l); - else - tword = string_list ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? quote_list (l) : l); - - dispose_words (l); - return (tword); -} - -static char * -parameter_list_remove_pattern (value, type, c, quoted) - char *value; - int type, c, quoted; -{ - int patspec; - char *pattern; - - patspec = getpatspec (c, value); - if (patspec == RP_LONG_LEFT || patspec == RP_LONG_RIGHT) - value++; - - pattern = getpattern (value, quoted, 1); - - return (list_remove_pattern (list_rest_of_args (), pattern, patspec, type, quoted)); -} - -#if defined (ARRAY_VARS) -static char * -array_remove_pattern (value, aspec, c, quoted) - char *value, *aspec; - int c, quoted; -{ - SHELL_VAR *var; - int len, ind, patspec; - char *ret, *t, *pattern; - WORD_LIST *l; - - var = array_variable_part (aspec, &t, &len); - if (var == 0) - return ((char *)NULL); - - patspec = getpatspec (c, value); - if (patspec == RP_LONG_LEFT || patspec == RP_LONG_RIGHT) - value++; - - pattern = getpattern (value, quoted, 1); - - if (ALL_ELEMENT_SUB (t[0]) && t[1] == ']') - { - if (array_p (var) == 0) - { - report_error ("%s: bad array subscript", aspec); - return ((char *)NULL); - } - l = array_to_word_list (array_cell (var)); - if (l == 0) - return ((char *)NULL); - ret = list_remove_pattern (l, pattern, patspec, t[0], quoted); - dispose_words (l); - } - else - { - ind = array_expand_index (t, len); - if (ind < 0) - { - report_error ("%s: bad array subscript", aspec); - return ((char *)NULL); - } - if (array_p (var) == 0 && ind != 0) - return ((char *)NULL); - - t = array_p (var) ? array_reference (array_cell (var), ind) : value_cell (var); - ret = remove_pattern (t, pattern, patspec); - if (ret) - quote_escapes (ret); - } - return ret; -} - -int -valid_array_reference (name) - char *name; -{ - char *t; - int r, len; - - t = strchr (name, '['); - if (t) - { - *t = '\0'; - r = legal_identifier (name); - *t = '['; - if (r == 0) - return 0; - /* Check for a properly-terminated non-blank subscript. */ - len = skipsubscript (t, 0); - if (t[len] != ']' || len == 1) - return 0; - for (r = 1; r < len; r++) - if (whitespace (t[r]) == 0) - return 1; - return 0; - } - return 0; -} - -/* Expand the array index beginning at S and extending LEN characters. */ -int -array_expand_index (s, len) - char *s; - int len; -{ - char *exp, *t; - int val; - - exp = xmalloc (len); - strncpy (exp, s, len - 1); - exp[len - 1] = '\0'; - t = maybe_expand_string (exp, 0, expand_string); - this_command_name = (char *)NULL; - val = evalexp (t); - free (t); - free (exp); - return val; -} - -/* Return the variable specified by S without any subscript. If non-null, - return the index of the start of the subscript in *SUBP. If non-null, - the length of the subscript is returned in *LENP. */ -SHELL_VAR * -array_variable_part (s, subp, lenp) - char *s, **subp; - int *lenp; -{ - char *t; - int ind, ni; - SHELL_VAR *var; - - t = strchr (s, '['); - ind = t - s; - ni = skipsubscript (s, ind); - if (ni <= ind + 1 || s[ni] != ']') - { - report_error ("%s: bad array subscript", s); - return ((SHELL_VAR *)NULL); - } - - *t = '\0'; - var = find_variable (s); - *t++ = '['; - - if (subp) - *subp = t; - if (lenp) - *lenp = ni - ind; - return var; -} - -static char * -array_value_internal (s, quoted, allow_all) - char *s; - int quoted, allow_all; -{ - int len, ind; - char *retval, *t; - WORD_LIST *l; - SHELL_VAR *var; - - var = array_variable_part (s, &t, &len); - - if (var == 0) - return (char *)NULL; - - if (ALL_ELEMENT_SUB (t[0]) && t[1] == ']') - { - if (array_p (var) == 0 || allow_all == 0) - { - report_error ("%s: bad array subscript", s); - return ((char *)NULL); - } - l = array_to_word_list (array_cell (var)); - if (l == (WORD_LIST *)NULL) - return ((char *) NULL); - - if (t[0] == '*') /* ${name[*]} */ - retval = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? string_list_dollar_star (l) : string_list (l); - else /* ${name[@]} */ - retval = string_list ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? quote_list (l) : l); - - dispose_words (l); - } - else - { - ind = array_expand_index (t, len); - if (ind < 0) - { - report_error ("%s: bad array subscript", var->name); - return ((char *)NULL); - } - if (array_p (var) == 0) - return (ind == 0 ? value_cell (var) : (char *)NULL); - retval = array_reference (array_cell (var), ind); - if (retval) - retval = quote_escapes (retval); - } - - return retval; -} - -static char * -array_value (s, quoted) - char *s; - int quoted; -{ - return (array_value_internal (s, quoted, 1)); -} - -/* Return the value of the array indexing expression S as a single string. - If ALLOW_ALL is 0, do not allow `@' and `*' subscripts. This is used - by other parts of the shell such as the arithmetic expression evaluator - in expr.c. */ -char * -get_array_value (s, allow_all) - char *s; - int allow_all; -{ - return (array_value_internal (s, 0, allow_all)); -} - -static int -array_length_reference (s) - char *s; -{ - int ind, len; - char *t; - ARRAY *array; - SHELL_VAR *var; - - var = array_variable_part (s, &t, &len); - - if (var == 0 || array_p (var) == 0) - return (0); - - array = array_cell (var); - - if (ALL_ELEMENT_SUB (t[0]) && t[1] == ']') - return (array_num_elements (array)); - - ind = array_expand_index (t, len); - if (ind < 0) - { - report_error ("%s: bad array subscript", t); - return (0); - } - t = array_reference (array, ind); - len = STRLEN (t); - - return (len); -} -#endif /* ARRAY_VARS */ - -static int -valid_brace_expansion_word (name, var_is_special) - char *name; - int var_is_special; -{ - if (digit (*name) && all_digits (name)) - return 1; - else if (var_is_special) - return 1; -#if defined (ARRAY_VARS) - else if (valid_array_reference (name)) - return 1; -#endif /* ARRAY_VARS */ - else if (legal_identifier (name)) - return 1; - else - return 0; -} - -/* Parameter expand NAME, and return a new string which is the expansion, - or NULL if there was no expansion. - VAR_IS_SPECIAL is non-zero if NAME is one of the special variables in - the shell, e.g., "@", "$", "*", etc. QUOTED, if non-zero, means that - NAME was found inside of a double-quoted expression. */ -static char * -parameter_brace_expand_word (name, var_is_special, quoted) - char *name; - int var_is_special, quoted; -{ - char *temp, *tt; - int arg_index; - SHELL_VAR *var; - WORD_LIST *l; - - /* Handle multiple digit arguments, as in ${11}. */ - if (digit (*name)) - { - arg_index = atoi (name); - temp = get_dollar_var_value (arg_index); - } - else if (var_is_special) /* ${@} */ - { - tt = xmalloc (2 + strlen (name)); - tt[0] = '$'; - strcpy (tt + 1, name); - l = expand_string_leave_quoted (tt, quoted); - free (tt); - temp = string_list (l); - dispose_words (l); - } -#if defined (ARRAY_VARS) - else if (valid_array_reference (name)) - { - temp = array_value (name, quoted); - } -#endif - else if (var = find_variable (name)) - { - if (var && invisible_p (var) == 0) - { -#if defined (ARRAY_VARS) - temp = array_p (var) ? array_reference (array_cell (var), 0) : value_cell (var); -#else - temp = value_cell (var); -#endif - - if (temp) - temp = quote_escapes (temp); - } - else - temp = (char *)NULL; - } - else - temp = (char *)NULL; - - return (temp); -} - -/* Expand an indirect reference to a variable: ${!NAME} expands to the - value of the variable whose name is the value of NAME. */ -static char * -parameter_brace_expand_indir (name, var_is_special, quoted) - char *name; - int var_is_special, quoted; -{ - char *temp, *t; - - t = parameter_brace_expand_word (name, var_is_special, quoted); - if (t == 0) - return (t); - temp = parameter_brace_expand_word (t, t[0] == '@' && t[1] == '\0', quoted); - free (t); - return temp; -} - -/* Expand the right side of a parameter expansion of the form ${NAMEcVALUE}, - depending on the value of C, the separating character. C can be one of - "-", "+", or "=". QUOTED is true if the entire brace expression occurs - between double quotes. */ -static char * -parameter_brace_expand_rhs (name, value, c, quoted, qdollaratp, hasdollarat) - char *name, *value; - int c, quoted, *qdollaratp, *hasdollarat; -{ - WORD_LIST *l; - char *t, *t1, *temp; - int hasdol; - - temp = (*value == '~' || (strchr (value, '~') && unquoted_substring ("=~", value))) - ? bash_tilde_expand (value) - : savestring (value); - - /* If the entire expression is between double quotes, we want to treat - the value as a double-quoted string, with the exception that we strip - embedded unescaped double quotes. */ - if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && *temp) - { - hasdol = 0; - t = string_extract_double_quoted (temp, &hasdol, 1); - free (temp); - temp = t; - } - - hasdol = 0; - /* XXX was 0 not quoted */ - l = *temp ? expand_string_for_rhs (temp, quoted, &hasdol, (int *)NULL) - : (WORD_LIST *)0; - if (hasdollarat) - *hasdollarat = hasdol || (l && l->next); - free (temp); - if (l) - { - /* The expansion of TEMP returned something. We need to treat things - slightly differently if HASDOL is non-zero. */ - temp = string_list (l); - /* If l->next is not null, we know that TEMP contained "$@", since that - is the only expansion that creates more than one word. */ - if ((hasdol && quoted) || l->next) - *qdollaratp = 1; - dispose_words (l); - } - else if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && hasdol) - { - /* The brace expansion occurred between double quotes and there was - a $@ in TEMP. It does not matter if the $@ is quoted, as long as - it does not expand to anything. In this case, we want to return - a quoted empty string. */ - temp = xmalloc (2); -#if 0 - temp[0] = CTLNUL; - temp[1] = '\0'; -#else - temp[0] = '\0'; -#endif - } - else - temp = (char *)NULL; - - if (c == '-' || c == '+') - return (temp); - - /* c == '=' */ - t = temp ? savestring (temp) : savestring (""); - t1 = dequote_string (t); - free (t); - bind_variable (name, t1); - free (t1); - return (temp); -} - -/* Deal with the right hand side of a ${name:?value} expansion in the case - that NAME is null or not set. If VALUE is non-null it is expanded and - used as the error message to print, otherwise a standard message is - printed. */ -static void -parameter_brace_expand_error (name, value) - char *name, *value; -{ - WORD_LIST *l; - char *temp; - - if (value && *value) - { - l = expand_string (value, 0); - temp = string_list (l); - report_error ("%s: %s", name, temp ? temp : value); - FREE (temp); - dispose_words (l); - } - else - report_error ("%s: parameter null or not set", name); - - /* Free the data we have allocated during this expansion, since we - are about to longjmp out. */ - free (name); - FREE (value); -} - -/* Return 1 if NAME is something for which parameter_brace_expand_length is - OK to do. */ -static int -valid_length_expression (name) - char *name; -{ - return (!name[1] || /* ${#} */ - ((name[1] == '@' || name[1] == '*') && !name[2]) || /* ${#@}, ${#*} */ - (digit (name[1]) && all_digits (name + 1)) || /* ${#11} */ -#if defined (ARRAY_VARS) - valid_array_reference (name + 1) || /* ${#a[7]} */ -#endif - legal_identifier (name + 1)); /* ${#PS1} */ -} - -/* Handle the parameter brace expansion that requires us to return the - length of a parameter. */ -static int -parameter_brace_expand_length (name) - char *name; -{ - char *t, *newname; - int number; - WORD_LIST *list; -#if defined (ARRAY_VARS) - SHELL_VAR *var; -#endif - - if (name[1] == '\0') /* ${#} */ - number = number_of_args (); -#if defined (ARRAY_VARS) - else if (valid_array_reference (name + 1)) - number = array_length_reference (name + 1); -#endif /* ARRAY_VARS */ - else if (name[1] != '*' && name[1] != '@') - { - number = 0; - - if (digit (name[1])) /* ${#1} */ - { - t = get_dollar_var_value (atoi (name + 1)); - 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 - else /* ${#PS1} */ - { - newname = savestring (name); - newname[0] = '$'; - list = expand_string (newname, 0); - t = list ? string_list (list) : (char *)NULL; - free (newname); - if (list) - dispose_words (list); - - number = STRLEN (t); - FREE (t); - } - } - else /* ${#@} and ${#*} */ - number = number_of_args (); - - return (number); -} - -/* Verify and limit the start and end of the desired substring. If - VTYPE == 0, a regular shell variable is being used; if it is 1, - then the positional paramters are being used; if it is 2, then - VALUE is really a pointer to an array variable that should be used. */ -static int -verify_substring_values (value, substr, vtype, e1p, e2p) - char *value, *substr; - int vtype, *e1p, *e2p; -{ - char *t, *temp1; - int len; -#if defined (ARRAY_VARS) - ARRAY *a; -#endif - - t = strchr (substr, ':'); - if (t) - *t = '\0'; - temp1 = maybe_expand_string (substr, 1, expand_string); - *e1p = evalexp (temp1); - free (temp1); - - switch (vtype) - { - case 0: - len = strlen (value); - break; - case 1: - len = number_of_args () + 1; - break; -#if defined (ARRAY_VARS) - case 2: - a = (ARRAY *)value; - len = array_num_elements (a) + 1; - break; -#endif - } - - if (*e1p < 0) /* negative offsets count from end */ - *e1p += len; - - if (t) - { - t++; - temp1 = maybe_expand_string (t, 1, expand_string); - t[-1] = ':'; - *e2p = evalexp (temp1); - free (temp1); - if (*e2p < 0) - { - internal_error ("%s: substring expression < 0", t); - return (0); - } - *e2p += *e1p; /* want E2 chars starting at E1 */ - if (*e2p > len) - *e2p = len; - } - else - *e2p = len; - - return (1); -} - -/* Return a string containing the positional parameters from START to - END, inclusive. */ -static char * -pos_params (start, end, quoted) - int start, end, quoted; -{ - WORD_LIST *save, *params, *h, *t; - char *ret; - int i; - - save = params = list_rest_of_args (); - if (save == 0) - return ((char *)NULL); - - for (i = 1; params && i < start; i++) - params = params->next; - if (params == 0) - return ((char *)NULL); - for (h = t = params; params && i < end; i++) - { - t = params; - params = params->next; - } - - t->next = (WORD_LIST *)NULL; - ret = string_list ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? quote_list (h) : h); - t->next = params; - - dispose_words (save); - return (ret); -} - -#define VT_VARIABLE 0 -#define VT_POSPARMS 1 -#define VT_ARRAYVAR 2 - -/* Return the type of variable specified by VARNAME (simple variable, - positional param, or array variable. Also return the value specified - by VARNAME (value of a variable or a reference to an array element). */ -static int -get_var_and_type (varname, value, varp, valp) - char *varname, *value; - SHELL_VAR **varp; - char **valp; -{ - int vtype; - char *temp; -#if defined (ARRAY_VARS) - SHELL_VAR *v; -#endif - - vtype = varname[0] == '@' && varname[1] == '\0'; /* VT_POSPARMS */ - *varp = (SHELL_VAR *)NULL; - -#if defined (ARRAY_VARS) - if (valid_array_reference (varname)) - { - v = array_variable_part (varname, &temp, (int *)0); - if (v && array_p (v)) - { - if (temp[0] == '@' && temp[1] == ']') - { - vtype = VT_ARRAYVAR; - *valp = (char *)array_cell (v); - } - else - { - vtype = VT_VARIABLE; - *valp = array_value (varname, 1); - } - *varp = v; - } - else - return -1; - } - else if ((v = find_variable (varname)) && array_p (v)) - { - vtype = VT_VARIABLE; - *varp = v; - *valp = array_reference (array_cell (v), 0); - } - else -#endif - *valp = value; - - return vtype; -} - -/* Process a variable substring expansion: ${name:e1[:e2]}. If VARNAME - is `@', use the positional parameters; otherwise, use the value of - VARNAME. If VARNAME is an array variable, use the array elements. */ - -static char * -parameter_brace_substring (varname, value, substr, quoted) - char *varname, *value, *substr; - int quoted; -{ - int e1, e2, vtype; - char *temp, *val; - SHELL_VAR *v; - - if (value == 0) - return ((char *)NULL); - - this_command_name = varname; - - vtype = get_var_and_type (varname, value, &v, &val); - if (vtype == -1) - return ((char *)NULL); - - if (verify_substring_values (val, substr, vtype, &e1, &e2) == 0) - return (&expand_param_error); - - switch (vtype) - { - case VT_VARIABLE: - temp = substring (value, e1, e2); - break; - case VT_POSPARMS: - temp = pos_params (e1, e2, quoted); - break; -#if defined (ARRAY_VARS) - case VT_ARRAYVAR: - temp = array_subrange (array_cell (v), e1, e2, quoted); - break; -#endif - } - - return temp; -} - -char * -pat_subst (string, pat, rep, mflags) - char *string, *pat, *rep; - int mflags; -{ - char *ret, *s, *e, *str; - int rsize, rptr, l, replen, mtype; - - ret = xmalloc (rsize = 64); - ret[0] = '\0'; - - mtype = mflags & MATCH_TYPEMASK; - - for (replen = STRLEN (rep), rptr = 0, str = string;;) - { - if (match_pattern (str, pat, mtype, &s, &e) == 0) - break; - l = s - str; - if ((rptr + l + replen) >= rsize) - { - while ((rptr + l + replen) >= rsize) - rsize += 64; - ret = xrealloc (ret, rsize); - } - /* OK, now copy the leading unmatched portion of the string (from - str to s) to ret starting at rptr (the current offset). Then copy - the replacement string at ret + rptr + (s - str). Increment - rptr (if necessary) and str and go on. */ - if (l) - { - strncpy (ret + rptr, str, l); - rptr += l; - } - if (replen) - { - strncpy (ret + rptr, rep, replen); - rptr += replen; - } - str = e; /* e == end of match */ - if (((mflags & MATCH_GLOBREP) == 0) || mtype != MATCH_ANY) - break; - } - - /* Now copy the unmatched portion of the input string */ - if (*str) - strcpy (ret + rptr, str); - else - ret[rptr] = '\0'; - - return ret; -} - -/* Do pattern match and replacement on the positional parameters. */ -static char * -pos_params_pat_subst (string, pat, rep, mflags) - char *string, *pat, *rep; - int mflags; -{ - WORD_LIST *save, *params; - WORD_DESC *w; - char *ret; - - save = params = list_rest_of_args (); - if (save == 0) - return ((char *)NULL); - - for ( ; params; params = params->next) - { - ret = pat_subst (params->word->word, pat, rep, mflags); - w = make_bare_word (ret); - dispose_word (params->word); - params->word = w; - FREE (ret); - } - - ret = string_list ((mflags & MATCH_QUOTED) ? quote_list (save) : save); - dispose_words (save); - - return (ret); -} - -static char * -parameter_brace_patsub (varname, value, patsub, quoted) - char *varname, *value, *patsub; - int quoted; -{ - int vtype, mflags; - char *val, *temp, *pat, *rep, *p; - SHELL_VAR *v; - - if (value == 0) - return ((char *)NULL); - - this_command_name = varname; - - vtype = get_var_and_type (varname, value, &v, &val); - if (vtype == -1) - return ((char *)NULL); - - mflags = 0; - if (*patsub == '/') - { - mflags |= MATCH_GLOBREP; - patsub++; - } - - if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) - mflags |= MATCH_QUOTED; - - if (rep = strchr (patsub, '/')) - *rep++ = '\0'; - else - rep = (char *)NULL; - - if (rep && *rep == '\0') - rep = (char *)NULL; - - /* Expand PAT and REP for command, variable and parameter, arithmetic, - and process substitution. Also perform quote removal. Do not - perform word splitting or filename generation. */ - pat = maybe_expand_string (patsub, quoted, expand_string_unsplit); - if (rep) - rep = maybe_expand_string (rep, quoted, expand_string_unsplit); - - p = pat; - if (pat[0] == '#') - { - mflags |= MATCH_BEG; - p++; - } - else if (pat[0] == '%') - { - mflags |= MATCH_END; - p++; - } - else - mflags |= MATCH_ANY; - - /* OK, we now want to substitute REP for PAT in VAL. If GLOBAL is 1, - the substitution is done everywhere, otherwise only the first - occurrence of PAT is replaced. */ - switch (vtype) - { - case VT_VARIABLE: - temp = pat_subst (val, p, rep, mflags); - break; - case VT_POSPARMS: - temp = pos_params_pat_subst (val, p, rep, mflags); - break; -#if defined (ARRAY_VARS) - case VT_ARRAYVAR: - temp = array_pat_subst (array_cell (v), p, rep, mflags); - break; -#endif - } - - FREE (pat); - FREE (rep); - - return temp; -} - -/* ${[#][!]name[[:]#[#]%[%]-=?+[word][:e1[:e2]]]} */ -static char * -parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_dollar_at) - char *string; - int *indexp, quoted, *quoted_dollar_atp, *contains_dollar_at; -{ - int check_nullness, var_is_set, var_is_null, var_is_special; - int want_substring, want_indir, want_patsub; - char *name, *value, *temp, *temp1; - int t_index, sindex, c, number; - - sindex = *indexp; - t_index = ++sindex; - name = string_extract (string, &t_index, "#%:-=?+/}", 1); - value = (char *)NULL; - var_is_set = var_is_null = var_is_special = check_nullness = 0; - want_substring = want_indir = want_patsub = 0; - - /* If the name really consists of a special variable, then - make sure that we have the entire name. Handle indirect - references to special variables here, too. */ - if ((sindex == t_index || - ((sindex == t_index - 1) && string[sindex] == '!')) && - (string[t_index] == '-' || - string[t_index] == '?' || - string[t_index] == '#')) - { - t_index++; - free (name); - temp1 = string_extract (string, &t_index, "#%:-=?+/}", 0); - name = xmalloc (3 + (strlen (temp1))); - *name = string[sindex]; - if (string[sindex] == '!') - { - /* indirect ref. of special variable */ - name[1] = string[sindex + 1]; - strcpy (name + 2, temp1); - } - else - strcpy (name + 1, temp1); - free (temp1); - } - sindex = t_index; - - /* Find out what character ended the variable name. Then - do the appropriate thing. */ - if (c = string[sindex]) - sindex++; - - /* If c is followed by one of the valid parameter expansion - characters, move past it as normal. If not, assume that - a substring specification is being given, and do not move - past it. */ - if (c == ':' && member (string[sindex], "-=?+")) - { - check_nullness++; - if (c = string[sindex]) - sindex++; - } - else if (c == ':') - want_substring = 1; - else if (c == '/') - want_patsub = 1; - - want_indir = *name == '!'; - - /* Determine the value of this variable. */ - - /* Check for special variables, directly and indirectly - referenced. */ - if ((digit (*name) && all_digits (name)) || - (name[1] == '\0' && member (*name, "#-?$!@*")) || - (want_indir && name[2] == '\0' && member (name[1], "#-?$!@*"))) - var_is_special++; - - /* Check for special expansion things. */ - if (*name == '#') /* length of a parameter */ - { - /* Take the lengths of some of the shell's special - parameters. */ - if (string[sindex] == '}' && name[1] == '\0' && - check_nullness == 0 && member (c, "-?$!#")) - { - free (name); - switch (c) - { - case '-': - temp1 = which_set_flags (); - break; - case '?': - temp1 = itos (last_command_exit_value); - break; - case '$': - temp1 = itos (dollar_dollar_pid); - break; - case '!': - if (last_asynchronous_pid == NO_PID) - temp1 = (char *)NULL; - else - temp1 = itos ((int)last_asynchronous_pid); - break; - case '#': - temp1 = itos (number_of_args ()); - break; - } - number = STRLEN (temp1); - FREE (temp1); - *indexp = ++sindex; /* { string[sindex] == '}' */ - return (itos (number)); - } - - /* Don't allow things like ${#:-foo} to go by; they are - errors. If we are not pointing at the character just - after the closing brace, then we haven't gotten all of - the name. Since it begins with a special character, - this is a bad substitution. Explicitly check for ${#:}, - which the rules do not catch. Also check NAME for - validity before trying to go on. */ - if (string[sindex - 1] != '}' || - member (c, "?-=+") || - (name[1] == '\0' && c == '}' && check_nullness) || - (valid_length_expression (name) == 0)) - { - temp = (char *)NULL; - goto bad_substitution; - } - - number = parameter_brace_expand_length (name); - free (name); - - *indexp = sindex; - return (itos (number)); - } - - /* ${@} is identical to $@. */ - if (name[0] == '@' && name[1] == '\0') - { - if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) - *quoted_dollar_atp = 1; - - if (contains_dollar_at) - *contains_dollar_at = 1; - } - - /* Make sure that NAME is valid before trying to go on. */ - if (valid_brace_expansion_word (want_indir ? name + 1 : name, - var_is_special) == 0) - { - temp = (char *)NULL; - goto bad_substitution; - } - - if (want_indir) - temp = parameter_brace_expand_indir (name + 1, var_is_special, quoted); - else - temp = parameter_brace_expand_word (name, var_is_special, quoted); - -#if defined (ARRAY_VARS) - if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && valid_array_reference (name)) - { - temp1 = strchr (name, '['); - if (temp1 && temp1[1] == '@' && temp1[2] == ']') - { - if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) - *quoted_dollar_atp = 1; - if (contains_dollar_at) - *contains_dollar_at = 1; - } - } -#endif - - var_is_set = temp != (char *)0; - var_is_null = check_nullness && (var_is_set == 0 || *temp == 0); - - /* Get the rest of the stuff inside the braces. */ - if (c && c != '}') - { - /* Extract the contents of the ${ ... } expansion - according to the Posix.2 rules. */ - value = extract_dollar_brace_string (string, &sindex, quoted); - /*{*/ - if (string[sindex] == '}') - sindex++; - else - goto bad_substitution; - } - else - value = (char *)NULL; - - *indexp = sindex; - - /* If this is a substring spec, process it and add the result. */ - if (want_substring) - { - temp1 = parameter_brace_substring (name, temp, value, quoted); - FREE (name); - FREE (value); - FREE (temp); - return (temp1); - } - else if (want_patsub) - { - temp1 = parameter_brace_patsub (name, temp, value, quoted); - FREE (name); - FREE (value); - FREE (temp); - return (temp1); - } - - /* Do the right thing based on which character ended the variable name. */ - switch (c) - { - default: - case '\0': - bad_substitution: - report_error ("%s: bad substitution", string ? string : "??"); - FREE (value); - FREE (temp); - free (name); - return &expand_param_error; - - /*{*/ - case '}': - if (var_is_set == 0 && unbound_vars_is_error) - { - report_error ("%s: unbound variable", name); - FREE (value); - FREE (temp); - free (name); - last_command_exit_value = 1; - return &expand_param_error; - } - break; - - case '#': /* ${param#[#]pattern} */ - case '%': /* ${param%[%]pattern} */ - if (value == 0 || *value == '\0' || temp == 0 || *temp == '\0') - { - FREE (value); - break; - } - if ((name[0] == '@' || name[0] == '*') && name[1] == '\0') - temp1 = parameter_list_remove_pattern (value, name[0], c, quoted); -#if defined (ARRAY_VARS) - else if (valid_array_reference (name)) - temp1 = array_remove_pattern (value, name, c, quoted); -#endif - else - temp1 = parameter_brace_remove_pattern (value, temp, c, quoted); - free (temp); - free (value); - temp = temp1; - break; - - case '-': - case '=': - case '?': - case '+': - if (var_is_set && var_is_null == 0) - { - /* We don't want the value of the named variable for - anything, just the value of the right hand side. */ - if (c == '+') - { - FREE (temp); - if (value) - { - temp = parameter_brace_expand_rhs (name, value, c, - quoted, - quoted_dollar_atp, - contains_dollar_at); - if (temp && *temp == '\0' && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) - quoted |= Q_QUOTEDNULL; - free (value); - } - else - temp = (char *)NULL; - } - else - { - FREE (value); - } - /* Otherwise do nothing; just use the value in TEMP. */ - } - else /* VAR not set or VAR is NULL. */ - { - FREE (temp); - temp = (char *)NULL; - if (c == '=' && var_is_special) - { - report_error ("$%s: cannot assign in this way", name); - free (name); - free (value); - return &expand_param_error; - } - else if (c == '?') - { - parameter_brace_expand_error (name, value); - return (interactive ? &expand_param_error : &expand_param_fatal); - } - else if (c != '+') - { - temp = parameter_brace_expand_rhs (name, value, c, quoted, - quoted_dollar_atp, - contains_dollar_at); - if (temp && *temp == '\0' && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) - quoted |= Q_QUOTEDNULL; - } - free (value); - } - break; - } - free (name); - return (temp); -} - -/* Make a word list which is the parameter and variable expansion, - command substitution, arithmetic substitution, and quote removed - expansion of WORD. Return a pointer to a WORD_LIST which is the - result of the expansion. If WORD contains a null word, the word - list returned is also null. - - QUOTED contains flag values defined in shell.h. - - CONTAINS_DOLLAR_AT and EXPANDED_SOMETHING are return values; when non-null - they point to an integer value which receives information about expansion. - CONTAINS_DOLLAR_AT gets non-zero if WORD contained "$@", else zero. - EXPANDED_SOMETHING get non-zero if WORD contained any parameter expansions, - else zero. - - This only does word splitting in the case of $@ expansion. In that - case, we split on ' '. */ - -/* Values for the local variable quoted_state. */ -#define UNQUOTED 0 -#define PARTIALLY_QUOTED 1 -#define WHOLLY_QUOTED 2 - -static WORD_LIST * -expand_word_internal (word, quoted, contains_dollar_at, expanded_something) - WORD_DESC *word; - int quoted; - int *contains_dollar_at; - int *expanded_something; -{ - WORD_LIST *list; - WORD_DESC *tword; - SHELL_VAR *var; - - /* The intermediate string that we build while expanding. */ - char *istring; - - /* The current size of the above object. */ - int istring_size; - - /* Index into ISTRING. */ - int istring_index; - - /* Temporary string storage. */ - char *temp, *temp1; - - /* The text of WORD. */ - register char *string; - - /* The index into STRING. */ - int sindex; - - /* This gets 1 if we see a $@ while quoted. */ - int quoted_dollar_at; - - /* One of UNQUOTED, PARTIALLY_QUOTED, or WHOLLY_QUOTED, depending on - whether WORD contains no quoting characters, a partially quoted - string (e.g., "xx"ab), or is fully quoted (e.g., "xxab"). */ - int quoted_state; - - register int c; /* Current character. */ - int number; /* Temporary number value. */ - int t_index; /* For calls to string_extract_xxx. */ - - istring = xmalloc (istring_size = DEFAULT_ARRAY_SIZE); - istring[istring_index = 0] = '\0'; - - quoted_dollar_at = 0; - quoted_state = UNQUOTED; - - string = word->word; - if (string == 0) - goto finished_with_string; - - if (contains_dollar_at) - *contains_dollar_at = 0; - - /* Begin the expansion. */ - - for (sindex = 0; ;) - { - c = string[sindex]; - - /* Case on toplevel character. */ - switch (c) - { - case '\0': - goto finished_with_string; - - case CTLESC: - temp = xmalloc (3); - temp[0] = CTLESC; - temp[1] = c = string[++sindex]; - temp[2] = '\0'; - - if (string[sindex]) - sindex++; - - goto add_string; - -#if defined (PROCESS_SUBSTITUTION) - /* Process substitution. */ - case '<': - case '>': - { - if (string[++sindex] != '(' || (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || posixly_correct) - { - sindex--; - goto add_character; - } - else - t_index = sindex + 1; /* skip past both '<' and '(' */ - - temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index); - sindex = t_index; - - /* If the process substitution specification is `<()', we want to - open the pipe for writing in the child and produce output; if - it is `>()', we want to open the pipe for reading in the child - and consume input. */ - temp = temp1 ? process_substitute (temp1, (c == '>')) : (char *)0; - - FREE (temp1); - - goto dollar_add_string; - } -#endif /* PROCESS_SUBSTITUTION */ - - /* See about breaking this into a separate function: - char * - param_expand (string, sindex, quoted, expanded_something, - contains_dollar_at, quoted_dollar_at) - char *string; - int *sindex, quoted, *expanded_something, *contains_dollar_at; - int *quoted_dollar_at; - */ - case '$': - - if (expanded_something) - *expanded_something = 1; - - c = string[++sindex]; - - /* Do simple cases first. Switch on what follows '$'. */ - switch (c) - { - /* $0 .. $9? */ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - temp1 = dollar_vars[digit_value (c)]; - if (unbound_vars_is_error && temp1 == (char *)NULL) - { - report_error ("$%c: unbound variable", c); - free (string); - free (istring); - last_command_exit_value = 1; - return (&expand_word_error); - } - temp = temp1 ? savestring (temp1) : (char *)NULL; - goto dollar_add_string; - - /* $$ -- pid of the invoking shell. */ - case '$': - number = dollar_dollar_pid; - - add_number: - temp = itos (number); - dollar_add_string: - if (string[sindex]) sindex++; - - /* Add TEMP to ISTRING. */ - add_string: - if (temp) - { - istring = sub_append_string - (temp, istring, &istring_index, &istring_size); - temp = (char *)0; - } - - break; - - /* $# -- number of positional parameters. */ - case '#': - number = number_of_args (); - goto add_number; - - /* $? -- return value of the last synchronous command. */ - case '?': - number = last_command_exit_value; - goto add_number; - - /* $- -- flags supplied to the shell on invocation or - by `set'. */ - case '-': - temp = which_set_flags (); - goto dollar_add_string; - - /* $! -- Pid of the last asynchronous command. */ - case '!': - number = (int)last_asynchronous_pid; - - /* If no asynchronous pids have been created, expand - to nothing. */ - if (number == (int)NO_PID) - { - if (string[sindex]) - sindex++; - if (expanded_something) - *expanded_something = 0; - break; - } - goto add_number; - - /* The only difference between this and $@ is when the - arg is quoted. */ - case '*': /* `$*' */ - temp = string_rest_of_args (quoted); - - /* If there are no command-line arguments, this should just - disappear if there are other characters in the expansion, - even if it's quoted. */ - if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && temp && *temp == '\0') - { - free (temp); - temp = (char *)NULL; - } - /* In the case of a quoted string, quote the entire arg-list. - "$1 $2 $3". */ - if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && temp) - { - temp1 = temp; - temp = quote_string (temp); - free (temp1); - } - goto dollar_add_string; - - /* When we have "$@" what we want is "$1" "$2" "$3" ... This - means that we have to turn quoting off after we split into - the individually quoted arguments so that the final split - on the first character of $IFS is still done. */ - case '@': /* `$@' */ - list = list_rest_of_args (); - - /* We want to flag the fact that we saw this. We can't turn - off quoting entirely, because other characters in the - string might need it (consider "\"$@\""), but we need some - way to signal that the final split on the first character - of $IFS should be done, even though QUOTED is 1. */ - if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) - quoted_dollar_at = 1; - if (contains_dollar_at) - *contains_dollar_at = 1; - temp = string_list (((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && list) ? quote_list (list) : list); - dispose_words (list); - goto dollar_add_string; - - /* $'...' ANSI-C expand text between quotes and add the result. */ - case '\'': - t_index = sindex + 1; - temp1 = string_extract_single_quoted (string, &t_index); - sindex = t_index; - temp = ansicstr (temp1, (int *)NULL); - free (temp1); - if (temp) - { - temp1 = temp; - temp = quote_string (temp1); - free (temp1); - if (*temp == '\0' && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) - quoted |= Q_QUOTEDNULL; - } - else - { - temp = xmalloc (2); -#if 0 - temp[0] = CTLNUL; - temp[1] = '\0'; -#else - temp[0] = '\0'; -#endif - quoted |= Q_QUOTEDNULL; - } - goto add_string; - - case '{': /*}*/ - temp = parameter_brace_expand (string, &sindex, quoted, - "ed_dollar_at, - contains_dollar_at); - if (temp == &expand_param_error || temp == &expand_param_fatal) - { - free (string); - free (istring); - return (temp == &expand_param_error) ? &expand_word_error - : &expand_word_fatal; - } - if (temp && *temp == '\0' && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) - quoted |= Q_QUOTEDNULL; - goto add_string; - /* break; */ - - /* Do command or arithmetic substitution. */ - case '(': /*)*/ - /* We have to extract the contents of this paren substitution. */ - t_index = sindex + 1; - temp = extract_command_subst (string, &t_index); - sindex = t_index; - - /* For Posix.2-style `$(( ))' arithmetic substitution, - extract the expression and pass it to the evaluator. */ - if (temp && *temp == '(') - { - temp1 = temp + 1; - t_index = strlen (temp1) - 1; - - if (temp1[t_index] != ')') - { - report_error ("%s: bad arithmetic substitution", temp); - free (temp); - free (string); - free (istring); - return &expand_word_error; - } - - /* Cut off ending `)' */ - temp1[t_index] = '\0'; - - /* Expand variables found inside the expression. */ - temp1 = maybe_expand_string (temp1, 1, expand_string); - - /* No error messages. */ - this_command_name = (char *)NULL; - number = evalexp (temp1); - free (temp); - free (temp1); - - goto add_number; - } - - temp1 = command_substitute (temp, quoted); - FREE (temp); - temp = temp1; - goto dollar_add_string; - - /* Do straight arithmetic substitution. */ - case '[': - /* We have to extract the contents of this - arithmetic substitution. */ - t_index = sindex + 1; - temp = extract_arithmetic_subst (string, &t_index); - sindex = t_index; - - /* Do initial variable expansion. */ - temp1 = maybe_expand_string (temp, 1, expand_string); - - /* No error messages. */ - this_command_name = (char *)NULL; - number = evalexp (temp1); - free (temp1); - free (temp); - - goto add_number; - - default: - /* Find the variable in VARIABLE_LIST. */ - temp = (char *)NULL; - - for (t_index = sindex; - (c = string[sindex]) && legal_variable_char (c); - sindex++); - temp1 = substring (string, t_index, sindex); - - /* If this isn't a variable name, then just output the `$'. */ - if (temp1 == 0 || *temp1 == '\0') - { - FREE (temp1); - temp = xmalloc (2); - temp[0] = '$'; - temp[1] = '\0'; - if (expanded_something) - *expanded_something = 0; - goto add_string; - } - - /* If the variable exists, return its value cell. */ - var = find_variable (temp1); - - if (var && invisible_p (var) == 0 && value_cell (var)) - { -#if defined (ARRAY_VARS) - if (array_p (var)) - { - temp = array_reference (array_cell (var), 0); - if (temp) - temp = quote_escapes (temp); - } - else -#endif - temp = quote_escapes (value_cell (var)); - free (temp1); - goto add_string; - } - - temp = (char *)NULL; - - if (unbound_vars_is_error) - report_error ("%s: unbound variable", temp1); - else - { - free (temp1); - goto add_string; - } - - free (temp1); - free (string); - last_command_exit_value = 1; - free (istring); - return &expand_word_error; - } - break; /* End case '$': */ - - case '`': /* Backquoted command substitution. */ - { - sindex++; - - if (expanded_something) - *expanded_something = 1; - - temp = string_extract (string, &sindex, "`", 0); - de_backslash (temp); - temp1 = command_substitute (temp, quoted); - FREE (temp); - temp = temp1; - goto dollar_add_string; - } - - case '\\': - if (string[sindex + 1] == '\n') - { - sindex += 2; - continue; - } - - c = string[++sindex]; - - if (quoted & Q_HERE_DOCUMENT) - temp1 = slashify_in_here_document; - else if (quoted & Q_DOUBLE_QUOTES) - temp1 = slashify_in_quotes; - else - temp1 = ""; - - if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && member (c, temp1) == 0) - { - temp = xmalloc (3); - temp[0] = '\\'; temp[1] = c; temp[2] = '\0'; - } - else - /* This character is quoted, so add it in quoted mode. */ - temp = make_quoted_char (c); - - if (c) - sindex++; - else - quoted |= Q_QUOTEDNULL; - goto add_string; - - case '"': - if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT|Q_NOQUOTE)) - goto add_character; - - t_index = ++sindex; - temp = string_extract_double_quoted (string, &sindex, 0); - - /* If the quotes surrounded the entire string, then the - whole word was quoted. */ - quoted_state = (t_index == 1 && string[sindex] == '\0') - ? WHOLLY_QUOTED - : PARTIALLY_QUOTED; - - if (temp && *temp) - { - int dollar_at_flag; - - tword = make_word (temp); /* XXX */ - free (temp); - temp = (char *)NULL; - - list = expand_word_internal (tword, Q_DOUBLE_QUOTES, &dollar_at_flag, (int *)NULL); - - if (list == &expand_word_error || list == &expand_word_fatal) - { - free (istring); - free (string); - /* expand_word_internal has already freed temp_word->word - for us because of the way it prints error messages. */ - tword->word = (char *)NULL; - dispose_word (tword); - return list; - } - - dispose_word (tword); - - /* "$@" (a double-quoted dollar-at) expands into nothing, - not even a NULL word, when there are no positional - parameters. */ - if (list == 0 && dollar_at_flag) - { - quoted_dollar_at++; - break; - } - - /* If we get "$@", we know we have expanded something, so we - need to remember it for the final split on $IFS. This is - a special case; it's the only case where a quoted string - can expand into more than one word. It's going to come back - from the above call to expand_word_internal as a list with - a single word, in which all characters are quoted and - separated by blanks. What we want to do is to turn it back - into a list for the next piece of code. */ - if (list) - dequote_list (list); - - if (dollar_at_flag) - { - quoted_dollar_at++; - if (expanded_something) - *expanded_something = 1; - } - } - else - { - /* What we have is "". This is a minor optimization. */ - free (temp); - list = (WORD_LIST *)NULL; - quoted |= Q_QUOTEDNULL; - } - - /* The code above *might* return a list (consider the case of "$@", - where it returns "$1", "$2", etc.). We can't throw away the - rest of the list, and we have to make sure each word gets added - as quoted. We test on tresult->next: if it is non-NULL, we - quote the whole list, save it to a string with string_list, and - add that string. We don't need to quote the results of this - (and it would be wrong, since that would quote the separators - as well), so we go directly to add_string. */ - if (list) - { - if (list->next) - { - temp = string_list (quote_list (list)); - dispose_words (list); - goto add_string; - } - else - { - temp = savestring (list->word->word); - dispose_words (list); - } - } - else - temp = (char *)NULL; - - /* We do not want to add quoted nulls to strings that are only - partially quoted; we can throw them away. */ - if (!temp && (quoted_state == PARTIALLY_QUOTED)) - continue; - - add_quoted_string: - - if (temp) - { - temp1 = temp; - temp = quote_string (temp); - if (*temp1 == '\0') - quoted |= Q_QUOTEDNULL; - free (temp1); - } - else - { - /* Add NULL arg. */ - temp = xmalloc (2); -#if 0 - temp[0] = CTLNUL; - temp[1] = '\0'; -#else - temp[0] = '\0'; -#endif - quoted |= Q_QUOTEDNULL; - } - goto add_string; - /* break; */ - - case '\'': - if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT|Q_NOQUOTE)) - goto add_character; - - t_index = ++sindex; - temp = string_extract_single_quoted (string, &sindex); - - /* If the entire STRING was surrounded by single quotes, - then the string is wholly quoted. */ - quoted_state = (t_index == 1 && string[sindex] == '\0') - ? WHOLLY_QUOTED - : PARTIALLY_QUOTED; - - /* If all we had was '', it is a null expansion. */ - if (*temp == '\0') - { - free (temp); - temp = (char *)NULL; - quoted |= Q_QUOTEDNULL; - } - else - remove_quoted_escapes (temp); - - /* We do not want to add quoted nulls to strings that are only - partially quoted; such nulls are discarded. */ - if (temp == 0 && (quoted_state == PARTIALLY_QUOTED)) - continue; - - goto add_quoted_string; - /* break; */ - - default: - /* This is the fix for " $@ " */ - if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) - { - temp = make_quoted_char (c); - if (c == 0) - quoted |= Q_QUOTEDNULL; - goto dollar_add_string; - } - - add_character: - if (istring_index + 1 >= istring_size) - { - while (istring_index + 1 >= istring_size) - istring_size += DEFAULT_ARRAY_SIZE; - istring = xrealloc (istring, istring_size); - } - istring[istring_index++] = c; - istring[istring_index] = '\0'; - - /* Next character. */ - sindex++; - } - } - -finished_with_string: - /* OK, we're ready to return. If we have a quoted string, and - quoted_dollar_at is not set, we do no splitting at all; otherwise - we split on ' '. The routines that call this will handle what to - do if nothing has been expanded. */ - - /* Partially and wholly quoted strings which expand to the empty - string are retained as an empty arguments. Unquoted strings - which expand to the empty string are discarded. The single - exception is the case of expanding "$@" when there are no - positional parameters. In that case, we discard the expansion. */ - - /* Because of how the code that handles "" and '' in partially - quoted strings works, we need to make ISTRING into a QUOTED_NULL - if we saw quoting characters, but the expansion was empty. - "" and '' are tossed away before we get to this point when - processing partially quoted strings. This makes "" and $xxx"" - equivalent when xxx is unset. */ - - /* If we expand to nothing and there were no single or double quotes - in the word, we throw it away. Otherwise, we return a NULL word. - The single exception is for $@ surrounded by double quotes when - there are no positional parameters. In that case, we also throw - the word away. */ - - if (*istring == '\0') - { - if (quoted_state == PARTIALLY_QUOTED && quoted_dollar_at == 0) - { -#if 0 - istring[0] = CTLNUL; - istring[1] = '\0'; -#else - istring[0] = '\0'; -#endif - tword = make_bare_word (istring); - list = make_word_list (tword, (WORD_LIST *)NULL); - if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES|Q_QUOTEDNULL)) - tword->flags |= W_QUOTED; - } - /* According to sh, ksh, and Posix.2, if a word expands into nothing - and a double-quoted "$@" appears anywhere in it, then the entire - word is removed. */ - else if (quoted_state == UNQUOTED || quoted_dollar_at) - list = (WORD_LIST *)NULL; - else - { - tword = make_bare_word (istring); - list = make_word_list (tword, (WORD_LIST *)NULL); - if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES|Q_QUOTEDNULL)) - tword->flags |= W_QUOTED; - } - } - else if (word->flags & W_ASSIGNMENT) - { - tword = make_bare_word (istring); - list = make_word_list (tword, (WORD_LIST *)NULL); - tword->flags |= W_ASSIGNMENT; /* XXX */ - if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) - tword->flags |= W_QUOTED; - } - else - { - char *ifs_chars; - - if (quoted_dollar_at) - { - var = find_variable ("IFS"); - ifs_chars = var ? value_cell (var) : " \t\n"; - } - else - ifs_chars = (char *)NULL; - - /* According to Posix.2, "$@" expands to a single word if - IFS="" and the positional parameters are not empty. */ - if (quoted_dollar_at && ifs_chars && *ifs_chars) - { - list = list_string (istring, " ", 1); - } - else - { - tword = make_bare_word (istring); - list = make_word_list (tword, (WORD_LIST *)NULL); - if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED)) - tword->flags |= W_QUOTED; - if (word->flags & W_ASSIGNMENT) - tword->flags |= W_ASSIGNMENT; - } - } - - free (istring); - return (list); -} - -/* **************************************************************** */ -/* */ -/* Functions for Quote Removal */ -/* */ -/* **************************************************************** */ - -/* Perform quote removal on STRING. If QUOTED > 0, assume we are obeying the - backslash quoting rules for within double quotes. */ -char * -string_quote_removal (string, quoted) - char *string; - int quoted; -{ - char *r, *result_string, *temp; - int sindex, tindex, c, dquote; - - /* The result can be no longer than the original string. */ - r = result_string = xmalloc (strlen (string) + 1); - - for (dquote = sindex = 0; c = string[sindex];) - { - switch (c) - { - case '\\': - c = string[++sindex]; - if (((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || dquote) && member (c, slashify_in_quotes) == 0) - *r++ = '\\'; - /* FALLTHROUGH */ - - default: - *r++ = c; - sindex++; - break; - - case '\'': - if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || dquote) - { - *r++ = c; - sindex++; - break; - } - tindex = sindex + 1; - temp = string_extract_single_quoted (string, &tindex); - if (temp) - { - strcpy (r, temp); - r += strlen (r); - free (temp); - } - sindex = tindex; - break; - - case '"': - dquote = 1 - dquote; - sindex++; - break; - } - } - *r = '\0'; - return (result_string); -} - -#if 0 -/* UNUSED */ -/* Perform quote removal on word WORD. This allocates and returns a new - WORD_DESC *. */ -WORD_DESC * -word_quote_removal (word, quoted) - WORD_DESC *word; - int quoted; -{ - WORD_DESC *w; - char *t; - - t = string_quote_removal (word->word, quoted); - w = make_bare_word (t); - return (w); -} - -/* Perform quote removal on all words in LIST. If QUOTED is non-zero, - the members of the list are treated as if they are surrounded by - double quotes. Return a new list, or NULL if LIST is NULL. */ -WORD_LIST * -word_list_quote_removal (list, quoted) - WORD_LIST *list; - int quoted; -{ - WORD_LIST *result, *t, *tresult; - - for (t = list, result = (WORD_LIST *)NULL; t; t = t->next) - { - tresult = (WORD_LIST *)xmalloc (sizeof (WORD_LIST)); - tresult->word = word_quote_removal (t->word, quoted); - tresult->next = (WORD_LIST *)NULL; - result = (WORD_LIST *) list_append (result, tresult); - } - return (result); -} -#endif - -/* Return 1 if CHARACTER appears in an unquoted portion of - STRING. Return 0 otherwise. */ -static int -unquoted_member (character, string) - int character; - char *string; -{ - int sindex, c; - - for (sindex = 0; c = string[sindex]; ) - { - if (c == character) - return (1); - - switch (c) - { - default: - sindex++; - break; - - case '\\': - sindex++; - if (string[sindex]) - sindex++; - break; - - case '\'': - sindex = skip_single_quoted (string, ++sindex); - break; - - case '"': - sindex = skip_double_quoted (string, ++sindex); - break; - } - } - return (0); -} - -/* Return 1 if SUBSTR appears in an unquoted portion of STRING. */ -static int -unquoted_substring (substr, string) - char *substr, *string; -{ - int sindex, c, sublen; - - if (substr == 0 || *substr == '\0') - return (0); - - sublen = strlen (substr); - for (sindex = 0; c = string[sindex]; ) - { - if (STREQN (string + sindex, substr, sublen)) - return (1); - - switch (c) - { - case '\\': - sindex++; - - if (string[sindex]) - sindex++; - break; - - case '\'': - sindex = skip_single_quoted (string, ++sindex); - break; - - case '"': - sindex = skip_double_quoted (string, ++sindex); - break; - - default: - sindex++; - break; - } - } - return (0); -} - -/******************************************* - * * - * Functions to perform word splitting * - * * - *******************************************/ - -/* This splits a single word into a WORD LIST on $IFS, but only if the word - is not quoted. list_string () performs quote removal for us, even if we - don't do any splitting. */ -WORD_LIST * -word_split (w) - WORD_DESC *w; -{ - WORD_LIST *result; - SHELL_VAR *ifs; - char *ifs_chars; - WORD_DESC *tw; - - if (w) - { - ifs = find_variable ("IFS"); - /* If IFS is unset, it defaults to " \t\n". */ - ifs_chars = ifs ? value_cell (ifs) : " \t\n"; - - if ((w->flags & W_QUOTED) || !ifs_chars) - ifs_chars = ""; - - result = list_string (w->word, ifs_chars, w->flags & W_QUOTED); - /* If the word expands to nothing, but is quoted, make a null word. */ - if (result == 0 && (w->flags & W_QUOTED)) - { - tw = make_bare_word (""); - tw->flags |= W_QUOTED; - result = make_word_list (tw, (WORD_LIST *)NULL); - } - } - else - result = (WORD_LIST *)NULL; - - return (result); -} - -/* Perform word splitting on LIST and return the RESULT. It is possible - to return (WORD_LIST *)NULL. */ -static WORD_LIST * -word_list_split (list) - WORD_LIST *list; -{ - WORD_LIST *result, *t, *tresult; - - for (t = list, result = (WORD_LIST *)NULL; t; t = t->next) - { - tresult = word_split (t->word); - result = (WORD_LIST *) list_append (result, tresult); - } - return (result); -} - -/************************************************** - * * - * Functions to expand an entire WORD_LIST * - * * - **************************************************/ - -static WORD_LIST *varlist = (WORD_LIST *)NULL; - -/* Separate out any initial variable assignments from TLIST. If set -k has - been executed, remove all assignment statements from TLIST. Initial - variable assignments and other environment assignments are placed - on VARLIST. */ -static WORD_LIST * -separate_out_assignments (tlist) - WORD_LIST *tlist; -{ - register WORD_LIST *vp, *lp; - - if (!tlist) - return ((WORD_LIST *)NULL); - - varlist = (WORD_LIST *)NULL; - vp = lp = tlist; - - /* Separate out variable assignments at the start of the command. - Loop invariant: vp->next == lp - Loop postcondition: - lp = list of words left after assignment statements skipped - tlist = original list of words - */ - while (lp && (lp->word->flags & W_ASSIGNMENT)) - { - vp = lp; - lp = lp->next; - } - - /* If lp != tlist, we have some initial assignment statements. */ - /* We make VARLIST point to the list of assignment words and - TLIST point to the remaining words. */ - if (lp != tlist) - { - varlist = tlist; - /* ASSERT(vp->next == lp); */ - vp->next = (WORD_LIST *)NULL; /* terminate variable list */ - tlist = lp; /* remainder of word list */ - } - - /* vp == end of variable list */ - /* tlist == remainder of original word list without variable assignments */ - if (!tlist) - /* All the words in tlist were assignment statements */ - return ((WORD_LIST *)NULL); - - /* ASSERT(tlist != NULL); */ - /* ASSERT((tlist->word->flags & W_ASSIGNMENT) == 0); */ - - /* If the -k option is in effect, we need to go through the remaining - words, separate out the assignment words, and place them on VARLIST. */ - if (place_keywords_in_env) - { - WORD_LIST *tp; /* tp == running pointer into tlist */ - - tp = tlist; - lp = tlist->next; - - /* Loop Invariant: tp->next == lp */ - /* Loop postcondition: tlist == word list without assignment statements */ - while (lp) - { - if (lp->word->flags & W_ASSIGNMENT) - { - /* Found an assignment statement, add this word to end of - varlist (vp). */ - if (!varlist) - varlist = vp = lp; - else - { - vp->next = lp; - vp = lp; - } - - /* Remove the word pointed to by LP from TLIST. */ - tp->next = lp->next; - /* ASSERT(vp == lp); */ - lp->next = (WORD_LIST *)NULL; - lp = tp->next; - } - else - { - tp = lp; - lp = lp->next; - } - } - } - return (tlist); -} - -/* Take the list of words in LIST and do the various substitutions. Return - a new list of words which is the expanded list, and without things like - variable assignments. */ - -WORD_LIST * -expand_words (list) - WORD_LIST *list; -{ - return (expand_word_list_internal (list, 1)); -} - -/* Same as expand_words (), but doesn't hack variable or environment - variables. */ -WORD_LIST * -expand_words_no_vars (list) - WORD_LIST *list; -{ - return (expand_word_list_internal (list, 0)); -} - -/* The workhorse for expand_words () and expand_words_no_vars (). - First arg is LIST, a WORD_LIST of words. - Second arg DO_VARS is non-zero if you want to do environment and - variable assignments, else zero. - - This does all of the substitutions: brace expansion, tilde expansion, - parameter expansion, command substitution, arithmetic expansion, - process substitution, word splitting, and pathname expansion. Words - with the W_QUOTED or W_ASSIGNMENT bits set, or for which no expansion - is done, do not undergo word splitting. Words with the W_ASSIGNMENT - bit set do not undergo pathname expansion. */ -static WORD_LIST * -expand_word_list_internal (list, do_vars) - WORD_LIST *list; - int do_vars; -{ - WORD_LIST *tlist, *new_list, *next, *temp_list, *orig_list, *disposables; - char *temp_string; - - if (list == 0) - return ((WORD_LIST *)NULL); - - tlist = copy_word_list (list); - - if (do_vars) - { - tlist = separate_out_assignments (tlist); - if (tlist == 0) - { - if (varlist) - { - /* All the words were variable assignments, so they are placed - into the shell's environment. */ - for (new_list = varlist; new_list; new_list = new_list->next) - do_assignment (new_list->word->word); - dispose_words (varlist); - varlist = (WORD_LIST *)NULL; - } - return ((WORD_LIST *)NULL); - } - } - - /* Begin expanding the words that remain. The expansions take place on - things that aren't really variable assignments. */ - -#if defined (BRACE_EXPANSION) - /* Do brace expansion on this word if there are any brace characters - in the string. */ - if (brace_expansion && tlist) - { - register char **expansions; - WORD_LIST *braces; - int eindex; - - for (braces = disposables = (WORD_LIST *)NULL; tlist; tlist = next) - { - next = tlist->next; - - /* Only do brace expansion if the word has a brace character. If - not, just add the word list element to BRACES and continue. In - the common case, at least when running shell scripts, this will - degenerate to a bunch of calls to `strchr', and then what is - basically a reversal of TLIST into BRACES, which is corrected - by a call to reverse_list () on BRACES when the end of TLIST - is reached. */ - if (strchr (tlist->word->word, '{')) - { - expansions = brace_expand (tlist->word->word); - - for (eindex = 0; temp_string = expansions[eindex]; eindex++) - { - braces = make_word_list (make_word (temp_string), braces); - free (expansions[eindex]); - } - free (expansions); - - /* Add TLIST to the list of words to be freed after brace - expansion has been performed. */ - tlist->next = disposables; - disposables = tlist; - } - else - { - tlist->next = braces; - braces = tlist; - } - } - - dispose_words (disposables); - tlist = REVERSE_LIST (braces, WORD_LIST *); - } -#endif /* BRACE_EXPANSION */ - - /* We do tilde expansion all the time. This is what 1003.2 says. */ - for (orig_list = tlist, new_list = (WORD_LIST *)NULL; tlist; tlist = next) - { - WORD_LIST *expanded; - int expanded_something, has_dollar_at; - - temp_string = tlist->word->word; - - next = tlist->next; - - /* Posix.2 section 3.6.1 says that tildes following `=' in words - which are not assignment statements are not expanded. We do - this only if POSIXLY_CORRECT is enabled. */ - if (temp_string[0] == '~' || - (posixly_correct == 0 && strchr (temp_string, '~') && - unquoted_substring ("=~", temp_string))) - { - tlist->word->word = bash_tilde_expand (temp_string); - free (temp_string); - } - - expanded_something = 0; - expanded = expand_word_internal - (tlist->word, 0, &has_dollar_at, &expanded_something); - - if (expanded == &expand_word_error || expanded == &expand_word_fatal) - { - /* By convention, each time this error is returned, - tlist->word->word has already been freed. */ - tlist->word->word = (char *)NULL; - - /* Dispose our copy of the original list. */ - dispose_words (orig_list); - /* Dispose the new list we're building. */ - dispose_words (new_list); - - if (expanded == &expand_word_error) - jump_to_top_level (DISCARD); - else - jump_to_top_level (FORCE_EOF); - } - - /* Don't split assignment words, even when they do not precede a - command name. */ - if (expanded_something && (tlist->word->flags & W_ASSIGNMENT) == 0) - { - temp_list = word_list_split (expanded); - dispose_words (expanded); - } - else - { - /* If no parameter expansion, command substitution, process - substitution, or arithmetic substitution took place, then - do not do word splitting. We still have to remove quoted - null characters from the result. */ -#if 0 - word_list_remove_quoted_nulls (expanded); -#endif - temp_list = expanded; - } - - /* In the most common cases, t will be a list containing only one - element, so the call to reverse_list would be wasted. */ - expanded = REVERSE_LIST (temp_list, WORD_LIST *); - new_list = (WORD_LIST *)list_append (expanded, new_list); - } - - new_list = REVERSE_LIST (new_list, WORD_LIST *); - - dispose_words (orig_list); - - /* Okay, we're almost done. Now let's just do some filename - globbing. */ - if (new_list) - { - char **glob_array; - register int glob_index; - WORD_LIST *glob_list; - WORD_DESC *tword; - - orig_list = disposables = (WORD_LIST *)NULL; - tlist = new_list; - - /* orig_list == output list, despite the name. */ - if (!disallow_filename_globbing) - { - glob_array = (char **)NULL; - while (tlist) - { - /* For each word, either globbing is attempted or the word is - added to orig_list. If globbing succeeds, the results are - added to orig_list and the word (tlist) is added to the list - of disposable words. If globbing fails and failed glob - expansions are left unchanged (the shell default), the - original word is added to orig_list. If globbing fails and - failed glob expansions are removed, the original word is - added to the list of disposable words. orig_list ends up - in reverse order and requires a call to reverse_list to - be set right. After all words are examined, the disposable - words are freed. */ - next = tlist->next; - - /* If the word isn't quoted and there is an unquoted pattern - matching character in the word, then glob it. */ - if ((tlist->word->flags & (W_QUOTED|W_ASSIGNMENT)) == 0 && - unquoted_glob_pattern_p (tlist->word->word)) - { - glob_array = shell_glob_filename (tlist->word->word); - - /* Handle error cases. - I don't think we should report errors like "No such file - or directory". However, I would like to report errors - like "Read failed". */ - - if (GLOB_FAILED (glob_array)) - { - glob_array = (char **) xmalloc (sizeof (char *)); - glob_array[0] = (char *)NULL; - } - - /* Dequote the current word in case we have to use it. */ - if (glob_array[0] == NULL) - { - temp_string = dequote_string (tlist->word->word); - free (tlist->word->word); - tlist->word->word = temp_string; - } - - /* Make the array into a word list. */ - glob_list = (WORD_LIST *)NULL; - for (glob_index = 0; glob_array[glob_index]; glob_index++) - { - tword = make_bare_word (glob_array[glob_index]); - glob_list = make_word_list (tword, glob_list); - } - - if (glob_list) - { - orig_list = (WORD_LIST *)list_append (glob_list, orig_list); - tlist->next = disposables; - disposables = tlist; - } - else if (allow_null_glob_expansion == 0) - { - /* Failed glob expressions are left unchanged. */ - tlist->next = orig_list; - orig_list = tlist; - } - else - { - /* Failed glob expressions are removed. */ - tlist->next = disposables; - disposables = tlist; - } - } - else - { - /* Dequote the string. */ - temp_string = dequote_string (tlist->word->word); - free (tlist->word->word); - tlist->word->word = temp_string; - tlist->next = orig_list; - orig_list = tlist; - } - - free_array (glob_array); - glob_array = (char **)NULL; - - tlist = next; - } - - if (disposables) - dispose_words (disposables); - - new_list = REVERSE_LIST (orig_list, WORD_LIST *); - } - else - { - /* Dequote the words, because we're not performing globbing. */ - for (temp_list = new_list; temp_list; temp_list = temp_list->next) - { - temp_string = dequote_string (temp_list->word->word); - free (temp_list->word->word); - temp_list->word->word = temp_string; - } - } - } - - if (do_vars) - { - Function *assign_func; - - /* If the remainder of the words expand to nothing, Posix.2 requires - that the variable and environment assignments affect the shell's - environment. */ - assign_func = new_list ? assign_in_env : do_assignment; - - for (temp_list = varlist; temp_list; temp_list = temp_list->next) - (*assign_func) (temp_list->word->word); - - dispose_words (varlist); - varlist = (WORD_LIST *)NULL; - } - - return (new_list); -} - -/************************************************* - * * - * Functions to manage special variables * - * * - *************************************************/ - -/* An alist of name.function for each special variable. Most of the - functions don't do much, and in fact, this would be faster with a - switch statement, but by the end of this file, I am sick of switch - statements. */ - -#define SET_INT_VAR(name, intvar) intvar = find_variable (name) != 0 - -struct name_and_function { - char *name; - VFunction *function; -} special_vars[] = { - { "PATH", sv_path }, - { "MAIL", sv_mail }, - { "MAILPATH", sv_mail }, - { "MAILCHECK", sv_mail }, - - { "POSIXLY_CORRECT", sv_strict_posix }, - { "GLOBIGNORE", sv_globignore }, - - /* Variables which only do something special when READLINE is defined. */ -#if defined (READLINE) - { "TERM", sv_terminal }, - { "TERMCAP", sv_terminal }, - { "TERMINFO", sv_terminal }, - { "HOSTFILE", sv_hostfile }, -#endif /* READLINE */ - - /* Variables which only do something special when HISTORY is defined. */ -#if defined (HISTORY) - { "HISTIGNORE", sv_histignore }, - { "HISTSIZE", sv_histsize }, - { "HISTFILESIZE", sv_histsize }, - { "HISTCONTROL", sv_history_control }, -# if defined (BANG_HISTORY) - { "histchars", sv_histchars }, -# endif /* BANG_HISTORY */ -#endif /* HISTORY */ - - { "IGNOREEOF", sv_ignoreeof }, - { "ignoreeof", sv_ignoreeof }, - - { "OPTIND", sv_optind }, - { "OPTERR", sv_opterr }, - - { (char *)0, (VFunction *)0 } -}; - -/* The variable in NAME has just had its state changed. Check to see if it - is one of the special ones where something special happens. */ -void -stupidly_hack_special_variables (name) - char *name; -{ - int i; - - for (i = 0; special_vars[i].name; i++) - { - if (STREQ (special_vars[i].name, name)) - { - (*(special_vars[i].function)) (name); - return; - } - } -} - -/* What to do just after the PATH variable has changed. */ -void -sv_path (name) - char *name; -{ - /* hash -r */ - flush_hashed_filenames (); -} - -/* What to do just after one of the MAILxxxx variables has changed. NAME - is the name of the variable. This is called with NAME set to one of - MAIL, MAILCHECK, or MAILPATH. */ -void -sv_mail (name) - char *name; -{ - /* If the time interval for checking the files has changed, then - reset the mail timer. Otherwise, one of the pathname vars - to the users mailbox has changed, so rebuild the array of - filenames. */ - if (name[4] == 'C') /* if (strcmp (name, "MAILCHECK") == 0) */ - reset_mail_timer (); - else - { - free_mail_files (); - remember_mail_dates (); - } -} - -/* What to do when GLOBIGNORE changes. */ -void -sv_globignore (name) - char *name; -{ - setup_glob_ignore (name); -} - -#if defined (READLINE) -/* What to do just after one of the TERMxxx variables has changed. - If we are an interactive shell, then try to reset the terminal - information in readline. */ -void -sv_terminal (name) - char *name; -{ - if (interactive_shell && no_line_editing == 0) - rl_reset_terminal (get_string_value ("TERM")); -} - -void -sv_hostfile (name) - char *name; -{ - hostname_list_initialized = 0; -} -#endif /* READLINE */ - -#if defined (HISTORY) -/* What to do after the HISTSIZE or HISTFILESIZE variables change. - If there is a value for this HISTSIZE (and it is numeric), then stifle - the history. Otherwise, if there is NO value for this variable, - unstifle the history. If name is HISTFILESIZE, and its value is - numeric, truncate the history file to hold no more than that many - lines. */ -void -sv_histsize (name) - char *name; -{ - char *temp; - long num; - - temp = get_string_value (name); - - if (temp && *temp) - { - if (legal_number (temp, &num)) - { - if (name[4] == 'S') - { - stifle_history (num); - num = where_history (); - if (history_lines_this_session > num) - history_lines_this_session = num; - } - else - { - history_truncate_file (get_string_value ("HISTFILE"), (int)num); - if (num <= history_lines_in_file) - history_lines_in_file = num; - } - } - } - else if (name[4] == 'S') - unstifle_history (); -} - -/* What to do after the HISTIGNORE variable changes. */ -void -sv_histignore (name) - char *name; -{ - setup_history_ignore (name); -} - -/* What to do after the HISTCONTROL variable changes. */ -void -sv_history_control (name) - char *name; -{ - char *temp; - - history_control = 0; - temp = get_string_value (name); - - if (temp && *temp && STREQN (temp, "ignore", 6)) - { - if (temp[6] == 's') /* ignorespace */ - history_control = 1; - else if (temp[6] == 'd') /* ignoredups */ - history_control = 2; - else if (temp[6] == 'b') /* ignoreboth */ - history_control = 3; - } -} - -#if defined (BANG_HISTORY) -/* Setting/unsetting of the history expansion character. */ -void -sv_histchars (name) - char *name; -{ - char *temp; - - temp = get_string_value (name); - if (temp) - { - history_expansion_char = *temp; - if (temp[0] && temp[1]) - { - history_subst_char = temp[1]; - if (temp[2]) - history_comment_char = temp[2]; - } - } - else - { - history_expansion_char = '!'; - history_subst_char = '^'; - history_comment_char = '#'; - } -} -#endif /* BANG_HISTORY */ -#endif /* HISTORY */ - -/* If the variable exists, then the value of it can be the number - of times we actually ignore the EOF. The default is small, - (smaller than csh, anyway). */ -void -sv_ignoreeof (name) - char *name; -{ - SHELL_VAR *tmp_var; - char *temp; - - eof_encountered = 0; - - tmp_var = find_variable (name); - ignoreeof = tmp_var != 0; - temp = tmp_var ? value_cell (tmp_var) : (char *)NULL; - if (temp) - eof_encountered_limit = (*temp && all_digits (temp)) ? atoi (temp) : 10; -} - -void -sv_optind (name) - char *name; -{ - char *tt; - int s; - - tt = get_string_value ("OPTIND"); - if (tt && *tt) - { - s = atoi (tt); - - /* According to POSIX, setting OPTIND=1 resets the internal state - of getopt (). */ - if (s < 0 || s == 1) - s = 0; - } - else - s = 0; - getopts_reset (s); -} - -void -sv_opterr (name) - char *name; -{ - char *tt; - - tt = get_string_value ("OPTERR"); - sh_opterr = (tt && *tt) ? atoi (tt) : 1; -} - -void -sv_strict_posix (name) - char *name; -{ - SET_INT_VAR (name, posixly_correct); - posix_initialize (posixly_correct); -#if defined (READLINE) - posix_readline_initialize (posixly_correct); -#endif /* READLINE */ -} diff --git a/CWRU/posix-parser/Makefile b/CWRU/posix-parser/Makefile deleted file mode 100644 index 74f45aeed..000000000 --- a/CWRU/posix-parser/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -SRCS= main.c parse.y make.c copy.c aux.c -OBJS= main.o parse.o make.o copy.o aux.o - -PROG= parse - -AUX= ../../../sun4/error.o - -CFLAGS= -g -I. -I../.. -I. -DTEST -Dalloca=__builtin_alloca -LDFLAGS= -g - -$(PROG): $(OBJS) - $(CC) $(LDFLAGS) -o $@ $(OBJS) $(AUX) $(LIBS) - -parse.o: parse.y diff --git a/CWRU/posix-parser/aux.c b/CWRU/posix-parser/aux.c deleted file mode 100644 index bd8c8c9fa..000000000 --- a/CWRU/posix-parser/aux.c +++ /dev/null @@ -1,231 +0,0 @@ -#include -#include -#include -#include -#include "filecntl.h" - -#include "shell.h" -#include -char * -xmalloc (size) - int size; -{ - register char *temp = (char *)malloc (size); - - if (!temp) - fatal_error ("Out of virtual memory!"); - - return (temp); -} - -char * -xrealloc (pointer, size) - register char *pointer; - int size; -{ - char *temp; - - if (!pointer) - temp = (char *)xmalloc (size); - else - temp = (char *)realloc (pointer, size); - - if (!temp) - fatal_error ("Out of virtual memory!"); - - return (temp); -} -/* Reverse the chain of structures in LIST. Output the new head - of the chain. You should always assign the output value of this - function to something, or you will lose the chain. */ -GENERIC_LIST * -reverse_list (list) - register GENERIC_LIST *list; -{ - register GENERIC_LIST *next, *prev = (GENERIC_LIST *)NULL; - - while (list) { - next = list->next; - list->next = prev; - prev = list; - list = next; - } - return (prev); -} - -/* Return the number of elements in LIST, a generic list. */ -int -list_length (list) - register GENERIC_LIST *list; -{ - register int i; - - for (i = 0; list; list = list->next, i++); - return (i); -} - -/* Delete the element of LIST which satisfies the predicate function COMPARER. - Returns the element that was deleted, so you can dispose of it, or -1 if - the element wasn't found. COMPARER is called with the list element and - then ARG. Note that LIST contains the address of a variable which points - to the list. You might call this function like this: - - SHELL_VAR *elt = delete_element (&variable_list, check_var_has_name, "foo"); - dispose_variable (elt); -*/ -GENERIC_LIST * -delete_element (list, comparer, arg) - GENERIC_LIST **list; - Function *comparer; -{ - register GENERIC_LIST *prev = (GENERIC_LIST *)NULL; - register GENERIC_LIST *temp = *list; - - while (temp) { - if ((*comparer) (temp, arg)) { - if (prev) prev->next = temp->next; - else *list = temp->next; - return (temp); - } - prev = temp; - temp = temp->next; - } - return ((GENERIC_LIST *)-1); -} - -/* Find NAME in ARRAY. Return the index of NAME, or -1 if not present. - ARRAY shoudl be NULL terminated. */ -int -find_name_in_list (name, array) - char *name, *array[]; -{ - int i; - - for (i=0; array[i]; i++) - if (strcmp (name, array[i]) == 0) - return (i); - - return (-1); -} - -/* Return the length of ARRAY, a NULL terminated array of char *. */ -int -array_len (array) - register char **array; -{ - register int i; - for (i=0; array[i]; i++); - return (i); -} - -/* Free the contents of ARRAY, a NULL terminated array of char *. */ -void -free_array (array) - register char **array; -{ - register int i = 0; - - if (!array) return; - - while (array[i]) - free (array[i++]); - free (array); -} - -/* Allocate and return a new copy of ARRAY and its contents. */ -char ** -copy_array (array) - register char **array; -{ - register int i; - int len; - char **new_array; - - len = array_len (array); - new_array = (char **)xmalloc ((len + 1) * sizeof (char *)); - for (i = 0; array[i]; i++) - new_array[i] = savestring (array[i]); - new_array[i] = (char *)NULL; - return (new_array); -} - -/* Append LIST2 to LIST1. Return the header of the list. */ -GENERIC_LIST * -list_append (head, tail) - GENERIC_LIST *head, *tail; -{ - register GENERIC_LIST *t_head = head; - - if (!t_head) - return (tail); - - while (t_head->next) t_head = t_head->next; - t_head->next = tail; - return (head); -} - -#include - -#ifndef NULL -#define NULL 0x0 -#endif - -#if defined (ibm032) -/* - * Most vanilla 4.3 (not 4.3-tahoe) sites lack vfprintf. - * Here is the one from 4.3-tahoe (it is freely redistributable). - * - * Beware! Don't trust the value returned by either of these functions; it - * seems that pre-4.3-tahoe implementations of _doprnt () return the first - * argument, i.e. a char *. Besides, _doprnt () is incorrectly documented - * in the 4.3 BSD manuals, anyway (it's wrong in SunOS 3.5 also, but they - * have the v*printf functions (incorrectly documented (vprintf), but they - * are present)). - */ -#include - -int -vfprintf (iop, fmt, ap) - FILE *iop; - char *fmt; - va_list ap; -{ - int len; - char localbuf[BUFSIZ]; - - if (iop->_flag & _IONBF) - { - iop->_flag &= ~_IONBF; - iop->_ptr = iop->_base = localbuf; - len = _doprnt (fmt, ap, iop); - (void) fflush (iop); - iop->_flag |= _IONBF; - iop->_base = NULL; - iop->_bufsiz = 0; - iop->_cnt = 0; - } - else - len = _doprnt (fmt, ap, iop); - return (ferror (iop) ? EOF : len); -} - -/* - * Ditto for vsprintf - */ -int -vsprintf (str, fmt, ap) - char *str, *fmt; - va_list ap; -{ - FILE f; - int len; - - f._flag = _IOWRT+_IOSTRG; - f._ptr = str; - f._cnt = 32767; - len = _doprnt (fmt, ap, &f); - *f._ptr = 0; - return (len); -} - -#endif /* ibm032 */ diff --git a/CWRU/posix-parser/command.h b/CWRU/posix-parser/command.h deleted file mode 100644 index a7586a7de..000000000 --- a/CWRU/posix-parser/command.h +++ /dev/null @@ -1,179 +0,0 @@ -/* command.h -- The structures used internally to represent commands, and - the extern declarations of the functions used to create them. */ - -#if !defined (_COMMAND_H) -#define _COMMAND_H - -/* Instructions describing what kind of thing to do for a redirection. */ -enum r_instruction { - r_output_direction, r_input_direction, r_inputa_direction, - r_appending_to, r_reading_until, r_duplicating_input, - r_duplicating_output, r_deblank_reading_until, r_close_this, - r_err_and_out, r_input_output, r_output_force, - r_duplicating_input_word, r_duplicating_output_word -}; - -/* Command Types: */ -enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, - cm_connection, cm_function_def, cm_until, cm_group }; - -/* A structure which represents a word. */ -typedef struct word_desc { - char *word; /* Zero terminated string. */ - int dollar_present; /* Non-zero means dollar sign present. */ - int quoted; /* Non-zero means single, double, or back quote - or backslash is present. */ - int assignment; /* Non-zero means that this word contains an - assignment. */ -} WORD_DESC; - -/* A linked list of words. */ -typedef struct word_list { - struct word_list *next; - WORD_DESC *word; -} WORD_LIST; - - -/* **************************************************************** */ -/* */ -/* Shell Command Structs */ -/* */ -/* **************************************************************** */ - -/* What a redirection descriptor looks like. If FLAGS is IS_DESCRIPTOR, - then we use REDIRECTEE.DEST, else we use the file specified. */ -typedef struct redirect { - struct redirect *next; /* Next element, or NULL. */ - int redirector; /* Descriptor to be redirected. */ - int flags; /* Flag value for `open'. */ - enum r_instruction instruction; /* What to do with the information. */ - union { - int dest; /* Place to redirect REDIRECTOR to, or ... */ - WORD_DESC *filename; /* filename to redirect to. */ - } redirectee; - char *here_doc_eof; /* The word that appeared in <flags. */ -#define CMD_WANT_SUBSHELL 0x01 /* User wants a subshell: ( command ) */ -#define CMD_FORCE_SUBSHELL 0x02 /* Shell needs to force a subshell. */ -#define CMD_INVERT_RETURN 0x04 /* Invert the exit value. */ -#define CMD_IGNORE_RETURN 0x08 /* Ignore the exit value. For set -e. */ -#define CMD_NO_FUNCTIONS 0x10 /* Ignore functions during command lookup. */ -#define CMD_INHIBIT_EXPANSION 0x20 /* Do not expand the command words. */ - -/* What a command looks like. */ -typedef struct command { - enum command_type type; /* FOR CASE WHILE IF CONNECTION or SIMPLE. */ - int flags; /* Flags controlling execution environment. */ - REDIRECT *redirects; /* Special redirects for FOR CASE, etc. */ - union { - struct for_com *For; - struct case_com *Case; - struct while_com *While; - struct if_com *If; - struct connection *Connection; - struct simple_com *Simple; - struct function_def *Function_def; - struct group_com *Group; - } value; -} COMMAND; - -/* Structure used to represent the CONNECTION type. */ -typedef struct connection { - int ignore; /* Unused; simplifies make_command (). */ - COMMAND *first; /* Pointer to the first command. */ - COMMAND *second; /* Pointer to the second command. */ - int connector; /* What separates this command from others. */ -} CONNECTION; - -/* Structures used to represent the CASE command. */ - -/* Pattern/action structure for CASE_COM. */ -typedef struct pattern_list { - struct pattern_list *next; /* Clause to try in case this one failed. */ - WORD_LIST *patterns; /* Linked list of patterns to test. */ - COMMAND *action; /* Thing to execute if a pattern matches. */ -} PATTERN_LIST; - -/* The CASE command. */ -typedef struct case_com { - int flags; /* See description of CMD flags. */ - WORD_DESC *word; /* The thing to test. */ - PATTERN_LIST *clauses; /* The clauses to test against, or NULL. */ -} CASE_COM; - -/* FOR command. */ -typedef struct for_com { - int flags; /* See description of CMD flags. */ - WORD_DESC *name; /* The variable name to get mapped over. */ - WORD_LIST *map_list; /* The things to map over. This is never NULL. */ - COMMAND *action; /* The action to execute. - During execution, NAME is bound to successive - members of MAP_LIST. */ -} FOR_COM; - -/* IF command. */ -typedef struct if_com { - int flags; /* See description of CMD flags. */ - COMMAND *test; /* Thing to test. */ - COMMAND *true_case; /* What to do if the test returned non-zero. */ - COMMAND *false_case; /* What to do if the test returned zero. */ -} IF_COM; - -/* WHILE command. */ -typedef struct while_com { - int flags; /* See description of CMD flags. */ - COMMAND *test; /* Thing to test. */ - COMMAND *action; /* Thing to do while test is non-zero. */ -} WHILE_COM; - -/* The "simple" command. Just a collection of words and redirects. */ -typedef struct simple_com { - int flags; /* See description of CMD flags. */ - WORD_LIST *words; /* The program name, the arguments, - variable assignments, etc. */ - REDIRECT *redirects; /* Redirections to perform. */ -} SIMPLE_COM; - -/* The "function_def" command. This isn't really a command, but it is - represented as such for now. If the function def appears within - `(' `)' the parser tries to set the SUBSHELL bit of the command. That - means that FUNCTION_DEF has to be run through the executor. Maybe this - command should be defined in a subshell. Who knows or cares. */ -typedef struct function_def { - int ignore; /* See description of CMD flags. */ - WORD_DESC *name; /* The name of the function. */ - COMMAND *command; /* The parsed execution tree. */ -} FUNCTION_DEF; - -/* A command that is `grouped' allows pipes to take effect over - the entire command structure. */ -typedef struct group_com { - int ignore; /* See description of CMD flags. */ - COMMAND *command; -} GROUP_COM; - -/* Forward declarations of functions called by the grammer. */ -extern REDIRECT *make_redirection (); -extern WORD_LIST *make_word_list (); -extern WORD_DESC *make_word (); - -extern COMMAND - *make_for_command (), *make_case_command (), *make_if_command (), - *make_while_command (), *command_connect (), *make_simple_command (), - *make_function_def (), *clean_simple_command (), *make_until_command (), - *make_group_command (); - -extern PATTERN_LIST *make_pattern_list (); -extern COMMAND *global_command, *copy_command (); - -#endif /* _COMMAND_H */ diff --git a/CWRU/posix-parser/copy.c b/CWRU/posix-parser/copy.c deleted file mode 100644 index 19d49be5a..000000000 --- a/CWRU/posix-parser/copy.c +++ /dev/null @@ -1,279 +0,0 @@ -/* copy_command.c -- copy a COMMAND structure. This is needed - primarily for making function definitions, but I'm not sure - that anyone else will need it. */ - -/* Copyright (C) 1987,1991 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#include -#include "shell.h" - -/* Forward declaration. */ -extern COMMAND *copy_command (); - -WORD_DESC * -copy_word (word) - WORD_DESC *word; -{ - WORD_DESC *new_word = (WORD_DESC *)xmalloc (sizeof (WORD_DESC)); - bcopy (word, new_word, sizeof (WORD_DESC)); - new_word->word = savestring (word->word); - return (new_word); -} - -/* Copy the chain of words in LIST. Return a pointer to - the new chain. */ -WORD_LIST * -copy_word_list (list) - WORD_LIST *list; -{ - WORD_LIST *new_list = NULL; - - while (list) - { - WORD_LIST *temp = (WORD_LIST *)xmalloc (sizeof (WORD_LIST)); - temp->next = new_list; - new_list = temp; - new_list->word = copy_word (list->word); - list = list->next; - } - return ((WORD_LIST *)reverse_list (new_list)); -} - -PATTERN_LIST * -copy_case_clause (clause) - PATTERN_LIST *clause; -{ - PATTERN_LIST *new_clause = (PATTERN_LIST *)xmalloc (sizeof (PATTERN_LIST)); - new_clause->patterns = copy_word_list (clause->patterns); - new_clause->action = copy_command (clause->action); - return (new_clause); -} - -PATTERN_LIST * -copy_case_clauses (clauses) - PATTERN_LIST *clauses; -{ - PATTERN_LIST *new_list = (PATTERN_LIST *)NULL; - - while (clauses) - { - PATTERN_LIST *new_clause = copy_case_clause (clauses); - new_clause->next = new_list; - new_list = new_clause; - clauses = clauses->next; - } - return ((PATTERN_LIST *)reverse_list (new_list)); -} - -/* Copy a single redirect. */ -REDIRECT * -copy_redirect (redirect) - REDIRECT *redirect; -{ - REDIRECT *new_redirect = (REDIRECT *)xmalloc (sizeof (REDIRECT)); - bcopy (redirect, new_redirect, (sizeof (REDIRECT))); - switch (redirect->instruction) - { - case r_reading_until: - case r_deblank_reading_until: - new_redirect->here_doc_eof = savestring (redirect->here_doc_eof); - /* There is NO BREAK HERE ON PURPOSE!!!! */ - case r_appending_to: - case r_output_direction: - case r_input_direction: - case r_inputa_direction: - case r_err_and_out: - case r_input_output: - case r_output_force: - case r_duplicating_input_word: - case r_duplicating_output_word: - new_redirect->redirectee.filename = - copy_word (redirect->redirectee.filename); - break; - } - return (new_redirect); -} - -REDIRECT * -copy_redirects (list) - REDIRECT *list; -{ - REDIRECT *new_list = NULL; - - while (list) - { - REDIRECT *temp = copy_redirect (list); - temp->next = new_list; - new_list = temp; - list = list->next; - } - return ((REDIRECT *)reverse_list (new_list)); -} - -FOR_COM * -copy_for_command (com) - FOR_COM *com; -{ - FOR_COM *new_for = (FOR_COM *)xmalloc (sizeof (FOR_COM)); - new_for->flags = com->flags; - new_for->name = copy_word (com->name); - new_for->map_list = copy_word_list (com->map_list); - new_for->action = copy_command (com->action); - return (new_for); -} - -GROUP_COM * -copy_group_command (com) - GROUP_COM *com; -{ - GROUP_COM *new_group = (GROUP_COM *)xmalloc (sizeof (GROUP_COM)); - - new_group->command = copy_command (com->command); - return (new_group); -} - -CASE_COM * -copy_case_command (com) - CASE_COM *com; -{ - CASE_COM *new_case = (CASE_COM *)xmalloc (sizeof (CASE_COM)); - - new_case->flags = com->flags; - new_case->word = copy_word (com->word); - new_case->clauses = copy_case_clauses (com->clauses); - return (new_case); -} - -WHILE_COM * -copy_while_command (com) - WHILE_COM *com; -{ - WHILE_COM *new_while = (WHILE_COM *)xmalloc (sizeof (WHILE_COM)); - - new_while->flags = com->flags; - new_while->test = copy_command (com->test); - new_while->action = copy_command (com->action); - return (new_while); -} - -IF_COM * -copy_if_command (com) - IF_COM *com; -{ - IF_COM *new_if = (IF_COM *)xmalloc (sizeof (IF_COM)); - - new_if->flags = com->flags; - new_if->test = copy_command (com->test); - new_if->true_case = copy_command (com->true_case); - new_if->false_case = copy_command (com->false_case); - return (new_if); -} - -SIMPLE_COM * -copy_simple_command (com) - SIMPLE_COM *com; -{ - SIMPLE_COM *new_simple = (SIMPLE_COM *)xmalloc (sizeof (SIMPLE_COM)); - - new_simple->flags = com->flags; - new_simple->words = copy_word_list (com->words); - new_simple->redirects = copy_redirects (com->redirects); - return (new_simple); -} - -FUNCTION_DEF * -copy_function_def (com) - FUNCTION_DEF *com; -{ - FUNCTION_DEF *new_def = (FUNCTION_DEF *)xmalloc (sizeof (FUNCTION_DEF)); - - new_def->name = copy_word (com->name); - new_def->command = copy_command (com->command); - return (new_def); -} - -/* Copy the command structure in COMMAND. Return a pointer to the - copy. Don't you forget to dispose_command () on this pointer - later! */ -COMMAND * -copy_command (command) - COMMAND *command; -{ - COMMAND *new_command = (COMMAND *)NULL; - - if (command) - { - new_command = (COMMAND *)xmalloc (sizeof (COMMAND)); - bcopy (command, new_command, sizeof (COMMAND)); - new_command->flags = command->flags; - - if (command->redirects) - new_command->redirects = copy_redirects (command->redirects); - - switch (command->type) - { - case cm_for: - new_command->value.For = copy_for_command (command->value.For); - break; - - case cm_group: - new_command->value.Group = copy_group_command (command->value.Group); - break; - - case cm_case: - new_command->value.Case = copy_case_command (command->value.Case); - break; - - case cm_until: - case cm_while: - new_command->value.While = copy_while_command (command->value.While); - break; - - case cm_if: - new_command->value.If = copy_if_command (command->value.If); - break; - - case cm_simple: - new_command->value.Simple = copy_simple_command (command->value.Simple); - break; - - case cm_connection: - { - CONNECTION *new_connection; - - new_connection = (CONNECTION *)xmalloc (sizeof (CONNECTION)); - new_connection->connector = command->value.Connection->connector; - new_connection->first = - copy_command (command->value.Connection->first); - new_connection->second = - copy_command (command->value.Connection->second); - new_command->value.Connection = new_connection; - break; - } - - /* Pathological case. I'm not even sure that you can have a - function definition as part of a function definition. */ - case cm_function_def: - new_command->value.Function_def = - copy_function_def (command->value.Function_def); - break; - } - } - return (new_command); -} diff --git a/CWRU/posix-parser/endian.h b/CWRU/posix-parser/endian.h deleted file mode 100644 index ebbf6d6e7..000000000 --- a/CWRU/posix-parser/endian.h +++ /dev/null @@ -1,9 +0,0 @@ -/* endian.h - Define BIG or LITTLE endian. */ - -/* This file was automatically created by `endian.aux'. You shouldn't - edit this file, because your changes will be overwritten. Instead, - edit the source code file `endian.c'. */ - -#if !defined (BIG_ENDIAN) -# define BIG_ENDIAN -#endif /* BIG_ENDIAN */ diff --git a/CWRU/posix-parser/main.c b/CWRU/posix-parser/main.c deleted file mode 100644 index 217539189..000000000 --- a/CWRU/posix-parser/main.c +++ /dev/null @@ -1,97 +0,0 @@ -#include -#include "shell.h" - -COMMAND *global_command; -int last_command_exit_value; -int interrupt_state; -int interactive = 1; -int eof_encountered = 0; -int exit_immediately_on_error = 1; - -char *the_current_maintainer = "chet"; - -char *shell_name = "posix"; - -void -throw_to_top_level() -{ -} - -char * -base_pathname(s) -char *s; -{ - return s; -} - -char * -strerror(s) -int s; -{ - return ("error"); -} - -parse_command () -{ - extern int need_here_doc, current_command_line_count; - extern REDIRECT *redirection_needing_here_doc; - int r; - - need_here_doc = 0; - redirection_needing_here_doc = (REDIRECT *)NULL; - - current_command_line_count = 0; - r = yyparse (); - - if (need_here_doc) - make_here_document (redirection_needing_here_doc); - need_here_doc = 0; - - return (r); -} - -main(argc, argv) -int argc; -char **argv; -{ - with_input_from_stdin(); - - if (parse_command () == 0) { - printf ("legal command in the Posix shell\n"); - exit (0); - } else { - printf ("illegal\n"); - exit (1); - } -} - -char * -string_quote_removal (s) -{ - return (savestring (s)); -} - -assignment (string) - char *string; -{ - register int c, index = 0; - - c = string[index]; - - if (!isletter (c) && c != '_') - return (0); - - while (c = string[index]) - { - /* The following is safe. Note that '=' at the start of a word - is not an assignment statement. */ - if (c == '=') - return (index); - - if (!isletter (c) && !digit (c) && c != '_') - return (0); - - index++; - } - return (0); -} diff --git a/CWRU/posix-parser/make.c b/CWRU/posix-parser/make.c deleted file mode 100644 index cc49b186f..000000000 --- a/CWRU/posix-parser/make.c +++ /dev/null @@ -1,596 +0,0 @@ -/* make_cmd.c -- - Functions for making instances of the various parser constructs. */ - -/* Copyright (C) 1989 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#include -#include -#include -#include "config.h" -#include "general.h" -#include "error.h" -#include "command.h" -#include "flags.h" -#include "filecntl.h" - -#if defined (JOB_CONTROL) -#include "jobs.h" -#endif - -extern GENERIC_LIST *reverse_list (); - -WORD_DESC * -make_word (string) - char *string; -{ - WORD_DESC *temp; - - temp = (WORD_DESC *)xmalloc (sizeof (WORD_DESC)); - temp->word = savestring (string); - temp->quoted = temp->dollar_present = temp->assignment = 0; - - while (*string) - { - if (*string == '$') temp->dollar_present = 1; - - if (member (*string, "'`\\\"")) - { - temp->quoted = 1; - if (*string == '\\') - string++; - } - - if (*string) - (string++); - } - return (temp); -} - -WORD_DESC * -make_word_from_token (token) - int token; -{ - char tokenizer[2]; - - tokenizer[0] = token; - tokenizer[1] = '\0'; - - return (make_word (tokenizer)); -} - -WORD_LIST * -make_word_list (word, link) - WORD_DESC *word; - WORD_LIST *link; -{ - WORD_LIST *temp; - - temp = (WORD_LIST *)xmalloc (sizeof (WORD_LIST)); - temp->word = word; - temp->next = link; - return (temp); -} - -WORD_LIST * -add_string_to_list (string, list) - char *string; - WORD_LIST *list; -{ - WORD_LIST *temp = (WORD_LIST *)xmalloc (sizeof (WORD_LIST)); - temp->word = make_word (string); - temp->next = list; - return (temp); -} - -WORD_DESC * -coerce_to_word (number) - int number; -{ - char string[24]; - - sprintf (string, "%d", number); - return (make_word (string)); -} - -COMMAND * -make_command (type, pointer) - enum command_type type; - SIMPLE_COM *pointer; -{ - COMMAND *temp; - - temp = (COMMAND *)xmalloc (sizeof (COMMAND)); - temp->type = type; - temp->value.Simple = pointer; - temp->value.Simple->flags = 0; - temp->flags = 0; - temp->redirects = (REDIRECT *)NULL; - return (temp); -} - -COMMAND * -command_connect (com1, com2, connector) - COMMAND *com1, *com2; - int connector; -{ - CONNECTION *temp; - - temp = (CONNECTION *)xmalloc (sizeof (CONNECTION)); - temp->connector = connector; - temp->first = com1; - temp->second = com2; - return (make_command (cm_connection, (SIMPLE_COM *)temp)); -} - -COMMAND * -make_for_command (name, map_list, action) - WORD_DESC *name; - WORD_LIST *map_list; - COMMAND *action; -{ - FOR_COM *temp = (FOR_COM *)xmalloc (sizeof (FOR_COM)); - - temp->flags = 0; - temp->name = name; - temp->map_list = map_list; - temp->action = action; - return (make_command (cm_for, (SIMPLE_COM *)temp)); -} - -COMMAND * -make_group_command (command) - COMMAND *command; -{ - GROUP_COM *temp = (GROUP_COM *)xmalloc (sizeof (GROUP_COM)); - - temp->command = command; - return (make_command (cm_group, (SIMPLE_COM *)temp)); -} - -COMMAND * -make_case_command (word, clauses) - WORD_DESC *word; - PATTERN_LIST *clauses; -{ - CASE_COM *temp; - - temp = (CASE_COM *)xmalloc (sizeof (CASE_COM)); - temp->flags = 0; - temp->word = word; - temp->clauses = (PATTERN_LIST *)reverse_list (clauses); - return (make_command (cm_case, (SIMPLE_COM *)temp)); -} - -PATTERN_LIST * -make_pattern_list (patterns, action) - WORD_LIST *patterns; - COMMAND *action; -{ - PATTERN_LIST *temp; - - temp = (PATTERN_LIST *)xmalloc (sizeof (PATTERN_LIST)); - temp->patterns = patterns; - temp->action = action; - temp->next = NULL; - return (temp); -} - -COMMAND * -make_if_command (test, true_case, false_case) - COMMAND *test, *true_case, *false_case; -{ - IF_COM *temp; - - temp = (IF_COM *)xmalloc (sizeof (IF_COM)); - temp->flags = 0; - temp->test = test; - temp->true_case = true_case; - temp->false_case = false_case; - return (make_command (cm_if, (SIMPLE_COM *)temp)); -} - -COMMAND * -make_until_or_while (test, action, which) - COMMAND *test, *action; - enum command_type which; -{ - WHILE_COM *temp; - - temp = (WHILE_COM *)xmalloc (sizeof (WHILE_COM)); - temp->flags = 0; - temp->test = test; - temp->action = action; - return (make_command (which, (SIMPLE_COM *)temp)); -} - -COMMAND * -make_while_command (test, action) - COMMAND *test, *action; -{ - return (make_until_or_while (test, action, cm_while)); -} - -COMMAND * -make_until_command (test, action) - COMMAND *test, *action; -{ - return (make_until_or_while (test, action, cm_until)); -} - -COMMAND * -make_bare_simple_command () -{ - COMMAND *command; - SIMPLE_COM *temp = (SIMPLE_COM *)xmalloc (sizeof (SIMPLE_COM)); - - temp->flags = 0; - temp->words = (WORD_LIST *)NULL; - temp->redirects = (REDIRECT *)NULL; - command = (COMMAND *)xmalloc (sizeof (COMMAND)); - command->type = cm_simple; - command->redirects = (REDIRECT *)NULL; - command->flags = 0; - command->value.Simple = temp; - return (command); -} - -COMMAND * -new_make_simple_command (word, prefix, suffix) - WORD_DESC *word; - ELEMENT *prefix; - ELEMENT *suffix; -{ - /* Make a list of words and redirects from WORD, PREFIX, and SUFFIX. */ - WORD_LIST *w = (WORD_LIST *)NULL; - REDIRECT *r = (REDIRECT *)NULL; - COMMAND *ret; - SIMPLE_COM *sc; - register ELEMENT *te; - - ret = make_bare_simple_command (); - sc = ret->value.Simple; - - te = prefix; - while (te) - { - ELEMENT *t2; - if (te->redirect) - { - te->redirect->next = r; - r->next = te->redirect; - } - else if (te->word) - { - WORD_LIST *twl = make_word_list (te->word, (WORD_LIST *)NULL); - twl->next = w; - w = twl; - } - t2 = te; - te = te->next; - free (t2); - } - - if (word) - { - WORD_LIST *twl = make_word_list (word, (WORD_LIST *)NULL); - twl->next = w; - w = twl; - } - - te = suffix; - while (te) - { - ELEMENT *t2; - if (te->redirect) - { - te->redirect->next = r; - r->next = te->redirect; - } - else if (te->word) - { - WORD_LIST *twl = make_word_list (te->word, (WORD_LIST *)NULL); - twl->next = w; - w = twl; - } - t2 = te; - te = te->next; - free (t2); - } - - sc->words = (WORD_LIST *)reverse_list (w); - sc->redirects = (REDIRECT *)reverse_list (r); - sc->flags = 0; - - return (ret); -} - -/* Return a command which is the connection of the word or redirection - in ELEMENT, and the command * or NULL in COMMAND. */ -COMMAND * -make_simple_command (element, command) - ELEMENT element; - COMMAND *command; -{ - /* If we are starting from scratch, then make the initial command - structure. Also note that we have to fill in all the slots, since - malloc doesn't return zeroed space. */ - if (!command) - command = make_bare_simple_command (); - - if (element.word) - { - WORD_LIST *tw = (WORD_LIST *)xmalloc (sizeof (WORD_LIST)); - tw->word = element.word; - tw->next = command->value.Simple->words; - command->value.Simple->words = tw; - } - else - { - REDIRECT *r = element.redirect; - /* Due to the way <> is implemented, there may be more than a single - redirection in element.redirect. We just follow the chain as far - as it goes, and hook onto the end. */ - while (r->next) - r = r->next; - r->next = command->value.Simple->redirects; - command->value.Simple->redirects = element.redirect; - } - return (command); -} - -#define POSIX_HERE_DOCUMENTS -make_here_document (temp) - REDIRECT *temp; -{ - int kill_leading = 0; - - switch (temp->instruction) - { - /* Because we are Bourne compatible, we read the input for this - << or <<- redirection now, from wherever input is coming from. - We store the input read into a WORD_DESC. Replace the text of - the redirectee.word with the new input text. If <<- is on, - then remove leading TABS from each line. */ - - case r_deblank_reading_until: /* <<-foo */ - kill_leading++; - /* ... */ - case r_reading_until: /* <redirectee.filename); - - disallow_filename_globbing = old_value; - } -#else /* POSIX_HERE_DOCUMENTS */ - /* Quote removal is the only expansion performed on the delimiter - for here documents, making it an extremely special case. I - still feel ill. */ - redirectee_word = - string_quote_removal (temp->redirectee.filename->word, 0); -#endif /* POSIX_HERE_DOCUMENTS */ - - /* redirection_expand will return NULL if the expansion results in - multiple words or no words. Check for that here, and just abort - this here document if it does. */ - if (redirectee_word) - len = strlen (redirectee_word); - else - { - temp->here_doc_eof = savestring (""); - goto document_done; - } - - free (temp->redirectee.filename->word); - temp->here_doc_eof = redirectee_word; - - /* Read lines from wherever lines are coming from. - For each line read, if kill_leading, then kill the - leading tab characters. - If the line matches redirectee_word exactly, then we have - manufactured the document. Otherwise, add the line to the - list of lines in the document. */ - { - extern char *read_secondary_line (); - char *line; - int l; - - while (line = read_secondary_line ()) - { - if (!line) - goto document_done; - - if (kill_leading) - { - register int i; - - /* Hack: To be compatible with some Bourne shells, we - check the word before stripping the whitespace. This - is a hack, though. */ - if ((strncmp (line, redirectee_word, len) == 0) && - line[len] == '\n') - goto document_done; - - for (i = 0; line[i] == '\t'; i++) - ; - - if (i) - strcpy (&line[0], &line[i]); - } - - if ((strncmp (line, redirectee_word, len) == 0) && - line[len] == '\n') - goto document_done; - - l = strlen (line); - if (l + document_index >= document_size) - { - document = (char *) - xrealloc (document, (document_size += (10 * l))); - } - - if (l != 0) - { - strcpy (&document[document_index], line); - free (line); - document_index += l; - } - } - document_done: - if (!document) - document = savestring (""); - temp->redirectee.filename->word = document; - } - } - } -} - -/* Generate a REDIRECT from SOURCE, DEST, and INSTRUCTION. - INSTRUCTION is the instruction type, SOURCE is an INT, - and DEST is an INT or a WORD_DESC *. */ -REDIRECT * -make_redirection (source, instruction, dest) - enum r_instruction instruction; -{ - REDIRECT *temp = (REDIRECT *)xmalloc (sizeof (REDIRECT)); - - /* First do the common cases. */ - temp->redirector = source; - temp->redirectee.dest = dest; - temp->instruction = instruction; - temp->next = (REDIRECT *)NULL; - - switch (instruction) - { - - case r_output_direction: /* >foo */ - case r_output_force: /* >| foo */ - temp->flags = O_TRUNC | O_WRONLY | O_CREAT; - break; - - case r_input_direction: /* flags = O_RDONLY; - break; - - case r_appending_to: /* >>foo */ - temp->flags = O_APPEND | O_WRONLY | O_CREAT; - break; - - case r_deblank_reading_until: /* <<-foo */ - case r_reading_until: /* << foo */ - break; - - case r_duplicating_input: /* 1<&2 */ - case r_duplicating_output: /* 1>&2 */ - case r_close_this: /* <&- */ - case r_duplicating_input_word: /* 1<&$foo */ - case r_duplicating_output_word: /* 1>&$foo */ - break; - - case r_err_and_out: /* command &>filename */ - temp->flags = O_TRUNC | O_WRONLY | O_CREAT; - break; - - case r_input_output: - temp->flags = O_RDWR; - break; - - default: - programming_error ("Redirection instruction from yyparse () '%d' is\n\ -out of range in make_redirection ().", instruction); - abort (); - break; - } - return (temp); -} - -COMMAND * -make_function_def (name, command) - WORD_DESC *name; - COMMAND *command; -{ - FUNCTION_DEF *temp; - - temp = (FUNCTION_DEF *)xmalloc (sizeof (FUNCTION_DEF)); - temp->command = command; - temp->name = name; - return (make_command (cm_function_def, (SIMPLE_COM *)temp)); -} - -/* Reverse the word list and redirection list in the simple command - has just been parsed. It seems simpler to do this here the one - time then by any other method that I can think of. */ -COMMAND * -clean_simple_command (command) - COMMAND *command; -{ - extern GENERIC_LIST *reverse_list (); - - if (command->type != cm_simple) - { - programming_error - ("clean_simple_command () got a command with type %d.", command->type); - } - else - { - command->value.Simple->words = - (WORD_LIST *)reverse_list (command->value.Simple->words); - command->value.Simple->redirects = - (REDIRECT *)reverse_list (command->value.Simple->redirects); - } - - return (command); -} - -/* Cons up a new array of words. The words are taken from LIST, - which is a WORD_LIST *. Absolutely everything is malloc'ed, - so you should free everything in this array when you are done. - The array is NULL terminated. */ -char ** -make_word_array (list) - WORD_LIST *list; -{ - int count = list_length (list); - char **array = (char **)xmalloc ((1 + count) * sizeof (char *)); - - for (count = 0; list; count++) - { - array[count] = (char *)xmalloc (1 + strlen (list->word->word)); - strcpy (array[count], list->word->word); - list = list->next; - } - array[count] = (char *)NULL; - return (array); -} diff --git a/CWRU/posix-parser/parse.y b/CWRU/posix-parser/parse.y deleted file mode 100644 index df7faba2a..000000000 --- a/CWRU/posix-parser/parse.y +++ /dev/null @@ -1,1932 +0,0 @@ -/* Yacc grammar for bash. */ - -/* Copyright (C) 1989 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -%{ -#include -#include -#include -#include -#include "shell.h" -#include "flags.h" - -#define YYDEBUG 1 -extern int eof_encountered; -extern int no_line_editing; -extern int interactive, interactive_shell; - -extern COMMAND *new_make_simple_command (); - -extern char *index (); -/* **************************************************************** */ -/* */ -/* "Forward" declarations */ -/* */ -/* **************************************************************** */ - -/* This is kind of sickening. In order to let these variables be seen by - all the functions that need them, I am forced to place their declarations - far away from the place where they should logically be found. */ - -static int reserved_word_acceptable (); - -/* 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; - -/* The number of lines read from input while creating the current command. */ -int current_command_line_count = 0; - -/* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -REDIRECT *redirection_needing_here_doc = (REDIRECT *)NULL; -int need_here_doc = 0; -%} - -%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; - int separator_token; -} - -/* 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 recognized only under special circumstances. */ -%token IF THEN ELSE ELIF FI CASE ESAC FOR WHILE UNTIL DO DONE FUNCTION -%token IN BANG - -/* More general tokens. yylex () knows how to make these. */ -%token WORD ASSIGNMENT_WORD NAME -%token NUMBER -%token AND_AND OR_OR GREATER_GREATER LESS_LESS LESS_AND -%token GREATER_AND SEMI_SEMI LESS_LESS_MINUS AND_GREATER LESS_GREATER -%token GREATER_BAR NEWLINE - -/* The types that the various syntactical units return. */ - -%type complete_command -%type list and_or pipeline pipe_sequence tcommand compound_command -%type simple_command subshell compound_list term -%type function_definition brace_group -%type for_clause case_clause while_clause if_clause until_clause -%type do_group else_part -%type redirect_list redirect -%type wordlist pattern -%type separator separator_op linebreak newline_list -%type sequential_sep -%type case_list case_item -%type cmd_prefix cmd_suffix -%type cmd_name cmd_word - -%start inputunit - -%left yacc_EOF -%% - -inputunit: complete_command NEWLINE - { - TRACE("reduced complete_command NEWLINE to inputunit"); - global_command = $1; - YYACCEPT; - } - | NEWLINE - { - TRACE("reduced NEWLINE to inputunit"); - global_command = (COMMAND *)NULL; - YYACCEPT; - } - ; - -complete_command - : list separator - { - TRACE("reduced 'list separator' to complete_command"); - /* Case of regular command. Discard the error - safety net,and return the command just parsed. */ - $$ = $1; - } - | list - { - TRACE("reduced list to complete_command"); - /* Case of regular command. Discard the error - safety net,and return the command just parsed. */ - $$ = $1; - } - | error - { - /* 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; - } - ; - -list : list separator_op and_or - { - $$ = command_connect ($1, $3, $2); - if (need_here_doc) - make_here_document (redirection_needing_here_doc); - need_here_doc = 0; - } - | and_or - { - $$ = $1; - if (need_here_doc) - make_here_document (redirection_needing_here_doc); - need_here_doc = 0; - TRACE("reduced and_or to list"); - } - ; - -and_or : pipeline - { - TRACE("reduced pipeline to and_or"); - $$ = $1; - } - | and_or AND_AND linebreak pipeline - { $$ = command_connect ($1, $4, AND_AND); } - | and_or OR_OR linebreak pipeline - { $$ = command_connect ($1, $4, OR_OR); } - ; - -pipeline: pipe_sequence - { - TRACE("reduced pipe_sequence to pipeline"); - $$ = $1; - } - | BANG pipe_sequence - { - $2->flags |= CMD_INVERT_RETURN; - $$ = $2; - } - ; - -pipe_sequence: tcommand - { - TRACE("reduced tcommand to pipe_sequence"); - $$ = $1; - } - | pipe_sequence '|' linebreak tcommand - { $$ = command_connect ($1, $4, '|'); } - ; - -tcommand: simple_command - { - TRACE("reduced simple_command to tcommand"); - $$ = clean_simple_command ($1); - } - | compound_command - { $$ = $1; } - | compound_command redirect_list - { - $1->redirects = $2; - $$ = $1; - } - | function_definition - { $$ = $1; } - ; - -compound_command - : brace_group - { $$ = $1; } - | subshell - { $$ = $1; } - | for_clause - { - TRACE("reduced FOR_CLAUSE to COMPOUND_COMMAND"); - $$ = $1; - } - | case_clause - { $$ = $1; } - | if_clause - { - TRACE("reduced IF_CLAUSE to COMPOUND_COMMAND"); - $$ = $1; - } - | while_clause - { - TRACE("reduced WHILE_CLAUSE to COMPOUND_COMMAND"); - $$ = $1; - } - | until_clause - { $$ = $1; } - ; - -subshell: '(' list ')' - { $2->flags |= CMD_WANT_SUBSHELL; $$ = $2; } - ; - - -compound_list - : term - { $$ = $1; } - | newline_list term - { $$ = $2; } - | term separator - { $$ = command_connect ($1, 0, $2); } - | newline_list term separator - { $$ = command_connect ($2, 0, $3); } - ; - -term : term separator and_or - { $$ = command_connect ($1, $3, $2); } - | and_or - { $$ = $1; } - ; - -for_clause - : FOR WORD do_group - { $$ = make_for_command ($2, (WORD_LIST *)add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $3); } - | FOR WORD newline_list IN wordlist sequential_sep do_group - { $$ = make_for_command ($2, (WORD_LIST *)reverse_list ($5), $7); } - | FOR WORD IN wordlist sequential_sep do_group - { - TRACE("reduced FOR_CLAUSE"); - $$ = make_for_command ($2, (WORD_LIST *)reverse_list ($4), $6); - } - ; - -wordlist: wordlist WORD - { $$ = make_word_list ($2, $1); } - | WORD - { $$ = make_word_list ($1, (WORD_LIST *)NULL); } - ; - -case_clause - : CASE WORD IN linebreak case_list ESAC - { $$ = make_case_command ($2, $5); } - | CASE WORD IN linebreak ESAC - { $$ = make_case_command ($2, (PATTERN_LIST *)NULL); } - ; - -case_list - : case_list case_item - { $2->next = $1; $$ = $2; } - | case_item - { $$ = $1; } - ; - -case_item - : pattern ')' linebreak SEMI_SEMI linebreak - { $$ = make_pattern_list ($1, (COMMAND *)NULL); } - | pattern ')' compound_list SEMI_SEMI linebreak - { $$ = make_pattern_list ($1, $3); } - | '(' pattern ')' compound_list SEMI_SEMI linebreak - { $$ = make_pattern_list ($2, $4); } - | '(' pattern ')' linebreak SEMI_SEMI linebreak - { $$ = make_pattern_list ($2, (COMMAND *)NULL); } - ; - -pattern: WORD - { $$ = make_word_list ($1, (WORD_LIST *)NULL); } - | pattern '|' WORD - { $$ = make_word_list ($3, $1); } - ; - -if_clause: IF compound_list THEN compound_list else_part FI - { $$ = make_if_command ($2, $4, $5); } - | IF compound_list THEN compound_list FI - { $$ = make_if_command ($2, $4, (COMMAND *)NULL); } - ; - -else_part: ELIF compound_list THEN else_part - { $$ = make_if_command ($2, $4, (COMMAND *)NULL); } - | ELSE compound_list - { $$ = $2; } - ; - -while_clause: WHILE compound_list do_group - { - TRACE("reduced WHILE_CLAUSE"); - $$ = make_while_command ($2, $3); - } - ; - -until_clause: UNTIL compound_list do_group - { $$ = make_until_command ($2, $3); } - ; - -function_definition - : WORD '(' ')' linebreak brace_group - { $$ = make_function_def ($1, $5); } - ; - -brace_group: '{' compound_list '}' - { $$ = make_group_command ($2); } - ; - - -do_group: DO compound_list DONE - { - TRACE("reduced DO_GROUP"); - $$ = $2; - } - ; - -cmd_prefix: ASSIGNMENT_WORD - { - struct element *temp_element; - temp_element = (ELEMENT *)xmalloc (sizeof (ELEMENT)); - temp_element->word = $1; - temp_element->redirect = (REDIRECT *)NULL; - temp_element->next = (struct element *)NULL; - TRACE("reduced cmd_prefix to ASSIGNMENT_WORD"); - $$ = temp_element; - } - | cmd_prefix ASSIGNMENT_WORD - { - struct element *temp_element; - temp_element = (ELEMENT *)xmalloc (sizeof (ELEMENT)); - temp_element->word = $2; - temp_element->redirect = (REDIRECT *)NULL; - temp_element->next = (struct element *)NULL; - $1->next = temp_element; - TRACE("reduced cmd_prefix to cmd_prefix ASSIGNMENT_WORD"); - $$ = $1; - } - | redirect - { - struct element *temp_element; - temp_element = (ELEMENT *)xmalloc (sizeof (ELEMENT)); - temp_element->word = (WORD_DESC *)NULL; - temp_element->redirect = $1; - temp_element->next = (struct element *)NULL; - TRACE("reduced cmd_prefix to redirect"); - $$ = temp_element; - } - | cmd_prefix redirect - { - struct element *temp_element; - temp_element = (ELEMENT *)xmalloc (sizeof (ELEMENT)); - temp_element->word = (WORD_DESC *)NULL; - temp_element->redirect = $2; - temp_element->next = (struct element *)NULL; - $1->next = temp_element; - TRACE("reduced cmd_prefix to cmd_prefix redirect"); - $$ = $1; - } - ; - -cmd_name: WORD - { - TRACE ("reduced WORD to cmd_name"); - $$ = $1; - } - ; - -cmd_word: WORD - { - TRACE ("reduced WORD to cmd_word"); - $$ = $1; - } - ; - -cmd_suffix: WORD - { - struct element *temp_element; - temp_element = (ELEMENT *)xmalloc (sizeof (ELEMENT)); - temp_element->word = $1; - temp_element->redirect = (REDIRECT *)NULL; - temp_element->next = (struct element *)NULL; - TRACE("reduced cmd_suffix to WORD"); - $$ = temp_element; - } - | cmd_suffix WORD - { - struct element *temp_element; - temp_element = (ELEMENT *)xmalloc (sizeof (ELEMENT)); - temp_element->word = $2; - temp_element->redirect = (REDIRECT *)NULL; - temp_element->next = (struct element *)NULL; - TRACE("reduced cmd_suffix to cmd_suffix WORD"); - $1->next = temp_element; - $$ = $1; - } - | redirect - { - struct element *temp_element; - temp_element = (ELEMENT *)xmalloc (sizeof (ELEMENT)); - temp_element->word = (WORD_DESC *)NULL; - temp_element->redirect = $1; - temp_element->next = (struct element *)NULL; - TRACE("reduced cmd_sufffix to redirect"); - $$ = temp_element; - } - | cmd_suffix redirect - { - struct element *temp_element; - temp_element = (ELEMENT *)xmalloc (sizeof (ELEMENT)); - temp_element->word = (WORD_DESC *)NULL; - temp_element->redirect = $2; - temp_element->next = (struct element *)NULL; - $1->next = temp_element; - TRACE("reduced cmd_suffix to cmd_suffix redirect"); - $$ = $1; - } - ; - -simple_command: cmd_prefix cmd_word cmd_suffix - { $$ = new_make_simple_command ($2, $1, $3); } - | cmd_prefix cmd_word - { $$ = new_make_simple_command ($2, $1, (ELEMENT *)NULL); } - | cmd_prefix - { $$ = new_make_simple_command ((WORD_DESC *)NULL, $1, (ELEMENT *)NULL); } - | cmd_name cmd_suffix - { $$ = new_make_simple_command ($1, (ELEMENT *)NULL, $2); } - | cmd_name - { - TRACE("reduced cmd_name to simple_command"); - $$ = new_make_simple_command ($1, (ELEMENT *)NULL, (ELEMENT *)NULL); - } - ; - -redirect_list: redirect - { - $$ = $1; - } - | redirect_list redirect - { - register REDIRECT *t = $1; - - while (t->next) - t = t->next; - t->next = $2; - $$ = $1; - } - ; - -redirect: '>' WORD - { $$ = make_redirection ( 1, r_output_direction, $2); } - | '<' WORD - { $$ = make_redirection ( 0, r_input_direction, $2); } - | NUMBER '>' WORD - { $$ = make_redirection ($1, r_output_direction, $3); } - | NUMBER '<' WORD - { $$ = make_redirection ($1, r_input_direction, $3); } - | GREATER_GREATER WORD - { $$ = make_redirection ( 1, r_appending_to, $2); } - | NUMBER GREATER_GREATER WORD - { $$ = make_redirection ($1, r_appending_to, $3); } - - | LESS_AND NUMBER - { $$ = make_redirection ( 0, r_duplicating_input, $2); } - | NUMBER LESS_AND NUMBER - { $$ = make_redirection ($1, r_duplicating_input, $3); } - | GREATER_AND NUMBER - { $$ = make_redirection ( 1, r_duplicating_output, $2); } - | NUMBER GREATER_AND NUMBER - { $$ = make_redirection ($1, r_duplicating_output, $3); } - | LESS_AND WORD - { $$ = make_redirection ( 0, r_duplicating_input_word, $2); } - | NUMBER LESS_AND WORD - { $$ = make_redirection ($1, r_duplicating_input_word, $3); } - | GREATER_AND WORD - { $$ = make_redirection ( 1, r_duplicating_output_word, $2); } - | NUMBER GREATER_AND WORD - { $$ = make_redirection ($1, r_duplicating_output_word, $3); } - | GREATER_AND '-' - { $$ = make_redirection ( 1, r_close_this, 0); } - | NUMBER GREATER_AND '-' - { $$ = make_redirection ($1, r_close_this, 0); } - | LESS_AND '-' - { $$ = make_redirection ( 0, r_close_this, 0); } - | NUMBER LESS_AND '-' - { $$ = make_redirection ($1, r_close_this, 0); } - | AND_GREATER WORD - { $$ = make_redirection ( 1, r_err_and_out, $2); } - | NUMBER LESS_GREATER WORD - { $$ = make_redirection ( $1, r_input_output, $3); } - | LESS_GREATER WORD - { - REDIRECT *t1, *t2; - extern WORD_DESC *copy_word (); - - t1 = make_redirection ( 0, r_input_direction, $2); - t2 = make_redirection ( 1, r_output_direction, copy_word ($2)); - t1->next = t2; - $$ = t1; - } - | GREATER_BAR WORD - { $$ = make_redirection ( 1, r_output_force, $2); } - | NUMBER GREATER_BAR WORD - { $$ = make_redirection ( $1, r_output_force, $3); } - | LESS_LESS WORD - { - $$ = make_redirection ( 0, r_reading_until, $2); - redirection_needing_here_doc = $$; - need_here_doc = 1; - } - | NUMBER LESS_LESS WORD - { - $$ = make_redirection ($1, r_reading_until, $3); - redirection_needing_here_doc = $$; - need_here_doc = 1; - } - | LESS_LESS_MINUS WORD - { - $$ = make_redirection ( 0, r_deblank_reading_until, $2); - redirection_needing_here_doc = $$; - need_here_doc = 1; - } - | NUMBER LESS_LESS_MINUS WORD - { - $$ = make_redirection ($1, r_deblank_reading_until, $3); - redirection_needing_here_doc = $$; - need_here_doc = 1; - } - ; - -newline_list: NEWLINE - { - TRACE("reduced NEWLINE to newline_list"); - $$ = NEWLINE; /* XXX -- broken */ - } - | newline_list NEWLINE - { - TRACE("reduced newline_list newline to newline_list"); - $$ = NEWLINE; /* XXX -- broken */ - } - ; - -linebreak: newline_list - { - TRACE("reduced newline_list to linebreak"); - $$ = NEWLINE; /* XXX -- broken */ - } - | - { - TRACE("reduced empty to linebreak"); - $$ = NEWLINE; /* XXX -- broken */ - } - ; - -separator_op: '&' - { - TRACE("reducing '&' to separator_op"); - $$ = '&'; /* XXX -- broken */ - } - | ';' - { - TRACE("reducing ';' to separator_op"); - $$ = ';'; /* XXX -- broken */ - } - ; - -separator: separator_op linebreak - { - TRACE("reduced separator_op linebreak to separator"); - $$ = $1; /* XXX -- broken */ - } - | newline_list - { - TRACE("reduced newline_list to separator"); - $$ = ';'; /* XXX -- broken */ - } - ; - -sequential_sep: ';' linebreak - { - TRACE("reduced ';' linebreak to sequential_sep"); - $$ = ';'; /* XXX -- broken */ - } - | newline_list - { - TRACE("reduced newline_list to sequential_sep: ';'"); - $$ = ';'; /* XXX -- broken */ - } - ; - -%% - -/* Initial size to allocate for tokens, and the - amount to grow them by. */ -#define TOKEN_DEFAULT_GROW_SIZE 512 - -/* The token currently being read. */ -int current_token = 0; - -/* The last read token, or NULL. read_token () uses this for context - checking. */ -int last_read_token = 0; - -/* The token read prior to last_read_token. */ -int token_before_that = 0; - -/* Global var is non-zero when end of file has been reached. */ -int EOF_Reached = 0; - -/* 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), makes the function `get' the installed function - for getting the next character, and makes `unget' the installed function - for un-getting a character. */ -return_EOF () /* does nothing good. */ -{ - return (EOF); -} - -/* Variables containing the current get and unget functions. */ - -/* Some stream `types'. */ -#define st_stream 0 -#define st_string 1 - -Function *get_yy_char = return_EOF; -Function *unget_yy_char = return_EOF; -int yy_input_type = st_stream; -FILE *yy_input_dev = (FILE *)NULL; - -/* The current stream name. In the case of a file, this is a filename. */ -char *stream_name = (char *)NULL; - -/* Function to set get_yy_char and unget_yy_char. */ -init_yy_io (get_function, unget_function, type, location) - Function *get_function, *unget_function; - int type; - FILE *location; -{ - get_yy_char = get_function; - unget_yy_char = unget_function; - yy_input_type = type; - yy_input_dev = location; -} - -/* Call this to get the next character of input. */ -yy_getc () -{ - return (*get_yy_char) (); -} - -/* Call this to unget C. That is, to make C the next character - to be read. */ -yy_ungetc (c) -{ - return (*unget_yy_char) (c); -} - -with_input_from_stdin () -{ - with_input_from_stream (stdin, "stdin"); -} - -/* **************************************************************** */ -/* */ -/* Let input come from STRING. STRING is zero terminated. */ -/* */ -/* **************************************************************** */ - -int -yy_string_get () -{ - /* If the string doesn't exist, or is empty, EOF found. */ - if (!(char *)yy_input_dev || !*(char *)yy_input_dev) - return (EOF); - else - { - register char *temp = (char *)yy_input_dev; - int c = *temp++; - yy_input_dev = (FILE *)temp; - return (c); - } -} - -int -yy_string_unget (c) - int c; -{ - register char *temp = (char *)yy_input_dev; - *(--temp) = c; - yy_input_dev = (FILE *)temp; - return (c); -} - -with_input_from_string (string, name) - char *string; - char *name; -{ - init_yy_io (yy_string_get, yy_string_unget, st_string, (FILE *)string); - stream_name = savestring (name); -} - -/* **************************************************************** */ -/* */ -/* Let input come from STREAM. */ -/* */ -/* **************************************************************** */ - -int -yy_stream_get () -{ - if (yy_input_dev) - return (getc (yy_input_dev)); - else - return (EOF); -} - -int -yy_stream_unget (c) - int c; -{ - return (ungetc (c, yy_input_dev)); -} - -with_input_from_stream (stream, name) - FILE *stream; - char *name; -{ - init_yy_io (yy_stream_get, yy_stream_unget, st_stream, stream); - stream_name = savestring (name); -} - -typedef struct stream_saver { - struct stream_saver *next; - Function *getter, *putter; - int type, line; - char *location, *name; -} STREAM_SAVER; - -/* The globally known line number. */ -int line_number = 0; - -STREAM_SAVER *stream_list = (STREAM_SAVER *)NULL; - -push_stream () -{ - STREAM_SAVER *temp = (STREAM_SAVER *)xmalloc (sizeof (STREAM_SAVER)); - temp->type = yy_input_type; - temp->location = (char *)yy_input_dev; - temp->getter = get_yy_char; - temp->putter = unget_yy_char; - temp->line = line_number; - temp->name = stream_name; stream_name = (char *)NULL; - temp->next = stream_list; - stream_list = temp; - EOF_Reached = line_number = 0; -} - -pop_stream () -{ - if (!stream_list) - { - EOF_Reached = 1; - } - else - { - STREAM_SAVER *temp = stream_list; - - EOF_Reached = 0; - stream_list = stream_list->next; - - if (stream_name) - free (stream_name); - stream_name = temp->name; - - init_yy_io (temp->getter, temp->putter, temp->type, (FILE *)temp->location); - line_number = temp->line; - free (temp); - } -} -static int in_case_pattern_list = 0; - - -/* Return a line of text, taken from wherever yylex () reads input. - If there is no more input, then we return NULL. */ -char * -read_a_line () -{ - char *line_buffer = (char *)NULL; - int indx = 0, buffer_size = 0; - int c; - - while (1) - { - c = yy_getc (); - - if (c == 0) - continue; - - /* If there is no more input, then we return NULL. */ - if (c == EOF) - { - c = '\n'; - if (!line_buffer) - return ((char *)NULL); - } - - /* `+2' in case the final (200'th) character in the buffer is a newline; - otherwise the code below that NULL-terminates it will write over the - 201st slot and kill the range checking in free(). */ - if (indx + 2 > buffer_size) - if (!buffer_size) - line_buffer = (char *)xmalloc (buffer_size = 200); - else - line_buffer = (char *)xrealloc (line_buffer, buffer_size += 200); - - 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. */ -char * -read_secondary_line () -{ - prompt_string_pointer = &ps2_prompt; - prompt_again (); - return (read_a_line ()); -} - - -/* **************************************************************** */ -/* */ -/* YYLEX () */ -/* */ -/* **************************************************************** */ - -/* Reserved words. These are only recognized as the first word of a - command. TOKEN_WORD_ALIST. */ -STRING_INT_ALIST word_token_alist[] = { - {"if", IF}, - {"then", THEN}, - {"else", ELSE}, - {"elif", ELIF}, - {"fi", FI}, - {"case", CASE}, - {"esac", ESAC}, - {"for", FOR}, - {"while", WHILE}, - {"until", UNTIL}, - {"do", DO}, - {"done", DONE}, - {"in", IN}, - {"function", FUNCTION}, - {"{", '{'}, - {"}", '}'}, - {"!", BANG}, - {(char *)NULL, 0} -}; - -/* Where shell input comes from. History expansion is performed on each - line when the shell is interactive. */ -char *shell_input_line = (char *)NULL; -int shell_input_line_index = 0; -int shell_input_line_size = 0; /* Amount allocated for shell_input_line. */ -int shell_input_line_len = 0; /* strlen (shell_input_line) */ - -/* Either zero, or EOF. */ -int shell_input_line_terminator = 0; - -/* 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. */ -int -shell_getc (remove_quoted_newline) - int remove_quoted_newline; -{ - int c; - - QUIT; - - if (!shell_input_line || !shell_input_line[shell_input_line_index]) - { - register int i, l; - char *pre_process_line (), *expansions; - - restart_read_next_line: - - line_number++; - - restart_read: - - i = 0; - shell_input_line_terminator = 0; - - clearerr (stdin); - while (c = yy_getc ()) - { - if (i + 2 > shell_input_line_size) - shell_input_line = (char *) - xrealloc (shell_input_line, shell_input_line_size += 256); - - if (c == EOF) - { - clearerr (stdin); - - if (!i) - 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) */ - - if (!shell_input_line || !shell_input_line[0]) - goto after_pre_process; - - if (interactive) - { - expansions = pre_process_line (shell_input_line, 1, 1); - - free (shell_input_line); - shell_input_line = expansions; - shell_input_line_len = shell_input_line ? - strlen (shell_input_line) : - 0; - /* 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; - } - - after_pre_process: -#if 0 - if (shell_input_line) - { - fprintf (stderr, "%s\n", shell_input_line); - } - else - { - shell_input_line_size = 0; - prompt_string_pointer = ¤t_prompt_string; - prompt_again (); - goto restart_read; - } -#endif - - /* 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) - { - l = shell_input_line_len; /* was a call to strlen */ - - if (l + 3 > shell_input_line_size) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); - - strcpy (shell_input_line + l, "\n"); - } - } - - c = shell_input_line[shell_input_line_index]; - - if (c) - shell_input_line_index++; - - if (c == '\\' && remove_quoted_newline && - shell_input_line[shell_input_line_index] == '\n') - { - prompt_again (); - goto restart_read_next_line; - } - - if (!c && shell_input_line_terminator == EOF) - { - if (shell_input_line_index != 0) - return (NEWLINE); - else - return (EOF); - } - - return (c); -} - -/* Put C back into the input for the shell. */ -shell_ungetc (c) - int c; -{ - if (shell_input_line && shell_input_line_index) - shell_input_line[--shell_input_line_index] = c; -} - -/* Discard input until CHARACTER is seen. */ -discard_until (character) - int character; -{ - int c; - while ((c = shell_getc (0)) != EOF && c != character) - ; - if (c != EOF ) - shell_ungetc (c); -} - -#if defined (HISTORY_REEDITING) -/* Tell readline () that we have some text for it to edit. */ -re_edit (text) - char *text; -{ -#if defined (READLINE) - if (strcmp (stream_name, "readline stdin") == 0) - bash_re_edit (text); -#endif /* READLINE */ -} -#endif /* HISTORY_REEDITING */ - -/* Non-zero means do no history expansion on this line, regardless - of what history_expansion says. */ -int history_expansion_inhibited = 0; - -/* Do pre-processing on LINE. If PRINT_CHANGES is non-zero, then - print the results of expanding the line if there were any changes. - If there is an error, return NULL, otherwise the expanded line is - returned. If ADDIT is non-zero the line is added to the history - list after history expansion. ADDIT is just a suggestion; - REMEMBER_ON_HISTORY can veto, and does. - Right now this does history expansion. */ -char * -pre_process_line (line, print_changes, addit) - char *line; - int print_changes, addit; -{ - char *return_value; - return_value = savestring (line); - - return (return_value); -} - - -/* Place to remember the token. We try to keep the buffer - at a reasonable size, but it can grow. */ -char *token = (char *)NULL; - -/* Current size of the token buffer. */ -int token_buffer_size = 0; - -/* 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. */ - -yylex () -{ - if (interactive && (!current_token || current_token == NEWLINE)) - { - prompt_again (); - } - - token_before_that = last_read_token; - last_read_token = current_token; - current_token = read_token (READ); - return (current_token); -} - -/* Called from shell.c when Control-C is typed at top level. Or - by the error rule at top level. */ -reset_parser () -{ - read_token (RESET); -} - -/* When non-zero, we have read the required tokens - which allow ESAC to be the next one read. */ -static int allow_esac_as_next = 0; - -/* When non-zero, accept single '{' as a token itself. */ -static int allow_open_brace = 0; - -/* DELIMITER is the value of the delimiter that is currently - enclosing, or zero for none. */ -static int delimiter = 0; -static int old_delimiter = 0; - -/* When non-zero, an open-brace used to create a group is awaiting a close - brace partner. */ -static int open_brace_awaiting_satisfaction = 0; - -/* 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. read_token resets this. */ -int token_to_read = 0; - -/* Read the next token. Command can be READ (normal operation) or - RESET (to normalize state). */ -read_token (command) - int command; -{ - extern int interactive_shell; /* Whether the current shell is interactive. */ - int character; /* Current character. */ - int peek_char; /* Temporary look-ahead character. */ - int result; /* The thing to return. */ - WORD_DESC *the_word; /* The value for YYLVAL when a WORD is read. */ - - if (token_buffer_size < TOKEN_DEFAULT_GROW_SIZE) - { - if (token) - free (token); - token = (char *)xmalloc (token_buffer_size = TOKEN_DEFAULT_GROW_SIZE); - } - - if (command == RESET) - { - delimiter = old_delimiter = 0; - open_brace_awaiting_satisfaction = 0; - in_case_pattern_list = 0; - - if (shell_input_line) - { - free (shell_input_line); - shell_input_line = (char *)NULL; - shell_input_line_size = shell_input_line_index = 0; - } - last_read_token = NEWLINE; - token_to_read = NEWLINE; - return (NEWLINE); - } - - if (token_to_read) - { - int rt = token_to_read; - token_to_read = 0; - return (rt); - } - - /* Read a single word from input. Start by skipping blanks. */ - while ((character = shell_getc (1)) != EOF && whitespace (character)); - - if (character == EOF) - return (yacc_EOF); - - if (character == '#' && !interactive) - { - /* A comment. Discard until EOL or EOF, and then return a newline. */ - discard_until ('\n'); - shell_getc (0); - - /* 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) - make_here_document (redirection_needing_here_doc); - need_here_doc = 0; - - return (NEWLINE); - } - - 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) - make_here_document (redirection_needing_here_doc); - need_here_doc = 0; - - TRACE ("read_token: returning NEWLINE"); - return (NEWLINE); - } - - if (member (character, "()<>;&|")) - { - /* Please note that the shell does not allow whitespace to - appear in between tokens which are character pairs, such as - "<<" or ">>". I believe this is the correct behaviour. */ - if (character == (peek_char = shell_getc (1))) - { - switch (character) - { - /* If '<' then we could be at "<<" or at "<<-". We have to - look ahead one more character. */ - case '<': - peek_char = shell_getc (1); - if (peek_char == '-') - return (LESS_LESS_MINUS); - else - { - shell_ungetc (peek_char); - return (LESS_LESS); - } - - case '>': - return (GREATER_GREATER); - - case ';': - in_case_pattern_list = 1; - return (SEMI_SEMI); - - case '&': - return (AND_AND); - - case '|': - return (OR_OR); - } - } - else - { - if (peek_char == '&') - { - switch (character) - { - case '<': return (LESS_AND); - case '>': return (GREATER_AND); - } - } - if (character == '<' && peek_char == '>') - return (LESS_GREATER); - if (character == '>' && peek_char == '|') - return (GREATER_BAR); - if (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 (character == ')' && - last_read_token == '(' && token_before_that == WORD) - { - allow_open_brace = 1; - } - - if (in_case_pattern_list && (character == ')')) - in_case_pattern_list = 0; -#if defined (PROCESS_SUBSTITUTION) - /* If we are performing process substitution, let <( and >( by - and make a word. */ - if (!((character == '>' || character == '<') && peek_char == '(')) -#endif /* PROCESS_SUBSTITUTION */ - - TRACE("read_token: returning '%c'", character); - return (character); - } - - /* Hack <&- (close stdin) case. */ - if (character == '-') - { - switch (last_read_token) - { - case LESS_AND: - case 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. */ - { - /* Index into the token that we are building. */ - int token_index = 0; - - /* ALL_DIGITS becomes zero when we see a non-digit. */ - int all_digits = digit (character); - - /* DOLLAR_PRESENT becomes non-zero if we see a `$'. */ - int dollar_present = 0; - - /* QUOTED becomes non-zero if we see one of ("), ('), (`), or (\). */ - int quoted = 0; - - /* Non-zero means to ignore the value of the next character, and just - to add it no matter what. */ - int pass_next_character = 0; - - /* Non-zero means parsing a dollar-paren construct. It is the count of - un-quoted closes we need to see. */ - int dollar_paren_level = 0; - - /* Non-zero means parsing a dollar-bracket construct ($[...]). It is - the count of un-quoted `]' characters we need to see. */ - int dollar_bracket_level = 0; - - /* Another level variable. This one is for dollar_parens inside of - double-quotes. */ - int delimited_paren_level = 0; - - for (;;) - { - if (character == EOF) - goto got_token; - - if (pass_next_character) - { - pass_next_character = 0; - goto got_character; - } - - if (delimiter && character == '\\' && delimiter != '\'') - { - peek_char = shell_getc (0); - if (peek_char != '\\') - shell_ungetc (peek_char); - else - { - token[token_index++] = character; - goto got_character; - } - } - - /* Handle backslashes. Quote lots of things when not inside of - double-quotes, quote some things inside of double-quotes. */ - - if (character == '\\' && delimiter != '\'') - { - peek_char = shell_getc (0); - - /* Backslash-newline is ignored in all cases excepting - 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, do it now. */ - if (!delimiter || delimiter == '`' || - ((delimiter == '"' ) && - (member (peek_char, slashify_in_quotes)))) - { - pass_next_character++; - quoted = 1; - goto got_character; - } - } - } - - /* This is a hack, in its present form. If a backquote substitution - appears within double quotes, everything within the backquotes - should be read as part of a single word. Jesus. Now I see why - Korn introduced the $() form. */ - if (delimiter && delimiter == '"' && character == '`') - { - old_delimiter = delimiter; - delimiter = character; - goto got_character; - } - - if (delimiter) - { - if (character == delimiter) - { - if (delimited_paren_level) - { -#if defined (NOTDEF) - report_error ("Expected ')' before %c", character); - return (NEWLINE); -#else - goto got_character; -#endif /* NOTDEF */ - } - - delimiter = 0; - - if (old_delimiter == '"' && character == '`') - { - delimiter = old_delimiter; - old_delimiter = 0; - } - - goto got_character; - } - } - - if (!delimiter || delimiter == '`' || delimiter == '"') - { -#if defined (PROCESS_SUBSTITUTION) - if (character == '$' || character == '<' || character == '>') -#else - if (character == '$') -#endif /* PROCESS_SUBSTITUTION */ - { - peek_char = shell_getc (1); - shell_ungetc (peek_char); - if (peek_char == '(') - { - if (!delimiter) - dollar_paren_level++; - else - delimited_paren_level++; - - pass_next_character++; - goto got_character; - } - else if (peek_char == '[') - { - if (!delimiter) - dollar_bracket_level++; - - pass_next_character++; - goto got_character; - } - } - - /* If we are parsing a $() or $[] construct, we need to balance - parens and brackets inside the construct. This whole function - could use a rewrite. */ - if (character == '(') - { - if (delimiter && delimited_paren_level) - delimited_paren_level++; - - if (!delimiter && dollar_paren_level) - dollar_paren_level++; - } - - if (character == '[') - { - if (!delimiter && dollar_bracket_level) - dollar_bracket_level++; - } - - /* This code needs to take into account whether we are inside a - case statement pattern list, and whether this paren is supposed - to terminate it (hey, it could happen). It's not as simple - as just using in_case_pattern_list, because we're not parsing - anything while we're reading a $( ) construct. Maybe we - should move that whole mess into the yacc parser. */ - if (character == ')') - { - if (delimiter && delimited_paren_level) - delimited_paren_level--; - - if (!delimiter && dollar_paren_level) - { - dollar_paren_level--; - goto got_character; - } - } - - if (character == ']') - { - if (!delimiter && dollar_bracket_level) - { - dollar_bracket_level--; - goto got_character; - } - } - } - - if (!dollar_paren_level && !dollar_bracket_level && !delimiter && - member (character, " \t\n;&()|<>")) - { - shell_ungetc (character); - goto got_token; - } - - if (!delimiter) - { - if (character == '"' || character == '`' || character == '\'') - { - quoted = 1; - delimiter = character; - goto got_character; - } - } - - if (all_digits) all_digits = digit (character); - if (character == '$') dollar_present = 1; - - got_character: - - token[token_index++] = character; - - if (token_index == (token_buffer_size - 1)) - token = (char *)xrealloc (token, (token_buffer_size - += TOKEN_DEFAULT_GROW_SIZE)); - { - char *decode_prompt_string (); - - next_character: - if (character == '\n' && interactive && yy_input_type != st_string) - 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). */ - character = shell_getc ((delimiter != '\'') && (!pass_next_character)); - } - - got_token: - - token[token_index] = '\0'; - - if ((delimiter || dollar_paren_level || dollar_bracket_level) && - character == EOF) - { - if (dollar_paren_level && !delimiter) - delimiter = ')'; - else if (dollar_bracket_level && !delimiter) - delimiter = ']'; - - report_error ("Unexpected EOF. Looking for `%c'.", delimiter); - return (-1); - } - - if (all_digits) - { - /* 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 ((character == '<' || character == '>') || - (last_read_token == LESS_AND || - last_read_token == GREATER_AND)) - { - yylval.number = atoi (token); /* was sscanf (token, "%d", &(yylval.number)); */ - return (NUMBER); - } - } - - /* Handle special case. IN is recognized if the last token - was WORD and the token before that was FOR or CASE. */ - if ((last_read_token == WORD) && - ((token_before_that == FOR) || (token_before_that == CASE)) && - (STREQ (token, "in"))) - { - if (token_before_that == CASE) - { - in_case_pattern_list = 1; - allow_esac_as_next++; - } - TRACE("returning %s as IN", token); - return (IN); - } - - /* Ditto for DO in the FOR case. */ - if ((last_read_token == WORD) && (token_before_that == FOR) && - (STREQ (token, "do"))) - 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 (allow_esac_as_next) - { - allow_esac_as_next--; - if (STREQ (token, "esac")) - { - in_case_pattern_list = 0; - return (ESAC); - } - } - - /* Ditto for `{' in the FUNCTION case. */ - if (allow_open_brace) - { - allow_open_brace = 0; - if (STREQ (token, "{")) - { - open_brace_awaiting_satisfaction++; - return ('{'); - } - } - - /* Check to see if it is a reserved word. */ - 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 (token, word_token_alist[i].word)) - { - if (in_case_pattern_list && (word_token_alist[i].token != ESAC)) - break; - - if (word_token_alist[i].token == ESAC) - in_case_pattern_list = 0; - - if (word_token_alist[i].token == '{') - open_brace_awaiting_satisfaction++; - - TRACE("returning %s as %d", token, word_token_alist[i].token); - return (word_token_alist[i].token); - } - } - - /* What if we are attempting to satisfy an open-brace grouper? */ - if (open_brace_awaiting_satisfaction && strcmp (token, "}") == 0) - { - open_brace_awaiting_satisfaction--; - return ('}'); - } - - the_word = (WORD_DESC *)xmalloc (sizeof (WORD_DESC)); - the_word->word = (char *)xmalloc (1 + strlen (token)); - strcpy (the_word->word, token); - the_word->dollar_present = dollar_present; - the_word->quoted = quoted; - the_word->assignment = assignment (token); - - yylval.word = the_word; - - result = WORD; - - if ((last_read_token == ASSIGNMENT_WORD || command_word_acceptable (last_read_token)) && - the_word->assignment && - token[0] != '=' && - legal_assignment (token)) - result = ASSIGNMENT_WORD; - - TRACE("read_token: returning %s as %s", token, - (result == WORD) ? "WORD" : - result == NAME ? "NAME" : "ASSIGNMENT_WORD"); - if (last_read_token == FUNCTION) - allow_open_brace = 1; - } - return (result); -} - -legal_assignment (s) -char *s; -{ - extern char *index (); - char *t = index (s, '='); - int result; - - *t = '\0'; - result = legal_identifier (s); - *t = '='; - return (result); -} - -/* Return 1 if this token is a legal shell `identifier'; that is, it consists - solely of letters, digits, and underscores, and does not begin with a - digit. */ -legal_identifier (name) - char *name; -{ - register char *s; - - if (!name || !*name) - return (0); - - if (digit (*name)) - return (0); - - for (s = name; s && *s; s++) - { - if (!isletter (*s) && !digit (*s) && (*s != '_')) - return (0); - } - return (1); -} - -/* Return 1 if TOKEN is a token that after being read would allow - a reserved word to be seen, else 0. */ -static int -reserved_word_acceptable (token) - int token; -{ - if (member (token, "\n;()|&{") || - token == AND_AND || - token == BANG || - token == DO || - token == ELIF || - token == ELSE || - token == IF || - token == FI || - token == ESAC || - token == OR_OR || - token == SEMI_SEMI || - token == THEN || - token == UNTIL || - token == WHILE || - token == 0) - return (1); - else - return (0); -} - -/* Return 1 if TOKEN is a token that after being read would allow - a reserved word to be seen, else 0. */ -static int -command_word_acceptable (token) - int token; -{ - if (member (token, "\n;()|&{") || - token == AND_AND || - token == BANG || - token == DO || - token == ELIF || - token == ELSE || - token == IF || - token == OR_OR || - token == THEN || - token == UNTIL || - token == WHILE || - token == 0) - return (1); - else - return (0); -} - -reset_readline_prompt () -{ -} - -/* Add a line to the history list. - The variable COMMAND_ORIENTED_HISTORY controls the style of history - remembering; when non-zero, and LINE is not the first line of a - complete parser construct, append LINE to the last history line instead - of adding it as a new line. */ -bash_add_history (line) - char *line; -{ -} - -/* Issue a prompt, or prepare to issue a prompt when the next character - is read. */ -prompt_again () -{ - char *temp_prompt, *decode_prompt_string (); - - ps1_prompt = "posix$ "; - ps2_prompt = "> "; - - if (!prompt_string_pointer) - prompt_string_pointer = &ps1_prompt; - - current_prompt_string = *prompt_string_pointer; - prompt_string_pointer = &ps2_prompt; - - fprintf (stderr, "%s", current_prompt_string); - fflush (stderr); -} - -char * -decode_prompt_string (string) - char *string; -{ - char *result; - result = savestring (string); - - return (result); -} - -/* Report a syntax error, and restart the parser. Call here for fatal - errors. */ -yyerror () -{ - report_syntax_error ((char *)NULL); - reset_parser (); -} - -/* 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. */ -report_syntax_error (message) - char *message; -{ - if (message) - { - if (!interactive) - { - char *name = stream_name ? stream_name : "stdin"; - report_error ("%s:%d: `%s'", name, line_number, message); - } - else - report_error ("%s", message); - - return; - } - - if (shell_input_line && *shell_input_line) - { - char *error_token, *t = shell_input_line; - register int i = shell_input_line_index; - int token_end = 0; - - if (!t[i] && i) - i--; - - while (i && (t[i] == ' ' || t[i] == '\t' || t[i] == '\n')) - i--; - - if (i) - token_end = i + 1; - - while (i && !member (t[i], " \n\t;|&")) - i--; - - while (i != token_end && member (t[i], " \n\t")) - i++; - - if (token_end) - { - error_token = (char *)alloca (1 + (token_end - i)); - strncpy (error_token, t + i, token_end - i); - error_token[token_end - i] = '\0'; - - report_error ("syntax error near `%s'", error_token); - } - else if ((i == 0) && (token_end == 0)) /* a 1-character token */ - { - error_token = (char *) alloca (2); - strncpy(error_token, t + i, 1); - error_token[1] = '\0'; - - report_error ("syntax error near `%s'", error_token); - } - - if (!interactive) - { - char *temp = savestring (shell_input_line); - char *name = stream_name ? stream_name : "stdin"; - int l = strlen (temp); - - while (l && temp[l - 1] == '\n') - temp[--l] = '\0'; - - report_error ("%s:%d: `%s'", name, line_number, temp); - free (temp); - } - } - else - report_error ("Syntax error"); -} - -/* ??? 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. */ -discard_parser_constructs (error_p) - int error_p; -{ -/* if (error_p) { - fprintf (stderr, "*"); - } */ -} - -handle_eof_input_unit () -{ - EOF_Reached = 1; -} - -TRACE(va_alist) -va_dcl -{ - va_list args; - char *format; - - va_start (args); - fprintf(stderr, "TRACE: "); - format = va_arg (args, char *); - vfprintf (stderr, format, args); - fprintf (stderr, "\n"); - - va_end (args); -} diff --git a/CWRU/posix-parser/shell.h b/CWRU/posix-parser/shell.h deleted file mode 100644 index 9fb14422b..000000000 --- a/CWRU/posix-parser/shell.h +++ /dev/null @@ -1,71 +0,0 @@ -/* shell.h -- The data structures used by the shell */ - -#include "config.h" -#include "general.h" -#include "error.h" -#include "variables.h" -#include "quit.h" -#include "maxpath.h" -#include "unwind_prot.h" -#include "command.h" - -extern int EOF_Reached; - -#define NO_PIPE -1 -#define REDIRECT_BOTH -2 -#define IS_DESCRIPTOR -1 - -#define NO_VARIABLE -1 - -/* A bunch of stuff for flow of control using setjmp () and longjmp (). */ -#include -extern jmp_buf top_level, catch; - -#define NOT_JUMPED 0 /* Not returning from a longjmp. */ -#define FORCE_EOF 1 /* We want to stop parsing. */ -#define DISCARD 2 /* Discard current command. */ -#define EXITPROG 3 /* Unconditionally exit the program now. */ - -/* Values that can be returned by execute_command (). */ -#define EXECUTION_FAILURE 1 -#define EXECUTION_SUCCESS 0 - -/* Special exit status used when the shell is asked to execute a - binary file as a shell script. */ -#define EX_BINARY_FILE 126 - -/* The list of characters that are quoted in double-quotes with a - backslash. Other characters following a backslash cause nothing - special to happen. */ -#define slashify_in_quotes "\\`$\"" -#define slashify_in_here_document "\\`$" - -/* Constants which specify how to handle backslashes and quoting in - expand_word_internal (). Q_DOUBLE_QUOTES means to use the function - slashify_in_quotes () to decide whether the backslash should be - retained. Q_HERE_DOCUMENT means slashify_in_here_document () to - decide whether to retain the backslash. Q_KEEP_BACKSLASH means - to unconditionally retain the backslash. */ -#define Q_DOUBLE_QUOTES 0x1 -#define Q_HERE_DOCUMENT 0x2 -#define Q_KEEP_BACKSLASH 0x4 - -extern char **shell_environment; -extern WORD_LIST *rest_of_args; - -/* Generalized global variables. */ -extern int executing, login_shell; - -/* Structure to pass around that holds a bitmap of file descriptors - to close, and the size of that structure. Used in execute_cmd.c. */ -struct fd_bitmap { - long size; - char *bitmap; -}; - -#define FD_BITMAP_SIZE 32 - -#if defined (EIGHT_BIT) -# define CTLESC '\001' -# define CTLNUL '\002' -#endif /* EIGHT_BIT */ diff --git a/CWRU/save/unwind_prot.c.sighandling b/CWRU/save/unwind_prot.c.sighandling deleted file mode 100644 index a33476724..000000000 --- a/CWRU/save/unwind_prot.c.sighandling +++ /dev/null @@ -1,294 +0,0 @@ -/* I can't stand it anymore! Please can't we just write the - whole Unix system in lisp or something? */ - -/* Copyright (C) 1987,1989 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/* **************************************************************** */ -/* */ -/* Unwind Protection Scheme for Bash */ -/* */ -/* **************************************************************** */ -#include -#include -#include "config.h" -#include "general.h" -#include "unwind_prot.h" - -/* If CLEANUP is null, then ARG contains a tag to throw back to. */ -typedef struct _uwp { - struct _uwp *next; - Function *cleanup; - char *arg; -} UNWIND_ELT; - -static void - unwind_frame_discard_internal (), unwind_frame_run_internal (), - add_unwind_protect_internal (), remove_unwind_protect_internal (), - run_unwind_protects_internal (); - -static UNWIND_ELT *unwind_protect_list = (UNWIND_ELT *)NULL; - -/* Run a function without interrupts. */ -void -without_interrupts (function, arg1, arg2) - VFunction *function; - char *arg1, *arg2; -{ -#if defined (_POSIX_VERSION) - static int sets_done = 0; - static sigset_t set; - sigset_t oset; - - /* SET needs to be initialized only once. */ - if (sets_done == 0) - { - sigemptyset (&set); - sigaddset (&set, SIGINT); - sets_done = 1; - } - sigemptyset (&oset); - - sigprocmask (SIG_BLOCK, &set, &oset); -#else -# if defined (USG) - SigHandler *old_int; - - old_int = (SigHandler *)signal (SIGINT, SIG_IGN); -# else - int oldmask = sigblock (SIGINT); -# endif -#endif - - (*function)(arg1, arg2); - -#if defined (_POSIX_VERSION) - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); -#else -# if defined (USG) - signal (SIGINT, old_int); -# else - sigsetmask (oldmask); -# endif -#endif -} - -/* Start the beginning of a region. */ -void -begin_unwind_frame (tag) - char *tag; -{ - add_unwind_protect ((Function *)NULL, tag); -} - -/* Discard the unwind protects back to TAG. */ -void -discard_unwind_frame (tag) - char *tag; -{ - if (unwind_protect_list) - without_interrupts (unwind_frame_discard_internal, tag, (char *)NULL); -} - -/* Run the unwind protects back to TAG. */ -void -run_unwind_frame (tag) - char *tag; -{ - if (unwind_protect_list) - without_interrupts (unwind_frame_run_internal, tag, (char *)NULL); -} - -/* Add the function CLEANUP with ARG to the list of unwindable things. */ -void -add_unwind_protect (cleanup, arg) - Function *cleanup; - char *arg; -{ - without_interrupts (add_unwind_protect_internal, (char *)cleanup, arg); -} - -/* Remove the top unwind protect from the list. */ -void -remove_unwind_protect () -{ - if (unwind_protect_list) - without_interrupts - (remove_unwind_protect_internal, (char *)NULL, (char *)NULL); -} - -/* Run the list of cleanup functions in unwind_protect_list. */ -void -run_unwind_protects () -{ - if (unwind_protect_list) - without_interrupts - (run_unwind_protects_internal, (char *)NULL, (char *)NULL); -} - -/* **************************************************************** */ -/* */ -/* The Actual Functions */ -/* */ -/* **************************************************************** */ - -static void -add_unwind_protect_internal (cleanup, arg) - Function *cleanup; - char *arg; -{ - UNWIND_ELT *elt; - - elt = (UNWIND_ELT *)xmalloc (sizeof (UNWIND_ELT)); - elt->cleanup = cleanup; - elt->arg = arg; - elt->next = unwind_protect_list; - unwind_protect_list = elt; -} - -static void -remove_unwind_protect_internal () -{ - UNWIND_ELT *elt = unwind_protect_list; - - if (elt) - { - unwind_protect_list = unwind_protect_list->next; - free (elt); - } -} - -static void -run_unwind_protects_internal () -{ - UNWIND_ELT *t, *elt = unwind_protect_list; - - while (elt) - { - /* This function can be run at strange times, like when unwinding - the entire world of unwind protects. Thus, we may come across - an element which is simply a label for a catch frame. Don't call - the non-existant function. */ - if (elt->cleanup) - (*(elt->cleanup)) (elt->arg); - - t = elt; - elt = elt->next; - free (t); - } - unwind_protect_list = elt; -} - -static void -unwind_frame_discard_internal (tag) - char *tag; -{ - UNWIND_ELT *elt; - - while (elt = unwind_protect_list) - { - unwind_protect_list = unwind_protect_list->next; - if (!elt->cleanup && (STREQ (elt->arg, tag))) - { - free (elt); - break; - } - else - free (elt); - } -} - -static void -unwind_frame_run_internal (tag) - char *tag; -{ - UNWIND_ELT *elt; - - while (elt = unwind_protect_list) - { - unwind_protect_list = elt->next; - - /* If tag, then compare. */ - if (!elt->cleanup) - { - if (STREQ (elt->arg, tag)) - { - free (elt); - break; - } - free (elt); - continue; - } - else - { - (*(elt->cleanup)) (elt->arg); - free (elt); - } - } -} - -/* Structure describing a saved variable and the value to restore it to. */ -typedef struct { - int *variable; - char *desired_setting; - int size; -} SAVED_VAR; - -/* Restore the value of a variable, based on the contents of SV. If - sv->size is greater than sizeof (int), sv->desired_setting points to - a block of memory SIZE bytes long holding the value, rather than the - value itself. This block of memory is copied back into the variable. */ -static void -restore_variable (sv) - SAVED_VAR *sv; -{ - if (sv->size > sizeof (int)) - { - bcopy ((char *)sv->desired_setting, (char *)sv->variable, sv->size); - free (sv->desired_setting); - } - else - *(sv->variable) = (int)sv->desired_setting; - - free (sv); -} - -/* Save the value of a variable so it will be restored when unwind-protects - are run. VAR is a pointer to the variable. VALUE is the value to be - saved. SIZE is the size in bytes of VALUE. If SIZE is bigger than what - can be saved in an int, memory will be allocated and the value saved - into that using bcopy (). */ -void -unwind_protect_var (var, value, size) - int *var; - char *value; - int size; -{ - SAVED_VAR *s = (SAVED_VAR *)xmalloc (sizeof (SAVED_VAR)); - - s->variable = var; - if (size > sizeof (int)) - { - s->desired_setting = (char *)xmalloc (size); - bcopy (value, (char *)s->desired_setting, size); - } - else - s->desired_setting = value; - s->size = size; - add_unwind_protect ((Function *)restore_variable, (char *)s); -} diff --git a/CWRU/usleep.c b/CWRU/usleep.c deleted file mode 100644 index 5d269a884..000000000 --- a/CWRU/usleep.c +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include -#include -#include - -char *progname; - -int -main(int argc, char **argv) -{ - unsigned long int length; - - length = 0; - progname = argv[0]; - - if (argc != 2) { - fprintf(stderr, "%s: must be given a duration\n", progname); - return 1; - } - - length = strtol(argv[1], NULL, 10); - if (length == LONG_MAX) { - fprintf(stderr, "%s: number is too large: %s\n", progname, argv[1]); - return 1; - } - - usleep(length); - - return 0; -} diff --git a/MANIFEST.doc b/MANIFEST.doc deleted file mode 100644 index ab9507c4c..000000000 --- a/MANIFEST.doc +++ /dev/null @@ -1,25 +0,0 @@ -# -# Master Manifest file for documentation-only distribution -# -doc d -MANIFEST.doc f -doc/article.ps f -doc/rose94.ps f -doc/bash.ps f -doc/bashbug.ps f -doc/builtins.ps f -doc/rbash.ps f -doc/bashref.ps f -doc/bashref.dvi f -doc/bash.0 f -doc/bashbug.0 f -doc/builtins.0 f -doc/rbash.0 f -doc/article.txt f -doc/bash.html f -doc/bashref.html f -doc/article.pdf f -doc/bash.pdf f -doc/bashref.pdf f -doc/rose94.pdf f -doc/aosa-bash.pdf f diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0 deleted file mode 100644 index 435c26c18..000000000 --- a/autom4te.cache/output.0 +++ /dev/null @@ -1,17058 +0,0 @@ -@%:@! /bin/sh -@%:@ From configure.in for Bash 4.2, version 4.046. -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.68 for bash 4.2-maint. -@%:@ -@%:@ Report bugs to . -@%:@ -@%:@ -@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -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 -IFS=$as_save_IFS - - ;; -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 - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in @%:@( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in @%:@ (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and bug-bash@gnu.org -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; 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 - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# 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 - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_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 sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in @%:@( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# 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'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIB@&t@OBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='bash' -PACKAGE_TARNAME='bash' -PACKAGE_VERSION='4.2-maint' -PACKAGE_STRING='bash 4.2-maint' -PACKAGE_BUGREPORT='bug-bash@gnu.org' -PACKAGE_URL='' - -ac_unique_file="shell.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_header_list= -ac_func_list= -ac_subst_vars='LTLIBOBJS -LOCAL_DEFS -LOCAL_LDFLAGS -LOCAL_CFLAGS -LOCAL_LIBS -MALLOC_DEBUG -DEBUG -RELSTATUS -BASHVERS -ARFLAGS -BUILD_DIR -incdir -PROFILE_FLAGS -SHOBJ_STATUS -SHOBJ_LIBS -SHOBJ_XLDFLAGS -SHOBJ_LDFLAGS -SHOBJ_LD -SHOBJ_CFLAGS -SHOBJ_CC -JOBS_O -TERMCAP_DEP -TERMCAP_LIB -SIGLIST_O -LIBINTL_H -INTL_INC -INTL_DEP -LIB@&t@OBJS -POSUB -LTLIBINTL -LIBINTL -INTLLIBS -INTL_LIBTOOL_SUFFIX_PREFIX -INTLOBJS -GENCAT -INSTOBJEXT -DATADIRNAME -CATOBJEXT -USE_INCLUDED_LIBINTL -BUILD_INCLUDED_LIBINTL -INTLBISON -LTLIBICONV -LIBICONV -GLIBC21 -ALLOCA -MSGMERGE -XGETTEXT -GMSGFMT -MSGFMT -USE_NLS -MKINSTALLDIRS -SIZE -MAKE_SHELL -SET_MAKE -YFLAGS -YACC -RANLIB -AR -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -TILDE_LIB -HIST_LIBDIR -HISTORY_DEP -HISTORY_LIB -RL_INCLUDE -RL_INCLUDEDIR -RL_LIBDIR -READLINE_DEP -READLINE_LIB -RL_MINOR -RL_MAJOR -RL_VERSION -LIBS_FOR_BUILD -STATIC_LD -SIGNAMES_O -SIGNAMES_H -CROSS_COMPILE -EGREP -GREP -CPP -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -HELPSTRINGS -HELPFILES_TARGET -HELPINSTALL -HELPDIRDEFINE -HELPDIR -MALLOC_DEP -MALLOC_LDFLAGS -MALLOC_LIBRARY -MALLOC_LIB -MALLOC_SRC -MALLOC_TARGET -PURIFY -TESTSCRIPT -CPPFLAGS_FOR_BUILD -LDFLAGS_FOR_BUILD -CFLAGS_FOR_BUILD -CC_FOR_BUILD -DEBUGGER_START_FILE -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -with_afs -with_bash_malloc -with_curses -with_gnu_malloc -with_installed_readline -with_purecov -with_purify -enable_minimal_config -enable_alias -enable_arith_for_command -enable_array_variables -enable_bang_history -enable_brace_expansion -enable_casemod_attributes -enable_casemod_expansions -enable_command_timing -enable_cond_command -enable_cond_regexp -enable_coprocesses -enable_debugger -enable_directory_stack -enable_disabled_builtins -enable_dparen_arithmetic -enable_extended_glob -enable_extended_glob_default -enable_help_builtin -enable_history -enable_job_control -enable_multibyte -enable_net_redirections -enable_process_substitution -enable_progcomp -enable_prompt_string_decoding -enable_readline -enable_restricted -enable_select -enable_separate_helpfiles -enable_single_help_strings -enable_strict_posix_default -enable_usg_echo_default -enable_xpg_echo_default -enable_mem_scramble -enable_profiling -enable_static_link -enable_largefile -enable_nls -with_gnu_ld -enable_rpath -with_libiconv_prefix -with_included_gettext -with_libintl_prefix -' - ac_precious_vars='build_alias -host_alias -target_alias -DEBUGGER_START_FILE -CC_FOR_BUILD -CFLAGS_FOR_BUILD -LDFLAGS_FOR_BUILD -CPPFLAGS_FOR_BUILD -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -YACC -YFLAGS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# 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. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -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 - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -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) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$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 ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$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 ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - 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 ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$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_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=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 ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_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'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -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 - $as_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 - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# 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 the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - 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 - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# 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 4.2-maint 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 \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - @<:@@S|@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] - --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] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root @<:@DATAROOTDIR/doc/bash@:>@ - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_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 4.2-maint:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --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-casemod-attributes - include case-modifying variable attributes - --enable-casemod-expansions - include case-modifying word expansions - --enable-command-timing enable the time reserved word and command timing - --enable-cond-command enable the conditional command - --enable-cond-regexp enable extended regular expression matching in - conditional commands - --enable-coprocesses enable coprocess support and the coproc reserved - word - --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-extended-glob-default - force extended pattern matching to be enabled by - default - --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-strict-posix-default - configure bash to be posix-conformant by default - --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-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_FOR_BUILD - C compiler used when compiling binaries used only at build time - CFLAGS_FOR_BUILD - Compliation options (CFLAGS) used when compiling binaries used - only at build time - LDFLAGS_FOR_BUILD - Linker options (LDFLAGS) used when compiling binaries used only - at build time - CPPFLAGS_FOR_BUILD - C preprocessor options (CPPFLAGS) used when compiling binaries - used only at build time - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - YACC The `Yet Another Compiler Compiler' implementation to use. - Defaults to the first program found out of: `bison -y', `byacc', - `yacc'. - YFLAGS The list of arguments that will be passed by default to @S|@YACC. - This script will default YFLAGS to the empty string to avoid a - default value of `-d' given by some make applications. - -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 -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested 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 - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -bash configure 4.2-maint -generated by GNU Autoconf 2.68 - -Copyright (C) 2010 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 -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -@%:@ ac_fn_c_try_compile LINENO -@%:@ -------------------------- -@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_compile - -@%:@ ac_fn_c_try_link LINENO -@%:@ ----------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_link - -@%:@ ac_fn_c_try_cpp LINENO -@%:@ ---------------------- -@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_cpp - -@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using -@%:@ the include files in INCLUDES and setting the cache variable VAR -@%:@ accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_mongrel - -@%:@ ac_fn_c_try_run LINENO -@%:@ ---------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes -@%:@ that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_run - -@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists and can be compiled using the include files in -@%:@ INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_compile - -@%:@ ac_fn_c_check_func LINENO FUNC VAR -@%:@ ---------------------------------- -@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* 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_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_func - -@%:@ ac_fn_c_check_type LINENO TYPE VAR INCLUDES -@%:@ ------------------------------------------- -@%:@ Tests whether TYPE exists after having included INCLUDES, setting cache -@%:@ variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_type - -@%:@ ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -@%:@ --------------------------------------------- -@%:@ Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -@%:@ accordingly. -ac_fn_c_check_decl () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - as_decl_name=`echo $2|sed 's/ *(.*//'` - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -$as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -@%:@ifndef $as_decl_name -@%:@ifdef __cplusplus - (void) $as_decl_use; -@%:@else - (void) $as_decl_name; -@%:@endif -@%:@endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_decl - -@%:@ ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -@%:@ -------------------------------------------- -@%:@ Tries to find the compile-time value of EXPR in a program that includes -@%:@ INCLUDES, setting VAR accordingly. Returns whether the value could be -@%:@ computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) >= 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) >= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in @%:@(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -@%:@include -@%:@include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - echo >>conftest.val; read $3 &5 -$as_echo_n "checking for $2.$3... " >&6; } -if eval \${$4+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (sizeof ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - eval "$4=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$4 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_member -cat >config.log <<_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 4.2-maint, which was -generated by GNU Autoconf 2.68. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -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` -/usr/bin/hostinfo = `(/usr/bin/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=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&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_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append 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 - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset 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: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > 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 - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in @%:@(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - 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. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -as_fn_append ac_header_list " stdlib.h" -as_fn_append ac_header_list " unistd.h" -as_fn_append ac_header_list " sys/param.h" -as_fn_append ac_header_list " sys/time.h" -as_fn_append ac_func_list " alarm" -as_fn_append ac_func_list " fpurge" -as_fn_append ac_func_list " __fpurge" -as_fn_append ac_func_list " snprintf" -as_fn_append ac_func_list " vsnprintf" -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; 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,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_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 - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_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. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -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 - as_fn_error $? "cannot find install-sh, install.sh, or shtool in ./support \"$srcdir\"/./support" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -ac_config_headers="$ac_config_headers config.h" - - -BASHVERS=4.2 -RELSTATUS=maint - -case "$RELSTATUS" in -alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; -*) DEBUG= MALLOC_DEBUG= ;; -esac - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - -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, QNX 6.x -*-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-afs was given. -if test "${with_afs+set}" = set; then : - withval=$with_afs; opt_afs=$withval -fi - - -@%:@ Check whether --with-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 was given. -if test "${with_curses+set}" = set; then : - withval=$with_curses; opt_curses=$withval -fi - - -@%:@ Check whether --with-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 was given. -if test "${with_installed_readline+set}" = set; then : - withval=$with_installed_readline; opt_with_installed_readline=$withval -fi - - -@%:@ Check whether --with-purecov was given. -if test "${with_purecov+set}" = set; then : - withval=$with_purecov; opt_purecov=$withval -fi - - -@%:@ Check whether --with-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)' - - $as_echo "@%:@define USING_BASH_MALLOC 1" >>confdefs.h - -else - MALLOC_LIB= - MALLOC_LIBRARY= - MALLOC_LDFLAGS= - MALLOC_DEP= -fi - -if test "$opt_purify" = yes; then - PURIFY="purify " - $as_echo "@%:@define DISABLE_MALLOC_WRAPPERS 1" >>confdefs.h - -else - PURIFY= -fi - -if test "$opt_purecov" = yes; then - PURIFY="${PURIFY}purecov" -fi - -if test "$opt_afs" = yes; then - $as_echo "@%:@define AFS 1" >>confdefs.h - -fi - -if test "$opt_curses" = yes; then - prefer_curses=yes -fi - -if test -z "${DEBUGGER_START_FILE}"; then - DEBUGGER_START_FILE='${datadir}/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_strict_posix=no -opt_cond_command=yes -opt_cond_regexp=yes -opt_coproc=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_casemod_attrs=yes -opt_casemod_expansions=yes -opt_extglob_default=no - -opt_static_link=no -opt_profiling=no - -@%:@ Check whether --enable-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 opt_coproc=no - opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no -fi - -@%:@ Check whether --enable-alias was given. -if test "${enable_alias+set}" = set; then : - enableval=$enable_alias; opt_alias=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_array_variables+set}" = set; then : - enableval=$enable_array_variables; opt_array_variables=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_brace_expansion+set}" = set; then : - enableval=$enable_brace_expansion; opt_brace_expansion=$enableval -fi - -@%:@ Check whether --enable-casemod-attributes was given. -if test "${enable_casemod_attributes+set}" = set; then : - enableval=$enable_casemod_attributes; opt_casemod_attrs=$enableval -fi - -@%:@ Check whether --enable-casemod-expansions was given. -if test "${enable_casemod_expansions+set}" = set; then : - enableval=$enable_casemod_expansions; opt_casemod_expansions=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_cond_command+set}" = set; then : - enableval=$enable_cond_command; opt_cond_command=$enableval -fi - -@%:@ Check whether --enable-cond-regexp was given. -if test "${enable_cond_regexp+set}" = set; then : - enableval=$enable_cond_regexp; opt_cond_regexp=$enableval -fi - -@%:@ Check whether --enable-coprocesses was given. -if test "${enable_coprocesses+set}" = set; then : - enableval=$enable_coprocesses; opt_coproc=$enableval -fi - -@%:@ Check whether --enable-debugger was given. -if test "${enable_debugger+set}" = set; then : - enableval=$enable_debugger; opt_debugger=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_disabled_builtins+set}" = set; then : - enableval=$enable_disabled_builtins; opt_disabled_builtins=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_extended_glob+set}" = set; then : - enableval=$enable_extended_glob; opt_extended_glob=$enableval -fi - -@%:@ Check whether --enable-extended-glob-default was given. -if test "${enable_extended_glob_default+set}" = set; then : - enableval=$enable_extended_glob_default; opt_extglob_default=$enableval -fi - -@%:@ Check whether --enable-help-builtin was given. -if test "${enable_help_builtin+set}" = set; then : - enableval=$enable_help_builtin; opt_help=$enableval -fi - -@%:@ Check whether --enable-history was given. -if test "${enable_history+set}" = set; then : - enableval=$enable_history; opt_history=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_multibyte+set}" = set; then : - enableval=$enable_multibyte; opt_multibyte=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_process_substitution+set}" = set; then : - enableval=$enable_process_substitution; opt_process_subst=$enableval -fi - -@%:@ Check whether --enable-progcomp was given. -if test "${enable_progcomp+set}" = set; then : - enableval=$enable_progcomp; opt_progcomp=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_readline+set}" = set; then : - enableval=$enable_readline; opt_readline=$enableval -fi - -@%:@ Check whether --enable-restricted was given. -if test "${enable_restricted+set}" = set; then : - enableval=$enable_restricted; opt_restricted=$enableval -fi - -@%:@ Check whether --enable-select was given. -if test "${enable_select+set}" = set; then : - enableval=$enable_select; opt_select=$enableval -fi - -@%:@ Check whether --enable-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 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-strict-posix-default was given. -if test "${enable_strict_posix_default+set}" = set; then : - enableval=$enable_strict_posix_default; opt_strict_posix=$enableval -fi - -@%:@ Check whether --enable-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 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 was given. -if test "${enable_mem_scramble+set}" = set; then : - enableval=$enable_mem_scramble; opt_memscramble=$enableval -fi - -@%:@ Check whether --enable-profiling was given. -if test "${enable_profiling+set}" = set; then : - enableval=$enable_profiling; opt_profiling=$enableval -fi - -@%:@ Check whether --enable-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 -$as_echo "@%:@define ALIAS 1" >>confdefs.h - -fi -if test $opt_dirstack = yes; then -$as_echo "@%:@define PUSHD_AND_POPD 1" >>confdefs.h - -fi -if test $opt_restricted = yes; then -$as_echo "@%:@define RESTRICTED_SHELL 1" >>confdefs.h - -fi -if test $opt_process_subst = yes; then -$as_echo "@%:@define PROCESS_SUBSTITUTION 1" >>confdefs.h - -fi -if test $opt_prompt_decoding = yes; then -$as_echo "@%:@define PROMPT_STRING_DECODE 1" >>confdefs.h - -fi -if test $opt_select = yes; then -$as_echo "@%:@define SELECT_COMMAND 1" >>confdefs.h - -fi -if test $opt_help = yes; then -$as_echo "@%:@define HELP_BUILTIN 1" >>confdefs.h - -fi -if test $opt_array_variables = yes; then -$as_echo "@%:@define ARRAY_VARS 1" >>confdefs.h - -fi -if test $opt_dparen_arith = yes; then -$as_echo "@%:@define DPAREN_ARITHMETIC 1" >>confdefs.h - -fi -if test $opt_brace_expansion = yes; then -$as_echo "@%:@define BRACE_EXPANSION 1" >>confdefs.h - -fi -if test $opt_disabled_builtins = yes; then -$as_echo "@%:@define DISABLED_BUILTINS 1" >>confdefs.h - -fi -if test $opt_command_timing = yes; then -$as_echo "@%:@define COMMAND_TIMING 1" >>confdefs.h - -fi -if test $opt_xpg_echo = yes ; then -$as_echo "@%:@define DEFAULT_ECHO_TO_XPG 1" >>confdefs.h - -fi -if test $opt_strict_posix = yes; then -$as_echo "@%:@define STRICT_POSIX 1" >>confdefs.h - -fi -if test $opt_extended_glob = yes ; then -$as_echo "@%:@define EXTENDED_GLOB 1" >>confdefs.h - -fi -if test $opt_extglob_default = yes; then -$as_echo "@%:@define EXTGLOB_DEFAULT 1" >>confdefs.h - -else -$as_echo "@%:@define EXTGLOB_DEFAULT 0" >>confdefs.h - -fi -if test $opt_cond_command = yes ; then -$as_echo "@%:@define COND_COMMAND 1" >>confdefs.h - -fi -if test $opt_cond_regexp = yes ; then -$as_echo "@%:@define COND_REGEXP 1" >>confdefs.h - -fi -if test $opt_coproc = yes; then -$as_echo "@%:@define COPROCESS_SUPPORT 1" >>confdefs.h - -fi -if test $opt_arith_for_command = yes; then -$as_echo "@%:@define ARITH_FOR_COMMAND 1" >>confdefs.h - -fi -if test $opt_net_redirs = yes; then -$as_echo "@%:@define NETWORK_REDIRECTIONS 1" >>confdefs.h - -fi -if test $opt_progcomp = yes; then -$as_echo "@%:@define PROGRAMMABLE_COMPLETION 1" >>confdefs.h - -fi -if test $opt_multibyte = no; then -$as_echo "@%:@define NO_MULTIBYTE_SUPPORT 1" >>confdefs.h - -fi -if test $opt_debugger = yes; then -$as_echo "@%:@define DEBUGGER 1" >>confdefs.h - -fi -if test $opt_casemod_attrs = yes; then -$as_echo "@%:@define CASEMOD_ATTRS 1" >>confdefs.h - -fi -if test $opt_casemod_expansions = yes; then -$as_echo "@%:@define CASEMOD_EXPANSIONS 1" >>confdefs.h - -fi - -if test $opt_memscramble = yes; then -$as_echo "@%:@define MEMSCRAMBLE 1" >>confdefs.h - -fi - -if test "$opt_minimal_config" = yes; then - TESTSCRIPT=run-minimal -else - TESTSCRIPT=run-all -fi - -HELPDIR= HELPDIRDEFINE= HELPINSTALL= HELPFILES_TARGET= -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' - HELPFILES_TARGET='helpdoc' -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; 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 | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -std 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 -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 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 -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -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 - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5 -$as_echo_n "checking for strerror in -lcposix... " >&6; } -if ${ac_cv_lib_cposix_strerror+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcposix $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char strerror (); -int -main () -{ -return strerror (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_cposix_strerror=yes -else - ac_cv_lib_cposix_strerror=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5 -$as_echo "$ac_cv_lib_cposix_strerror" >&6; } -if test "x$ac_cv_lib_cposix_strerror" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -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 - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#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)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h - -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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = xyes; then : - MINIX=yes -else - MINIX= -fi - - - if test "$MINIX" = yes; then - -$as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h - - -$as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h - - -$as_echo "@%:@define _MINIX 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if ${ac_cv_safe_to_define___extensions__+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# define __EXTENSIONS__ 1 - $ac_includes_default -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_safe_to_define___extensions__=yes -else - ac_cv_safe_to_define___extensions__=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h - - $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h - - $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h - - $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h - - - - -@%:@ Check whether --enable-largefile was given. -if test "${enable_largefile+set}" = set; then : - enableval=$enable_largefile; -fi - -if test "$enable_largefile" != no; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if ${ac_cv_sys_largefile_CC+:} false; then : - $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - if ac_fn_c_try_compile "$LINENO"; then : - break -fi -rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -$as_echo "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if ${ac_cv_sys_file_offset_bits+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF -;; -esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if ${ac_cv_sys_large_files+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -@%:@define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF -;; -esac -rm -rf conftest* - fi -fi - - - -SIGNAMES_O= -SIGNAMES_H=lsignames.h - - - -CROSS_COMPILE= -if test "x$cross_compiling" = "xyes"; then - case "${host}" in - *-cygwin*) - cross_cache=${srcdir}/cross-build/cygwin32.cache - ;; - *-mingw*) - cross_cache=${srcdir}/cross-build/cygwin32.cache - ;; - i[3456]86-*-beos*) - cross_cache=${srcdir}/cross-build/x86-beos.cache - ;; - *) 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 - SIGNAMES_O='signames.o' - CROSS_COMPILE='-DCROSS_COMPILING' - -fi - - - - -if test -z "$CFLAGS"; then - AUTO_CFLAGS="-g ${GCC+-O2}" - AUTO_LDFLAGS="-g ${GCC+-O2}" -else - AUTO_CFLAGS= AUTO_LDFLAGS= -fi - -CFLAGS=${CFLAGS-"$AUTO_CFLAGS"} -# LDFLAGS=${LDFLAGS="$AUTO_LDFLAGS"} # XXX - -if test "$opt_profiling" = "yes"; then - PROFILE_FLAGS=-pg - case "$host_os" in - solaris2*) ;; - *) opt_static_link=yes ;; - esac - DEBUG= MALLOC_DEBUG= -fi - -prefer_shared=yes -prefer_static=no - -if test "$opt_static_link" = yes; then - prefer_static=yes - prefer_shared=no - # 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 - -# set the appropriate make variables for building the "build tools" - -if test "X$cross_compiling" = "Xno"; then - CC_FOR_BUILD=${CC_FOR_BUILD-'$(CC)'} - CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"} # XXX - should it be '$(CPPFLAGS)' - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'} - # CFLAGS set above to default value if not passed in environment - CFLAGS_FOR_BUILD=${CFLAGS-'$(CFLAGS)'} - LIBS_FOR_BUILD=${LIBS_FOR_BUILD-'$(LIBS)'} -else - CC_FOR_BUILD=${CC_FOR_BUILD-"gcc"} - CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""} - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""} - CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD="-g"} - LIBS_FOR_BUILD=${LIBS_FOR_BUILD-""} -fi - - - - - - - - - - - - -if test $ac_cv_c_compiler_gnu = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 -$as_echo_n "checking whether $CC needs -traditional... " >&6; } -if ${ac_cv_prog_gcc_traditional+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_pattern="Autoconf.*'x'" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -_bash_needmsg= -fi -if ${bash_cv_termcap_lib+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_fn_c_check_func "$LINENO" "tgetent" "ac_cv_func_tgetent" -if test "x$ac_cv_func_tgetent" = xyes; then : - bash_cv_termcap_lib=libc -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 -$as_echo_n "checking for tgetent in -ltermcap... " >&6; } -if ${ac_cv_lib_termcap_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermcap $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_termcap_tgetent=yes -else - ac_cv_lib_termcap_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 -$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } -if test "x$ac_cv_lib_termcap_tgetent" = xyes; then : - bash_cv_termcap_lib=libtermcap -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltinfo" >&5 -$as_echo_n "checking for tgetent in -ltinfo... " >&6; } -if ${ac_cv_lib_tinfo_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltinfo $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_tinfo_tgetent=yes -else - ac_cv_lib_tinfo_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_tgetent" >&5 -$as_echo "$ac_cv_lib_tinfo_tgetent" >&6; } -if test "x$ac_cv_lib_tinfo_tgetent" = xyes; then : - bash_cv_termcap_lib=libtinfo -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lcurses" >&5 -$as_echo_n "checking for tgetent in -lcurses... " >&6; } -if ${ac_cv_lib_curses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_curses_tgetent=yes -else - ac_cv_lib_curses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_tgetent" >&5 -$as_echo "$ac_cv_lib_curses_tgetent" >&6; } -if test "x$ac_cv_lib_curses_tgetent" = xyes; then : - bash_cv_termcap_lib=libcurses -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 -$as_echo_n "checking for tgetent in -lncurses... " >&6; } -if ${ac_cv_lib_ncurses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ncurses_tgetent=yes -else - ac_cv_lib_ncurses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 -$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } -if test "x$ac_cv_lib_ncurses_tgetent" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: using $bash_cv_termcap_lib" >&5 -$as_echo "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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of installed readline library" >&5 -$as_echo_n "checking version of installed readline library... " >&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 ${ac_cv_rl_version+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_rl_version='4.2' -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -extern int rl_gnu_readline_p; - -main() -{ - FILE *fp; - fp = fopen("conftest.rlv", "w"); - if (fp == 0) - exit(1); - if (rl_gnu_readline_p != 1) - fprintf(fp, "0.0\n"); - else - fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0"); - fclose(fp); - exit(0); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_rl_version=`cat conftest.rlv` -else - ac_cv_rl_version='0.0' -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam 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 - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not test version of installed readline library." >&5 -$as_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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rl_version" >&5 -$as_echo "$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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rl_version" >&5 -$as_echo "$ac_cv_rl_version" >&6; } - -fi - - - case "$ac_cv_rl_version" in - 5*|6*|7*|8*|9*) ;; - *) opt_with_installed_readline=no - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: installed readline library is too old to be linked with bash" >&5 -$as_echo "$as_me: WARNING: installed readline library is too old to be linked with bash" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using private bash version" >&5 -$as_echo "$as_me: WARNING: using private bash version" >&2;} - ;; - esac -fi - -TILDE_LIB=-ltilde -if test $opt_readline = yes; then - $as_echo "@%:@define READLINE 1" >>confdefs.h - - 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 - # section for OS versions that don't allow unresolved symbols - # to be compiled into dynamic libraries. - case "$host_os" in - cygwin*) TILDE_LIB= ;; - esac - else - RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' - READLINE_DEP='$(READLINE_LIBRARY)' - # section for OS versions that ship an older/broken 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 - darwin[89]*|darwin10*) 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 - $as_echo "@%:@define HISTORY 1" >>confdefs.h - - fi - if test $opt_bang_history = yes; then - $as_echo "@%:@define BANG_HISTORY 1" >>confdefs.h - - 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 - darwin[89]*|darwin10*) 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. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -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. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_YACC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_YACC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -YACC=$ac_cv_prog_YACC -if test -n "$YACC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 -$as_echo "$YACC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$YACC" && break -done -test -n "$YACC" || YACC="yacc" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 - - -$as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* 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"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 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; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes -else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -$as_echo "@%:@define const /**/" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; 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 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "@%:@define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "@%:@define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for preprocessor stringizing operator" >&5 -$as_echo_n "checking for preprocessor stringizing operator... " >&6; } -if ${ac_cv_c_stringize+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stringize" >&5 -$as_echo "$ac_cv_c_stringize" >&6; } -if test $ac_cv_c_stringize = yes; then - -$as_echo "@%:@define HAVE_STRINGIZE 1" >>confdefs.h - -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double with more range or precision than double" >&5 -$as_echo_n "checking for long double with more range or precision than double... " >&6; } -if ${ac_cv_type_long_double_wider+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - long double const a[] = - { - 0.0L, DBL_MIN, DBL_MAX, DBL_EPSILON, - LDBL_MIN, LDBL_MAX, LDBL_EPSILON - }; - long double - f (long double x) - { - return ((x + (unsigned long int) 10) * (-1 / x) + a[0] - + (x ? f (x) : 'c')); - } - -int -main () -{ -static int test_array @<:@1 - 2 * !((0 < ((DBL_MAX_EXP < LDBL_MAX_EXP) - + (DBL_MANT_DIG < LDBL_MANT_DIG) - - (LDBL_MAX_EXP < DBL_MAX_EXP) - - (LDBL_MANT_DIG < DBL_MANT_DIG))) - && (int) LDBL_EPSILON == 0 - )@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_long_double_wider=yes -else - ac_cv_type_long_double_wider=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double_wider" >&5 -$as_echo "$ac_cv_type_long_double_wider" >&6; } - if test $ac_cv_type_long_double_wider = yes; then - -$as_echo "@%:@define HAVE_LONG_DOUBLE_WIDER 1" >>confdefs.h - - fi - - ac_cv_c_long_double=$ac_cv_type_long_double_wider - if test $ac_cv_c_long_double = yes; then - -$as_echo "@%:@define HAVE_LONG_DOUBLE 1" >>confdefs.h - - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for function prototypes" >&5 -$as_echo_n "checking for function prototypes... " >&6; } -if test "$ac_cv_prog_cc_c89" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "@%:@define PROTOTYPES 1" >>confdefs.h - - -$as_echo "@%:@define __PROTOTYPES 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5 -$as_echo_n "checking whether char is unsigned... " >&6; } -if ${ac_cv_c_char_unsigned+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((char) -1) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_char_unsigned=no -else - ac_cv_c_char_unsigned=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5 -$as_echo "$ac_cv_c_char_unsigned" >&6; } -if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then - $as_echo "@%:@define __CHAR_UNSIGNED__ 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5 -$as_echo_n "checking for working volatile... " >&6; } -if ${ac_cv_c_volatile+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - -volatile int x; -int * volatile y = (int *) 0; -return !x && !y; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_volatile=yes -else - ac_cv_c_volatile=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 -$as_echo "$ac_cv_c_volatile" >&6; } -if test $ac_cv_c_volatile = no; then - -$as_echo "@%:@define volatile /**/" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 -$as_echo_n "checking for C/C++ restrict keyword... " >&6; } -if ${ac_cv_c_restrict+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_restrict=no - # The order here caters to the fact that C++ does not require restrict. - for ac_kw in __restrict __restrict__ _Restrict restrict; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -typedef int * int_ptr; - int foo (int_ptr $ac_kw ip) { - return ip[0]; - } -int -main () -{ -int s[1]; - int * $ac_kw t = s; - t[0] = 0; - return foo(t) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_restrict=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_restrict" != no && break - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 -$as_echo "$ac_cv_c_restrict" >&6; } - - case $ac_cv_c_restrict in - restrict) ;; - no) $as_echo "@%:@define restrict /**/" >>confdefs.h - ;; - *) cat >>confdefs.h <<_ACEOF -@%:@define restrict $ac_cv_c_restrict -_ACEOF - ;; - esac - - - - 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 - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - @%:@ Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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,^.*/,,'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -$as_echo "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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "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" - - -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define off_t long int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define size_t unsigned int -_ACEOF - -fi - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_alloca_h=yes -else - ac_cv_working_alloca_h=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } -if test $ac_cv_working_alloca_h = yes; then - -$as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_alloca_works=yes -else - ac_cv_func_alloca_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } - -if test $ac_cv_func_alloca_works = yes; then - -$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h - -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=\${LIBOBJDIR}alloca.$ac_objext - -$as_echo "@%:@define C_ALLOCA 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - -cat >>confdefs.h <<_ACEOF -@%:@define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_c_stack_direction=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -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 () -{ - return find_stack_direction () < 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_stack_direction=1 -else - ac_cv_c_stack_direction=-1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -@%:@define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - - - - - for ac_header in $ac_header_list -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - -for ac_func in getpagesize -do : - ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_GETPAGESIZE 1 -_ACEOF - -fi -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if ${ac_cv_func_mmap_fixed_mapped+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_mmap_fixed_mapped=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 !defined STDC_HEADERS && !defined HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# ifdef 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; - const char *cdata2; - int i, pagesize; - int fd, fd2; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 2; - if (write (fd, data, pagesize) != pagesize) - return 3; - close (fd); - - /* Next, check that the tail of a page is zero-filled. File must have - non-zero length, otherwise we risk SIGBUS for entire page. */ - fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd2 < 0) - return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) - return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); - if (data2 == MAP_FAILED) - return 6; - for (i = 0; i < pagesize; ++i) - if (*(data2 + i)) - return 7; - close (fd2); - if (munmap (data2, pagesize)) - return 8; - - /* 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) - return 9; - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 10; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 11; - - /* 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) - return 12; - if (read (fd, data3, pagesize) != pagesize) - return 13; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 14; - close (fd); - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_mmap_fixed_mapped=yes -else - ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -$as_echo "@%:@define HAVE_MMAP 1" >>confdefs.h - -fi -rm -f conftest.mmap conftest.txt - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5 -$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; } -if ${ac_cv_gnu_library_2_1+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 -$as_echo "$ac_cv_gnu_library_2_1" >&6; } - - GLIBC21="$ac_cv_gnu_library_2_1" - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether integer division by zero raises SIGFPE" >&5 -$as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; } -if ${gt_cv_int_divbyzero_sigfpe+:} false; then : - $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - gt_cv_int_divbyzero_sigfpe=yes -else - gt_cv_int_divbyzero_sigfpe=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_int_divbyzero_sigfpe" >&5 -$as_echo "$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 - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 -$as_echo_n "checking for inttypes.h... " >&6; } -if ${jm_ac_cv_header_inttypes_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -uintmax_t i = (uintmax_t) -1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - jm_ac_cv_header_inttypes_h=yes -else - jm_ac_cv_header_inttypes_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $jm_ac_cv_header_inttypes_h" >&5 -$as_echo "$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 - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 -$as_echo_n "checking for stdint.h... " >&6; } -if ${jm_ac_cv_header_stdint_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -uintmax_t i = (uintmax_t) -1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - jm_ac_cv_header_stdint_h=yes -else - jm_ac_cv_header_stdint_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $jm_ac_cv_header_stdint_h" >&5 -$as_echo "$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 - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long" >&5 -$as_echo_n "checking for unsigned long long... " >&6; } -if ${ac_cv_type_unsigned_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_type_unsigned_long_long=yes -else - ac_cv_type_unsigned_long_long=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long" >&5 -$as_echo "$ac_cv_type_unsigned_long_long" >&6; } - if test $ac_cv_type_unsigned_long_long = yes; then - -$as_echo "@%:@define HAVE_UNSIGNED_LONG_LONG 1" >>confdefs.h - - 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 - -$as_echo "@%:@define HAVE_UINTMAX_T 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 -$as_echo_n "checking for inttypes.h... " >&6; } -if ${gt_cv_header_inttypes_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gt_cv_header_inttypes_h=yes -else - gt_cv_header_inttypes_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_header_inttypes_h" >&5 -$as_echo "$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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5 -$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; } -if ${gt_cv_inttypes_pri_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#ifdef PRId32 -char *p = PRId32; -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gt_cv_inttypes_pri_broken=no -else - gt_cv_inttypes_pri_broken=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5 -$as_echo "$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 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. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 -$as_echo_n "checking for ld used by GCC... " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${acl_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${acl_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5 -$as_echo "$acl_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$acl_cv_prog_gnu_ld - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 -$as_echo_n "checking for shared library run path origin... " >&6; } -if ${acl_cv_rpath+:} false; then : - $as_echo_n "(cached) " >&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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 -$as_echo "$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 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 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 "X$prefer_shared" = "Xyes" && 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 "X$prefer_shared" = "Xyes" && 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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 localeconv stpcpy \ -strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ -__fsetlocking -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 -$as_echo_n "checking for iconv... " >&6; } -if ${am_cv_func_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_func_iconv=yes -fi -rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 -$as_echo "$am_cv_func_iconv" >&6; } - if test "$am_cv_func_iconv" = yes; then - -$as_echo "@%:@define HAVE_ICONV 1" >>confdefs.h - - fi - if test "$am_cv_lib_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 -$as_echo_n "checking how to link with libiconv... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 -$as_echo "$LIBICONV" >&6; } - else - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - - - - if test "$am_cv_func_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 -$as_echo_n "checking for iconv declaration... " >&6; } - if ${am_cv_proto_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - am_cv_proto_iconv_arg1="" -else - am_cv_proto_iconv_arg1="const" -fi -rm -f core 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/( /(/'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- - }$am_cv_proto_iconv" >&5 -$as_echo "${ac_t:- - }$am_cv_proto_iconv" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define ICONV_CONST $am_cv_proto_iconv_arg1 -_ACEOF - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 -$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } -if ${am_cv_langinfo_codeset+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_langinfo_codeset=yes -else - am_cv_langinfo_codeset=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 -$as_echo "$am_cv_langinfo_codeset" >&6; } - if test $am_cv_langinfo_codeset = yes; then - -$as_echo "@%:@define HAVE_LANGINFO_CODESET 1" >>confdefs.h - - fi - - if test $ac_cv_header_locale_h = yes; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 -$as_echo_n "checking for LC_MESSAGES... " >&6; } -if ${am_cv_val_LC_MESSAGES+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_val_LC_MESSAGES=yes -else - am_cv_val_LC_MESSAGES=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 -$as_echo "$am_cv_val_LC_MESSAGES" >&6; } - if test $am_cv_val_LC_MESSAGES = yes; then - -$as_echo "@%:@define HAVE_LC_MESSAGES 1" >>confdefs.h - - 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_INTLBISON+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_INTLBISON="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -INTLBISON=$ac_cv_prog_INTLBISON -if test -n "$INTLBISON"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLBISON" >&5 -$as_echo "$INTLBISON" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$INTLBISON" && break -done - - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of bison" >&5 -$as_echo_n "checking version of bison... " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5 -$as_echo "$ac_prog_version" >&6; } - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - @%:@ Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5 -$as_echo_n "checking whether included gettext is requested... " >&6; } - -@%:@ Check whether --with-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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_force_use_gnu_gettext" >&5 -$as_echo "$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 - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 -$as_echo_n "checking for GNU gettext in libc... " >&6; } -if ${gt_cv_func_gnugettext2_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_gnugettext2_libc=yes -else - gt_cv_func_gnugettext2_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext2_libc" >&5 -$as_echo "$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 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 "X$prefer_shared" = "Xyes" && 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 "X$prefer_shared" = "Xyes" && 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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 -$as_echo_n "checking for GNU gettext in libintl... " >&6; } -if ${gt_cv_func_gnugettext2_libintl+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_gnugettext2_libintl=yes -else - gt_cv_func_gnugettext2_libintl=no -fi -rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - gt_cv_func_gnugettext2_libintl=yes - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext2_libintl" >&5 -$as_echo "$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 - -$as_echo "@%:@define ENABLE_NLS 1" >>confdefs.h - - else - USE_NLS=no - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 -$as_echo_n "checking whether to use NLS... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - if test "$USE_NLS" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 -$as_echo_n "checking where the gettext function comes from... " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 -$as_echo "$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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 -$as_echo_n "checking how to link with libintl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 -$as_echo "$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 - - -$as_echo "@%:@define HAVE_GETTEXT 1" >>confdefs.h - - -$as_echo "@%:@define HAVE_DCGETTEXT 1" >>confdefs.h - - 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=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 -$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval \${$as_ac_Header+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include <$ac_hdr> - -int -main () -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_ac_Header=yes" -else - eval "$as_ac_Header=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_ac_Header - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dir; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi -done -if ${ac_cv_search_opendir+:} false; then : - -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' x; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi -done -if ${ac_cv_search_opendir+:} false; then : - -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if ${ac_cv_header_time+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "@%:@define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - - - - for ac_header in inttypes.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" -if test "x$ac_cv_header_inttypes_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_INTTYPES_H 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 \ - stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \ - regex.h syslog.h ulimit.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_fn_c_check_header_compile "$LINENO" "sys/ptem.h" "ac_cv_header_sys_ptem_h" " -#if HAVE_SYS_STREAM_H -# include -#endif - -" -if test "x$ac_cv_header_sys_ptem_h" = xyes; then : - -fi - - - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_alloca_h=yes -else - ac_cv_working_alloca_h=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } -if test $ac_cv_working_alloca_h = yes; then - -$as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_alloca_works=yes -else - ac_cv_func_alloca_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } - -if test $ac_cv_func_alloca_works = yes; then - -$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h - -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=\${LIBOBJDIR}alloca.$ac_objext - -$as_echo "@%:@define C_ALLOCA 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - -cat >>confdefs.h <<_ACEOF -@%:@define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_c_stack_direction=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -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 () -{ - return find_stack_direction () < 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_stack_direction=1 -else - ac_cv_c_stack_direction=-1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -@%:@define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpgrp requires zero arguments" >&5 -$as_echo_n "checking whether getpgrp requires zero arguments... " >&6; } -if ${ac_cv_func_getpgrp_void+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Use it with a single arg. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -getpgrp (0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_getpgrp_void=no -else - ac_cv_func_getpgrp_void=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpgrp_void" >&5 -$as_echo "$ac_cv_func_getpgrp_void" >&6; } -if test $ac_cv_func_getpgrp_void = yes; then - -$as_echo "@%:@define GETPGRP_VOID 1" >>confdefs.h - -fi - -if ${ac_cv_func_setvbuf_reversed+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_func_setvbuf_reversed=no -fi - - -for ac_func in vprintf -do : - ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_VPRINTF 1 -_ACEOF - -ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = xyes; then : - -$as_echo "@%:@define HAVE_DOPRNT 1" >>confdefs.h - -fi - -fi -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strcoll" >&5 -$as_echo_n "checking for working strcoll... " >&6; } -if ${ac_cv_func_strcoll_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_strcoll_works=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -return (strcoll ("abc", "def") >= 0 || - strcoll ("ABC", "DEF") >= 0 || - strcoll ("123", "456") >= 0) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_strcoll_works=yes -else - ac_cv_func_strcoll_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strcoll_works" >&5 -$as_echo "$ac_cv_func_strcoll_works" >&6; } -if test $ac_cv_func_strcoll_works = yes; then - -$as_echo "@%:@define HAVE_STRCOLL 1" >>confdefs.h - -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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of vprintf in stdio.h" >&5 -$as_echo_n "checking for declaration of vprintf in stdio.h... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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* - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vprintf" >&5 -$as_echo "$ac_cv_func_vprintf" >&6; } - if test $ac_cv_func_vprintf = yes; then - $as_echo "@%:@define HAVE_VPRINTF 1" >>confdefs.h - - fi -fi - -if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then - case " $LIB@&t@OBJS " in - *" vprint.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS vprint.$ac_objext" - ;; -esac - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if ${ac_cv_type_signal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int -else - ac_cv_type_signal=void -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - - -ac_fn_c_check_func "$LINENO" "__setostype" "ac_cv_func___setostype" -if test "x$ac_cv_func___setostype" = xyes; then : - $as_echo "@%:@define HAVE_SETOSTYPE 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wait3" "ac_cv_func_wait3" -if test "x$ac_cv_func_wait3" = xyes; then : - $as_echo "@%:@define HAVE_WAIT3 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "mkfifo" "ac_cv_func_mkfifo" -if test "x$ac_cv_func_mkfifo" = xyes; then : - $as_echo "@%:@define HAVE_MKFIFO 1" >>confdefs.h - -else - $as_echo "@%:@define MKFIFO_MISSING 1" >>confdefs.h - -fi - - -for ac_func in dup2 eaccess fcntl getdtablesize getgroups gethostname \ - getpagesize getpeername getrlimit getrusage gettimeofday \ - kill killpg lstat readlink sbrk select setdtablesize \ - setitimer tcgetpgrp uname ulimit waitpid -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -ac_fn_c_check_func "$LINENO" "rename" "ac_cv_func_rename" -if test "x$ac_cv_func_rename" = xyes; then : - $as_echo "@%:@define HAVE_RENAME 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" rename.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS rename.$ac_objext" - ;; -esac - -fi - - - -for ac_func in bcopy bzero confstr faccessat fnmatch \ - getaddrinfo gethostbyname getservbyname getservent inet_aton \ - imaxdiv memmove pathconf putenv raise regcomp regexec \ - setenv setlinebuf setlocale setvbuf siginterrupt strchr \ - sysconf syslog tcgetattr times ttyname tzset unsetenv -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -for ac_func in vasprintf asprintf -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in getpwent getpwnam getpwuid -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd" -if test "x$ac_cv_func_getcwd" = xyes; then : - $as_echo "@%:@define HAVE_GETCWD 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" getcwd.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS getcwd.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "memset" "ac_cv_func_memset" -if test "x$ac_cv_func_memset" = xyes; then : - $as_echo "@%:@define HAVE_MEMSET 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" memset.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS memset.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" -if test "x$ac_cv_func_strcasecmp" = xyes; then : - $as_echo "@%:@define HAVE_STRCASECMP 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strcasecmp.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strcasecmp.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr" -if test "x$ac_cv_func_strcasestr" = xyes; then : - $as_echo "@%:@define HAVE_STRCASESTR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strcasestr.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strcasestr.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" -if test "x$ac_cv_func_strerror" = xyes; then : - $as_echo "@%:@define HAVE_STRERROR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strerror.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strerror.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" -if test "x$ac_cv_func_strftime" = xyes; then : - $as_echo "@%:@define HAVE_STRFTIME 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strftime.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strftime.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen" -if test "x$ac_cv_func_strnlen" = xyes; then : - $as_echo "@%:@define HAVE_STRNLEN 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strnlen.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strnlen.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strpbrk" "ac_cv_func_strpbrk" -if test "x$ac_cv_func_strpbrk" = xyes; then : - $as_echo "@%:@define HAVE_STRPBRK 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strpbrk.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strpbrk.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr" -if test "x$ac_cv_func_strstr" = xyes; then : - $as_echo "@%:@define HAVE_STRSTR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strstr.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strstr.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "strtod" "ac_cv_func_strtod" -if test "x$ac_cv_func_strtod" = xyes; then : - $as_echo "@%:@define HAVE_STRTOD 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtod.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtod.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" -if test "x$ac_cv_func_strtol" = xyes; then : - $as_echo "@%:@define HAVE_STRTOL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtol.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtol.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul" -if test "x$ac_cv_func_strtoul" = xyes; then : - $as_echo "@%:@define HAVE_STRTOUL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoul.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoul.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoll" "ac_cv_func_strtoll" -if test "x$ac_cv_func_strtoll" = xyes; then : - $as_echo "@%:@define HAVE_STRTOLL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoll.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoll.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoull" "ac_cv_func_strtoull" -if test "x$ac_cv_func_strtoull" = xyes; then : - $as_echo "@%:@define HAVE_STRTOULL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoull.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoull.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoimax" "ac_cv_func_strtoimax" -if test "x$ac_cv_func_strtoimax" = xyes; then : - $as_echo "@%:@define HAVE_STRTOIMAX 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoimax.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoimax.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoumax" "ac_cv_func_strtoumax" -if test "x$ac_cv_func_strtoumax" = xyes; then : - $as_echo "@%:@define HAVE_STRTOUMAX 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoumax.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoumax.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "dprintf" "ac_cv_func_dprintf" -if test "x$ac_cv_func_dprintf" = xyes; then : - $as_echo "@%:@define HAVE_DPRINTF 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" dprintf.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS dprintf.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul" -if test "x$ac_cv_func_strchrnul" = xyes; then : - $as_echo "@%:@define HAVE_STRCHRNUL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strchrnul.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strchrnul.$ac_objext" - ;; -esac - -fi - - - -ac_fn_c_check_decl "$LINENO" "AUDIT_USER_TTY" "ac_cv_have_decl_AUDIT_USER_TTY" "#include -" -if test "x$ac_cv_have_decl_AUDIT_USER_TTY" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_AUDIT_USER_TTY $ac_have_decl -_ACEOF - - -ac_fn_c_check_decl "$LINENO" "confstr" "ac_cv_have_decl_confstr" "$ac_includes_default" -if test "x$ac_cv_have_decl_confstr" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_CONFSTR $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "printf" "ac_cv_have_decl_printf" "$ac_includes_default" -if test "x$ac_cv_have_decl_printf" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_PRINTF $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "sbrk" "ac_cv_have_decl_sbrk" "$ac_includes_default" -if test "x$ac_cv_have_decl_sbrk" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SBRK $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "setregid" "ac_cv_have_decl_setregid" "$ac_includes_default" -if test "x$ac_cv_have_decl_setregid" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SETREGID $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "strcpy" "ac_cv_have_decl_strcpy" "$ac_includes_default" -if test "x$ac_cv_have_decl_strcpy" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_STRCPY $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "strsignal" "ac_cv_have_decl_strsignal" "$ac_includes_default" -if test "x$ac_cv_have_decl_strsignal" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_STRSIGNAL $ac_have_decl -_ACEOF - - -ac_fn_c_check_decl "$LINENO" "strtold" "ac_cv_have_decl_strtold" "$ac_includes_default" -if test "x$ac_cv_have_decl_strtold" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_STRTOLD $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken strtold" >&5 -$as_echo_n "checking for broken strtold... " >&6; } - if ${bash_cv_strtold_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int main() { long double r; char *foo, bar; r = strtold(foo, &bar);} - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_strtold_broken=no -else - bash_cv_strtold_broken=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_strtold_broken" >&5 -$as_echo "$bash_cv_strtold_broken" >&6; } - if test "$bash_cv_strtold_broken" = "yes" ; then - $as_echo "@%:@define STRTOLD_BROKEN 1" >>confdefs.h - - fi - -fi - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoimax" >&5 -$as_echo_n "checking for declaration of strtoimax... " >&6; } -if ${bash_cv_decl_strtoimax+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoimax; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoimax=yes -else - bash_cv_decl_strtoimax=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoimax" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtol" >&5 -$as_echo_n "checking for declaration of strtol... " >&6; } -if ${bash_cv_decl_strtol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtol; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtol=yes -else - bash_cv_decl_strtol=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtol" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoll" >&5 -$as_echo_n "checking for declaration of strtoll... " >&6; } -if ${bash_cv_decl_strtoll+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoll; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoll=yes -else - bash_cv_decl_strtoll=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoll" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoul" >&5 -$as_echo_n "checking for declaration of strtoul... " >&6; } -if ${bash_cv_decl_strtoul+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoul; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoul=yes -else - bash_cv_decl_strtoul=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoul" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoull" >&5 -$as_echo_n "checking for declaration of strtoull... " >&6; } -if ${bash_cv_decl_strtoull+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoull; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoull=yes -else - bash_cv_decl_strtoull=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoull" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoumax" >&5 -$as_echo_n "checking for declaration of strtoumax... " >&6; } -if ${bash_cv_decl_strtoumax+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoumax; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoumax=yes -else - bash_cv_decl_strtoumax=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoumax" >&5 -$as_echo "$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_func in $ac_func_list -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 -$as_echo_n "checking for working mktime... " >&6; } -if ${ac_cv_func_working_mktime+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_working_mktime=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Test program from Paul Eggert and Tony Leneis. */ -#ifdef TIME_WITH_SYS_TIME -# include -# include -#else -# ifdef HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - -#include -#include - -#ifdef HAVE_UNISTD_H -# include -#endif - -#ifndef 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 const char *tz_strings[] = { - (const 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])) - -/* Return 0 if mktime fails to convert a date in the spring-forward gap. - Based on a problem report from Andreas Jaeger. */ -static int -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 ((char*) "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; - return mktime (&tm) != (time_t) -1; -} - -static int -mktime_test1 (time_t now) -{ - struct tm *lt; - return ! (lt = localtime (&now)) || mktime (lt) == now; -} - -static int -mktime_test (time_t now) -{ - return (mktime_test1 (now) - && mktime_test1 ((time_t) (time_t_max - now)) - && mktime_test1 ((time_t) (time_t_min + now))); -} - -static int -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); - return tm.tm_mon == 2 && tm.tm_mday == 31; -} - -static int -bigtime_test (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)))) - return 0; - } - return 1; -} - -static int -year_2050_test () -{ - /* The correct answer for 2050-02-01 00:00:00 in Pacific time, - ignoring leap seconds. */ - unsigned long int answer = 2527315200UL; - - struct tm tm; - time_t t; - tm.tm_year = 2050 - 1900; - tm.tm_mon = 2 - 1; - tm.tm_mday = 1; - tm.tm_hour = tm.tm_min = tm.tm_sec = 0; - tm.tm_isdst = -1; - - /* 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 ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); - - t = mktime (&tm); - - /* Check that the result is either a failure, or close enough - to the correct answer that we can assume the discrepancy is - due to leap seconds. */ - return (t == (time_t) -1 - || (0 < t && answer - 120 <= t && t <= answer + 120)); -} - -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 (;;) - { - t = (time_t_max << 1) + 1; - if (t <= time_t_max) - break; - time_t_max = t; - } - time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; - - delta = time_t_max / 997; /* a suitable prime number */ - for (i = 0; i < N_STRINGS; i++) - { - if (tz_strings[i]) - putenv ((char*) tz_strings[i]); - - for (t = 0; t <= time_t_max - delta; t += delta) - if (! mktime_test (t)) - return 1; - if (! (mktime_test ((time_t) 1) - && mktime_test ((time_t) (60 * 60)) - && mktime_test ((time_t) (60 * 60 * 24)))) - return 1; - - for (j = 1; ; j <<= 1) - if (! bigtime_test (j)) - return 1; - else if (INT_MAX / 2 < j) - break; - if (! bigtime_test (INT_MAX)) - return 1; - } - return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_working_mktime=yes -else - ac_cv_func_working_mktime=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_working_mktime" >&5 -$as_echo "$ac_cv_func_working_mktime" >&6; } -if test $ac_cv_func_working_mktime = no; then - case " $LIB@&t@OBJS " in - *" mktime.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS mktime.$ac_objext" - ;; -esac - -fi - - - -for ac_header in argz.h errno.h fcntl.h malloc.h stdio_ext.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_func in getpagesize -do : - ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_GETPAGESIZE 1 -_ACEOF - -fi -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if ${ac_cv_func_mmap_fixed_mapped+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_mmap_fixed_mapped=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 !defined STDC_HEADERS && !defined HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# ifdef 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; - const char *cdata2; - int i, pagesize; - int fd, fd2; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 2; - if (write (fd, data, pagesize) != pagesize) - return 3; - close (fd); - - /* Next, check that the tail of a page is zero-filled. File must have - non-zero length, otherwise we risk SIGBUS for entire page. */ - fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd2 < 0) - return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) - return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); - if (data2 == MAP_FAILED) - return 6; - for (i = 0; i < pagesize; ++i) - if (*(data2 + i)) - return 7; - close (fd2); - if (munmap (data2, pagesize)) - return 8; - - /* 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) - return 9; - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 10; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 11; - - /* 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) - return 12; - if (read (fd, data3, pagesize) != pagesize) - return 13; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 14; - close (fd); - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_mmap_fixed_mapped=yes -else - ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -$as_echo "@%:@define HAVE_MMAP 1" >>confdefs.h - -fi -rm -f conftest.mmap conftest.txt - -for ac_func in __argz_count __argz_next __argz_stringify dcgettext mempcpy \ - munmap stpcpy strcspn strdup -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 : - ac_fn_c_check_header_mongrel "$LINENO" "wctype.h" "ac_cv_header_wctype_h" "$ac_includes_default" -if test "x$ac_cv_header_wctype_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_WCTYPE_H 1 -_ACEOF - -fi - -done - -for ac_header in wchar.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" -if test "x$ac_cv_header_wchar_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_WCHAR_H 1 -_ACEOF - -fi - -done - -for ac_header in langinfo.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "langinfo.h" "ac_cv_header_langinfo_h" "$ac_includes_default" -if test "x$ac_cv_header_langinfo_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_LANGINFO_H 1 -_ACEOF - -fi - -done - - -ac_fn_c_check_func "$LINENO" "mbrlen" "ac_cv_func_mbrlen" -if test "x$ac_cv_func_mbrlen" = xyes; then : - $as_echo "@%:@define HAVE_MBRLEN 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbscasecmp" "ac_cv_func_mbscasecmp" -if test "x$ac_cv_func_mbscasecmp" = xyes; then : - $as_echo "@%:@define HAVE_MBSCMP 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbscmp" "ac_cv_func_mbscmp" -if test "x$ac_cv_func_mbscmp" = xyes; then : - $as_echo "@%:@define HAVE_MBSCMP 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbsnrtowcs" "ac_cv_func_mbsnrtowcs" -if test "x$ac_cv_func_mbsnrtowcs" = xyes; then : - $as_echo "@%:@define HAVE_MBSNRTOWCS 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbsrtowcs" "ac_cv_func_mbsrtowcs" -if test "x$ac_cv_func_mbsrtowcs" = xyes; then : - $as_echo "@%:@define HAVE_MBSRTOWCS 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "mbschr" "ac_cv_func_mbschr" -if test "x$ac_cv_func_mbschr" = xyes; then : - $as_echo "@%:@define HAVE_MBSCHR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" mbschr.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS mbschr.$ac_objext" - ;; -esac - -fi - - - -ac_fn_c_check_func "$LINENO" "wcrtomb" "ac_cv_func_wcrtomb" -if test "x$ac_cv_func_wcrtomb" = xyes; then : - $as_echo "@%:@define HAVE_WCRTOMB 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wcscoll" "ac_cv_func_wcscoll" -if test "x$ac_cv_func_wcscoll" = xyes; then : - $as_echo "@%:@define HAVE_WCSCOLL 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wcsdup" "ac_cv_func_wcsdup" -if test "x$ac_cv_func_wcsdup" = xyes; then : - $as_echo "@%:@define HAVE_WCSDUP 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wcwidth" "ac_cv_func_wcwidth" -if test "x$ac_cv_func_wcwidth" = xyes; then : - $as_echo "@%:@define HAVE_WCWIDTH 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wctype" "ac_cv_func_wctype" -if test "x$ac_cv_func_wctype" = xyes; then : - $as_echo "@%:@define HAVE_WCTYPE 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "wcswidth" "ac_cv_func_wcswidth" -if test "x$ac_cv_func_wcswidth" = xyes; then : - $as_echo "@%:@define HAVE_WCSWIDTH 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" wcswidth.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS wcswidth.$ac_objext" - ;; -esac - -fi - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc and mbstate_t are properly declared" >&5 -$as_echo_n "checking whether mbrtowc and mbstate_t are properly declared... " >&6; } -if ${ac_cv_func_mbrtowc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -wchar_t wc; - char const s[] = ""; - size_t n = 1; - mbstate_t state; - return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_mbrtowc=yes -else - ac_cv_func_mbrtowc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mbrtowc" >&5 -$as_echo "$ac_cv_func_mbrtowc" >&6; } - if test $ac_cv_func_mbrtowc = yes; then - -$as_echo "@%:@define HAVE_MBRTOWC 1" >>confdefs.h - - fi - -if test $ac_cv_func_mbrtowc = yes; then - $as_echo "@%:@define HAVE_MBSTATE_T 1" >>confdefs.h - -fi - -for ac_func in iswlower iswupper towlower towupper iswctype -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 -$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } -if ${bash_cv_langinfo_codeset+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_langinfo_codeset=yes -else - bash_cv_langinfo_codeset=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_langinfo_codeset" >&5 -$as_echo "$bash_cv_langinfo_codeset" >&6; } -if test $bash_cv_langinfo_codeset = yes; then - $as_echo "@%:@define HAVE_LANGINFO_CODESET 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t in wchar.h" >&5 -$as_echo_n "checking for wchar_t in wchar.h... " >&6; } -if ${bash_cv_type_wchar_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ - - wchar_t foo; - foo = 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_wchar_t=yes -else - bash_cv_type_wchar_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_wchar_t" >&5 -$as_echo "$bash_cv_type_wchar_t" >&6; } -if test $bash_cv_type_wchar_t = yes; then - -$as_echo "@%:@define HAVE_WCHAR_T 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t in wctype.h" >&5 -$as_echo_n "checking for wctype_t in wctype.h... " >&6; } -if ${bash_cv_type_wctype_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - wctype_t foo; - foo = 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_wctype_t=yes -else - bash_cv_type_wctype_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_wctype_t" >&5 -$as_echo "$bash_cv_type_wctype_t" >&6; } -if test $bash_cv_type_wctype_t = yes; then - -$as_echo "@%:@define HAVE_WCTYPE_T 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t in wctype.h" >&5 -$as_echo_n "checking for wint_t in wctype.h... " >&6; } -if ${bash_cv_type_wint_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - wint_t foo; - foo = 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_wint_t=yes -else - bash_cv_type_wint_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_wint_t" >&5 -$as_echo "$bash_cv_type_wint_t" >&6; } -if test $bash_cv_type_wint_t = yes; then - -$as_echo "@%:@define HAVE_WINT_T 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wcwidth broken with unicode combining characters" >&5 -$as_echo_n "checking for wcwidth broken with unicode combining characters... " >&6; } -if ${bash_cv_wcwidth_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -#include -#include - -main(c, v) -int c; -char **v; -{ - int w; - - setlocale(LC_ALL, "en_US.UTF-8"); - w = wcwidth (0x0301); - exit (w == 0); /* exit 0 if wcwidth broken */ -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_wcwidth_broken=yes -else - bash_cv_wcwdith_broken=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wcwidth_broken" >&5 -$as_echo "$bash_cv_wcwidth_broken" >&6; } -if test $bash_cv_wcwidth_broken = yes; then - -$as_echo "@%:@define WCWIDTH_BROKEN 1" >>confdefs.h - -fi - -if test "$am_cv_func_iconv" = yes; then - OLDLIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - for ac_func in locale_charset -do : - ac_fn_c_check_func "$LINENO" "locale_charset" "ac_cv_func_locale_charset" -if test "x$ac_cv_func_locale_charset" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_LOCALE_CHARSET 1 -_ACEOF - -fi -done - - LIBS="$OLDLIBS" -fi - - - -if test "$opt_static_link" != yes; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; 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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -fi - -ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include -/* NetBSD declares sys_siglist in unistd.h. */ -#ifdef HAVE_UNISTD_H -# include -#endif - -" -if test "x$ac_cv_have_decl_sys_siglist" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SYS_SIGLIST $ac_have_decl -_ACEOF - - - -if test "$ac_cv_func_inet_aton" != 'yes'; then - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 -$as_echo_n "checking for inet_aton... " >&6; } -if ${bash_cv_func_inet_aton+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -struct in_addr ap; -int -main () -{ - inet_aton("127.0.0.1", &ap); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_func_inet_aton=yes -else - bash_cv_func_inet_aton=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_inet_aton" >&5 -$as_echo "$bash_cv_func_inet_aton" >&6; } -if test $bash_cv_func_inet_aton = yes; then - $as_echo "@%:@define HAVE_INET_ATON 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" inet_aton.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS inet_aton.$ac_objext" - ;; -esac - -fi - -fi - -case "$host_os" in -irix4*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpwent in -lsun" >&5 -$as_echo_n "checking for getpwent in -lsun... " >&6; } -if ${ac_cv_lib_sun_getpwent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsun $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char getpwent (); -int -main () -{ -return getpwent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sun_getpwent=yes -else - ac_cv_lib_sun_getpwent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sun_getpwent" >&5 -$as_echo "$ac_cv_lib_sun_getpwent" >&6; } -if test "x$ac_cv_lib_sun_getpwent" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket library" >&5 -$as_echo_n "checking for socket library... " >&6; } -_bash_needmsg=yes -fi -if ${bash_cv_have_socklib+:} false; then : - $as_echo_n "(cached) " >&6 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpeername in -lsocket" >&5 -$as_echo_n "checking for getpeername in -lsocket... " >&6; } -if ${ac_cv_lib_socket_getpeername+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket -lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char getpeername (); -int -main () -{ -return getpeername (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_socket_getpeername=yes -else - ac_cv_lib_socket_getpeername=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_getpeername" >&5 -$as_echo "$ac_cv_lib_socket_getpeername" >&6; } -if test "x$ac_cv_lib_socket_getpeername" = xyes; then : - bash_cv_have_socklib=yes -else - bash_cv_have_socklib=no -fi - -fi - -if test "X$_bash_needmsg" = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_socklib" >&5 -$as_echo "$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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnsl" >&5 -$as_echo_n "checking for libnsl... " >&6; } - _bash_needmsg=yes - fi - if ${bash_cv_have_libnsl+:} false; then : - $as_echo_n "(cached) " >&6 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for t_open in -lnsl" >&5 -$as_echo_n "checking for t_open in -lnsl... " >&6; } -if ${ac_cv_lib_nsl_t_open+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char t_open (); -int -main () -{ -return t_open (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nsl_t_open=yes -else - ac_cv_lib_nsl_t_open=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_t_open" >&5 -$as_echo "$ac_cv_lib_nsl_t_open" >&6; } -if test "x$ac_cv_lib_nsl_t_open" = xyes; then : - bash_cv_have_libnsl=yes -else - bash_cv_have_libnsl=no -fi - -fi - - if test "X$_bash_needmsg" = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_libnsl" >&5 -$as_echo "$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 - $as_echo "@%:@define HAVE_LIBSOCKET 1" >>confdefs.h - - $as_echo "@%:@define HAVE_GETPEERNAME 1" >>confdefs.h - -fi - -fi -if test "$ac_cv_func_gethostbyname" = no; then - if test "X$bash_cv_have_gethostbyname" = "X"; then -_bash_needmsg=yes -else -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in socket library" >&5 -$as_echo_n "checking for gethostbyname in socket library... " >&6; } -_bash_needmsg= -fi -if ${bash_cv_have_gethostbyname+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - struct hostent *hp; - hp = gethostbyname("localhost"); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_have_gethostbyname=yes -else - bash_cv_have_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - -if test "X$_bash_needmsg" = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in socket library" >&5 -$as_echo_n "checking for gethostbyname in socket library... " >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_gethostbyname" >&5 -$as_echo "$bash_cv_have_gethostbyname" >&6; } -if test "$bash_cv_have_gethostbyname" = yes; then -$as_echo "@%:@define HAVE_GETHOSTBYNAME 1" >>confdefs.h - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if ${ac_cv_type_uid_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then - -$as_echo "@%:@define uid_t int" >>confdefs.h - - -$as_echo "@%:@define gid_t int" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking type of array argument to getgroups" >&5 -$as_echo_n "checking type of array argument to getgroups... " >&6; } -if ${ac_cv_type_getgroups+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_type_getgroups=cross -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Thanks to Mike Rendell for this test. */ -$ac_includes_default -#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 int 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 int but getgroups modifies an array - of ints. */ - return n > 0 && gidset[n] != val.gval; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_type_getgroups=gid_t -else - ac_cv_type_getgroups=int -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -if test $ac_cv_type_getgroups = cross; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_getgroups" >&5 -$as_echo "$ac_cv_type_getgroups" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define GETGROUPS_T $ac_cv_type_getgroups -_ACEOF - - -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define off_t long int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" -if test "x$ac_cv_type_mode_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define mode_t int -_ACEOF - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if ${ac_cv_type_uid_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then - -$as_echo "@%:@define uid_t int" >>confdefs.h - - -$as_echo "@%:@define gid_t int" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -if test "x$ac_cv_type_pid_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define pid_t int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define size_t unsigned int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" -if test "x$ac_cv_type_ssize_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ssize_t int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "time_t" "ac_cv_type_time_t" "$ac_includes_default" -if test "x$ac_cv_type_time_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define time_t long -_ACEOF - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long" >&5 -$as_echo_n "checking for long long... " >&6; } -if ${bash_cv_type_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_type_long_long='long long' -else - bash_cv_type_long_long='long' -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_long_long" >&5 -$as_echo "$bash_cv_type_long_long" >&6; } -if test "$bash_cv_type_long_long" = 'long long'; then - $as_echo "@%:@define HAVE_LONG_LONG 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long" >&5 -$as_echo_n "checking for unsigned long long... " >&6; } -if ${bash_cv_type_unsigned_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_type_unsigned_long_long='unsigned long long' -else - bash_cv_type_unsigned_long_long='unsigned long' -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_unsigned_long_long" >&5 -$as_echo "$bash_cv_type_unsigned_long_long" >&6; } -if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then - $as_echo "@%:@define HAVE_UNSIGNED_LONG_LONG 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if ${ac_cv_type_signal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int -else - ac_cv_type_signal=void -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sig_atomic_t in signal.h" >&5 -$as_echo_n "checking for sig_atomic_t in signal.h... " >&6; } -if ${ac_cv_have_sig_atomic_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ - sig_atomic_t x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_have_sig_atomic_t=yes -else - ac_cv_have_sig_atomic_t=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_sig_atomic_t" >&5 -$as_echo "$ac_cv_have_sig_atomic_t" >&6; } -if test "$ac_cv_have_sig_atomic_t" = "no" -then - ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "$ac_includes_default" -if test "x$ac_cv_type_sig_atomic_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define sig_atomic_t int -_ACEOF - -fi - -fi - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 -$as_echo_n "checking size of char... " >&6; } -if ${ac_cv_sizeof_char+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_char" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (char) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_char=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 -$as_echo "$ac_cv_sizeof_char" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_CHAR $ac_cv_sizeof_char -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if ${ac_cv_sizeof_short+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_short=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if ${ac_cv_sizeof_int+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if ${ac_cv_sizeof_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char *" >&5 -$as_echo_n "checking size of char *... " >&6; } -if ${ac_cv_sizeof_char_p+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char *))" "ac_cv_sizeof_char_p" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_char_p" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (char *) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_char_p=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char_p" >&5 -$as_echo "$ac_cv_sizeof_char_p" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_CHAR_P $ac_cv_sizeof_char_p -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 -$as_echo_n "checking size of double... " >&6; } -if ${ac_cv_sizeof_double+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_double" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (double) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_double=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 -$as_echo "$ac_cv_sizeof_double" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_DOUBLE $ac_cv_sizeof_double -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if ${ac_cv_sizeof_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF - - - -ac_fn_c_check_type "$LINENO" "u_int" "ac_cv_type_u_int" "$ac_includes_default" -if test "x$ac_cv_type_u_int" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_int unsigned int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "u_long" "ac_cv_type_u_long" "$ac_includes_default" -if test "x$ac_cv_type_u_long" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_long unsigned long -_ACEOF - -fi - - - -if test "$ac_cv_sizeof_short" = 2; then - ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits16_t short -_ACEOF - -fi - -elif test "$ac_cv_sizeof_char" = 2; then - ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits16_t char -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits16_t short -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_short" = 2; then - ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits16_t unsigned short -_ACEOF - -fi - -elif test "$ac_cv_sizeof_char" = 2; then - ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits16_t unsigned char -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits16_t unsigned short -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_int" = 4; then - ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits32_t int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 4; then - ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits32_t long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits32_t int -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_int" = 4; then - ac_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits32_t unsigned int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 4; then - ac_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits32_t unsigned long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits32_t unsigned int -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_char_p" = 8; then - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits64_t char * -_ACEOF - -fi - -elif test "$ac_cv_sizeof_double" = 8; then - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; 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 - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits64_t long long -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 8; then - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits64_t long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; 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 - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ptrdiff_t int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; 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 - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ptrdiff_t long long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ptrdiff_t int -_ACEOF - -fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 -$as_echo_n "checking whether stat file-mode macros are broken... " >&6; } -if ${ac_cv_header_stat_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -#if defined S_ISBLK && defined S_IFDIR -extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; -#endif - -#if defined S_ISBLK && defined S_IFCHR -extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; -#endif - -#if defined S_ISLNK && defined S_IFREG -extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; -#endif - -#if defined S_ISSOCK && defined S_IFREG -extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stat_broken=no -else - ac_cv_header_stat_broken=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 -$as_echo "$ac_cv_header_stat_broken" >&6; } -if test $ac_cv_header_stat_broken = yes; then - -$as_echo "@%:@define STAT_MACROS_BROKEN 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether @%:@! works in shell scripts" >&5 -$as_echo_n "checking whether @%:@! works in shell scripts... " >&6; } -if ${ac_cv_sys_interpreter+:} false; then : - $as_echo_n "(cached) " >&6 -else - echo '#! /bin/cat -exit 69 -' >conftest -chmod u+x conftest -(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) -if test $? -ne 69; then - ac_cv_sys_interpreter=yes -else - ac_cv_sys_interpreter=no -fi -rm -f conftest -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_interpreter" >&5 -$as_echo "$ac_cv_sys_interpreter" >&6; } -interpval=$ac_cv_sys_interpreter - -if test $ac_cv_sys_interpreter = yes; then -$as_echo "@%:@define HAVE_HASH_BANG_EXEC 1" >>confdefs.h - -fi - -if test "$ac_cv_func_lstat" = "no"; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lstat" >&5 -$as_echo_n "checking for lstat... " >&6; } -if ${bash_cv_func_lstat+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - lstat(".",(struct stat *)0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_func_lstat=yes -else - bash_cv_func_lstat=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_lstat" >&5 -$as_echo "$bash_cv_func_lstat" >&6; } -if test $bash_cv_func_lstat = yes; then - $as_echo "@%:@define HAVE_LSTAT 1" >>confdefs.h - -fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the ctype macros accept non-ascii characters" >&5 -$as_echo_n "checking whether the ctype macros accept non-ascii characters... " >&6; } -if ${bash_cv_func_ctype_nonascii+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&2;} - bash_cv_func_ctype_nonascii=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_ctype_nonascii=yes -else - bash_cv_func_ctype_nonascii=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_ctype_nonascii" >&5 -$as_echo "$bash_cv_func_ctype_nonascii" >&6; } -if test $bash_cv_func_ctype_nonascii = yes; then -$as_echo "@%:@define CTYPE_NON_ASCII 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if dup2 fails to clear the close-on-exec flag" >&5 -$as_echo_n "checking if dup2 fails to clear the close-on-exec flag... " >&6; } -if ${bash_cv_dup2_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&2;} - bash_cv_dup2_broken=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_dup2_broken=yes -else - bash_cv_dup2_broken=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dup2_broken" >&5 -$as_echo "$bash_cv_dup2_broken" >&6; } -if test $bash_cv_dup2_broken = yes; then -$as_echo "@%:@define DUP2_BROKEN 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pgrps need synchronization" >&5 -$as_echo_n "checking whether pgrps need synchronization... " >&6; } -if ${bash_cv_pgrp_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&2;} - bash_cv_pgrp_pipe=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_pgrp_pipe=no -else - bash_cv_pgrp_pipe=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_pgrp_pipe" >&5 -$as_echo "$bash_cv_pgrp_pipe" >&6; } -if test $bash_cv_pgrp_pipe = yes; then -$as_echo "@%:@define PGRP_PIPE 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of signal functions" >&5 -$as_echo_n "checking for type of signal functions... " >&6; } -if ${bash_cv_signal_vintage+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_signal_vintage=posix -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - int mask = sigmask(SIGINT); - sigsetmask(mask); sigblock(mask); sigpause(mask); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_signal_vintage=4.2bsd -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - RETSIGTYPE foo() { } -int -main () -{ - - int mask = sigmask(SIGINT); - sigset(SIGINT, foo); sigrelse(SIGINT); - sighold(SIGINT); sigpause(SIGINT); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_signal_vintage=svr3 -else - bash_cv_signal_vintage=v7 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_signal_vintage" >&5 -$as_echo "$bash_cv_signal_vintage" >&6; } -if test "$bash_cv_signal_vintage" = posix; then -$as_echo "@%:@define HAVE_POSIX_SIGNALS 1" >>confdefs.h - -elif test "$bash_cv_signal_vintage" = "4.2bsd"; then -$as_echo "@%:@define HAVE_BSD_SIGNALS 1" >>confdefs.h - -elif test "$bash_cv_signal_vintage" = svr3; then -$as_echo "@%:@define HAVE_USG_SIGHOLD 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys_errlist and sys_nerr" >&5 -$as_echo_n "checking for sys_errlist and sys_nerr... " >&6; } -if ${bash_cv_sys_errlist+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -extern char *sys_errlist[]; - extern int sys_nerr; - char *msg = sys_errlist[sys_nerr - 1]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_sys_errlist=yes -else - bash_cv_sys_errlist=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_errlist" >&5 -$as_echo "$bash_cv_sys_errlist" >&6; } -if test $bash_cv_sys_errlist = yes; then -$as_echo "@%:@define HAVE_SYS_ERRLIST 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys_siglist in system C library" >&5 -$as_echo_n "checking for sys_siglist in system C library... " >&6; } -if ${bash_cv_sys_siglist+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&2;} - bash_cv_sys_siglist=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#if !HAVE_DECL_SYS_SIGLIST -extern char *sys_siglist[]; -#endif -main() -{ -char *msg = sys_siglist[2]; -exit(msg == 0); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_sys_siglist=yes -else - bash_cv_sys_siglist=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_siglist" >&5 -$as_echo "$bash_cv_sys_siglist" >&6; } -if test $bash_cv_sys_siglist = yes; then -$as_echo "@%:@define HAVE_SYS_SIGLIST 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sys_siglist in signal.h or unistd.h" >&5 -$as_echo_n "checking for _sys_siglist in signal.h or unistd.h... " >&6; } -if ${bash_cv_decl_under_sys_siglist+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -int -main () -{ - char *msg = _sys_siglist[2]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_decl_under_sys_siglist=yes -else - bash_cv_decl_under_sys_siglist=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_under_sys_siglist" >&5 -$as_echo "$bash_cv_decl_under_sys_siglist" >&6; } -if test $bash_cv_decl_under_sys_siglist = yes; then -$as_echo "@%:@define UNDER_SYS_SIGLIST_DECLARED 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sys_siglist in system C library" >&5 -$as_echo_n "checking for _sys_siglist in system C library... " >&6; } -if ${bash_cv_under_sys_siglist+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&2;} - bash_cv_under_sys_siglist=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_under_sys_siglist=yes -else - bash_cv_under_sys_siglist=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_under_sys_siglist" >&5 -$as_echo "$bash_cv_under_sys_siglist" >&6; } -if test $bash_cv_under_sys_siglist = yes; then -$as_echo "@%:@define HAVE_UNDER_SYS_SIGLIST 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether signal handlers are of type void" >&5 -$as_echo_n "checking whether signal handlers are of type void... " >&6; } -if ${bash_cv_void_sighandler+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#ifdef signal -#undef signal -#endif -#ifdef __cplusplus -extern "C" -#endif -void (*signal ()) (); -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_void_sighandler=yes -else - bash_cv_void_sighandler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_void_sighandler" >&5 -$as_echo "$bash_cv_void_sighandler" >&6; } -if test $bash_cv_void_sighandler = yes; then -$as_echo "@%:@define VOID_SIGHANDLER 1" >>confdefs.h - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_t" >&5 -$as_echo_n "checking for clock_t... " >&6; } -if ${bash_cv_type_clock_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_clock_t" >&5 -$as_echo "$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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigset_t" >&5 -$as_echo_n "checking for sigset_t... " >&6; } -if ${bash_cv_type_sigset_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_sigset_t" >&5 -$as_echo "$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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for quad_t" >&5 -$as_echo_n "checking for quad_t... " >&6; } -if ${bash_cv_type_quad_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_quad_t" >&5 -$as_echo "$bash_cv_type_quad_t" >&6; } -if test $bash_cv_type_quad_t = yes; then - $as_echo "@%:@define HAVE_QUAD_T 1" >>confdefs.h - - fi -if test $bash_cv_type_quad_t = no; then - cat >>confdefs.h <<_ACEOF -@%:@define quad_t long -_ACEOF - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 -$as_echo_n "checking for intmax_t... " >&6; } -if ${bash_cv_type_intmax_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_intmax_t" >&5 -$as_echo "$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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uintmax_t" >&5 -$as_echo_n "checking for uintmax_t... " >&6; } -if ${bash_cv_type_uintmax_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_uintmax_t" >&5 -$as_echo "$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 - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5 -$as_echo_n "checking for socklen_t... " >&6; } -if ${bash_cv_type_socklen_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_socklen_t" >&5 -$as_echo "$bash_cv_type_socklen_t" >&6; } -if test $bash_cv_type_socklen_t = yes; then - $as_echo "@%:@define HAVE_SOCKLEN_T 1" >>confdefs.h - - fi -if test $bash_cv_type_socklen_t = no; then - cat >>confdefs.h <<_ACEOF -@%:@define socklen_t int -_ACEOF - -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for size and type of struct rlimit fields" >&5 -$as_echo_n "checking for size and type of struct rlimit fields... " >&6; } -if ${bash_cv_type_rlimit+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -rlim_t xxx; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_rlimit=rlim_t -else - -if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&5 -$as_echo "$as_me: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&2;} - bash_cv_type_rlimit=long -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_type_rlimit=quad_t -else - bash_cv_type_rlimit=long -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_rlimit" >&5 -$as_echo "$bash_cv_type_rlimit" >&6; } -if test $bash_cv_type_rlimit = quad_t; then -$as_echo "@%:@define RLIMTYPE quad_t" >>confdefs.h - -elif test $bash_cv_type_rlimit = rlim_t; then -$as_echo "@%:@define RLIMTYPE rlim_t" >>confdefs.h - -fi - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of intmax_t" >&5 -$as_echo_n "checking size of intmax_t... " >&6; } -if ${ac_cv_sizeof_intmax_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (intmax_t))" "ac_cv_sizeof_intmax_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_intmax_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (intmax_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_intmax_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_intmax_t" >&5 -$as_echo "$ac_cv_sizeof_intmax_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_INTMAX_T $ac_cv_sizeof_intmax_t -_ACEOF - - - - -ac_fn_c_check_member "$LINENO" "struct termios" "c_line" "ac_cv_member_struct_termios_c_line" " -#include -#include - -" -if test "x$ac_cv_member_struct_termios_c_line" = xyes; then : - $as_echo "@%:@define TERMIOS_LDISC 1" >>confdefs.h - -fi - - - -ac_fn_c_check_member "$LINENO" "struct termio" "c_line" "ac_cv_member_struct_termio_c_line" " -#include -#include - -" -if test "x$ac_cv_member_struct_termio_c_line" = xyes; then : - $as_echo "@%:@define TERMIO_LDISC 1" >>confdefs.h - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_ino" >&5 -$as_echo_n "checking for struct dirent.d_ino... " >&6; } -if ${bash_cv_dirent_has_dino+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_dirent_has_dino=yes -else - bash_cv_dirent_has_dino=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dirent_has_dino" >&5 -$as_echo "$bash_cv_dirent_has_dino" >&6; } -if test $bash_cv_dirent_has_dino = yes; then -$as_echo "@%:@define HAVE_STRUCT_DIRENT_D_INO 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_fileno" >&5 -$as_echo_n "checking for struct dirent.d_fileno... " >&6; } -if ${bash_cv_dirent_has_d_fileno+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_dirent_has_d_fileno=yes -else - bash_cv_dirent_has_d_fileno=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dirent_has_d_fileno" >&5 -$as_echo "$bash_cv_dirent_has_d_fileno" >&6; } -if test $bash_cv_dirent_has_d_fileno = yes; then -$as_echo "@%:@define HAVE_STRUCT_DIRENT_D_FILENO 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_namlen" >&5 -$as_echo_n "checking for struct dirent.d_namlen... " >&6; } -if ${bash_cv_dirent_has_d_namlen+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_dirent_has_d_namlen=yes -else - bash_cv_dirent_has_d_namlen=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dirent_has_d_namlen" >&5 -$as_echo "$bash_cv_dirent_has_d_namlen" >&6; } -if test $bash_cv_dirent_has_d_namlen = yes; then -$as_echo "@%:@define HAVE_STRUCT_DIRENT_D_NAMLEN 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct winsize in sys/ioctl.h and termios.h" >&5 -$as_echo_n "checking for struct winsize in sys/ioctl.h and termios.h... " >&6; } -if ${bash_cv_struct_winsize_header+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -struct winsize x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_struct_winsize_header=ioctl_h -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -struct winsize x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_struct_winsize_header=termios_h -else - bash_cv_struct_winsize_header=other -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if test $bash_cv_struct_winsize_header = ioctl_h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sys/ioctl.h" >&5 -$as_echo "sys/ioctl.h" >&6; } - $as_echo "@%:@define STRUCT_WINSIZE_IN_SYS_IOCTL 1" >>confdefs.h - -elif test $bash_cv_struct_winsize_header = termios_h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: termios.h" >&5 -$as_echo "termios.h" >&6; } - $as_echo "@%:@define STRUCT_WINSIZE_IN_TERMIOS 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval in sys/time.h and time.h" >&5 -$as_echo_n "checking for struct timeval in sys/time.h and time.h... " >&6; } -if ${bash_cv_struct_timeval+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_struct_timeval" >&5 -$as_echo "$bash_cv_struct_timeval" >&6; } -if test $bash_cv_struct_timeval = yes; then - $as_echo "@%:@define HAVE_TIMEVAL 1" >>confdefs.h - -fi - -ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_BLOCKS 1 -_ACEOF - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if ${ac_cv_struct_tm+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -struct tm tm; - int *p = &tm.tm_sec; - return !p; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_tm=time.h -else - ac_cv_struct_tm=sys/time.h -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -$as_echo "$ac_cv_struct_tm" >&6; } -if test $ac_cv_struct_tm = sys/time.h; then - -$as_echo "@%:@define TM_IN_SYS_TIME 1" >>confdefs.h - -fi - -ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include -#include <$ac_cv_struct_tm> - -" -if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; 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 - -$as_echo "@%:@define HAVE_TM_ZONE 1" >>confdefs.h - -else - ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include -" -if test "x$ac_cv_have_decl_tzname" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_TZNAME $ac_have_decl -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 -$as_echo_n "checking for tzname... " >&6; } -if ${ac_cv_var_tzname+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if !HAVE_DECL_TZNAME -extern char *tzname[]; -#endif - -int -main () -{ -return tzname[0][0]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_var_tzname=yes -else - ac_cv_var_tzname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 -$as_echo "$ac_cv_var_tzname" >&6; } - if test $ac_cv_var_tzname = yes; then - -$as_echo "@%:@define HAVE_TZNAME 1" >>confdefs.h - - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timezone in sys/time.h and time.h" >&5 -$as_echo_n "checking for struct timezone in sys/time.h and time.h... " >&6; } -if ${bash_cv_struct_timezone+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_struct_timezone" >&5 -$as_echo "$bash_cv_struct_timezone" >&6; } -if test $bash_cv_struct_timezone = yes; then - $as_echo "@%:@define HAVE_STRUCT_TIMEZONE 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for offset of exit status in return status from wait" >&5 -$as_echo_n "checking for offset of exit status in return status from wait... " >&6; } -if ${bash_cv_wexitstatus_offset+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&5 -$as_echo "$as_me: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&2;} - bash_cv_wexitstatus_offset=0 - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -#include - -main(c, v) - int c; - char **v; -{ - pid_t pid, p; - int s, i, n; - - s = 0; - pid = fork(); - if (pid == 0) - exit (42); - - /* wait for the process */ - p = wait(&s); - if (p != pid) - exit (255); - - /* crack s */ - for (i = 0; i < (sizeof(s) - 8); i++) - { - n = (s >> i) & 0xff; - if (n == 42) - exit (i); - } - - exit (254); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_wexitstatus_offset=0 -else - bash_cv_wexitstatus_offset=$? -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -if test "$bash_cv_wexitstatus_offset" -gt 32 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: bad exit status from test program -- defaulting to 0" >&5 -$as_echo "$as_me: WARNING: bad exit status from test program -- defaulting to 0" >&2;} - bash_cv_wexitstatus_offset=0 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wexitstatus_offset" >&5 -$as_echo "$bash_cv_wexitstatus_offset" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define WEXITSTATUS_OFFSET $bash_cv_wexitstatus_offset -_ACEOF - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the existence of strsignal" >&5 -$as_echo_n "checking for the existence of strsignal... " >&6; } -if ${bash_cv_have_strsignal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -char *s = (char *)strsignal(2); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_have_strsignal=yes -else - bash_cv_have_strsignal=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_strsignal" >&5 -$as_echo "$bash_cv_have_strsignal" >&6; } -if test $bash_cv_have_strsignal = yes; then -$as_echo "@%:@define HAVE_STRSIGNAL 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if opendir() opens non-directories" >&5 -$as_echo_n "checking if opendir() opens non-directories... " >&6; } -if ${bash_cv_opendir_not_robust+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&2;} - bash_cv_opendir_not_robust=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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("bash-aclocal", 0700); -if (err < 0) { - perror("mkdir"); - exit(1); -} -unlink("bash-aclocal/not_a_directory"); -fd = open("bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666); -write(fd, "\n", 1); -close(fd); -dir = opendir("bash-aclocal/not_a_directory"); -unlink("bash-aclocal/not_a_directory"); -rmdir("bash-aclocal"); -exit (dir == 0); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_opendir_not_robust=yes -else - bash_cv_opendir_not_robust=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_opendir_not_robust" >&5 -$as_echo "$bash_cv_opendir_not_robust" >&6; } -if test $bash_cv_opendir_not_robust = yes; then -$as_echo "@%:@define OPENDIR_NOT_ROBUST 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ulimit can substitute for getdtablesize" >&5 -$as_echo_n "checking whether ulimit can substitute for getdtablesize... " >&6; } -if ${bash_cv_ulimit_maxfds+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&2;} - bash_cv_ulimit_maxfds=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -main() -{ -long maxfds = ulimit(4, 0L); -exit (maxfds == -1L); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_ulimit_maxfds=yes -else - bash_cv_ulimit_maxfds=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_ulimit_maxfds" >&5 -$as_echo "$bash_cv_ulimit_maxfds" >&6; } -if test $bash_cv_ulimit_maxfds = yes; then -$as_echo "@%:@define ULIMIT_MAXFDS 1" >>confdefs.h - -fi - - - - - - - - - ac_fn_c_check_decl "$LINENO" "fpurge" "ac_cv_have_decl_fpurge" "#include -" -if test "x$ac_cv_have_decl_fpurge" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_FPURGE $ac_have_decl -_ACEOF - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if getenv can be redefined" >&5 -$as_echo_n "checking to see if getenv can be redefined... " >&6; } -if ${bash_cv_getenv_redef+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&5 -$as_echo "$as_me: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&2;} - bash_cv_getenv_redef=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_getenv_redef=yes -else - bash_cv_getenv_redef=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_getenv_redef" >&5 -$as_echo "$bash_cv_getenv_redef" >&6; } -if test $bash_cv_getenv_redef = yes; then -$as_echo "@%:@define CAN_REDEFINE_GETENV 1" >>confdefs.h - -fi - -if test "$ac_cv_func_getcwd" = "yes"; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if getcwd() will dynamically allocate memory with 0 size" >&5 -$as_echo_n "checking if getcwd() will dynamically allocate memory with 0 size... " >&6; } -if ${bash_cv_getcwd_malloc+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&2;} - bash_cv_getcwd_malloc=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -main() -{ - char *xpwd; - xpwd = getcwd(0, 0); - exit (xpwd == 0); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_getcwd_malloc=yes -else - bash_cv_getcwd_malloc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_getcwd_malloc" >&5 -$as_echo "$bash_cv_getcwd_malloc" >&6; } -if test $bash_cv_getcwd_malloc = no; then -$as_echo "@%:@define GETCWD_BROKEN 1" >>confdefs.h - -case " $LIB@&t@OBJS " in - *" getcwd.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS getcwd.$ac_objext" - ;; -esac - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5 -$as_echo_n "checking for presence of POSIX-style sigsetjmp/siglongjmp... " >&6; } -if ${bash_cv_func_sigsetjmp+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5 -$as_echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;} - bash_cv_func_sigsetjmp=missing - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_sigsetjmp=present -else - bash_cv_func_sigsetjmp=missing -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_sigsetjmp" >&5 -$as_echo "$bash_cv_func_sigsetjmp" >&6; } -if test $bash_cv_func_sigsetjmp = present; then -$as_echo "@%:@define HAVE_POSIX_SIGSETJMP 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether or not strcoll and strcmp differ" >&5 -$as_echo_n "checking whether or not strcoll and strcmp differ... " >&6; } -if ${bash_cv_func_strcoll_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;} - bash_cv_func_strcoll_broken=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_strcoll_broken=yes -else - bash_cv_func_strcoll_broken=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_strcoll_broken" >&5 -$as_echo "$bash_cv_func_strcoll_broken" >&6; } -if test $bash_cv_func_strcoll_broken = yes; then -$as_echo "@%:@define STRCOLL_BROKEN 1" >>confdefs.h - -fi - - - - - - if test X$ac_cv_func_snprintf = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant snprintf" >&5 -$as_echo_n "checking for standard-conformant snprintf... " >&6; } -if ${bash_cv_func_snprintf+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check standard snprintf if cross-compiling" >&5 -$as_echo "$as_me: WARNING: cannot check standard snprintf if cross-compiling" >&2;} - bash_cv_func_snprintf=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -main() -{ - int n; - n = snprintf (0, 0, "%s", "0123456"); - exit(n != 7); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_snprintf=yes -else - bash_cv_func_snprintf=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_snprintf" >&5 -$as_echo "$bash_cv_func_snprintf" >&6; } - if test $bash_cv_func_snprintf = no; then - ac_cv_func_snprintf=no - fi - fi - if test $ac_cv_func_snprintf = no; then - -$as_echo "@%:@define HAVE_SNPRINTF 0" >>confdefs.h - - fi - - - - - - if test X$ac_cv_func_vsnprintf = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant vsnprintf" >&5 -$as_echo_n "checking for standard-conformant vsnprintf... " >&6; } -if ${bash_cv_func_vsnprintf+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check standard vsnprintf if cross-compiling" >&5 -$as_echo "$as_me: WARNING: cannot check standard vsnprintf if cross-compiling" >&2;} - bash_cv_func_vsnprintf=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if HAVE_STDARG_H -#include -#else -#include -#endif -#include -#include - -static int -#if HAVE_STDARG_H -foo(const char *fmt, ...) -#else -foo(format, va_alist) - const char *format; - va_dcl -#endif -{ - va_list args; - int n; - -#if HAVE_STDARG_H - va_start(args, fmt); -#else - va_start(args); -#endif - n = vsnprintf(0, 0, fmt, args); - va_end (args); - return n; -} - -main() -{ - int n; - n = foo("%s", "0123456"); - exit(n != 7); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_vsnprintf=yes -else - bash_cv_func_vsnprintf=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_vsnprintf" >&5 -$as_echo "$bash_cv_func_vsnprintf" >&6; } - if test $bash_cv_func_vsnprintf = no; then - ac_cv_func_vsnprintf=no - fi - fi - if test $ac_cv_func_vsnprintf = no; then - -$as_echo "@%:@define HAVE_VSNPRINTF 0" >>confdefs.h - - fi - - - -if test "$ac_cv_func_putenv" = "yes"; then - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant putenv declaration" >&5 -$as_echo_n "checking for standard-conformant putenv declaration... " >&6; } -if ${bash_cv_std_putenv+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_std_putenv=yes -else - bash_cv_std_putenv=no - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_std_putenv" >&5 -$as_echo "$bash_cv_std_putenv" >&6; } -if test $bash_cv_std_putenv = yes; then -$as_echo "@%:@define HAVE_STD_PUTENV 1" >>confdefs.h - -fi - -else -$as_echo "@%:@define HAVE_STD_PUTENV 1" >>confdefs.h - -fi -if test "$ac_cv_func_unsetenv" = "yes"; then - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant unsetenv declaration" >&5 -$as_echo_n "checking for standard-conformant unsetenv declaration... " >&6; } -if ${bash_cv_std_unsetenv+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_std_unsetenv=yes -else - bash_cv_std_unsetenv=no - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_std_unsetenv" >&5 -$as_echo "$bash_cv_std_unsetenv" >&6; } -if test $bash_cv_std_unsetenv = yes; then -$as_echo "@%:@define HAVE_STD_UNSETENV 1" >>confdefs.h - -fi - -else -$as_echo "@%:@define HAVE_STD_UNSETENV 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for printf floating point output in hex notation" >&5 -$as_echo_n "checking for printf floating point output in hex notation... " >&6; } -if ${bash_cv_printf_a_format+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check printf if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check printf if cross compiling -- defaulting to no" >&2;} - bash_cv_printf_a_format=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_printf_a_format=yes -else - bash_cv_printf_a_format=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_printf_a_format" >&5 -$as_echo "$bash_cv_printf_a_format" >&6; } -if test $bash_cv_printf_a_format = yes; then -$as_echo "@%:@define HAVE_PRINTF_A_FORMAT 1" >>confdefs.h - -fi - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal handlers must be reinstalled when invoked" >&5 -$as_echo_n "checking if signal handlers must be reinstalled when invoked... " >&6; } -if ${bash_cv_must_reinstall_sighandlers+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;} - bash_cv_must_reinstall_sighandlers=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_must_reinstall_sighandlers=no -else - bash_cv_must_reinstall_sighandlers=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_must_reinstall_sighandlers" >&5 -$as_echo "$bash_cv_must_reinstall_sighandlers" >&6; } -if test $bash_cv_must_reinstall_sighandlers = yes; then -$as_echo "@%:@define MUST_REINSTALL_SIGHANDLERS 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for presence of necessary job control definitions" >&5 -$as_echo_n "checking for presence of necessary job control definitions... " >&6; } -if ${bash_cv_job_control_missing+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&5 -$as_echo "$as_me: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&2;} - bash_cv_job_control_missing=missing - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_job_control_missing=present -else - bash_cv_job_control_missing=missing -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_job_control_missing" >&5 -$as_echo "$bash_cv_job_control_missing" >&6; } -if test $bash_cv_job_control_missing = missing; then -$as_echo "@%:@define JOB_CONTROL_MISSING 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for presence of named pipes" >&5 -$as_echo_n "checking for presence of named pipes... " >&6; } -if ${bash_cv_sys_named_pipes+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&5 -$as_echo "$as_me: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&2;} - bash_cv_sys_named_pipes=missing - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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("bash-aclocal", 0700); -if (err < 0) { - perror ("mkdir"); - exit(1); -} -fd = mknod ("bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); -if (fd == -1) { - rmdir ("bash-aclocal"); - exit (1); -} -close(fd); -unlink ("bash-aclocal/sh-np-autoconf"); -rmdir ("bash-aclocal"); -exit(0); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_sys_named_pipes=present -else - bash_cv_sys_named_pipes=missing -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_named_pipes" >&5 -$as_echo "$bash_cv_sys_named_pipes" >&6; } -if test $bash_cv_sys_named_pipes = missing; then -$as_echo "@%:@define NAMED_PIPES_MISSING 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether termios.h defines TIOCGWINSZ" >&5 -$as_echo_n "checking whether termios.h defines TIOCGWINSZ... " >&6; } -if ${ac_cv_sys_tiocgwinsz_in_termios_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5 -$as_echo "$ac_cv_sys_tiocgwinsz_in_termios_h" >&6; } - -if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5 -$as_echo_n "checking whether sys/ioctl.h defines TIOCGWINSZ... " >&6; } -if ${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5 -$as_echo "$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6; } - - if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then - -$as_echo "@%:@define GWINSZ_IN_SYS_IOCTL 1" >>confdefs.h - - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIOCSTAT in sys/ioctl.h" >&5 -$as_echo_n "checking for TIOCSTAT in sys/ioctl.h... " >&6; } -if ${bash_cv_tiocstat_in_ioctl+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -int x = TIOCSTAT; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_tiocstat_in_ioctl=yes -else - bash_cv_tiocstat_in_ioctl=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_tiocstat_in_ioctl" >&5 -$as_echo "$bash_cv_tiocstat_in_ioctl" >&6; } -if test $bash_cv_tiocstat_in_ioctl = yes; then -$as_echo "@%:@define TIOCSTAT_IN_SYS_IOCTL 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONREAD in sys/ioctl.h" >&5 -$as_echo_n "checking for FIONREAD in sys/ioctl.h... " >&6; } -if ${bash_cv_fionread_in_ioctl+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -int x = FIONREAD; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_fionread_in_ioctl=yes -else - bash_cv_fionread_in_ioctl=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_fionread_in_ioctl" >&5 -$as_echo "$bash_cv_fionread_in_ioctl" >&6; } -if test $bash_cv_fionread_in_ioctl = yes; then -$as_echo "@%:@define FIONREAD_IN_SYS_IOCTL 1" >>confdefs.h - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether WCONTINUED flag to waitpid is unavailable or available but broken" >&5 -$as_echo_n "checking whether WCONTINUED flag to waitpid is unavailable or available but broken... " >&6; } -if ${bash_cv_wcontinued_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&2;} - bash_cv_wcontinued_broken=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_wcontinued_broken=no -else - bash_cv_wcontinued_broken=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wcontinued_broken" >&5 -$as_echo "$bash_cv_wcontinued_broken" >&6; } -if test $bash_cv_wcontinued_broken = yes; then -$as_echo "@%:@define WCONTINUED_BROKEN 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for speed_t in sys/types.h" >&5 -$as_echo_n "checking for speed_t in sys/types.h... " >&6; } -if ${bash_cv_speed_t_in_sys_types+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -speed_t x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_speed_t_in_sys_types=yes -else - bash_cv_speed_t_in_sys_types=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_speed_t_in_sys_types" >&5 -$as_echo "$bash_cv_speed_t_in_sys_types" >&6; } -if test $bash_cv_speed_t_in_sys_types = yes; then -$as_echo "@%:@define SPEED_T_IN_SYS_TYPES 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpw functions are declared in pwd.h" >&5 -$as_echo_n "checking whether getpw functions are declared in pwd.h... " >&6; } -if ${bash_cv_getpw_declared+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_getpw_declared" >&5 -$as_echo "$bash_cv_getpw_declared" >&6; } -if test $bash_cv_getpw_declared = yes; then -$as_echo "@%:@define HAVE_GETPW_DECLS 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unusable real-time signals due to large values" >&5 -$as_echo_n "checking for unusable real-time signals due to large values... " >&6; } -if ${bash_cv_unusable_rtsigs+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&5 -$as_echo "$as_me: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&2;} - bash_cv_unusable_rtsigs=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_unusable_rtsigs=yes -else - bash_cv_unusable_rtsigs=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_unusable_rtsigs" >&5 -$as_echo "$bash_cv_unusable_rtsigs" >&6; } -if test $bash_cv_unusable_rtsigs = yes; then -$as_echo "@%:@define UNUSABLE_RT_SIGNALS 1" >>confdefs.h - -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*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $host_os needs _KERNEL for RLIMIT defines" >&5 -$as_echo_n "checking whether $host_os needs _KERNEL for RLIMIT defines... " >&6; } -if ${bash_cv_kernel_rlimit+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - - int f; - f = RLIMIT_DATA; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_kernel_rlimit=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#define _KERNEL -#include -#undef _KERNEL - -int -main () -{ - - int f; - f = RLIMIT_DATA; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_kernel_rlimit=yes -else - bash_cv_kernel_rlimit=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_kernel_rlimit" >&5 -$as_echo "$bash_cv_kernel_rlimit" >&6; } -if test $bash_cv_kernel_rlimit = yes; then -$as_echo "@%:@define RLIMIT_NEEDS_KERNEL 1" >>confdefs.h - -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -_bash_needmsg= -fi -if ${bash_cv_termcap_lib+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_fn_c_check_func "$LINENO" "tgetent" "ac_cv_func_tgetent" -if test "x$ac_cv_func_tgetent" = xyes; then : - bash_cv_termcap_lib=libc -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 -$as_echo_n "checking for tgetent in -ltermcap... " >&6; } -if ${ac_cv_lib_termcap_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermcap $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_termcap_tgetent=yes -else - ac_cv_lib_termcap_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 -$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } -if test "x$ac_cv_lib_termcap_tgetent" = xyes; then : - bash_cv_termcap_lib=libtermcap -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltinfo" >&5 -$as_echo_n "checking for tgetent in -ltinfo... " >&6; } -if ${ac_cv_lib_tinfo_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltinfo $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_tinfo_tgetent=yes -else - ac_cv_lib_tinfo_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_tgetent" >&5 -$as_echo "$ac_cv_lib_tinfo_tgetent" >&6; } -if test "x$ac_cv_lib_tinfo_tgetent" = xyes; then : - bash_cv_termcap_lib=libtinfo -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lcurses" >&5 -$as_echo_n "checking for tgetent in -lcurses... " >&6; } -if ${ac_cv_lib_curses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_curses_tgetent=yes -else - ac_cv_lib_curses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_tgetent" >&5 -$as_echo "$ac_cv_lib_curses_tgetent" >&6; } -if test "x$ac_cv_lib_curses_tgetent" = xyes; then : - bash_cv_termcap_lib=libcurses -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 -$as_echo_n "checking for tgetent in -lncurses... " >&6; } -if ${ac_cv_lib_ncurses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ncurses_tgetent=yes -else - ac_cv_lib_ncurses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 -$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } -if test "x$ac_cv_lib_ncurses_tgetent" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: using $bash_cv_termcap_lib" >&5 -$as_echo "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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether /dev/fd is available" >&5 -$as_echo_n "checking whether /dev/fd is available... " >&6; } -if ${bash_cv_dev_fd+:} false; then : - $as_echo_n "(cached) " >&6 -else - bash_cv_dev_fd="" -if test -d /dev/fd && (exec test -r /dev/fd/0 < /dev/null) ; then -# check for systems like FreeBSD 5 that only provide /dev/fd/[012] - if (exec test -r /dev/fd/3 3&5 -$as_echo "$bash_cv_dev_fd" >&6; } -if test $bash_cv_dev_fd = "standard"; then - $as_echo "@%:@define HAVE_DEV_FD 1" >>confdefs.h - - $as_echo "@%:@define DEV_FD_PREFIX \"/dev/fd/\"" >>confdefs.h - -elif test $bash_cv_dev_fd = "whacky"; then - $as_echo "@%:@define HAVE_DEV_FD 1" >>confdefs.h - - $as_echo "@%:@define DEV_FD_PREFIX \"/proc/self/fd/\"" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether /dev/stdin stdout stderr are available" >&5 -$as_echo_n "checking whether /dev/stdin stdout stderr are available... " >&6; } -if ${bash_cv_dev_stdin+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -d /dev/fd && (exec test -r /dev/stdin < /dev/null) ; then - bash_cv_dev_stdin=present - elif test -d /proc/self/fd && (exec test -r /dev/stdin < /dev/null) ; then - bash_cv_dev_stdin=present - else - bash_cv_dev_stdin=absent - fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dev_stdin" >&5 -$as_echo "$bash_cv_dev_stdin" >&6; } -if test $bash_cv_dev_stdin = "present"; then - $as_echo "@%:@define HAVE_DEV_STDIN 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default mail directory" >&5 -$as_echo_n "checking for default mail directory... " >&6; } -if ${bash_cv_mail_dir+:} false; then : - $as_echo_n "(cached) " >&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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_mail_dir" >&5 -$as_echo "$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 -$as_echo "@%:@define JOB_CONTROL 1" >>confdefs.h - -JOBS_O=jobs.o -else -JOBS_O=nojobs.o -fi - - - - -LOCAL_DEFS=-DSHELL - - -case "${host_os}" in -sysv4.2*) $as_echo "@%:@define SVR4_2 1" >>confdefs.h - - $as_echo "@%:@define SVR4 1" >>confdefs.h - ;; -sysv4*) $as_echo "@%:@define SVR4 1" >>confdefs.h - ;; -sysv5*) $as_echo "@%:@define SVR5 1" >>confdefs.h - ;; -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 -DSOLARIS" ;; -solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; -lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; -linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading - case "`uname -r`" in - 2.[456789]*|3*) $as_echo "@%:@define PGRP_PIPE 1" >>confdefs.h - ;; - esac ;; -*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;; -*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 -D_ALL_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 -dragonfly*) 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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking shared object configuration for loadable builtins" >&5 -$as_echo_n "checking shared object configuration for loadable builtins... " >&6; } - eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"` - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHOBJ_STATUS" >&5 -$as_echo "$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 - -if test -z "$localedir"; then - localedir='${datarootdir}/locale' -fi -if test -z "$datarootdir"; then - datarootdir='${prefix}/share' -fi - - - - - - -# Some versions of autoconf don't substitute these automatically - - - - - - - - - - - - - - - - - - - - - -#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" - -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, we kill variables containing newlines. -# 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. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - 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}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIB@&t@OBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $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} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -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 -IFS=$as_save_IFS - - ;; -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 - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; 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 - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# 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 - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in @%:@( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# 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'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by bash $as_me 4.2-maint, which was -generated by GNU Autoconf 2.68. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - 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_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -bash config.status 4.2-maint -configured by $0, generated by GNU Autoconf 2.68, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2010 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -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=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - 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 || ac_write_fail=1 -if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX -@%:@@%:@ Running $as_me. @%:@@%:@ -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -# 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 || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "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" ;; - "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - 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 against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #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. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # 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. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "default-1":C) - 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":C) -# Makefile uses this timestamp file to record whether config.h is up to date. -echo timestamp > stamp-h - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# 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 || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/autom4te.cache/output.1 b/autom4te.cache/output.1 deleted file mode 100644 index 41b9b5a04..000000000 --- a/autom4te.cache/output.1 +++ /dev/null @@ -1,17309 +0,0 @@ -@%:@! /bin/sh -@%:@ From configure.in for Bash 4.2, version 4.049. -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.68 for bash 4.2-maint. -@%:@ -@%:@ Report bugs to . -@%:@ -@%:@ -@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -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 -IFS=$as_save_IFS - - ;; -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 - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in @%:@( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in @%:@ (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and bug-bash@gnu.org -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; 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 - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# 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 - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_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 sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in @%:@( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# 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'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIB@&t@OBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='bash' -PACKAGE_TARNAME='bash' -PACKAGE_VERSION='4.2-maint' -PACKAGE_STRING='bash 4.2-maint' -PACKAGE_BUGREPORT='bug-bash@gnu.org' -PACKAGE_URL='' - -ac_unique_file="shell.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_header_list= -ac_func_list= -ac_subst_vars='LTLIBOBJS -LOCAL_DEFS -LOCAL_LDFLAGS -LOCAL_CFLAGS -LOCAL_LIBS -MALLOC_DEBUG -DEBUG -RELSTATUS -BASHVERS -ARFLAGS -BUILD_DIR -incdir -PROFILE_FLAGS -SHOBJ_STATUS -SHOBJ_LIBS -SHOBJ_XLDFLAGS -SHOBJ_LDFLAGS -SHOBJ_LD -SHOBJ_CFLAGS -SHOBJ_CC -JOBS_O -TERMCAP_DEP -TERMCAP_LIB -SIGLIST_O -PTHREAD_H_DEFINES_STRUCT_TIMESPEC -SYS_TIME_H_DEFINES_STRUCT_TIMESPEC -TIME_H_DEFINES_STRUCT_TIMESPEC -LIBINTL_H -INTL_INC -INTL_DEP -LIB@&t@OBJS -POSUB -LTLIBINTL -LIBINTL -INTLLIBS -INTL_LIBTOOL_SUFFIX_PREFIX -INTLOBJS -GENCAT -INSTOBJEXT -DATADIRNAME -CATOBJEXT -USE_INCLUDED_LIBINTL -BUILD_INCLUDED_LIBINTL -INTLBISON -LTLIBICONV -LIBICONV -GLIBC21 -ALLOCA -MSGMERGE -XGETTEXT -GMSGFMT -MSGFMT -USE_NLS -MKINSTALLDIRS -SIZE -MAKE_SHELL -SET_MAKE -YFLAGS -YACC -RANLIB -AR -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -TILDE_LIB -HIST_LIBDIR -HISTORY_DEP -HISTORY_LIB -RL_INCLUDE -RL_INCLUDEDIR -RL_LIBDIR -READLINE_DEP -READLINE_LIB -RL_MINOR -RL_MAJOR -RL_VERSION -LIBS_FOR_BUILD -STATIC_LD -SIGNAMES_O -SIGNAMES_H -CROSS_COMPILE -EGREP -GREP -CPP -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -HELPSTRINGS -HELPFILES_TARGET -HELPINSTALL -HELPDIRDEFINE -HELPDIR -MALLOC_DEP -MALLOC_LDFLAGS -MALLOC_LIBRARY -MALLOC_LIB -MALLOC_SRC -MALLOC_TARGET -PURIFY -TESTSCRIPT -CPPFLAGS_FOR_BUILD -LDFLAGS_FOR_BUILD -CFLAGS_FOR_BUILD -CC_FOR_BUILD -DEBUGGER_START_FILE -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -with_afs -with_bash_malloc -with_curses -with_gnu_malloc -with_installed_readline -with_purecov -with_purify -enable_minimal_config -enable_alias -enable_arith_for_command -enable_array_variables -enable_bang_history -enable_brace_expansion -enable_casemod_attributes -enable_casemod_expansions -enable_command_timing -enable_cond_command -enable_cond_regexp -enable_coprocesses -enable_debugger -enable_directory_stack -enable_disabled_builtins -enable_dparen_arithmetic -enable_extended_glob -enable_extended_glob_default -enable_help_builtin -enable_history -enable_job_control -enable_multibyte -enable_net_redirections -enable_process_substitution -enable_progcomp -enable_prompt_string_decoding -enable_readline -enable_restricted -enable_select -enable_separate_helpfiles -enable_single_help_strings -enable_strict_posix_default -enable_usg_echo_default -enable_xpg_echo_default -enable_mem_scramble -enable_profiling -enable_static_link -enable_largefile -enable_nls -with_gnu_ld -enable_rpath -with_libiconv_prefix -with_included_gettext -with_libintl_prefix -' - ac_precious_vars='build_alias -host_alias -target_alias -DEBUGGER_START_FILE -CC_FOR_BUILD -CFLAGS_FOR_BUILD -LDFLAGS_FOR_BUILD -CPPFLAGS_FOR_BUILD -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -YACC -YFLAGS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# 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. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -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 - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -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) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$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 ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$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 ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - 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 ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$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_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=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 ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_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'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -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 - $as_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 - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# 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 the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - 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 - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# 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 4.2-maint 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 \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - @<:@@S|@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] - --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] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root @<:@DATAROOTDIR/doc/bash@:>@ - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_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 4.2-maint:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --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-casemod-attributes - include case-modifying variable attributes - --enable-casemod-expansions - include case-modifying word expansions - --enable-command-timing enable the time reserved word and command timing - --enable-cond-command enable the conditional command - --enable-cond-regexp enable extended regular expression matching in - conditional commands - --enable-coprocesses enable coprocess support and the coproc reserved - word - --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-extended-glob-default - force extended pattern matching to be enabled by - default - --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-strict-posix-default - configure bash to be posix-conformant by default - --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-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_FOR_BUILD - C compiler used when compiling binaries used only at build time - CFLAGS_FOR_BUILD - Compliation options (CFLAGS) used when compiling binaries used - only at build time - LDFLAGS_FOR_BUILD - Linker options (LDFLAGS) used when compiling binaries used only - at build time - CPPFLAGS_FOR_BUILD - C preprocessor options (CPPFLAGS) used when compiling binaries - used only at build time - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - YACC The `Yet Another Compiler Compiler' implementation to use. - Defaults to the first program found out of: `bison -y', `byacc', - `yacc'. - YFLAGS The list of arguments that will be passed by default to @S|@YACC. - This script will default YFLAGS to the empty string to avoid a - default value of `-d' given by some make applications. - -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 -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested 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 - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -bash configure 4.2-maint -generated by GNU Autoconf 2.68 - -Copyright (C) 2010 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 -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -@%:@ ac_fn_c_try_compile LINENO -@%:@ -------------------------- -@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_compile - -@%:@ ac_fn_c_try_link LINENO -@%:@ ----------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_link - -@%:@ ac_fn_c_try_cpp LINENO -@%:@ ---------------------- -@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_cpp - -@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using -@%:@ the include files in INCLUDES and setting the cache variable VAR -@%:@ accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_mongrel - -@%:@ ac_fn_c_try_run LINENO -@%:@ ---------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes -@%:@ that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_run - -@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists and can be compiled using the include files in -@%:@ INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_compile - -@%:@ ac_fn_c_check_func LINENO FUNC VAR -@%:@ ---------------------------------- -@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* 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_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_func - -@%:@ ac_fn_c_check_type LINENO TYPE VAR INCLUDES -@%:@ ------------------------------------------- -@%:@ Tests whether TYPE exists after having included INCLUDES, setting cache -@%:@ variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_type - -@%:@ ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -@%:@ --------------------------------------------- -@%:@ Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -@%:@ accordingly. -ac_fn_c_check_decl () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - as_decl_name=`echo $2|sed 's/ *(.*//'` - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -$as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -@%:@ifndef $as_decl_name -@%:@ifdef __cplusplus - (void) $as_decl_use; -@%:@else - (void) $as_decl_name; -@%:@endif -@%:@endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_decl - -@%:@ ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -@%:@ -------------------------------------------- -@%:@ Tries to find the compile-time value of EXPR in a program that includes -@%:@ INCLUDES, setting VAR accordingly. Returns whether the value could be -@%:@ computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) >= 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) >= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in @%:@(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -@%:@include -@%:@include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - echo >>conftest.val; read $3 &5 -$as_echo_n "checking for $2.$3... " >&6; } -if eval \${$4+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (sizeof ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - eval "$4=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$4 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_member -cat >config.log <<_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 4.2-maint, which was -generated by GNU Autoconf 2.68. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -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` -/usr/bin/hostinfo = `(/usr/bin/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=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&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_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append 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 - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset 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: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > 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 - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in @%:@(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - 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. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -as_fn_append ac_header_list " stdlib.h" -as_fn_append ac_header_list " unistd.h" -as_fn_append ac_header_list " sys/param.h" -as_fn_append ac_header_list " sys/time.h" -as_fn_append ac_func_list " alarm" -as_fn_append ac_func_list " fpurge" -as_fn_append ac_func_list " __fpurge" -as_fn_append ac_func_list " snprintf" -as_fn_append ac_func_list " vsnprintf" -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; 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,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_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 - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_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. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -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 - as_fn_error $? "cannot find install-sh, install.sh, or shtool in ./support \"$srcdir\"/./support" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -ac_config_headers="$ac_config_headers config.h" - - -BASHVERS=4.2 -RELSTATUS=maint - -case "$RELSTATUS" in -alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; -*) DEBUG= MALLOC_DEBUG= ;; -esac - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - - -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 -*-mirbsd*) 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, QNX 6.x -*-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-afs was given. -if test "${with_afs+set}" = set; then : - withval=$with_afs; opt_afs=$withval -fi - - -@%:@ Check whether --with-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 was given. -if test "${with_curses+set}" = set; then : - withval=$with_curses; opt_curses=$withval -fi - - -@%:@ Check whether --with-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 was given. -if test "${with_installed_readline+set}" = set; then : - withval=$with_installed_readline; opt_with_installed_readline=$withval -fi - - -@%:@ Check whether --with-purecov was given. -if test "${with_purecov+set}" = set; then : - withval=$with_purecov; opt_purecov=$withval -fi - - -@%:@ Check whether --with-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)' - - $as_echo "@%:@define USING_BASH_MALLOC 1" >>confdefs.h - -else - MALLOC_LIB= - MALLOC_LIBRARY= - MALLOC_LDFLAGS= - MALLOC_DEP= -fi - -if test "$opt_purify" = yes; then - PURIFY="purify " - $as_echo "@%:@define DISABLE_MALLOC_WRAPPERS 1" >>confdefs.h - -else - PURIFY= -fi - -if test "$opt_purecov" = yes; then - PURIFY="${PURIFY}purecov" -fi - -if test "$opt_afs" = yes; then - $as_echo "@%:@define AFS 1" >>confdefs.h - -fi - -if test "$opt_curses" = yes; then - prefer_curses=yes -fi - -if test -z "${DEBUGGER_START_FILE}"; then - DEBUGGER_START_FILE='${datadir}/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_strict_posix=no -opt_cond_command=yes -opt_cond_regexp=yes -opt_coproc=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_casemod_attrs=yes -opt_casemod_expansions=yes -opt_extglob_default=no - -opt_static_link=no -opt_profiling=no - -@%:@ Check whether --enable-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 opt_coproc=no - opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no -fi - -@%:@ Check whether --enable-alias was given. -if test "${enable_alias+set}" = set; then : - enableval=$enable_alias; opt_alias=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_array_variables+set}" = set; then : - enableval=$enable_array_variables; opt_array_variables=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_brace_expansion+set}" = set; then : - enableval=$enable_brace_expansion; opt_brace_expansion=$enableval -fi - -@%:@ Check whether --enable-casemod-attributes was given. -if test "${enable_casemod_attributes+set}" = set; then : - enableval=$enable_casemod_attributes; opt_casemod_attrs=$enableval -fi - -@%:@ Check whether --enable-casemod-expansions was given. -if test "${enable_casemod_expansions+set}" = set; then : - enableval=$enable_casemod_expansions; opt_casemod_expansions=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_cond_command+set}" = set; then : - enableval=$enable_cond_command; opt_cond_command=$enableval -fi - -@%:@ Check whether --enable-cond-regexp was given. -if test "${enable_cond_regexp+set}" = set; then : - enableval=$enable_cond_regexp; opt_cond_regexp=$enableval -fi - -@%:@ Check whether --enable-coprocesses was given. -if test "${enable_coprocesses+set}" = set; then : - enableval=$enable_coprocesses; opt_coproc=$enableval -fi - -@%:@ Check whether --enable-debugger was given. -if test "${enable_debugger+set}" = set; then : - enableval=$enable_debugger; opt_debugger=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_disabled_builtins+set}" = set; then : - enableval=$enable_disabled_builtins; opt_disabled_builtins=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_extended_glob+set}" = set; then : - enableval=$enable_extended_glob; opt_extended_glob=$enableval -fi - -@%:@ Check whether --enable-extended-glob-default was given. -if test "${enable_extended_glob_default+set}" = set; then : - enableval=$enable_extended_glob_default; opt_extglob_default=$enableval -fi - -@%:@ Check whether --enable-help-builtin was given. -if test "${enable_help_builtin+set}" = set; then : - enableval=$enable_help_builtin; opt_help=$enableval -fi - -@%:@ Check whether --enable-history was given. -if test "${enable_history+set}" = set; then : - enableval=$enable_history; opt_history=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_multibyte+set}" = set; then : - enableval=$enable_multibyte; opt_multibyte=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_process_substitution+set}" = set; then : - enableval=$enable_process_substitution; opt_process_subst=$enableval -fi - -@%:@ Check whether --enable-progcomp was given. -if test "${enable_progcomp+set}" = set; then : - enableval=$enable_progcomp; opt_progcomp=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_readline+set}" = set; then : - enableval=$enable_readline; opt_readline=$enableval -fi - -@%:@ Check whether --enable-restricted was given. -if test "${enable_restricted+set}" = set; then : - enableval=$enable_restricted; opt_restricted=$enableval -fi - -@%:@ Check whether --enable-select was given. -if test "${enable_select+set}" = set; then : - enableval=$enable_select; opt_select=$enableval -fi - -@%:@ Check whether --enable-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 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-strict-posix-default was given. -if test "${enable_strict_posix_default+set}" = set; then : - enableval=$enable_strict_posix_default; opt_strict_posix=$enableval -fi - -@%:@ Check whether --enable-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 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 was given. -if test "${enable_mem_scramble+set}" = set; then : - enableval=$enable_mem_scramble; opt_memscramble=$enableval -fi - -@%:@ Check whether --enable-profiling was given. -if test "${enable_profiling+set}" = set; then : - enableval=$enable_profiling; opt_profiling=$enableval -fi - -@%:@ Check whether --enable-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 -$as_echo "@%:@define ALIAS 1" >>confdefs.h - -fi -if test $opt_dirstack = yes; then -$as_echo "@%:@define PUSHD_AND_POPD 1" >>confdefs.h - -fi -if test $opt_restricted = yes; then -$as_echo "@%:@define RESTRICTED_SHELL 1" >>confdefs.h - -fi -if test $opt_process_subst = yes; then -$as_echo "@%:@define PROCESS_SUBSTITUTION 1" >>confdefs.h - -fi -if test $opt_prompt_decoding = yes; then -$as_echo "@%:@define PROMPT_STRING_DECODE 1" >>confdefs.h - -fi -if test $opt_select = yes; then -$as_echo "@%:@define SELECT_COMMAND 1" >>confdefs.h - -fi -if test $opt_help = yes; then -$as_echo "@%:@define HELP_BUILTIN 1" >>confdefs.h - -fi -if test $opt_array_variables = yes; then -$as_echo "@%:@define ARRAY_VARS 1" >>confdefs.h - -fi -if test $opt_dparen_arith = yes; then -$as_echo "@%:@define DPAREN_ARITHMETIC 1" >>confdefs.h - -fi -if test $opt_brace_expansion = yes; then -$as_echo "@%:@define BRACE_EXPANSION 1" >>confdefs.h - -fi -if test $opt_disabled_builtins = yes; then -$as_echo "@%:@define DISABLED_BUILTINS 1" >>confdefs.h - -fi -if test $opt_command_timing = yes; then -$as_echo "@%:@define COMMAND_TIMING 1" >>confdefs.h - -fi -if test $opt_xpg_echo = yes ; then -$as_echo "@%:@define DEFAULT_ECHO_TO_XPG 1" >>confdefs.h - -fi -if test $opt_strict_posix = yes; then -$as_echo "@%:@define STRICT_POSIX 1" >>confdefs.h - -fi -if test $opt_extended_glob = yes ; then -$as_echo "@%:@define EXTENDED_GLOB 1" >>confdefs.h - -fi -if test $opt_extglob_default = yes; then -$as_echo "@%:@define EXTGLOB_DEFAULT 1" >>confdefs.h - -else -$as_echo "@%:@define EXTGLOB_DEFAULT 0" >>confdefs.h - -fi -if test $opt_cond_command = yes ; then -$as_echo "@%:@define COND_COMMAND 1" >>confdefs.h - -fi -if test $opt_cond_regexp = yes ; then -$as_echo "@%:@define COND_REGEXP 1" >>confdefs.h - -fi -if test $opt_coproc = yes; then -$as_echo "@%:@define COPROCESS_SUPPORT 1" >>confdefs.h - -fi -if test $opt_arith_for_command = yes; then -$as_echo "@%:@define ARITH_FOR_COMMAND 1" >>confdefs.h - -fi -if test $opt_net_redirs = yes; then -$as_echo "@%:@define NETWORK_REDIRECTIONS 1" >>confdefs.h - -fi -if test $opt_progcomp = yes; then -$as_echo "@%:@define PROGRAMMABLE_COMPLETION 1" >>confdefs.h - -fi -if test $opt_multibyte = no; then -$as_echo "@%:@define NO_MULTIBYTE_SUPPORT 1" >>confdefs.h - -fi -if test $opt_debugger = yes; then -$as_echo "@%:@define DEBUGGER 1" >>confdefs.h - -fi -if test $opt_casemod_attrs = yes; then -$as_echo "@%:@define CASEMOD_ATTRS 1" >>confdefs.h - -fi -if test $opt_casemod_expansions = yes; then -$as_echo "@%:@define CASEMOD_EXPANSIONS 1" >>confdefs.h - -fi - -if test $opt_memscramble = yes; then -$as_echo "@%:@define MEMSCRAMBLE 1" >>confdefs.h - -fi - -if test "$opt_minimal_config" = yes; then - TESTSCRIPT=run-minimal -else - TESTSCRIPT=run-all -fi - -HELPDIR= HELPDIRDEFINE= HELPINSTALL= HELPFILES_TARGET= -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' - HELPFILES_TARGET='helpdoc' -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; 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 | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -std 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 -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 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 -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -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 - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5 -$as_echo_n "checking for strerror in -lcposix... " >&6; } -if ${ac_cv_lib_cposix_strerror+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcposix $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char strerror (); -int -main () -{ -return strerror (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_cposix_strerror=yes -else - ac_cv_lib_cposix_strerror=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5 -$as_echo "$ac_cv_lib_cposix_strerror" >&6; } -if test "x$ac_cv_lib_cposix_strerror" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -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 - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#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)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h - -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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = xyes; then : - MINIX=yes -else - MINIX= -fi - - - if test "$MINIX" = yes; then - -$as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h - - -$as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h - - -$as_echo "@%:@define _MINIX 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if ${ac_cv_safe_to_define___extensions__+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# define __EXTENSIONS__ 1 - $ac_includes_default -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_safe_to_define___extensions__=yes -else - ac_cv_safe_to_define___extensions__=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h - - $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h - - $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h - - $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h - - - - -@%:@ Check whether --enable-largefile was given. -if test "${enable_largefile+set}" = set; then : - enableval=$enable_largefile; -fi - -if test "$enable_largefile" != no; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if ${ac_cv_sys_largefile_CC+:} false; then : - $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - if ac_fn_c_try_compile "$LINENO"; then : - break -fi -rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -$as_echo "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if ${ac_cv_sys_file_offset_bits+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF -;; -esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if ${ac_cv_sys_large_files+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -@%:@define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF -;; -esac -rm -rf conftest* - fi -fi - - - -SIGNAMES_O= -SIGNAMES_H=lsignames.h - - - -CROSS_COMPILE= -if test "x$cross_compiling" = "xyes"; then - case "${host}" in - *-cygwin*) - cross_cache=${srcdir}/cross-build/cygwin32.cache - ;; - *-mingw*) - cross_cache=${srcdir}/cross-build/cygwin32.cache - ;; - i[3456]86-*-beos*) - cross_cache=${srcdir}/cross-build/x86-beos.cache - ;; - *) 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 - SIGNAMES_O='signames.o' - CROSS_COMPILE='-DCROSS_COMPILING' - -fi - - - - -if test -z "$CFLAGS"; then - AUTO_CFLAGS="-g ${GCC+-O2}" - AUTO_LDFLAGS="-g ${GCC+-O2}" -else - AUTO_CFLAGS= AUTO_LDFLAGS= -fi - -CFLAGS=${CFLAGS-"$AUTO_CFLAGS"} -# LDFLAGS=${LDFLAGS="$AUTO_LDFLAGS"} # XXX - -if test "$opt_profiling" = "yes"; then - PROFILE_FLAGS=-pg - case "$host_os" in - solaris2*) ;; - *) opt_static_link=yes ;; - esac - DEBUG= MALLOC_DEBUG= -fi - -prefer_shared=yes -prefer_static=no - -if test "$opt_static_link" = yes; then - prefer_static=yes - prefer_shared=no - # 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 - -# set the appropriate make variables for building the "build tools" -# modify defaults based on whether or not we are cross compiling, since the -# options for the target host may not be appropriate for the build host -if test "X$cross_compiling" = "Xno"; then - CC_FOR_BUILD=${CC_FOR_BUILD-'$(CC)'} - CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"} # XXX - should it be '$(CPPFLAGS)' - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'} - # CFLAGS set above to default value if not passed in environment - CFLAGS_FOR_BUILD=${CFLAGS-'$(CFLAGS)'} - LIBS_FOR_BUILD=${LIBS_FOR_BUILD-'$(LIBS)'} -else - CC_FOR_BUILD=${CC_FOR_BUILD-"gcc"} - CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""} - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""} - CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD="-g"} - LIBS_FOR_BUILD=${LIBS_FOR_BUILD-""} -fi - - - - - - - - - - - - -if test $ac_cv_c_compiler_gnu = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 -$as_echo_n "checking whether $CC needs -traditional... " >&6; } -if ${ac_cv_prog_gcc_traditional+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_pattern="Autoconf.*'x'" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -_bash_needmsg= -fi -if ${bash_cv_termcap_lib+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_fn_c_check_func "$LINENO" "tgetent" "ac_cv_func_tgetent" -if test "x$ac_cv_func_tgetent" = xyes; then : - bash_cv_termcap_lib=libc -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 -$as_echo_n "checking for tgetent in -ltermcap... " >&6; } -if ${ac_cv_lib_termcap_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermcap $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_termcap_tgetent=yes -else - ac_cv_lib_termcap_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 -$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } -if test "x$ac_cv_lib_termcap_tgetent" = xyes; then : - bash_cv_termcap_lib=libtermcap -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltinfo" >&5 -$as_echo_n "checking for tgetent in -ltinfo... " >&6; } -if ${ac_cv_lib_tinfo_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltinfo $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_tinfo_tgetent=yes -else - ac_cv_lib_tinfo_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_tgetent" >&5 -$as_echo "$ac_cv_lib_tinfo_tgetent" >&6; } -if test "x$ac_cv_lib_tinfo_tgetent" = xyes; then : - bash_cv_termcap_lib=libtinfo -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lcurses" >&5 -$as_echo_n "checking for tgetent in -lcurses... " >&6; } -if ${ac_cv_lib_curses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_curses_tgetent=yes -else - ac_cv_lib_curses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_tgetent" >&5 -$as_echo "$ac_cv_lib_curses_tgetent" >&6; } -if test "x$ac_cv_lib_curses_tgetent" = xyes; then : - bash_cv_termcap_lib=libcurses -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 -$as_echo_n "checking for tgetent in -lncurses... " >&6; } -if ${ac_cv_lib_ncurses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ncurses_tgetent=yes -else - ac_cv_lib_ncurses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 -$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } -if test "x$ac_cv_lib_ncurses_tgetent" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: using $bash_cv_termcap_lib" >&5 -$as_echo "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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of installed readline library" >&5 -$as_echo_n "checking version of installed readline library... " >&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 ${ac_cv_rl_version+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_rl_version='4.2' -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -extern int rl_gnu_readline_p; - -main() -{ - FILE *fp; - fp = fopen("conftest.rlv", "w"); - if (fp == 0) - exit(1); - if (rl_gnu_readline_p != 1) - fprintf(fp, "0.0\n"); - else - fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0"); - fclose(fp); - exit(0); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_rl_version=`cat conftest.rlv` -else - ac_cv_rl_version='0.0' -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam 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 - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not test version of installed readline library." >&5 -$as_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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rl_version" >&5 -$as_echo "$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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rl_version" >&5 -$as_echo "$ac_cv_rl_version" >&6; } - -fi - - - case "$ac_cv_rl_version" in - 5*|6*|7*|8*|9*) ;; - *) opt_with_installed_readline=no - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: installed readline library is too old to be linked with bash" >&5 -$as_echo "$as_me: WARNING: installed readline library is too old to be linked with bash" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using private bash version" >&5 -$as_echo "$as_me: WARNING: using private bash version" >&2;} - ;; - esac -fi - -TILDE_LIB=-ltilde -if test $opt_readline = yes; then - $as_echo "@%:@define READLINE 1" >>confdefs.h - - 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 - # section for OS versions that don't allow unresolved symbols - # to be compiled into dynamic libraries. - case "$host_os" in - cygwin*) TILDE_LIB= ;; - esac - else - RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' - READLINE_DEP='$(READLINE_LIBRARY)' - # section for OS versions that ship an older/broken 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 - darwin[89]*|darwin10*) 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 - $as_echo "@%:@define HISTORY 1" >>confdefs.h - - fi - if test $opt_bang_history = yes; then - $as_echo "@%:@define BANG_HISTORY 1" >>confdefs.h - - 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 - darwin[89]*|darwin10*) 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. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -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. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_YACC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_YACC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -YACC=$ac_cv_prog_YACC -if test -n "$YACC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 -$as_echo "$YACC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$YACC" && break -done -test -n "$YACC" || YACC="yacc" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 - - -# Checks for stat-related time functions. - -# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2012 Free Software -# Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# st_atim.tv_nsec - Linux, Solaris, Cygwin -# st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE -# st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE -# st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1) - -# st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway) -# st_birthtim - Cygwin 1.7.0+ - - - -# Configure checks for struct timespec - -# Copyright (C) 2000-2001, 2003-2007, 2009-2011, 2012 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Original written by Paul Eggert and Jim Meyering. -# Modified by Chet Ramey for bash - - - - - -$as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* 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"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 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; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes -else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -$as_echo "@%:@define const /**/" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; 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 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "@%:@define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "@%:@define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for preprocessor stringizing operator" >&5 -$as_echo_n "checking for preprocessor stringizing operator... " >&6; } -if ${ac_cv_c_stringize+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stringize" >&5 -$as_echo "$ac_cv_c_stringize" >&6; } -if test $ac_cv_c_stringize = yes; then - -$as_echo "@%:@define HAVE_STRINGIZE 1" >>confdefs.h - -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double with more range or precision than double" >&5 -$as_echo_n "checking for long double with more range or precision than double... " >&6; } -if ${ac_cv_type_long_double_wider+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - long double const a[] = - { - 0.0L, DBL_MIN, DBL_MAX, DBL_EPSILON, - LDBL_MIN, LDBL_MAX, LDBL_EPSILON - }; - long double - f (long double x) - { - return ((x + (unsigned long int) 10) * (-1 / x) + a[0] - + (x ? f (x) : 'c')); - } - -int -main () -{ -static int test_array @<:@1 - 2 * !((0 < ((DBL_MAX_EXP < LDBL_MAX_EXP) - + (DBL_MANT_DIG < LDBL_MANT_DIG) - - (LDBL_MAX_EXP < DBL_MAX_EXP) - - (LDBL_MANT_DIG < DBL_MANT_DIG))) - && (int) LDBL_EPSILON == 0 - )@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_long_double_wider=yes -else - ac_cv_type_long_double_wider=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double_wider" >&5 -$as_echo "$ac_cv_type_long_double_wider" >&6; } - if test $ac_cv_type_long_double_wider = yes; then - -$as_echo "@%:@define HAVE_LONG_DOUBLE_WIDER 1" >>confdefs.h - - fi - - ac_cv_c_long_double=$ac_cv_type_long_double_wider - if test $ac_cv_c_long_double = yes; then - -$as_echo "@%:@define HAVE_LONG_DOUBLE 1" >>confdefs.h - - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for function prototypes" >&5 -$as_echo_n "checking for function prototypes... " >&6; } -if test "$ac_cv_prog_cc_c89" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "@%:@define PROTOTYPES 1" >>confdefs.h - - -$as_echo "@%:@define __PROTOTYPES 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5 -$as_echo_n "checking whether char is unsigned... " >&6; } -if ${ac_cv_c_char_unsigned+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((char) -1) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_char_unsigned=no -else - ac_cv_c_char_unsigned=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5 -$as_echo "$ac_cv_c_char_unsigned" >&6; } -if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then - $as_echo "@%:@define __CHAR_UNSIGNED__ 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5 -$as_echo_n "checking for working volatile... " >&6; } -if ${ac_cv_c_volatile+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - -volatile int x; -int * volatile y = (int *) 0; -return !x && !y; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_volatile=yes -else - ac_cv_c_volatile=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 -$as_echo "$ac_cv_c_volatile" >&6; } -if test $ac_cv_c_volatile = no; then - -$as_echo "@%:@define volatile /**/" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 -$as_echo_n "checking for C/C++ restrict keyword... " >&6; } -if ${ac_cv_c_restrict+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_restrict=no - # The order here caters to the fact that C++ does not require restrict. - for ac_kw in __restrict __restrict__ _Restrict restrict; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -typedef int * int_ptr; - int foo (int_ptr $ac_kw ip) { - return ip[0]; - } -int -main () -{ -int s[1]; - int * $ac_kw t = s; - t[0] = 0; - return foo(t) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_restrict=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_restrict" != no && break - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 -$as_echo "$ac_cv_c_restrict" >&6; } - - case $ac_cv_c_restrict in - restrict) ;; - no) $as_echo "@%:@define restrict /**/" >>confdefs.h - ;; - *) cat >>confdefs.h <<_ACEOF -@%:@define restrict $ac_cv_c_restrict -_ACEOF - ;; - esac - - - - 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 - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - @%:@ Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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,^.*/,,'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -$as_echo "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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "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" - - -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define off_t long int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define size_t unsigned int -_ACEOF - -fi - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_alloca_h=yes -else - ac_cv_working_alloca_h=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } -if test $ac_cv_working_alloca_h = yes; then - -$as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_alloca_works=yes -else - ac_cv_func_alloca_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } - -if test $ac_cv_func_alloca_works = yes; then - -$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h - -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=\${LIBOBJDIR}alloca.$ac_objext - -$as_echo "@%:@define C_ALLOCA 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - -cat >>confdefs.h <<_ACEOF -@%:@define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_c_stack_direction=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -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 () -{ - return find_stack_direction () < 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_stack_direction=1 -else - ac_cv_c_stack_direction=-1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -@%:@define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - - - - - for ac_header in $ac_header_list -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - -for ac_func in getpagesize -do : - ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_GETPAGESIZE 1 -_ACEOF - -fi -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if ${ac_cv_func_mmap_fixed_mapped+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_mmap_fixed_mapped=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 !defined STDC_HEADERS && !defined HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# ifdef 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; - const char *cdata2; - int i, pagesize; - int fd, fd2; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 2; - if (write (fd, data, pagesize) != pagesize) - return 3; - close (fd); - - /* Next, check that the tail of a page is zero-filled. File must have - non-zero length, otherwise we risk SIGBUS for entire page. */ - fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd2 < 0) - return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) - return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); - if (data2 == MAP_FAILED) - return 6; - for (i = 0; i < pagesize; ++i) - if (*(data2 + i)) - return 7; - close (fd2); - if (munmap (data2, pagesize)) - return 8; - - /* 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) - return 9; - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 10; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 11; - - /* 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) - return 12; - if (read (fd, data3, pagesize) != pagesize) - return 13; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 14; - close (fd); - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_mmap_fixed_mapped=yes -else - ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -$as_echo "@%:@define HAVE_MMAP 1" >>confdefs.h - -fi -rm -f conftest.mmap conftest.txt - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5 -$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; } -if ${ac_cv_gnu_library_2_1+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 -$as_echo "$ac_cv_gnu_library_2_1" >&6; } - - GLIBC21="$ac_cv_gnu_library_2_1" - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether integer division by zero raises SIGFPE" >&5 -$as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; } -if ${gt_cv_int_divbyzero_sigfpe+:} false; then : - $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - gt_cv_int_divbyzero_sigfpe=yes -else - gt_cv_int_divbyzero_sigfpe=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_int_divbyzero_sigfpe" >&5 -$as_echo "$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 - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 -$as_echo_n "checking for inttypes.h... " >&6; } -if ${jm_ac_cv_header_inttypes_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -uintmax_t i = (uintmax_t) -1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - jm_ac_cv_header_inttypes_h=yes -else - jm_ac_cv_header_inttypes_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $jm_ac_cv_header_inttypes_h" >&5 -$as_echo "$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 - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 -$as_echo_n "checking for stdint.h... " >&6; } -if ${jm_ac_cv_header_stdint_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -uintmax_t i = (uintmax_t) -1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - jm_ac_cv_header_stdint_h=yes -else - jm_ac_cv_header_stdint_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $jm_ac_cv_header_stdint_h" >&5 -$as_echo "$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 - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long" >&5 -$as_echo_n "checking for unsigned long long... " >&6; } -if ${ac_cv_type_unsigned_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_type_unsigned_long_long=yes -else - ac_cv_type_unsigned_long_long=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long" >&5 -$as_echo "$ac_cv_type_unsigned_long_long" >&6; } - if test $ac_cv_type_unsigned_long_long = yes; then - -$as_echo "@%:@define HAVE_UNSIGNED_LONG_LONG 1" >>confdefs.h - - 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 - -$as_echo "@%:@define HAVE_UINTMAX_T 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 -$as_echo_n "checking for inttypes.h... " >&6; } -if ${gt_cv_header_inttypes_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gt_cv_header_inttypes_h=yes -else - gt_cv_header_inttypes_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_header_inttypes_h" >&5 -$as_echo "$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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5 -$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; } -if ${gt_cv_inttypes_pri_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#ifdef PRId32 -char *p = PRId32; -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gt_cv_inttypes_pri_broken=no -else - gt_cv_inttypes_pri_broken=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5 -$as_echo "$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 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. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 -$as_echo_n "checking for ld used by GCC... " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${acl_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${acl_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5 -$as_echo "$acl_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$acl_cv_prog_gnu_ld - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 -$as_echo_n "checking for shared library run path origin... " >&6; } -if ${acl_cv_rpath+:} false; then : - $as_echo_n "(cached) " >&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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 -$as_echo "$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 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 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 "X$prefer_shared" = "Xyes" && 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 "X$prefer_shared" = "Xyes" && 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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 localeconv stpcpy \ -strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ -__fsetlocking -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 -$as_echo_n "checking for iconv... " >&6; } -if ${am_cv_func_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_func_iconv=yes -fi -rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 -$as_echo "$am_cv_func_iconv" >&6; } - if test "$am_cv_func_iconv" = yes; then - -$as_echo "@%:@define HAVE_ICONV 1" >>confdefs.h - - fi - if test "$am_cv_lib_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 -$as_echo_n "checking how to link with libiconv... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 -$as_echo "$LIBICONV" >&6; } - else - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - - - - if test "$am_cv_func_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 -$as_echo_n "checking for iconv declaration... " >&6; } - if ${am_cv_proto_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - am_cv_proto_iconv_arg1="" -else - am_cv_proto_iconv_arg1="const" -fi -rm -f core 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/( /(/'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- - }$am_cv_proto_iconv" >&5 -$as_echo "${ac_t:- - }$am_cv_proto_iconv" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define ICONV_CONST $am_cv_proto_iconv_arg1 -_ACEOF - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 -$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } -if ${am_cv_langinfo_codeset+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_langinfo_codeset=yes -else - am_cv_langinfo_codeset=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 -$as_echo "$am_cv_langinfo_codeset" >&6; } - if test $am_cv_langinfo_codeset = yes; then - -$as_echo "@%:@define HAVE_LANGINFO_CODESET 1" >>confdefs.h - - fi - - if test $ac_cv_header_locale_h = yes; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 -$as_echo_n "checking for LC_MESSAGES... " >&6; } -if ${am_cv_val_LC_MESSAGES+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_val_LC_MESSAGES=yes -else - am_cv_val_LC_MESSAGES=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 -$as_echo "$am_cv_val_LC_MESSAGES" >&6; } - if test $am_cv_val_LC_MESSAGES = yes; then - -$as_echo "@%:@define HAVE_LC_MESSAGES 1" >>confdefs.h - - 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_INTLBISON+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_INTLBISON="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -INTLBISON=$ac_cv_prog_INTLBISON -if test -n "$INTLBISON"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLBISON" >&5 -$as_echo "$INTLBISON" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$INTLBISON" && break -done - - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of bison" >&5 -$as_echo_n "checking version of bison... " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5 -$as_echo "$ac_prog_version" >&6; } - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - @%:@ Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5 -$as_echo_n "checking whether included gettext is requested... " >&6; } - -@%:@ Check whether --with-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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_force_use_gnu_gettext" >&5 -$as_echo "$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 - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 -$as_echo_n "checking for GNU gettext in libc... " >&6; } -if ${gt_cv_func_gnugettext2_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_gnugettext2_libc=yes -else - gt_cv_func_gnugettext2_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext2_libc" >&5 -$as_echo "$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 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 "X$prefer_shared" = "Xyes" && 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 "X$prefer_shared" = "Xyes" && 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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 -$as_echo_n "checking for GNU gettext in libintl... " >&6; } -if ${gt_cv_func_gnugettext2_libintl+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_gnugettext2_libintl=yes -else - gt_cv_func_gnugettext2_libintl=no -fi -rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - gt_cv_func_gnugettext2_libintl=yes - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext2_libintl" >&5 -$as_echo "$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 - -$as_echo "@%:@define ENABLE_NLS 1" >>confdefs.h - - else - USE_NLS=no - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 -$as_echo_n "checking whether to use NLS... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - if test "$USE_NLS" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 -$as_echo_n "checking where the gettext function comes from... " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 -$as_echo "$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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 -$as_echo_n "checking how to link with libintl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 -$as_echo "$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 - - -$as_echo "@%:@define HAVE_GETTEXT 1" >>confdefs.h - - -$as_echo "@%:@define HAVE_DCGETTEXT 1" >>confdefs.h - - 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=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 -$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval \${$as_ac_Header+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include <$ac_hdr> - -int -main () -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_ac_Header=yes" -else - eval "$as_ac_Header=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_ac_Header - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dir; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi -done -if ${ac_cv_search_opendir+:} false; then : - -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' x; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi -done -if ${ac_cv_search_opendir+:} false; then : - -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if ${ac_cv_header_time+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "@%:@define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - - - - for ac_header in inttypes.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" -if test "x$ac_cv_header_inttypes_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_INTTYPES_H 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 \ - stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \ - regex.h syslog.h ulimit.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_fn_c_check_header_compile "$LINENO" "sys/ptem.h" "ac_cv_header_sys_ptem_h" " -#if HAVE_SYS_STREAM_H -# include -#endif - -" -if test "x$ac_cv_header_sys_ptem_h" = xyes; then : - -fi - - - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_alloca_h=yes -else - ac_cv_working_alloca_h=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } -if test $ac_cv_working_alloca_h = yes; then - -$as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_alloca_works=yes -else - ac_cv_func_alloca_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } - -if test $ac_cv_func_alloca_works = yes; then - -$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h - -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=\${LIBOBJDIR}alloca.$ac_objext - -$as_echo "@%:@define C_ALLOCA 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - -cat >>confdefs.h <<_ACEOF -@%:@define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_c_stack_direction=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -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 () -{ - return find_stack_direction () < 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_stack_direction=1 -else - ac_cv_c_stack_direction=-1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -@%:@define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpgrp requires zero arguments" >&5 -$as_echo_n "checking whether getpgrp requires zero arguments... " >&6; } -if ${ac_cv_func_getpgrp_void+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Use it with a single arg. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -getpgrp (0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_getpgrp_void=no -else - ac_cv_func_getpgrp_void=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpgrp_void" >&5 -$as_echo "$ac_cv_func_getpgrp_void" >&6; } -if test $ac_cv_func_getpgrp_void = yes; then - -$as_echo "@%:@define GETPGRP_VOID 1" >>confdefs.h - -fi - -if ${ac_cv_func_setvbuf_reversed+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_func_setvbuf_reversed=no -fi - - -for ac_func in vprintf -do : - ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_VPRINTF 1 -_ACEOF - -ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = xyes; then : - -$as_echo "@%:@define HAVE_DOPRNT 1" >>confdefs.h - -fi - -fi -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strcoll" >&5 -$as_echo_n "checking for working strcoll... " >&6; } -if ${ac_cv_func_strcoll_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_strcoll_works=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -return (strcoll ("abc", "def") >= 0 || - strcoll ("ABC", "DEF") >= 0 || - strcoll ("123", "456") >= 0) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_strcoll_works=yes -else - ac_cv_func_strcoll_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strcoll_works" >&5 -$as_echo "$ac_cv_func_strcoll_works" >&6; } -if test $ac_cv_func_strcoll_works = yes; then - -$as_echo "@%:@define HAVE_STRCOLL 1" >>confdefs.h - -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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of vprintf in stdio.h" >&5 -$as_echo_n "checking for declaration of vprintf in stdio.h... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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* - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vprintf" >&5 -$as_echo "$ac_cv_func_vprintf" >&6; } - if test $ac_cv_func_vprintf = yes; then - $as_echo "@%:@define HAVE_VPRINTF 1" >>confdefs.h - - fi -fi - -if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then - case " $LIB@&t@OBJS " in - *" vprint.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS vprint.$ac_objext" - ;; -esac - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if ${ac_cv_type_signal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int -else - ac_cv_type_signal=void -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - - -ac_fn_c_check_func "$LINENO" "__setostype" "ac_cv_func___setostype" -if test "x$ac_cv_func___setostype" = xyes; then : - $as_echo "@%:@define HAVE_SETOSTYPE 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wait3" "ac_cv_func_wait3" -if test "x$ac_cv_func_wait3" = xyes; then : - $as_echo "@%:@define HAVE_WAIT3 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "mkfifo" "ac_cv_func_mkfifo" -if test "x$ac_cv_func_mkfifo" = xyes; then : - $as_echo "@%:@define HAVE_MKFIFO 1" >>confdefs.h - -else - $as_echo "@%:@define MKFIFO_MISSING 1" >>confdefs.h - -fi - - -for ac_func in dup2 eaccess fcntl getdtablesize getgroups gethostname \ - getpagesize getpeername getrlimit getrusage gettimeofday \ - kill killpg lstat readlink sbrk select setdtablesize \ - setitimer tcgetpgrp uname ulimit waitpid -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -ac_fn_c_check_func "$LINENO" "rename" "ac_cv_func_rename" -if test "x$ac_cv_func_rename" = xyes; then : - $as_echo "@%:@define HAVE_RENAME 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" rename.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS rename.$ac_objext" - ;; -esac - -fi - - - -for ac_func in bcopy bzero confstr faccessat fnmatch \ - getaddrinfo gethostbyname getservbyname getservent inet_aton \ - imaxdiv memmove pathconf putenv raise regcomp regexec \ - setenv setlinebuf setlocale setvbuf siginterrupt strchr \ - sysconf syslog tcgetattr times ttyname tzset unsetenv -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -for ac_func in vasprintf asprintf -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in getpwent getpwnam getpwuid -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd" -if test "x$ac_cv_func_getcwd" = xyes; then : - $as_echo "@%:@define HAVE_GETCWD 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" getcwd.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS getcwd.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "memset" "ac_cv_func_memset" -if test "x$ac_cv_func_memset" = xyes; then : - $as_echo "@%:@define HAVE_MEMSET 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" memset.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS memset.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" -if test "x$ac_cv_func_strcasecmp" = xyes; then : - $as_echo "@%:@define HAVE_STRCASECMP 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strcasecmp.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strcasecmp.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr" -if test "x$ac_cv_func_strcasestr" = xyes; then : - $as_echo "@%:@define HAVE_STRCASESTR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strcasestr.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strcasestr.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" -if test "x$ac_cv_func_strerror" = xyes; then : - $as_echo "@%:@define HAVE_STRERROR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strerror.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strerror.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" -if test "x$ac_cv_func_strftime" = xyes; then : - $as_echo "@%:@define HAVE_STRFTIME 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strftime.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strftime.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen" -if test "x$ac_cv_func_strnlen" = xyes; then : - $as_echo "@%:@define HAVE_STRNLEN 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strnlen.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strnlen.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strpbrk" "ac_cv_func_strpbrk" -if test "x$ac_cv_func_strpbrk" = xyes; then : - $as_echo "@%:@define HAVE_STRPBRK 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strpbrk.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strpbrk.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr" -if test "x$ac_cv_func_strstr" = xyes; then : - $as_echo "@%:@define HAVE_STRSTR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strstr.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strstr.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "strtod" "ac_cv_func_strtod" -if test "x$ac_cv_func_strtod" = xyes; then : - $as_echo "@%:@define HAVE_STRTOD 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtod.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtod.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" -if test "x$ac_cv_func_strtol" = xyes; then : - $as_echo "@%:@define HAVE_STRTOL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtol.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtol.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul" -if test "x$ac_cv_func_strtoul" = xyes; then : - $as_echo "@%:@define HAVE_STRTOUL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoul.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoul.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoll" "ac_cv_func_strtoll" -if test "x$ac_cv_func_strtoll" = xyes; then : - $as_echo "@%:@define HAVE_STRTOLL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoll.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoll.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoull" "ac_cv_func_strtoull" -if test "x$ac_cv_func_strtoull" = xyes; then : - $as_echo "@%:@define HAVE_STRTOULL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoull.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoull.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoimax" "ac_cv_func_strtoimax" -if test "x$ac_cv_func_strtoimax" = xyes; then : - $as_echo "@%:@define HAVE_STRTOIMAX 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoimax.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoimax.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoumax" "ac_cv_func_strtoumax" -if test "x$ac_cv_func_strtoumax" = xyes; then : - $as_echo "@%:@define HAVE_STRTOUMAX 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoumax.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoumax.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "dprintf" "ac_cv_func_dprintf" -if test "x$ac_cv_func_dprintf" = xyes; then : - $as_echo "@%:@define HAVE_DPRINTF 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" dprintf.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS dprintf.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul" -if test "x$ac_cv_func_strchrnul" = xyes; then : - $as_echo "@%:@define HAVE_STRCHRNUL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strchrnul.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strchrnul.$ac_objext" - ;; -esac - -fi - - - -ac_fn_c_check_decl "$LINENO" "AUDIT_USER_TTY" "ac_cv_have_decl_AUDIT_USER_TTY" "#include -" -if test "x$ac_cv_have_decl_AUDIT_USER_TTY" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_AUDIT_USER_TTY $ac_have_decl -_ACEOF - - -ac_fn_c_check_decl "$LINENO" "confstr" "ac_cv_have_decl_confstr" "$ac_includes_default" -if test "x$ac_cv_have_decl_confstr" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_CONFSTR $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "printf" "ac_cv_have_decl_printf" "$ac_includes_default" -if test "x$ac_cv_have_decl_printf" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_PRINTF $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "sbrk" "ac_cv_have_decl_sbrk" "$ac_includes_default" -if test "x$ac_cv_have_decl_sbrk" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SBRK $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "setregid" "ac_cv_have_decl_setregid" "$ac_includes_default" -if test "x$ac_cv_have_decl_setregid" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SETREGID $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "strcpy" "ac_cv_have_decl_strcpy" "$ac_includes_default" -if test "x$ac_cv_have_decl_strcpy" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_STRCPY $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "strsignal" "ac_cv_have_decl_strsignal" "$ac_includes_default" -if test "x$ac_cv_have_decl_strsignal" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_STRSIGNAL $ac_have_decl -_ACEOF - - -ac_fn_c_check_decl "$LINENO" "strtold" "ac_cv_have_decl_strtold" "$ac_includes_default" -if test "x$ac_cv_have_decl_strtold" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_STRTOLD $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken strtold" >&5 -$as_echo_n "checking for broken strtold... " >&6; } - if ${bash_cv_strtold_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int main() { long double r; char *foo, bar; r = strtold(foo, &bar);} - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_strtold_broken=no -else - bash_cv_strtold_broken=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_strtold_broken" >&5 -$as_echo "$bash_cv_strtold_broken" >&6; } - if test "$bash_cv_strtold_broken" = "yes" ; then - $as_echo "@%:@define STRTOLD_BROKEN 1" >>confdefs.h - - fi - -fi - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoimax" >&5 -$as_echo_n "checking for declaration of strtoimax... " >&6; } -if ${bash_cv_decl_strtoimax+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoimax; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoimax=yes -else - bash_cv_decl_strtoimax=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoimax" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtol" >&5 -$as_echo_n "checking for declaration of strtol... " >&6; } -if ${bash_cv_decl_strtol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtol; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtol=yes -else - bash_cv_decl_strtol=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtol" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoll" >&5 -$as_echo_n "checking for declaration of strtoll... " >&6; } -if ${bash_cv_decl_strtoll+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoll; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoll=yes -else - bash_cv_decl_strtoll=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoll" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoul" >&5 -$as_echo_n "checking for declaration of strtoul... " >&6; } -if ${bash_cv_decl_strtoul+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoul; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoul=yes -else - bash_cv_decl_strtoul=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoul" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoull" >&5 -$as_echo_n "checking for declaration of strtoull... " >&6; } -if ${bash_cv_decl_strtoull+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoull; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoull=yes -else - bash_cv_decl_strtoull=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoull" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoumax" >&5 -$as_echo_n "checking for declaration of strtoumax... " >&6; } -if ${bash_cv_decl_strtoumax+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoumax; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoumax=yes -else - bash_cv_decl_strtoumax=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoumax" >&5 -$as_echo "$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_func in $ac_func_list -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 -$as_echo_n "checking for working mktime... " >&6; } -if ${ac_cv_func_working_mktime+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_working_mktime=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Test program from Paul Eggert and Tony Leneis. */ -#ifdef TIME_WITH_SYS_TIME -# include -# include -#else -# ifdef HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - -#include -#include - -#ifdef HAVE_UNISTD_H -# include -#endif - -#ifndef 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 const char *tz_strings[] = { - (const 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])) - -/* Return 0 if mktime fails to convert a date in the spring-forward gap. - Based on a problem report from Andreas Jaeger. */ -static int -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 ((char*) "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; - return mktime (&tm) != (time_t) -1; -} - -static int -mktime_test1 (time_t now) -{ - struct tm *lt; - return ! (lt = localtime (&now)) || mktime (lt) == now; -} - -static int -mktime_test (time_t now) -{ - return (mktime_test1 (now) - && mktime_test1 ((time_t) (time_t_max - now)) - && mktime_test1 ((time_t) (time_t_min + now))); -} - -static int -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); - return tm.tm_mon == 2 && tm.tm_mday == 31; -} - -static int -bigtime_test (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)))) - return 0; - } - return 1; -} - -static int -year_2050_test () -{ - /* The correct answer for 2050-02-01 00:00:00 in Pacific time, - ignoring leap seconds. */ - unsigned long int answer = 2527315200UL; - - struct tm tm; - time_t t; - tm.tm_year = 2050 - 1900; - tm.tm_mon = 2 - 1; - tm.tm_mday = 1; - tm.tm_hour = tm.tm_min = tm.tm_sec = 0; - tm.tm_isdst = -1; - - /* 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 ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); - - t = mktime (&tm); - - /* Check that the result is either a failure, or close enough - to the correct answer that we can assume the discrepancy is - due to leap seconds. */ - return (t == (time_t) -1 - || (0 < t && answer - 120 <= t && t <= answer + 120)); -} - -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 (;;) - { - t = (time_t_max << 1) + 1; - if (t <= time_t_max) - break; - time_t_max = t; - } - time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; - - delta = time_t_max / 997; /* a suitable prime number */ - for (i = 0; i < N_STRINGS; i++) - { - if (tz_strings[i]) - putenv ((char*) tz_strings[i]); - - for (t = 0; t <= time_t_max - delta; t += delta) - if (! mktime_test (t)) - return 1; - if (! (mktime_test ((time_t) 1) - && mktime_test ((time_t) (60 * 60)) - && mktime_test ((time_t) (60 * 60 * 24)))) - return 1; - - for (j = 1; ; j <<= 1) - if (! bigtime_test (j)) - return 1; - else if (INT_MAX / 2 < j) - break; - if (! bigtime_test (INT_MAX)) - return 1; - } - return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_working_mktime=yes -else - ac_cv_func_working_mktime=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_working_mktime" >&5 -$as_echo "$ac_cv_func_working_mktime" >&6; } -if test $ac_cv_func_working_mktime = no; then - case " $LIB@&t@OBJS " in - *" mktime.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS mktime.$ac_objext" - ;; -esac - -fi - - - -for ac_header in argz.h errno.h fcntl.h malloc.h stdio_ext.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_func in getpagesize -do : - ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_GETPAGESIZE 1 -_ACEOF - -fi -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if ${ac_cv_func_mmap_fixed_mapped+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_mmap_fixed_mapped=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 !defined STDC_HEADERS && !defined HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# ifdef 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; - const char *cdata2; - int i, pagesize; - int fd, fd2; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 2; - if (write (fd, data, pagesize) != pagesize) - return 3; - close (fd); - - /* Next, check that the tail of a page is zero-filled. File must have - non-zero length, otherwise we risk SIGBUS for entire page. */ - fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd2 < 0) - return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) - return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); - if (data2 == MAP_FAILED) - return 6; - for (i = 0; i < pagesize; ++i) - if (*(data2 + i)) - return 7; - close (fd2); - if (munmap (data2, pagesize)) - return 8; - - /* 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) - return 9; - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 10; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 11; - - /* 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) - return 12; - if (read (fd, data3, pagesize) != pagesize) - return 13; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 14; - close (fd); - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_mmap_fixed_mapped=yes -else - ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -$as_echo "@%:@define HAVE_MMAP 1" >>confdefs.h - -fi -rm -f conftest.mmap conftest.txt - -for ac_func in __argz_count __argz_next __argz_stringify dcgettext mempcpy \ - munmap stpcpy strcspn strdup -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 : - ac_fn_c_check_header_mongrel "$LINENO" "wctype.h" "ac_cv_header_wctype_h" "$ac_includes_default" -if test "x$ac_cv_header_wctype_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_WCTYPE_H 1 -_ACEOF - -fi - -done - -for ac_header in wchar.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" -if test "x$ac_cv_header_wchar_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_WCHAR_H 1 -_ACEOF - -fi - -done - -for ac_header in langinfo.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "langinfo.h" "ac_cv_header_langinfo_h" "$ac_includes_default" -if test "x$ac_cv_header_langinfo_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_LANGINFO_H 1 -_ACEOF - -fi - -done - - -ac_fn_c_check_func "$LINENO" "mbrlen" "ac_cv_func_mbrlen" -if test "x$ac_cv_func_mbrlen" = xyes; then : - $as_echo "@%:@define HAVE_MBRLEN 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbscasecmp" "ac_cv_func_mbscasecmp" -if test "x$ac_cv_func_mbscasecmp" = xyes; then : - $as_echo "@%:@define HAVE_MBSCMP 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbscmp" "ac_cv_func_mbscmp" -if test "x$ac_cv_func_mbscmp" = xyes; then : - $as_echo "@%:@define HAVE_MBSCMP 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbsnrtowcs" "ac_cv_func_mbsnrtowcs" -if test "x$ac_cv_func_mbsnrtowcs" = xyes; then : - $as_echo "@%:@define HAVE_MBSNRTOWCS 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbsrtowcs" "ac_cv_func_mbsrtowcs" -if test "x$ac_cv_func_mbsrtowcs" = xyes; then : - $as_echo "@%:@define HAVE_MBSRTOWCS 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "mbschr" "ac_cv_func_mbschr" -if test "x$ac_cv_func_mbschr" = xyes; then : - $as_echo "@%:@define HAVE_MBSCHR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" mbschr.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS mbschr.$ac_objext" - ;; -esac - -fi - - - -ac_fn_c_check_func "$LINENO" "wcrtomb" "ac_cv_func_wcrtomb" -if test "x$ac_cv_func_wcrtomb" = xyes; then : - $as_echo "@%:@define HAVE_WCRTOMB 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wcscoll" "ac_cv_func_wcscoll" -if test "x$ac_cv_func_wcscoll" = xyes; then : - $as_echo "@%:@define HAVE_WCSCOLL 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wcsdup" "ac_cv_func_wcsdup" -if test "x$ac_cv_func_wcsdup" = xyes; then : - $as_echo "@%:@define HAVE_WCSDUP 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wcwidth" "ac_cv_func_wcwidth" -if test "x$ac_cv_func_wcwidth" = xyes; then : - $as_echo "@%:@define HAVE_WCWIDTH 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wctype" "ac_cv_func_wctype" -if test "x$ac_cv_func_wctype" = xyes; then : - $as_echo "@%:@define HAVE_WCTYPE 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "wcswidth" "ac_cv_func_wcswidth" -if test "x$ac_cv_func_wcswidth" = xyes; then : - $as_echo "@%:@define HAVE_WCSWIDTH 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" wcswidth.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS wcswidth.$ac_objext" - ;; -esac - -fi - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc and mbstate_t are properly declared" >&5 -$as_echo_n "checking whether mbrtowc and mbstate_t are properly declared... " >&6; } -if ${ac_cv_func_mbrtowc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -wchar_t wc; - char const s[] = ""; - size_t n = 1; - mbstate_t state; - return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_mbrtowc=yes -else - ac_cv_func_mbrtowc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mbrtowc" >&5 -$as_echo "$ac_cv_func_mbrtowc" >&6; } - if test $ac_cv_func_mbrtowc = yes; then - -$as_echo "@%:@define HAVE_MBRTOWC 1" >>confdefs.h - - fi - -if test $ac_cv_func_mbrtowc = yes; then - $as_echo "@%:@define HAVE_MBSTATE_T 1" >>confdefs.h - -fi - -for ac_func in iswlower iswupper towlower towupper iswctype -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 -$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } -if ${bash_cv_langinfo_codeset+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_langinfo_codeset=yes -else - bash_cv_langinfo_codeset=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_langinfo_codeset" >&5 -$as_echo "$bash_cv_langinfo_codeset" >&6; } -if test $bash_cv_langinfo_codeset = yes; then - $as_echo "@%:@define HAVE_LANGINFO_CODESET 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t in wchar.h" >&5 -$as_echo_n "checking for wchar_t in wchar.h... " >&6; } -if ${bash_cv_type_wchar_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ - - wchar_t foo; - foo = 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_wchar_t=yes -else - bash_cv_type_wchar_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_wchar_t" >&5 -$as_echo "$bash_cv_type_wchar_t" >&6; } -if test $bash_cv_type_wchar_t = yes; then - -$as_echo "@%:@define HAVE_WCHAR_T 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t in wctype.h" >&5 -$as_echo_n "checking for wctype_t in wctype.h... " >&6; } -if ${bash_cv_type_wctype_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - wctype_t foo; - foo = 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_wctype_t=yes -else - bash_cv_type_wctype_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_wctype_t" >&5 -$as_echo "$bash_cv_type_wctype_t" >&6; } -if test $bash_cv_type_wctype_t = yes; then - -$as_echo "@%:@define HAVE_WCTYPE_T 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t in wctype.h" >&5 -$as_echo_n "checking for wint_t in wctype.h... " >&6; } -if ${bash_cv_type_wint_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - wint_t foo; - foo = 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_wint_t=yes -else - bash_cv_type_wint_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_wint_t" >&5 -$as_echo "$bash_cv_type_wint_t" >&6; } -if test $bash_cv_type_wint_t = yes; then - -$as_echo "@%:@define HAVE_WINT_T 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wcwidth broken with unicode combining characters" >&5 -$as_echo_n "checking for wcwidth broken with unicode combining characters... " >&6; } -if ${bash_cv_wcwidth_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -#include -#include - -main(c, v) -int c; -char **v; -{ - int w; - - setlocale(LC_ALL, "en_US.UTF-8"); - w = wcwidth (0x0301); - exit (w == 0); /* exit 0 if wcwidth broken */ -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_wcwidth_broken=yes -else - bash_cv_wcwdith_broken=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wcwidth_broken" >&5 -$as_echo "$bash_cv_wcwidth_broken" >&6; } -if test $bash_cv_wcwidth_broken = yes; then - -$as_echo "@%:@define WCWIDTH_BROKEN 1" >>confdefs.h - -fi - -if test "$am_cv_func_iconv" = yes; then - OLDLIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - for ac_func in locale_charset -do : - ac_fn_c_check_func "$LINENO" "locale_charset" "ac_cv_func_locale_charset" -if test "x$ac_cv_func_locale_charset" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_LOCALE_CHARSET 1 -_ACEOF - -fi -done - - LIBS="$OLDLIBS" -fi - - - -if test "$opt_static_link" != yes; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; 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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -fi - -ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include -/* NetBSD declares sys_siglist in unistd.h. */ -#ifdef HAVE_UNISTD_H -# include -#endif - -" -if test "x$ac_cv_have_decl_sys_siglist" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SYS_SIGLIST $ac_have_decl -_ACEOF - - - -if test "$ac_cv_func_inet_aton" != 'yes'; then - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 -$as_echo_n "checking for inet_aton... " >&6; } -if ${bash_cv_func_inet_aton+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -struct in_addr ap; -int -main () -{ - inet_aton("127.0.0.1", &ap); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_func_inet_aton=yes -else - bash_cv_func_inet_aton=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_inet_aton" >&5 -$as_echo "$bash_cv_func_inet_aton" >&6; } -if test $bash_cv_func_inet_aton = yes; then - $as_echo "@%:@define HAVE_INET_ATON 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" inet_aton.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS inet_aton.$ac_objext" - ;; -esac - -fi - -fi - -case "$host_os" in -irix4*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpwent in -lsun" >&5 -$as_echo_n "checking for getpwent in -lsun... " >&6; } -if ${ac_cv_lib_sun_getpwent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsun $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char getpwent (); -int -main () -{ -return getpwent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sun_getpwent=yes -else - ac_cv_lib_sun_getpwent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sun_getpwent" >&5 -$as_echo "$ac_cv_lib_sun_getpwent" >&6; } -if test "x$ac_cv_lib_sun_getpwent" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket library" >&5 -$as_echo_n "checking for socket library... " >&6; } -_bash_needmsg=yes -fi -if ${bash_cv_have_socklib+:} false; then : - $as_echo_n "(cached) " >&6 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpeername in -lsocket" >&5 -$as_echo_n "checking for getpeername in -lsocket... " >&6; } -if ${ac_cv_lib_socket_getpeername+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket -lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char getpeername (); -int -main () -{ -return getpeername (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_socket_getpeername=yes -else - ac_cv_lib_socket_getpeername=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_getpeername" >&5 -$as_echo "$ac_cv_lib_socket_getpeername" >&6; } -if test "x$ac_cv_lib_socket_getpeername" = xyes; then : - bash_cv_have_socklib=yes -else - bash_cv_have_socklib=no -fi - -fi - -if test "X$_bash_needmsg" = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_socklib" >&5 -$as_echo "$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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnsl" >&5 -$as_echo_n "checking for libnsl... " >&6; } - _bash_needmsg=yes - fi - if ${bash_cv_have_libnsl+:} false; then : - $as_echo_n "(cached) " >&6 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for t_open in -lnsl" >&5 -$as_echo_n "checking for t_open in -lnsl... " >&6; } -if ${ac_cv_lib_nsl_t_open+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char t_open (); -int -main () -{ -return t_open (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nsl_t_open=yes -else - ac_cv_lib_nsl_t_open=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_t_open" >&5 -$as_echo "$ac_cv_lib_nsl_t_open" >&6; } -if test "x$ac_cv_lib_nsl_t_open" = xyes; then : - bash_cv_have_libnsl=yes -else - bash_cv_have_libnsl=no -fi - -fi - - if test "X$_bash_needmsg" = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_libnsl" >&5 -$as_echo "$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 - $as_echo "@%:@define HAVE_LIBSOCKET 1" >>confdefs.h - - $as_echo "@%:@define HAVE_GETPEERNAME 1" >>confdefs.h - -fi - -fi -if test "$ac_cv_func_gethostbyname" = no; then - if test "X$bash_cv_have_gethostbyname" = "X"; then -_bash_needmsg=yes -else -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in socket library" >&5 -$as_echo_n "checking for gethostbyname in socket library... " >&6; } -_bash_needmsg= -fi -if ${bash_cv_have_gethostbyname+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - struct hostent *hp; - hp = gethostbyname("localhost"); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_have_gethostbyname=yes -else - bash_cv_have_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - -if test "X$_bash_needmsg" = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in socket library" >&5 -$as_echo_n "checking for gethostbyname in socket library... " >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_gethostbyname" >&5 -$as_echo "$bash_cv_have_gethostbyname" >&6; } -if test "$bash_cv_have_gethostbyname" = yes; then -$as_echo "@%:@define HAVE_GETHOSTBYNAME 1" >>confdefs.h - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if ${ac_cv_type_uid_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then - -$as_echo "@%:@define uid_t int" >>confdefs.h - - -$as_echo "@%:@define gid_t int" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking type of array argument to getgroups" >&5 -$as_echo_n "checking type of array argument to getgroups... " >&6; } -if ${ac_cv_type_getgroups+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_type_getgroups=cross -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Thanks to Mike Rendell for this test. */ -$ac_includes_default -#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 int 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 int but getgroups modifies an array - of ints. */ - return n > 0 && gidset[n] != val.gval; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_type_getgroups=gid_t -else - ac_cv_type_getgroups=int -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -if test $ac_cv_type_getgroups = cross; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_getgroups" >&5 -$as_echo "$ac_cv_type_getgroups" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define GETGROUPS_T $ac_cv_type_getgroups -_ACEOF - - -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define off_t long int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" -if test "x$ac_cv_type_mode_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define mode_t int -_ACEOF - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if ${ac_cv_type_uid_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then - -$as_echo "@%:@define uid_t int" >>confdefs.h - - -$as_echo "@%:@define gid_t int" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -if test "x$ac_cv_type_pid_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define pid_t int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define size_t unsigned int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" -if test "x$ac_cv_type_ssize_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ssize_t int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "time_t" "ac_cv_type_time_t" "$ac_includes_default" -if test "x$ac_cv_type_time_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define time_t long -_ACEOF - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long" >&5 -$as_echo_n "checking for long long... " >&6; } -if ${bash_cv_type_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_type_long_long='long long' -else - bash_cv_type_long_long='long' -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_long_long" >&5 -$as_echo "$bash_cv_type_long_long" >&6; } -if test "$bash_cv_type_long_long" = 'long long'; then - $as_echo "@%:@define HAVE_LONG_LONG 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long" >&5 -$as_echo_n "checking for unsigned long long... " >&6; } -if ${bash_cv_type_unsigned_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_type_unsigned_long_long='unsigned long long' -else - bash_cv_type_unsigned_long_long='unsigned long' -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_unsigned_long_long" >&5 -$as_echo "$bash_cv_type_unsigned_long_long" >&6; } -if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then - $as_echo "@%:@define HAVE_UNSIGNED_LONG_LONG 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if ${ac_cv_type_signal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int -else - ac_cv_type_signal=void -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sig_atomic_t in signal.h" >&5 -$as_echo_n "checking for sig_atomic_t in signal.h... " >&6; } -if ${ac_cv_have_sig_atomic_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ - sig_atomic_t x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_have_sig_atomic_t=yes -else - ac_cv_have_sig_atomic_t=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_sig_atomic_t" >&5 -$as_echo "$ac_cv_have_sig_atomic_t" >&6; } -if test "$ac_cv_have_sig_atomic_t" = "no" -then - ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "$ac_includes_default" -if test "x$ac_cv_type_sig_atomic_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define sig_atomic_t int -_ACEOF - -fi - -fi - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 -$as_echo_n "checking size of char... " >&6; } -if ${ac_cv_sizeof_char+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_char" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (char) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_char=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 -$as_echo "$ac_cv_sizeof_char" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_CHAR $ac_cv_sizeof_char -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if ${ac_cv_sizeof_short+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_short=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if ${ac_cv_sizeof_int+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if ${ac_cv_sizeof_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char *" >&5 -$as_echo_n "checking size of char *... " >&6; } -if ${ac_cv_sizeof_char_p+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char *))" "ac_cv_sizeof_char_p" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_char_p" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (char *) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_char_p=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char_p" >&5 -$as_echo "$ac_cv_sizeof_char_p" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_CHAR_P $ac_cv_sizeof_char_p -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 -$as_echo_n "checking size of double... " >&6; } -if ${ac_cv_sizeof_double+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_double" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (double) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_double=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 -$as_echo "$ac_cv_sizeof_double" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_DOUBLE $ac_cv_sizeof_double -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if ${ac_cv_sizeof_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF - - - -ac_fn_c_check_type "$LINENO" "u_int" "ac_cv_type_u_int" "$ac_includes_default" -if test "x$ac_cv_type_u_int" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_int unsigned int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "u_long" "ac_cv_type_u_long" "$ac_includes_default" -if test "x$ac_cv_type_u_long" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_long unsigned long -_ACEOF - -fi - - - -if test "$ac_cv_sizeof_short" = 2; then - ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits16_t short -_ACEOF - -fi - -elif test "$ac_cv_sizeof_char" = 2; then - ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits16_t char -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits16_t short -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_short" = 2; then - ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits16_t unsigned short -_ACEOF - -fi - -elif test "$ac_cv_sizeof_char" = 2; then - ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits16_t unsigned char -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits16_t unsigned short -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_int" = 4; then - ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits32_t int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 4; then - ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits32_t long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits32_t int -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_int" = 4; then - ac_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits32_t unsigned int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 4; then - ac_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits32_t unsigned long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits32_t unsigned int -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_char_p" = 8; then - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits64_t char * -_ACEOF - -fi - -elif test "$ac_cv_sizeof_double" = 8; then - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; 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 - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits64_t long long -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 8; then - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits64_t long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; 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 - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ptrdiff_t int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; 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 - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ptrdiff_t long long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ptrdiff_t int -_ACEOF - -fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 -$as_echo_n "checking whether stat file-mode macros are broken... " >&6; } -if ${ac_cv_header_stat_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -#if defined S_ISBLK && defined S_IFDIR -extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; -#endif - -#if defined S_ISBLK && defined S_IFCHR -extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; -#endif - -#if defined S_ISLNK && defined S_IFREG -extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; -#endif - -#if defined S_ISSOCK && defined S_IFREG -extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stat_broken=no -else - ac_cv_header_stat_broken=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 -$as_echo "$ac_cv_header_stat_broken" >&6; } -if test $ac_cv_header_stat_broken = yes; then - -$as_echo "@%:@define STAT_MACROS_BROKEN 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether @%:@! works in shell scripts" >&5 -$as_echo_n "checking whether @%:@! works in shell scripts... " >&6; } -if ${ac_cv_sys_interpreter+:} false; then : - $as_echo_n "(cached) " >&6 -else - echo '#! /bin/cat -exit 69 -' >conftest -chmod u+x conftest -(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) -if test $? -ne 69; then - ac_cv_sys_interpreter=yes -else - ac_cv_sys_interpreter=no -fi -rm -f conftest -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_interpreter" >&5 -$as_echo "$ac_cv_sys_interpreter" >&6; } -interpval=$ac_cv_sys_interpreter - -if test $ac_cv_sys_interpreter = yes; then -$as_echo "@%:@define HAVE_HASH_BANG_EXEC 1" >>confdefs.h - -fi - -if test "$ac_cv_func_lstat" = "no"; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lstat" >&5 -$as_echo_n "checking for lstat... " >&6; } -if ${bash_cv_func_lstat+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - lstat(".",(struct stat *)0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_func_lstat=yes -else - bash_cv_func_lstat=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_lstat" >&5 -$as_echo "$bash_cv_func_lstat" >&6; } -if test $bash_cv_func_lstat = yes; then - $as_echo "@%:@define HAVE_LSTAT 1" >>confdefs.h - -fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the ctype macros accept non-ascii characters" >&5 -$as_echo_n "checking whether the ctype macros accept non-ascii characters... " >&6; } -if ${bash_cv_func_ctype_nonascii+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&2;} - bash_cv_func_ctype_nonascii=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_ctype_nonascii=yes -else - bash_cv_func_ctype_nonascii=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_ctype_nonascii" >&5 -$as_echo "$bash_cv_func_ctype_nonascii" >&6; } -if test $bash_cv_func_ctype_nonascii = yes; then -$as_echo "@%:@define CTYPE_NON_ASCII 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if dup2 fails to clear the close-on-exec flag" >&5 -$as_echo_n "checking if dup2 fails to clear the close-on-exec flag... " >&6; } -if ${bash_cv_dup2_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&2;} - bash_cv_dup2_broken=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_dup2_broken=yes -else - bash_cv_dup2_broken=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dup2_broken" >&5 -$as_echo "$bash_cv_dup2_broken" >&6; } -if test $bash_cv_dup2_broken = yes; then -$as_echo "@%:@define DUP2_BROKEN 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pgrps need synchronization" >&5 -$as_echo_n "checking whether pgrps need synchronization... " >&6; } -if ${bash_cv_pgrp_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&2;} - bash_cv_pgrp_pipe=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_pgrp_pipe=no -else - bash_cv_pgrp_pipe=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_pgrp_pipe" >&5 -$as_echo "$bash_cv_pgrp_pipe" >&6; } -if test $bash_cv_pgrp_pipe = yes; then -$as_echo "@%:@define PGRP_PIPE 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of signal functions" >&5 -$as_echo_n "checking for type of signal functions... " >&6; } -if ${bash_cv_signal_vintage+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_signal_vintage=posix -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - int mask = sigmask(SIGINT); - sigsetmask(mask); sigblock(mask); sigpause(mask); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_signal_vintage=4.2bsd -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - RETSIGTYPE foo() { } -int -main () -{ - - int mask = sigmask(SIGINT); - sigset(SIGINT, foo); sigrelse(SIGINT); - sighold(SIGINT); sigpause(SIGINT); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_signal_vintage=svr3 -else - bash_cv_signal_vintage=v7 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_signal_vintage" >&5 -$as_echo "$bash_cv_signal_vintage" >&6; } -if test "$bash_cv_signal_vintage" = posix; then -$as_echo "@%:@define HAVE_POSIX_SIGNALS 1" >>confdefs.h - -elif test "$bash_cv_signal_vintage" = "4.2bsd"; then -$as_echo "@%:@define HAVE_BSD_SIGNALS 1" >>confdefs.h - -elif test "$bash_cv_signal_vintage" = svr3; then -$as_echo "@%:@define HAVE_USG_SIGHOLD 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys_errlist and sys_nerr" >&5 -$as_echo_n "checking for sys_errlist and sys_nerr... " >&6; } -if ${bash_cv_sys_errlist+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -extern char *sys_errlist[]; - extern int sys_nerr; - char *msg = sys_errlist[sys_nerr - 1]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_sys_errlist=yes -else - bash_cv_sys_errlist=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_errlist" >&5 -$as_echo "$bash_cv_sys_errlist" >&6; } -if test $bash_cv_sys_errlist = yes; then -$as_echo "@%:@define HAVE_SYS_ERRLIST 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys_siglist in system C library" >&5 -$as_echo_n "checking for sys_siglist in system C library... " >&6; } -if ${bash_cv_sys_siglist+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&2;} - bash_cv_sys_siglist=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#if !HAVE_DECL_SYS_SIGLIST -extern char *sys_siglist[]; -#endif -main() -{ -char *msg = sys_siglist[2]; -exit(msg == 0); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_sys_siglist=yes -else - bash_cv_sys_siglist=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_siglist" >&5 -$as_echo "$bash_cv_sys_siglist" >&6; } -if test $bash_cv_sys_siglist = yes; then -$as_echo "@%:@define HAVE_SYS_SIGLIST 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sys_siglist in signal.h or unistd.h" >&5 -$as_echo_n "checking for _sys_siglist in signal.h or unistd.h... " >&6; } -if ${bash_cv_decl_under_sys_siglist+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -int -main () -{ - char *msg = _sys_siglist[2]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_decl_under_sys_siglist=yes -else - bash_cv_decl_under_sys_siglist=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_under_sys_siglist" >&5 -$as_echo "$bash_cv_decl_under_sys_siglist" >&6; } -if test $bash_cv_decl_under_sys_siglist = yes; then -$as_echo "@%:@define UNDER_SYS_SIGLIST_DECLARED 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sys_siglist in system C library" >&5 -$as_echo_n "checking for _sys_siglist in system C library... " >&6; } -if ${bash_cv_under_sys_siglist+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&2;} - bash_cv_under_sys_siglist=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_under_sys_siglist=yes -else - bash_cv_under_sys_siglist=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_under_sys_siglist" >&5 -$as_echo "$bash_cv_under_sys_siglist" >&6; } -if test $bash_cv_under_sys_siglist = yes; then -$as_echo "@%:@define HAVE_UNDER_SYS_SIGLIST 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether signal handlers are of type void" >&5 -$as_echo_n "checking whether signal handlers are of type void... " >&6; } -if ${bash_cv_void_sighandler+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#ifdef signal -#undef signal -#endif -#ifdef __cplusplus -extern "C" -#endif -void (*signal ()) (); -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_void_sighandler=yes -else - bash_cv_void_sighandler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_void_sighandler" >&5 -$as_echo "$bash_cv_void_sighandler" >&6; } -if test $bash_cv_void_sighandler = yes; then -$as_echo "@%:@define VOID_SIGHANDLER 1" >>confdefs.h - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_t" >&5 -$as_echo_n "checking for clock_t... " >&6; } -if ${bash_cv_type_clock_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_clock_t" >&5 -$as_echo "$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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigset_t" >&5 -$as_echo_n "checking for sigset_t... " >&6; } -if ${bash_cv_type_sigset_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_sigset_t" >&5 -$as_echo "$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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for quad_t" >&5 -$as_echo_n "checking for quad_t... " >&6; } -if ${bash_cv_type_quad_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_quad_t" >&5 -$as_echo "$bash_cv_type_quad_t" >&6; } -if test $bash_cv_type_quad_t = yes; then - $as_echo "@%:@define HAVE_QUAD_T 1" >>confdefs.h - - fi -if test $bash_cv_type_quad_t = no; then - cat >>confdefs.h <<_ACEOF -@%:@define quad_t long -_ACEOF - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 -$as_echo_n "checking for intmax_t... " >&6; } -if ${bash_cv_type_intmax_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_intmax_t" >&5 -$as_echo "$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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uintmax_t" >&5 -$as_echo_n "checking for uintmax_t... " >&6; } -if ${bash_cv_type_uintmax_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_uintmax_t" >&5 -$as_echo "$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 - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5 -$as_echo_n "checking for socklen_t... " >&6; } -if ${bash_cv_type_socklen_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_socklen_t" >&5 -$as_echo "$bash_cv_type_socklen_t" >&6; } -if test $bash_cv_type_socklen_t = yes; then - $as_echo "@%:@define HAVE_SOCKLEN_T 1" >>confdefs.h - - fi -if test $bash_cv_type_socklen_t = no; then - cat >>confdefs.h <<_ACEOF -@%:@define socklen_t int -_ACEOF - -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for size and type of struct rlimit fields" >&5 -$as_echo_n "checking for size and type of struct rlimit fields... " >&6; } -if ${bash_cv_type_rlimit+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -rlim_t xxx; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_rlimit=rlim_t -else - -if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&5 -$as_echo "$as_me: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&2;} - bash_cv_type_rlimit=long -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_type_rlimit=quad_t -else - bash_cv_type_rlimit=long -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_rlimit" >&5 -$as_echo "$bash_cv_type_rlimit" >&6; } -if test $bash_cv_type_rlimit = quad_t; then -$as_echo "@%:@define RLIMTYPE quad_t" >>confdefs.h - -elif test $bash_cv_type_rlimit = rlim_t; then -$as_echo "@%:@define RLIMTYPE rlim_t" >>confdefs.h - -fi - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of intmax_t" >&5 -$as_echo_n "checking size of intmax_t... " >&6; } -if ${ac_cv_sizeof_intmax_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (intmax_t))" "ac_cv_sizeof_intmax_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_intmax_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (intmax_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_intmax_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_intmax_t" >&5 -$as_echo "$ac_cv_sizeof_intmax_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_INTMAX_T $ac_cv_sizeof_intmax_t -_ACEOF - - - - -ac_fn_c_check_member "$LINENO" "struct termios" "c_line" "ac_cv_member_struct_termios_c_line" " -#include -#include - -" -if test "x$ac_cv_member_struct_termios_c_line" = xyes; then : - $as_echo "@%:@define TERMIOS_LDISC 1" >>confdefs.h - -fi - - - -ac_fn_c_check_member "$LINENO" "struct termio" "c_line" "ac_cv_member_struct_termio_c_line" " -#include -#include - -" -if test "x$ac_cv_member_struct_termio_c_line" = xyes; then : - $as_echo "@%:@define TERMIO_LDISC 1" >>confdefs.h - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_ino" >&5 -$as_echo_n "checking for struct dirent.d_ino... " >&6; } -if ${bash_cv_dirent_has_dino+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_dirent_has_dino=yes -else - bash_cv_dirent_has_dino=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dirent_has_dino" >&5 -$as_echo "$bash_cv_dirent_has_dino" >&6; } -if test $bash_cv_dirent_has_dino = yes; then -$as_echo "@%:@define HAVE_STRUCT_DIRENT_D_INO 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_fileno" >&5 -$as_echo_n "checking for struct dirent.d_fileno... " >&6; } -if ${bash_cv_dirent_has_d_fileno+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_dirent_has_d_fileno=yes -else - bash_cv_dirent_has_d_fileno=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dirent_has_d_fileno" >&5 -$as_echo "$bash_cv_dirent_has_d_fileno" >&6; } -if test $bash_cv_dirent_has_d_fileno = yes; then -$as_echo "@%:@define HAVE_STRUCT_DIRENT_D_FILENO 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_namlen" >&5 -$as_echo_n "checking for struct dirent.d_namlen... " >&6; } -if ${bash_cv_dirent_has_d_namlen+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_dirent_has_d_namlen=yes -else - bash_cv_dirent_has_d_namlen=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dirent_has_d_namlen" >&5 -$as_echo "$bash_cv_dirent_has_d_namlen" >&6; } -if test $bash_cv_dirent_has_d_namlen = yes; then -$as_echo "@%:@define HAVE_STRUCT_DIRENT_D_NAMLEN 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct winsize in sys/ioctl.h and termios.h" >&5 -$as_echo_n "checking for struct winsize in sys/ioctl.h and termios.h... " >&6; } -if ${bash_cv_struct_winsize_header+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -struct winsize x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_struct_winsize_header=ioctl_h -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -struct winsize x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_struct_winsize_header=termios_h -else - bash_cv_struct_winsize_header=other -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if test $bash_cv_struct_winsize_header = ioctl_h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sys/ioctl.h" >&5 -$as_echo "sys/ioctl.h" >&6; } - $as_echo "@%:@define STRUCT_WINSIZE_IN_SYS_IOCTL 1" >>confdefs.h - -elif test $bash_cv_struct_winsize_header = termios_h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: termios.h" >&5 -$as_echo "termios.h" >&6; } - $as_echo "@%:@define STRUCT_WINSIZE_IN_TERMIOS 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval in sys/time.h and time.h" >&5 -$as_echo_n "checking for struct timeval in sys/time.h and time.h... " >&6; } -if ${bash_cv_struct_timeval+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_struct_timeval" >&5 -$as_echo "$bash_cv_struct_timeval" >&6; } -if test $bash_cv_struct_timeval = yes; then - $as_echo "@%:@define HAVE_TIMEVAL 1" >>confdefs.h - -fi - -ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_BLOCKS 1 -_ACEOF - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if ${ac_cv_struct_tm+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -struct tm tm; - int *p = &tm.tm_sec; - return !p; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_tm=time.h -else - ac_cv_struct_tm=sys/time.h -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -$as_echo "$ac_cv_struct_tm" >&6; } -if test $ac_cv_struct_tm = sys/time.h; then - -$as_echo "@%:@define TM_IN_SYS_TIME 1" >>confdefs.h - -fi - -ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include -#include <$ac_cv_struct_tm> - -" -if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; 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 - -$as_echo "@%:@define HAVE_TM_ZONE 1" >>confdefs.h - -else - ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include -" -if test "x$ac_cv_have_decl_tzname" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_TZNAME $ac_have_decl -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 -$as_echo_n "checking for tzname... " >&6; } -if ${ac_cv_var_tzname+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if !HAVE_DECL_TZNAME -extern char *tzname[]; -#endif - -int -main () -{ -return tzname[0][0]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_var_tzname=yes -else - ac_cv_var_tzname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 -$as_echo "$ac_cv_var_tzname" >&6; } - if test $ac_cv_var_tzname = yes; then - -$as_echo "@%:@define HAVE_TZNAME 1" >>confdefs.h - - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timezone in sys/time.h and time.h" >&5 -$as_echo_n "checking for struct timezone in sys/time.h and time.h... " >&6; } -if ${bash_cv_struct_timezone+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_struct_timezone" >&5 -$as_echo "$bash_cv_struct_timezone" >&6; } -if test $bash_cv_struct_timezone = yes; then - $as_echo "@%:@define HAVE_STRUCT_TIMEZONE 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for offset of exit status in return status from wait" >&5 -$as_echo_n "checking for offset of exit status in return status from wait... " >&6; } -if ${bash_cv_wexitstatus_offset+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&5 -$as_echo "$as_me: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&2;} - bash_cv_wexitstatus_offset=0 - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -#include - -main(c, v) - int c; - char **v; -{ - pid_t pid, p; - int s, i, n; - - s = 0; - pid = fork(); - if (pid == 0) - exit (42); - - /* wait for the process */ - p = wait(&s); - if (p != pid) - exit (255); - - /* crack s */ - for (i = 0; i < (sizeof(s) - 8); i++) - { - n = (s >> i) & 0xff; - if (n == 42) - exit (i); - } - - exit (254); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_wexitstatus_offset=0 -else - bash_cv_wexitstatus_offset=$? -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -if test "$bash_cv_wexitstatus_offset" -gt 32 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: bad exit status from test program -- defaulting to 0" >&5 -$as_echo "$as_me: WARNING: bad exit status from test program -- defaulting to 0" >&2;} - bash_cv_wexitstatus_offset=0 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wexitstatus_offset" >&5 -$as_echo "$bash_cv_wexitstatus_offset" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define WEXITSTATUS_OFFSET $bash_cv_wexitstatus_offset -_ACEOF - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 -$as_echo_n "checking for struct timespec in ... " >&6; } -if ${bash_cv_sys_struct_timespec_in_time_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -static struct timespec x; x.tv_sec = x.tv_nsec; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_sys_struct_timespec_in_time_h=yes -else - bash_cv_sys_struct_timespec_in_time_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_struct_timespec_in_time_h" >&5 -$as_echo "$bash_cv_sys_struct_timespec_in_time_h" >&6; } - - HAVE_STRUCT_TIMESPEC=0 - TIME_H_DEFINES_STRUCT_TIMESPEC=0 - SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 - PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 - if test $bash_cv_sys_struct_timespec_in_time_h = yes; then - $as_echo "@%:@define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h - - $as_echo "@%:@define TIME_H_DEFINES_STRUCT_TIMESPEC 1" >>confdefs.h - - TIME_H_DEFINES_STRUCT_TIMESPEC=1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 -$as_echo_n "checking for struct timespec in ... " >&6; } -if ${bash_cv_sys_struct_timespec_in_sys_time_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -static struct timespec x; x.tv_sec = x.tv_nsec; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_sys_struct_timespec_in_sys_time_h=yes -else - bash_cv_sys_struct_timespec_in_sys_time_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_struct_timespec_in_sys_time_h" >&5 -$as_echo "$bash_cv_sys_struct_timespec_in_sys_time_h" >&6; } - if test $bash_cv_sys_struct_timespec_in_sys_time_h = yes; then - SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 - $as_echo "@%:@define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h - - $as_echo "@%:@define SYS_TIME_H_DEFINES_STRUCT_TIMESPEC 1" >>confdefs.h - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 -$as_echo_n "checking for struct timespec in ... " >&6; } -if ${bash_cv_sys_struct_timespec_in_pthread_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -static struct timespec x; x.tv_sec = x.tv_nsec; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_sys_struct_timespec_in_pthread_h=yes -else - bash_cv_sys_struct_timespec_in_pthread_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_struct_timespec_in_pthread_h" >&5 -$as_echo "$bash_cv_sys_struct_timespec_in_pthread_h" >&6; } - if test $bash_cv_sys_struct_timespec_in_pthread_h = yes; then - PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 - $as_echo "@%:@define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h - - $as_echo "@%:@define PTHREAD_H_DEFINES_STRUCT_TIMESPEC 1" >>confdefs.h - - fi - fi - fi - - - - - - - - - - ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 -_ACEOF - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5 -$as_echo_n "checking whether struct stat.st_atim is of type struct timespec... " >&6; } -if ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - #if HAVE_SYS_TIME_H - # include - #endif - #include - struct timespec ts; - struct stat st; - -int -main () -{ - - st.st_atim = ts; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes -else - ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 -$as_echo "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; } - if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then - -$as_echo "@%:@define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h - - fi -else - ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1 -_ACEOF - - -else - ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIMENSEC 1 -_ACEOF - - -else - ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1 -_ACEOF - - -fi - -fi - -fi - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the existence of strsignal" >&5 -$as_echo_n "checking for the existence of strsignal... " >&6; } -if ${bash_cv_have_strsignal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -char *s = (char *)strsignal(2); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_have_strsignal=yes -else - bash_cv_have_strsignal=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_strsignal" >&5 -$as_echo "$bash_cv_have_strsignal" >&6; } -if test $bash_cv_have_strsignal = yes; then -$as_echo "@%:@define HAVE_STRSIGNAL 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if opendir() opens non-directories" >&5 -$as_echo_n "checking if opendir() opens non-directories... " >&6; } -if ${bash_cv_opendir_not_robust+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&2;} - bash_cv_opendir_not_robust=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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("bash-aclocal", 0700); -if (err < 0) { - perror("mkdir"); - exit(1); -} -unlink("bash-aclocal/not_a_directory"); -fd = open("bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666); -write(fd, "\n", 1); -close(fd); -dir = opendir("bash-aclocal/not_a_directory"); -unlink("bash-aclocal/not_a_directory"); -rmdir("bash-aclocal"); -exit (dir == 0); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_opendir_not_robust=yes -else - bash_cv_opendir_not_robust=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_opendir_not_robust" >&5 -$as_echo "$bash_cv_opendir_not_robust" >&6; } -if test $bash_cv_opendir_not_robust = yes; then -$as_echo "@%:@define OPENDIR_NOT_ROBUST 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ulimit can substitute for getdtablesize" >&5 -$as_echo_n "checking whether ulimit can substitute for getdtablesize... " >&6; } -if ${bash_cv_ulimit_maxfds+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&2;} - bash_cv_ulimit_maxfds=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -main() -{ -long maxfds = ulimit(4, 0L); -exit (maxfds == -1L); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_ulimit_maxfds=yes -else - bash_cv_ulimit_maxfds=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_ulimit_maxfds" >&5 -$as_echo "$bash_cv_ulimit_maxfds" >&6; } -if test $bash_cv_ulimit_maxfds = yes; then -$as_echo "@%:@define ULIMIT_MAXFDS 1" >>confdefs.h - -fi - - - - - - - - - ac_fn_c_check_decl "$LINENO" "fpurge" "ac_cv_have_decl_fpurge" "#include -" -if test "x$ac_cv_have_decl_fpurge" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_FPURGE $ac_have_decl -_ACEOF - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if getenv can be redefined" >&5 -$as_echo_n "checking to see if getenv can be redefined... " >&6; } -if ${bash_cv_getenv_redef+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&5 -$as_echo "$as_me: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&2;} - bash_cv_getenv_redef=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_getenv_redef=yes -else - bash_cv_getenv_redef=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_getenv_redef" >&5 -$as_echo "$bash_cv_getenv_redef" >&6; } -if test $bash_cv_getenv_redef = yes; then -$as_echo "@%:@define CAN_REDEFINE_GETENV 1" >>confdefs.h - -fi - -if test "$ac_cv_func_getcwd" = "yes"; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if getcwd() will dynamically allocate memory with 0 size" >&5 -$as_echo_n "checking if getcwd() will dynamically allocate memory with 0 size... " >&6; } -if ${bash_cv_getcwd_malloc+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&2;} - bash_cv_getcwd_malloc=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -main() -{ - char *xpwd; - xpwd = getcwd(0, 0); - exit (xpwd == 0); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_getcwd_malloc=yes -else - bash_cv_getcwd_malloc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_getcwd_malloc" >&5 -$as_echo "$bash_cv_getcwd_malloc" >&6; } -if test $bash_cv_getcwd_malloc = no; then -$as_echo "@%:@define GETCWD_BROKEN 1" >>confdefs.h - -case " $LIB@&t@OBJS " in - *" getcwd.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS getcwd.$ac_objext" - ;; -esac - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5 -$as_echo_n "checking for presence of POSIX-style sigsetjmp/siglongjmp... " >&6; } -if ${bash_cv_func_sigsetjmp+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5 -$as_echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;} - bash_cv_func_sigsetjmp=missing - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_sigsetjmp=present -else - bash_cv_func_sigsetjmp=missing -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_sigsetjmp" >&5 -$as_echo "$bash_cv_func_sigsetjmp" >&6; } -if test $bash_cv_func_sigsetjmp = present; then -$as_echo "@%:@define HAVE_POSIX_SIGSETJMP 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether or not strcoll and strcmp differ" >&5 -$as_echo_n "checking whether or not strcoll and strcmp differ... " >&6; } -if ${bash_cv_func_strcoll_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;} - bash_cv_func_strcoll_broken=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_strcoll_broken=yes -else - bash_cv_func_strcoll_broken=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_strcoll_broken" >&5 -$as_echo "$bash_cv_func_strcoll_broken" >&6; } -if test $bash_cv_func_strcoll_broken = yes; then -$as_echo "@%:@define STRCOLL_BROKEN 1" >>confdefs.h - -fi - - - - - - if test X$ac_cv_func_snprintf = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant snprintf" >&5 -$as_echo_n "checking for standard-conformant snprintf... " >&6; } -if ${bash_cv_func_snprintf+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check standard snprintf if cross-compiling" >&5 -$as_echo "$as_me: WARNING: cannot check standard snprintf if cross-compiling" >&2;} - bash_cv_func_snprintf=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -main() -{ - int n; - n = snprintf (0, 0, "%s", "0123456"); - exit(n != 7); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_snprintf=yes -else - bash_cv_func_snprintf=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_snprintf" >&5 -$as_echo "$bash_cv_func_snprintf" >&6; } - if test $bash_cv_func_snprintf = no; then - ac_cv_func_snprintf=no - fi - fi - if test $ac_cv_func_snprintf = no; then - -$as_echo "@%:@define HAVE_SNPRINTF 0" >>confdefs.h - - fi - - - - - - if test X$ac_cv_func_vsnprintf = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant vsnprintf" >&5 -$as_echo_n "checking for standard-conformant vsnprintf... " >&6; } -if ${bash_cv_func_vsnprintf+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check standard vsnprintf if cross-compiling" >&5 -$as_echo "$as_me: WARNING: cannot check standard vsnprintf if cross-compiling" >&2;} - bash_cv_func_vsnprintf=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if HAVE_STDARG_H -#include -#else -#include -#endif -#include -#include - -static int -#if HAVE_STDARG_H -foo(const char *fmt, ...) -#else -foo(format, va_alist) - const char *format; - va_dcl -#endif -{ - va_list args; - int n; - -#if HAVE_STDARG_H - va_start(args, fmt); -#else - va_start(args); -#endif - n = vsnprintf(0, 0, fmt, args); - va_end (args); - return n; -} - -main() -{ - int n; - n = foo("%s", "0123456"); - exit(n != 7); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_vsnprintf=yes -else - bash_cv_func_vsnprintf=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_vsnprintf" >&5 -$as_echo "$bash_cv_func_vsnprintf" >&6; } - if test $bash_cv_func_vsnprintf = no; then - ac_cv_func_vsnprintf=no - fi - fi - if test $ac_cv_func_vsnprintf = no; then - -$as_echo "@%:@define HAVE_VSNPRINTF 0" >>confdefs.h - - fi - - - -if test "$ac_cv_func_putenv" = "yes"; then - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant putenv declaration" >&5 -$as_echo_n "checking for standard-conformant putenv declaration... " >&6; } -if ${bash_cv_std_putenv+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_std_putenv=yes -else - bash_cv_std_putenv=no - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_std_putenv" >&5 -$as_echo "$bash_cv_std_putenv" >&6; } -if test $bash_cv_std_putenv = yes; then -$as_echo "@%:@define HAVE_STD_PUTENV 1" >>confdefs.h - -fi - -else -$as_echo "@%:@define HAVE_STD_PUTENV 1" >>confdefs.h - -fi -if test "$ac_cv_func_unsetenv" = "yes"; then - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant unsetenv declaration" >&5 -$as_echo_n "checking for standard-conformant unsetenv declaration... " >&6; } -if ${bash_cv_std_unsetenv+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_std_unsetenv=yes -else - bash_cv_std_unsetenv=no - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_std_unsetenv" >&5 -$as_echo "$bash_cv_std_unsetenv" >&6; } -if test $bash_cv_std_unsetenv = yes; then -$as_echo "@%:@define HAVE_STD_UNSETENV 1" >>confdefs.h - -fi - -else -$as_echo "@%:@define HAVE_STD_UNSETENV 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for printf floating point output in hex notation" >&5 -$as_echo_n "checking for printf floating point output in hex notation... " >&6; } -if ${bash_cv_printf_a_format+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check printf if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check printf if cross compiling -- defaulting to no" >&2;} - bash_cv_printf_a_format=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_printf_a_format=yes -else - bash_cv_printf_a_format=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_printf_a_format" >&5 -$as_echo "$bash_cv_printf_a_format" >&6; } -if test $bash_cv_printf_a_format = yes; then -$as_echo "@%:@define HAVE_PRINTF_A_FORMAT 1" >>confdefs.h - -fi - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal handlers must be reinstalled when invoked" >&5 -$as_echo_n "checking if signal handlers must be reinstalled when invoked... " >&6; } -if ${bash_cv_must_reinstall_sighandlers+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;} - bash_cv_must_reinstall_sighandlers=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_must_reinstall_sighandlers=no -else - bash_cv_must_reinstall_sighandlers=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_must_reinstall_sighandlers" >&5 -$as_echo "$bash_cv_must_reinstall_sighandlers" >&6; } -if test $bash_cv_must_reinstall_sighandlers = yes; then -$as_echo "@%:@define MUST_REINSTALL_SIGHANDLERS 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for presence of necessary job control definitions" >&5 -$as_echo_n "checking for presence of necessary job control definitions... " >&6; } -if ${bash_cv_job_control_missing+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&5 -$as_echo "$as_me: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&2;} - bash_cv_job_control_missing=missing - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_job_control_missing=present -else - bash_cv_job_control_missing=missing -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_job_control_missing" >&5 -$as_echo "$bash_cv_job_control_missing" >&6; } -if test $bash_cv_job_control_missing = missing; then -$as_echo "@%:@define JOB_CONTROL_MISSING 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for presence of named pipes" >&5 -$as_echo_n "checking for presence of named pipes... " >&6; } -if ${bash_cv_sys_named_pipes+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&5 -$as_echo "$as_me: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&2;} - bash_cv_sys_named_pipes=missing - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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("bash-aclocal", 0700); -if (err < 0) { - perror ("mkdir"); - exit(1); -} -fd = mknod ("bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); -if (fd == -1) { - rmdir ("bash-aclocal"); - exit (1); -} -close(fd); -unlink ("bash-aclocal/sh-np-autoconf"); -rmdir ("bash-aclocal"); -exit(0); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_sys_named_pipes=present -else - bash_cv_sys_named_pipes=missing -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_named_pipes" >&5 -$as_echo "$bash_cv_sys_named_pipes" >&6; } -if test $bash_cv_sys_named_pipes = missing; then -$as_echo "@%:@define NAMED_PIPES_MISSING 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether termios.h defines TIOCGWINSZ" >&5 -$as_echo_n "checking whether termios.h defines TIOCGWINSZ... " >&6; } -if ${ac_cv_sys_tiocgwinsz_in_termios_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5 -$as_echo "$ac_cv_sys_tiocgwinsz_in_termios_h" >&6; } - -if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5 -$as_echo_n "checking whether sys/ioctl.h defines TIOCGWINSZ... " >&6; } -if ${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5 -$as_echo "$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6; } - - if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then - -$as_echo "@%:@define GWINSZ_IN_SYS_IOCTL 1" >>confdefs.h - - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIOCSTAT in sys/ioctl.h" >&5 -$as_echo_n "checking for TIOCSTAT in sys/ioctl.h... " >&6; } -if ${bash_cv_tiocstat_in_ioctl+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -int x = TIOCSTAT; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_tiocstat_in_ioctl=yes -else - bash_cv_tiocstat_in_ioctl=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_tiocstat_in_ioctl" >&5 -$as_echo "$bash_cv_tiocstat_in_ioctl" >&6; } -if test $bash_cv_tiocstat_in_ioctl = yes; then -$as_echo "@%:@define TIOCSTAT_IN_SYS_IOCTL 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONREAD in sys/ioctl.h" >&5 -$as_echo_n "checking for FIONREAD in sys/ioctl.h... " >&6; } -if ${bash_cv_fionread_in_ioctl+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -int x = FIONREAD; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_fionread_in_ioctl=yes -else - bash_cv_fionread_in_ioctl=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_fionread_in_ioctl" >&5 -$as_echo "$bash_cv_fionread_in_ioctl" >&6; } -if test $bash_cv_fionread_in_ioctl = yes; then -$as_echo "@%:@define FIONREAD_IN_SYS_IOCTL 1" >>confdefs.h - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether WCONTINUED flag to waitpid is unavailable or available but broken" >&5 -$as_echo_n "checking whether WCONTINUED flag to waitpid is unavailable or available but broken... " >&6; } -if ${bash_cv_wcontinued_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&2;} - bash_cv_wcontinued_broken=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_wcontinued_broken=no -else - bash_cv_wcontinued_broken=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wcontinued_broken" >&5 -$as_echo "$bash_cv_wcontinued_broken" >&6; } -if test $bash_cv_wcontinued_broken = yes; then -$as_echo "@%:@define WCONTINUED_BROKEN 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for speed_t in sys/types.h" >&5 -$as_echo_n "checking for speed_t in sys/types.h... " >&6; } -if ${bash_cv_speed_t_in_sys_types+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -speed_t x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_speed_t_in_sys_types=yes -else - bash_cv_speed_t_in_sys_types=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_speed_t_in_sys_types" >&5 -$as_echo "$bash_cv_speed_t_in_sys_types" >&6; } -if test $bash_cv_speed_t_in_sys_types = yes; then -$as_echo "@%:@define SPEED_T_IN_SYS_TYPES 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpw functions are declared in pwd.h" >&5 -$as_echo_n "checking whether getpw functions are declared in pwd.h... " >&6; } -if ${bash_cv_getpw_declared+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_getpw_declared" >&5 -$as_echo "$bash_cv_getpw_declared" >&6; } -if test $bash_cv_getpw_declared = yes; then -$as_echo "@%:@define HAVE_GETPW_DECLS 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unusable real-time signals due to large values" >&5 -$as_echo_n "checking for unusable real-time signals due to large values... " >&6; } -if ${bash_cv_unusable_rtsigs+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&5 -$as_echo "$as_me: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&2;} - bash_cv_unusable_rtsigs=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_unusable_rtsigs=yes -else - bash_cv_unusable_rtsigs=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_unusable_rtsigs" >&5 -$as_echo "$bash_cv_unusable_rtsigs" >&6; } -if test $bash_cv_unusable_rtsigs = yes; then -$as_echo "@%:@define UNUSABLE_RT_SIGNALS 1" >>confdefs.h - -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*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $host_os needs _KERNEL for RLIMIT defines" >&5 -$as_echo_n "checking whether $host_os needs _KERNEL for RLIMIT defines... " >&6; } -if ${bash_cv_kernel_rlimit+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - - int f; - f = RLIMIT_DATA; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_kernel_rlimit=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#define _KERNEL -#include -#undef _KERNEL - -int -main () -{ - - int f; - f = RLIMIT_DATA; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_kernel_rlimit=yes -else - bash_cv_kernel_rlimit=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_kernel_rlimit" >&5 -$as_echo "$bash_cv_kernel_rlimit" >&6; } -if test $bash_cv_kernel_rlimit = yes; then -$as_echo "@%:@define RLIMIT_NEEDS_KERNEL 1" >>confdefs.h - -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -_bash_needmsg= -fi -if ${bash_cv_termcap_lib+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_fn_c_check_func "$LINENO" "tgetent" "ac_cv_func_tgetent" -if test "x$ac_cv_func_tgetent" = xyes; then : - bash_cv_termcap_lib=libc -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 -$as_echo_n "checking for tgetent in -ltermcap... " >&6; } -if ${ac_cv_lib_termcap_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermcap $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_termcap_tgetent=yes -else - ac_cv_lib_termcap_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 -$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } -if test "x$ac_cv_lib_termcap_tgetent" = xyes; then : - bash_cv_termcap_lib=libtermcap -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltinfo" >&5 -$as_echo_n "checking for tgetent in -ltinfo... " >&6; } -if ${ac_cv_lib_tinfo_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltinfo $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_tinfo_tgetent=yes -else - ac_cv_lib_tinfo_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_tgetent" >&5 -$as_echo "$ac_cv_lib_tinfo_tgetent" >&6; } -if test "x$ac_cv_lib_tinfo_tgetent" = xyes; then : - bash_cv_termcap_lib=libtinfo -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lcurses" >&5 -$as_echo_n "checking for tgetent in -lcurses... " >&6; } -if ${ac_cv_lib_curses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_curses_tgetent=yes -else - ac_cv_lib_curses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_tgetent" >&5 -$as_echo "$ac_cv_lib_curses_tgetent" >&6; } -if test "x$ac_cv_lib_curses_tgetent" = xyes; then : - bash_cv_termcap_lib=libcurses -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 -$as_echo_n "checking for tgetent in -lncurses... " >&6; } -if ${ac_cv_lib_ncurses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ncurses_tgetent=yes -else - ac_cv_lib_ncurses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 -$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } -if test "x$ac_cv_lib_ncurses_tgetent" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: using $bash_cv_termcap_lib" >&5 -$as_echo "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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether /dev/fd is available" >&5 -$as_echo_n "checking whether /dev/fd is available... " >&6; } -if ${bash_cv_dev_fd+:} false; then : - $as_echo_n "(cached) " >&6 -else - bash_cv_dev_fd="" -if test -d /dev/fd && (exec test -r /dev/fd/0 < /dev/null) ; then -# check for systems like FreeBSD 5 that only provide /dev/fd/[012] - if (exec test -r /dev/fd/3 3&5 -$as_echo "$bash_cv_dev_fd" >&6; } -if test $bash_cv_dev_fd = "standard"; then - $as_echo "@%:@define HAVE_DEV_FD 1" >>confdefs.h - - $as_echo "@%:@define DEV_FD_PREFIX \"/dev/fd/\"" >>confdefs.h - -elif test $bash_cv_dev_fd = "whacky"; then - $as_echo "@%:@define HAVE_DEV_FD 1" >>confdefs.h - - $as_echo "@%:@define DEV_FD_PREFIX \"/proc/self/fd/\"" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether /dev/stdin stdout stderr are available" >&5 -$as_echo_n "checking whether /dev/stdin stdout stderr are available... " >&6; } -if ${bash_cv_dev_stdin+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -d /dev/fd && (exec test -r /dev/stdin < /dev/null) ; then - bash_cv_dev_stdin=present - elif test -d /proc/self/fd && (exec test -r /dev/stdin < /dev/null) ; then - bash_cv_dev_stdin=present - else - bash_cv_dev_stdin=absent - fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dev_stdin" >&5 -$as_echo "$bash_cv_dev_stdin" >&6; } -if test $bash_cv_dev_stdin = "present"; then - $as_echo "@%:@define HAVE_DEV_STDIN 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default mail directory" >&5 -$as_echo_n "checking for default mail directory... " >&6; } -if ${bash_cv_mail_dir+:} false; then : - $as_echo_n "(cached) " >&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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_mail_dir" >&5 -$as_echo "$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 -$as_echo "@%:@define JOB_CONTROL 1" >>confdefs.h - -JOBS_O=jobs.o -else -JOBS_O=nojobs.o -fi - - - - -LOCAL_DEFS=-DSHELL - - -case "${host_os}" in -sysv4.2*) $as_echo "@%:@define SVR4_2 1" >>confdefs.h - - $as_echo "@%:@define SVR4 1" >>confdefs.h - ;; -sysv4*) $as_echo "@%:@define SVR4 1" >>confdefs.h - ;; -sysv5*) $as_echo "@%:@define SVR5 1" >>confdefs.h - ;; -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 -DSOLARIS" ;; -solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; -lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; -linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading - case "`uname -r`" in - 2.[456789]*|3*) $as_echo "@%:@define PGRP_PIPE 1" >>confdefs.h - ;; - esac ;; -*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;; -*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 -D_ALL_SOURCE -DRECYCLES_PIDS" ;; -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 -dragonfly*) 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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking shared object configuration for loadable builtins" >&5 -$as_echo_n "checking shared object configuration for loadable builtins... " >&6; } - eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"` - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHOBJ_STATUS" >&5 -$as_echo "$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 - -if test -z "$localedir"; then - localedir='${datarootdir}/locale' -fi -if test -z "$datarootdir"; then - datarootdir='${prefix}/share' -fi - - - - - - -# Some versions of autoconf don't substitute these automatically - - - - - - - - - - - - - - - - - - - - - -#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" - -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, we kill variables containing newlines. -# 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. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - 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}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIB@&t@OBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $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} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -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 -IFS=$as_save_IFS - - ;; -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 - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; 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 - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# 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 - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in @%:@( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# 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'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by bash $as_me 4.2-maint, which was -generated by GNU Autoconf 2.68. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - 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_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -bash config.status 4.2-maint -configured by $0, generated by GNU Autoconf 2.68, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2010 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -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=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - 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 || ac_write_fail=1 -if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX -@%:@@%:@ Running $as_me. @%:@@%:@ -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -# 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 || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "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" ;; - "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - 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 against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #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. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # 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. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "default-1":C) - 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":C) -# Makefile uses this timestamp file to record whether config.h is up to date. -echo timestamp > stamp-h - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# 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 || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/autom4te.cache/output.2 b/autom4te.cache/output.2 deleted file mode 100644 index 5a2d6476b..000000000 --- a/autom4te.cache/output.2 +++ /dev/null @@ -1,31665 +0,0 @@ -@%:@! /bin/sh -@%:@ From configure.in for Bash 4.2, version 4.048. -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.59 for bash 4.2-maint. -@%:@ -@%:@ 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='4.2-maint' -PACKAGE_STRING='bash 4.2-maint' -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 DEBUGGER_START_FILE CC_FOR_BUILD CFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD TESTSCRIPT PURIFY MALLOC_TARGET MALLOC_SRC MALLOC_LIB MALLOC_LIBRARY MALLOC_LDFLAGS MALLOC_DEP htmldir HELPDIR HELPDIRDEFINE HELPINSTALL HELPFILES_TARGET HELPSTRINGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CROSS_COMPILE SIGNAMES_H SIGNAMES_O STATIC_LD LIBS_FOR_BUILD RL_VERSION RL_MAJOR RL_MINOR READLINE_LIB READLINE_DEP RL_LIBDIR RL_INCLUDEDIR RL_INCLUDE HISTORY_LIB HISTORY_DEP HIST_LIBDIR TILDE_LIB 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 LIB@&t@OBJS INTL_DEP INTL_INC LIBINTL_H TIME_H_DEFINES_STRUCT_TIMESPEC SYS_TIME_H_DEFINES_STRUCT_TIMESPEC PTHREAD_H_DEFINES_STRUCT_TIMESPEC 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 datarootdir localedir 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_FOR_BUILD_set=${CC_FOR_BUILD+set} -ac_env_CC_FOR_BUILD_value=$CC_FOR_BUILD -ac_cv_env_CC_FOR_BUILD_set=${CC_FOR_BUILD+set} -ac_cv_env_CC_FOR_BUILD_value=$CC_FOR_BUILD -ac_env_CFLAGS_FOR_BUILD_set=${CFLAGS_FOR_BUILD+set} -ac_env_CFLAGS_FOR_BUILD_value=$CFLAGS_FOR_BUILD -ac_cv_env_CFLAGS_FOR_BUILD_set=${CFLAGS_FOR_BUILD+set} -ac_cv_env_CFLAGS_FOR_BUILD_value=$CFLAGS_FOR_BUILD -ac_env_LDFLAGS_FOR_BUILD_set=${LDFLAGS_FOR_BUILD+set} -ac_env_LDFLAGS_FOR_BUILD_value=$LDFLAGS_FOR_BUILD -ac_cv_env_LDFLAGS_FOR_BUILD_set=${LDFLAGS_FOR_BUILD+set} -ac_cv_env_LDFLAGS_FOR_BUILD_value=$LDFLAGS_FOR_BUILD -ac_env_CPPFLAGS_FOR_BUILD_set=${CPPFLAGS_FOR_BUILD+set} -ac_env_CPPFLAGS_FOR_BUILD_value=$CPPFLAGS_FOR_BUILD -ac_cv_env_CPPFLAGS_FOR_BUILD_set=${CPPFLAGS_FOR_BUILD+set} -ac_cv_env_CPPFLAGS_FOR_BUILD_value=$CPPFLAGS_FOR_BUILD -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 4.2-maint 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 4.2-maint:";; - 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-casemod-attributes - include case-modifying variable attributes - --enable-casemod-expansions - include case-modifying word expansions - --enable-command-timing enable the time reserved word and command timing - --enable-cond-command enable the conditional command - --enable-cond-regexp enable extended regular expression matching in - conditional commands - --enable-coprocesses enable coprocess support and the coproc reserved - word - --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-extended-glob-default - force extended pattern matching to be enabled by - default - --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-strict-posix-default - configure bash to be posix-conformant by default - --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-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_FOR_BUILD - C compiler used when compiling binaries used only at build time - CFLAGS_FOR_BUILD - Compliation options (CFLAGS) used when compiling binaries used - only at build time - LDFLAGS_FOR_BUILD - Linker options (LDFLAGS) used when compiling binaries used only - at build time - CPPFLAGS_FOR_BUILD - C preprocessor options (CPPFLAGS) used when compiling binaries - used only at build time - 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 4.2-maint -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 4.2-maint, 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=4.2 -RELSTATUS=maint - -case "$RELSTATUS" in -alp*|bet*|dev*|rc*|maint*) 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 -*-mirbsd*) 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, QNX 6.x -*-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-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='${datadir}/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_strict_posix=no -opt_cond_command=yes -opt_cond_regexp=yes -opt_coproc=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_casemod_attrs=yes -opt_casemod_expansions=yes -opt_extglob_default=no - -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 opt_coproc=no - opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=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-casemod-attributes or --disable-casemod-attributes was given. -if test "${enable_casemod_attributes+set}" = set; then - enableval="$enable_casemod_attributes" - opt_casemod_attrs=$enableval -fi; -# Check whether --enable-casemod-expansions or --disable-casemod-expansions was given. -if test "${enable_casemod_expansions+set}" = set; then - enableval="$enable_casemod_expansions" - opt_casemod_expansions=$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-coprocesses or --disable-coprocesses was given. -if test "${enable_coprocesses+set}" = set; then - enableval="$enable_coprocesses" - opt_coproc=$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-extended-glob-default or --disable-extended-glob-default was given. -if test "${enable_extended_glob_default+set}" = set; then - enableval="$enable_extended_glob_default" - opt_extglob_default=$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-strict-posix-default or --disable-strict-posix-default was given. -if test "${enable_strict_posix_default+set}" = set; then - enableval="$enable_strict_posix_default" - opt_strict_posix=$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_strict_posix = yes; then -cat >>confdefs.h <<\_ACEOF -@%:@define STRICT_POSIX 1 -_ACEOF - -fi -if test $opt_extended_glob = yes ; then -cat >>confdefs.h <<\_ACEOF -@%:@define EXTENDED_GLOB 1 -_ACEOF - -fi -if test $opt_extglob_default = yes; then -cat >>confdefs.h <<\_ACEOF -@%:@define EXTGLOB_DEFAULT 1 -_ACEOF - -else -cat >>confdefs.h <<\_ACEOF -@%:@define EXTGLOB_DEFAULT 0 -_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_coproc = yes; then -cat >>confdefs.h <<\_ACEOF -@%:@define COPROCESS_SUPPORT 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_casemod_attrs = yes; then -cat >>confdefs.h <<\_ACEOF -@%:@define CASEMOD_ATTRS 1 -_ACEOF - -fi -if test $opt_casemod_expansions = yes; then -cat >>confdefs.h <<\_ACEOF -@%:@define CASEMOD_EXPANSIONS 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= HELPFILES_TARGET= -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' - HELPFILES_TARGET='helpdoc' -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 - - -# 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_O= -SIGNAMES_H=lsignames.h - - - -CROSS_COMPILE= -if test "x$cross_compiling" = "xyes"; then - case "${host}" in - *-cygwin*) - cross_cache=${srcdir}/cross-build/cygwin32.cache - ;; - *-mingw*) - cross_cache=${srcdir}/cross-build/cygwin32.cache - ;; - i[3456]86-*-beos*) - cross_cache=${srcdir}/cross-build/x86-beos.cache - ;; - *) 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 - SIGNAMES_O='signames.o' - CROSS_COMPILE='-DCROSS_COMPILING' - -fi - - - - -if test -z "$CFLAGS"; then - AUTO_CFLAGS="-g ${GCC+-O2}" - AUTO_LDFLAGS="-g ${GCC+-O2}" -else - AUTO_CFLAGS= AUTO_LDFLAGS= -fi - -CFLAGS=${CFLAGS-"$AUTO_CFLAGS"} -# LDFLAGS=${LDFLAGS="$AUTO_LDFLAGS"} # XXX - -if test "$opt_profiling" = "yes"; then - PROFILE_FLAGS=-pg - case "$host_os" in - solaris2*) ;; - *) opt_static_link=yes ;; - esac - DEBUG= MALLOC_DEBUG= -fi - -prefer_shared=yes -prefer_static=no - -if test "$opt_static_link" = yes; then - prefer_static=yes - prefer_shared=no - # 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 - -# set the appropriate make variables for building the "build tools" -# modify defaults based on whether or not we are cross compiling, since the -# options for the target host may not be appropriate for the build host -if test "X$cross_compiling" = "Xno"; then - CC_FOR_BUILD=${CC_FOR_BUILD-'$(CC)'} - CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"} # XXX - should it be '$(CPPFLAGS)' - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'} - # CFLAGS set above to default value if not passed in environment - CFLAGS_FOR_BUILD=${CFLAGS-'$(CFLAGS)'} - LIBS_FOR_BUILD=${LIBS_FOR_BUILD-'$(LIBS)'} -else - CC_FOR_BUILD=${CC_FOR_BUILD-"gcc"} - CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""} - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""} - CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD="-g"} - LIBS_FOR_BUILD=${LIBS_FOR_BUILD-""} -fi - - - - - - - - - - - - -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 - -extern int rl_gnu_readline_p; - -main() -{ - FILE *fp; - fp = fopen("conftest.rlv", "w"); - if (fp == 0) - exit(1); - if (rl_gnu_readline_p != 1) - fprintf(fp, "0.0\n"); - else - 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 - -TILDE_LIB=-ltilde -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 - # section for OS versions that don't allow unresolved symbols - # to be compiled into dynamic libraries. - case "$host_os" in - cygwin*) TILDE_LIB= ;; - esac - else - RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' - READLINE_DEP='$(READLINE_LIBRARY)' - # section for OS versions that ship an older/broken 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 - darwin[89]*|darwin10*) 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 - darwin[89]*|darwin10*) 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 - - -# Checks for stat-related time functions. - -# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2012 Free Software -# Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# st_atim.tv_nsec - Linux, Solaris, Cygwin -# st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE -# st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE -# st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1) - -# st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway) -# st_birthtim - Cygwin 1.7.0+ - - - -# Configure checks for struct timespec - -# Copyright (C) 2000-2001, 2003-2007, 2009-2011, 2012 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Original written by Paul Eggert and Jim Meyering. -# Modified by Chet Ramey for bash - - - - - -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 - -echo "$as_me:$LINENO: checking for working volatile" >&5 -echo $ECHO_N "checking for working volatile... $ECHO_C" >&6 -if test "${ac_cv_c_volatile+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 () -{ - -volatile int x; -int * volatile y; - ; - 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_volatile=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_c_volatile=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5 -echo "${ECHO_T}$ac_cv_c_volatile" >&6 -if test $ac_cv_c_volatile = no; then - -cat >>confdefs.h <<\_ACEOF -@%:@define volatile -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5 -echo $ECHO_N "checking for C/C++ restrict keyword... $ECHO_C" >&6 -if test "${ac_cv_c_restrict+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_c_restrict=no - # Try the official restrict keyword, then gcc's __restrict, and - # the less common variants. - for ac_kw in restrict __restrict __restrict__ _Restrict; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -float * $ac_kw x; -_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_restrict=$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_restrict" >&5 -echo "${ECHO_T}$ac_cv_c_restrict" >&6 - case $ac_cv_c_restrict in - restrict) ;; - no) -cat >>confdefs.h <<\_ACEOF -@%:@define restrict -_ACEOF - ;; - *) cat >>confdefs.h <<_ACEOF -@%:@define restrict $ac_cv_c_restrict -_ACEOF - ;; - esac - - - - 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 "X$prefer_shared" = "Xyes" && 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 "X$prefer_shared" = "Xyes" && 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 localeconv 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 "X$prefer_shared" = "Xyes" && 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 "X$prefer_shared" = "Xyes" && 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 \ - stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \ - regex.h syslog.h ulimit.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 $LIB@&t@OBJS in - "vprint.$ac_objext" | \ - *" vprint.$ac_objext" | \ - "vprint.$ac_objext "* | \ - *" vprint.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS 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 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 eaccess fcntl getdtablesize getgroups gethostname \ - getpagesize getpeername getrlimit getrusage gettimeofday \ - kill killpg lstat readlink sbrk select setdtablesize \ - setitimer tcgetpgrp uname ulimit waitpid -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 $LIB@&t@OBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS $ac_func.$ac_objext" ;; -esac - -fi -done - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -for ac_func in bcopy bzero confstr faccessat fnmatch \ - getaddrinfo gethostbyname getservbyname getservent inet_aton \ - imaxdiv memmove pathconf putenv raise regcomp regexec \ - setenv setlinebuf setlocale setvbuf siginterrupt strchr \ - sysconf syslog tcgetattr times ttyname tzset unsetenv -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 vasprintf asprintf -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 getpwent getpwnam getpwuid -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 memset -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 $LIB@&t@OBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS $ac_func.$ac_objext" ;; -esac - -fi -done - - - - - - - - - -for ac_func in strcasecmp strcasestr strerror strftime strnlen strpbrk strstr -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 $LIB@&t@OBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS $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 $LIB@&t@OBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS $ac_func.$ac_objext" ;; -esac - -fi -done - - - -for ac_func in dprintf -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 $LIB@&t@OBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS $ac_func.$ac_objext" ;; -esac - -fi -done - - - -for ac_func in strchrnul -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 $LIB@&t@OBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS $ac_func.$ac_objext" ;; -esac - -fi -done - - - -echo "$as_me:$LINENO: checking whether AUDIT_USER_TTY is declared" >&5 -echo $ECHO_N "checking whether AUDIT_USER_TTY is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_AUDIT_USER_TTY+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 () -{ -#ifndef AUDIT_USER_TTY - char *p = (char *) AUDIT_USER_TTY; -#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_AUDIT_USER_TTY=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_AUDIT_USER_TTY=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_AUDIT_USER_TTY" >&5 -echo "${ECHO_T}$ac_cv_have_decl_AUDIT_USER_TTY" >&6 -if test $ac_cv_have_decl_AUDIT_USER_TTY = yes; then - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_AUDIT_USER_TTY 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_AUDIT_USER_TTY 0 -_ACEOF - - -fi - - - -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 setregid is declared" >&5 -echo $ECHO_N "checking whether setregid is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_setregid+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 setregid - char *p = (char *) setregid; -#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_setregid=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_setregid=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_setregid" >&5 -echo "${ECHO_T}$ac_cv_have_decl_setregid" >&6 -if test $ac_cv_have_decl_setregid = yes; then - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SETREGID 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SETREGID 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 $LIB@&t@OBJS in - "mktime.$ac_objext" | \ - *" mktime.$ac_objext" | \ - "mktime.$ac_objext "* | \ - *" mktime.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS 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 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 mbscasecmp" >&5 -echo $ECHO_N "checking for mbscasecmp... $ECHO_C" >&6 -if test "${ac_cv_func_mbscasecmp+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 mbscasecmp to an innocuous variant, in case declares mbscasecmp. - For example, HP-UX 11i declares gettimeofday. */ -#define mbscasecmp innocuous_mbscasecmp - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mbscasecmp (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef mbscasecmp - -/* 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 mbscasecmp (); -/* 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_mbscasecmp) || defined (__stub___mbscasecmp) -choke me -#else -char (*f) () = mbscasecmp; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != mbscasecmp; - ; - 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_mbscasecmp=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_mbscasecmp=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_mbscasecmp" >&5 -echo "${ECHO_T}$ac_cv_func_mbscasecmp" >&6 -if test $ac_cv_func_mbscasecmp = yes; then - cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_MBSCMP 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for mbscmp" >&5 -echo $ECHO_N "checking for mbscmp... $ECHO_C" >&6 -if test "${ac_cv_func_mbscmp+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 mbscmp to an innocuous variant, in case declares mbscmp. - For example, HP-UX 11i declares gettimeofday. */ -#define mbscmp innocuous_mbscmp - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mbscmp (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef mbscmp - -/* 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 mbscmp (); -/* 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_mbscmp) || defined (__stub___mbscmp) -choke me -#else -char (*f) () = mbscmp; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != mbscmp; - ; - 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_mbscmp=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_mbscmp=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_mbscmp" >&5 -echo "${ECHO_T}$ac_cv_func_mbscmp" >&6 -if test $ac_cv_func_mbscmp = yes; then - cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_MBSCMP 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for mbsnrtowcs" >&5 -echo $ECHO_N "checking for mbsnrtowcs... $ECHO_C" >&6 -if test "${ac_cv_func_mbsnrtowcs+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 mbsnrtowcs to an innocuous variant, in case declares mbsnrtowcs. - For example, HP-UX 11i declares gettimeofday. */ -#define mbsnrtowcs innocuous_mbsnrtowcs - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mbsnrtowcs (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef mbsnrtowcs - -/* 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 mbsnrtowcs (); -/* 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_mbsnrtowcs) || defined (__stub___mbsnrtowcs) -choke me -#else -char (*f) () = mbsnrtowcs; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != mbsnrtowcs; - ; - 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_mbsnrtowcs=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_mbsnrtowcs=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_mbsnrtowcs" >&5 -echo "${ECHO_T}$ac_cv_func_mbsnrtowcs" >&6 -if test $ac_cv_func_mbsnrtowcs = yes; then - cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_MBSNRTOWCS 1 -_ACEOF - -fi - -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 - - - -for ac_func in mbschr -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 $LIB@&t@OBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS $ac_func.$ac_objext" ;; -esac - -fi -done - - - -echo "$as_me:$LINENO: checking for wcrtomb" >&5 -echo $ECHO_N "checking for wcrtomb... $ECHO_C" >&6 -if test "${ac_cv_func_wcrtomb+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 wcrtomb to an innocuous variant, in case declares wcrtomb. - For example, HP-UX 11i declares gettimeofday. */ -#define wcrtomb innocuous_wcrtomb - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char wcrtomb (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef wcrtomb - -/* 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 wcrtomb (); -/* 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_wcrtomb) || defined (__stub___wcrtomb) -choke me -#else -char (*f) () = wcrtomb; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != wcrtomb; - ; - 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_wcrtomb=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_wcrtomb=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_wcrtomb" >&5 -echo "${ECHO_T}$ac_cv_func_wcrtomb" >&6 -if test $ac_cv_func_wcrtomb = yes; then - cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_WCRTOMB 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for wcscoll" >&5 -echo $ECHO_N "checking for wcscoll... $ECHO_C" >&6 -if test "${ac_cv_func_wcscoll+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 wcscoll to an innocuous variant, in case declares wcscoll. - For example, HP-UX 11i declares gettimeofday. */ -#define wcscoll innocuous_wcscoll - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char wcscoll (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef wcscoll - -/* 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 wcscoll (); -/* 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_wcscoll) || defined (__stub___wcscoll) -choke me -#else -char (*f) () = wcscoll; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != wcscoll; - ; - 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_wcscoll=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_wcscoll=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_wcscoll" >&5 -echo "${ECHO_T}$ac_cv_func_wcscoll" >&6 -if test $ac_cv_func_wcscoll = yes; then - cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_WCSCOLL 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 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 wctype" >&5 -echo $ECHO_N "checking for wctype... $ECHO_C" >&6 -if test "${ac_cv_func_wctype+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 wctype to an innocuous variant, in case declares wctype. - For example, HP-UX 11i declares gettimeofday. */ -#define wctype innocuous_wctype - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char wctype (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef wctype - -/* 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 wctype (); -/* 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_wctype) || defined (__stub___wctype) -choke me -#else -char (*f) () = wctype; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != wctype; - ; - 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_wctype=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_wctype=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_wctype" >&5 -echo "${ECHO_T}$ac_cv_func_wctype" >&6 -if test $ac_cv_func_wctype = yes; then - cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_WCTYPE 1 -_ACEOF - -fi - - - -for ac_func in wcswidth -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 $LIB@&t@OBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ - *" $ac_func.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS $ac_func.$ac_objext" ;; -esac - -fi -done - - - - - echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5 -echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $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. */ -@%:@include -int -main () -{ -mbstate_t state; return ! (sizeof state && 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 - -if test $ac_cv_func_mbrtowc = yes; then - cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_MBSTATE_T 1 -_ACEOF - -fi - - - - - - -for ac_func in iswlower iswupper towlower towupper iswctype -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 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 - -echo "$as_me:$LINENO: checking for wchar_t in wchar.h" >&5 -echo $ECHO_N "checking for wchar_t in wchar.h... $ECHO_C" >&6 -if test "${bash_cv_type_wchar_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 () -{ - - wchar_t foo; - foo = 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_type_wchar_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_type_wchar_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_type_wchar_t" >&5 -echo "${ECHO_T}$bash_cv_type_wchar_t" >&6 -if test $bash_cv_type_wchar_t = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_WCHAR_T 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for wctype_t in wctype.h" >&5 -echo $ECHO_N "checking for wctype_t in wctype.h... $ECHO_C" >&6 -if test "${bash_cv_type_wctype_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 () -{ - - wctype_t foo; - foo = 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_type_wctype_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_type_wctype_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_type_wctype_t" >&5 -echo "${ECHO_T}$bash_cv_type_wctype_t" >&6 -if test $bash_cv_type_wctype_t = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_WCTYPE_T 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for wint_t in wctype.h" >&5 -echo $ECHO_N "checking for wint_t in wctype.h... $ECHO_C" >&6 -if test "${bash_cv_type_wint_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 () -{ - - wint_t foo; - foo = 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_type_wint_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_type_wint_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_type_wint_t" >&5 -echo "${ECHO_T}$bash_cv_type_wint_t" >&6 -if test $bash_cv_type_wint_t = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_WINT_T 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for wcwidth broken with unicode combining characters" >&5 -echo $ECHO_N "checking for wcwidth broken with unicode combining characters... $ECHO_C" >&6 -if test "${bash_cv_wcwidth_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -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. */ - -#include -#include -#include - -#include -#include - -main(c, v) -int c; -char **v; -{ - int w; - - setlocale(LC_ALL, "en_US.UTF-8"); - w = wcwidth (0x0301); - exit (w == 0); /* exit 0 if wcwidth broken */ -} - -_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_wcwidth_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_wcwdith_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_wcwidth_broken" >&5 -echo "${ECHO_T}$bash_cv_wcwidth_broken" >&6 -if test $bash_cv_wcwidth_broken = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define WCWIDTH_BROKEN 1 -_ACEOF - -fi - -if test "$am_cv_func_iconv" = yes; then - OLDLIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - -for ac_func in locale_charset -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 - - LIBS="$OLDLIBS" -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 $LIB@&t@OBJS in - "inet_aton.$ac_objext" | \ - *" inet_aton.$ac_objext" | \ - "inet_aton.$ac_objext "* | \ - *" inet_aton.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS 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 sig_atomic_t in signal.h" >&5 -echo $ECHO_N "checking for sig_atomic_t in signal.h... $ECHO_C" >&6 -if test "${ac_cv_have_sig_atomic_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 () -{ - sig_atomic_t x; - ; - 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_have_sig_atomic_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_sig_atomic_t=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_sig_atomic_t" >&5 -echo "${ECHO_T}$ac_cv_have_sig_atomic_t" >&6 -if test "$ac_cv_have_sig_atomic_t" = "no" -then - echo "$as_me:$LINENO: checking for sig_atomic_t" >&5 -echo $ECHO_N "checking for sig_atomic_t... $ECHO_C" >&6 -if test "${ac_cv_type_sig_atomic_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 ((sig_atomic_t *) 0) - return 0; -if (sizeof (sig_atomic_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_sig_atomic_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_sig_atomic_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_sig_atomic_t" >&5 -echo "${ECHO_T}$ac_cv_type_sig_atomic_t" >&6 -if test $ac_cv_type_sig_atomic_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -@%:@define sig_atomic_t int -_ACEOF - -fi - -fi - - -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 -#if !HAVE_DECL_SYS_SIGLIST -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 -#if HAVE_STDINT_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 -#if HAVE_STDINT_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 -#if HAVE_STDINT_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 -#if HAVE_STDINT_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 -#if HAVE_STDINT_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 -#if HAVE_STDINT_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 intmax_t" >&5 -echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6 -if test "${ac_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. */ -$ac_includes_default -int -main () -{ -if ((intmax_t *) 0) - return 0; -if (sizeof (intmax_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_intmax_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_intmax_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_intmax_t" >&5 -echo "${ECHO_T}$ac_cv_type_intmax_t" >&6 - -echo "$as_me:$LINENO: checking size of intmax_t" >&5 -echo $ECHO_N "checking size of intmax_t... $ECHO_C" >&6 -if test "${ac_cv_sizeof_intmax_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_intmax_t" = 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 (intmax_t))) >= 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 (intmax_t))) <= $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 (intmax_t))) < 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 (intmax_t))) >= $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 (intmax_t))) <= $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_intmax_t=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (intmax_t), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (intmax_t), 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 (intmax_t)); } -unsigned long ulongval () { return (long) (sizeof (intmax_t)); } -@%:@include -@%:@include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (intmax_t))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (intmax_t)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (intmax_t)))) - 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_intmax_t=`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 (intmax_t), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (intmax_t), 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_intmax_t=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_intmax_t" >&5 -echo "${ECHO_T}$ac_cv_sizeof_intmax_t" >&6 -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_INTMAX_T $ac_cv_sizeof_intmax_t -_ACEOF - - - - -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 offset of exit status in return status from wait" >&5 -echo $ECHO_N "checking for offset of exit status in return status from wait... $ECHO_C" >&6 -if test "${bash_cv_wexitstatus_offset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&5 -echo "$as_me: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&2;} - bash_cv_wexitstatus_offset=0 - -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(c, v) - int c; - char **v; -{ - pid_t pid, p; - int s, i, n; - - s = 0; - pid = fork(); - if (pid == 0) - exit (42); - - /* wait for the process */ - p = wait(&s); - if (p != pid) - exit (255); - - /* crack s */ - for (i = 0; i < (sizeof(s) - 8); i++) - { - n = (s >> i) & 0xff; - if (n == 42) - exit (i); - } - - exit (254); -} - -_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_wexitstatus_offset=0 -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_wexitstatus_offset=$? -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi - -if test "$bash_cv_wexitstatus_offset" -gt 32 ; then - { echo "$as_me:$LINENO: WARNING: bad exit status from test program -- defaulting to 0" >&5 -echo "$as_me: WARNING: bad exit status from test program -- defaulting to 0" >&2;} - bash_cv_wexitstatus_offset=0 -fi -echo "$as_me:$LINENO: result: $bash_cv_wexitstatus_offset" >&5 -echo "${ECHO_T}$bash_cv_wexitstatus_offset" >&6 - -cat >>confdefs.h <<_ACEOF -@%:@define WEXITSTATUS_OFFSET $bash_cv_wexitstatus_offset -_ACEOF - - - - - AC_CHECK_HEADERS_ONCE(sys/time.h) - echo "$as_me:$LINENO: checking for struct timespec in " >&5 -echo $ECHO_N "checking for struct timespec in ... $ECHO_C" >&6 -if test "${bash_cv_sys_struct_timespec_in_time_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 () -{ -static struct timespec x; x.tv_sec = x.tv_nsec; - ; - 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_sys_struct_timespec_in_time_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_sys_struct_timespec_in_time_h=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_sys_struct_timespec_in_time_h" >&5 -echo "${ECHO_T}$bash_cv_sys_struct_timespec_in_time_h" >&6 - - HAVE_STRUCT_TIMESPEC=0 - TIME_H_DEFINES_STRUCT_TIMESPEC=0 - SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 - PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 - if test $bash_cv_sys_struct_timespec_in_time_h = yes; then - cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_STRUCT_TIMESPEC 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -@%:@define TIME_H_DEFINES_STRUCT_TIMESPEC 1 -_ACEOF - - TIME_H_DEFINES_STRUCT_TIMESPEC=1 - else - echo "$as_me:$LINENO: checking for struct timespec in " >&5 -echo $ECHO_N "checking for struct timespec in ... $ECHO_C" >&6 -if test "${bash_cv_sys_struct_timespec_in_sys_time_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 () -{ -static struct timespec x; x.tv_sec = x.tv_nsec; - ; - 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_sys_struct_timespec_in_sys_time_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_sys_struct_timespec_in_sys_time_h=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_sys_struct_timespec_in_sys_time_h" >&5 -echo "${ECHO_T}$bash_cv_sys_struct_timespec_in_sys_time_h" >&6 - if test $bash_cv_sys_struct_timespec_in_sys_time_h = yes; then - SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 - cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_STRUCT_TIMESPEC 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -@%:@define SYS_TIME_H_DEFINES_STRUCT_TIMESPEC 1 -_ACEOF - - else - echo "$as_me:$LINENO: checking for struct timespec in " >&5 -echo $ECHO_N "checking for struct timespec in ... $ECHO_C" >&6 -if test "${bash_cv_sys_struct_timespec_in_pthread_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 () -{ -static struct timespec x; x.tv_sec = x.tv_nsec; - ; - 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_sys_struct_timespec_in_pthread_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -bash_cv_sys_struct_timespec_in_pthread_h=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $bash_cv_sys_struct_timespec_in_pthread_h" >&5 -echo "${ECHO_T}$bash_cv_sys_struct_timespec_in_pthread_h" >&6 - if test $bash_cv_sys_struct_timespec_in_pthread_h = yes; then - PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 - cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_STRUCT_TIMESPEC 1 -_ACEOF - - cat >>confdefs.h <<\_ACEOF -@%:@define PTHREAD_H_DEFINES_STRUCT_TIMESPEC 1 -_ACEOF - - fi - fi - fi - - - - - - - - AC_CHECK_HEADERS_ONCE(sys/time.h) - - echo "$as_me:$LINENO: checking for struct stat.st_atim.tv_nsec" >&5 -echo $ECHO_N "checking for struct stat.st_atim.tv_nsec... $ECHO_C" >&6 -if test "${ac_cv_member_struct_stat_st_atim_tv_nsec+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 stat ac_aggr; -if (ac_aggr.st_atim.tv_nsec) -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_atim_tv_nsec=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 stat ac_aggr; -if (sizeof ac_aggr.st_atim.tv_nsec) -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_atim_tv_nsec=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_member_struct_stat_st_atim_tv_nsec=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_atim_tv_nsec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_atim_tv_nsec" >&6 -if test $ac_cv_member_struct_stat_st_atim_tv_nsec = yes; then - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 -_ACEOF - -echo "$as_me:$LINENO: checking whether struct stat.st_atim is of type struct timespec" >&5 -echo $ECHO_N "checking whether struct stat.st_atim is of type struct timespec... $ECHO_C" >&6 -if test "${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+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 HAVE_SYS_TIME_H - # include - #endif - #include - struct timespec ts; - struct stat st; - -int -main () -{ - - st.st_atim = ts; - - ; - 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_typeof_struct_stat_st_atim_is_struct_timespec=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 -echo "${ECHO_T}$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6 - if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1 -_ACEOF - - fi -else - echo "$as_me:$LINENO: checking for struct stat.st_atimespec.tv_nsec" >&5 -echo $ECHO_N "checking for struct stat.st_atimespec.tv_nsec... $ECHO_C" >&6 -if test "${ac_cv_member_struct_stat_st_atimespec_tv_nsec+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 stat ac_aggr; -if (ac_aggr.st_atimespec.tv_nsec) -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_atimespec_tv_nsec=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 stat ac_aggr; -if (sizeof ac_aggr.st_atimespec.tv_nsec) -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_atimespec_tv_nsec=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_member_struct_stat_st_atimespec_tv_nsec=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_atimespec_tv_nsec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&6 -if test $ac_cv_member_struct_stat_st_atimespec_tv_nsec = yes; then - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1 -_ACEOF - - -else - echo "$as_me:$LINENO: checking for struct stat.st_atimensec" >&5 -echo $ECHO_N "checking for struct stat.st_atimensec... $ECHO_C" >&6 -if test "${ac_cv_member_struct_stat_st_atimensec+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 stat ac_aggr; -if (ac_aggr.st_atimensec) -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_atimensec=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 stat ac_aggr; -if (sizeof ac_aggr.st_atimensec) -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_atimensec=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_member_struct_stat_st_atimensec=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_atimensec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_atimensec" >&6 -if test $ac_cv_member_struct_stat_st_atimensec = yes; then - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIMENSEC 1 -_ACEOF - - -else - echo "$as_me:$LINENO: checking for struct stat.st_atim.st__tim.tv_nsec" >&5 -echo $ECHO_N "checking for struct stat.st_atim.st__tim.tv_nsec... $ECHO_C" >&6 -if test "${ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec+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 stat ac_aggr; -if (ac_aggr.st_atim.st__tim.tv_nsec) -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_atim_st__tim_tv_nsec=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 stat ac_aggr; -if (sizeof ac_aggr.st_atim.st__tim.tv_nsec) -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_atim_st__tim_tv_nsec=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec=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_atim_st__tim_tv_nsec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" >&6 -if test $ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec = yes; then - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1 -_ACEOF - - -fi - -fi - -fi - -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("bash-aclocal", 0700); -if (err < 0) { - perror("mkdir"); - exit(1); -} -unlink("bash-aclocal/not_a_directory"); -fd = open("bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666); -write(fd, "\n", 1); -close(fd); -dir = opendir("bash-aclocal/not_a_directory"); -unlink("bash-aclocal/not_a_directory"); -rmdir("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 - - - AC_CHECK_FUNCS_ONCE(fpurge) - AC_CHECK_FUNCS_ONCE(__fpurge) - echo "$as_me:$LINENO: checking whether fpurge is declared" >&5 -echo $ECHO_N "checking whether fpurge is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_fpurge+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 () -{ -#ifndef fpurge - char *p = (char *) fpurge; -#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_fpurge=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_fpurge=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_fpurge" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fpurge" >&6 -if test $ac_cv_have_decl_fpurge = yes; then - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_FPURGE 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_FPURGE 0 -_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 with 0 size" >&5 -echo $ECHO_N "checking if getcwd() will dynamically allocate memory with 0 size... $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 $LIB@&t@OBJS in - "getcwd.$ac_objext" | \ - *" getcwd.$ac_objext" | \ - "getcwd.$ac_objext "* | \ - *" getcwd.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS 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 - - - AC_CHECK_FUNCS_ONCE(snprintf) - if test X$ac_cv_func_snprintf = Xyes; then - echo "$as_me:$LINENO: checking for standard-conformant snprintf" >&5 -echo $ECHO_N "checking for standard-conformant snprintf... $ECHO_C" >&6 -if test "${bash_cv_func_snprintf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check standard snprintf if cross-compiling" >&5 -echo "$as_me: WARNING: cannot check standard snprintf if cross-compiling" >&2;} - bash_cv_func_snprintf=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 - -main() -{ - int n; - n = snprintf (0, 0, "%s", "0123456"); - exit(n != 7); -} - -_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_snprintf=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_snprintf=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_snprintf" >&5 -echo "${ECHO_T}$bash_cv_func_snprintf" >&6 - if test $bash_cv_func_snprintf = no; then - ac_cv_func_snprintf=no - fi - fi - if test $ac_cv_func_snprintf = no; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_SNPRINTF 0 -_ACEOF - - fi - - - AC_CHECK_FUNCS_ONCE(vsnprintf) - if test X$ac_cv_func_vsnprintf = Xyes; then - echo "$as_me:$LINENO: checking for standard-conformant vsnprintf" >&5 -echo $ECHO_N "checking for standard-conformant vsnprintf... $ECHO_C" >&6 -if test "${bash_cv_func_vsnprintf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check standard vsnprintf if cross-compiling" >&5 -echo "$as_me: WARNING: cannot check standard vsnprintf if cross-compiling" >&2;} - bash_cv_func_vsnprintf=yes - -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_STDARG_H -#include -#else -#include -#endif -#include -#include - -static int -#if HAVE_STDARG_H -foo(const char *fmt, ...) -#else -foo(format, va_alist) - const char *format; - va_dcl -#endif -{ - va_list args; - int n; - -#if HAVE_STDARG_H - va_start(args, fmt); -#else - va_start(args); -#endif - n = vsnprintf(0, 0, fmt, args); - va_end (args); - return n; -} - -main() -{ - int n; - n = foo("%s", "0123456"); - exit(n != 7); -} - -_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_vsnprintf=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_vsnprintf=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_vsnprintf" >&5 -echo "${ECHO_T}$bash_cv_func_vsnprintf" >&6 - if test $bash_cv_func_vsnprintf = no; then - ac_cv_func_vsnprintf=no - fi - fi - if test $ac_cv_func_vsnprintf = no; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_VSNPRINTF 0 -_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("bash-aclocal", 0700); -if (err < 0) { - perror ("mkdir"); - exit(1); -} -fd = mknod ("bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); -if (fd == -1) { - rmdir ("bash-aclocal"); - exit (1); -} -close(fd); -unlink ("bash-aclocal/sh-np-autoconf"); -rmdir ("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 - bash_cv_dev_fd="" -if test -d /dev/fd && (exec test -r /dev/fd/0 < /dev/null) ; then -# check for systems like FreeBSD 5 that only provide /dev/fd/[012] - if (exec test -r /dev/fd/3 3&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 && (exec test -r /dev/stdin < /dev/null) ; then - bash_cv_dev_stdin=present - elif test -d /proc/self/fd && (exec 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 - - -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 -DSOLARIS" ;; -solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; -lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; -linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading - case "`uname -r`" in - 2.[456789]*|3*) cat >>confdefs.h <<\_ACEOF -@%:@define PGRP_PIPE 1 -_ACEOF - ;; - esac ;; -*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;; -*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 -D_ALL_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 -dragonfly*) 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 - -if test -z "$localedir"; then - localedir='${datarootdir}/locale' -fi -if test -z "$datarootdir"; then - datarootdir='${prefix}/share' -fi - - - - - - -# Some versions of autoconf don't substitute these automatically - - - - - - - - - - - - - - - - - - - - - -#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" - 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 : $LIB@&t@OBJS; 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 -LIB@&t@OBJS=$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 4.2-maint, 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 4.2-maint -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" ;; - "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,@DEBUGGER_START_FILE@,$DEBUGGER_START_FILE,;t t -s,@CC_FOR_BUILD@,$CC_FOR_BUILD,;t t -s,@CFLAGS_FOR_BUILD@,$CFLAGS_FOR_BUILD,;t t -s,@LDFLAGS_FOR_BUILD@,$LDFLAGS_FOR_BUILD,;t t -s,@CPPFLAGS_FOR_BUILD@,$CPPFLAGS_FOR_BUILD,;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,@HELPFILES_TARGET@,$HELPFILES_TARGET,;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,@CROSS_COMPILE@,$CROSS_COMPILE,;t t -s,@SIGNAMES_H@,$SIGNAMES_H,;t t -s,@SIGNAMES_O@,$SIGNAMES_O,;t t -s,@STATIC_LD@,$STATIC_LD,;t t -s,@LIBS_FOR_BUILD@,$LIBS_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,@TILDE_LIB@,$TILDE_LIB,;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,@LIB@&t@OBJS@,$LIB@&t@OBJS,;t t -s,@INTL_DEP@,$INTL_DEP,;t t -s,@INTL_INC@,$INTL_INC,;t t -s,@LIBINTL_H@,$LIBINTL_H,;t t -s,@TIME_H_DEFINES_STRUCT_TIMESPEC@,$TIME_H_DEFINES_STRUCT_TIMESPEC,;t t -s,@SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@,$SYS_TIME_H_DEFINES_STRUCT_TIMESPEC,;t t -s,@PTHREAD_H_DEFINES_STRUCT_TIMESPEC@,$PTHREAD_H_DEFINES_STRUCT_TIMESPEC,;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,@datarootdir@,$datarootdir,;t t -s,@localedir@,$localedir,;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/autom4te.cache/output.3 b/autom4te.cache/output.3 deleted file mode 100644 index eae5c6721..000000000 --- a/autom4te.cache/output.3 +++ /dev/null @@ -1,17422 +0,0 @@ -@%:@! /bin/sh -@%:@ From configure.ac for Bash 4.3, version 4.056. -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.68 for bash 4.3-alpha. -@%:@ -@%:@ Report bugs to . -@%:@ -@%:@ -@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -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 -IFS=$as_save_IFS - - ;; -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 - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in @%:@( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in @%:@ (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and bug-bash@gnu.org -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; 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 - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# 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 - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_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 sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in @%:@( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# 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'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIB@&t@OBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='bash' -PACKAGE_TARNAME='bash' -PACKAGE_VERSION='4.3-alpha' -PACKAGE_STRING='bash 4.3-alpha' -PACKAGE_BUGREPORT='bug-bash@gnu.org' -PACKAGE_URL='' - -ac_unique_file="shell.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_header_list= -ac_func_list= -ac_subst_vars='LTLIBOBJS -LOCAL_DEFS -LOCAL_LDFLAGS -LOCAL_CFLAGS -LOCAL_LIBS -MALLOC_DEBUG -DEBUG -RELSTATUS -BASHVERS -ARFLAGS -BUILD_DIR -incdir -PROFILE_FLAGS -SHOBJ_STATUS -SHOBJ_LIBS -SHOBJ_XLDFLAGS -SHOBJ_LDFLAGS -SHOBJ_LD -SHOBJ_CFLAGS -SHOBJ_CC -JOBS_O -TERMCAP_DEP -TERMCAP_LIB -SIGLIST_O -PTHREAD_H_DEFINES_STRUCT_TIMESPEC -SYS_TIME_H_DEFINES_STRUCT_TIMESPEC -TIME_H_DEFINES_STRUCT_TIMESPEC -LIBINTL_H -INTL_INC -INTL_DEP -LIB@&t@OBJS -POSUB -LTLIBINTL -LIBINTL -INTLLIBS -INTL_LIBTOOL_SUFFIX_PREFIX -INTLOBJS -GENCAT -INSTOBJEXT -DATADIRNAME -CATOBJEXT -USE_INCLUDED_LIBINTL -BUILD_INCLUDED_LIBINTL -INTLBISON -LTLIBICONV -LIBICONV -GLIBC21 -ALLOCA -MSGMERGE -XGETTEXT -GMSGFMT -MSGFMT -USE_NLS -MKINSTALLDIRS -SIZE -MAKE_SHELL -SET_MAKE -YFLAGS -YACC -RANLIB -AR -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -TILDE_LIB -HIST_LIBDIR -HISTORY_DEP -HISTORY_LIB -RL_INCLUDE -RL_INCLUDEDIR -RL_LIBDIR -READLINE_DEP -READLINE_LIB -RL_MINOR -RL_MAJOR -RL_VERSION -LIBS_FOR_BUILD -STATIC_LD -SIGNAMES_O -SIGNAMES_H -CROSS_COMPILE -EGREP -GREP -CPP -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -HELPSTRINGS -HELPFILES_TARGET -HELPINSTALL -HELPDIRDEFINE -HELPDIR -MALLOC_DEP -MALLOC_LDFLAGS -MALLOC_LIBRARY -MALLOC_LIB -MALLOC_SRC -MALLOC_TARGET -PURIFY -TESTSCRIPT -CPPFLAGS_FOR_BUILD -LDFLAGS_FOR_BUILD -CFLAGS_FOR_BUILD -CC_FOR_BUILD -DEBUGGER_START_FILE -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -with_afs -with_bash_malloc -with_curses -with_gnu_malloc -with_installed_readline -with_purecov -with_purify -enable_minimal_config -enable_alias -enable_arith_for_command -enable_array_variables -enable_bang_history -enable_brace_expansion -enable_casemod_attributes -enable_casemod_expansions -enable_command_timing -enable_cond_command -enable_cond_regexp -enable_coprocesses -enable_debugger -enable_direxpand_default -enable_directory_stack -enable_disabled_builtins -enable_dparen_arithmetic -enable_extended_glob -enable_extended_glob_default -enable_help_builtin -enable_history -enable_job_control -enable_multibyte -enable_net_redirections -enable_process_substitution -enable_progcomp -enable_prompt_string_decoding -enable_readline -enable_restricted -enable_select -enable_separate_helpfiles -enable_single_help_strings -enable_strict_posix_default -enable_usg_echo_default -enable_xpg_echo_default -enable_mem_scramble -enable_profiling -enable_static_link -enable_largefile -enable_nls -with_gnu_ld -enable_rpath -with_libiconv_prefix -with_included_gettext -with_libintl_prefix -' - ac_precious_vars='build_alias -host_alias -target_alias -DEBUGGER_START_FILE -CC_FOR_BUILD -CFLAGS_FOR_BUILD -LDFLAGS_FOR_BUILD -CPPFLAGS_FOR_BUILD -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -YACC -YFLAGS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# 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. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -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 - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -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) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$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 ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$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 ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - 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 ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$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_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=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 ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_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'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -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 - $as_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 - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# 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 the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - 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 - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# 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 4.3-alpha 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 \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - @<:@@S|@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] - --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] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root @<:@DATAROOTDIR/doc/bash@:>@ - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_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 4.3-alpha:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --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-casemod-attributes - include case-modifying variable attributes - --enable-casemod-expansions - include case-modifying word expansions - --enable-command-timing enable the time reserved word and command timing - --enable-cond-command enable the conditional command - --enable-cond-regexp enable extended regular expression matching in - conditional commands - --enable-coprocesses enable coprocess support and the coproc reserved - word - --enable-debugger enable support for bash debugger - --enable-direxpand-default - enable the direxpand shell option by default - --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-extended-glob-default - force extended pattern matching to be enabled by - default - --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-strict-posix-default - configure bash to be posix-conformant by default - --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-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_FOR_BUILD - C compiler used when compiling binaries used only at build time - CFLAGS_FOR_BUILD - Compliation options (CFLAGS) used when compiling binaries used - only at build time - LDFLAGS_FOR_BUILD - Linker options (LDFLAGS) used when compiling binaries used only - at build time - CPPFLAGS_FOR_BUILD - C preprocessor options (CPPFLAGS) used when compiling binaries - used only at build time - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - YACC The `Yet Another Compiler Compiler' implementation to use. - Defaults to the first program found out of: `bison -y', `byacc', - `yacc'. - YFLAGS The list of arguments that will be passed by default to @S|@YACC. - This script will default YFLAGS to the empty string to avoid a - default value of `-d' given by some make applications. - -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 -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested 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 - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -bash configure 4.3-alpha -generated by GNU Autoconf 2.68 - -Copyright (C) 2010 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 -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -@%:@ ac_fn_c_try_compile LINENO -@%:@ -------------------------- -@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_compile - -@%:@ ac_fn_c_try_link LINENO -@%:@ ----------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_link - -@%:@ ac_fn_c_try_cpp LINENO -@%:@ ---------------------- -@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_cpp - -@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using -@%:@ the include files in INCLUDES and setting the cache variable VAR -@%:@ accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ------------------------------- ## -## Report this to bug-bash@gnu.org ## -## ------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_mongrel - -@%:@ ac_fn_c_try_run LINENO -@%:@ ---------------------- -@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes -@%:@ that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} @%:@ ac_fn_c_try_run - -@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -@%:@ ------------------------------------------------------- -@%:@ Tests whether HEADER exists and can be compiled using the include files in -@%:@ INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -@%:@include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_header_compile - -@%:@ ac_fn_c_check_func LINENO FUNC VAR -@%:@ ---------------------------------- -@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* 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_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_func - -@%:@ ac_fn_c_check_type LINENO TYPE VAR INCLUDES -@%:@ ------------------------------------------- -@%:@ Tests whether TYPE exists after having included INCLUDES, setting cache -@%:@ variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_type - -@%:@ ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -@%:@ --------------------------------------------- -@%:@ Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -@%:@ accordingly. -ac_fn_c_check_decl () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - as_decl_name=`echo $2|sed 's/ *(.*//'` - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -$as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -@%:@ifndef $as_decl_name -@%:@ifdef __cplusplus - (void) $as_decl_use; -@%:@else - (void) $as_decl_name; -@%:@endif -@%:@endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_decl - -@%:@ ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -@%:@ -------------------------------------------- -@%:@ Tries to find the compile-time value of EXPR in a program that includes -@%:@ INCLUDES, setting VAR accordingly. Returns whether the value could be -@%:@ computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) >= 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) >= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in @%:@(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -@%:@include -@%:@include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - echo >>conftest.val; read $3 &5 -$as_echo_n "checking for $2.$3... " >&6; } -if eval \${$4+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (sizeof ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - eval "$4=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$4 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} @%:@ ac_fn_c_check_member -cat >config.log <<_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 4.3-alpha, which was -generated by GNU Autoconf 2.68. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -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` -/usr/bin/hostinfo = `(/usr/bin/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=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&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_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append 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 - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset 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: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > 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 - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in @%:@(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - 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. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -as_fn_append ac_header_list " stdlib.h" -as_fn_append ac_header_list " unistd.h" -as_fn_append ac_header_list " sys/param.h" -as_fn_append ac_header_list " sys/time.h" -as_fn_append ac_func_list " alarm" -as_fn_append ac_func_list " fpurge" -as_fn_append ac_func_list " __fpurge" -as_fn_append ac_func_list " snprintf" -as_fn_append ac_func_list " vsnprintf" -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; 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,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_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 - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_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. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -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 - as_fn_error $? "cannot find install-sh, install.sh, or shtool in ./support \"$srcdir\"/./support" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -ac_config_headers="$ac_config_headers config.h" - - -BASHVERS=4.3 -RELSTATUS=alpha - -case "$RELSTATUS" in -alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; -*) DEBUG= MALLOC_DEBUG= ;; -esac - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - - -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 -*-mirbsd*) 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 -*-openstep*) opt_bash_malloc=no ;; # i386/Sparc/HP machines running Openstep -*-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, QNX 6.x -*-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 -*-nsk*) opt_bash_malloc=no ;; # HP NonStop -esac - -# memory scrambling on free() -case "${host_os}" in -sco3.2v5*|sco3.2v4*) opt_memscramble=no ;; -*) opt_memscramble=yes ;; -esac - - - - -@%:@ Check whether --with-afs was given. -if test "${with_afs+set}" = set; then : - withval=$with_afs; opt_afs=$withval -fi - - -@%:@ Check whether --with-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 was given. -if test "${with_curses+set}" = set; then : - withval=$with_curses; opt_curses=$withval -fi - - -@%:@ Check whether --with-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 was given. -if test "${with_installed_readline+set}" = set; then : - withval=$with_installed_readline; opt_with_installed_readline=$withval -fi - - -@%:@ Check whether --with-purecov was given. -if test "${with_purecov+set}" = set; then : - withval=$with_purecov; opt_purecov=$withval -fi - - -@%:@ Check whether --with-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)' - - $as_echo "@%:@define USING_BASH_MALLOC 1" >>confdefs.h - -else - MALLOC_LIB= - MALLOC_LIBRARY= - MALLOC_LDFLAGS= - MALLOC_DEP= -fi - -if test "$opt_purify" = yes; then - PURIFY="purify " - $as_echo "@%:@define DISABLE_MALLOC_WRAPPERS 1" >>confdefs.h - -else - PURIFY= -fi - -if test "$opt_purecov" = yes; then - PURIFY="${PURIFY}purecov" -fi - -if test "$opt_afs" = yes; then - $as_echo "@%:@define AFS 1" >>confdefs.h - -fi - -if test "$opt_curses" = yes; then - prefer_curses=yes -fi - -if test -z "${DEBUGGER_START_FILE}"; then - DEBUGGER_START_FILE='${datadir}/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_strict_posix=no -opt_cond_command=yes -opt_cond_regexp=yes -opt_coproc=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_casemod_attrs=yes -opt_casemod_expansions=yes -opt_extglob_default=no -opt_dircomplete_expand_default=no - -opt_static_link=no -opt_profiling=no - -@%:@ Check whether --enable-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 opt_coproc=no - opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no -fi - -@%:@ Check whether --enable-alias was given. -if test "${enable_alias+set}" = set; then : - enableval=$enable_alias; opt_alias=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_array_variables+set}" = set; then : - enableval=$enable_array_variables; opt_array_variables=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_brace_expansion+set}" = set; then : - enableval=$enable_brace_expansion; opt_brace_expansion=$enableval -fi - -@%:@ Check whether --enable-casemod-attributes was given. -if test "${enable_casemod_attributes+set}" = set; then : - enableval=$enable_casemod_attributes; opt_casemod_attrs=$enableval -fi - -@%:@ Check whether --enable-casemod-expansions was given. -if test "${enable_casemod_expansions+set}" = set; then : - enableval=$enable_casemod_expansions; opt_casemod_expansions=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_cond_command+set}" = set; then : - enableval=$enable_cond_command; opt_cond_command=$enableval -fi - -@%:@ Check whether --enable-cond-regexp was given. -if test "${enable_cond_regexp+set}" = set; then : - enableval=$enable_cond_regexp; opt_cond_regexp=$enableval -fi - -@%:@ Check whether --enable-coprocesses was given. -if test "${enable_coprocesses+set}" = set; then : - enableval=$enable_coprocesses; opt_coproc=$enableval -fi - -@%:@ Check whether --enable-debugger was given. -if test "${enable_debugger+set}" = set; then : - enableval=$enable_debugger; opt_debugger=$enableval -fi - -@%:@ Check whether --enable-direxpand-default was given. -if test "${enable_direxpand_default+set}" = set; then : - enableval=$enable_direxpand_default; opt_dircomplete_expand_default=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_disabled_builtins+set}" = set; then : - enableval=$enable_disabled_builtins; opt_disabled_builtins=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_extended_glob+set}" = set; then : - enableval=$enable_extended_glob; opt_extended_glob=$enableval -fi - -@%:@ Check whether --enable-extended-glob-default was given. -if test "${enable_extended_glob_default+set}" = set; then : - enableval=$enable_extended_glob_default; opt_extglob_default=$enableval -fi - -@%:@ Check whether --enable-help-builtin was given. -if test "${enable_help_builtin+set}" = set; then : - enableval=$enable_help_builtin; opt_help=$enableval -fi - -@%:@ Check whether --enable-history was given. -if test "${enable_history+set}" = set; then : - enableval=$enable_history; opt_history=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_multibyte+set}" = set; then : - enableval=$enable_multibyte; opt_multibyte=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_process_substitution+set}" = set; then : - enableval=$enable_process_substitution; opt_process_subst=$enableval -fi - -@%:@ Check whether --enable-progcomp was given. -if test "${enable_progcomp+set}" = set; then : - enableval=$enable_progcomp; opt_progcomp=$enableval -fi - -@%:@ Check whether --enable-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 was given. -if test "${enable_readline+set}" = set; then : - enableval=$enable_readline; opt_readline=$enableval -fi - -@%:@ Check whether --enable-restricted was given. -if test "${enable_restricted+set}" = set; then : - enableval=$enable_restricted; opt_restricted=$enableval -fi - -@%:@ Check whether --enable-select was given. -if test "${enable_select+set}" = set; then : - enableval=$enable_select; opt_select=$enableval -fi - -@%:@ Check whether --enable-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 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-strict-posix-default was given. -if test "${enable_strict_posix_default+set}" = set; then : - enableval=$enable_strict_posix_default; opt_strict_posix=$enableval -fi - -@%:@ Check whether --enable-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 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 was given. -if test "${enable_mem_scramble+set}" = set; then : - enableval=$enable_mem_scramble; opt_memscramble=$enableval -fi - -@%:@ Check whether --enable-profiling was given. -if test "${enable_profiling+set}" = set; then : - enableval=$enable_profiling; opt_profiling=$enableval -fi - -@%:@ Check whether --enable-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 -$as_echo "@%:@define ALIAS 1" >>confdefs.h - -fi -if test $opt_dirstack = yes; then -$as_echo "@%:@define PUSHD_AND_POPD 1" >>confdefs.h - -fi -if test $opt_restricted = yes; then -$as_echo "@%:@define RESTRICTED_SHELL 1" >>confdefs.h - -fi -if test $opt_process_subst = yes; then -$as_echo "@%:@define PROCESS_SUBSTITUTION 1" >>confdefs.h - -fi -if test $opt_prompt_decoding = yes; then -$as_echo "@%:@define PROMPT_STRING_DECODE 1" >>confdefs.h - -fi -if test $opt_select = yes; then -$as_echo "@%:@define SELECT_COMMAND 1" >>confdefs.h - -fi -if test $opt_help = yes; then -$as_echo "@%:@define HELP_BUILTIN 1" >>confdefs.h - -fi -if test $opt_array_variables = yes; then -$as_echo "@%:@define ARRAY_VARS 1" >>confdefs.h - -fi -if test $opt_dparen_arith = yes; then -$as_echo "@%:@define DPAREN_ARITHMETIC 1" >>confdefs.h - -fi -if test $opt_brace_expansion = yes; then -$as_echo "@%:@define BRACE_EXPANSION 1" >>confdefs.h - -fi -if test $opt_disabled_builtins = yes; then -$as_echo "@%:@define DISABLED_BUILTINS 1" >>confdefs.h - -fi -if test $opt_command_timing = yes; then -$as_echo "@%:@define COMMAND_TIMING 1" >>confdefs.h - -fi -if test $opt_xpg_echo = yes ; then -$as_echo "@%:@define DEFAULT_ECHO_TO_XPG 1" >>confdefs.h - -fi -if test $opt_strict_posix = yes; then -$as_echo "@%:@define STRICT_POSIX 1" >>confdefs.h - -fi -if test $opt_extended_glob = yes ; then -$as_echo "@%:@define EXTENDED_GLOB 1" >>confdefs.h - -fi -if test $opt_extglob_default = yes; then -$as_echo "@%:@define EXTGLOB_DEFAULT 1" >>confdefs.h - -else -$as_echo "@%:@define EXTGLOB_DEFAULT 0" >>confdefs.h - -fi -if test $opt_cond_command = yes ; then -$as_echo "@%:@define COND_COMMAND 1" >>confdefs.h - -fi -if test $opt_cond_regexp = yes ; then -$as_echo "@%:@define COND_REGEXP 1" >>confdefs.h - -fi -if test $opt_coproc = yes; then -$as_echo "@%:@define COPROCESS_SUPPORT 1" >>confdefs.h - -fi -if test $opt_arith_for_command = yes; then -$as_echo "@%:@define ARITH_FOR_COMMAND 1" >>confdefs.h - -fi -if test $opt_net_redirs = yes; then -$as_echo "@%:@define NETWORK_REDIRECTIONS 1" >>confdefs.h - -fi -if test $opt_progcomp = yes; then -$as_echo "@%:@define PROGRAMMABLE_COMPLETION 1" >>confdefs.h - -fi -if test $opt_multibyte = no; then -$as_echo "@%:@define NO_MULTIBYTE_SUPPORT 1" >>confdefs.h - -fi -if test $opt_debugger = yes; then -$as_echo "@%:@define DEBUGGER 1" >>confdefs.h - -fi -if test $opt_casemod_attrs = yes; then -$as_echo "@%:@define CASEMOD_ATTRS 1" >>confdefs.h - -fi -if test $opt_casemod_expansions = yes; then -$as_echo "@%:@define CASEMOD_EXPANSIONS 1" >>confdefs.h - -fi -if test $opt_dircomplete_expand_default = yes; then -$as_echo "@%:@define DIRCOMPLETE_EXPAND_DEFAULT 1" >>confdefs.h - -fi - -if test $opt_memscramble = yes; then -$as_echo "@%:@define MEMSCRAMBLE 1" >>confdefs.h - -fi - -if test "$opt_minimal_config" = yes; then - TESTSCRIPT=run-minimal -else - TESTSCRIPT=run-all -fi - -HELPDIR= HELPDIRDEFINE= HELPINSTALL= HELPFILES_TARGET= -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' - HELPFILES_TARGET='helpdoc' -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; 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 | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -std 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 -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 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 -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -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 - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5 -$as_echo_n "checking for strerror in -lcposix... " >&6; } -if ${ac_cv_lib_cposix_strerror+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcposix $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char strerror (); -int -main () -{ -return strerror (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_cposix_strerror=yes -else - ac_cv_lib_cposix_strerror=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5 -$as_echo "$ac_cv_lib_cposix_strerror" >&6; } -if test "x$ac_cv_lib_cposix_strerror" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -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 - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#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)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h - -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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = xyes; then : - MINIX=yes -else - MINIX= -fi - - - if test "$MINIX" = yes; then - -$as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h - - -$as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h - - -$as_echo "@%:@define _MINIX 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if ${ac_cv_safe_to_define___extensions__+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# define __EXTENSIONS__ 1 - $ac_includes_default -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_safe_to_define___extensions__=yes -else - ac_cv_safe_to_define___extensions__=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h - - $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h - - $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h - - $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h - - - - -@%:@ Check whether --enable-largefile was given. -if test "${enable_largefile+set}" = set; then : - enableval=$enable_largefile; -fi - -if test "$enable_largefile" != no; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if ${ac_cv_sys_largefile_CC+:} false; then : - $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - if ac_fn_c_try_compile "$LINENO"; then : - break -fi -rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -$as_echo "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if ${ac_cv_sys_file_offset_bits+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF -;; -esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if ${ac_cv_sys_large_files+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -@%:@define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF -;; -esac -rm -rf conftest* - fi -fi - - - -SIGNAMES_O= -SIGNAMES_H=lsignames.h - - - -CROSS_COMPILE= -if test "x$cross_compiling" = "xyes"; then - case "${host}" in - *-cygwin*) - cross_cache=${srcdir}/cross-build/cygwin32.cache - ;; - *-mingw*) - cross_cache=${srcdir}/cross-build/cygwin32.cache - ;; - i[3456]86-*-beos*) - cross_cache=${srcdir}/cross-build/x86-beos.cache - ;; - *) 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 - SIGNAMES_O='signames.o' - CROSS_COMPILE='-DCROSS_COMPILING' - -fi - - - - -if test -z "$CFLAGS"; then - AUTO_CFLAGS="-g ${GCC+-O2}" - AUTO_LDFLAGS="-g ${GCC+-O2}" -else - AUTO_CFLAGS= AUTO_LDFLAGS= -fi - -CFLAGS=${CFLAGS-"$AUTO_CFLAGS"} -# LDFLAGS=${LDFLAGS="$AUTO_LDFLAGS"} # XXX - -if test "$opt_profiling" = "yes"; then - PROFILE_FLAGS=-pg - case "$host_os" in - solaris2*) ;; - *) opt_static_link=yes ;; - esac - DEBUG= MALLOC_DEBUG= -fi - -prefer_shared=yes -prefer_static=no - -if test "$opt_static_link" = yes; then - prefer_static=yes - prefer_shared=no - # 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 - -# set the appropriate make variables for building the "build tools" -# modify defaults based on whether or not we are cross compiling, since the -# options for the target host may not be appropriate for the build host -if test "X$cross_compiling" = "Xno"; then - CC_FOR_BUILD=${CC_FOR_BUILD-'$(CC)'} - CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"} # XXX - should it be '$(CPPFLAGS)' - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'} - # CFLAGS set above to default value if not passed in environment - CFLAGS_FOR_BUILD=${CFLAGS-'$(CFLAGS)'} - LIBS_FOR_BUILD=${LIBS_FOR_BUILD-'$(LIBS)'} -else - CC_FOR_BUILD=${CC_FOR_BUILD-"gcc"} - CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""} - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""} - CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD="-g"} - LIBS_FOR_BUILD=${LIBS_FOR_BUILD-""} -fi - - - - - - - - - - - - -if test $ac_cv_c_compiler_gnu = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 -$as_echo_n "checking whether $CC needs -traditional... " >&6; } -if ${ac_cv_prog_gcc_traditional+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_pattern="Autoconf.*'x'" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -_bash_needmsg= -fi -if ${bash_cv_termcap_lib+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_fn_c_check_func "$LINENO" "tgetent" "ac_cv_func_tgetent" -if test "x$ac_cv_func_tgetent" = xyes; then : - bash_cv_termcap_lib=libc -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 -$as_echo_n "checking for tgetent in -ltermcap... " >&6; } -if ${ac_cv_lib_termcap_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermcap $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_termcap_tgetent=yes -else - ac_cv_lib_termcap_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 -$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } -if test "x$ac_cv_lib_termcap_tgetent" = xyes; then : - bash_cv_termcap_lib=libtermcap -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltinfo" >&5 -$as_echo_n "checking for tgetent in -ltinfo... " >&6; } -if ${ac_cv_lib_tinfo_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltinfo $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_tinfo_tgetent=yes -else - ac_cv_lib_tinfo_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_tgetent" >&5 -$as_echo "$ac_cv_lib_tinfo_tgetent" >&6; } -if test "x$ac_cv_lib_tinfo_tgetent" = xyes; then : - bash_cv_termcap_lib=libtinfo -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lcurses" >&5 -$as_echo_n "checking for tgetent in -lcurses... " >&6; } -if ${ac_cv_lib_curses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_curses_tgetent=yes -else - ac_cv_lib_curses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_tgetent" >&5 -$as_echo "$ac_cv_lib_curses_tgetent" >&6; } -if test "x$ac_cv_lib_curses_tgetent" = xyes; then : - bash_cv_termcap_lib=libcurses -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 -$as_echo_n "checking for tgetent in -lncurses... " >&6; } -if ${ac_cv_lib_ncurses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ncurses_tgetent=yes -else - ac_cv_lib_ncurses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 -$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } -if test "x$ac_cv_lib_ncurses_tgetent" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: using $bash_cv_termcap_lib" >&5 -$as_echo "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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of installed readline library" >&5 -$as_echo_n "checking version of installed readline library... " >&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 ${ac_cv_rl_version+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_rl_version='4.2' -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -extern int rl_gnu_readline_p; - -main() -{ - FILE *fp; - fp = fopen("conftest.rlv", "w"); - if (fp == 0) - exit(1); - if (rl_gnu_readline_p != 1) - fprintf(fp, "0.0\n"); - else - fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0"); - fclose(fp); - exit(0); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_rl_version=`cat conftest.rlv` -else - ac_cv_rl_version='0.0' -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam 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 - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not test version of installed readline library." >&5 -$as_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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rl_version" >&5 -$as_echo "$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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rl_version" >&5 -$as_echo "$ac_cv_rl_version" >&6; } - -fi - - - case "$ac_cv_rl_version" in - 5*|6*|7*|8*|9*) ;; - *) opt_with_installed_readline=no - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: installed readline library is too old to be linked with bash" >&5 -$as_echo "$as_me: WARNING: installed readline library is too old to be linked with bash" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using private bash version" >&5 -$as_echo "$as_me: WARNING: using private bash version" >&2;} - ;; - esac -fi - -TILDE_LIB=-ltilde -if test $opt_readline = yes; then - $as_echo "@%:@define READLINE 1" >>confdefs.h - - 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 - # section for OS versions that don't allow unresolved symbols - # to be compiled into dynamic libraries. - case "$host_os" in - cygwin*) TILDE_LIB= ;; - esac - else - RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' - READLINE_DEP='$(READLINE_LIBRARY)' - # section for OS versions that ship an older/broken 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 - darwin[89]*|darwin10*) 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 - $as_echo "@%:@define HISTORY 1" >>confdefs.h - - fi - if test $opt_bang_history = yes; then - $as_echo "@%:@define BANG_HISTORY 1" >>confdefs.h - - 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 - darwin[89]*|darwin10*) 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. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -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. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$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' - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AR" = x; then - AR="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -else - AR="$ac_cv_prog_AR" -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_YACC+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_YACC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -YACC=$ac_cv_prog_YACC -if test -n "$YACC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 -$as_echo "$YACC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$YACC" && break -done -test -n "$YACC" || YACC="yacc" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 - - -# Checks for stat-related time functions. - -# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2012 Free Software -# Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# st_atim.tv_nsec - Linux, Solaris, Cygwin -# st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE -# st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE -# st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1) - -# st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway) -# st_birthtim - Cygwin 1.7.0+ - - - -# Configure checks for struct timespec - -# Copyright (C) 2000-2001, 2003-2007, 2009-2011, 2012 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Original written by Paul Eggert and Jim Meyering. -# Modified by Chet Ramey for bash - - - - - -$as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* 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"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 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; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes -else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -$as_echo "@%:@define const /**/" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; 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 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "@%:@define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "@%:@define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for preprocessor stringizing operator" >&5 -$as_echo_n "checking for preprocessor stringizing operator... " >&6; } -if ${ac_cv_c_stringize+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stringize" >&5 -$as_echo "$ac_cv_c_stringize" >&6; } -if test $ac_cv_c_stringize = yes; then - -$as_echo "@%:@define HAVE_STRINGIZE 1" >>confdefs.h - -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double with more range or precision than double" >&5 -$as_echo_n "checking for long double with more range or precision than double... " >&6; } -if ${ac_cv_type_long_double_wider+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - long double const a[] = - { - 0.0L, DBL_MIN, DBL_MAX, DBL_EPSILON, - LDBL_MIN, LDBL_MAX, LDBL_EPSILON - }; - long double - f (long double x) - { - return ((x + (unsigned long int) 10) * (-1 / x) + a[0] - + (x ? f (x) : 'c')); - } - -int -main () -{ -static int test_array @<:@1 - 2 * !((0 < ((DBL_MAX_EXP < LDBL_MAX_EXP) - + (DBL_MANT_DIG < LDBL_MANT_DIG) - - (LDBL_MAX_EXP < DBL_MAX_EXP) - - (LDBL_MANT_DIG < DBL_MANT_DIG))) - && (int) LDBL_EPSILON == 0 - )@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_long_double_wider=yes -else - ac_cv_type_long_double_wider=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double_wider" >&5 -$as_echo "$ac_cv_type_long_double_wider" >&6; } - if test $ac_cv_type_long_double_wider = yes; then - -$as_echo "@%:@define HAVE_LONG_DOUBLE_WIDER 1" >>confdefs.h - - fi - - ac_cv_c_long_double=$ac_cv_type_long_double_wider - if test $ac_cv_c_long_double = yes; then - -$as_echo "@%:@define HAVE_LONG_DOUBLE 1" >>confdefs.h - - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for function prototypes" >&5 -$as_echo_n "checking for function prototypes... " >&6; } -if test "$ac_cv_prog_cc_c89" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "@%:@define PROTOTYPES 1" >>confdefs.h - - -$as_echo "@%:@define __PROTOTYPES 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5 -$as_echo_n "checking whether char is unsigned... " >&6; } -if ${ac_cv_c_char_unsigned+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((char) -1) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_char_unsigned=no -else - ac_cv_c_char_unsigned=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5 -$as_echo "$ac_cv_c_char_unsigned" >&6; } -if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then - $as_echo "@%:@define __CHAR_UNSIGNED__ 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5 -$as_echo_n "checking for working volatile... " >&6; } -if ${ac_cv_c_volatile+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - -volatile int x; -int * volatile y = (int *) 0; -return !x && !y; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_volatile=yes -else - ac_cv_c_volatile=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 -$as_echo "$ac_cv_c_volatile" >&6; } -if test $ac_cv_c_volatile = no; then - -$as_echo "@%:@define volatile /**/" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 -$as_echo_n "checking for C/C++ restrict keyword... " >&6; } -if ${ac_cv_c_restrict+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_restrict=no - # The order here caters to the fact that C++ does not require restrict. - for ac_kw in __restrict __restrict__ _Restrict restrict; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -typedef int * int_ptr; - int foo (int_ptr $ac_kw ip) { - return ip[0]; - } -int -main () -{ -int s[1]; - int * $ac_kw t = s; - t[0] = 0; - return foo(t) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_restrict=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_restrict" != no && break - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 -$as_echo "$ac_cv_c_restrict" >&6; } - - case $ac_cv_c_restrict in - restrict) ;; - no) $as_echo "@%:@define restrict /**/" >>confdefs.h - ;; - *) cat >>confdefs.h <<_ACEOF -@%:@define restrict $ac_cv_c_restrict -_ACEOF - ;; - esac - - - - 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 - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - @%:@ Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "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,^.*/,,'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -$as_echo "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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "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" - - -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define off_t long int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define size_t unsigned int -_ACEOF - -fi - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_alloca_h=yes -else - ac_cv_working_alloca_h=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } -if test $ac_cv_working_alloca_h = yes; then - -$as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_alloca_works=yes -else - ac_cv_func_alloca_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } - -if test $ac_cv_func_alloca_works = yes; then - -$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h - -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=\${LIBOBJDIR}alloca.$ac_objext - -$as_echo "@%:@define C_ALLOCA 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - -cat >>confdefs.h <<_ACEOF -@%:@define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_c_stack_direction=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -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 () -{ - return find_stack_direction () < 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_stack_direction=1 -else - ac_cv_c_stack_direction=-1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -@%:@define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - - - - - for ac_header in $ac_header_list -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - -for ac_func in getpagesize -do : - ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_GETPAGESIZE 1 -_ACEOF - -fi -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if ${ac_cv_func_mmap_fixed_mapped+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_mmap_fixed_mapped=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 !defined STDC_HEADERS && !defined HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# ifdef 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; - const char *cdata2; - int i, pagesize; - int fd, fd2; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 2; - if (write (fd, data, pagesize) != pagesize) - return 3; - close (fd); - - /* Next, check that the tail of a page is zero-filled. File must have - non-zero length, otherwise we risk SIGBUS for entire page. */ - fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd2 < 0) - return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) - return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); - if (data2 == MAP_FAILED) - return 6; - for (i = 0; i < pagesize; ++i) - if (*(data2 + i)) - return 7; - close (fd2); - if (munmap (data2, pagesize)) - return 8; - - /* 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) - return 9; - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 10; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 11; - - /* 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) - return 12; - if (read (fd, data3, pagesize) != pagesize) - return 13; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 14; - close (fd); - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_mmap_fixed_mapped=yes -else - ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -$as_echo "@%:@define HAVE_MMAP 1" >>confdefs.h - -fi -rm -f conftest.mmap conftest.txt - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5 -$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; } -if ${ac_cv_gnu_library_2_1+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 -$as_echo "$ac_cv_gnu_library_2_1" >&6; } - - GLIBC21="$ac_cv_gnu_library_2_1" - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether integer division by zero raises SIGFPE" >&5 -$as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; } -if ${gt_cv_int_divbyzero_sigfpe+:} false; then : - $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - gt_cv_int_divbyzero_sigfpe=yes -else - gt_cv_int_divbyzero_sigfpe=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_int_divbyzero_sigfpe" >&5 -$as_echo "$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 - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 -$as_echo_n "checking for inttypes.h... " >&6; } -if ${jm_ac_cv_header_inttypes_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -uintmax_t i = (uintmax_t) -1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - jm_ac_cv_header_inttypes_h=yes -else - jm_ac_cv_header_inttypes_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $jm_ac_cv_header_inttypes_h" >&5 -$as_echo "$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 - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 -$as_echo_n "checking for stdint.h... " >&6; } -if ${jm_ac_cv_header_stdint_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -uintmax_t i = (uintmax_t) -1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - jm_ac_cv_header_stdint_h=yes -else - jm_ac_cv_header_stdint_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $jm_ac_cv_header_stdint_h" >&5 -$as_echo "$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 - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long" >&5 -$as_echo_n "checking for unsigned long long... " >&6; } -if ${ac_cv_type_unsigned_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_type_unsigned_long_long=yes -else - ac_cv_type_unsigned_long_long=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long" >&5 -$as_echo "$ac_cv_type_unsigned_long_long" >&6; } - if test $ac_cv_type_unsigned_long_long = yes; then - -$as_echo "@%:@define HAVE_UNSIGNED_LONG_LONG 1" >>confdefs.h - - 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 - -$as_echo "@%:@define HAVE_UINTMAX_T 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 -$as_echo_n "checking for inttypes.h... " >&6; } -if ${gt_cv_header_inttypes_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gt_cv_header_inttypes_h=yes -else - gt_cv_header_inttypes_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_header_inttypes_h" >&5 -$as_echo "$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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5 -$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; } -if ${gt_cv_inttypes_pri_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#ifdef PRId32 -char *p = PRId32; -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gt_cv_inttypes_pri_broken=no -else - gt_cv_inttypes_pri_broken=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5 -$as_echo "$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 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. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 -$as_echo_n "checking for ld used by GCC... " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${acl_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${acl_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5 -$as_echo "$acl_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$acl_cv_prog_gnu_ld - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 -$as_echo_n "checking for shared library run path origin... " >&6; } -if ${acl_cv_rpath+:} false; then : - $as_echo_n "(cached) " >&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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 -$as_echo "$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 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 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 "X$prefer_shared" = "Xyes" && 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 "X$prefer_shared" = "Xyes" && 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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 localeconv stpcpy \ -strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ -__fsetlocking -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 -$as_echo_n "checking for iconv... " >&6; } -if ${am_cv_func_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_func_iconv=yes -fi -rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 -$as_echo "$am_cv_func_iconv" >&6; } - if test "$am_cv_func_iconv" = yes; then - -$as_echo "@%:@define HAVE_ICONV 1" >>confdefs.h - - fi - if test "$am_cv_lib_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 -$as_echo_n "checking how to link with libiconv... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 -$as_echo "$LIBICONV" >&6; } - else - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - - - - if test "$am_cv_func_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 -$as_echo_n "checking for iconv declaration... " >&6; } - if ${am_cv_proto_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - am_cv_proto_iconv_arg1="" -else - am_cv_proto_iconv_arg1="const" -fi -rm -f core 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/( /(/'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- - }$am_cv_proto_iconv" >&5 -$as_echo "${ac_t:- - }$am_cv_proto_iconv" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define ICONV_CONST $am_cv_proto_iconv_arg1 -_ACEOF - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 -$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } -if ${am_cv_langinfo_codeset+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_langinfo_codeset=yes -else - am_cv_langinfo_codeset=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 -$as_echo "$am_cv_langinfo_codeset" >&6; } - if test $am_cv_langinfo_codeset = yes; then - -$as_echo "@%:@define HAVE_LANGINFO_CODESET 1" >>confdefs.h - - fi - - if test $ac_cv_header_locale_h = yes; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 -$as_echo_n "checking for LC_MESSAGES... " >&6; } -if ${am_cv_val_LC_MESSAGES+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_val_LC_MESSAGES=yes -else - am_cv_val_LC_MESSAGES=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 -$as_echo "$am_cv_val_LC_MESSAGES" >&6; } - if test $am_cv_val_LC_MESSAGES = yes; then - -$as_echo "@%:@define HAVE_LC_MESSAGES 1" >>confdefs.h - - 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_INTLBISON+:} false; then : - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_INTLBISON="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -INTLBISON=$ac_cv_prog_INTLBISON -if test -n "$INTLBISON"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLBISON" >&5 -$as_echo "$INTLBISON" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$INTLBISON" && break -done - - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of bison" >&5 -$as_echo_n "checking version of bison... " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5 -$as_echo "$ac_prog_version" >&6; } - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - @%:@ Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5 -$as_echo_n "checking whether included gettext is requested... " >&6; } - -@%:@ Check whether --with-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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_force_use_gnu_gettext" >&5 -$as_echo "$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 - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 -$as_echo_n "checking for GNU gettext in libc... " >&6; } -if ${gt_cv_func_gnugettext2_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_gnugettext2_libc=yes -else - gt_cv_func_gnugettext2_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext2_libc" >&5 -$as_echo "$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 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 "X$prefer_shared" = "Xyes" && 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 "X$prefer_shared" = "Xyes" && 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 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 -$as_echo_n "checking for GNU gettext in libintl... " >&6; } -if ${gt_cv_func_gnugettext2_libintl+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_gnugettext2_libintl=yes -else - gt_cv_func_gnugettext2_libintl=no -fi -rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - gt_cv_func_gnugettext2_libintl=yes - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext2_libintl" >&5 -$as_echo "$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 - -$as_echo "@%:@define ENABLE_NLS 1" >>confdefs.h - - else - USE_NLS=no - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 -$as_echo_n "checking whether to use NLS... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - if test "$USE_NLS" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 -$as_echo_n "checking where the gettext function comes from... " >&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 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 -$as_echo "$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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 -$as_echo_n "checking how to link with libintl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 -$as_echo "$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 - - -$as_echo "@%:@define HAVE_GETTEXT 1" >>confdefs.h - - -$as_echo "@%:@define HAVE_DCGETTEXT 1" >>confdefs.h - - 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=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 -$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval \${$as_ac_Header+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include <$ac_hdr> - -int -main () -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_ac_Header=yes" -else - eval "$as_ac_Header=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_ac_Header - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dir; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi -done -if ${ac_cv_search_opendir+:} false; then : - -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' x; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi -done -if ${ac_cv_search_opendir+:} false; then : - -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if ${ac_cv_header_time+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "@%:@define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - - - - for ac_header in inttypes.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" -if test "x$ac_cv_header_inttypes_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_INTTYPES_H 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 \ - stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \ - regex.h syslog.h ulimit.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_fn_c_check_header_compile "$LINENO" "sys/ptem.h" "ac_cv_header_sys_ptem_h" " -#if HAVE_SYS_STREAM_H -# include -#endif - -" -if test "x$ac_cv_header_sys_ptem_h" = xyes; then : - -fi - - - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_alloca_h=yes -else - ac_cv_working_alloca_h=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } -if test $ac_cv_working_alloca_h = yes; then - -$as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_alloca_works=yes -else - ac_cv_func_alloca_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } - -if test $ac_cv_func_alloca_works = yes; then - -$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h - -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=\${LIBOBJDIR}alloca.$ac_objext - -$as_echo "@%:@define C_ALLOCA 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - -cat >>confdefs.h <<_ACEOF -@%:@define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_c_stack_direction=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -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 () -{ - return find_stack_direction () < 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_stack_direction=1 -else - ac_cv_c_stack_direction=-1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -@%:@define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpgrp requires zero arguments" >&5 -$as_echo_n "checking whether getpgrp requires zero arguments... " >&6; } -if ${ac_cv_func_getpgrp_void+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Use it with a single arg. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -getpgrp (0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_getpgrp_void=no -else - ac_cv_func_getpgrp_void=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpgrp_void" >&5 -$as_echo "$ac_cv_func_getpgrp_void" >&6; } -if test $ac_cv_func_getpgrp_void = yes; then - -$as_echo "@%:@define GETPGRP_VOID 1" >>confdefs.h - -fi - -if ${ac_cv_func_setvbuf_reversed+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_func_setvbuf_reversed=no -fi - - -for ac_func in vprintf -do : - ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_VPRINTF 1 -_ACEOF - -ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = xyes; then : - -$as_echo "@%:@define HAVE_DOPRNT 1" >>confdefs.h - -fi - -fi -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strcoll" >&5 -$as_echo_n "checking for working strcoll... " >&6; } -if ${ac_cv_func_strcoll_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_strcoll_works=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -return (strcoll ("abc", "def") >= 0 || - strcoll ("ABC", "DEF") >= 0 || - strcoll ("123", "456") >= 0) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_strcoll_works=yes -else - ac_cv_func_strcoll_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strcoll_works" >&5 -$as_echo "$ac_cv_func_strcoll_works" >&6; } -if test $ac_cv_func_strcoll_works = yes; then - -$as_echo "@%:@define HAVE_STRCOLL 1" >>confdefs.h - -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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of vprintf in stdio.h" >&5 -$as_echo_n "checking for declaration of vprintf in stdio.h... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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* - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vprintf" >&5 -$as_echo "$ac_cv_func_vprintf" >&6; } - if test $ac_cv_func_vprintf = yes; then - $as_echo "@%:@define HAVE_VPRINTF 1" >>confdefs.h - - fi -fi - -if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then - case " $LIB@&t@OBJS " in - *" vprint.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS vprint.$ac_objext" - ;; -esac - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if ${ac_cv_type_signal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int -else - ac_cv_type_signal=void -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - - -ac_fn_c_check_func "$LINENO" "__setostype" "ac_cv_func___setostype" -if test "x$ac_cv_func___setostype" = xyes; then : - $as_echo "@%:@define HAVE_SETOSTYPE 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wait3" "ac_cv_func_wait3" -if test "x$ac_cv_func_wait3" = xyes; then : - $as_echo "@%:@define HAVE_WAIT3 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "mkfifo" "ac_cv_func_mkfifo" -if test "x$ac_cv_func_mkfifo" = xyes; then : - $as_echo "@%:@define HAVE_MKFIFO 1" >>confdefs.h - -else - $as_echo "@%:@define MKFIFO_MISSING 1" >>confdefs.h - -fi - - -for ac_func in dup2 eaccess fcntl getdtablesize getgroups gethostname \ - getpagesize getpeername getrlimit getrusage gettimeofday \ - kill killpg lstat readlink sbrk select setdtablesize \ - setitimer tcgetpgrp uname ulimit waitpid -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -ac_fn_c_check_func "$LINENO" "rename" "ac_cv_func_rename" -if test "x$ac_cv_func_rename" = xyes; then : - $as_echo "@%:@define HAVE_RENAME 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" rename.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS rename.$ac_objext" - ;; -esac - -fi - - - -for ac_func in bcopy bzero confstr faccessat fnmatch \ - getaddrinfo gethostbyname getservbyname getservent inet_aton \ - imaxdiv memmove pathconf putenv raise regcomp regexec \ - setenv setlinebuf setlocale setvbuf siginterrupt strchr \ - sysconf syslog tcgetattr times ttyname tzset unsetenv -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -for ac_func in vasprintf asprintf -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in getpwent getpwnam getpwuid -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd" -if test "x$ac_cv_func_getcwd" = xyes; then : - $as_echo "@%:@define HAVE_GETCWD 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" getcwd.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS getcwd.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "memset" "ac_cv_func_memset" -if test "x$ac_cv_func_memset" = xyes; then : - $as_echo "@%:@define HAVE_MEMSET 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" memset.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS memset.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" -if test "x$ac_cv_func_strcasecmp" = xyes; then : - $as_echo "@%:@define HAVE_STRCASECMP 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strcasecmp.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strcasecmp.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr" -if test "x$ac_cv_func_strcasestr" = xyes; then : - $as_echo "@%:@define HAVE_STRCASESTR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strcasestr.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strcasestr.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" -if test "x$ac_cv_func_strerror" = xyes; then : - $as_echo "@%:@define HAVE_STRERROR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strerror.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strerror.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" -if test "x$ac_cv_func_strftime" = xyes; then : - $as_echo "@%:@define HAVE_STRFTIME 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strftime.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strftime.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen" -if test "x$ac_cv_func_strnlen" = xyes; then : - $as_echo "@%:@define HAVE_STRNLEN 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strnlen.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strnlen.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strpbrk" "ac_cv_func_strpbrk" -if test "x$ac_cv_func_strpbrk" = xyes; then : - $as_echo "@%:@define HAVE_STRPBRK 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strpbrk.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strpbrk.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr" -if test "x$ac_cv_func_strstr" = xyes; then : - $as_echo "@%:@define HAVE_STRSTR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strstr.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strstr.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "strtod" "ac_cv_func_strtod" -if test "x$ac_cv_func_strtod" = xyes; then : - $as_echo "@%:@define HAVE_STRTOD 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtod.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtod.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" -if test "x$ac_cv_func_strtol" = xyes; then : - $as_echo "@%:@define HAVE_STRTOL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtol.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtol.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul" -if test "x$ac_cv_func_strtoul" = xyes; then : - $as_echo "@%:@define HAVE_STRTOUL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoul.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoul.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoll" "ac_cv_func_strtoll" -if test "x$ac_cv_func_strtoll" = xyes; then : - $as_echo "@%:@define HAVE_STRTOLL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoll.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoll.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoull" "ac_cv_func_strtoull" -if test "x$ac_cv_func_strtoull" = xyes; then : - $as_echo "@%:@define HAVE_STRTOULL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoull.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoull.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoimax" "ac_cv_func_strtoimax" -if test "x$ac_cv_func_strtoimax" = xyes; then : - $as_echo "@%:@define HAVE_STRTOIMAX 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoimax.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoimax.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoumax" "ac_cv_func_strtoumax" -if test "x$ac_cv_func_strtoumax" = xyes; then : - $as_echo "@%:@define HAVE_STRTOUMAX 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strtoumax.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strtoumax.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "dprintf" "ac_cv_func_dprintf" -if test "x$ac_cv_func_dprintf" = xyes; then : - $as_echo "@%:@define HAVE_DPRINTF 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" dprintf.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS dprintf.$ac_objext" - ;; -esac - -fi - - -ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul" -if test "x$ac_cv_func_strchrnul" = xyes; then : - $as_echo "@%:@define HAVE_STRCHRNUL 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" strchrnul.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS strchrnul.$ac_objext" - ;; -esac - -fi - - - -ac_fn_c_check_decl "$LINENO" "AUDIT_USER_TTY" "ac_cv_have_decl_AUDIT_USER_TTY" "#include -" -if test "x$ac_cv_have_decl_AUDIT_USER_TTY" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_AUDIT_USER_TTY $ac_have_decl -_ACEOF - - -ac_fn_c_check_decl "$LINENO" "confstr" "ac_cv_have_decl_confstr" "$ac_includes_default" -if test "x$ac_cv_have_decl_confstr" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_CONFSTR $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "printf" "ac_cv_have_decl_printf" "$ac_includes_default" -if test "x$ac_cv_have_decl_printf" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_PRINTF $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "sbrk" "ac_cv_have_decl_sbrk" "$ac_includes_default" -if test "x$ac_cv_have_decl_sbrk" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SBRK $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "setregid" "ac_cv_have_decl_setregid" "$ac_includes_default" -if test "x$ac_cv_have_decl_setregid" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SETREGID $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "strcpy" "ac_cv_have_decl_strcpy" "$ac_includes_default" -if test "x$ac_cv_have_decl_strcpy" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_STRCPY $ac_have_decl -_ACEOF - -ac_fn_c_check_decl "$LINENO" "strsignal" "ac_cv_have_decl_strsignal" "$ac_includes_default" -if test "x$ac_cv_have_decl_strsignal" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_STRSIGNAL $ac_have_decl -_ACEOF - - -ac_fn_c_check_decl "$LINENO" "strtold" "ac_cv_have_decl_strtold" "$ac_includes_default" -if test "x$ac_cv_have_decl_strtold" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_STRTOLD $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken strtold" >&5 -$as_echo_n "checking for broken strtold... " >&6; } - if ${bash_cv_strtold_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int main() { long double r; char *foo, bar; r = strtold(foo, &bar);} - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_strtold_broken=no -else - bash_cv_strtold_broken=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_strtold_broken" >&5 -$as_echo "$bash_cv_strtold_broken" >&6; } - if test "$bash_cv_strtold_broken" = "yes" ; then - $as_echo "@%:@define STRTOLD_BROKEN 1" >>confdefs.h - - fi - -fi - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoimax" >&5 -$as_echo_n "checking for declaration of strtoimax... " >&6; } -if ${bash_cv_decl_strtoimax+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoimax; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoimax=yes -else - bash_cv_decl_strtoimax=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoimax" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtol" >&5 -$as_echo_n "checking for declaration of strtol... " >&6; } -if ${bash_cv_decl_strtol+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtol; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtol=yes -else - bash_cv_decl_strtol=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtol" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoll" >&5 -$as_echo_n "checking for declaration of strtoll... " >&6; } -if ${bash_cv_decl_strtoll+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoll; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoll=yes -else - bash_cv_decl_strtoll=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoll" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoul" >&5 -$as_echo_n "checking for declaration of strtoul... " >&6; } -if ${bash_cv_decl_strtoul+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoul; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoul=yes -else - bash_cv_decl_strtoul=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoul" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoull" >&5 -$as_echo_n "checking for declaration of strtoull... " >&6; } -if ${bash_cv_decl_strtoull+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoull; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoull=yes -else - bash_cv_decl_strtoull=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoull" >&5 -$as_echo "$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 - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for declaration of strtoumax" >&5 -$as_echo_n "checking for declaration of strtoumax... " >&6; } -if ${bash_cv_decl_strtoumax+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if STDC_HEADERS -# include -#endif -#if HAVE_INTTYPES_H -# include -#endif - -int -main () -{ -return !strtoumax; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_decl_strtoumax=yes -else - bash_cv_decl_strtoumax=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_strtoumax" >&5 -$as_echo "$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_func in $ac_func_list -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 -$as_echo_n "checking for working mktime... " >&6; } -if ${ac_cv_func_working_mktime+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_working_mktime=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Test program from Paul Eggert and Tony Leneis. */ -#ifdef TIME_WITH_SYS_TIME -# include -# include -#else -# ifdef HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - -#include -#include - -#ifdef HAVE_UNISTD_H -# include -#endif - -#ifndef 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 const char *tz_strings[] = { - (const 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])) - -/* Return 0 if mktime fails to convert a date in the spring-forward gap. - Based on a problem report from Andreas Jaeger. */ -static int -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 ((char*) "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; - return mktime (&tm) != (time_t) -1; -} - -static int -mktime_test1 (time_t now) -{ - struct tm *lt; - return ! (lt = localtime (&now)) || mktime (lt) == now; -} - -static int -mktime_test (time_t now) -{ - return (mktime_test1 (now) - && mktime_test1 ((time_t) (time_t_max - now)) - && mktime_test1 ((time_t) (time_t_min + now))); -} - -static int -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); - return tm.tm_mon == 2 && tm.tm_mday == 31; -} - -static int -bigtime_test (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)))) - return 0; - } - return 1; -} - -static int -year_2050_test () -{ - /* The correct answer for 2050-02-01 00:00:00 in Pacific time, - ignoring leap seconds. */ - unsigned long int answer = 2527315200UL; - - struct tm tm; - time_t t; - tm.tm_year = 2050 - 1900; - tm.tm_mon = 2 - 1; - tm.tm_mday = 1; - tm.tm_hour = tm.tm_min = tm.tm_sec = 0; - tm.tm_isdst = -1; - - /* 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 ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); - - t = mktime (&tm); - - /* Check that the result is either a failure, or close enough - to the correct answer that we can assume the discrepancy is - due to leap seconds. */ - return (t == (time_t) -1 - || (0 < t && answer - 120 <= t && t <= answer + 120)); -} - -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 (;;) - { - t = (time_t_max << 1) + 1; - if (t <= time_t_max) - break; - time_t_max = t; - } - time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; - - delta = time_t_max / 997; /* a suitable prime number */ - for (i = 0; i < N_STRINGS; i++) - { - if (tz_strings[i]) - putenv ((char*) tz_strings[i]); - - for (t = 0; t <= time_t_max - delta; t += delta) - if (! mktime_test (t)) - return 1; - if (! (mktime_test ((time_t) 1) - && mktime_test ((time_t) (60 * 60)) - && mktime_test ((time_t) (60 * 60 * 24)))) - return 1; - - for (j = 1; ; j <<= 1) - if (! bigtime_test (j)) - return 1; - else if (INT_MAX / 2 < j) - break; - if (! bigtime_test (INT_MAX)) - return 1; - } - return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_working_mktime=yes -else - ac_cv_func_working_mktime=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_working_mktime" >&5 -$as_echo "$ac_cv_func_working_mktime" >&6; } -if test $ac_cv_func_working_mktime = no; then - case " $LIB@&t@OBJS " in - *" mktime.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS mktime.$ac_objext" - ;; -esac - -fi - - - -for ac_header in argz.h errno.h fcntl.h malloc.h stdio_ext.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_func in getpagesize -do : - ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_GETPAGESIZE 1 -_ACEOF - -fi -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if ${ac_cv_func_mmap_fixed_mapped+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_mmap_fixed_mapped=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 !defined STDC_HEADERS && !defined HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# ifdef 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; - const char *cdata2; - int i, pagesize; - int fd, fd2; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 2; - if (write (fd, data, pagesize) != pagesize) - return 3; - close (fd); - - /* Next, check that the tail of a page is zero-filled. File must have - non-zero length, otherwise we risk SIGBUS for entire page. */ - fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd2 < 0) - return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) - return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); - if (data2 == MAP_FAILED) - return 6; - for (i = 0; i < pagesize; ++i) - if (*(data2 + i)) - return 7; - close (fd2); - if (munmap (data2, pagesize)) - return 8; - - /* 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) - return 9; - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 10; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 11; - - /* 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) - return 12; - if (read (fd, data3, pagesize) != pagesize) - return 13; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 14; - close (fd); - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_mmap_fixed_mapped=yes -else - ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -$as_echo "@%:@define HAVE_MMAP 1" >>confdefs.h - -fi -rm -f conftest.mmap conftest.txt - -for ac_func in __argz_count __argz_next __argz_stringify dcgettext mempcpy \ - munmap stpcpy strcspn strdup -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_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 : - ac_fn_c_check_header_mongrel "$LINENO" "wctype.h" "ac_cv_header_wctype_h" "$ac_includes_default" -if test "x$ac_cv_header_wctype_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_WCTYPE_H 1 -_ACEOF - -fi - -done - -for ac_header in wchar.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" -if test "x$ac_cv_header_wchar_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_WCHAR_H 1 -_ACEOF - -fi - -done - -for ac_header in langinfo.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "langinfo.h" "ac_cv_header_langinfo_h" "$ac_includes_default" -if test "x$ac_cv_header_langinfo_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_LANGINFO_H 1 -_ACEOF - -fi - -done - - -ac_fn_c_check_func "$LINENO" "mbrlen" "ac_cv_func_mbrlen" -if test "x$ac_cv_func_mbrlen" = xyes; then : - $as_echo "@%:@define HAVE_MBRLEN 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbscasecmp" "ac_cv_func_mbscasecmp" -if test "x$ac_cv_func_mbscasecmp" = xyes; then : - $as_echo "@%:@define HAVE_MBSCMP 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbscmp" "ac_cv_func_mbscmp" -if test "x$ac_cv_func_mbscmp" = xyes; then : - $as_echo "@%:@define HAVE_MBSCMP 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbsnrtowcs" "ac_cv_func_mbsnrtowcs" -if test "x$ac_cv_func_mbsnrtowcs" = xyes; then : - $as_echo "@%:@define HAVE_MBSNRTOWCS 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "mbsrtowcs" "ac_cv_func_mbsrtowcs" -if test "x$ac_cv_func_mbsrtowcs" = xyes; then : - $as_echo "@%:@define HAVE_MBSRTOWCS 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "mbschr" "ac_cv_func_mbschr" -if test "x$ac_cv_func_mbschr" = xyes; then : - $as_echo "@%:@define HAVE_MBSCHR 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" mbschr.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS mbschr.$ac_objext" - ;; -esac - -fi - - - -ac_fn_c_check_func "$LINENO" "wcrtomb" "ac_cv_func_wcrtomb" -if test "x$ac_cv_func_wcrtomb" = xyes; then : - $as_echo "@%:@define HAVE_WCRTOMB 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wcscoll" "ac_cv_func_wcscoll" -if test "x$ac_cv_func_wcscoll" = xyes; then : - $as_echo "@%:@define HAVE_WCSCOLL 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wcsdup" "ac_cv_func_wcsdup" -if test "x$ac_cv_func_wcsdup" = xyes; then : - $as_echo "@%:@define HAVE_WCSDUP 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wcwidth" "ac_cv_func_wcwidth" -if test "x$ac_cv_func_wcwidth" = xyes; then : - $as_echo "@%:@define HAVE_WCWIDTH 1" >>confdefs.h - -fi - -ac_fn_c_check_func "$LINENO" "wctype" "ac_cv_func_wctype" -if test "x$ac_cv_func_wctype" = xyes; then : - $as_echo "@%:@define HAVE_WCTYPE 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "wcswidth" "ac_cv_func_wcswidth" -if test "x$ac_cv_func_wcswidth" = xyes; then : - $as_echo "@%:@define HAVE_WCSWIDTH 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" wcswidth.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS wcswidth.$ac_objext" - ;; -esac - -fi - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc and mbstate_t are properly declared" >&5 -$as_echo_n "checking whether mbrtowc and mbstate_t are properly declared... " >&6; } -if ${ac_cv_func_mbrtowc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -@%:@include -int -main () -{ -wchar_t wc; - char const s[] = ""; - size_t n = 1; - mbstate_t state; - return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_mbrtowc=yes -else - ac_cv_func_mbrtowc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mbrtowc" >&5 -$as_echo "$ac_cv_func_mbrtowc" >&6; } - if test $ac_cv_func_mbrtowc = yes; then - -$as_echo "@%:@define HAVE_MBRTOWC 1" >>confdefs.h - - fi - -if test $ac_cv_func_mbrtowc = yes; then - $as_echo "@%:@define HAVE_MBSTATE_T 1" >>confdefs.h - -fi - -for ac_func in iswlower iswupper towlower towupper iswctype -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 -$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } -if ${bash_cv_langinfo_codeset+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_langinfo_codeset=yes -else - bash_cv_langinfo_codeset=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_langinfo_codeset" >&5 -$as_echo "$bash_cv_langinfo_codeset" >&6; } -if test $bash_cv_langinfo_codeset = yes; then - $as_echo "@%:@define HAVE_LANGINFO_CODESET 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t in wchar.h" >&5 -$as_echo_n "checking for wchar_t in wchar.h... " >&6; } -if ${bash_cv_type_wchar_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ - - wchar_t foo; - foo = 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_wchar_t=yes -else - bash_cv_type_wchar_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_wchar_t" >&5 -$as_echo "$bash_cv_type_wchar_t" >&6; } -if test $bash_cv_type_wchar_t = yes; then - -$as_echo "@%:@define HAVE_WCHAR_T 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t in wctype.h" >&5 -$as_echo_n "checking for wctype_t in wctype.h... " >&6; } -if ${bash_cv_type_wctype_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - wctype_t foo; - foo = 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_wctype_t=yes -else - bash_cv_type_wctype_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_wctype_t" >&5 -$as_echo "$bash_cv_type_wctype_t" >&6; } -if test $bash_cv_type_wctype_t = yes; then - -$as_echo "@%:@define HAVE_WCTYPE_T 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t in wctype.h" >&5 -$as_echo_n "checking for wint_t in wctype.h... " >&6; } -if ${bash_cv_type_wint_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - wint_t foo; - foo = 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_wint_t=yes -else - bash_cv_type_wint_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_wint_t" >&5 -$as_echo "$bash_cv_type_wint_t" >&6; } -if test $bash_cv_type_wint_t = yes; then - -$as_echo "@%:@define HAVE_WINT_T 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wcwidth broken with unicode combining characters" >&5 -$as_echo_n "checking for wcwidth broken with unicode combining characters... " >&6; } -if ${bash_cv_wcwidth_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -#include -#include - -main(c, v) -int c; -char **v; -{ - int w; - - setlocale(LC_ALL, "en_US.UTF-8"); - w = wcwidth (0x0301); - exit (w == 0); /* exit 0 if wcwidth broken */ -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_wcwidth_broken=yes -else - bash_cv_wcwdith_broken=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wcwidth_broken" >&5 -$as_echo "$bash_cv_wcwidth_broken" >&6; } -if test "$bash_cv_wcwidth_broken" = yes; then - -$as_echo "@%:@define WCWIDTH_BROKEN 1" >>confdefs.h - -fi - -if test "$am_cv_func_iconv" = yes; then - OLDLIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - for ac_func in locale_charset -do : - ac_fn_c_check_func "$LINENO" "locale_charset" "ac_cv_func_locale_charset" -if test "x$ac_cv_func_locale_charset" = xyes; then : - cat >>confdefs.h <<_ACEOF -@%:@define HAVE_LOCALE_CHARSET 1 -_ACEOF - -fi -done - - LIBS="$OLDLIBS" -fi - - - -if test "$opt_static_link" != yes; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; 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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -fi - -ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include -/* NetBSD declares sys_siglist in unistd.h. */ -#ifdef HAVE_UNISTD_H -# include -#endif - -" -if test "x$ac_cv_have_decl_sys_siglist" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_SYS_SIGLIST $ac_have_decl -_ACEOF - - - -if test "$ac_cv_func_inet_aton" != 'yes'; then - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 -$as_echo_n "checking for inet_aton... " >&6; } -if ${bash_cv_func_inet_aton+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -struct in_addr ap; -int -main () -{ - inet_aton("127.0.0.1", &ap); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_func_inet_aton=yes -else - bash_cv_func_inet_aton=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_inet_aton" >&5 -$as_echo "$bash_cv_func_inet_aton" >&6; } -if test $bash_cv_func_inet_aton = yes; then - $as_echo "@%:@define HAVE_INET_ATON 1" >>confdefs.h - -else - case " $LIB@&t@OBJS " in - *" inet_aton.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS inet_aton.$ac_objext" - ;; -esac - -fi - -fi - -case "$host_os" in -irix4*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpwent in -lsun" >&5 -$as_echo_n "checking for getpwent in -lsun... " >&6; } -if ${ac_cv_lib_sun_getpwent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsun $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char getpwent (); -int -main () -{ -return getpwent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_sun_getpwent=yes -else - ac_cv_lib_sun_getpwent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sun_getpwent" >&5 -$as_echo "$ac_cv_lib_sun_getpwent" >&6; } -if test "x$ac_cv_lib_sun_getpwent" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket library" >&5 -$as_echo_n "checking for socket library... " >&6; } -_bash_needmsg=yes -fi -if ${bash_cv_have_socklib+:} false; then : - $as_echo_n "(cached) " >&6 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpeername in -lsocket" >&5 -$as_echo_n "checking for getpeername in -lsocket... " >&6; } -if ${ac_cv_lib_socket_getpeername+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket -lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char getpeername (); -int -main () -{ -return getpeername (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_socket_getpeername=yes -else - ac_cv_lib_socket_getpeername=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_getpeername" >&5 -$as_echo "$ac_cv_lib_socket_getpeername" >&6; } -if test "x$ac_cv_lib_socket_getpeername" = xyes; then : - bash_cv_have_socklib=yes -else - bash_cv_have_socklib=no -fi - -fi - -if test "X$_bash_needmsg" = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_socklib" >&5 -$as_echo "$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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnsl" >&5 -$as_echo_n "checking for libnsl... " >&6; } - _bash_needmsg=yes - fi - if ${bash_cv_have_libnsl+:} false; then : - $as_echo_n "(cached) " >&6 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for t_open in -lnsl" >&5 -$as_echo_n "checking for t_open in -lnsl... " >&6; } -if ${ac_cv_lib_nsl_t_open+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char t_open (); -int -main () -{ -return t_open (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nsl_t_open=yes -else - ac_cv_lib_nsl_t_open=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_t_open" >&5 -$as_echo "$ac_cv_lib_nsl_t_open" >&6; } -if test "x$ac_cv_lib_nsl_t_open" = xyes; then : - bash_cv_have_libnsl=yes -else - bash_cv_have_libnsl=no -fi - -fi - - if test "X$_bash_needmsg" = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_libnsl" >&5 -$as_echo "$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 - $as_echo "@%:@define HAVE_LIBSOCKET 1" >>confdefs.h - - $as_echo "@%:@define HAVE_GETPEERNAME 1" >>confdefs.h - -fi - -fi -if test "$ac_cv_func_gethostbyname" = no; then - if test "X$bash_cv_have_gethostbyname" = "X"; then -_bash_needmsg=yes -else -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in socket library" >&5 -$as_echo_n "checking for gethostbyname in socket library... " >&6; } -_bash_needmsg= -fi -if ${bash_cv_have_gethostbyname+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - struct hostent *hp; - hp = gethostbyname("localhost"); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_have_gethostbyname=yes -else - bash_cv_have_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - -if test "X$_bash_needmsg" = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in socket library" >&5 -$as_echo_n "checking for gethostbyname in socket library... " >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_gethostbyname" >&5 -$as_echo "$bash_cv_have_gethostbyname" >&6; } -if test "$bash_cv_have_gethostbyname" = yes; then -$as_echo "@%:@define HAVE_GETHOSTBYNAME 1" >>confdefs.h - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if ${ac_cv_type_uid_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then - -$as_echo "@%:@define uid_t int" >>confdefs.h - - -$as_echo "@%:@define gid_t int" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking type of array argument to getgroups" >&5 -$as_echo_n "checking type of array argument to getgroups... " >&6; } -if ${ac_cv_type_getgroups+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_type_getgroups=cross -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Thanks to Mike Rendell for this test. */ -$ac_includes_default -#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 int 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 int but getgroups modifies an array - of ints. */ - return n > 0 && gidset[n] != val.gval; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_type_getgroups=gid_t -else - ac_cv_type_getgroups=int -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -if test $ac_cv_type_getgroups = cross; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_getgroups" >&5 -$as_echo "$ac_cv_type_getgroups" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define GETGROUPS_T $ac_cv_type_getgroups -_ACEOF - - -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define off_t long int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" -if test "x$ac_cv_type_mode_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define mode_t int -_ACEOF - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if ${ac_cv_type_uid_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then - -$as_echo "@%:@define uid_t int" >>confdefs.h - - -$as_echo "@%:@define gid_t int" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -if test "x$ac_cv_type_pid_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define pid_t int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define size_t unsigned int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" -if test "x$ac_cv_type_ssize_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ssize_t int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "time_t" "ac_cv_type_time_t" "$ac_includes_default" -if test "x$ac_cv_type_time_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define time_t long -_ACEOF - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long" >&5 -$as_echo_n "checking for long long... " >&6; } -if ${bash_cv_type_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_type_long_long='long long' -else - bash_cv_type_long_long='long' -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_long_long" >&5 -$as_echo "$bash_cv_type_long_long" >&6; } -if test "$bash_cv_type_long_long" = 'long long'; then - $as_echo "@%:@define HAVE_LONG_LONG 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long" >&5 -$as_echo_n "checking for unsigned long long... " >&6; } -if ${bash_cv_type_unsigned_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_type_unsigned_long_long='unsigned long long' -else - bash_cv_type_unsigned_long_long='unsigned long' -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_unsigned_long_long" >&5 -$as_echo "$bash_cv_type_unsigned_long_long" >&6; } -if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then - $as_echo "@%:@define HAVE_UNSIGNED_LONG_LONG 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if ${ac_cv_type_signal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int -else - ac_cv_type_signal=void -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sig_atomic_t in signal.h" >&5 -$as_echo_n "checking for sig_atomic_t in signal.h... " >&6; } -if ${ac_cv_have_sig_atomic_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ - sig_atomic_t x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_have_sig_atomic_t=yes -else - ac_cv_have_sig_atomic_t=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_sig_atomic_t" >&5 -$as_echo "$ac_cv_have_sig_atomic_t" >&6; } -if test "$ac_cv_have_sig_atomic_t" = "no" -then - ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "$ac_includes_default" -if test "x$ac_cv_type_sig_atomic_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define sig_atomic_t int -_ACEOF - -fi - -fi - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 -$as_echo_n "checking size of char... " >&6; } -if ${ac_cv_sizeof_char+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_char" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (char) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_char=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 -$as_echo "$ac_cv_sizeof_char" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_CHAR $ac_cv_sizeof_char -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if ${ac_cv_sizeof_short+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_short=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if ${ac_cv_sizeof_int+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if ${ac_cv_sizeof_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char *" >&5 -$as_echo_n "checking size of char *... " >&6; } -if ${ac_cv_sizeof_char_p+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char *))" "ac_cv_sizeof_char_p" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_char_p" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (char *) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_char_p=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char_p" >&5 -$as_echo "$ac_cv_sizeof_char_p" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_CHAR_P $ac_cv_sizeof_char_p -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 -$as_echo_n "checking size of double... " >&6; } -if ${ac_cv_sizeof_double+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_double" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (double) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_double=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 -$as_echo "$ac_cv_sizeof_double" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_DOUBLE $ac_cv_sizeof_double -_ACEOF - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if ${ac_cv_sizeof_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF - - - -ac_fn_c_check_type "$LINENO" "u_int" "ac_cv_type_u_int" "$ac_includes_default" -if test "x$ac_cv_type_u_int" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_int unsigned int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "u_long" "ac_cv_type_u_long" "$ac_includes_default" -if test "x$ac_cv_type_u_long" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_long unsigned long -_ACEOF - -fi - - - -if test "$ac_cv_sizeof_short" = 2; then - ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits16_t short -_ACEOF - -fi - -elif test "$ac_cv_sizeof_char" = 2; then - ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits16_t char -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits16_t short -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_short" = 2; then - ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits16_t unsigned short -_ACEOF - -fi - -elif test "$ac_cv_sizeof_char" = 2; then - ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits16_t unsigned char -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits16_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits16_t unsigned short -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_int" = 4; then - ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits32_t int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 4; then - ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits32_t long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits32_t int -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_int" = 4; then - ac_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits32_t unsigned int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 4; then - ac_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits32_t unsigned long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default" -if test "x$ac_cv_type_u_bits32_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define u_bits32_t unsigned int -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_char_p" = 8; then - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits64_t char * -_ACEOF - -fi - -elif test "$ac_cv_sizeof_double" = 8; then - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; 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 - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits64_t long long -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 8; then - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define bits64_t long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default" -if test "x$ac_cv_type_bits64_t" = xyes; 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 - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ptrdiff_t int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; 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 - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ptrdiff_t long long -_ACEOF - -fi - -else - ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" -if test "x$ac_cv_type_ptrdiff_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -@%:@define ptrdiff_t int -_ACEOF - -fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 -$as_echo_n "checking whether stat file-mode macros are broken... " >&6; } -if ${ac_cv_header_stat_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -#if defined S_ISBLK && defined S_IFDIR -extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; -#endif - -#if defined S_ISBLK && defined S_IFCHR -extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; -#endif - -#if defined S_ISLNK && defined S_IFREG -extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; -#endif - -#if defined S_ISSOCK && defined S_IFREG -extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stat_broken=no -else - ac_cv_header_stat_broken=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 -$as_echo "$ac_cv_header_stat_broken" >&6; } -if test $ac_cv_header_stat_broken = yes; then - -$as_echo "@%:@define STAT_MACROS_BROKEN 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether @%:@! works in shell scripts" >&5 -$as_echo_n "checking whether @%:@! works in shell scripts... " >&6; } -if ${ac_cv_sys_interpreter+:} false; then : - $as_echo_n "(cached) " >&6 -else - echo '#! /bin/cat -exit 69 -' >conftest -chmod u+x conftest -(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) -if test $? -ne 69; then - ac_cv_sys_interpreter=yes -else - ac_cv_sys_interpreter=no -fi -rm -f conftest -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_interpreter" >&5 -$as_echo "$ac_cv_sys_interpreter" >&6; } -interpval=$ac_cv_sys_interpreter - -if test $ac_cv_sys_interpreter = yes; then -$as_echo "@%:@define HAVE_HASH_BANG_EXEC 1" >>confdefs.h - -fi - -if test "$ac_cv_func_lstat" = "no"; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lstat" >&5 -$as_echo_n "checking for lstat... " >&6; } -if ${bash_cv_func_lstat+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - lstat(".",(struct stat *)0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_func_lstat=yes -else - bash_cv_func_lstat=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_lstat" >&5 -$as_echo "$bash_cv_func_lstat" >&6; } -if test $bash_cv_func_lstat = yes; then - $as_echo "@%:@define HAVE_LSTAT 1" >>confdefs.h - -fi - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the ctype macros accept non-ascii characters" >&5 -$as_echo_n "checking whether the ctype macros accept non-ascii characters... " >&6; } -if ${bash_cv_func_ctype_nonascii+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&2;} - bash_cv_func_ctype_nonascii=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_ctype_nonascii=yes -else - bash_cv_func_ctype_nonascii=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_ctype_nonascii" >&5 -$as_echo "$bash_cv_func_ctype_nonascii" >&6; } -if test $bash_cv_func_ctype_nonascii = yes; then -$as_echo "@%:@define CTYPE_NON_ASCII 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if dup2 fails to clear the close-on-exec flag" >&5 -$as_echo_n "checking if dup2 fails to clear the close-on-exec flag... " >&6; } -if ${bash_cv_dup2_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&2;} - bash_cv_dup2_broken=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_dup2_broken=yes -else - bash_cv_dup2_broken=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dup2_broken" >&5 -$as_echo "$bash_cv_dup2_broken" >&6; } -if test $bash_cv_dup2_broken = yes; then -$as_echo "@%:@define DUP2_BROKEN 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pgrps need synchronization" >&5 -$as_echo_n "checking whether pgrps need synchronization... " >&6; } -if ${bash_cv_pgrp_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&2;} - bash_cv_pgrp_pipe=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_pgrp_pipe=no -else - bash_cv_pgrp_pipe=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_pgrp_pipe" >&5 -$as_echo "$bash_cv_pgrp_pipe" >&6; } -if test $bash_cv_pgrp_pipe = yes; then -$as_echo "@%:@define PGRP_PIPE 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of signal functions" >&5 -$as_echo_n "checking for type of signal functions... " >&6; } -if ${bash_cv_signal_vintage+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_signal_vintage=posix -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - int mask = sigmask(SIGINT); - sigsetmask(mask); sigblock(mask); sigpause(mask); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_signal_vintage=4.2bsd -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - RETSIGTYPE foo() { } -int -main () -{ - - int mask = sigmask(SIGINT); - sigset(SIGINT, foo); sigrelse(SIGINT); - sighold(SIGINT); sigpause(SIGINT); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_signal_vintage=svr3 -else - bash_cv_signal_vintage=v7 - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_signal_vintage" >&5 -$as_echo "$bash_cv_signal_vintage" >&6; } -if test "$bash_cv_signal_vintage" = posix; then -$as_echo "@%:@define HAVE_POSIX_SIGNALS 1" >>confdefs.h - -elif test "$bash_cv_signal_vintage" = "4.2bsd"; then -$as_echo "@%:@define HAVE_BSD_SIGNALS 1" >>confdefs.h - -elif test "$bash_cv_signal_vintage" = svr3; then -$as_echo "@%:@define HAVE_USG_SIGHOLD 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys_errlist and sys_nerr" >&5 -$as_echo_n "checking for sys_errlist and sys_nerr... " >&6; } -if ${bash_cv_sys_errlist+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -extern char *sys_errlist[]; - extern int sys_nerr; - char *msg = sys_errlist[sys_nerr - 1]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_sys_errlist=yes -else - bash_cv_sys_errlist=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_errlist" >&5 -$as_echo "$bash_cv_sys_errlist" >&6; } -if test $bash_cv_sys_errlist = yes; then -$as_echo "@%:@define HAVE_SYS_ERRLIST 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys_siglist in system C library" >&5 -$as_echo_n "checking for sys_siglist in system C library... " >&6; } -if ${bash_cv_sys_siglist+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&2;} - bash_cv_sys_siglist=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#if !HAVE_DECL_SYS_SIGLIST -extern char *sys_siglist[]; -#endif -main() -{ -char *msg = sys_siglist[2]; -exit(msg == 0); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_sys_siglist=yes -else - bash_cv_sys_siglist=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_siglist" >&5 -$as_echo "$bash_cv_sys_siglist" >&6; } -if test $bash_cv_sys_siglist = yes; then -$as_echo "@%:@define HAVE_SYS_SIGLIST 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sys_siglist in signal.h or unistd.h" >&5 -$as_echo_n "checking for _sys_siglist in signal.h or unistd.h... " >&6; } -if ${bash_cv_decl_under_sys_siglist+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -int -main () -{ - char *msg = _sys_siglist[2]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_decl_under_sys_siglist=yes -else - bash_cv_decl_under_sys_siglist=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_decl_under_sys_siglist" >&5 -$as_echo "$bash_cv_decl_under_sys_siglist" >&6; } -if test $bash_cv_decl_under_sys_siglist = yes; then -$as_echo "@%:@define UNDER_SYS_SIGLIST_DECLARED 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _sys_siglist in system C library" >&5 -$as_echo_n "checking for _sys_siglist in system C library... " >&6; } -if ${bash_cv_under_sys_siglist+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&2;} - bash_cv_under_sys_siglist=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_under_sys_siglist=yes -else - bash_cv_under_sys_siglist=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_under_sys_siglist" >&5 -$as_echo "$bash_cv_under_sys_siglist" >&6; } -if test $bash_cv_under_sys_siglist = yes; then -$as_echo "@%:@define HAVE_UNDER_SYS_SIGLIST 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether signal handlers are of type void" >&5 -$as_echo_n "checking whether signal handlers are of type void... " >&6; } -if ${bash_cv_void_sighandler+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#ifdef signal -#undef signal -#endif -#ifdef __cplusplus -extern "C" -#endif -void (*signal ()) (); -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_void_sighandler=yes -else - bash_cv_void_sighandler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_void_sighandler" >&5 -$as_echo "$bash_cv_void_sighandler" >&6; } -if test $bash_cv_void_sighandler = yes; then -$as_echo "@%:@define VOID_SIGHANDLER 1" >>confdefs.h - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_t" >&5 -$as_echo_n "checking for clock_t... " >&6; } -if ${bash_cv_type_clock_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_clock_t" >&5 -$as_echo "$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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigset_t" >&5 -$as_echo_n "checking for sigset_t... " >&6; } -if ${bash_cv_type_sigset_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_sigset_t" >&5 -$as_echo "$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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sig_atomic_t" >&5 -$as_echo_n "checking for sig_atomic_t... " >&6; } -if ${bash_cv_type_sig_atomic_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_H -#include -#endif -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sig_atomic_t" >/dev/null 2>&1; then : - bash_cv_type_sig_atomic_t=yes -else - bash_cv_type_sig_atomic_t=no -fi -rm -f conftest* - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_sig_atomic_t" >&5 -$as_echo "$bash_cv_type_sig_atomic_t" >&6; } - -if test $bash_cv_type_sig_atomic_t = no; then - cat >>confdefs.h <<_ACEOF -@%:@define sig_atomic_t int -_ACEOF - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for quad_t" >&5 -$as_echo_n "checking for quad_t... " >&6; } -if ${bash_cv_type_quad_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_quad_t" >&5 -$as_echo "$bash_cv_type_quad_t" >&6; } -if test $bash_cv_type_quad_t = yes; then - $as_echo "@%:@define HAVE_QUAD_T 1" >>confdefs.h - - fi -if test $bash_cv_type_quad_t = no; then - cat >>confdefs.h <<_ACEOF -@%:@define quad_t long -_ACEOF - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 -$as_echo_n "checking for intmax_t... " >&6; } -if ${bash_cv_type_intmax_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_intmax_t" >&5 -$as_echo "$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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uintmax_t" >&5 -$as_echo_n "checking for uintmax_t... " >&6; } -if ${bash_cv_type_uintmax_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_uintmax_t" >&5 -$as_echo "$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 - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5 -$as_echo_n "checking for socklen_t... " >&6; } -if ${bash_cv_type_socklen_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if STDC_HEADERS -#include -#include -#endif -#if HAVE_INTTYPES_H -#include -#endif -#if HAVE_STDINT_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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_socklen_t" >&5 -$as_echo "$bash_cv_type_socklen_t" >&6; } -if test $bash_cv_type_socklen_t = yes; then - $as_echo "@%:@define HAVE_SOCKLEN_T 1" >>confdefs.h - - fi -if test $bash_cv_type_socklen_t = no; then - cat >>confdefs.h <<_ACEOF -@%:@define socklen_t int -_ACEOF - -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for size and type of struct rlimit fields" >&5 -$as_echo_n "checking for size and type of struct rlimit fields... " >&6; } -if ${bash_cv_type_rlimit+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -rlim_t xxx; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_type_rlimit=rlim_t -else - -if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&5 -$as_echo "$as_me: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&2;} - bash_cv_type_rlimit=long -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_type_rlimit=quad_t -else - bash_cv_type_rlimit=long -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_rlimit" >&5 -$as_echo "$bash_cv_type_rlimit" >&6; } -if test $bash_cv_type_rlimit = quad_t; then -$as_echo "@%:@define RLIMTYPE quad_t" >>confdefs.h - -elif test $bash_cv_type_rlimit = rlim_t; then -$as_echo "@%:@define RLIMTYPE rlim_t" >>confdefs.h - -fi - - -# The cast to long int 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. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of intmax_t" >&5 -$as_echo_n "checking size of intmax_t... " >&6; } -if ${ac_cv_sizeof_intmax_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (intmax_t))" "ac_cv_sizeof_intmax_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_intmax_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (intmax_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_intmax_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_intmax_t" >&5 -$as_echo "$ac_cv_sizeof_intmax_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_INTMAX_T $ac_cv_sizeof_intmax_t -_ACEOF - - - - -ac_fn_c_check_member "$LINENO" "struct termios" "c_line" "ac_cv_member_struct_termios_c_line" " -#include -#include - -" -if test "x$ac_cv_member_struct_termios_c_line" = xyes; then : - $as_echo "@%:@define TERMIOS_LDISC 1" >>confdefs.h - -fi - - - -ac_fn_c_check_member "$LINENO" "struct termio" "c_line" "ac_cv_member_struct_termio_c_line" " -#include -#include - -" -if test "x$ac_cv_member_struct_termio_c_line" = xyes; then : - $as_echo "@%:@define TERMIO_LDISC 1" >>confdefs.h - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_ino" >&5 -$as_echo_n "checking for struct dirent.d_ino... " >&6; } -if ${bash_cv_dirent_has_dino+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_dirent_has_dino=yes -else - bash_cv_dirent_has_dino=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dirent_has_dino" >&5 -$as_echo "$bash_cv_dirent_has_dino" >&6; } -if test $bash_cv_dirent_has_dino = yes; then -$as_echo "@%:@define HAVE_STRUCT_DIRENT_D_INO 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_fileno" >&5 -$as_echo_n "checking for struct dirent.d_fileno... " >&6; } -if ${bash_cv_dirent_has_d_fileno+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_dirent_has_d_fileno=yes -else - bash_cv_dirent_has_d_fileno=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dirent_has_d_fileno" >&5 -$as_echo "$bash_cv_dirent_has_d_fileno" >&6; } -if test $bash_cv_dirent_has_d_fileno = yes; then -$as_echo "@%:@define HAVE_STRUCT_DIRENT_D_FILENO 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_namlen" >&5 -$as_echo_n "checking for struct dirent.d_namlen... " >&6; } -if ${bash_cv_dirent_has_d_namlen+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_dirent_has_d_namlen=yes -else - bash_cv_dirent_has_d_namlen=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dirent_has_d_namlen" >&5 -$as_echo "$bash_cv_dirent_has_d_namlen" >&6; } -if test $bash_cv_dirent_has_d_namlen = yes; then -$as_echo "@%:@define HAVE_STRUCT_DIRENT_D_NAMLEN 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct winsize in sys/ioctl.h and termios.h" >&5 -$as_echo_n "checking for struct winsize in sys/ioctl.h and termios.h... " >&6; } -if ${bash_cv_struct_winsize_header+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -struct winsize x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_struct_winsize_header=ioctl_h -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -struct winsize x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_struct_winsize_header=termios_h -else - bash_cv_struct_winsize_header=other -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if test $bash_cv_struct_winsize_header = ioctl_h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sys/ioctl.h" >&5 -$as_echo "sys/ioctl.h" >&6; } - $as_echo "@%:@define STRUCT_WINSIZE_IN_SYS_IOCTL 1" >>confdefs.h - -elif test $bash_cv_struct_winsize_header = termios_h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: termios.h" >&5 -$as_echo "termios.h" >&6; } - $as_echo "@%:@define STRUCT_WINSIZE_IN_TERMIOS 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval in sys/time.h and time.h" >&5 -$as_echo_n "checking for struct timeval in sys/time.h and time.h... " >&6; } -if ${bash_cv_struct_timeval+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_struct_timeval" >&5 -$as_echo "$bash_cv_struct_timeval" >&6; } -if test $bash_cv_struct_timeval = yes; then - $as_echo "@%:@define HAVE_TIMEVAL 1" >>confdefs.h - -fi - -ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_BLOCKS 1 -_ACEOF - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if ${ac_cv_struct_tm+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -struct tm tm; - int *p = &tm.tm_sec; - return !p; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_tm=time.h -else - ac_cv_struct_tm=sys/time.h -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -$as_echo "$ac_cv_struct_tm" >&6; } -if test $ac_cv_struct_tm = sys/time.h; then - -$as_echo "@%:@define TM_IN_SYS_TIME 1" >>confdefs.h - -fi - -ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include -#include <$ac_cv_struct_tm> - -" -if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; 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 - -$as_echo "@%:@define HAVE_TM_ZONE 1" >>confdefs.h - -else - ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include -" -if test "x$ac_cv_have_decl_tzname" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_TZNAME $ac_have_decl -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 -$as_echo_n "checking for tzname... " >&6; } -if ${ac_cv_var_tzname+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if !HAVE_DECL_TZNAME -extern char *tzname[]; -#endif - -int -main () -{ -return tzname[0][0]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_var_tzname=yes -else - ac_cv_var_tzname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 -$as_echo "$ac_cv_var_tzname" >&6; } - if test $ac_cv_var_tzname = yes; then - -$as_echo "@%:@define HAVE_TZNAME 1" >>confdefs.h - - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timezone in sys/time.h and time.h" >&5 -$as_echo_n "checking for struct timezone in sys/time.h and time.h... " >&6; } -if ${bash_cv_struct_timezone+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_struct_timezone" >&5 -$as_echo "$bash_cv_struct_timezone" >&6; } -if test $bash_cv_struct_timezone = yes; then - $as_echo "@%:@define HAVE_STRUCT_TIMEZONE 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for offset of exit status in return status from wait" >&5 -$as_echo_n "checking for offset of exit status in return status from wait... " >&6; } -if ${bash_cv_wexitstatus_offset+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&5 -$as_echo "$as_me: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&2;} - bash_cv_wexitstatus_offset=0 - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -#include - -main(c, v) - int c; - char **v; -{ - pid_t pid, p; - int s, i, n; - - s = 0; - pid = fork(); - if (pid == 0) - exit (42); - - /* wait for the process */ - p = wait(&s); - if (p != pid) - exit (255); - - /* crack s */ - for (i = 0; i < (sizeof(s) - 8); i++) - { - n = (s >> i) & 0xff; - if (n == 42) - exit (i); - } - - exit (254); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_wexitstatus_offset=0 -else - bash_cv_wexitstatus_offset=$? -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -if test "$bash_cv_wexitstatus_offset" -gt 32 ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: bad exit status from test program -- defaulting to 0" >&5 -$as_echo "$as_me: WARNING: bad exit status from test program -- defaulting to 0" >&2;} - bash_cv_wexitstatus_offset=0 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wexitstatus_offset" >&5 -$as_echo "$bash_cv_wexitstatus_offset" >&6; } - -cat >>confdefs.h <<_ACEOF -@%:@define WEXITSTATUS_OFFSET $bash_cv_wexitstatus_offset -_ACEOF - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 -$as_echo_n "checking for struct timespec in ... " >&6; } -if ${bash_cv_sys_struct_timespec_in_time_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -static struct timespec x; x.tv_sec = x.tv_nsec; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_sys_struct_timespec_in_time_h=yes -else - bash_cv_sys_struct_timespec_in_time_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_struct_timespec_in_time_h" >&5 -$as_echo "$bash_cv_sys_struct_timespec_in_time_h" >&6; } - - HAVE_STRUCT_TIMESPEC=0 - TIME_H_DEFINES_STRUCT_TIMESPEC=0 - SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 - PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 - if test $bash_cv_sys_struct_timespec_in_time_h = yes; then - $as_echo "@%:@define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h - - $as_echo "@%:@define TIME_H_DEFINES_STRUCT_TIMESPEC 1" >>confdefs.h - - TIME_H_DEFINES_STRUCT_TIMESPEC=1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 -$as_echo_n "checking for struct timespec in ... " >&6; } -if ${bash_cv_sys_struct_timespec_in_sys_time_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -static struct timespec x; x.tv_sec = x.tv_nsec; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_sys_struct_timespec_in_sys_time_h=yes -else - bash_cv_sys_struct_timespec_in_sys_time_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_struct_timespec_in_sys_time_h" >&5 -$as_echo "$bash_cv_sys_struct_timespec_in_sys_time_h" >&6; } - if test $bash_cv_sys_struct_timespec_in_sys_time_h = yes; then - SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 - $as_echo "@%:@define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h - - $as_echo "@%:@define SYS_TIME_H_DEFINES_STRUCT_TIMESPEC 1" >>confdefs.h - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 -$as_echo_n "checking for struct timespec in ... " >&6; } -if ${bash_cv_sys_struct_timespec_in_pthread_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -static struct timespec x; x.tv_sec = x.tv_nsec; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_sys_struct_timespec_in_pthread_h=yes -else - bash_cv_sys_struct_timespec_in_pthread_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_struct_timespec_in_pthread_h" >&5 -$as_echo "$bash_cv_sys_struct_timespec_in_pthread_h" >&6; } - if test $bash_cv_sys_struct_timespec_in_pthread_h = yes; then - PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 - $as_echo "@%:@define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h - - $as_echo "@%:@define PTHREAD_H_DEFINES_STRUCT_TIMESPEC 1" >>confdefs.h - - fi - fi - fi - - - - - - - - - - ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 -_ACEOF - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5 -$as_echo_n "checking whether struct stat.st_atim is of type struct timespec... " >&6; } -if ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - #if HAVE_SYS_TIME_H - # include - #endif - #include - struct timespec ts; - struct stat st; - -int -main () -{ - - st.st_atim = ts; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes -else - ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 -$as_echo "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; } - if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then - -$as_echo "@%:@define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h - - fi -else - ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1 -_ACEOF - - -else - ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIMENSEC 1 -_ACEOF - - -else - ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes; then : - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1 -_ACEOF - - -fi - -fi - -fi - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the existence of strsignal" >&5 -$as_echo_n "checking for the existence of strsignal... " >&6; } -if ${bash_cv_have_strsignal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -char *s = (char *)strsignal(2); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_have_strsignal=yes -else - bash_cv_have_strsignal=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_strsignal" >&5 -$as_echo "$bash_cv_have_strsignal" >&6; } -if test $bash_cv_have_strsignal = yes; then -$as_echo "@%:@define HAVE_STRSIGNAL 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if opendir() opens non-directories" >&5 -$as_echo_n "checking if opendir() opens non-directories... " >&6; } -if ${bash_cv_opendir_not_robust+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&2;} - bash_cv_opendir_not_robust=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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("bash-aclocal", 0700); -if (err < 0) { - perror("mkdir"); - exit(1); -} -unlink("bash-aclocal/not_a_directory"); -fd = open("bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666); -write(fd, "\n", 1); -close(fd); -dir = opendir("bash-aclocal/not_a_directory"); -unlink("bash-aclocal/not_a_directory"); -rmdir("bash-aclocal"); -exit (dir == 0); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_opendir_not_robust=yes -else - bash_cv_opendir_not_robust=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_opendir_not_robust" >&5 -$as_echo "$bash_cv_opendir_not_robust" >&6; } -if test $bash_cv_opendir_not_robust = yes; then -$as_echo "@%:@define OPENDIR_NOT_ROBUST 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ulimit can substitute for getdtablesize" >&5 -$as_echo_n "checking whether ulimit can substitute for getdtablesize... " >&6; } -if ${bash_cv_ulimit_maxfds+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&2;} - bash_cv_ulimit_maxfds=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -main() -{ -long maxfds = ulimit(4, 0L); -exit (maxfds == -1L); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_ulimit_maxfds=yes -else - bash_cv_ulimit_maxfds=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_ulimit_maxfds" >&5 -$as_echo "$bash_cv_ulimit_maxfds" >&6; } -if test $bash_cv_ulimit_maxfds = yes; then -$as_echo "@%:@define ULIMIT_MAXFDS 1" >>confdefs.h - -fi - - - - - - - - - ac_fn_c_check_decl "$LINENO" "fpurge" "ac_cv_have_decl_fpurge" "#include -" -if test "x$ac_cv_have_decl_fpurge" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_DECL_FPURGE $ac_have_decl -_ACEOF - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if getenv can be redefined" >&5 -$as_echo_n "checking to see if getenv can be redefined... " >&6; } -if ${bash_cv_getenv_redef+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&5 -$as_echo "$as_me: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&2;} - bash_cv_getenv_redef=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_getenv_redef=yes -else - bash_cv_getenv_redef=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_getenv_redef" >&5 -$as_echo "$bash_cv_getenv_redef" >&6; } -if test $bash_cv_getenv_redef = yes; then -$as_echo "@%:@define CAN_REDEFINE_GETENV 1" >>confdefs.h - -fi - -if test "$ac_cv_func_getcwd" = "yes"; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if getcwd() will dynamically allocate memory with 0 size" >&5 -$as_echo_n "checking if getcwd() will dynamically allocate memory with 0 size... " >&6; } -if ${bash_cv_getcwd_malloc+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&2;} - bash_cv_getcwd_malloc=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -main() -{ - char *xpwd; - xpwd = getcwd(0, 0); - exit (xpwd == 0); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_getcwd_malloc=yes -else - bash_cv_getcwd_malloc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_getcwd_malloc" >&5 -$as_echo "$bash_cv_getcwd_malloc" >&6; } -if test $bash_cv_getcwd_malloc = no; then -$as_echo "@%:@define GETCWD_BROKEN 1" >>confdefs.h - -case " $LIB@&t@OBJS " in - *" getcwd.$ac_objext "* ) ;; - *) LIB@&t@OBJS="$LIB@&t@OBJS getcwd.$ac_objext" - ;; -esac - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5 -$as_echo_n "checking for presence of POSIX-style sigsetjmp/siglongjmp... " >&6; } -if ${bash_cv_func_sigsetjmp+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5 -$as_echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;} - bash_cv_func_sigsetjmp=missing - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_sigsetjmp=present -else - bash_cv_func_sigsetjmp=missing -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_sigsetjmp" >&5 -$as_echo "$bash_cv_func_sigsetjmp" >&6; } -if test $bash_cv_func_sigsetjmp = present; then -$as_echo "@%:@define HAVE_POSIX_SIGSETJMP 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether or not strcoll and strcmp differ" >&5 -$as_echo_n "checking whether or not strcoll and strcmp differ... " >&6; } -if ${bash_cv_func_strcoll_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;} - bash_cv_func_strcoll_broken=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_strcoll_broken=yes -else - bash_cv_func_strcoll_broken=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_strcoll_broken" >&5 -$as_echo "$bash_cv_func_strcoll_broken" >&6; } -if test $bash_cv_func_strcoll_broken = yes; then -$as_echo "@%:@define STRCOLL_BROKEN 1" >>confdefs.h - -fi - - - - - - if test X$ac_cv_func_snprintf = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant snprintf" >&5 -$as_echo_n "checking for standard-conformant snprintf... " >&6; } -if ${bash_cv_func_snprintf+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check standard snprintf if cross-compiling" >&5 -$as_echo "$as_me: WARNING: cannot check standard snprintf if cross-compiling" >&2;} - bash_cv_func_snprintf=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -main() -{ - int n; - n = snprintf (0, 0, "%s", "0123456"); - exit(n != 7); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_snprintf=yes -else - bash_cv_func_snprintf=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_snprintf" >&5 -$as_echo "$bash_cv_func_snprintf" >&6; } - if test $bash_cv_func_snprintf = no; then - ac_cv_func_snprintf=no - fi - fi - if test $ac_cv_func_snprintf = no; then - -$as_echo "@%:@define HAVE_SNPRINTF 0" >>confdefs.h - - fi - - - - - - if test X$ac_cv_func_vsnprintf = Xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant vsnprintf" >&5 -$as_echo_n "checking for standard-conformant vsnprintf... " >&6; } -if ${bash_cv_func_vsnprintf+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check standard vsnprintf if cross-compiling" >&5 -$as_echo "$as_me: WARNING: cannot check standard vsnprintf if cross-compiling" >&2;} - bash_cv_func_vsnprintf=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if HAVE_STDARG_H -#include -#else -#include -#endif -#include -#include - -static int -#if HAVE_STDARG_H -foo(const char *fmt, ...) -#else -foo(format, va_alist) - const char *format; - va_dcl -#endif -{ - va_list args; - int n; - -#if HAVE_STDARG_H - va_start(args, fmt); -#else - va_start(args); -#endif - n = vsnprintf(0, 0, fmt, args); - va_end (args); - return n; -} - -main() -{ - int n; - n = foo("%s", "0123456"); - exit(n != 7); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_func_vsnprintf=yes -else - bash_cv_func_vsnprintf=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_vsnprintf" >&5 -$as_echo "$bash_cv_func_vsnprintf" >&6; } - if test $bash_cv_func_vsnprintf = no; then - ac_cv_func_vsnprintf=no - fi - fi - if test $ac_cv_func_vsnprintf = no; then - -$as_echo "@%:@define HAVE_VSNPRINTF 0" >>confdefs.h - - fi - - - -if test "$ac_cv_func_putenv" = "yes"; then - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant putenv declaration" >&5 -$as_echo_n "checking for standard-conformant putenv declaration... " >&6; } -if ${bash_cv_std_putenv+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_std_putenv=yes -else - bash_cv_std_putenv=no - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_std_putenv" >&5 -$as_echo "$bash_cv_std_putenv" >&6; } -if test $bash_cv_std_putenv = yes; then -$as_echo "@%:@define HAVE_STD_PUTENV 1" >>confdefs.h - -fi - -else -$as_echo "@%:@define HAVE_STD_PUTENV 1" >>confdefs.h - -fi -if test "$ac_cv_func_unsetenv" = "yes"; then - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant unsetenv declaration" >&5 -$as_echo_n "checking for standard-conformant unsetenv declaration... " >&6; } -if ${bash_cv_std_unsetenv+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_link "$LINENO"; then : - bash_cv_std_unsetenv=yes -else - bash_cv_std_unsetenv=no - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_std_unsetenv" >&5 -$as_echo "$bash_cv_std_unsetenv" >&6; } -if test $bash_cv_std_unsetenv = yes; then -$as_echo "@%:@define HAVE_STD_UNSETENV 1" >>confdefs.h - -fi - -else -$as_echo "@%:@define HAVE_STD_UNSETENV 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for printf floating point output in hex notation" >&5 -$as_echo_n "checking for printf floating point output in hex notation... " >&6; } -if ${bash_cv_printf_a_format+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check printf if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check printf if cross compiling -- defaulting to no" >&2;} - bash_cv_printf_a_format=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_printf_a_format=yes -else - bash_cv_printf_a_format=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_printf_a_format" >&5 -$as_echo "$bash_cv_printf_a_format" >&6; } -if test $bash_cv_printf_a_format = yes; then -$as_echo "@%:@define HAVE_PRINTF_A_FORMAT 1" >>confdefs.h - -fi - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if signal handlers must be reinstalled when invoked" >&5 -$as_echo_n "checking if signal handlers must be reinstalled when invoked... " >&6; } -if ${bash_cv_must_reinstall_sighandlers+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;} - bash_cv_must_reinstall_sighandlers=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_must_reinstall_sighandlers=no -else - bash_cv_must_reinstall_sighandlers=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_must_reinstall_sighandlers" >&5 -$as_echo "$bash_cv_must_reinstall_sighandlers" >&6; } -if test $bash_cv_must_reinstall_sighandlers = yes; then -$as_echo "@%:@define MUST_REINSTALL_SIGHANDLERS 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for presence of necessary job control definitions" >&5 -$as_echo_n "checking for presence of necessary job control definitions... " >&6; } -if ${bash_cv_job_control_missing+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&5 -$as_echo "$as_me: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&2;} - bash_cv_job_control_missing=missing - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_job_control_missing=present -else - bash_cv_job_control_missing=missing -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_job_control_missing" >&5 -$as_echo "$bash_cv_job_control_missing" >&6; } -if test $bash_cv_job_control_missing = missing; then -$as_echo "@%:@define JOB_CONTROL_MISSING 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for presence of named pipes" >&5 -$as_echo_n "checking for presence of named pipes... " >&6; } -if ${bash_cv_sys_named_pipes+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&5 -$as_echo "$as_me: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&2;} - bash_cv_sys_named_pipes=missing - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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("bash-aclocal", 0700); -if (err < 0) { - perror ("mkdir"); - exit(1); -} -fd = mknod ("bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); -if (fd == -1) { - rmdir ("bash-aclocal"); - exit (1); -} -close(fd); -unlink ("bash-aclocal/sh-np-autoconf"); -rmdir ("bash-aclocal"); -exit(0); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_sys_named_pipes=present -else - bash_cv_sys_named_pipes=missing -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_named_pipes" >&5 -$as_echo "$bash_cv_sys_named_pipes" >&6; } -if test $bash_cv_sys_named_pipes = missing; then -$as_echo "@%:@define NAMED_PIPES_MISSING 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether termios.h defines TIOCGWINSZ" >&5 -$as_echo_n "checking whether termios.h defines TIOCGWINSZ... " >&6; } -if ${ac_cv_sys_tiocgwinsz_in_termios_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5 -$as_echo "$ac_cv_sys_tiocgwinsz_in_termios_h" >&6; } - -if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5 -$as_echo_n "checking whether sys/ioctl.h defines TIOCGWINSZ... " >&6; } -if ${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5 -$as_echo "$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6; } - - if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then - -$as_echo "@%:@define GWINSZ_IN_SYS_IOCTL 1" >>confdefs.h - - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIOCSTAT in sys/ioctl.h" >&5 -$as_echo_n "checking for TIOCSTAT in sys/ioctl.h... " >&6; } -if ${bash_cv_tiocstat_in_ioctl+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -int x = TIOCSTAT; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_tiocstat_in_ioctl=yes -else - bash_cv_tiocstat_in_ioctl=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_tiocstat_in_ioctl" >&5 -$as_echo "$bash_cv_tiocstat_in_ioctl" >&6; } -if test $bash_cv_tiocstat_in_ioctl = yes; then -$as_echo "@%:@define TIOCSTAT_IN_SYS_IOCTL 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONREAD in sys/ioctl.h" >&5 -$as_echo_n "checking for FIONREAD in sys/ioctl.h... " >&6; } -if ${bash_cv_fionread_in_ioctl+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -int x = FIONREAD; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_fionread_in_ioctl=yes -else - bash_cv_fionread_in_ioctl=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_fionread_in_ioctl" >&5 -$as_echo "$bash_cv_fionread_in_ioctl" >&6; } -if test $bash_cv_fionread_in_ioctl = yes; then -$as_echo "@%:@define FIONREAD_IN_SYS_IOCTL 1" >>confdefs.h - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether WCONTINUED flag to waitpid is unavailable or available but broken" >&5 -$as_echo_n "checking whether WCONTINUED flag to waitpid is unavailable or available but broken... " >&6; } -if ${bash_cv_wcontinued_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&5 -$as_echo "$as_me: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&2;} - bash_cv_wcontinued_broken=no - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_wcontinued_broken=no -else - bash_cv_wcontinued_broken=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wcontinued_broken" >&5 -$as_echo "$bash_cv_wcontinued_broken" >&6; } -if test $bash_cv_wcontinued_broken = yes; then -$as_echo "@%:@define WCONTINUED_BROKEN 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for speed_t in sys/types.h" >&5 -$as_echo_n "checking for speed_t in sys/types.h... " >&6; } -if ${bash_cv_speed_t_in_sys_types+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -speed_t x; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_speed_t_in_sys_types=yes -else - bash_cv_speed_t_in_sys_types=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_speed_t_in_sys_types" >&5 -$as_echo "$bash_cv_speed_t_in_sys_types" >&6; } -if test $bash_cv_speed_t_in_sys_types = yes; then -$as_echo "@%:@define SPEED_T_IN_SYS_TYPES 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpw functions are declared in pwd.h" >&5 -$as_echo_n "checking whether getpw functions are declared in pwd.h... " >&6; } -if ${bash_cv_getpw_declared+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_getpw_declared" >&5 -$as_echo "$bash_cv_getpw_declared" >&6; } -if test $bash_cv_getpw_declared = yes; then -$as_echo "@%:@define HAVE_GETPW_DECLS 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unusable real-time signals due to large values" >&5 -$as_echo_n "checking for unusable real-time signals due to large values... " >&6; } -if ${bash_cv_unusable_rtsigs+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&5 -$as_echo "$as_me: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&2;} - bash_cv_unusable_rtsigs=yes - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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 -if ac_fn_c_try_run "$LINENO"; then : - bash_cv_unusable_rtsigs=yes -else - bash_cv_unusable_rtsigs=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_unusable_rtsigs" >&5 -$as_echo "$bash_cv_unusable_rtsigs" >&6; } -if test $bash_cv_unusable_rtsigs = yes; then -$as_echo "@%:@define UNUSABLE_RT_SIGNALS 1" >>confdefs.h - -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*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $host_os needs _KERNEL for RLIMIT defines" >&5 -$as_echo_n "checking whether $host_os needs _KERNEL for RLIMIT defines... " >&6; } -if ${bash_cv_kernel_rlimit+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - - int f; - f = RLIMIT_DATA; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_kernel_rlimit=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#define _KERNEL -#include -#undef _KERNEL - -int -main () -{ - - int f; - f = RLIMIT_DATA; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - bash_cv_kernel_rlimit=yes -else - bash_cv_kernel_rlimit=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_kernel_rlimit" >&5 -$as_echo "$bash_cv_kernel_rlimit" >&6; } -if test $bash_cv_kernel_rlimit = yes; then -$as_echo "@%:@define RLIMIT_NEEDS_KERNEL 1" >>confdefs.h - -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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -_bash_needmsg= -fi -if ${bash_cv_termcap_lib+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_fn_c_check_func "$LINENO" "tgetent" "ac_cv_func_tgetent" -if test "x$ac_cv_func_tgetent" = xyes; then : - bash_cv_termcap_lib=libc -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 -$as_echo_n "checking for tgetent in -ltermcap... " >&6; } -if ${ac_cv_lib_termcap_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermcap $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_termcap_tgetent=yes -else - ac_cv_lib_termcap_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 -$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } -if test "x$ac_cv_lib_termcap_tgetent" = xyes; then : - bash_cv_termcap_lib=libtermcap -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltinfo" >&5 -$as_echo_n "checking for tgetent in -ltinfo... " >&6; } -if ${ac_cv_lib_tinfo_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltinfo $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_tinfo_tgetent=yes -else - ac_cv_lib_tinfo_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_tgetent" >&5 -$as_echo "$ac_cv_lib_tinfo_tgetent" >&6; } -if test "x$ac_cv_lib_tinfo_tgetent" = xyes; then : - bash_cv_termcap_lib=libtinfo -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lcurses" >&5 -$as_echo_n "checking for tgetent in -lcurses... " >&6; } -if ${ac_cv_lib_curses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_curses_tgetent=yes -else - ac_cv_lib_curses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_tgetent" >&5 -$as_echo "$ac_cv_lib_curses_tgetent" >&6; } -if test "x$ac_cv_lib_curses_tgetent" = xyes; then : - bash_cv_termcap_lib=libcurses -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 -$as_echo_n "checking for tgetent in -lncurses... " >&6; } -if ${ac_cv_lib_ncurses_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ncurses_tgetent=yes -else - ac_cv_lib_ncurses_tgetent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 -$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } -if test "x$ac_cv_lib_ncurses_tgetent" = xyes; 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5 -$as_echo_n "checking which library has the termcap functions... " >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: using $bash_cv_termcap_lib" >&5 -$as_echo "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 - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether /dev/fd is available" >&5 -$as_echo_n "checking whether /dev/fd is available... " >&6; } -if ${bash_cv_dev_fd+:} false; then : - $as_echo_n "(cached) " >&6 -else - bash_cv_dev_fd="" -if test -d /dev/fd && (exec test -r /dev/fd/0 < /dev/null) ; then -# check for systems like FreeBSD 5 that only provide /dev/fd/[012] - if (exec test -r /dev/fd/3 3&5 -$as_echo "$bash_cv_dev_fd" >&6; } -if test $bash_cv_dev_fd = "standard"; then - $as_echo "@%:@define HAVE_DEV_FD 1" >>confdefs.h - - $as_echo "@%:@define DEV_FD_PREFIX \"/dev/fd/\"" >>confdefs.h - -elif test $bash_cv_dev_fd = "whacky"; then - $as_echo "@%:@define HAVE_DEV_FD 1" >>confdefs.h - - $as_echo "@%:@define DEV_FD_PREFIX \"/proc/self/fd/\"" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether /dev/stdin stdout stderr are available" >&5 -$as_echo_n "checking whether /dev/stdin stdout stderr are available... " >&6; } -if ${bash_cv_dev_stdin+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -d /dev/fd && (exec test -r /dev/stdin < /dev/null) ; then - bash_cv_dev_stdin=present - elif test -d /proc/self/fd && (exec test -r /dev/stdin < /dev/null) ; then - bash_cv_dev_stdin=present - else - bash_cv_dev_stdin=absent - fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_dev_stdin" >&5 -$as_echo "$bash_cv_dev_stdin" >&6; } -if test $bash_cv_dev_stdin = "present"; then - $as_echo "@%:@define HAVE_DEV_STDIN 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default mail directory" >&5 -$as_echo_n "checking for default mail directory... " >&6; } -if ${bash_cv_mail_dir+:} false; then : - $as_echo_n "(cached) " >&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 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_mail_dir" >&5 -$as_echo "$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 -$as_echo "@%:@define JOB_CONTROL 1" >>confdefs.h - -JOBS_O=jobs.o -else -JOBS_O=nojobs.o -fi - - - - -LOCAL_DEFS=-DSHELL - - -case "${host_os}" in -sysv4.2*) $as_echo "@%:@define SVR4_2 1" >>confdefs.h - - $as_echo "@%:@define SVR4 1" >>confdefs.h - ;; -sysv4*) $as_echo "@%:@define SVR4 1" >>confdefs.h - ;; -sysv5*) $as_echo "@%:@define SVR5 1" >>confdefs.h - ;; -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 -DSOLARIS" ;; -solaris2.8*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;; -solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; -lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; -linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading - case "`uname -r`" in - 2.[456789]*|3*) $as_echo "@%:@define PGRP_PIPE 1" >>confdefs.h - ;; - esac ;; -*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;; -*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 -D_ALL_SOURCE -DRECYCLES_PIDS" ;; -*openstep*) LOCAL_CFLAGS="-D__APPLE_CC__" ;; -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 -dragonfly*) 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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking shared object configuration for loadable builtins" >&5 -$as_echo_n "checking shared object configuration for loadable builtins... " >&6; } - eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"` - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHOBJ_STATUS" >&5 -$as_echo "$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 - -if test -z "$localedir"; then - localedir='${datarootdir}/locale' -fi -if test -z "$datarootdir"; then - datarootdir='${prefix}/share' -fi - - - - - - -# Some versions of autoconf don't substitute these automatically - - - - - - - - - - - - - - - - - - - - - -#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" - -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, we kill variables containing newlines. -# 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. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - 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}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIB@&t@OBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $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} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in @%:@( - *posix*) : - set -o posix ;; @%:@( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in @%:@( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -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 -IFS=$as_save_IFS - - ;; -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 - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] -@%:@ ---------------------------------------- -@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are -@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the -@%:@ script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} @%:@ as_fn_error - - -@%:@ as_fn_set_status STATUS -@%:@ ----------------------- -@%:@ Set @S|@? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} @%:@ as_fn_set_status - -@%:@ as_fn_exit STATUS -@%:@ ----------------- -@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} @%:@ as_fn_exit - -@%:@ as_fn_unset VAR -@%:@ --------------- -@%:@ Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -@%:@ as_fn_append VAR VALUE -@%:@ ---------------------- -@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take -@%:@ advantage of any shell optimizations that allow amortized linear growth over -@%:@ repeated appends, instead of the typical quadratic growth present in naive -@%:@ implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -@%:@ as_fn_arith ARG... -@%:@ ------------------ -@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the -@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments -@%:@ must be portable across @S|@(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; 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 - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# 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 - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in @%:@((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -@%:@ as_fn_mkdir_p -@%:@ ------------- -@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} @%:@ as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in @%:@( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# 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'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by bash $as_me 4.3-alpha, which was -generated by GNU Autoconf 2.68. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - 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_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -bash config.status 4.3-alpha -configured by $0, generated by GNU Autoconf 2.68, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2010 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -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=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - 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 || ac_write_fail=1 -if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX -@%:@@%:@ Running $as_me. @%:@@%:@ -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -# 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 || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "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" ;; - "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - 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 against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #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. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # 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. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "default-1":C) - 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":C) -# Makefile uses this timestamp file to record whether config.h is up to date. -echo timestamp > stamp-h - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# 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 || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/autom4te.cache/requests b/autom4te.cache/requests deleted file mode 100644 index a690d7412..000000000 --- a/autom4te.cache/requests +++ /dev/null @@ -1,323 +0,0 @@ -# This file was generated. -# It contains the lists of macros which have been traced. -# It can be safely removed. - -@request = ( - bless( [ - '0', - 1, - [ - '/opt/local/share/autoconf' - ], - [ - '/opt/local/share/autoconf/autoconf/autoconf.m4f', - 'aclocal.m4', - 'configure.in' - ], - { - 'AM_PROG_F77_C_O' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'm4_pattern_forbid' => 1, - 'AC_INIT' => 1, - 'AC_CANONICAL_TARGET' => 1, - '_AM_COND_IF' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_SUBST' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_FC_SRCEXT' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AM_PATH_GUILE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AC_REQUIRE_AUX_FILE' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'm4_sinclude' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AM_NLS' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - '_m4_warn' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - 'AM_PROG_CXX_C_O' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, - '_AM_COND_ENDIF' => 1, - 'AM_ENABLE_MULTILIB' => 1, - 'AM_SILENT_RULES' => 1, - 'AM_PROG_MOC' => 1, - 'AC_CONFIG_FILES' => 1, - 'LT_INIT' => 1, - 'include' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AM_PROG_AR' => 1, - 'AC_LIBSOURCE' => 1, - 'AC_CANONICAL_BUILD' => 1, - 'AM_PROG_FC_C_O' => 1, - 'AC_FC_FREEFORM' => 1, - 'AH_OUTPUT' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'm4_pattern_allow' => 1, - 'AM_PROG_CC_C_O' => 1, - 'sinclude' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AM_POT_TOOLS' => 1, - 'm4_include' => 1, - '_AM_COND_ELSE' => 1, - 'AC_SUBST_TRACE' => 1 - } - ], 'Autom4te::Request' ), - bless( [ - '1', - 1, - [ - '/sw/share/autoconf' - ], - [ - '/sw/share/autoconf/autoconf/autoconf.m4f', - 'aclocal.m4', - 'configure.in' - ], - { - '_LT_AC_TAGCONFIG' => 1, - 'AM_PROG_F77_C_O' => 1, - 'AC_INIT' => 1, - 'm4_pattern_forbid' => 1, - '_AM_COND_IF' => 1, - 'AC_CANONICAL_TARGET' => 1, - 'AC_SUBST' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_FC_SRCEXT' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AM_PATH_GUILE' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_CONFIG_LINKS' => 1, - 'm4_sinclude' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AM_NLS' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - '_m4_warn' => 1, - 'AM_PROG_CXX_C_O' => 1, - '_AM_COND_ENDIF' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, - 'AM_ENABLE_MULTILIB' => 1, - 'AM_SILENT_RULES' => 1, - 'AM_PROG_MOC' => 1, - 'AC_CONFIG_FILES' => 1, - 'include' => 1, - 'LT_INIT' => 1, - 'AM_PROG_AR' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AC_LIBSOURCE' => 1, - 'AM_PROG_FC_C_O' => 1, - 'AC_CANONICAL_BUILD' => 1, - 'AC_FC_FREEFORM' => 1, - 'AH_OUTPUT' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'sinclude' => 1, - 'AM_PROG_CC_C_O' => 1, - 'm4_pattern_allow' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AM_POT_TOOLS' => 1, - 'm4_include' => 1, - '_AM_COND_ELSE' => 1, - 'AC_SUBST_TRACE' => 1 - } - ], 'Autom4te::Request' ), - bless( [ - '2', - 1, - [ - '/usr/share/autoconf' - ], - [ - '/usr/share/autoconf/autoconf/autoconf.m4f', - 'aclocal.m4', - 'configure.in' - ], - { - 'm4_pattern_forbid' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_TYPE_OFF_T' => 1, - 'AC_C_VOLATILE' => 1, - 'AC_FUNC_CLOSEDIR_VOID' => 1, - 'AC_REPLACE_FNMATCH' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AC_FUNC_STAT' => 1, - 'AC_HEADER_TIME' => 1, - 'AC_FUNC_WAIT3' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_STRUCT_TM' => 1, - 'AC_FUNC_LSTAT' => 1, - 'AC_TYPE_MODE_T' => 1, - 'AC_FUNC_GETMNTENT' => 1, - 'AC_FUNC_STRTOD' => 1, - 'AC_CHECK_HEADERS' => 1, - 'AC_FUNC_STRNLEN' => 1, - 'm4_sinclude' => 1, - 'AC_PROG_CXX' => 1, - 'AC_PATH_X' => 1, - 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1, - 'AC_PROG_AWK' => 1, - '_m4_warn' => 1, - 'AC_HEADER_STDC' => 1, - 'AC_HEADER_MAJOR' => 1, - 'AC_FUNC_ERROR_AT_LINE' => 1, - 'AC_PROG_GCC_TRADITIONAL' => 1, - 'AC_LIBSOURCE' => 1, - 'AC_FUNC_MBRTOWC' => 1, - 'AC_STRUCT_ST_BLOCKS' => 1, - 'AC_TYPE_SIGNAL' => 1, - 'AC_TYPE_UID_T' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'AC_PROG_MAKE_SET' => 1, - 'sinclude' => 1, - 'm4_pattern_allow' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AC_FUNC_STRERROR_R' => 1, - 'AC_PROG_CC' => 1, - 'AC_FUNC_FORK' => 1, - 'AC_DECL_SYS_SIGLIST' => 1, - 'AC_FUNC_VPRINTF' => 1, - 'AC_FUNC_STRCOLL' => 1, - 'AC_PROG_YACC' => 1, - 'AC_INIT' => 1, - 'AC_STRUCT_TIMEZONE' => 1, - 'AC_FUNC_CHOWN' => 1, - 'AC_SUBST' => 1, - 'AC_FUNC_ALLOCA' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_FUNC_GETPGRP' => 1, - 'AC_PROG_RANLIB' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_FUNC_SETPGRP' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AC_FUNC_MMAP' => 1, - 'AC_FUNC_REALLOC' => 1, - 'AC_TYPE_SIZE_T' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AC_CHECK_TYPES' => 1, - 'AC_CHECK_MEMBERS' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AC_FUNC_UTIME_NULL' => 1, - 'AC_FUNC_SELECT_ARGTYPES' => 1, - 'AC_FUNC_STRFTIME' => 1, - 'AC_HEADER_STAT' => 1, - 'AC_C_INLINE' => 1, - 'AC_PROG_CPP' => 1, - 'AC_TYPE_PID_T' => 1, - 'AC_C_CONST' => 1, - 'AC_PROG_LEX' => 1, - 'AC_CONFIG_FILES' => 1, - 'include' => 1, - 'AC_FUNC_SETVBUF_REVERSED' => 1, - 'AC_PROG_INSTALL' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AC_FUNC_OBSTACK' => 1, - 'AC_CHECK_LIB' => 1, - 'AC_FUNC_MALLOC' => 1, - 'AC_FUNC_GETGROUPS' => 1, - 'AC_FUNC_GETLOADAVG' => 1, - 'AH_OUTPUT' => 1, - 'AC_FUNC_FSEEKO' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AC_FUNC_MKTIME' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_HEADER_SYS_WAIT' => 1, - 'AC_FUNC_MEMCMP' => 1, - 'AC_PROG_LN_S' => 1, - 'm4_include' => 1, - 'AC_HEADER_DIRENT' => 1, - 'AC_CHECK_FUNCS' => 1 - } - ], 'Autom4te::Request' ), - bless( [ - '3', - 1, - [ - '/sw/share/autoconf' - ], - [ - '/sw/share/autoconf/autoconf/autoconf.m4f', - 'aclocal.m4', - 'configure.ac' - ], - { - '_LT_AC_TAGCONFIG' => 1, - 'AM_PROG_F77_C_O' => 1, - 'AC_INIT' => 1, - 'm4_pattern_forbid' => 1, - '_AM_COND_IF' => 1, - 'AC_CANONICAL_TARGET' => 1, - 'AC_SUBST' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_FC_SRCEXT' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AM_PATH_GUILE' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_CONFIG_LINKS' => 1, - 'm4_sinclude' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AM_NLS' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - '_m4_warn' => 1, - 'AM_PROG_CXX_C_O' => 1, - '_AM_COND_ENDIF' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, - 'AM_ENABLE_MULTILIB' => 1, - 'AM_SILENT_RULES' => 1, - 'AM_PROG_MOC' => 1, - 'AC_CONFIG_FILES' => 1, - 'include' => 1, - 'LT_INIT' => 1, - 'AM_PROG_AR' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AC_LIBSOURCE' => 1, - 'AM_PROG_FC_C_O' => 1, - 'AC_CANONICAL_BUILD' => 1, - 'AC_FC_FREEFORM' => 1, - 'AH_OUTPUT' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'sinclude' => 1, - 'AM_PROG_CC_C_O' => 1, - 'm4_pattern_allow' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AM_POT_TOOLS' => 1, - 'm4_include' => 1, - '_AM_COND_ELSE' => 1, - 'AC_SUBST_TRACE' => 1 - } - ], 'Autom4te::Request' ) - ); - diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0 deleted file mode 100644 index 497a8f90c..000000000 --- a/autom4te.cache/traces.0 +++ /dev/null @@ -1,2723 +0,0 @@ -m4trace:configure.in:29: -1- AC_INIT([bash], [4.2-maint], [bug-bash@gnu.org]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.in:29: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) -m4trace:configure.in:29: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.in:29: -1- AC_SUBST([SHELL]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([SHELL]) -m4trace:configure.in:29: -1- m4_pattern_allow([^SHELL$]) -m4trace:configure.in:29: -1- AC_SUBST([PATH_SEPARATOR]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PATH_SEPARATOR$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_NAME]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_STRING]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_URL]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.in:29: -1- AC_SUBST([exec_prefix], [NONE]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([exec_prefix]) -m4trace:configure.in:29: -1- m4_pattern_allow([^exec_prefix$]) -m4trace:configure.in:29: -1- AC_SUBST([prefix], [NONE]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([prefix]) -m4trace:configure.in:29: -1- m4_pattern_allow([^prefix$]) -m4trace:configure.in:29: -1- AC_SUBST([program_transform_name], [s,x,x,]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([program_transform_name]) -m4trace:configure.in:29: -1- m4_pattern_allow([^program_transform_name$]) -m4trace:configure.in:29: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([bindir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^bindir$]) -m4trace:configure.in:29: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([sbindir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^sbindir$]) -m4trace:configure.in:29: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([libexecdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^libexecdir$]) -m4trace:configure.in:29: -1- AC_SUBST([datarootdir], ['${prefix}/share']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([datarootdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^datarootdir$]) -m4trace:configure.in:29: -1- AC_SUBST([datadir], ['${datarootdir}']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([datadir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^datadir$]) -m4trace:configure.in:29: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([sysconfdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^sysconfdir$]) -m4trace:configure.in:29: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([sharedstatedir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^sharedstatedir$]) -m4trace:configure.in:29: -1- AC_SUBST([localstatedir], ['${prefix}/var']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([localstatedir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^localstatedir$]) -m4trace:configure.in:29: -1- AC_SUBST([includedir], ['${prefix}/include']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([includedir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^includedir$]) -m4trace:configure.in:29: -1- AC_SUBST([oldincludedir], ['/usr/include']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([oldincludedir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^oldincludedir$]) -m4trace:configure.in:29: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], - ['${datarootdir}/doc/${PACKAGE_TARNAME}'], - ['${datarootdir}/doc/${PACKAGE}'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([docdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^docdir$]) -m4trace:configure.in:29: -1- AC_SUBST([infodir], ['${datarootdir}/info']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([infodir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^infodir$]) -m4trace:configure.in:29: -1- AC_SUBST([htmldir], ['${docdir}']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([htmldir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^htmldir$]) -m4trace:configure.in:29: -1- AC_SUBST([dvidir], ['${docdir}']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([dvidir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^dvidir$]) -m4trace:configure.in:29: -1- AC_SUBST([pdfdir], ['${docdir}']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([pdfdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^pdfdir$]) -m4trace:configure.in:29: -1- AC_SUBST([psdir], ['${docdir}']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([psdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^psdir$]) -m4trace:configure.in:29: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([libdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^libdir$]) -m4trace:configure.in:29: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([localedir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^localedir$]) -m4trace:configure.in:29: -1- AC_SUBST([mandir], ['${datarootdir}/man']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([mandir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^mandir$]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ -@%:@undef PACKAGE_NAME]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ -@%:@undef PACKAGE_TARNAME]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ -@%:@undef PACKAGE_VERSION]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ -@%:@undef PACKAGE_STRING]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ -@%:@undef PACKAGE_BUGREPORT]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */ -@%:@undef PACKAGE_URL]) -m4trace:configure.in:29: -1- AC_SUBST([DEFS]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([DEFS]) -m4trace:configure.in:29: -1- m4_pattern_allow([^DEFS$]) -m4trace:configure.in:29: -1- AC_SUBST([ECHO_C]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([ECHO_C]) -m4trace:configure.in:29: -1- m4_pattern_allow([^ECHO_C$]) -m4trace:configure.in:29: -1- AC_SUBST([ECHO_N]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([ECHO_N]) -m4trace:configure.in:29: -1- m4_pattern_allow([^ECHO_N$]) -m4trace:configure.in:29: -1- AC_SUBST([ECHO_T]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([ECHO_T]) -m4trace:configure.in:29: -1- m4_pattern_allow([^ECHO_T$]) -m4trace:configure.in:29: -1- AC_SUBST([LIBS]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([LIBS]) -m4trace:configure.in:29: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.in:29: -1- AC_SUBST([build_alias]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([build_alias]) -m4trace:configure.in:29: -1- m4_pattern_allow([^build_alias$]) -m4trace:configure.in:29: -1- AC_SUBST([host_alias]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([host_alias]) -m4trace:configure.in:29: -1- m4_pattern_allow([^host_alias$]) -m4trace:configure.in:29: -1- AC_SUBST([target_alias]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([target_alias]) -m4trace:configure.in:29: -1- m4_pattern_allow([^target_alias$]) -m4trace:configure.in:36: -1- AC_CONFIG_AUX_DIR([./support]) -m4trace:configure.in:37: -1- AC_CONFIG_HEADERS([config.h]) -m4trace:configure.in:51: -1- AC_CANONICAL_HOST -m4trace:configure.in:51: -1- AC_CANONICAL_BUILD -m4trace:configure.in:51: -1- AC_REQUIRE_AUX_FILE([config.sub]) -m4trace:configure.in:51: -1- AC_REQUIRE_AUX_FILE([config.guess]) -m4trace:configure.in:51: -1- AC_SUBST([build], [$ac_cv_build]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([build]) -m4trace:configure.in:51: -1- m4_pattern_allow([^build$]) -m4trace:configure.in:51: -1- AC_SUBST([build_cpu], [$[1]]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([build_cpu]) -m4trace:configure.in:51: -1- m4_pattern_allow([^build_cpu$]) -m4trace:configure.in:51: -1- AC_SUBST([build_vendor], [$[2]]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([build_vendor]) -m4trace:configure.in:51: -1- m4_pattern_allow([^build_vendor$]) -m4trace:configure.in:51: -1- AC_SUBST([build_os]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([build_os]) -m4trace:configure.in:51: -1- m4_pattern_allow([^build_os$]) -m4trace:configure.in:51: -1- AC_SUBST([host], [$ac_cv_host]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([host]) -m4trace:configure.in:51: -1- m4_pattern_allow([^host$]) -m4trace:configure.in:51: -1- AC_SUBST([host_cpu], [$[1]]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([host_cpu]) -m4trace:configure.in:51: -1- m4_pattern_allow([^host_cpu$]) -m4trace:configure.in:51: -1- AC_SUBST([host_vendor], [$[2]]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([host_vendor]) -m4trace:configure.in:51: -1- m4_pattern_allow([^host_vendor$]) -m4trace:configure.in:51: -1- AC_SUBST([host_os]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([host_os]) -m4trace:configure.in:51: -1- m4_pattern_allow([^host_os$]) -m4trace:configure.in:102: -1- AC_SUBST([DEBUGGER_START_FILE]) -m4trace:configure.in:102: -1- AC_SUBST_TRACE([DEBUGGER_START_FILE]) -m4trace:configure.in:102: -1- m4_pattern_allow([^DEBUGGER_START_FILE$]) -m4trace:configure.in:106: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:106: the top level]) -m4trace:configure.in:107: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:107: the top level]) -m4trace:configure.in:108: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:108: the top level]) -m4trace:configure.in:109: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:109: the top level]) -m4trace:configure.in:110: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:110: the top level]) -m4trace:configure.in:111: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:111: the top level]) -m4trace:configure.in:112: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:112: the top level]) -m4trace:configure.in:123: -1- AC_DEFINE_TRACE_LITERAL([USING_BASH_MALLOC]) -m4trace:configure.in:123: -1- m4_pattern_allow([^USING_BASH_MALLOC$]) -m4trace:configure.in:133: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_MALLOC_WRAPPERS]) -m4trace:configure.in:133: -1- m4_pattern_allow([^DISABLE_MALLOC_WRAPPERS$]) -m4trace:configure.in:143: -1- AC_DEFINE_TRACE_LITERAL([AFS]) -m4trace:configure.in:143: -1- m4_pattern_allow([^AFS$]) -m4trace:configure.in:195: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:195: the top level]) -m4trace:configure.in:211: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:211: the top level]) -m4trace:configure.in:212: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:212: the top level]) -m4trace:configure.in:213: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:213: the top level]) -m4trace:configure.in:214: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:214: the top level]) -m4trace:configure.in:215: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:215: the top level]) -m4trace:configure.in:216: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:216: the top level]) -m4trace:configure.in:217: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:217: the top level]) -m4trace:configure.in:218: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:218: the top level]) -m4trace:configure.in:219: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:219: the top level]) -m4trace:configure.in:220: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:220: the top level]) -m4trace:configure.in:221: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:221: the top level]) -m4trace:configure.in:222: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:222: the top level]) -m4trace:configure.in:223: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:223: the top level]) -m4trace:configure.in:224: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:224: the top level]) -m4trace:configure.in:225: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:225: the top level]) -m4trace:configure.in:226: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:226: the top level]) -m4trace:configure.in:227: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:227: the top level]) -m4trace:configure.in:228: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:228: the top level]) -m4trace:configure.in:229: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:229: the top level]) -m4trace:configure.in:230: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:230: the top level]) -m4trace:configure.in:231: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:231: the top level]) -m4trace:configure.in:232: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:232: the top level]) -m4trace:configure.in:233: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:233: the top level]) -m4trace:configure.in:234: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:234: the top level]) -m4trace:configure.in:235: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:235: the top level]) -m4trace:configure.in:236: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:236: the top level]) -m4trace:configure.in:237: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:237: the top level]) -m4trace:configure.in:238: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:238: the top level]) -m4trace:configure.in:239: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:239: the top level]) -m4trace:configure.in:240: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:240: the top level]) -m4trace:configure.in:241: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:241: the top level]) -m4trace:configure.in:242: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:242: the top level]) -m4trace:configure.in:243: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:243: the top level]) -m4trace:configure.in:246: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:246: the top level]) -m4trace:configure.in:247: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:247: the top level]) -m4trace:configure.in:248: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:248: the top level]) -m4trace:configure.in:251: -1- AC_SUBST([CC_FOR_BUILD]) -m4trace:configure.in:251: -1- AC_SUBST_TRACE([CC_FOR_BUILD]) -m4trace:configure.in:251: -1- m4_pattern_allow([^CC_FOR_BUILD$]) -m4trace:configure.in:252: -1- AC_SUBST([CFLAGS_FOR_BUILD]) -m4trace:configure.in:252: -1- AC_SUBST_TRACE([CFLAGS_FOR_BUILD]) -m4trace:configure.in:252: -1- m4_pattern_allow([^CFLAGS_FOR_BUILD$]) -m4trace:configure.in:253: -1- AC_SUBST([LDFLAGS_FOR_BUILD]) -m4trace:configure.in:253: -1- AC_SUBST_TRACE([LDFLAGS_FOR_BUILD]) -m4trace:configure.in:253: -1- m4_pattern_allow([^LDFLAGS_FOR_BUILD$]) -m4trace:configure.in:254: -1- AC_SUBST([CPPFLAGS_FOR_BUILD]) -m4trace:configure.in:254: -1- AC_SUBST_TRACE([CPPFLAGS_FOR_BUILD]) -m4trace:configure.in:254: -1- m4_pattern_allow([^CPPFLAGS_FOR_BUILD$]) -m4trace:configure.in:263: -1- AC_DEFINE_TRACE_LITERAL([ALIAS]) -m4trace:configure.in:263: -1- m4_pattern_allow([^ALIAS$]) -m4trace:configure.in:266: -1- AC_DEFINE_TRACE_LITERAL([PUSHD_AND_POPD]) -m4trace:configure.in:266: -1- m4_pattern_allow([^PUSHD_AND_POPD$]) -m4trace:configure.in:269: -1- AC_DEFINE_TRACE_LITERAL([RESTRICTED_SHELL]) -m4trace:configure.in:269: -1- m4_pattern_allow([^RESTRICTED_SHELL$]) -m4trace:configure.in:272: -1- AC_DEFINE_TRACE_LITERAL([PROCESS_SUBSTITUTION]) -m4trace:configure.in:272: -1- m4_pattern_allow([^PROCESS_SUBSTITUTION$]) -m4trace:configure.in:275: -1- AC_DEFINE_TRACE_LITERAL([PROMPT_STRING_DECODE]) -m4trace:configure.in:275: -1- m4_pattern_allow([^PROMPT_STRING_DECODE$]) -m4trace:configure.in:278: -1- AC_DEFINE_TRACE_LITERAL([SELECT_COMMAND]) -m4trace:configure.in:278: -1- m4_pattern_allow([^SELECT_COMMAND$]) -m4trace:configure.in:281: -1- AC_DEFINE_TRACE_LITERAL([HELP_BUILTIN]) -m4trace:configure.in:281: -1- m4_pattern_allow([^HELP_BUILTIN$]) -m4trace:configure.in:284: -1- AC_DEFINE_TRACE_LITERAL([ARRAY_VARS]) -m4trace:configure.in:284: -1- m4_pattern_allow([^ARRAY_VARS$]) -m4trace:configure.in:287: -1- AC_DEFINE_TRACE_LITERAL([DPAREN_ARITHMETIC]) -m4trace:configure.in:287: -1- m4_pattern_allow([^DPAREN_ARITHMETIC$]) -m4trace:configure.in:290: -1- AC_DEFINE_TRACE_LITERAL([BRACE_EXPANSION]) -m4trace:configure.in:290: -1- m4_pattern_allow([^BRACE_EXPANSION$]) -m4trace:configure.in:293: -1- AC_DEFINE_TRACE_LITERAL([DISABLED_BUILTINS]) -m4trace:configure.in:293: -1- m4_pattern_allow([^DISABLED_BUILTINS$]) -m4trace:configure.in:296: -1- AC_DEFINE_TRACE_LITERAL([COMMAND_TIMING]) -m4trace:configure.in:296: -1- m4_pattern_allow([^COMMAND_TIMING$]) -m4trace:configure.in:299: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_ECHO_TO_XPG]) -m4trace:configure.in:299: -1- m4_pattern_allow([^DEFAULT_ECHO_TO_XPG$]) -m4trace:configure.in:302: -1- AC_DEFINE_TRACE_LITERAL([STRICT_POSIX]) -m4trace:configure.in:302: -1- m4_pattern_allow([^STRICT_POSIX$]) -m4trace:configure.in:305: -1- AC_DEFINE_TRACE_LITERAL([EXTENDED_GLOB]) -m4trace:configure.in:305: -1- m4_pattern_allow([^EXTENDED_GLOB$]) -m4trace:configure.in:308: -1- AC_DEFINE_TRACE_LITERAL([EXTGLOB_DEFAULT]) -m4trace:configure.in:308: -1- m4_pattern_allow([^EXTGLOB_DEFAULT$]) -m4trace:configure.in:310: -1- AC_DEFINE_TRACE_LITERAL([EXTGLOB_DEFAULT]) -m4trace:configure.in:310: -1- m4_pattern_allow([^EXTGLOB_DEFAULT$]) -m4trace:configure.in:313: -1- AC_DEFINE_TRACE_LITERAL([COND_COMMAND]) -m4trace:configure.in:313: -1- m4_pattern_allow([^COND_COMMAND$]) -m4trace:configure.in:316: -1- AC_DEFINE_TRACE_LITERAL([COND_REGEXP]) -m4trace:configure.in:316: -1- m4_pattern_allow([^COND_REGEXP$]) -m4trace:configure.in:319: -1- AC_DEFINE_TRACE_LITERAL([COPROCESS_SUPPORT]) -m4trace:configure.in:319: -1- m4_pattern_allow([^COPROCESS_SUPPORT$]) -m4trace:configure.in:322: -1- AC_DEFINE_TRACE_LITERAL([ARITH_FOR_COMMAND]) -m4trace:configure.in:322: -1- m4_pattern_allow([^ARITH_FOR_COMMAND$]) -m4trace:configure.in:325: -1- AC_DEFINE_TRACE_LITERAL([NETWORK_REDIRECTIONS]) -m4trace:configure.in:325: -1- m4_pattern_allow([^NETWORK_REDIRECTIONS$]) -m4trace:configure.in:328: -1- AC_DEFINE_TRACE_LITERAL([PROGRAMMABLE_COMPLETION]) -m4trace:configure.in:328: -1- m4_pattern_allow([^PROGRAMMABLE_COMPLETION$]) -m4trace:configure.in:331: -1- AC_DEFINE_TRACE_LITERAL([NO_MULTIBYTE_SUPPORT]) -m4trace:configure.in:331: -1- m4_pattern_allow([^NO_MULTIBYTE_SUPPORT$]) -m4trace:configure.in:334: -1- AC_DEFINE_TRACE_LITERAL([DEBUGGER]) -m4trace:configure.in:334: -1- m4_pattern_allow([^DEBUGGER$]) -m4trace:configure.in:337: -1- AC_DEFINE_TRACE_LITERAL([CASEMOD_ATTRS]) -m4trace:configure.in:337: -1- m4_pattern_allow([^CASEMOD_ATTRS$]) -m4trace:configure.in:340: -1- AC_DEFINE_TRACE_LITERAL([CASEMOD_EXPANSIONS]) -m4trace:configure.in:340: -1- m4_pattern_allow([^CASEMOD_EXPANSIONS$]) -m4trace:configure.in:344: -1- AC_DEFINE_TRACE_LITERAL([MEMSCRAMBLE]) -m4trace:configure.in:344: -1- m4_pattern_allow([^MEMSCRAMBLE$]) -m4trace:configure.in:370: -1- AC_SUBST([TESTSCRIPT]) -m4trace:configure.in:370: -1- AC_SUBST_TRACE([TESTSCRIPT]) -m4trace:configure.in:370: -1- m4_pattern_allow([^TESTSCRIPT$]) -m4trace:configure.in:371: -1- AC_SUBST([PURIFY]) -m4trace:configure.in:371: -1- AC_SUBST_TRACE([PURIFY]) -m4trace:configure.in:371: -1- m4_pattern_allow([^PURIFY$]) -m4trace:configure.in:372: -1- AC_SUBST([MALLOC_TARGET]) -m4trace:configure.in:372: -1- AC_SUBST_TRACE([MALLOC_TARGET]) -m4trace:configure.in:372: -1- m4_pattern_allow([^MALLOC_TARGET$]) -m4trace:configure.in:373: -1- AC_SUBST([MALLOC_SRC]) -m4trace:configure.in:373: -1- AC_SUBST_TRACE([MALLOC_SRC]) -m4trace:configure.in:373: -1- m4_pattern_allow([^MALLOC_SRC$]) -m4trace:configure.in:375: -1- AC_SUBST([MALLOC_LIB]) -m4trace:configure.in:375: -1- AC_SUBST_TRACE([MALLOC_LIB]) -m4trace:configure.in:375: -1- m4_pattern_allow([^MALLOC_LIB$]) -m4trace:configure.in:376: -1- AC_SUBST([MALLOC_LIBRARY]) -m4trace:configure.in:376: -1- AC_SUBST_TRACE([MALLOC_LIBRARY]) -m4trace:configure.in:376: -1- m4_pattern_allow([^MALLOC_LIBRARY$]) -m4trace:configure.in:377: -1- AC_SUBST([MALLOC_LDFLAGS]) -m4trace:configure.in:377: -1- AC_SUBST_TRACE([MALLOC_LDFLAGS]) -m4trace:configure.in:377: -1- m4_pattern_allow([^MALLOC_LDFLAGS$]) -m4trace:configure.in:378: -1- AC_SUBST([MALLOC_DEP]) -m4trace:configure.in:378: -1- AC_SUBST_TRACE([MALLOC_DEP]) -m4trace:configure.in:378: -1- m4_pattern_allow([^MALLOC_DEP$]) -m4trace:configure.in:380: -1- AC_SUBST([htmldir]) -m4trace:configure.in:380: -1- AC_SUBST_TRACE([htmldir]) -m4trace:configure.in:380: -1- m4_pattern_allow([^htmldir$]) -m4trace:configure.in:382: -1- AC_SUBST([HELPDIR]) -m4trace:configure.in:382: -1- AC_SUBST_TRACE([HELPDIR]) -m4trace:configure.in:382: -1- m4_pattern_allow([^HELPDIR$]) -m4trace:configure.in:383: -1- AC_SUBST([HELPDIRDEFINE]) -m4trace:configure.in:383: -1- AC_SUBST_TRACE([HELPDIRDEFINE]) -m4trace:configure.in:383: -1- m4_pattern_allow([^HELPDIRDEFINE$]) -m4trace:configure.in:384: -1- AC_SUBST([HELPINSTALL]) -m4trace:configure.in:384: -1- AC_SUBST_TRACE([HELPINSTALL]) -m4trace:configure.in:384: -1- m4_pattern_allow([^HELPINSTALL$]) -m4trace:configure.in:385: -1- AC_SUBST([HELPFILES_TARGET]) -m4trace:configure.in:385: -1- AC_SUBST_TRACE([HELPFILES_TARGET]) -m4trace:configure.in:385: -1- m4_pattern_allow([^HELPFILES_TARGET$]) -m4trace:configure.in:386: -1- AC_SUBST([HELPSTRINGS]) -m4trace:configure.in:386: -1- AC_SUBST_TRACE([HELPSTRINGS]) -m4trace:configure.in:386: -1- m4_pattern_allow([^HELPSTRINGS$]) -m4trace:configure.in:395: -1- AC_SUBST([CC]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.in:395: -1- m4_pattern_allow([^CC$]) -m4trace:configure.in:395: -1- AC_SUBST([CFLAGS]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([CFLAGS]) -m4trace:configure.in:395: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.in:395: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([LDFLAGS]) -m4trace:configure.in:395: -1- m4_pattern_allow([^LDFLAGS$]) -m4trace:configure.in:395: -1- AC_SUBST([LIBS]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([LIBS]) -m4trace:configure.in:395: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.in:395: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.in:395: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.in:395: -1- AC_SUBST([CC]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.in:395: -1- m4_pattern_allow([^CC$]) -m4trace:configure.in:395: -1- AC_SUBST([CC]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.in:395: -1- m4_pattern_allow([^CC$]) -m4trace:configure.in:395: -1- AC_SUBST([CC]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.in:395: -1- m4_pattern_allow([^CC$]) -m4trace:configure.in:395: -1- AC_SUBST([CC]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.in:395: -1- m4_pattern_allow([^CC$]) -m4trace:configure.in:395: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([ac_ct_CC]) -m4trace:configure.in:395: -1- m4_pattern_allow([^ac_ct_CC$]) -m4trace:configure.in:395: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([EXEEXT]) -m4trace:configure.in:395: -1- m4_pattern_allow([^EXEEXT$]) -m4trace:configure.in:395: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) -m4trace:configure.in:395: -1- AC_SUBST_TRACE([OBJEXT]) -m4trace:configure.in:395: -1- m4_pattern_allow([^OBJEXT$]) -m4trace:configure.in:399: -1- _m4_warn([obsolete], [The macro `AC_MINIX' is obsolete. -You should run autoupdate.], [../../lib/autoconf/specific.m4:437: AC_MINIX is expanded from... -configure.in:399: the top level]) -m4trace:configure.in:399: -1- AC_SUBST([CPP]) -m4trace:configure.in:399: -1- AC_SUBST_TRACE([CPP]) -m4trace:configure.in:399: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.in:399: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:399: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.in:399: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.in:399: -1- AC_SUBST([CPP]) -m4trace:configure.in:399: -1- AC_SUBST_TRACE([CPP]) -m4trace:configure.in:399: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.in:399: -1- AC_SUBST([GREP]) -m4trace:configure.in:399: -1- AC_SUBST_TRACE([GREP]) -m4trace:configure.in:399: -1- m4_pattern_allow([^GREP$]) -m4trace:configure.in:399: -1- AC_SUBST([EGREP]) -m4trace:configure.in:399: -1- AC_SUBST_TRACE([EGREP]) -m4trace:configure.in:399: -1- m4_pattern_allow([^EGREP$]) -m4trace:configure.in:399: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) -m4trace:configure.in:399: -1- m4_pattern_allow([^STDC_HEADERS$]) -m4trace:configure.in:399: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ -@%:@undef STDC_HEADERS]) -m4trace:configure.in:399: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TYPES_H]) -m4trace:configure.in:399: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_STAT_H]) -m4trace:configure.in:399: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.in:399: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRING_H]) -m4trace:configure.in:399: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MEMORY_H]) -m4trace:configure.in:399: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRINGS_H]) -m4trace:configure.in:399: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_INTTYPES_H]) -m4trace:configure.in:399: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDINT_H]) -m4trace:configure.in:399: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:399: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_SOURCE]) -m4trace:configure.in:399: -1- m4_pattern_allow([^_POSIX_SOURCE$]) -m4trace:configure.in:399: -1- AH_OUTPUT([_POSIX_SOURCE], [/* Define to 1 if you need to in order for `stat\' and other things to work. */ -@%:@undef _POSIX_SOURCE]) -m4trace:configure.in:399: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_1_SOURCE]) -m4trace:configure.in:399: -1- m4_pattern_allow([^_POSIX_1_SOURCE$]) -m4trace:configure.in:399: -1- AH_OUTPUT([_POSIX_1_SOURCE], [/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -@%:@undef _POSIX_1_SOURCE]) -m4trace:configure.in:399: -1- AC_DEFINE_TRACE_LITERAL([_MINIX]) -m4trace:configure.in:399: -1- m4_pattern_allow([^_MINIX$]) -m4trace:configure.in:399: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */ -@%:@undef _MINIX]) -m4trace:configure.in:399: -1- AH_OUTPUT([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif -]) -m4trace:configure.in:399: -1- AC_DEFINE_TRACE_LITERAL([__EXTENSIONS__]) -m4trace:configure.in:399: -1- m4_pattern_allow([^__EXTENSIONS__$]) -m4trace:configure.in:399: -1- AC_DEFINE_TRACE_LITERAL([_ALL_SOURCE]) -m4trace:configure.in:399: -1- m4_pattern_allow([^_ALL_SOURCE$]) -m4trace:configure.in:399: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) -m4trace:configure.in:399: -1- m4_pattern_allow([^_GNU_SOURCE$]) -m4trace:configure.in:399: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS]) -m4trace:configure.in:399: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$]) -m4trace:configure.in:399: -1- AC_DEFINE_TRACE_LITERAL([_TANDEM_SOURCE]) -m4trace:configure.in:399: -1- m4_pattern_allow([^_TANDEM_SOURCE$]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS]) -m4trace:configure.in:401: -1- m4_pattern_allow([^_FILE_OFFSET_BITS$]) -m4trace:configure.in:401: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */ -@%:@undef _FILE_OFFSET_BITS]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES]) -m4trace:configure.in:401: -1- m4_pattern_allow([^_LARGE_FILES$]) -m4trace:configure.in:401: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */ -@%:@undef _LARGE_FILES]) -m4trace:configure.in:438: -1- AC_SUBST([CROSS_COMPILE]) -m4trace:configure.in:438: -1- AC_SUBST_TRACE([CROSS_COMPILE]) -m4trace:configure.in:438: -1- m4_pattern_allow([^CROSS_COMPILE$]) -m4trace:configure.in:440: -1- AC_SUBST([SIGNAMES_H]) -m4trace:configure.in:440: -1- AC_SUBST_TRACE([SIGNAMES_H]) -m4trace:configure.in:440: -1- m4_pattern_allow([^SIGNAMES_H$]) -m4trace:configure.in:441: -1- AC_SUBST([SIGNAMES_O]) -m4trace:configure.in:441: -1- AC_SUBST_TRACE([SIGNAMES_O]) -m4trace:configure.in:441: -1- m4_pattern_allow([^SIGNAMES_O$]) -m4trace:configure.in:475: -1- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete. -You should run autoupdate.], [../../lib/autoconf/c.m4:436: ac_cv_prog_gcc is expanded from... -configure.in:475: the top level]) -m4trace:configure.in:501: -1- AC_SUBST([CFLAGS]) -m4trace:configure.in:501: -1- AC_SUBST_TRACE([CFLAGS]) -m4trace:configure.in:501: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.in:502: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:502: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.in:502: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.in:503: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:503: -1- AC_SUBST_TRACE([LDFLAGS]) -m4trace:configure.in:503: -1- m4_pattern_allow([^LDFLAGS$]) -m4trace:configure.in:504: -1- AC_SUBST([STATIC_LD]) -m4trace:configure.in:504: -1- AC_SUBST_TRACE([STATIC_LD]) -m4trace:configure.in:504: -1- m4_pattern_allow([^STATIC_LD$]) -m4trace:configure.in:506: -1- AC_SUBST([CC_FOR_BUILD]) -m4trace:configure.in:506: -1- AC_SUBST_TRACE([CC_FOR_BUILD]) -m4trace:configure.in:506: -1- m4_pattern_allow([^CC_FOR_BUILD$]) -m4trace:configure.in:507: -1- AC_SUBST([CFLAGS_FOR_BUILD]) -m4trace:configure.in:507: -1- AC_SUBST_TRACE([CFLAGS_FOR_BUILD]) -m4trace:configure.in:507: -1- m4_pattern_allow([^CFLAGS_FOR_BUILD$]) -m4trace:configure.in:508: -1- AC_SUBST([CPPFLAGS_FOR_BUILD]) -m4trace:configure.in:508: -1- AC_SUBST_TRACE([CPPFLAGS_FOR_BUILD]) -m4trace:configure.in:508: -1- m4_pattern_allow([^CPPFLAGS_FOR_BUILD$]) -m4trace:configure.in:509: -1- AC_SUBST([LDFLAGS_FOR_BUILD]) -m4trace:configure.in:509: -1- AC_SUBST_TRACE([LDFLAGS_FOR_BUILD]) -m4trace:configure.in:509: -1- m4_pattern_allow([^LDFLAGS_FOR_BUILD$]) -m4trace:configure.in:510: -1- AC_SUBST([LIBS_FOR_BUILD]) -m4trace:configure.in:510: -1- AC_SUBST_TRACE([LIBS_FOR_BUILD]) -m4trace:configure.in:510: -1- m4_pattern_allow([^LIBS_FOR_BUILD$]) -m4trace:configure.in:524: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1806: RL_LIB_READLINE_VERSION is expanded from... -configure.in:524: the top level]) -m4trace:configure.in:524: -1- AC_DEFINE_TRACE_LITERAL([RL_READLINE_VERSION]) -m4trace:configure.in:524: -1- m4_pattern_allow([^RL_READLINE_VERSION$]) -m4trace:configure.in:524: -1- AH_OUTPUT([RL_READLINE_VERSION], [/* encoded version of the installed readline library */ -@%:@undef RL_READLINE_VERSION]) -m4trace:configure.in:524: -1- AC_DEFINE_TRACE_LITERAL([RL_VERSION_MAJOR]) -m4trace:configure.in:524: -1- m4_pattern_allow([^RL_VERSION_MAJOR$]) -m4trace:configure.in:524: -1- AH_OUTPUT([RL_VERSION_MAJOR], [/* major version of installed readline library */ -@%:@undef RL_VERSION_MAJOR]) -m4trace:configure.in:524: -1- AC_DEFINE_TRACE_LITERAL([RL_VERSION_MINOR]) -m4trace:configure.in:524: -1- m4_pattern_allow([^RL_VERSION_MINOR$]) -m4trace:configure.in:524: -1- AH_OUTPUT([RL_VERSION_MINOR], [/* minor version of installed readline library */ -@%:@undef RL_VERSION_MINOR]) -m4trace:configure.in:524: -1- AC_SUBST([RL_VERSION]) -m4trace:configure.in:524: -1- AC_SUBST_TRACE([RL_VERSION]) -m4trace:configure.in:524: -1- m4_pattern_allow([^RL_VERSION$]) -m4trace:configure.in:524: -1- AC_SUBST([RL_MAJOR]) -m4trace:configure.in:524: -1- AC_SUBST_TRACE([RL_MAJOR]) -m4trace:configure.in:524: -1- m4_pattern_allow([^RL_MAJOR$]) -m4trace:configure.in:524: -1- AC_SUBST([RL_MINOR]) -m4trace:configure.in:524: -1- AC_SUBST_TRACE([RL_MINOR]) -m4trace:configure.in:524: -1- m4_pattern_allow([^RL_MINOR$]) -m4trace:configure.in:537: -1- AC_DEFINE_TRACE_LITERAL([READLINE]) -m4trace:configure.in:537: -1- m4_pattern_allow([^READLINE$]) -m4trace:configure.in:572: -1- AC_DEFINE_TRACE_LITERAL([HISTORY]) -m4trace:configure.in:572: -1- m4_pattern_allow([^HISTORY$]) -m4trace:configure.in:575: -1- AC_DEFINE_TRACE_LITERAL([BANG_HISTORY]) -m4trace:configure.in:575: -1- m4_pattern_allow([^BANG_HISTORY$]) -m4trace:configure.in:605: -1- AC_SUBST([READLINE_LIB]) -m4trace:configure.in:605: -1- AC_SUBST_TRACE([READLINE_LIB]) -m4trace:configure.in:605: -1- m4_pattern_allow([^READLINE_LIB$]) -m4trace:configure.in:606: -1- AC_SUBST([READLINE_DEP]) -m4trace:configure.in:606: -1- AC_SUBST_TRACE([READLINE_DEP]) -m4trace:configure.in:606: -1- m4_pattern_allow([^READLINE_DEP$]) -m4trace:configure.in:607: -1- AC_SUBST([RL_LIBDIR]) -m4trace:configure.in:607: -1- AC_SUBST_TRACE([RL_LIBDIR]) -m4trace:configure.in:607: -1- m4_pattern_allow([^RL_LIBDIR$]) -m4trace:configure.in:608: -1- AC_SUBST([RL_INCLUDEDIR]) -m4trace:configure.in:608: -1- AC_SUBST_TRACE([RL_INCLUDEDIR]) -m4trace:configure.in:608: -1- m4_pattern_allow([^RL_INCLUDEDIR$]) -m4trace:configure.in:609: -1- AC_SUBST([RL_INCLUDE]) -m4trace:configure.in:609: -1- AC_SUBST_TRACE([RL_INCLUDE]) -m4trace:configure.in:609: -1- m4_pattern_allow([^RL_INCLUDE$]) -m4trace:configure.in:610: -1- AC_SUBST([HISTORY_LIB]) -m4trace:configure.in:610: -1- AC_SUBST_TRACE([HISTORY_LIB]) -m4trace:configure.in:610: -1- m4_pattern_allow([^HISTORY_LIB$]) -m4trace:configure.in:611: -1- AC_SUBST([HISTORY_DEP]) -m4trace:configure.in:611: -1- AC_SUBST_TRACE([HISTORY_DEP]) -m4trace:configure.in:611: -1- m4_pattern_allow([^HISTORY_DEP$]) -m4trace:configure.in:612: -1- AC_SUBST([HIST_LIBDIR]) -m4trace:configure.in:612: -1- AC_SUBST_TRACE([HIST_LIBDIR]) -m4trace:configure.in:612: -1- m4_pattern_allow([^HIST_LIBDIR$]) -m4trace:configure.in:613: -1- AC_SUBST([TILDE_LIB]) -m4trace:configure.in:613: -1- AC_SUBST_TRACE([TILDE_LIB]) -m4trace:configure.in:613: -1- m4_pattern_allow([^TILDE_LIB$]) -m4trace:configure.in:618: -1- AC_REQUIRE_AUX_FILE([install-sh]) -m4trace:configure.in:618: -1- AC_SUBST([INSTALL_PROGRAM]) -m4trace:configure.in:618: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) -m4trace:configure.in:618: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) -m4trace:configure.in:618: -1- AC_SUBST([INSTALL_SCRIPT]) -m4trace:configure.in:618: -1- AC_SUBST_TRACE([INSTALL_SCRIPT]) -m4trace:configure.in:618: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) -m4trace:configure.in:618: -1- AC_SUBST([INSTALL_DATA]) -m4trace:configure.in:618: -1- AC_SUBST_TRACE([INSTALL_DATA]) -m4trace:configure.in:618: -1- m4_pattern_allow([^INSTALL_DATA$]) -m4trace:configure.in:619: -1- AC_SUBST([AR]) -m4trace:configure.in:619: -1- AC_SUBST_TRACE([AR]) -m4trace:configure.in:619: -1- m4_pattern_allow([^AR$]) -m4trace:configure.in:623: -1- AC_SUBST([RANLIB]) -m4trace:configure.in:623: -1- AC_SUBST_TRACE([RANLIB]) -m4trace:configure.in:623: -1- m4_pattern_allow([^RANLIB$]) -m4trace:configure.in:624: -1- AC_SUBST([YACC]) -m4trace:configure.in:624: -1- AC_SUBST_TRACE([YACC]) -m4trace:configure.in:624: -1- m4_pattern_allow([^YACC$]) -m4trace:configure.in:624: -1- AC_SUBST([YACC]) -m4trace:configure.in:624: -1- AC_SUBST_TRACE([YACC]) -m4trace:configure.in:624: -1- m4_pattern_allow([^YACC$]) -m4trace:configure.in:624: -1- AC_SUBST([YFLAGS]) -m4trace:configure.in:624: -1- AC_SUBST_TRACE([YFLAGS]) -m4trace:configure.in:624: -1- m4_pattern_allow([^YFLAGS$]) -m4trace:configure.in:625: -1- AC_SUBST([SET_MAKE]) -m4trace:configure.in:625: -1- AC_SUBST_TRACE([SET_MAKE]) -m4trace:configure.in:625: -1- m4_pattern_allow([^SET_MAKE$]) -m4trace:configure.in:631: -1- AC_SUBST([MAKE_SHELL]) -m4trace:configure.in:631: -1- AC_SUBST_TRACE([MAKE_SHELL]) -m4trace:configure.in:631: -1- m4_pattern_allow([^MAKE_SHELL$]) -m4trace:configure.in:653: -1- AC_SUBST([SIZE]) -m4trace:configure.in:653: -1- AC_SUBST_TRACE([SIZE]) -m4trace:configure.in:653: -1- m4_pattern_allow([^SIZE$]) -m4trace:configure.in:656: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) -m4trace:configure.in:656: -1- m4_pattern_allow([^_GNU_SOURCE$]) -m4trace:configure.in:659: -1- AC_DEFINE_TRACE_LITERAL([const]) -m4trace:configure.in:659: -1- m4_pattern_allow([^const$]) -m4trace:configure.in:659: -1- AH_OUTPUT([const], [/* Define to empty if `const\' does not conform to ANSI C. */ -@%:@undef const]) -m4trace:configure.in:660: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler - calls it, or to nothing if \'inline\' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif]) -m4trace:configure.in:661: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#endif]) -m4trace:configure.in:661: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN]) -m4trace:configure.in:661: -1- m4_pattern_allow([^WORDS_BIGENDIAN$]) -m4trace:configure.in:661: -1- AC_DEFINE_TRACE_LITERAL([AC_APPLE_UNIVERSAL_BUILD]) -m4trace:configure.in:661: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$]) -m4trace:configure.in:661: -1- AH_OUTPUT([AC_APPLE_UNIVERSAL_BUILD], [/* Define if building universal (internal helper macro) */ -@%:@undef AC_APPLE_UNIVERSAL_BUILD]) -m4trace:configure.in:662: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRINGIZE]) -m4trace:configure.in:662: -1- m4_pattern_allow([^HAVE_STRINGIZE$]) -m4trace:configure.in:662: -1- AH_OUTPUT([HAVE_STRINGIZE], [/* Define to 1 if cpp supports the ANSI @%:@ stringizing operator. */ -@%:@undef HAVE_STRINGIZE]) -m4trace:configure.in:663: -1- _m4_warn([obsolete], [The macro `AC_C_LONG_DOUBLE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/types.m4:451: AC_C_LONG_DOUBLE is expanded from... -configure.in:663: the top level]) -m4trace:configure.in:663: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_DOUBLE_WIDER]) -m4trace:configure.in:663: -1- m4_pattern_allow([^HAVE_LONG_DOUBLE_WIDER$]) -m4trace:configure.in:663: -1- AH_OUTPUT([HAVE_LONG_DOUBLE_WIDER], [/* Define to 1 if the type `long double\' works and has more range or precision - than `double\'. */ -@%:@undef HAVE_LONG_DOUBLE_WIDER]) -m4trace:configure.in:663: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_DOUBLE]) -m4trace:configure.in:663: -1- m4_pattern_allow([^HAVE_LONG_DOUBLE$]) -m4trace:configure.in:663: -1- AH_OUTPUT([HAVE_LONG_DOUBLE], [/* Define to 1 if the type `long double\' works and has more range or precision - than `double\'. */ -@%:@undef HAVE_LONG_DOUBLE]) -m4trace:configure.in:664: -1- AC_DEFINE_TRACE_LITERAL([PROTOTYPES]) -m4trace:configure.in:664: -1- m4_pattern_allow([^PROTOTYPES$]) -m4trace:configure.in:664: -1- AH_OUTPUT([PROTOTYPES], [/* Define to 1 if the C compiler supports function prototypes. */ -@%:@undef PROTOTYPES]) -m4trace:configure.in:664: -1- AC_DEFINE_TRACE_LITERAL([__PROTOTYPES]) -m4trace:configure.in:664: -1- m4_pattern_allow([^__PROTOTYPES$]) -m4trace:configure.in:664: -1- AH_OUTPUT([__PROTOTYPES], [/* Define like PROTOTYPES; this can be used by system headers. */ -@%:@undef __PROTOTYPES]) -m4trace:configure.in:665: -1- AH_OUTPUT([__CHAR_UNSIGNED__], [/* Define to 1 if type `char\' is unsigned and you are not using gcc. */ -#ifndef __CHAR_UNSIGNED__ -# undef __CHAR_UNSIGNED__ -#endif]) -m4trace:configure.in:665: -1- AC_DEFINE_TRACE_LITERAL([__CHAR_UNSIGNED__]) -m4trace:configure.in:665: -1- m4_pattern_allow([^__CHAR_UNSIGNED__$]) -m4trace:configure.in:666: -1- AC_DEFINE_TRACE_LITERAL([volatile]) -m4trace:configure.in:666: -1- m4_pattern_allow([^volatile$]) -m4trace:configure.in:666: -1- AH_OUTPUT([volatile], [/* Define to empty if the keyword `volatile\' does not work. Warning: valid - code using `volatile\' can become incorrect without. Disable with care. */ -@%:@undef volatile]) -m4trace:configure.in:667: -1- AH_OUTPUT([restrict], [/* Define to the equivalent of the C99 \'restrict\' keyword, or to - nothing if this is not supported. Do not define if restrict is - supported directly. */ -#undef restrict -/* Work around a bug in Sun C++: it does not support _Restrict or - __restrict__, even though the corresponding Sun C compiler ends up with - "#define restrict _Restrict" or "#define restrict __restrict__" in the - previous line. Perhaps some future version of Sun C++ will work with - restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ -#if defined __SUNPRO_CC && !defined __RESTRICT -# define _Restrict -# define __restrict__ -#endif]) -m4trace:configure.in:667: -1- AC_DEFINE_TRACE_LITERAL([restrict]) -m4trace:configure.in:667: -1- m4_pattern_allow([^restrict$]) -m4trace:configure.in:667: -1- AC_DEFINE_TRACE_LITERAL([restrict]) -m4trace:configure.in:667: -1- m4_pattern_allow([^restrict$]) -m4trace:configure.in:670: -1- AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl]) -m4trace:configure.in:670: -1- AC_SUBST([MKINSTALLDIRS]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([MKINSTALLDIRS]) -m4trace:configure.in:670: -1- m4_pattern_allow([^MKINSTALLDIRS$]) -m4trace:configure.in:670: -1- AM_NLS -m4trace:configure.in:670: -1- AC_SUBST([USE_NLS]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([USE_NLS]) -m4trace:configure.in:670: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.in:670: -1- AC_SUBST([MSGFMT]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([MSGFMT]) -m4trace:configure.in:670: -1- m4_pattern_allow([^MSGFMT$]) -m4trace:configure.in:670: -1- AC_SUBST([GMSGFMT]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([GMSGFMT]) -m4trace:configure.in:670: -1- m4_pattern_allow([^GMSGFMT$]) -m4trace:configure.in:670: -1- AC_SUBST([XGETTEXT]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([XGETTEXT]) -m4trace:configure.in:670: -1- m4_pattern_allow([^XGETTEXT$]) -m4trace:configure.in:670: -1- AC_SUBST([MSGMERGE]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([MSGMERGE]) -m4trace:configure.in:670: -1- m4_pattern_allow([^MSGMERGE$]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete. -You should run autoupdate.], [../../lib/autoconf/status.m4:1028: AC_OUTPUT_COMMANDS is expanded from... -aclocal.m4:3707: AM_PO_SUBDIRS is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([off_t]) -m4trace:configure.in:670: -1- m4_pattern_allow([^off_t$]) -m4trace:configure.in:670: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if does not define. */ -@%:@undef off_t]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([size_t]) -m4trace:configure.in:670: -1- m4_pattern_allow([^size_t$]) -m4trace:configure.in:670: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef size_t]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_ALLOCA_H$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have and it should be used (not on Ultrix). - */ -@%:@undef HAVE_ALLOCA_H]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_ALLOCA$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ -@%:@undef HAVE_ALLOCA]) -m4trace:configure.in:670: -1- AC_LIBSOURCE([alloca.c]) -m4trace:configure.in:670: -1- AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([ALLOCA]) -m4trace:configure.in:670: -1- m4_pattern_allow([^ALLOCA$]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) -m4trace:configure.in:670: -1- m4_pattern_allow([^C_ALLOCA$]) -m4trace:configure.in:670: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ -@%:@undef C_ALLOCA]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) -m4trace:configure.in:670: -1- m4_pattern_allow([^CRAY_STACKSEG_END$]) -m4trace:configure.in:670: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c\' support on those systems. - */ -@%:@undef CRAY_STACKSEG_END]) -m4trace:configure.in:670: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -@%:@undef STACK_DIRECTION]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) -m4trace:configure.in:670: -1- m4_pattern_allow([^STACK_DIRECTION$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -@%:@undef HAVE_GETPAGESIZE]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_MMAP$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ -@%:@undef HAVE_MMAP]) -m4trace:configure.in:670: -1- AC_SUBST([GLIBC21]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([GLIBC21]) -m4trace:configure.in:670: -1- m4_pattern_allow([^GLIBC21$]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2613: gt_INTDIV0 is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([INTDIV0_RAISES_SIGFPE]) -m4trace:configure.in:670: -1- m4_pattern_allow([^INTDIV0_RAISES_SIGFPE$]) -m4trace:configure.in:670: -1- AH_OUTPUT([INTDIV0_RAISES_SIGFPE], [/* Define if integer division by zero raises signal SIGFPE. */ -@%:@undef INTDIV0_RAISES_SIGFPE]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2715: jm_AC_HEADER_INTTYPES_H is expanded from... -aclocal.m4:4016: jm_AC_TYPE_UINTMAX_T is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H_WITH_UINTMAX]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_INTTYPES_H_WITH_UINTMAX$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_INTTYPES_H_WITH_UINTMAX], [/* Define if exists, doesn\'t clash with , and - declares uintmax_t. */ -@%:@undef HAVE_INTTYPES_H_WITH_UINTMAX]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:3986: jm_AC_HEADER_STDINT_H is expanded from... -aclocal.m4:4016: jm_AC_TYPE_UINTMAX_T is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDINT_H_WITH_UINTMAX]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_STDINT_H_WITH_UINTMAX$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_STDINT_H_WITH_UINTMAX], [/* Define if exists, doesn\'t clash with , and declares - uintmax_t. */ -@%:@undef HAVE_STDINT_H_WITH_UINTMAX]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:4043: jm_AC_TYPE_UNSIGNED_LONG_LONG is expanded from... -aclocal.m4:4016: jm_AC_TYPE_UINTMAX_T is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_UNSIGNED_LONG_LONG], [/* Define if you have the unsigned long long type. */ -@%:@undef HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) -m4trace:configure.in:670: -1- m4_pattern_allow([^uintmax_t$]) -m4trace:configure.in:670: -1- AH_OUTPUT([uintmax_t], [/* Define to unsigned long or unsigned long long if and - don\'t define. */ -@%:@undef uintmax_t]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINTMAX_T]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_UINTMAX_T$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_UINTMAX_T], [/* Define if you have the \'uintmax_t\' type in or . */ -@%:@undef HAVE_UINTMAX_T]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2688: gt_HEADER_INTTYPES_H is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_INTTYPES_H$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define if exists and doesn\'t clash with . */ -@%:@undef HAVE_INTTYPES_H]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2743: gt_INTTYPES_PRI is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([PRI_MACROS_BROKEN]) -m4trace:configure.in:670: -1- m4_pattern_allow([^PRI_MACROS_BROKEN$]) -m4trace:configure.in:670: -1- AH_OUTPUT([PRI_MACROS_BROKEN], [/* Define if exists and defines unusable PRI* macros. */ -@%:@undef PRI_MACROS_BROKEN]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ARGZ_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LIMITS_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LOCALE_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_NL_TYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_NL_TYPES_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MALLOC_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDDEF_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRING_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_FEOF_UNLOCKED], [/* Define to 1 if you have the `feof_unlocked\' function. */ -@%:@undef HAVE_FEOF_UNLOCKED]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_FGETS_UNLOCKED], [/* Define to 1 if you have the `fgets_unlocked\' function. */ -@%:@undef HAVE_FGETS_UNLOCKED]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_GETC_UNLOCKED], [/* Define to 1 if you have the `getc_unlocked\' function. */ -@%:@undef HAVE_GETC_UNLOCKED]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ -@%:@undef HAVE_GETCWD]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_GETEGID], [/* Define to 1 if you have the `getegid\' function. */ -@%:@undef HAVE_GETEGID]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_GETEUID], [/* Define to 1 if you have the `geteuid\' function. */ -@%:@undef HAVE_GETEUID]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_GETGID], [/* Define to 1 if you have the `getgid\' function. */ -@%:@undef HAVE_GETGID]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_GETUID], [/* Define to 1 if you have the `getuid\' function. */ -@%:@undef HAVE_GETUID]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ -@%:@undef HAVE_MEMPCPY]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ -@%:@undef HAVE_MUNMAP]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ -@%:@undef HAVE_PUTENV]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ -@%:@undef HAVE_SETENV]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ -@%:@undef HAVE_SETLOCALE]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_LOCALECONV], [/* Define to 1 if you have the `localeconv\' function. */ -@%:@undef HAVE_LOCALECONV]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ -@%:@undef HAVE_STPCPY]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ -@%:@undef HAVE_STRCASECMP]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ -@%:@undef HAVE_STRDUP]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ -@%:@undef HAVE_STRTOUL]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_TSEARCH], [/* Define to 1 if you have the `tsearch\' function. */ -@%:@undef HAVE_TSEARCH]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ -@%:@undef HAVE___ARGZ_COUNT]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ -@%:@undef HAVE___ARGZ_STRINGIFY]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ -@%:@undef HAVE___ARGZ_NEXT]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE___FSETLOCKING], [/* Define to 1 if you have the `__fsetlocking\' function. */ -@%:@undef HAVE___FSETLOCKING]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2521: AM_ICONV_LINK is expanded from... -aclocal.m4:2576: AM_ICONV is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2521: AM_ICONV_LINK is expanded from... -aclocal.m4:2576: AM_ICONV is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_ICONV$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_ICONV], [/* Define if you have the iconv() function. */ -@%:@undef HAVE_ICONV]) -m4trace:configure.in:670: -1- AC_SUBST([LIBICONV]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([LIBICONV]) -m4trace:configure.in:670: -1- m4_pattern_allow([^LIBICONV$]) -m4trace:configure.in:670: -1- AC_SUBST([LTLIBICONV]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([LTLIBICONV]) -m4trace:configure.in:670: -1- m4_pattern_allow([^LTLIBICONV$]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:2576: AM_ICONV is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([ICONV_CONST]) -m4trace:configure.in:670: -1- m4_pattern_allow([^ICONV_CONST$]) -m4trace:configure.in:670: -1- AH_OUTPUT([ICONV_CONST], [/* Define as const if the declaration of iconv() needs const. */ -@%:@undef ICONV_CONST]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2040: AM_LANGINFO_CODESET is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_LANGINFO_CODESET], [/* Define if you have and nl_langinfo(CODESET). */ -@%:@undef HAVE_LANGINFO_CODESET]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2810: AM_LC_MESSAGES is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LC_MESSAGES]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_LC_MESSAGES$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_LC_MESSAGES], [/* Define if your file defines LC_MESSAGES. */ -@%:@undef HAVE_LC_MESSAGES]) -m4trace:configure.in:670: -1- AC_SUBST([INTLBISON]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([INTLBISON]) -m4trace:configure.in:670: -1- m4_pattern_allow([^INTLBISON$]) -m4trace:configure.in:670: -1- AM_NLS -m4trace:configure.in:670: -1- AC_SUBST([USE_NLS]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([USE_NLS]) -m4trace:configure.in:670: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:670: the top level]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS]) -m4trace:configure.in:670: -1- m4_pattern_allow([^ENABLE_NLS$]) -m4trace:configure.in:670: -1- AH_OUTPUT([ENABLE_NLS], [/* Define to 1 if translation of program messages to the user\'s native - language is requested. */ -@%:@undef ENABLE_NLS]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETTEXT]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_GETTEXT$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_GETTEXT], [/* Define if the GNU gettext() function is already present or preinstalled. */ -@%:@undef HAVE_GETTEXT]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DCGETTEXT]) -m4trace:configure.in:670: -1- m4_pattern_allow([^HAVE_DCGETTEXT$]) -m4trace:configure.in:670: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define if the GNU dcgettext() function is already present or preinstalled. - */ -@%:@undef HAVE_DCGETTEXT]) -m4trace:configure.in:670: -1- AC_SUBST([BUILD_INCLUDED_LIBINTL]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([BUILD_INCLUDED_LIBINTL]) -m4trace:configure.in:670: -1- m4_pattern_allow([^BUILD_INCLUDED_LIBINTL$]) -m4trace:configure.in:670: -1- AC_SUBST([USE_INCLUDED_LIBINTL]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([USE_INCLUDED_LIBINTL]) -m4trace:configure.in:670: -1- m4_pattern_allow([^USE_INCLUDED_LIBINTL$]) -m4trace:configure.in:670: -1- AC_SUBST([CATOBJEXT]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([CATOBJEXT]) -m4trace:configure.in:670: -1- m4_pattern_allow([^CATOBJEXT$]) -m4trace:configure.in:670: -1- AC_SUBST([DATADIRNAME]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([DATADIRNAME]) -m4trace:configure.in:670: -1- m4_pattern_allow([^DATADIRNAME$]) -m4trace:configure.in:670: -1- AC_SUBST([INSTOBJEXT]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([INSTOBJEXT]) -m4trace:configure.in:670: -1- m4_pattern_allow([^INSTOBJEXT$]) -m4trace:configure.in:670: -1- AC_SUBST([GENCAT]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([GENCAT]) -m4trace:configure.in:670: -1- m4_pattern_allow([^GENCAT$]) -m4trace:configure.in:670: -1- AC_SUBST([INTLOBJS]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([INTLOBJS]) -m4trace:configure.in:670: -1- m4_pattern_allow([^INTLOBJS$]) -m4trace:configure.in:670: -1- AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([INTL_LIBTOOL_SUFFIX_PREFIX]) -m4trace:configure.in:670: -1- m4_pattern_allow([^INTL_LIBTOOL_SUFFIX_PREFIX$]) -m4trace:configure.in:670: -1- AC_SUBST([INTLLIBS]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([INTLLIBS]) -m4trace:configure.in:670: -1- m4_pattern_allow([^INTLLIBS$]) -m4trace:configure.in:670: -1- AC_SUBST([LIBINTL]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([LIBINTL]) -m4trace:configure.in:670: -1- m4_pattern_allow([^LIBINTL$]) -m4trace:configure.in:670: -1- AC_SUBST([LTLIBINTL]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([LTLIBINTL]) -m4trace:configure.in:670: -1- m4_pattern_allow([^LTLIBINTL$]) -m4trace:configure.in:670: -1- AC_SUBST([POSUB]) -m4trace:configure.in:670: -1- AC_SUBST_TRACE([POSUB]) -m4trace:configure.in:670: -1- m4_pattern_allow([^POSUB$]) -m4trace:configure.in:673: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -@%:@undef HAVE_DIRENT_H]) -m4trace:configure.in:673: -1- AH_OUTPUT([HAVE_SYS_NDIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -@%:@undef HAVE_SYS_NDIR_H]) -m4trace:configure.in:673: -1- AH_OUTPUT([HAVE_SYS_DIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -@%:@undef HAVE_SYS_DIR_H]) -m4trace:configure.in:673: -1- AH_OUTPUT([HAVE_NDIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. */ -@%:@undef HAVE_NDIR_H]) -m4trace:configure.in:674: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME]) -m4trace:configure.in:674: -1- m4_pattern_allow([^TIME_WITH_SYS_TIME$]) -m4trace:configure.in:674: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both and . */ -@%:@undef TIME_WITH_SYS_TIME]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_INTTYPES_H]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_INTTYPES_H$]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_STDARG_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDARG_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_VARARGS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_VARARGS_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LIMITS_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRING_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MEMORY_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LOCALE_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_TERMCAP_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_TERMCAP_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_TERMIO_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_TERMIO_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_TERMIOS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_TERMIOS_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_DLFCN_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_STDBOOL_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDBOOL_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDDEF_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDINT_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_NETDB_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_PWD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_PWD_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_GRP_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_GRP_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRINGS_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_REGEX_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_REGEX_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_SYSLOG_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYSLOG_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_ULIMIT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ULIMIT_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_PTE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PTE_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_STREAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_STREAM_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_SELECT_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_FILE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_FILE_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_RESOURCE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_RESOURCE_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_SOCKET_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_STAT_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIME_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_TIMES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIMES_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TYPES_H]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_WAIT_H]) -m4trace:configure.in:685: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_NETINET_IN_H]) -m4trace:configure.in:685: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ARPA_INET_H]) -m4trace:configure.in:696: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) -m4trace:configure.in:696: -1- m4_pattern_allow([^HAVE_ALLOCA_H$]) -m4trace:configure.in:696: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have and it should be used (not on Ultrix). - */ -@%:@undef HAVE_ALLOCA_H]) -m4trace:configure.in:696: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) -m4trace:configure.in:696: -1- m4_pattern_allow([^HAVE_ALLOCA$]) -m4trace:configure.in:696: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ -@%:@undef HAVE_ALLOCA]) -m4trace:configure.in:696: -1- AC_LIBSOURCE([alloca.c]) -m4trace:configure.in:696: -1- AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext]) -m4trace:configure.in:696: -1- AC_SUBST_TRACE([ALLOCA]) -m4trace:configure.in:696: -1- m4_pattern_allow([^ALLOCA$]) -m4trace:configure.in:696: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) -m4trace:configure.in:696: -1- m4_pattern_allow([^C_ALLOCA$]) -m4trace:configure.in:696: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ -@%:@undef C_ALLOCA]) -m4trace:configure.in:696: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) -m4trace:configure.in:696: -1- m4_pattern_allow([^CRAY_STACKSEG_END$]) -m4trace:configure.in:696: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c\' support on those systems. - */ -@%:@undef CRAY_STACKSEG_END]) -m4trace:configure.in:696: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -@%:@undef STACK_DIRECTION]) -m4trace:configure.in:696: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) -m4trace:configure.in:696: -1- m4_pattern_allow([^STACK_DIRECTION$]) -m4trace:configure.in:697: -1- AC_DEFINE_TRACE_LITERAL([GETPGRP_VOID]) -m4trace:configure.in:697: -1- m4_pattern_allow([^GETPGRP_VOID$]) -m4trace:configure.in:697: -1- AH_OUTPUT([GETPGRP_VOID], [/* Define to 1 if the `getpgrp\' function requires zero arguments. */ -@%:@undef GETPGRP_VOID]) -m4trace:configure.in:698: -1- _m4_warn([obsolete], [The macro `AC_FUNC_SETVBUF_REVERSED' is obsolete. Remove it and all references to SETVBUF_REVERSED.], [../../lib/autoconf/functions.m4:1714: AC_FUNC_SETVBUF_REVERSED is expanded from... -configure.in:698: the top level]) -m4trace:configure.in:699: -1- AH_OUTPUT([HAVE_VPRINTF], [/* Define to 1 if you have the `vprintf\' function. */ -@%:@undef HAVE_VPRINTF]) -m4trace:configure.in:699: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VPRINTF]) -m4trace:configure.in:699: -1- m4_pattern_allow([^HAVE_VPRINTF$]) -m4trace:configure.in:699: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DOPRNT]) -m4trace:configure.in:699: -1- m4_pattern_allow([^HAVE_DOPRNT$]) -m4trace:configure.in:699: -1- AH_OUTPUT([HAVE_DOPRNT], [/* Define to 1 if you don\'t have `vprintf\' but do have `_doprnt.\' */ -@%:@undef HAVE_DOPRNT]) -m4trace:configure.in:700: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCOLL]) -m4trace:configure.in:700: -1- m4_pattern_allow([^HAVE_STRCOLL$]) -m4trace:configure.in:700: -1- AH_OUTPUT([HAVE_STRCOLL], [/* Define to 1 if you have the `strcoll\' function and it is properly defined. - */ -@%:@undef HAVE_STRCOLL]) -m4trace:configure.in:721: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VPRINTF]) -m4trace:configure.in:721: -1- m4_pattern_allow([^HAVE_VPRINTF$]) -m4trace:configure.in:726: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS vprint.$ac_objext"]) -m4trace:configure.in:726: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:726: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:726: -1- AC_LIBSOURCE([vprint.c]) -m4trace:configure.in:730: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete. -You should run autoupdate.], [../../lib/autoconf/types.m4:738: AC_TYPE_SIGNAL is expanded from... -configure.in:730: the top level]) -m4trace:configure.in:730: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) -m4trace:configure.in:730: -1- m4_pattern_allow([^RETSIGTYPE$]) -m4trace:configure.in:730: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ -@%:@undef RETSIGTYPE]) -m4trace:configure.in:733: -2- AC_DEFINE_TRACE_LITERAL([HAVE_SETOSTYPE]) -m4trace:configure.in:733: -2- m4_pattern_allow([^HAVE_SETOSTYPE$]) -m4trace:configure.in:734: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WAIT3]) -m4trace:configure.in:734: -2- m4_pattern_allow([^HAVE_WAIT3$]) -m4trace:configure.in:737: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MKFIFO]) -m4trace:configure.in:737: -2- m4_pattern_allow([^HAVE_MKFIFO$]) -m4trace:configure.in:737: -2- AC_DEFINE_TRACE_LITERAL([MKFIFO_MISSING]) -m4trace:configure.in:737: -2- m4_pattern_allow([^MKFIFO_MISSING$]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_DUP2], [/* Define to 1 if you have the `dup2\' function. */ -@%:@undef HAVE_DUP2]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_EACCESS], [/* Define to 1 if you have the `eaccess\' function. */ -@%:@undef HAVE_EACCESS]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */ -@%:@undef HAVE_FCNTL]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_GETDTABLESIZE], [/* Define to 1 if you have the `getdtablesize\' function. */ -@%:@undef HAVE_GETDTABLESIZE]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_GETGROUPS], [/* Define to 1 if you have the `getgroups\' function. */ -@%:@undef HAVE_GETGROUPS]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_GETHOSTNAME], [/* Define to 1 if you have the `gethostname\' function. */ -@%:@undef HAVE_GETHOSTNAME]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -@%:@undef HAVE_GETPAGESIZE]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_GETPEERNAME], [/* Define to 1 if you have the `getpeername\' function. */ -@%:@undef HAVE_GETPEERNAME]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_GETRLIMIT], [/* Define to 1 if you have the `getrlimit\' function. */ -@%:@undef HAVE_GETRLIMIT]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_GETRUSAGE], [/* Define to 1 if you have the `getrusage\' function. */ -@%:@undef HAVE_GETRUSAGE]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ -@%:@undef HAVE_GETTIMEOFDAY]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_KILL], [/* Define to 1 if you have the `kill\' function. */ -@%:@undef HAVE_KILL]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_KILLPG], [/* Define to 1 if you have the `killpg\' function. */ -@%:@undef HAVE_KILLPG]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */ -@%:@undef HAVE_LSTAT]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_READLINK], [/* Define to 1 if you have the `readlink\' function. */ -@%:@undef HAVE_READLINK]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_SBRK], [/* Define to 1 if you have the `sbrk\' function. */ -@%:@undef HAVE_SBRK]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */ -@%:@undef HAVE_SELECT]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_SETDTABLESIZE], [/* Define to 1 if you have the `setdtablesize\' function. */ -@%:@undef HAVE_SETDTABLESIZE]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_SETITIMER], [/* Define to 1 if you have the `setitimer\' function. */ -@%:@undef HAVE_SETITIMER]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_TCGETPGRP], [/* Define to 1 if you have the `tcgetpgrp\' function. */ -@%:@undef HAVE_TCGETPGRP]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_UNAME], [/* Define to 1 if you have the `uname\' function. */ -@%:@undef HAVE_UNAME]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_ULIMIT], [/* Define to 1 if you have the `ulimit\' function. */ -@%:@undef HAVE_ULIMIT]) -m4trace:configure.in:740: -1- AH_OUTPUT([HAVE_WAITPID], [/* Define to 1 if you have the `waitpid\' function. */ -@%:@undef HAVE_WAITPID]) -m4trace:configure.in:744: -1- AH_OUTPUT([HAVE_RENAME], [/* Define to 1 if you have the `rename\' function. */ -@%:@undef HAVE_RENAME]) -m4trace:configure.in:744: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RENAME]) -m4trace:configure.in:744: -1- m4_pattern_allow([^HAVE_RENAME$]) -m4trace:configure.in:744: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS rename.$ac_objext"]) -m4trace:configure.in:744: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:744: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:744: -1- AC_LIBSOURCE([rename.c]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_BCOPY], [/* Define to 1 if you have the `bcopy\' function. */ -@%:@undef HAVE_BCOPY]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_BZERO], [/* Define to 1 if you have the `bzero\' function. */ -@%:@undef HAVE_BZERO]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_CONFSTR], [/* Define to 1 if you have the `confstr\' function. */ -@%:@undef HAVE_CONFSTR]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_FACCESSAT], [/* Define to 1 if you have the `faccessat\' function. */ -@%:@undef HAVE_FACCESSAT]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_FNMATCH], [/* Define to 1 if you have the `fnmatch\' function. */ -@%:@undef HAVE_FNMATCH]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_GETADDRINFO], [/* Define to 1 if you have the `getaddrinfo\' function. */ -@%:@undef HAVE_GETADDRINFO]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_GETHOSTBYNAME], [/* Define to 1 if you have the `gethostbyname\' function. */ -@%:@undef HAVE_GETHOSTBYNAME]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_GETSERVBYNAME], [/* Define to 1 if you have the `getservbyname\' function. */ -@%:@undef HAVE_GETSERVBYNAME]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_GETSERVENT], [/* Define to 1 if you have the `getservent\' function. */ -@%:@undef HAVE_GETSERVENT]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_INET_ATON], [/* Define to 1 if you have the `inet_aton\' function. */ -@%:@undef HAVE_INET_ATON]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_IMAXDIV], [/* Define to 1 if you have the `imaxdiv\' function. */ -@%:@undef HAVE_IMAXDIV]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the `memmove\' function. */ -@%:@undef HAVE_MEMMOVE]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_PATHCONF], [/* Define to 1 if you have the `pathconf\' function. */ -@%:@undef HAVE_PATHCONF]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ -@%:@undef HAVE_PUTENV]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_RAISE], [/* Define to 1 if you have the `raise\' function. */ -@%:@undef HAVE_RAISE]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_REGCOMP], [/* Define to 1 if you have the `regcomp\' function. */ -@%:@undef HAVE_REGCOMP]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_REGEXEC], [/* Define to 1 if you have the `regexec\' function. */ -@%:@undef HAVE_REGEXEC]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ -@%:@undef HAVE_SETENV]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_SETLINEBUF], [/* Define to 1 if you have the `setlinebuf\' function. */ -@%:@undef HAVE_SETLINEBUF]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ -@%:@undef HAVE_SETLOCALE]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_SETVBUF], [/* Define to 1 if you have the `setvbuf\' function. */ -@%:@undef HAVE_SETVBUF]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_SIGINTERRUPT], [/* Define to 1 if you have the `siginterrupt\' function. */ -@%:@undef HAVE_SIGINTERRUPT]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */ -@%:@undef HAVE_STRCHR]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_SYSCONF], [/* Define to 1 if you have the `sysconf\' function. */ -@%:@undef HAVE_SYSCONF]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_SYSLOG], [/* Define to 1 if you have the `syslog\' function. */ -@%:@undef HAVE_SYSLOG]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_TCGETATTR], [/* Define to 1 if you have the `tcgetattr\' function. */ -@%:@undef HAVE_TCGETATTR]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_TIMES], [/* Define to 1 if you have the `times\' function. */ -@%:@undef HAVE_TIMES]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_TTYNAME], [/* Define to 1 if you have the `ttyname\' function. */ -@%:@undef HAVE_TTYNAME]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_TZSET], [/* Define to 1 if you have the `tzset\' function. */ -@%:@undef HAVE_TZSET]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_UNSETENV], [/* Define to 1 if you have the `unsetenv\' function. */ -@%:@undef HAVE_UNSETENV]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_VASPRINTF], [/* Define to 1 if you have the `vasprintf\' function. */ -@%:@undef HAVE_VASPRINTF]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_ASPRINTF], [/* Define to 1 if you have the `asprintf\' function. */ -@%:@undef HAVE_ASPRINTF]) -m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_ISASCII], [/* Define to 1 if you have the `isascii\' function. */ -@%:@undef HAVE_ISASCII]) -m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_ISBLANK], [/* Define to 1 if you have the `isblank\' function. */ -@%:@undef HAVE_ISBLANK]) -m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_ISGRAPH], [/* Define to 1 if you have the `isgraph\' function. */ -@%:@undef HAVE_ISGRAPH]) -m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_ISPRINT], [/* Define to 1 if you have the `isprint\' function. */ -@%:@undef HAVE_ISPRINT]) -m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_ISSPACE], [/* Define to 1 if you have the `isspace\' function. */ -@%:@undef HAVE_ISSPACE]) -m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_ISXDIGIT], [/* Define to 1 if you have the `isxdigit\' function. */ -@%:@undef HAVE_ISXDIGIT]) -m4trace:configure.in:755: -1- AH_OUTPUT([HAVE_GETPWENT], [/* Define to 1 if you have the `getpwent\' function. */ -@%:@undef HAVE_GETPWENT]) -m4trace:configure.in:755: -1- AH_OUTPUT([HAVE_GETPWNAM], [/* Define to 1 if you have the `getpwnam\' function. */ -@%:@undef HAVE_GETPWNAM]) -m4trace:configure.in:755: -1- AH_OUTPUT([HAVE_GETPWUID], [/* Define to 1 if you have the `getpwuid\' function. */ -@%:@undef HAVE_GETPWUID]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ -@%:@undef HAVE_GETCWD]) -m4trace:configure.in:756: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETCWD]) -m4trace:configure.in:756: -1- m4_pattern_allow([^HAVE_GETCWD$]) -m4trace:configure.in:756: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS getcwd.$ac_objext"]) -m4trace:configure.in:756: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:756: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:756: -1- AC_LIBSOURCE([getcwd.c]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */ -@%:@undef HAVE_MEMSET]) -m4trace:configure.in:756: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MEMSET]) -m4trace:configure.in:756: -1- m4_pattern_allow([^HAVE_MEMSET$]) -m4trace:configure.in:756: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS memset.$ac_objext"]) -m4trace:configure.in:756: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:756: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:756: -1- AC_LIBSOURCE([memset.c]) -m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ -@%:@undef HAVE_STRCASECMP]) -m4trace:configure.in:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCASECMP]) -m4trace:configure.in:757: -1- m4_pattern_allow([^HAVE_STRCASECMP$]) -m4trace:configure.in:757: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strcasecmp.$ac_objext"]) -m4trace:configure.in:757: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:757: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:757: -1- AC_LIBSOURCE([strcasecmp.c]) -m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_STRCASESTR], [/* Define to 1 if you have the `strcasestr\' function. */ -@%:@undef HAVE_STRCASESTR]) -m4trace:configure.in:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCASESTR]) -m4trace:configure.in:757: -1- m4_pattern_allow([^HAVE_STRCASESTR$]) -m4trace:configure.in:757: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strcasestr.$ac_objext"]) -m4trace:configure.in:757: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:757: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:757: -1- AC_LIBSOURCE([strcasestr.c]) -m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */ -@%:@undef HAVE_STRERROR]) -m4trace:configure.in:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRERROR]) -m4trace:configure.in:757: -1- m4_pattern_allow([^HAVE_STRERROR$]) -m4trace:configure.in:757: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strerror.$ac_objext"]) -m4trace:configure.in:757: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:757: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:757: -1- AC_LIBSOURCE([strerror.c]) -m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the `strftime\' function. */ -@%:@undef HAVE_STRFTIME]) -m4trace:configure.in:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRFTIME]) -m4trace:configure.in:757: -1- m4_pattern_allow([^HAVE_STRFTIME$]) -m4trace:configure.in:757: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strftime.$ac_objext"]) -m4trace:configure.in:757: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:757: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:757: -1- AC_LIBSOURCE([strftime.c]) -m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_STRNLEN], [/* Define to 1 if you have the `strnlen\' function. */ -@%:@undef HAVE_STRNLEN]) -m4trace:configure.in:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRNLEN]) -m4trace:configure.in:757: -1- m4_pattern_allow([^HAVE_STRNLEN$]) -m4trace:configure.in:757: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strnlen.$ac_objext"]) -m4trace:configure.in:757: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:757: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:757: -1- AC_LIBSOURCE([strnlen.c]) -m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_STRPBRK], [/* Define to 1 if you have the `strpbrk\' function. */ -@%:@undef HAVE_STRPBRK]) -m4trace:configure.in:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRPBRK]) -m4trace:configure.in:757: -1- m4_pattern_allow([^HAVE_STRPBRK$]) -m4trace:configure.in:757: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strpbrk.$ac_objext"]) -m4trace:configure.in:757: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:757: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:757: -1- AC_LIBSOURCE([strpbrk.c]) -m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */ -@%:@undef HAVE_STRSTR]) -m4trace:configure.in:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSTR]) -m4trace:configure.in:757: -1- m4_pattern_allow([^HAVE_STRSTR$]) -m4trace:configure.in:757: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strstr.$ac_objext"]) -m4trace:configure.in:757: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:757: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:757: -1- AC_LIBSOURCE([strstr.c]) -m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_STRTOD], [/* Define to 1 if you have the `strtod\' function. */ -@%:@undef HAVE_STRTOD]) -m4trace:configure.in:758: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOD]) -m4trace:configure.in:758: -1- m4_pattern_allow([^HAVE_STRTOD$]) -m4trace:configure.in:758: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtod.$ac_objext"]) -m4trace:configure.in:758: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:758: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:758: -1- AC_LIBSOURCE([strtod.c]) -m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_STRTOL], [/* Define to 1 if you have the `strtol\' function. */ -@%:@undef HAVE_STRTOL]) -m4trace:configure.in:758: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOL]) -m4trace:configure.in:758: -1- m4_pattern_allow([^HAVE_STRTOL$]) -m4trace:configure.in:758: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtol.$ac_objext"]) -m4trace:configure.in:758: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:758: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:758: -1- AC_LIBSOURCE([strtol.c]) -m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ -@%:@undef HAVE_STRTOUL]) -m4trace:configure.in:758: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOUL]) -m4trace:configure.in:758: -1- m4_pattern_allow([^HAVE_STRTOUL$]) -m4trace:configure.in:758: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoul.$ac_objext"]) -m4trace:configure.in:758: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:758: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:758: -1- AC_LIBSOURCE([strtoul.c]) -m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_STRTOLL], [/* Define to 1 if you have the `strtoll\' function. */ -@%:@undef HAVE_STRTOLL]) -m4trace:configure.in:758: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOLL]) -m4trace:configure.in:758: -1- m4_pattern_allow([^HAVE_STRTOLL$]) -m4trace:configure.in:758: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoll.$ac_objext"]) -m4trace:configure.in:758: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:758: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:758: -1- AC_LIBSOURCE([strtoll.c]) -m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_STRTOULL], [/* Define to 1 if you have the `strtoull\' function. */ -@%:@undef HAVE_STRTOULL]) -m4trace:configure.in:758: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOULL]) -m4trace:configure.in:758: -1- m4_pattern_allow([^HAVE_STRTOULL$]) -m4trace:configure.in:758: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoull.$ac_objext"]) -m4trace:configure.in:758: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:758: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:758: -1- AC_LIBSOURCE([strtoull.c]) -m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_STRTOIMAX], [/* Define to 1 if you have the `strtoimax\' function. */ -@%:@undef HAVE_STRTOIMAX]) -m4trace:configure.in:758: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOIMAX]) -m4trace:configure.in:758: -1- m4_pattern_allow([^HAVE_STRTOIMAX$]) -m4trace:configure.in:758: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoimax.$ac_objext"]) -m4trace:configure.in:758: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:758: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:758: -1- AC_LIBSOURCE([strtoimax.c]) -m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_STRTOUMAX], [/* Define to 1 if you have the `strtoumax\' function. */ -@%:@undef HAVE_STRTOUMAX]) -m4trace:configure.in:758: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOUMAX]) -m4trace:configure.in:758: -1- m4_pattern_allow([^HAVE_STRTOUMAX$]) -m4trace:configure.in:758: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoumax.$ac_objext"]) -m4trace:configure.in:758: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:758: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:758: -1- AC_LIBSOURCE([strtoumax.c]) -m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_DPRINTF], [/* Define to 1 if you have the `dprintf\' function. */ -@%:@undef HAVE_DPRINTF]) -m4trace:configure.in:759: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DPRINTF]) -m4trace:configure.in:759: -1- m4_pattern_allow([^HAVE_DPRINTF$]) -m4trace:configure.in:759: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS dprintf.$ac_objext"]) -m4trace:configure.in:759: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:759: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:759: -1- AC_LIBSOURCE([dprintf.c]) -m4trace:configure.in:760: -1- AH_OUTPUT([HAVE_STRCHRNUL], [/* Define to 1 if you have the `strchrnul\' function. */ -@%:@undef HAVE_STRCHRNUL]) -m4trace:configure.in:760: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCHRNUL]) -m4trace:configure.in:760: -1- m4_pattern_allow([^HAVE_STRCHRNUL$]) -m4trace:configure.in:760: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strchrnul.$ac_objext"]) -m4trace:configure.in:760: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:760: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:760: -1- AC_LIBSOURCE([strchrnul.c]) -m4trace:configure.in:762: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_AUDIT_USER_TTY]) -m4trace:configure.in:762: -1- m4_pattern_allow([^HAVE_DECL_AUDIT_USER_TTY$]) -m4trace:configure.in:762: -1- AH_OUTPUT([HAVE_DECL_AUDIT_USER_TTY], [/* Define to 1 if you have the declaration of `AUDIT_USER_TTY\', and to 0 if - you don\'t. */ -@%:@undef HAVE_DECL_AUDIT_USER_TTY]) -m4trace:configure.in:764: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CONFSTR]) -m4trace:configure.in:764: -1- m4_pattern_allow([^HAVE_DECL_CONFSTR$]) -m4trace:configure.in:764: -1- AH_OUTPUT([HAVE_DECL_CONFSTR], [/* Define to 1 if you have the declaration of `confstr\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_CONFSTR]) -m4trace:configure.in:765: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PRINTF]) -m4trace:configure.in:765: -1- m4_pattern_allow([^HAVE_DECL_PRINTF$]) -m4trace:configure.in:765: -1- AH_OUTPUT([HAVE_DECL_PRINTF], [/* Define to 1 if you have the declaration of `printf\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_PRINTF]) -m4trace:configure.in:766: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SBRK]) -m4trace:configure.in:766: -1- m4_pattern_allow([^HAVE_DECL_SBRK$]) -m4trace:configure.in:766: -1- AH_OUTPUT([HAVE_DECL_SBRK], [/* Define to 1 if you have the declaration of `sbrk\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_SBRK]) -m4trace:configure.in:767: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SETREGID]) -m4trace:configure.in:767: -1- m4_pattern_allow([^HAVE_DECL_SETREGID$]) -m4trace:configure.in:767: -1- AH_OUTPUT([HAVE_DECL_SETREGID], [/* Define to 1 if you have the declaration of `setregid\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_SETREGID]) -m4trace:configure.in:768: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY]) -m4trace:configure.in:768: -1- m4_pattern_allow([^HAVE_DECL_STRCPY$]) -m4trace:configure.in:768: -1- AH_OUTPUT([HAVE_DECL_STRCPY], [/* Define to 1 if you have the declaration of `strcpy\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_STRCPY]) -m4trace:configure.in:769: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL]) -m4trace:configure.in:769: -1- m4_pattern_allow([^HAVE_DECL_STRSIGNAL$]) -m4trace:configure.in:769: -1- AH_OUTPUT([HAVE_DECL_STRSIGNAL], [/* Define to 1 if you have the declaration of `strsignal\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_STRSIGNAL]) -m4trace:configure.in:772: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD]) -m4trace:configure.in:772: -1- m4_pattern_allow([^HAVE_DECL_STRTOLD$]) -m4trace:configure.in:772: -1- AH_OUTPUT([HAVE_DECL_STRTOLD], [/* Define to 1 if you have the declaration of `strtold\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_STRTOLD]) -m4trace:configure.in:772: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2881: AC_CHECK_DECLS is expanded from... -configure.in:772: the top level]) -m4trace:configure.in:772: -1- AC_DEFINE_TRACE_LITERAL([STRTOLD_BROKEN]) -m4trace:configure.in:772: -1- m4_pattern_allow([^STRTOLD_BROKEN$]) -m4trace:configure.in:788: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:788: the top level]) -m4trace:configure.in:789: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:789: the top level]) -m4trace:configure.in:790: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:790: the top level]) -m4trace:configure.in:791: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:791: the top level]) -m4trace:configure.in:792: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:792: the top level]) -m4trace:configure.in:793: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:793: the top level]) -m4trace:configure.in:795: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIME_H]) -m4trace:configure.in:795: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:795: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */ -@%:@undef HAVE_ALARM]) -m4trace:configure.in:795: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS mktime.$ac_objext"]) -m4trace:configure.in:795: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:795: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:795: -1- AC_LIBSOURCE([mktime.c]) -m4trace:configure.in:802: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ARGZ_H]) -m4trace:configure.in:802: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ERRNO_H]) -m4trace:configure.in:802: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_FCNTL_H]) -m4trace:configure.in:802: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MALLOC_H]) -m4trace:configure.in:802: -1- AH_OUTPUT([HAVE_STDIO_EXT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDIO_EXT_H]) -m4trace:configure.in:805: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.in:805: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:805: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:805: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -@%:@undef HAVE_GETPAGESIZE]) -m4trace:configure.in:805: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE]) -m4trace:configure.in:805: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$]) -m4trace:configure.in:805: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) -m4trace:configure.in:805: -1- m4_pattern_allow([^HAVE_MMAP$]) -m4trace:configure.in:805: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ -@%:@undef HAVE_MMAP]) -m4trace:configure.in:806: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ -@%:@undef HAVE___ARGZ_COUNT]) -m4trace:configure.in:806: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ -@%:@undef HAVE___ARGZ_NEXT]) -m4trace:configure.in:806: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ -@%:@undef HAVE___ARGZ_STRINGIFY]) -m4trace:configure.in:806: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define to 1 if you have the `dcgettext\' function. */ -@%:@undef HAVE_DCGETTEXT]) -m4trace:configure.in:806: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ -@%:@undef HAVE_MEMPCPY]) -m4trace:configure.in:806: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ -@%:@undef HAVE_MUNMAP]) -m4trace:configure.in:806: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ -@%:@undef HAVE_STPCPY]) -m4trace:configure.in:806: -1- AH_OUTPUT([HAVE_STRCSPN], [/* Define to 1 if you have the `strcspn\' function. */ -@%:@undef HAVE_STRCSPN]) -m4trace:configure.in:806: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ -@%:@undef HAVE_STRDUP]) -m4trace:configure.in:815: -1- AC_SUBST([INTL_DEP]) -m4trace:configure.in:815: -1- AC_SUBST_TRACE([INTL_DEP]) -m4trace:configure.in:815: -1- m4_pattern_allow([^INTL_DEP$]) -m4trace:configure.in:816: -1- AC_SUBST([INTL_INC]) -m4trace:configure.in:816: -1- AC_SUBST_TRACE([INTL_INC]) -m4trace:configure.in:816: -1- m4_pattern_allow([^INTL_INC$]) -m4trace:configure.in:817: -1- AC_SUBST([LIBINTL_H]) -m4trace:configure.in:817: -1- AC_SUBST_TRACE([LIBINTL_H]) -m4trace:configure.in:817: -1- m4_pattern_allow([^LIBINTL_H$]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_WCTYPE_H]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE_H]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_WCTYPE_H$]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_WCHAR_H]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCHAR_H]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_WCHAR_H$]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LANGINFO_H]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_H]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_LANGINFO_H$]) -m4trace:configure.in:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRLEN]) -m4trace:configure.in:823: -2- m4_pattern_allow([^HAVE_MBRLEN$]) -m4trace:configure.in:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCMP]) -m4trace:configure.in:823: -2- m4_pattern_allow([^HAVE_MBSCMP$]) -m4trace:configure.in:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCMP]) -m4trace:configure.in:823: -2- m4_pattern_allow([^HAVE_MBSCMP$]) -m4trace:configure.in:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSNRTOWCS]) -m4trace:configure.in:823: -2- m4_pattern_allow([^HAVE_MBSNRTOWCS$]) -m4trace:configure.in:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSRTOWCS]) -m4trace:configure.in:823: -2- m4_pattern_allow([^HAVE_MBSRTOWCS$]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_MBSCHR], [/* Define to 1 if you have the `mbschr\' function. */ -@%:@undef HAVE_MBSCHR]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCHR]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_MBSCHR$]) -m4trace:configure.in:823: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS mbschr.$ac_objext"]) -m4trace:configure.in:823: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:823: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:823: -1- AC_LIBSOURCE([mbschr.c]) -m4trace:configure.in:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCRTOMB]) -m4trace:configure.in:823: -2- m4_pattern_allow([^HAVE_WCRTOMB$]) -m4trace:configure.in:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSCOLL]) -m4trace:configure.in:823: -2- m4_pattern_allow([^HAVE_WCSCOLL$]) -m4trace:configure.in:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSDUP]) -m4trace:configure.in:823: -2- m4_pattern_allow([^HAVE_WCSDUP$]) -m4trace:configure.in:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCWIDTH]) -m4trace:configure.in:823: -2- m4_pattern_allow([^HAVE_WCWIDTH$]) -m4trace:configure.in:823: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE]) -m4trace:configure.in:823: -2- m4_pattern_allow([^HAVE_WCTYPE$]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_WCSWIDTH], [/* Define to 1 if you have the `wcswidth\' function. */ -@%:@undef HAVE_WCSWIDTH]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCSWIDTH]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_WCSWIDTH$]) -m4trace:configure.in:823: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS wcswidth.$ac_objext"]) -m4trace:configure.in:823: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:823: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:823: -1- AC_LIBSOURCE([wcswidth.c]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBRTOWC]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_MBRTOWC$]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_MBRTOWC], [/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ -@%:@undef HAVE_MBRTOWC]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSTATE_T]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_MBSTATE_T$]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_ISWLOWER], [/* Define to 1 if you have the `iswlower\' function. */ -@%:@undef HAVE_ISWLOWER]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_ISWUPPER], [/* Define to 1 if you have the `iswupper\' function. */ -@%:@undef HAVE_ISWUPPER]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_TOWLOWER], [/* Define to 1 if you have the `towlower\' function. */ -@%:@undef HAVE_TOWLOWER]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_TOWUPPER], [/* Define to 1 if you have the `towupper\' function. */ -@%:@undef HAVE_TOWUPPER]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_ISWCTYPE], [/* Define to 1 if you have the `iswctype\' function. */ -@%:@undef HAVE_ISWCTYPE]) -m4trace:configure.in:823: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:823: the top level]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$]) -m4trace:configure.in:823: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:823: the top level]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCHAR_T]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_WCHAR_T$]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_WCHAR_T], [/* systems should define this type here */ -@%:@undef HAVE_WCHAR_T]) -m4trace:configure.in:823: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:823: the top level]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE_T]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_WCTYPE_T$]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_WCTYPE_T], [/* systems should define this type here */ -@%:@undef HAVE_WCTYPE_T]) -m4trace:configure.in:823: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:823: the top level]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WINT_T]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_WINT_T$]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_WINT_T], [/* systems should define this type here */ -@%:@undef HAVE_WINT_T]) -m4trace:configure.in:823: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:823: the top level]) -m4trace:configure.in:823: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [../../lib/autoconf/general.m4:2749: AC_RUN_IFELSE is expanded from... -../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:823: the top level]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([WCWIDTH_BROKEN]) -m4trace:configure.in:823: -1- m4_pattern_allow([^WCWIDTH_BROKEN$]) -m4trace:configure.in:823: -1- AH_OUTPUT([WCWIDTH_BROKEN], [/* wcwidth is usually not broken */ -@%:@undef WCWIDTH_BROKEN]) -m4trace:configure.in:823: -1- AH_OUTPUT([HAVE_LOCALE_CHARSET], [/* Define to 1 if you have the `locale_charset\' function. */ -@%:@undef HAVE_LOCALE_CHARSET]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LOCALE_CHARSET]) -m4trace:configure.in:823: -1- m4_pattern_allow([^HAVE_LOCALE_CHARSET$]) -m4trace:configure.in:827: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define to 1 if you have the `dl\' library (-ldl). */ -@%:@undef HAVE_LIBDL]) -m4trace:configure.in:827: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) -m4trace:configure.in:827: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_DLOPEN], [/* Define to 1 if you have the `dlopen\' function. */ -@%:@undef HAVE_DLOPEN]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_DLCLOSE], [/* Define to 1 if you have the `dlclose\' function. */ -@%:@undef HAVE_DLCLOSE]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_DLSYM], [/* Define to 1 if you have the `dlsym\' function. */ -@%:@undef HAVE_DLSYM]) -m4trace:configure.in:832: -1- _m4_warn([obsolete], [The macro `AC_DECL_SYS_SIGLIST' is obsolete. -You should run autoupdate.], [../../lib/autoconf/specific.m4:41: AC_DECL_SYS_SIGLIST is expanded from... -configure.in:832: the top level]) -m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.in:832: -1- m4_pattern_allow([^HAVE_DECL_SYS_SIGLIST$]) -m4trace:configure.in:832: -1- AH_OUTPUT([HAVE_DECL_SYS_SIGLIST], [/* Define to 1 if you have the declaration of `sys_siglist\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.in:836: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:563: BASH_FUNC_INET_ATON is expanded from... -configure.in:836: the top level]) -m4trace:configure.in:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INET_ATON]) -m4trace:configure.in:836: -1- m4_pattern_allow([^HAVE_INET_ATON$]) -m4trace:configure.in:836: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS inet_aton.$ac_objext"]) -m4trace:configure.in:836: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:836: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:836: -1- AC_LIBSOURCE([inet_aton.c]) -m4trace:configure.in:842: -1- AH_OUTPUT([HAVE_LIBSUN], [/* Define to 1 if you have the `sun\' library (-lsun). */ -@%:@undef HAVE_LIBSUN]) -m4trace:configure.in:842: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSUN]) -m4trace:configure.in:842: -1- m4_pattern_allow([^HAVE_LIBSUN$]) -m4trace:configure.in:847: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSOCKET]) -m4trace:configure.in:847: -1- m4_pattern_allow([^HAVE_LIBSOCKET$]) -m4trace:configure.in:847: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPEERNAME]) -m4trace:configure.in:847: -1- m4_pattern_allow([^HAVE_GETPEERNAME$]) -m4trace:configure.in:851: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:732: BASH_FUNC_GETHOSTBYNAME is expanded from... -configure.in:851: the top level]) -m4trace:configure.in:851: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME]) -m4trace:configure.in:851: -1- m4_pattern_allow([^HAVE_GETHOSTBYNAME$]) -m4trace:configure.in:855: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.in:855: -1- m4_pattern_allow([^uid_t$]) -m4trace:configure.in:855: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef uid_t]) -m4trace:configure.in:855: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.in:855: -1- m4_pattern_allow([^gid_t$]) -m4trace:configure.in:855: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef gid_t]) -m4trace:configure.in:855: -1- AC_DEFINE_TRACE_LITERAL([GETGROUPS_T]) -m4trace:configure.in:855: -1- m4_pattern_allow([^GETGROUPS_T$]) -m4trace:configure.in:855: -1- AH_OUTPUT([GETGROUPS_T], [/* Define to the type of elements in the array set by `getgroups\'. Usually - this is either `int\' or `gid_t\'. */ -@%:@undef GETGROUPS_T]) -m4trace:configure.in:856: -1- AC_DEFINE_TRACE_LITERAL([off_t]) -m4trace:configure.in:856: -1- m4_pattern_allow([^off_t$]) -m4trace:configure.in:856: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if does not define. */ -@%:@undef off_t]) -m4trace:configure.in:857: -1- AC_DEFINE_TRACE_LITERAL([mode_t]) -m4trace:configure.in:857: -1- m4_pattern_allow([^mode_t$]) -m4trace:configure.in:857: -1- AH_OUTPUT([mode_t], [/* Define to `int\' if does not define. */ -@%:@undef mode_t]) -m4trace:configure.in:858: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.in:858: -1- m4_pattern_allow([^uid_t$]) -m4trace:configure.in:858: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef uid_t]) -m4trace:configure.in:858: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.in:858: -1- m4_pattern_allow([^gid_t$]) -m4trace:configure.in:858: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef gid_t]) -m4trace:configure.in:859: -1- AC_DEFINE_TRACE_LITERAL([pid_t]) -m4trace:configure.in:859: -1- m4_pattern_allow([^pid_t$]) -m4trace:configure.in:859: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if does not define. */ -@%:@undef pid_t]) -m4trace:configure.in:860: -1- AC_DEFINE_TRACE_LITERAL([size_t]) -m4trace:configure.in:860: -1- m4_pattern_allow([^size_t$]) -m4trace:configure.in:860: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef size_t]) -m4trace:configure.in:861: -1- AC_DEFINE_TRACE_LITERAL([ssize_t]) -m4trace:configure.in:861: -1- m4_pattern_allow([^ssize_t$]) -m4trace:configure.in:861: -1- AH_OUTPUT([ssize_t], [/* Define to `int\' if does not define. */ -@%:@undef ssize_t]) -m4trace:configure.in:862: -1- AC_DEFINE_TRACE_LITERAL([time_t]) -m4trace:configure.in:862: -1- m4_pattern_allow([^time_t$]) -m4trace:configure.in:862: -1- AH_OUTPUT([time_t], [/* Define to `long\' if does not define. */ -@%:@undef time_t]) -m4trace:configure.in:864: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:472: BASH_TYPE_LONG_LONG is expanded from... -configure.in:864: the top level]) -m4trace:configure.in:864: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG]) -m4trace:configure.in:864: -1- m4_pattern_allow([^HAVE_LONG_LONG$]) -m4trace:configure.in:865: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:486: BASH_TYPE_UNSIGNED_LONG_LONG is expanded from... -configure.in:865: the top level]) -m4trace:configure.in:865: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:865: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG$]) -m4trace:configure.in:867: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete. -You should run autoupdate.], [../../lib/autoconf/types.m4:738: AC_TYPE_SIGNAL is expanded from... -configure.in:867: the top level]) -m4trace:configure.in:867: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) -m4trace:configure.in:867: -1- m4_pattern_allow([^RETSIGTYPE$]) -m4trace:configure.in:867: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ -@%:@undef RETSIGTYPE]) -m4trace:configure.in:868: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:537: BASH_TYPE_SIG_ATOMIC_T is expanded from... -configure.in:868: the top level]) -m4trace:configure.in:868: -1- AC_DEFINE_TRACE_LITERAL([sig_atomic_t]) -m4trace:configure.in:868: -1- m4_pattern_allow([^sig_atomic_t$]) -m4trace:configure.in:868: -1- AH_OUTPUT([sig_atomic_t], [/* Define to `int\' if does not define. */ -@%:@undef sig_atomic_t]) -m4trace:configure.in:870: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR]) -m4trace:configure.in:870: -1- m4_pattern_allow([^SIZEOF_CHAR$]) -m4trace:configure.in:870: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of `char\', as computed by sizeof. */ -@%:@undef SIZEOF_CHAR]) -m4trace:configure.in:871: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT]) -m4trace:configure.in:871: -1- m4_pattern_allow([^SIZEOF_SHORT$]) -m4trace:configure.in:871: -1- AH_OUTPUT([SIZEOF_SHORT], [/* The size of `short\', as computed by sizeof. */ -@%:@undef SIZEOF_SHORT]) -m4trace:configure.in:872: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT]) -m4trace:configure.in:872: -1- m4_pattern_allow([^SIZEOF_INT$]) -m4trace:configure.in:872: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of `int\', as computed by sizeof. */ -@%:@undef SIZEOF_INT]) -m4trace:configure.in:873: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG]) -m4trace:configure.in:873: -1- m4_pattern_allow([^SIZEOF_LONG$]) -m4trace:configure.in:873: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of `long\', as computed by sizeof. */ -@%:@undef SIZEOF_LONG]) -m4trace:configure.in:874: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR_P]) -m4trace:configure.in:874: -1- m4_pattern_allow([^SIZEOF_CHAR_P$]) -m4trace:configure.in:874: -1- AH_OUTPUT([SIZEOF_CHAR_P], [/* The size of `char *\', as computed by sizeof. */ -@%:@undef SIZEOF_CHAR_P]) -m4trace:configure.in:875: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_DOUBLE]) -m4trace:configure.in:875: -1- m4_pattern_allow([^SIZEOF_DOUBLE$]) -m4trace:configure.in:875: -1- AH_OUTPUT([SIZEOF_DOUBLE], [/* The size of `double\', as computed by sizeof. */ -@%:@undef SIZEOF_DOUBLE]) -m4trace:configure.in:876: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG]) -m4trace:configure.in:876: -1- m4_pattern_allow([^SIZEOF_LONG_LONG$]) -m4trace:configure.in:876: -1- AH_OUTPUT([SIZEOF_LONG_LONG], [/* The size of `long long\', as computed by sizeof. */ -@%:@undef SIZEOF_LONG_LONG]) -m4trace:configure.in:878: -1- AC_DEFINE_TRACE_LITERAL([u_int]) -m4trace:configure.in:878: -1- m4_pattern_allow([^u_int$]) -m4trace:configure.in:878: -1- AH_OUTPUT([u_int], [/* Define to `unsigned int\' if does not define. */ -@%:@undef u_int]) -m4trace:configure.in:879: -1- AC_DEFINE_TRACE_LITERAL([u_long]) -m4trace:configure.in:879: -1- m4_pattern_allow([^u_long$]) -m4trace:configure.in:879: -1- AH_OUTPUT([u_long], [/* Define to `unsigned long\' if does not define. */ -@%:@undef u_long]) -m4trace:configure.in:881: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:881: -1- m4_pattern_allow([^bits16_t$]) -m4trace:configure.in:881: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if does not define. */ -@%:@undef bits16_t]) -m4trace:configure.in:881: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:881: -1- m4_pattern_allow([^bits16_t$]) -m4trace:configure.in:881: -1- AH_OUTPUT([bits16_t], [/* Define to `char\' if does not define. */ -@%:@undef bits16_t]) -m4trace:configure.in:881: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:881: -1- m4_pattern_allow([^bits16_t$]) -m4trace:configure.in:881: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if does not define. */ -@%:@undef bits16_t]) -m4trace:configure.in:882: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:882: -1- m4_pattern_allow([^u_bits16_t$]) -m4trace:configure.in:882: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if does not define. */ -@%:@undef u_bits16_t]) -m4trace:configure.in:882: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:882: -1- m4_pattern_allow([^u_bits16_t$]) -m4trace:configure.in:882: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned char\' if does not define. */ -@%:@undef u_bits16_t]) -m4trace:configure.in:882: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:882: -1- m4_pattern_allow([^u_bits16_t$]) -m4trace:configure.in:882: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if does not define. */ -@%:@undef u_bits16_t]) -m4trace:configure.in:883: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:883: -1- m4_pattern_allow([^bits32_t$]) -m4trace:configure.in:883: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if does not define. */ -@%:@undef bits32_t]) -m4trace:configure.in:883: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:883: -1- m4_pattern_allow([^bits32_t$]) -m4trace:configure.in:883: -1- AH_OUTPUT([bits32_t], [/* Define to `long\' if does not define. */ -@%:@undef bits32_t]) -m4trace:configure.in:883: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:883: -1- m4_pattern_allow([^bits32_t$]) -m4trace:configure.in:883: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if does not define. */ -@%:@undef bits32_t]) -m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:884: -1- m4_pattern_allow([^u_bits32_t$]) -m4trace:configure.in:884: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef u_bits32_t]) -m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:884: -1- m4_pattern_allow([^u_bits32_t$]) -m4trace:configure.in:884: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned long\' if does not define. */ -@%:@undef u_bits32_t]) -m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:884: -1- m4_pattern_allow([^u_bits32_t$]) -m4trace:configure.in:884: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef u_bits32_t]) -m4trace:configure.in:885: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:885: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.in:885: -1- AH_OUTPUT([bits64_t], [/* Define to `char *\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.in:885: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:885: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.in:885: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.in:885: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:885: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.in:885: -1- AH_OUTPUT([bits64_t], [/* Define to `long long\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.in:885: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:885: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.in:885: -1- AH_OUTPUT([bits64_t], [/* Define to `long\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.in:885: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:885: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.in:885: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:887: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.in:887: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:887: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.in:887: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:887: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.in:887: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long long\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:887: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.in:887: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([STAT_MACROS_BROKEN]) -m4trace:configure.in:890: -1- m4_pattern_allow([^STAT_MACROS_BROKEN$]) -m4trace:configure.in:890: -1- AH_OUTPUT([STAT_MACROS_BROKEN], [/* Define to 1 if the `S_IS*\' macros in do not work properly. */ -@%:@undef STAT_MACROS_BROKEN]) -m4trace:configure.in:895: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HASH_BANG_EXEC]) -m4trace:configure.in:895: -1- m4_pattern_allow([^HAVE_HASH_BANG_EXEC$]) -m4trace:configure.in:900: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:549: BASH_FUNC_LSTAT is expanded from... -configure.in:900: the top level]) -m4trace:configure.in:900: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LSTAT]) -m4trace:configure.in:900: -1- m4_pattern_allow([^HAVE_LSTAT$]) -m4trace:configure.in:904: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1920: BASH_FUNC_CTYPE_NONASCII is expanded from... -configure.in:904: the top level]) -m4trace:configure.in:904: -1- AC_DEFINE_TRACE_LITERAL([CTYPE_NON_ASCII]) -m4trace:configure.in:904: -1- m4_pattern_allow([^CTYPE_NON_ASCII$]) -m4trace:configure.in:905: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:270: BASH_FUNC_DUP2_CLOEXEC_CHECK is expanded from... -configure.in:905: the top level]) -m4trace:configure.in:905: -1- AC_DEFINE_TRACE_LITERAL([DUP2_BROKEN]) -m4trace:configure.in:905: -1- m4_pattern_allow([^DUP2_BROKEN$]) -m4trace:configure.in:906: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1235: BASH_SYS_PGRP_SYNC is expanded from... -configure.in:906: the top level]) -m4trace:configure.in:906: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) -m4trace:configure.in:906: -1- m4_pattern_allow([^PGRP_PIPE$]) -m4trace:configure.in:907: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1195: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:907: the top level]) -m4trace:configure.in:907: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1195: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:907: the top level]) -m4trace:configure.in:907: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1195: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:907: the top level]) -m4trace:configure.in:907: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGNALS]) -m4trace:configure.in:907: -1- m4_pattern_allow([^HAVE_POSIX_SIGNALS$]) -m4trace:configure.in:907: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BSD_SIGNALS]) -m4trace:configure.in:907: -1- m4_pattern_allow([^HAVE_BSD_SIGNALS$]) -m4trace:configure.in:907: -1- AC_DEFINE_TRACE_LITERAL([HAVE_USG_SIGHOLD]) -m4trace:configure.in:907: -1- m4_pattern_allow([^HAVE_USG_SIGHOLD$]) -m4trace:configure.in:910: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:253: BASH_SYS_ERRLIST is expanded from... -configure.in:910: the top level]) -m4trace:configure.in:910: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST]) -m4trace:configure.in:910: -1- m4_pattern_allow([^HAVE_SYS_ERRLIST$]) -m4trace:configure.in:911: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:211: BASH_SYS_SIGLIST is expanded from... -configure.in:911: the top level]) -m4trace:configure.in:911: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SIGLIST]) -m4trace:configure.in:911: -1- m4_pattern_allow([^HAVE_SYS_SIGLIST$]) -m4trace:configure.in:912: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:167: BASH_DECL_UNDER_SYS_SIGLIST is expanded from... -aclocal.m4:184: BASH_UNDER_SYS_SIGLIST is expanded from... -configure.in:912: the top level]) -m4trace:configure.in:912: -1- AC_DEFINE_TRACE_LITERAL([UNDER_SYS_SIGLIST_DECLARED]) -m4trace:configure.in:912: -1- m4_pattern_allow([^UNDER_SYS_SIGLIST_DECLARED$]) -m4trace:configure.in:912: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:184: BASH_UNDER_SYS_SIGLIST is expanded from... -configure.in:912: the top level]) -m4trace:configure.in:912: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNDER_SYS_SIGLIST]) -m4trace:configure.in:912: -1- m4_pattern_allow([^HAVE_UNDER_SYS_SIGLIST$]) -m4trace:configure.in:915: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:366: BASH_TYPE_SIGHANDLER is expanded from... -configure.in:915: the top level]) -m4trace:configure.in:915: -1- AC_DEFINE_TRACE_LITERAL([VOID_SIGHANDLER]) -m4trace:configure.in:915: -1- m4_pattern_allow([^VOID_SIGHANDLER$]) -m4trace:configure.in:916: -1- AC_DEFINE_TRACE_LITERAL([clock_t]) -m4trace:configure.in:916: -1- m4_pattern_allow([^clock_t$]) -m4trace:configure.in:917: -1- AC_DEFINE_TRACE_LITERAL([sigset_t]) -m4trace:configure.in:917: -1- m4_pattern_allow([^sigset_t$]) -m4trace:configure.in:918: -1- AC_DEFINE_TRACE_LITERAL([HAVE_QUAD_T]) -m4trace:configure.in:918: -1- m4_pattern_allow([^HAVE_QUAD_T$]) -m4trace:configure.in:918: -1- AC_DEFINE_TRACE_LITERAL([quad_t]) -m4trace:configure.in:918: -1- m4_pattern_allow([^quad_t$]) -m4trace:configure.in:919: -1- AC_DEFINE_TRACE_LITERAL([intmax_t]) -m4trace:configure.in:919: -1- m4_pattern_allow([^intmax_t$]) -m4trace:configure.in:920: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) -m4trace:configure.in:920: -1- m4_pattern_allow([^uintmax_t$]) -m4trace:configure.in:922: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SOCKLEN_T]) -m4trace:configure.in:922: -1- m4_pattern_allow([^HAVE_SOCKLEN_T$]) -m4trace:configure.in:922: -1- AC_DEFINE_TRACE_LITERAL([socklen_t]) -m4trace:configure.in:922: -1- m4_pattern_allow([^socklen_t$]) -m4trace:configure.in:924: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:507: BASH_TYPE_RLIMIT is expanded from... -configure.in:924: the top level]) -m4trace:configure.in:924: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:507: BASH_TYPE_RLIMIT is expanded from... -configure.in:924: the top level]) -m4trace:configure.in:924: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) -m4trace:configure.in:924: -1- m4_pattern_allow([^RLIMTYPE$]) -m4trace:configure.in:924: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) -m4trace:configure.in:924: -1- m4_pattern_allow([^RLIMTYPE$]) -m4trace:configure.in:926: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INTMAX_T]) -m4trace:configure.in:926: -1- m4_pattern_allow([^SIZEOF_INTMAX_T$]) -m4trace:configure.in:926: -1- AH_OUTPUT([SIZEOF_INTMAX_T], [/* The size of `intmax_t\', as computed by sizeof. */ -@%:@undef SIZEOF_INTMAX_T]) -m4trace:configure.in:929: -2- AC_DEFINE_TRACE_LITERAL([TERMIOS_LDISC]) -m4trace:configure.in:929: -2- m4_pattern_allow([^TERMIOS_LDISC$]) -m4trace:configure.in:930: -2- AC_DEFINE_TRACE_LITERAL([TERMIO_LDISC]) -m4trace:configure.in:930: -2- m4_pattern_allow([^TERMIO_LDISC$]) -m4trace:configure.in:931: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1042: BASH_STRUCT_DIRENT_D_INO is expanded from... -configure.in:931: the top level]) -m4trace:configure.in:931: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_INO]) -m4trace:configure.in:931: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_INO$]) -m4trace:configure.in:932: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1075: BASH_STRUCT_DIRENT_D_FILENO is expanded from... -configure.in:932: the top level]) -m4trace:configure.in:932: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_FILENO]) -m4trace:configure.in:932: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_FILENO$]) -m4trace:configure.in:933: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1108: BASH_STRUCT_DIRENT_D_NAMLEN is expanded from... -configure.in:933: the top level]) -m4trace:configure.in:933: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_NAMLEN]) -m4trace:configure.in:933: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_NAMLEN$]) -m4trace:configure.in:934: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1173: BASH_STRUCT_WINSIZE is expanded from... -configure.in:934: the top level]) -m4trace:configure.in:934: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1173: BASH_STRUCT_WINSIZE is expanded from... -configure.in:934: the top level]) -m4trace:configure.in:934: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_SYS_IOCTL]) -m4trace:configure.in:934: -1- m4_pattern_allow([^STRUCT_WINSIZE_IN_SYS_IOCTL$]) -m4trace:configure.in:934: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_TERMIOS]) -m4trace:configure.in:934: -1- m4_pattern_allow([^STRUCT_WINSIZE_IN_TERMIOS$]) -m4trace:configure.in:935: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIMEVAL]) -m4trace:configure.in:935: -1- m4_pattern_allow([^HAVE_TIMEVAL$]) -m4trace:configure.in:936: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLOCKS]) -m4trace:configure.in:936: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BLOCKS$]) -m4trace:configure.in:936: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLOCKS], [/* Define to 1 if `st_blocks\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_BLOCKS]) -m4trace:configure.in:937: -1- AC_DEFINE_TRACE_LITERAL([TM_IN_SYS_TIME]) -m4trace:configure.in:937: -1- m4_pattern_allow([^TM_IN_SYS_TIME$]) -m4trace:configure.in:937: -1- AH_OUTPUT([TM_IN_SYS_TIME], [/* Define to 1 if your declares `struct tm\'. */ -@%:@undef TM_IN_SYS_TIME]) -m4trace:configure.in:938: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TM_TM_ZONE]) -m4trace:configure.in:938: -1- m4_pattern_allow([^HAVE_STRUCT_TM_TM_ZONE$]) -m4trace:configure.in:938: -1- AH_OUTPUT([HAVE_STRUCT_TM_TM_ZONE], [/* Define to 1 if `tm_zone\' is a member of `struct tm\'. */ -@%:@undef HAVE_STRUCT_TM_TM_ZONE]) -m4trace:configure.in:938: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TM_ZONE]) -m4trace:configure.in:938: -1- m4_pattern_allow([^HAVE_TM_ZONE$]) -m4trace:configure.in:938: -1- AH_OUTPUT([HAVE_TM_ZONE], [/* Define to 1 if your `struct tm\' has `tm_zone\'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE\' instead. */ -@%:@undef HAVE_TM_ZONE]) -m4trace:configure.in:938: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_TZNAME]) -m4trace:configure.in:938: -1- m4_pattern_allow([^HAVE_DECL_TZNAME$]) -m4trace:configure.in:938: -1- AH_OUTPUT([HAVE_DECL_TZNAME], [/* Define to 1 if you have the declaration of `tzname\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_TZNAME]) -m4trace:configure.in:938: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TZNAME]) -m4trace:configure.in:938: -1- m4_pattern_allow([^HAVE_TZNAME$]) -m4trace:configure.in:938: -1- AH_OUTPUT([HAVE_TZNAME], [/* Define to 1 if you don\'t have `tm_zone\' but do have the external array - `tzname\'. */ -@%:@undef HAVE_TZNAME]) -m4trace:configure.in:939: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEZONE]) -m4trace:configure.in:939: -1- m4_pattern_allow([^HAVE_STRUCT_TIMEZONE$]) -m4trace:configure.in:941: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:4149: BASH_STRUCT_WEXITSTATUS_OFFSET is expanded from... -configure.in:941: the top level]) -m4trace:configure.in:941: -1- AC_DEFINE_TRACE_LITERAL([WEXITSTATUS_OFFSET]) -m4trace:configure.in:941: -1- m4_pattern_allow([^WEXITSTATUS_OFFSET$]) -m4trace:configure.in:941: -1- AH_OUTPUT([WEXITSTATUS_OFFSET], [/* Offset of exit status in wait status word */ -@%:@undef WEXITSTATUS_OFFSET]) -m4trace:configure.in:944: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:299: BASH_FUNC_STRSIGNAL is expanded from... -configure.in:944: the top level]) -m4trace:configure.in:944: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSIGNAL]) -m4trace:configure.in:944: -1- m4_pattern_allow([^HAVE_STRSIGNAL$]) -m4trace:configure.in:945: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:313: BASH_FUNC_OPENDIR_CHECK is expanded from... -configure.in:945: the top level]) -m4trace:configure.in:945: -1- AC_DEFINE_TRACE_LITERAL([OPENDIR_NOT_ROBUST]) -m4trace:configure.in:945: -1- m4_pattern_allow([^OPENDIR_NOT_ROBUST$]) -m4trace:configure.in:946: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:683: BASH_FUNC_ULIMIT_MAXFDS is expanded from... -configure.in:946: the top level]) -m4trace:configure.in:946: -1- AC_DEFINE_TRACE_LITERAL([ULIMIT_MAXFDS]) -m4trace:configure.in:946: -1- m4_pattern_allow([^ULIMIT_MAXFDS$]) -m4trace:configure.in:947: -1- AH_OUTPUT([HAVE_FPURGE], [/* Define to 1 if you have the `fpurge\' function. */ -@%:@undef HAVE_FPURGE]) -m4trace:configure.in:947: -1- AH_OUTPUT([HAVE___FPURGE], [/* Define to 1 if you have the `__fpurge\' function. */ -@%:@undef HAVE___FPURGE]) -m4trace:configure.in:947: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FPURGE]) -m4trace:configure.in:947: -1- m4_pattern_allow([^HAVE_DECL_FPURGE$]) -m4trace:configure.in:947: -1- AH_OUTPUT([HAVE_DECL_FPURGE], [/* Define to 1 if you have the declaration of `fpurge\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_FPURGE]) -m4trace:configure.in:948: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:579: BASH_FUNC_GETENV is expanded from... -configure.in:948: the top level]) -m4trace:configure.in:948: -1- AC_DEFINE_TRACE_LITERAL([CAN_REDEFINE_GETENV]) -m4trace:configure.in:948: -1- m4_pattern_allow([^CAN_REDEFINE_GETENV$]) -m4trace:configure.in:950: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:702: BASH_FUNC_GETCWD is expanded from... -configure.in:950: the top level]) -m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([GETCWD_BROKEN]) -m4trace:configure.in:950: -1- m4_pattern_allow([^GETCWD_BROKEN$]) -m4trace:configure.in:950: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS getcwd.$ac_objext"]) -m4trace:configure.in:950: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:950: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:950: -1- AC_LIBSOURCE([getcwd.c]) -m4trace:configure.in:952: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:778: BASH_FUNC_POSIX_SETJMP is expanded from... -configure.in:952: the top level]) -m4trace:configure.in:952: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGSETJMP]) -m4trace:configure.in:952: -1- m4_pattern_allow([^HAVE_POSIX_SIGSETJMP$]) -m4trace:configure.in:953: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:829: BASH_FUNC_STRCOLL is expanded from... -configure.in:953: the top level]) -m4trace:configure.in:953: -1- AC_DEFINE_TRACE_LITERAL([STRCOLL_BROKEN]) -m4trace:configure.in:953: -1- m4_pattern_allow([^STRCOLL_BROKEN$]) -m4trace:configure.in:954: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */ -@%:@undef HAVE_SNPRINTF]) -m4trace:configure.in:954: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:4065: BASH_FUNC_SNPRINTF is expanded from... -configure.in:954: the top level]) -m4trace:configure.in:954: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SNPRINTF]) -m4trace:configure.in:954: -1- m4_pattern_allow([^HAVE_SNPRINTF$]) -m4trace:configure.in:954: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define if you have a standard-conformant snprintf function. */ -@%:@undef HAVE_SNPRINTF]) -m4trace:configure.in:955: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define to 1 if you have the `vsnprintf\' function. */ -@%:@undef HAVE_VSNPRINTF]) -m4trace:configure.in:955: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:4093: BASH_FUNC_VSNPRINTF is expanded from... -configure.in:955: the top level]) -m4trace:configure.in:955: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VSNPRINTF]) -m4trace:configure.in:955: -1- m4_pattern_allow([^HAVE_VSNPRINTF$]) -m4trace:configure.in:955: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define if you have a standard-conformant vsnprintf function. */ -@%:@undef HAVE_VSNPRINTF]) -m4trace:configure.in:961: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:624: BASH_FUNC_STD_PUTENV is expanded from... -configure.in:961: the top level]) -m4trace:configure.in:961: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) -m4trace:configure.in:961: -1- m4_pattern_allow([^HAVE_STD_PUTENV$]) -m4trace:configure.in:963: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) -m4trace:configure.in:963: -1- m4_pattern_allow([^HAVE_STD_PUTENV$]) -m4trace:configure.in:966: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:654: BASH_FUNC_STD_UNSETENV is expanded from... -configure.in:966: the top level]) -m4trace:configure.in:966: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) -m4trace:configure.in:966: -1- m4_pattern_allow([^HAVE_STD_UNSETENV$]) -m4trace:configure.in:968: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) -m4trace:configure.in:968: -1- m4_pattern_allow([^HAVE_STD_UNSETENV$]) -m4trace:configure.in:971: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:878: BASH_FUNC_PRINTF_A_FORMAT is expanded from... -configure.in:971: the top level]) -m4trace:configure.in:971: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRINTF_A_FORMAT]) -m4trace:configure.in:971: -1- m4_pattern_allow([^HAVE_PRINTF_A_FORMAT$]) -m4trace:configure.in:974: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1297: BASH_SYS_REINSTALL_SIGHANDLERS is expanded from... -configure.in:974: the top level]) -m4trace:configure.in:974: -1- AC_DEFINE_TRACE_LITERAL([MUST_REINSTALL_SIGHANDLERS]) -m4trace:configure.in:974: -1- m4_pattern_allow([^MUST_REINSTALL_SIGHANDLERS$]) -m4trace:configure.in:975: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1356: BASH_SYS_JOB_CONTROL_MISSING is expanded from... -configure.in:975: the top level]) -m4trace:configure.in:975: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL_MISSING]) -m4trace:configure.in:975: -1- m4_pattern_allow([^JOB_CONTROL_MISSING$]) -m4trace:configure.in:976: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1415: BASH_SYS_NAMED_PIPES is expanded from... -configure.in:976: the top level]) -m4trace:configure.in:976: -1- AC_DEFINE_TRACE_LITERAL([NAMED_PIPES_MISSING]) -m4trace:configure.in:976: -1- m4_pattern_allow([^NAMED_PIPES_MISSING$]) -m4trace:configure.in:979: -1- AC_DEFINE_TRACE_LITERAL([GWINSZ_IN_SYS_IOCTL]) -m4trace:configure.in:979: -1- m4_pattern_allow([^GWINSZ_IN_SYS_IOCTL$]) -m4trace:configure.in:979: -1- AH_OUTPUT([GWINSZ_IN_SYS_IOCTL], [/* Define to 1 if `TIOCGWINSZ\' requires . */ -@%:@undef GWINSZ_IN_SYS_IOCTL]) -m4trace:configure.in:980: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1496: BASH_HAVE_TIOCSTAT is expanded from... -configure.in:980: the top level]) -m4trace:configure.in:980: -1- AC_DEFINE_TRACE_LITERAL([TIOCSTAT_IN_SYS_IOCTL]) -m4trace:configure.in:980: -1- m4_pattern_allow([^TIOCSTAT_IN_SYS_IOCTL$]) -m4trace:configure.in:981: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1508: BASH_HAVE_FIONREAD is expanded from... -configure.in:981: the top level]) -m4trace:configure.in:981: -1- AC_DEFINE_TRACE_LITERAL([FIONREAD_IN_SYS_IOCTL]) -m4trace:configure.in:981: -1- m4_pattern_allow([^FIONREAD_IN_SYS_IOCTL$]) -m4trace:configure.in:983: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1964: BASH_CHECK_WCONTINUED is expanded from... -configure.in:983: the top level]) -m4trace:configure.in:983: -1- AC_DEFINE_TRACE_LITERAL([WCONTINUED_BROKEN]) -m4trace:configure.in:983: -1- m4_pattern_allow([^WCONTINUED_BROKEN$]) -m4trace:configure.in:986: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1526: BASH_CHECK_SPEED_T is expanded from... -configure.in:986: the top level]) -m4trace:configure.in:986: -1- AC_DEFINE_TRACE_LITERAL([SPEED_T_IN_SYS_TYPES]) -m4trace:configure.in:986: -1- m4_pattern_allow([^SPEED_T_IN_SYS_TYPES$]) -m4trace:configure.in:987: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPW_DECLS]) -m4trace:configure.in:987: -1- m4_pattern_allow([^HAVE_GETPW_DECLS$]) -m4trace:configure.in:988: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1653: BASH_CHECK_RTSIGS is expanded from... -configure.in:988: the top level]) -m4trace:configure.in:988: -1- AC_DEFINE_TRACE_LITERAL([UNUSABLE_RT_SIGNALS]) -m4trace:configure.in:988: -1- m4_pattern_allow([^UNUSABLE_RT_SIGNALS$]) -m4trace:configure.in:989: -1- AC_SUBST([SIGLIST_O]) -m4trace:configure.in:989: -1- AC_SUBST_TRACE([SIGLIST_O]) -m4trace:configure.in:989: -1- m4_pattern_allow([^SIGLIST_O$]) -m4trace:configure.in:993: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1605: BASH_CHECK_KERNEL_RLIMIT is expanded from... -configure.in:993: the top level]) -m4trace:configure.in:993: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1605: BASH_CHECK_KERNEL_RLIMIT is expanded from... -configure.in:993: the top level]) -m4trace:configure.in:993: -1- AC_DEFINE_TRACE_LITERAL([RLIMIT_NEEDS_KERNEL]) -m4trace:configure.in:993: -1- m4_pattern_allow([^RLIMIT_NEEDS_KERNEL$]) -m4trace:configure.in:1003: -1- AC_SUBST([TERMCAP_LIB]) -m4trace:configure.in:1003: -1- AC_SUBST_TRACE([TERMCAP_LIB]) -m4trace:configure.in:1003: -1- m4_pattern_allow([^TERMCAP_LIB$]) -m4trace:configure.in:1004: -1- AC_SUBST([TERMCAP_DEP]) -m4trace:configure.in:1004: -1- AC_SUBST_TRACE([TERMCAP_DEP]) -m4trace:configure.in:1004: -1- m4_pattern_allow([^TERMCAP_DEP$]) -m4trace:configure.in:1006: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) -m4trace:configure.in:1006: -1- m4_pattern_allow([^HAVE_DEV_FD$]) -m4trace:configure.in:1006: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) -m4trace:configure.in:1006: -1- m4_pattern_allow([^DEV_FD_PREFIX$]) -m4trace:configure.in:1006: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) -m4trace:configure.in:1006: -1- m4_pattern_allow([^HAVE_DEV_FD$]) -m4trace:configure.in:1006: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) -m4trace:configure.in:1006: -1- m4_pattern_allow([^DEV_FD_PREFIX$]) -m4trace:configure.in:1007: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_STDIN]) -m4trace:configure.in:1007: -1- m4_pattern_allow([^HAVE_DEV_STDIN$]) -m4trace:configure.in:1008: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_MAIL_DIRECTORY]) -m4trace:configure.in:1008: -1- m4_pattern_allow([^DEFAULT_MAIL_DIRECTORY$]) -m4trace:configure.in:1015: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL]) -m4trace:configure.in:1015: -1- m4_pattern_allow([^JOB_CONTROL$]) -m4trace:configure.in:1021: -1- AC_SUBST([JOBS_O]) -m4trace:configure.in:1021: -1- AC_SUBST_TRACE([JOBS_O]) -m4trace:configure.in:1021: -1- m4_pattern_allow([^JOBS_O$]) -m4trace:configure.in:1034: -1- AC_DEFINE_TRACE_LITERAL([SVR4_2]) -m4trace:configure.in:1034: -1- m4_pattern_allow([^SVR4_2$]) -m4trace:configure.in:1035: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) -m4trace:configure.in:1035: -1- m4_pattern_allow([^SVR4$]) -m4trace:configure.in:1036: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) -m4trace:configure.in:1036: -1- m4_pattern_allow([^SVR4$]) -m4trace:configure.in:1037: -1- AC_DEFINE_TRACE_LITERAL([SVR5]) -m4trace:configure.in:1037: -1- m4_pattern_allow([^SVR5$]) -m4trace:configure.in:1056: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) -m4trace:configure.in:1056: -1- m4_pattern_allow([^PGRP_PIPE$]) -m4trace:configure.in:1103: -1- AC_SUBST([SHOBJ_CC]) -m4trace:configure.in:1103: -1- AC_SUBST_TRACE([SHOBJ_CC]) -m4trace:configure.in:1103: -1- m4_pattern_allow([^SHOBJ_CC$]) -m4trace:configure.in:1104: -1- AC_SUBST([SHOBJ_CFLAGS]) -m4trace:configure.in:1104: -1- AC_SUBST_TRACE([SHOBJ_CFLAGS]) -m4trace:configure.in:1104: -1- m4_pattern_allow([^SHOBJ_CFLAGS$]) -m4trace:configure.in:1105: -1- AC_SUBST([SHOBJ_LD]) -m4trace:configure.in:1105: -1- AC_SUBST_TRACE([SHOBJ_LD]) -m4trace:configure.in:1105: -1- m4_pattern_allow([^SHOBJ_LD$]) -m4trace:configure.in:1106: -1- AC_SUBST([SHOBJ_LDFLAGS]) -m4trace:configure.in:1106: -1- AC_SUBST_TRACE([SHOBJ_LDFLAGS]) -m4trace:configure.in:1106: -1- m4_pattern_allow([^SHOBJ_LDFLAGS$]) -m4trace:configure.in:1107: -1- AC_SUBST([SHOBJ_XLDFLAGS]) -m4trace:configure.in:1107: -1- AC_SUBST_TRACE([SHOBJ_XLDFLAGS]) -m4trace:configure.in:1107: -1- m4_pattern_allow([^SHOBJ_XLDFLAGS$]) -m4trace:configure.in:1108: -1- AC_SUBST([SHOBJ_LIBS]) -m4trace:configure.in:1108: -1- AC_SUBST_TRACE([SHOBJ_LIBS]) -m4trace:configure.in:1108: -1- m4_pattern_allow([^SHOBJ_LIBS$]) -m4trace:configure.in:1109: -1- AC_SUBST([SHOBJ_STATUS]) -m4trace:configure.in:1109: -1- AC_SUBST_TRACE([SHOBJ_STATUS]) -m4trace:configure.in:1109: -1- m4_pattern_allow([^SHOBJ_STATUS$]) -m4trace:configure.in:1141: -1- AC_SUBST([PROFILE_FLAGS]) -m4trace:configure.in:1141: -1- AC_SUBST_TRACE([PROFILE_FLAGS]) -m4trace:configure.in:1141: -1- m4_pattern_allow([^PROFILE_FLAGS$]) -m4trace:configure.in:1143: -1- AC_SUBST([incdir]) -m4trace:configure.in:1143: -1- AC_SUBST_TRACE([incdir]) -m4trace:configure.in:1143: -1- m4_pattern_allow([^incdir$]) -m4trace:configure.in:1144: -1- AC_SUBST([BUILD_DIR]) -m4trace:configure.in:1144: -1- AC_SUBST_TRACE([BUILD_DIR]) -m4trace:configure.in:1144: -1- m4_pattern_allow([^BUILD_DIR$]) -m4trace:configure.in:1147: -1- AC_SUBST([datarootdir]) -m4trace:configure.in:1147: -1- AC_SUBST_TRACE([datarootdir]) -m4trace:configure.in:1147: -1- m4_pattern_allow([^datarootdir$]) -m4trace:configure.in:1148: -1- AC_SUBST([localedir]) -m4trace:configure.in:1148: -1- AC_SUBST_TRACE([localedir]) -m4trace:configure.in:1148: -1- m4_pattern_allow([^localedir$]) -m4trace:configure.in:1150: -1- AC_SUBST([YACC]) -m4trace:configure.in:1150: -1- AC_SUBST_TRACE([YACC]) -m4trace:configure.in:1150: -1- m4_pattern_allow([^YACC$]) -m4trace:configure.in:1151: -1- AC_SUBST([AR]) -m4trace:configure.in:1151: -1- AC_SUBST_TRACE([AR]) -m4trace:configure.in:1151: -1- m4_pattern_allow([^AR$]) -m4trace:configure.in:1152: -1- AC_SUBST([ARFLAGS]) -m4trace:configure.in:1152: -1- AC_SUBST_TRACE([ARFLAGS]) -m4trace:configure.in:1152: -1- m4_pattern_allow([^ARFLAGS$]) -m4trace:configure.in:1154: -1- AC_SUBST([BASHVERS]) -m4trace:configure.in:1154: -1- AC_SUBST_TRACE([BASHVERS]) -m4trace:configure.in:1154: -1- m4_pattern_allow([^BASHVERS$]) -m4trace:configure.in:1155: -1- AC_SUBST([RELSTATUS]) -m4trace:configure.in:1155: -1- AC_SUBST_TRACE([RELSTATUS]) -m4trace:configure.in:1155: -1- m4_pattern_allow([^RELSTATUS$]) -m4trace:configure.in:1156: -1- AC_SUBST([DEBUG]) -m4trace:configure.in:1156: -1- AC_SUBST_TRACE([DEBUG]) -m4trace:configure.in:1156: -1- m4_pattern_allow([^DEBUG$]) -m4trace:configure.in:1157: -1- AC_SUBST([MALLOC_DEBUG]) -m4trace:configure.in:1157: -1- AC_SUBST_TRACE([MALLOC_DEBUG]) -m4trace:configure.in:1157: -1- m4_pattern_allow([^MALLOC_DEBUG$]) -m4trace:configure.in:1159: -1- AC_SUBST([host_cpu]) -m4trace:configure.in:1159: -1- AC_SUBST_TRACE([host_cpu]) -m4trace:configure.in:1159: -1- m4_pattern_allow([^host_cpu$]) -m4trace:configure.in:1160: -1- AC_SUBST([host_vendor]) -m4trace:configure.in:1160: -1- AC_SUBST_TRACE([host_vendor]) -m4trace:configure.in:1160: -1- m4_pattern_allow([^host_vendor$]) -m4trace:configure.in:1161: -1- AC_SUBST([host_os]) -m4trace:configure.in:1161: -1- AC_SUBST_TRACE([host_os]) -m4trace:configure.in:1161: -1- m4_pattern_allow([^host_os$]) -m4trace:configure.in:1163: -1- AC_SUBST([LOCAL_LIBS]) -m4trace:configure.in:1163: -1- AC_SUBST_TRACE([LOCAL_LIBS]) -m4trace:configure.in:1163: -1- m4_pattern_allow([^LOCAL_LIBS$]) -m4trace:configure.in:1164: -1- AC_SUBST([LOCAL_CFLAGS]) -m4trace:configure.in:1164: -1- AC_SUBST_TRACE([LOCAL_CFLAGS]) -m4trace:configure.in:1164: -1- m4_pattern_allow([^LOCAL_CFLAGS$]) -m4trace:configure.in:1165: -1- AC_SUBST([LOCAL_LDFLAGS]) -m4trace:configure.in:1165: -1- AC_SUBST_TRACE([LOCAL_LDFLAGS]) -m4trace:configure.in:1165: -1- m4_pattern_allow([^LOCAL_LDFLAGS$]) -m4trace:configure.in:1166: -1- AC_SUBST([LOCAL_DEFS]) -m4trace:configure.in:1166: -1- AC_SUBST_TRACE([LOCAL_DEFS]) -m4trace:configure.in:1166: -1- m4_pattern_allow([^LOCAL_DEFS$]) -m4trace:configure.in:1171: -1- 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]) -m4trace:configure.in:1171: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. -You should run autoupdate.], []) -m4trace:configure.in:1171: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:1171: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:1171: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([LTLIBOBJS]) -m4trace:configure.in:1171: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([top_builddir]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([top_build_prefix]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([srcdir]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([abs_srcdir]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([top_srcdir]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([abs_top_srcdir]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([builddir]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([abs_builddir]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([abs_top_builddir]) -m4trace:configure.in:1171: -1- AC_SUBST_TRACE([INSTALL]) diff --git a/autom4te.cache/traces.1 b/autom4te.cache/traces.1 deleted file mode 100644 index 957916033..000000000 --- a/autom4te.cache/traces.1 +++ /dev/null @@ -1,2772 +0,0 @@ -m4trace:configure.in:29: -1- AC_INIT([bash], [4.2-maint], [bug-bash@gnu.org]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.in:29: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) -m4trace:configure.in:29: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.in:29: -1- AC_SUBST([SHELL]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([SHELL]) -m4trace:configure.in:29: -1- m4_pattern_allow([^SHELL$]) -m4trace:configure.in:29: -1- AC_SUBST([PATH_SEPARATOR]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PATH_SEPARATOR$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_NAME]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_STRING]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([PACKAGE_URL]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.in:29: -1- AC_SUBST([exec_prefix], [NONE]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([exec_prefix]) -m4trace:configure.in:29: -1- m4_pattern_allow([^exec_prefix$]) -m4trace:configure.in:29: -1- AC_SUBST([prefix], [NONE]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([prefix]) -m4trace:configure.in:29: -1- m4_pattern_allow([^prefix$]) -m4trace:configure.in:29: -1- AC_SUBST([program_transform_name], [s,x,x,]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([program_transform_name]) -m4trace:configure.in:29: -1- m4_pattern_allow([^program_transform_name$]) -m4trace:configure.in:29: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([bindir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^bindir$]) -m4trace:configure.in:29: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([sbindir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^sbindir$]) -m4trace:configure.in:29: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([libexecdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^libexecdir$]) -m4trace:configure.in:29: -1- AC_SUBST([datarootdir], ['${prefix}/share']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([datarootdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^datarootdir$]) -m4trace:configure.in:29: -1- AC_SUBST([datadir], ['${datarootdir}']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([datadir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^datadir$]) -m4trace:configure.in:29: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([sysconfdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^sysconfdir$]) -m4trace:configure.in:29: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([sharedstatedir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^sharedstatedir$]) -m4trace:configure.in:29: -1- AC_SUBST([localstatedir], ['${prefix}/var']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([localstatedir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^localstatedir$]) -m4trace:configure.in:29: -1- AC_SUBST([includedir], ['${prefix}/include']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([includedir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^includedir$]) -m4trace:configure.in:29: -1- AC_SUBST([oldincludedir], ['/usr/include']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([oldincludedir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^oldincludedir$]) -m4trace:configure.in:29: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], - ['${datarootdir}/doc/${PACKAGE_TARNAME}'], - ['${datarootdir}/doc/${PACKAGE}'])]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([docdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^docdir$]) -m4trace:configure.in:29: -1- AC_SUBST([infodir], ['${datarootdir}/info']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([infodir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^infodir$]) -m4trace:configure.in:29: -1- AC_SUBST([htmldir], ['${docdir}']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([htmldir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^htmldir$]) -m4trace:configure.in:29: -1- AC_SUBST([dvidir], ['${docdir}']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([dvidir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^dvidir$]) -m4trace:configure.in:29: -1- AC_SUBST([pdfdir], ['${docdir}']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([pdfdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^pdfdir$]) -m4trace:configure.in:29: -1- AC_SUBST([psdir], ['${docdir}']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([psdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^psdir$]) -m4trace:configure.in:29: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([libdir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^libdir$]) -m4trace:configure.in:29: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([localedir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^localedir$]) -m4trace:configure.in:29: -1- AC_SUBST([mandir], ['${datarootdir}/man']) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([mandir]) -m4trace:configure.in:29: -1- m4_pattern_allow([^mandir$]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ -@%:@undef PACKAGE_NAME]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ -@%:@undef PACKAGE_TARNAME]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ -@%:@undef PACKAGE_VERSION]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ -@%:@undef PACKAGE_STRING]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ -@%:@undef PACKAGE_BUGREPORT]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL]) -m4trace:configure.in:29: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */ -@%:@undef PACKAGE_URL]) -m4trace:configure.in:29: -1- AC_SUBST([DEFS]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([DEFS]) -m4trace:configure.in:29: -1- m4_pattern_allow([^DEFS$]) -m4trace:configure.in:29: -1- AC_SUBST([ECHO_C]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([ECHO_C]) -m4trace:configure.in:29: -1- m4_pattern_allow([^ECHO_C$]) -m4trace:configure.in:29: -1- AC_SUBST([ECHO_N]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([ECHO_N]) -m4trace:configure.in:29: -1- m4_pattern_allow([^ECHO_N$]) -m4trace:configure.in:29: -1- AC_SUBST([ECHO_T]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([ECHO_T]) -m4trace:configure.in:29: -1- m4_pattern_allow([^ECHO_T$]) -m4trace:configure.in:29: -1- AC_SUBST([LIBS]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([LIBS]) -m4trace:configure.in:29: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.in:29: -1- AC_SUBST([build_alias]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([build_alias]) -m4trace:configure.in:29: -1- m4_pattern_allow([^build_alias$]) -m4trace:configure.in:29: -1- AC_SUBST([host_alias]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([host_alias]) -m4trace:configure.in:29: -1- m4_pattern_allow([^host_alias$]) -m4trace:configure.in:29: -1- AC_SUBST([target_alias]) -m4trace:configure.in:29: -1- AC_SUBST_TRACE([target_alias]) -m4trace:configure.in:29: -1- m4_pattern_allow([^target_alias$]) -m4trace:configure.in:36: -1- AC_CONFIG_AUX_DIR([./support]) -m4trace:configure.in:37: -1- AC_CONFIG_HEADERS([config.h]) -m4trace:configure.in:51: -1- AC_CANONICAL_HOST -m4trace:configure.in:51: -1- AC_CANONICAL_BUILD -m4trace:configure.in:51: -1- AC_REQUIRE_AUX_FILE([config.sub]) -m4trace:configure.in:51: -1- AC_REQUIRE_AUX_FILE([config.guess]) -m4trace:configure.in:51: -1- AC_SUBST([build], [$ac_cv_build]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([build]) -m4trace:configure.in:51: -1- m4_pattern_allow([^build$]) -m4trace:configure.in:51: -1- AC_SUBST([build_cpu], [$[1]]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([build_cpu]) -m4trace:configure.in:51: -1- m4_pattern_allow([^build_cpu$]) -m4trace:configure.in:51: -1- AC_SUBST([build_vendor], [$[2]]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([build_vendor]) -m4trace:configure.in:51: -1- m4_pattern_allow([^build_vendor$]) -m4trace:configure.in:51: -1- AC_SUBST([build_os]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([build_os]) -m4trace:configure.in:51: -1- m4_pattern_allow([^build_os$]) -m4trace:configure.in:51: -1- AC_SUBST([host], [$ac_cv_host]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([host]) -m4trace:configure.in:51: -1- m4_pattern_allow([^host$]) -m4trace:configure.in:51: -1- AC_SUBST([host_cpu], [$[1]]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([host_cpu]) -m4trace:configure.in:51: -1- m4_pattern_allow([^host_cpu$]) -m4trace:configure.in:51: -1- AC_SUBST([host_vendor], [$[2]]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([host_vendor]) -m4trace:configure.in:51: -1- m4_pattern_allow([^host_vendor$]) -m4trace:configure.in:51: -1- AC_SUBST([host_os]) -m4trace:configure.in:51: -1- AC_SUBST_TRACE([host_os]) -m4trace:configure.in:51: -1- m4_pattern_allow([^host_os$]) -m4trace:configure.in:52: -1- AC_CANONICAL_BUILD -m4trace:configure.in:104: -1- AC_SUBST([DEBUGGER_START_FILE]) -m4trace:configure.in:104: -1- AC_SUBST_TRACE([DEBUGGER_START_FILE]) -m4trace:configure.in:104: -1- m4_pattern_allow([^DEBUGGER_START_FILE$]) -m4trace:configure.in:108: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:108: the top level]) -m4trace:configure.in:109: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:109: the top level]) -m4trace:configure.in:110: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:110: the top level]) -m4trace:configure.in:111: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:111: the top level]) -m4trace:configure.in:112: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:112: the top level]) -m4trace:configure.in:113: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:113: the top level]) -m4trace:configure.in:114: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:114: the top level]) -m4trace:configure.in:125: -1- AC_DEFINE_TRACE_LITERAL([USING_BASH_MALLOC]) -m4trace:configure.in:125: -1- m4_pattern_allow([^USING_BASH_MALLOC$]) -m4trace:configure.in:135: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_MALLOC_WRAPPERS]) -m4trace:configure.in:135: -1- m4_pattern_allow([^DISABLE_MALLOC_WRAPPERS$]) -m4trace:configure.in:145: -1- AC_DEFINE_TRACE_LITERAL([AFS]) -m4trace:configure.in:145: -1- m4_pattern_allow([^AFS$]) -m4trace:configure.in:197: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:197: the top level]) -m4trace:configure.in:213: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:213: the top level]) -m4trace:configure.in:214: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:214: the top level]) -m4trace:configure.in:215: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:215: the top level]) -m4trace:configure.in:216: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:216: the top level]) -m4trace:configure.in:217: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:217: the top level]) -m4trace:configure.in:218: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:218: the top level]) -m4trace:configure.in:219: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:219: the top level]) -m4trace:configure.in:220: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:220: the top level]) -m4trace:configure.in:221: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:221: the top level]) -m4trace:configure.in:222: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:222: the top level]) -m4trace:configure.in:223: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:223: the top level]) -m4trace:configure.in:224: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:224: the top level]) -m4trace:configure.in:225: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:225: the top level]) -m4trace:configure.in:226: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:226: the top level]) -m4trace:configure.in:227: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:227: the top level]) -m4trace:configure.in:228: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:228: the top level]) -m4trace:configure.in:229: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:229: the top level]) -m4trace:configure.in:230: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:230: the top level]) -m4trace:configure.in:231: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:231: the top level]) -m4trace:configure.in:232: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:232: the top level]) -m4trace:configure.in:233: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:233: the top level]) -m4trace:configure.in:234: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:234: the top level]) -m4trace:configure.in:235: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:235: the top level]) -m4trace:configure.in:236: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:236: the top level]) -m4trace:configure.in:237: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:237: the top level]) -m4trace:configure.in:238: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:238: the top level]) -m4trace:configure.in:239: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:239: the top level]) -m4trace:configure.in:240: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:240: the top level]) -m4trace:configure.in:241: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:241: the top level]) -m4trace:configure.in:242: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:242: the top level]) -m4trace:configure.in:243: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:243: the top level]) -m4trace:configure.in:244: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:244: the top level]) -m4trace:configure.in:245: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:245: the top level]) -m4trace:configure.in:248: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:248: the top level]) -m4trace:configure.in:249: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:249: the top level]) -m4trace:configure.in:250: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.in:250: the top level]) -m4trace:configure.in:253: -1- AC_SUBST([CC_FOR_BUILD]) -m4trace:configure.in:253: -1- AC_SUBST_TRACE([CC_FOR_BUILD]) -m4trace:configure.in:253: -1- m4_pattern_allow([^CC_FOR_BUILD$]) -m4trace:configure.in:254: -1- AC_SUBST([CFLAGS_FOR_BUILD]) -m4trace:configure.in:254: -1- AC_SUBST_TRACE([CFLAGS_FOR_BUILD]) -m4trace:configure.in:254: -1- m4_pattern_allow([^CFLAGS_FOR_BUILD$]) -m4trace:configure.in:255: -1- AC_SUBST([LDFLAGS_FOR_BUILD]) -m4trace:configure.in:255: -1- AC_SUBST_TRACE([LDFLAGS_FOR_BUILD]) -m4trace:configure.in:255: -1- m4_pattern_allow([^LDFLAGS_FOR_BUILD$]) -m4trace:configure.in:256: -1- AC_SUBST([CPPFLAGS_FOR_BUILD]) -m4trace:configure.in:256: -1- AC_SUBST_TRACE([CPPFLAGS_FOR_BUILD]) -m4trace:configure.in:256: -1- m4_pattern_allow([^CPPFLAGS_FOR_BUILD$]) -m4trace:configure.in:265: -1- AC_DEFINE_TRACE_LITERAL([ALIAS]) -m4trace:configure.in:265: -1- m4_pattern_allow([^ALIAS$]) -m4trace:configure.in:268: -1- AC_DEFINE_TRACE_LITERAL([PUSHD_AND_POPD]) -m4trace:configure.in:268: -1- m4_pattern_allow([^PUSHD_AND_POPD$]) -m4trace:configure.in:271: -1- AC_DEFINE_TRACE_LITERAL([RESTRICTED_SHELL]) -m4trace:configure.in:271: -1- m4_pattern_allow([^RESTRICTED_SHELL$]) -m4trace:configure.in:274: -1- AC_DEFINE_TRACE_LITERAL([PROCESS_SUBSTITUTION]) -m4trace:configure.in:274: -1- m4_pattern_allow([^PROCESS_SUBSTITUTION$]) -m4trace:configure.in:277: -1- AC_DEFINE_TRACE_LITERAL([PROMPT_STRING_DECODE]) -m4trace:configure.in:277: -1- m4_pattern_allow([^PROMPT_STRING_DECODE$]) -m4trace:configure.in:280: -1- AC_DEFINE_TRACE_LITERAL([SELECT_COMMAND]) -m4trace:configure.in:280: -1- m4_pattern_allow([^SELECT_COMMAND$]) -m4trace:configure.in:283: -1- AC_DEFINE_TRACE_LITERAL([HELP_BUILTIN]) -m4trace:configure.in:283: -1- m4_pattern_allow([^HELP_BUILTIN$]) -m4trace:configure.in:286: -1- AC_DEFINE_TRACE_LITERAL([ARRAY_VARS]) -m4trace:configure.in:286: -1- m4_pattern_allow([^ARRAY_VARS$]) -m4trace:configure.in:289: -1- AC_DEFINE_TRACE_LITERAL([DPAREN_ARITHMETIC]) -m4trace:configure.in:289: -1- m4_pattern_allow([^DPAREN_ARITHMETIC$]) -m4trace:configure.in:292: -1- AC_DEFINE_TRACE_LITERAL([BRACE_EXPANSION]) -m4trace:configure.in:292: -1- m4_pattern_allow([^BRACE_EXPANSION$]) -m4trace:configure.in:295: -1- AC_DEFINE_TRACE_LITERAL([DISABLED_BUILTINS]) -m4trace:configure.in:295: -1- m4_pattern_allow([^DISABLED_BUILTINS$]) -m4trace:configure.in:298: -1- AC_DEFINE_TRACE_LITERAL([COMMAND_TIMING]) -m4trace:configure.in:298: -1- m4_pattern_allow([^COMMAND_TIMING$]) -m4trace:configure.in:301: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_ECHO_TO_XPG]) -m4trace:configure.in:301: -1- m4_pattern_allow([^DEFAULT_ECHO_TO_XPG$]) -m4trace:configure.in:304: -1- AC_DEFINE_TRACE_LITERAL([STRICT_POSIX]) -m4trace:configure.in:304: -1- m4_pattern_allow([^STRICT_POSIX$]) -m4trace:configure.in:307: -1- AC_DEFINE_TRACE_LITERAL([EXTENDED_GLOB]) -m4trace:configure.in:307: -1- m4_pattern_allow([^EXTENDED_GLOB$]) -m4trace:configure.in:310: -1- AC_DEFINE_TRACE_LITERAL([EXTGLOB_DEFAULT]) -m4trace:configure.in:310: -1- m4_pattern_allow([^EXTGLOB_DEFAULT$]) -m4trace:configure.in:312: -1- AC_DEFINE_TRACE_LITERAL([EXTGLOB_DEFAULT]) -m4trace:configure.in:312: -1- m4_pattern_allow([^EXTGLOB_DEFAULT$]) -m4trace:configure.in:315: -1- AC_DEFINE_TRACE_LITERAL([COND_COMMAND]) -m4trace:configure.in:315: -1- m4_pattern_allow([^COND_COMMAND$]) -m4trace:configure.in:318: -1- AC_DEFINE_TRACE_LITERAL([COND_REGEXP]) -m4trace:configure.in:318: -1- m4_pattern_allow([^COND_REGEXP$]) -m4trace:configure.in:321: -1- AC_DEFINE_TRACE_LITERAL([COPROCESS_SUPPORT]) -m4trace:configure.in:321: -1- m4_pattern_allow([^COPROCESS_SUPPORT$]) -m4trace:configure.in:324: -1- AC_DEFINE_TRACE_LITERAL([ARITH_FOR_COMMAND]) -m4trace:configure.in:324: -1- m4_pattern_allow([^ARITH_FOR_COMMAND$]) -m4trace:configure.in:327: -1- AC_DEFINE_TRACE_LITERAL([NETWORK_REDIRECTIONS]) -m4trace:configure.in:327: -1- m4_pattern_allow([^NETWORK_REDIRECTIONS$]) -m4trace:configure.in:330: -1- AC_DEFINE_TRACE_LITERAL([PROGRAMMABLE_COMPLETION]) -m4trace:configure.in:330: -1- m4_pattern_allow([^PROGRAMMABLE_COMPLETION$]) -m4trace:configure.in:333: -1- AC_DEFINE_TRACE_LITERAL([NO_MULTIBYTE_SUPPORT]) -m4trace:configure.in:333: -1- m4_pattern_allow([^NO_MULTIBYTE_SUPPORT$]) -m4trace:configure.in:336: -1- AC_DEFINE_TRACE_LITERAL([DEBUGGER]) -m4trace:configure.in:336: -1- m4_pattern_allow([^DEBUGGER$]) -m4trace:configure.in:339: -1- AC_DEFINE_TRACE_LITERAL([CASEMOD_ATTRS]) -m4trace:configure.in:339: -1- m4_pattern_allow([^CASEMOD_ATTRS$]) -m4trace:configure.in:342: -1- AC_DEFINE_TRACE_LITERAL([CASEMOD_EXPANSIONS]) -m4trace:configure.in:342: -1- m4_pattern_allow([^CASEMOD_EXPANSIONS$]) -m4trace:configure.in:346: -1- AC_DEFINE_TRACE_LITERAL([MEMSCRAMBLE]) -m4trace:configure.in:346: -1- m4_pattern_allow([^MEMSCRAMBLE$]) -m4trace:configure.in:372: -1- AC_SUBST([TESTSCRIPT]) -m4trace:configure.in:372: -1- AC_SUBST_TRACE([TESTSCRIPT]) -m4trace:configure.in:372: -1- m4_pattern_allow([^TESTSCRIPT$]) -m4trace:configure.in:373: -1- AC_SUBST([PURIFY]) -m4trace:configure.in:373: -1- AC_SUBST_TRACE([PURIFY]) -m4trace:configure.in:373: -1- m4_pattern_allow([^PURIFY$]) -m4trace:configure.in:374: -1- AC_SUBST([MALLOC_TARGET]) -m4trace:configure.in:374: -1- AC_SUBST_TRACE([MALLOC_TARGET]) -m4trace:configure.in:374: -1- m4_pattern_allow([^MALLOC_TARGET$]) -m4trace:configure.in:375: -1- AC_SUBST([MALLOC_SRC]) -m4trace:configure.in:375: -1- AC_SUBST_TRACE([MALLOC_SRC]) -m4trace:configure.in:375: -1- m4_pattern_allow([^MALLOC_SRC$]) -m4trace:configure.in:377: -1- AC_SUBST([MALLOC_LIB]) -m4trace:configure.in:377: -1- AC_SUBST_TRACE([MALLOC_LIB]) -m4trace:configure.in:377: -1- m4_pattern_allow([^MALLOC_LIB$]) -m4trace:configure.in:378: -1- AC_SUBST([MALLOC_LIBRARY]) -m4trace:configure.in:378: -1- AC_SUBST_TRACE([MALLOC_LIBRARY]) -m4trace:configure.in:378: -1- m4_pattern_allow([^MALLOC_LIBRARY$]) -m4trace:configure.in:379: -1- AC_SUBST([MALLOC_LDFLAGS]) -m4trace:configure.in:379: -1- AC_SUBST_TRACE([MALLOC_LDFLAGS]) -m4trace:configure.in:379: -1- m4_pattern_allow([^MALLOC_LDFLAGS$]) -m4trace:configure.in:380: -1- AC_SUBST([MALLOC_DEP]) -m4trace:configure.in:380: -1- AC_SUBST_TRACE([MALLOC_DEP]) -m4trace:configure.in:380: -1- m4_pattern_allow([^MALLOC_DEP$]) -m4trace:configure.in:382: -1- AC_SUBST([htmldir]) -m4trace:configure.in:382: -1- AC_SUBST_TRACE([htmldir]) -m4trace:configure.in:382: -1- m4_pattern_allow([^htmldir$]) -m4trace:configure.in:384: -1- AC_SUBST([HELPDIR]) -m4trace:configure.in:384: -1- AC_SUBST_TRACE([HELPDIR]) -m4trace:configure.in:384: -1- m4_pattern_allow([^HELPDIR$]) -m4trace:configure.in:385: -1- AC_SUBST([HELPDIRDEFINE]) -m4trace:configure.in:385: -1- AC_SUBST_TRACE([HELPDIRDEFINE]) -m4trace:configure.in:385: -1- m4_pattern_allow([^HELPDIRDEFINE$]) -m4trace:configure.in:386: -1- AC_SUBST([HELPINSTALL]) -m4trace:configure.in:386: -1- AC_SUBST_TRACE([HELPINSTALL]) -m4trace:configure.in:386: -1- m4_pattern_allow([^HELPINSTALL$]) -m4trace:configure.in:387: -1- AC_SUBST([HELPFILES_TARGET]) -m4trace:configure.in:387: -1- AC_SUBST_TRACE([HELPFILES_TARGET]) -m4trace:configure.in:387: -1- m4_pattern_allow([^HELPFILES_TARGET$]) -m4trace:configure.in:388: -1- AC_SUBST([HELPSTRINGS]) -m4trace:configure.in:388: -1- AC_SUBST_TRACE([HELPSTRINGS]) -m4trace:configure.in:388: -1- m4_pattern_allow([^HELPSTRINGS$]) -m4trace:configure.in:397: -1- AC_SUBST([CC]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.in:397: -1- m4_pattern_allow([^CC$]) -m4trace:configure.in:397: -1- AC_SUBST([CFLAGS]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([CFLAGS]) -m4trace:configure.in:397: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.in:397: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([LDFLAGS]) -m4trace:configure.in:397: -1- m4_pattern_allow([^LDFLAGS$]) -m4trace:configure.in:397: -1- AC_SUBST([LIBS]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([LIBS]) -m4trace:configure.in:397: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.in:397: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.in:397: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.in:397: -1- AC_SUBST([CC]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.in:397: -1- m4_pattern_allow([^CC$]) -m4trace:configure.in:397: -1- AC_SUBST([CC]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.in:397: -1- m4_pattern_allow([^CC$]) -m4trace:configure.in:397: -1- AC_SUBST([CC]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.in:397: -1- m4_pattern_allow([^CC$]) -m4trace:configure.in:397: -1- AC_SUBST([CC]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.in:397: -1- m4_pattern_allow([^CC$]) -m4trace:configure.in:397: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([ac_ct_CC]) -m4trace:configure.in:397: -1- m4_pattern_allow([^ac_ct_CC$]) -m4trace:configure.in:397: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([EXEEXT]) -m4trace:configure.in:397: -1- m4_pattern_allow([^EXEEXT$]) -m4trace:configure.in:397: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) -m4trace:configure.in:397: -1- AC_SUBST_TRACE([OBJEXT]) -m4trace:configure.in:397: -1- m4_pattern_allow([^OBJEXT$]) -m4trace:configure.in:401: -1- _m4_warn([obsolete], [The macro `AC_MINIX' is obsolete. -You should run autoupdate.], [../../lib/autoconf/specific.m4:437: AC_MINIX is expanded from... -configure.in:401: the top level]) -m4trace:configure.in:401: -1- AC_SUBST([CPP]) -m4trace:configure.in:401: -1- AC_SUBST_TRACE([CPP]) -m4trace:configure.in:401: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.in:401: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:401: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.in:401: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.in:401: -1- AC_SUBST([CPP]) -m4trace:configure.in:401: -1- AC_SUBST_TRACE([CPP]) -m4trace:configure.in:401: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.in:401: -1- AC_SUBST([GREP]) -m4trace:configure.in:401: -1- AC_SUBST_TRACE([GREP]) -m4trace:configure.in:401: -1- m4_pattern_allow([^GREP$]) -m4trace:configure.in:401: -1- AC_SUBST([EGREP]) -m4trace:configure.in:401: -1- AC_SUBST_TRACE([EGREP]) -m4trace:configure.in:401: -1- m4_pattern_allow([^EGREP$]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) -m4trace:configure.in:401: -1- m4_pattern_allow([^STDC_HEADERS$]) -m4trace:configure.in:401: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ -@%:@undef STDC_HEADERS]) -m4trace:configure.in:401: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TYPES_H]) -m4trace:configure.in:401: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_STAT_H]) -m4trace:configure.in:401: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.in:401: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRING_H]) -m4trace:configure.in:401: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MEMORY_H]) -m4trace:configure.in:401: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRINGS_H]) -m4trace:configure.in:401: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_INTTYPES_H]) -m4trace:configure.in:401: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDINT_H]) -m4trace:configure.in:401: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_SOURCE]) -m4trace:configure.in:401: -1- m4_pattern_allow([^_POSIX_SOURCE$]) -m4trace:configure.in:401: -1- AH_OUTPUT([_POSIX_SOURCE], [/* Define to 1 if you need to in order for `stat\' and other things to work. */ -@%:@undef _POSIX_SOURCE]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_1_SOURCE]) -m4trace:configure.in:401: -1- m4_pattern_allow([^_POSIX_1_SOURCE$]) -m4trace:configure.in:401: -1- AH_OUTPUT([_POSIX_1_SOURCE], [/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -@%:@undef _POSIX_1_SOURCE]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([_MINIX]) -m4trace:configure.in:401: -1- m4_pattern_allow([^_MINIX$]) -m4trace:configure.in:401: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */ -@%:@undef _MINIX]) -m4trace:configure.in:401: -1- AH_OUTPUT([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif -]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([__EXTENSIONS__]) -m4trace:configure.in:401: -1- m4_pattern_allow([^__EXTENSIONS__$]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([_ALL_SOURCE]) -m4trace:configure.in:401: -1- m4_pattern_allow([^_ALL_SOURCE$]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) -m4trace:configure.in:401: -1- m4_pattern_allow([^_GNU_SOURCE$]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS]) -m4trace:configure.in:401: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$]) -m4trace:configure.in:401: -1- AC_DEFINE_TRACE_LITERAL([_TANDEM_SOURCE]) -m4trace:configure.in:401: -1- m4_pattern_allow([^_TANDEM_SOURCE$]) -m4trace:configure.in:403: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS]) -m4trace:configure.in:403: -1- m4_pattern_allow([^_FILE_OFFSET_BITS$]) -m4trace:configure.in:403: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */ -@%:@undef _FILE_OFFSET_BITS]) -m4trace:configure.in:403: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES]) -m4trace:configure.in:403: -1- m4_pattern_allow([^_LARGE_FILES$]) -m4trace:configure.in:403: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */ -@%:@undef _LARGE_FILES]) -m4trace:configure.in:440: -1- AC_SUBST([CROSS_COMPILE]) -m4trace:configure.in:440: -1- AC_SUBST_TRACE([CROSS_COMPILE]) -m4trace:configure.in:440: -1- m4_pattern_allow([^CROSS_COMPILE$]) -m4trace:configure.in:442: -1- AC_SUBST([SIGNAMES_H]) -m4trace:configure.in:442: -1- AC_SUBST_TRACE([SIGNAMES_H]) -m4trace:configure.in:442: -1- m4_pattern_allow([^SIGNAMES_H$]) -m4trace:configure.in:443: -1- AC_SUBST([SIGNAMES_O]) -m4trace:configure.in:443: -1- AC_SUBST_TRACE([SIGNAMES_O]) -m4trace:configure.in:443: -1- m4_pattern_allow([^SIGNAMES_O$]) -m4trace:configure.in:477: -1- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete. -You should run autoupdate.], [../../lib/autoconf/c.m4:436: ac_cv_prog_gcc is expanded from... -configure.in:477: the top level]) -m4trace:configure.in:504: -1- AC_SUBST([CFLAGS]) -m4trace:configure.in:504: -1- AC_SUBST_TRACE([CFLAGS]) -m4trace:configure.in:504: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.in:505: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:505: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.in:505: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.in:506: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:506: -1- AC_SUBST_TRACE([LDFLAGS]) -m4trace:configure.in:506: -1- m4_pattern_allow([^LDFLAGS$]) -m4trace:configure.in:507: -1- AC_SUBST([STATIC_LD]) -m4trace:configure.in:507: -1- AC_SUBST_TRACE([STATIC_LD]) -m4trace:configure.in:507: -1- m4_pattern_allow([^STATIC_LD$]) -m4trace:configure.in:509: -1- AC_SUBST([CC_FOR_BUILD]) -m4trace:configure.in:509: -1- AC_SUBST_TRACE([CC_FOR_BUILD]) -m4trace:configure.in:509: -1- m4_pattern_allow([^CC_FOR_BUILD$]) -m4trace:configure.in:510: -1- AC_SUBST([CFLAGS_FOR_BUILD]) -m4trace:configure.in:510: -1- AC_SUBST_TRACE([CFLAGS_FOR_BUILD]) -m4trace:configure.in:510: -1- m4_pattern_allow([^CFLAGS_FOR_BUILD$]) -m4trace:configure.in:511: -1- AC_SUBST([CPPFLAGS_FOR_BUILD]) -m4trace:configure.in:511: -1- AC_SUBST_TRACE([CPPFLAGS_FOR_BUILD]) -m4trace:configure.in:511: -1- m4_pattern_allow([^CPPFLAGS_FOR_BUILD$]) -m4trace:configure.in:512: -1- AC_SUBST([LDFLAGS_FOR_BUILD]) -m4trace:configure.in:512: -1- AC_SUBST_TRACE([LDFLAGS_FOR_BUILD]) -m4trace:configure.in:512: -1- m4_pattern_allow([^LDFLAGS_FOR_BUILD$]) -m4trace:configure.in:513: -1- AC_SUBST([LIBS_FOR_BUILD]) -m4trace:configure.in:513: -1- AC_SUBST_TRACE([LIBS_FOR_BUILD]) -m4trace:configure.in:513: -1- m4_pattern_allow([^LIBS_FOR_BUILD$]) -m4trace:configure.in:527: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1806: RL_LIB_READLINE_VERSION is expanded from... -configure.in:527: the top level]) -m4trace:configure.in:527: -1- AC_DEFINE_TRACE_LITERAL([RL_READLINE_VERSION]) -m4trace:configure.in:527: -1- m4_pattern_allow([^RL_READLINE_VERSION$]) -m4trace:configure.in:527: -1- AH_OUTPUT([RL_READLINE_VERSION], [/* encoded version of the installed readline library */ -@%:@undef RL_READLINE_VERSION]) -m4trace:configure.in:527: -1- AC_DEFINE_TRACE_LITERAL([RL_VERSION_MAJOR]) -m4trace:configure.in:527: -1- m4_pattern_allow([^RL_VERSION_MAJOR$]) -m4trace:configure.in:527: -1- AH_OUTPUT([RL_VERSION_MAJOR], [/* major version of installed readline library */ -@%:@undef RL_VERSION_MAJOR]) -m4trace:configure.in:527: -1- AC_DEFINE_TRACE_LITERAL([RL_VERSION_MINOR]) -m4trace:configure.in:527: -1- m4_pattern_allow([^RL_VERSION_MINOR$]) -m4trace:configure.in:527: -1- AH_OUTPUT([RL_VERSION_MINOR], [/* minor version of installed readline library */ -@%:@undef RL_VERSION_MINOR]) -m4trace:configure.in:527: -1- AC_SUBST([RL_VERSION]) -m4trace:configure.in:527: -1- AC_SUBST_TRACE([RL_VERSION]) -m4trace:configure.in:527: -1- m4_pattern_allow([^RL_VERSION$]) -m4trace:configure.in:527: -1- AC_SUBST([RL_MAJOR]) -m4trace:configure.in:527: -1- AC_SUBST_TRACE([RL_MAJOR]) -m4trace:configure.in:527: -1- m4_pattern_allow([^RL_MAJOR$]) -m4trace:configure.in:527: -1- AC_SUBST([RL_MINOR]) -m4trace:configure.in:527: -1- AC_SUBST_TRACE([RL_MINOR]) -m4trace:configure.in:527: -1- m4_pattern_allow([^RL_MINOR$]) -m4trace:configure.in:540: -1- AC_DEFINE_TRACE_LITERAL([READLINE]) -m4trace:configure.in:540: -1- m4_pattern_allow([^READLINE$]) -m4trace:configure.in:575: -1- AC_DEFINE_TRACE_LITERAL([HISTORY]) -m4trace:configure.in:575: -1- m4_pattern_allow([^HISTORY$]) -m4trace:configure.in:578: -1- AC_DEFINE_TRACE_LITERAL([BANG_HISTORY]) -m4trace:configure.in:578: -1- m4_pattern_allow([^BANG_HISTORY$]) -m4trace:configure.in:608: -1- AC_SUBST([READLINE_LIB]) -m4trace:configure.in:608: -1- AC_SUBST_TRACE([READLINE_LIB]) -m4trace:configure.in:608: -1- m4_pattern_allow([^READLINE_LIB$]) -m4trace:configure.in:609: -1- AC_SUBST([READLINE_DEP]) -m4trace:configure.in:609: -1- AC_SUBST_TRACE([READLINE_DEP]) -m4trace:configure.in:609: -1- m4_pattern_allow([^READLINE_DEP$]) -m4trace:configure.in:610: -1- AC_SUBST([RL_LIBDIR]) -m4trace:configure.in:610: -1- AC_SUBST_TRACE([RL_LIBDIR]) -m4trace:configure.in:610: -1- m4_pattern_allow([^RL_LIBDIR$]) -m4trace:configure.in:611: -1- AC_SUBST([RL_INCLUDEDIR]) -m4trace:configure.in:611: -1- AC_SUBST_TRACE([RL_INCLUDEDIR]) -m4trace:configure.in:611: -1- m4_pattern_allow([^RL_INCLUDEDIR$]) -m4trace:configure.in:612: -1- AC_SUBST([RL_INCLUDE]) -m4trace:configure.in:612: -1- AC_SUBST_TRACE([RL_INCLUDE]) -m4trace:configure.in:612: -1- m4_pattern_allow([^RL_INCLUDE$]) -m4trace:configure.in:613: -1- AC_SUBST([HISTORY_LIB]) -m4trace:configure.in:613: -1- AC_SUBST_TRACE([HISTORY_LIB]) -m4trace:configure.in:613: -1- m4_pattern_allow([^HISTORY_LIB$]) -m4trace:configure.in:614: -1- AC_SUBST([HISTORY_DEP]) -m4trace:configure.in:614: -1- AC_SUBST_TRACE([HISTORY_DEP]) -m4trace:configure.in:614: -1- m4_pattern_allow([^HISTORY_DEP$]) -m4trace:configure.in:615: -1- AC_SUBST([HIST_LIBDIR]) -m4trace:configure.in:615: -1- AC_SUBST_TRACE([HIST_LIBDIR]) -m4trace:configure.in:615: -1- m4_pattern_allow([^HIST_LIBDIR$]) -m4trace:configure.in:616: -1- AC_SUBST([TILDE_LIB]) -m4trace:configure.in:616: -1- AC_SUBST_TRACE([TILDE_LIB]) -m4trace:configure.in:616: -1- m4_pattern_allow([^TILDE_LIB$]) -m4trace:configure.in:621: -1- AC_REQUIRE_AUX_FILE([install-sh]) -m4trace:configure.in:621: -1- AC_SUBST([INSTALL_PROGRAM]) -m4trace:configure.in:621: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) -m4trace:configure.in:621: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) -m4trace:configure.in:621: -1- AC_SUBST([INSTALL_SCRIPT]) -m4trace:configure.in:621: -1- AC_SUBST_TRACE([INSTALL_SCRIPT]) -m4trace:configure.in:621: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) -m4trace:configure.in:621: -1- AC_SUBST([INSTALL_DATA]) -m4trace:configure.in:621: -1- AC_SUBST_TRACE([INSTALL_DATA]) -m4trace:configure.in:621: -1- m4_pattern_allow([^INSTALL_DATA$]) -m4trace:configure.in:622: -1- AC_SUBST([AR]) -m4trace:configure.in:622: -1- AC_SUBST_TRACE([AR]) -m4trace:configure.in:622: -1- m4_pattern_allow([^AR$]) -m4trace:configure.in:626: -1- AC_SUBST([RANLIB]) -m4trace:configure.in:626: -1- AC_SUBST_TRACE([RANLIB]) -m4trace:configure.in:626: -1- m4_pattern_allow([^RANLIB$]) -m4trace:configure.in:627: -1- AC_SUBST([YACC]) -m4trace:configure.in:627: -1- AC_SUBST_TRACE([YACC]) -m4trace:configure.in:627: -1- m4_pattern_allow([^YACC$]) -m4trace:configure.in:627: -1- AC_SUBST([YACC]) -m4trace:configure.in:627: -1- AC_SUBST_TRACE([YACC]) -m4trace:configure.in:627: -1- m4_pattern_allow([^YACC$]) -m4trace:configure.in:627: -1- AC_SUBST([YFLAGS]) -m4trace:configure.in:627: -1- AC_SUBST_TRACE([YFLAGS]) -m4trace:configure.in:627: -1- m4_pattern_allow([^YFLAGS$]) -m4trace:configure.in:628: -1- AC_SUBST([SET_MAKE]) -m4trace:configure.in:628: -1- AC_SUBST_TRACE([SET_MAKE]) -m4trace:configure.in:628: -1- m4_pattern_allow([^SET_MAKE$]) -m4trace:configure.in:634: -1- AC_SUBST([MAKE_SHELL]) -m4trace:configure.in:634: -1- AC_SUBST_TRACE([MAKE_SHELL]) -m4trace:configure.in:634: -1- m4_pattern_allow([^MAKE_SHELL$]) -m4trace:configure.in:656: -1- AC_SUBST([SIZE]) -m4trace:configure.in:656: -1- AC_SUBST_TRACE([SIZE]) -m4trace:configure.in:656: -1- m4_pattern_allow([^SIZE$]) -m4trace:configure.in:658: -1- m4_include([m4/stat-time.m4]) -m4trace:configure.in:659: -1- m4_include([m4/timespec.m4]) -m4trace:configure.in:662: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) -m4trace:configure.in:662: -1- m4_pattern_allow([^_GNU_SOURCE$]) -m4trace:configure.in:665: -1- AC_DEFINE_TRACE_LITERAL([const]) -m4trace:configure.in:665: -1- m4_pattern_allow([^const$]) -m4trace:configure.in:665: -1- AH_OUTPUT([const], [/* Define to empty if `const\' does not conform to ANSI C. */ -@%:@undef const]) -m4trace:configure.in:666: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler - calls it, or to nothing if \'inline\' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif]) -m4trace:configure.in:667: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#endif]) -m4trace:configure.in:667: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN]) -m4trace:configure.in:667: -1- m4_pattern_allow([^WORDS_BIGENDIAN$]) -m4trace:configure.in:667: -1- AC_DEFINE_TRACE_LITERAL([AC_APPLE_UNIVERSAL_BUILD]) -m4trace:configure.in:667: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$]) -m4trace:configure.in:667: -1- AH_OUTPUT([AC_APPLE_UNIVERSAL_BUILD], [/* Define if building universal (internal helper macro) */ -@%:@undef AC_APPLE_UNIVERSAL_BUILD]) -m4trace:configure.in:668: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRINGIZE]) -m4trace:configure.in:668: -1- m4_pattern_allow([^HAVE_STRINGIZE$]) -m4trace:configure.in:668: -1- AH_OUTPUT([HAVE_STRINGIZE], [/* Define to 1 if cpp supports the ANSI @%:@ stringizing operator. */ -@%:@undef HAVE_STRINGIZE]) -m4trace:configure.in:669: -1- _m4_warn([obsolete], [The macro `AC_C_LONG_DOUBLE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/types.m4:451: AC_C_LONG_DOUBLE is expanded from... -configure.in:669: the top level]) -m4trace:configure.in:669: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_DOUBLE_WIDER]) -m4trace:configure.in:669: -1- m4_pattern_allow([^HAVE_LONG_DOUBLE_WIDER$]) -m4trace:configure.in:669: -1- AH_OUTPUT([HAVE_LONG_DOUBLE_WIDER], [/* Define to 1 if the type `long double\' works and has more range or precision - than `double\'. */ -@%:@undef HAVE_LONG_DOUBLE_WIDER]) -m4trace:configure.in:669: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_DOUBLE]) -m4trace:configure.in:669: -1- m4_pattern_allow([^HAVE_LONG_DOUBLE$]) -m4trace:configure.in:669: -1- AH_OUTPUT([HAVE_LONG_DOUBLE], [/* Define to 1 if the type `long double\' works and has more range or precision - than `double\'. */ -@%:@undef HAVE_LONG_DOUBLE]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([PROTOTYPES]) -m4trace:configure.in:670: -1- m4_pattern_allow([^PROTOTYPES$]) -m4trace:configure.in:670: -1- AH_OUTPUT([PROTOTYPES], [/* Define to 1 if the C compiler supports function prototypes. */ -@%:@undef PROTOTYPES]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([__PROTOTYPES]) -m4trace:configure.in:670: -1- m4_pattern_allow([^__PROTOTYPES$]) -m4trace:configure.in:670: -1- AH_OUTPUT([__PROTOTYPES], [/* Define like PROTOTYPES; this can be used by system headers. */ -@%:@undef __PROTOTYPES]) -m4trace:configure.in:671: -1- AH_OUTPUT([__CHAR_UNSIGNED__], [/* Define to 1 if type `char\' is unsigned and you are not using gcc. */ -#ifndef __CHAR_UNSIGNED__ -# undef __CHAR_UNSIGNED__ -#endif]) -m4trace:configure.in:671: -1- AC_DEFINE_TRACE_LITERAL([__CHAR_UNSIGNED__]) -m4trace:configure.in:671: -1- m4_pattern_allow([^__CHAR_UNSIGNED__$]) -m4trace:configure.in:672: -1- AC_DEFINE_TRACE_LITERAL([volatile]) -m4trace:configure.in:672: -1- m4_pattern_allow([^volatile$]) -m4trace:configure.in:672: -1- AH_OUTPUT([volatile], [/* Define to empty if the keyword `volatile\' does not work. Warning: valid - code using `volatile\' can become incorrect without. Disable with care. */ -@%:@undef volatile]) -m4trace:configure.in:673: -1- AH_OUTPUT([restrict], [/* Define to the equivalent of the C99 \'restrict\' keyword, or to - nothing if this is not supported. Do not define if restrict is - supported directly. */ -#undef restrict -/* Work around a bug in Sun C++: it does not support _Restrict or - __restrict__, even though the corresponding Sun C compiler ends up with - "#define restrict _Restrict" or "#define restrict __restrict__" in the - previous line. Perhaps some future version of Sun C++ will work with - restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ -#if defined __SUNPRO_CC && !defined __RESTRICT -# define _Restrict -# define __restrict__ -#endif]) -m4trace:configure.in:673: -1- AC_DEFINE_TRACE_LITERAL([restrict]) -m4trace:configure.in:673: -1- m4_pattern_allow([^restrict$]) -m4trace:configure.in:673: -1- AC_DEFINE_TRACE_LITERAL([restrict]) -m4trace:configure.in:673: -1- m4_pattern_allow([^restrict$]) -m4trace:configure.in:676: -1- AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl]) -m4trace:configure.in:676: -1- AC_SUBST([MKINSTALLDIRS]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([MKINSTALLDIRS]) -m4trace:configure.in:676: -1- m4_pattern_allow([^MKINSTALLDIRS$]) -m4trace:configure.in:676: -1- AM_NLS -m4trace:configure.in:676: -1- AC_SUBST([USE_NLS]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([USE_NLS]) -m4trace:configure.in:676: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.in:676: -1- AC_SUBST([MSGFMT]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([MSGFMT]) -m4trace:configure.in:676: -1- m4_pattern_allow([^MSGFMT$]) -m4trace:configure.in:676: -1- AC_SUBST([GMSGFMT]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([GMSGFMT]) -m4trace:configure.in:676: -1- m4_pattern_allow([^GMSGFMT$]) -m4trace:configure.in:676: -1- AC_SUBST([XGETTEXT]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([XGETTEXT]) -m4trace:configure.in:676: -1- m4_pattern_allow([^XGETTEXT$]) -m4trace:configure.in:676: -1- AC_SUBST([MSGMERGE]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([MSGMERGE]) -m4trace:configure.in:676: -1- m4_pattern_allow([^MSGMERGE$]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete. -You should run autoupdate.], [../../lib/autoconf/status.m4:1028: AC_OUTPUT_COMMANDS is expanded from... -aclocal.m4:3707: AM_PO_SUBDIRS is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([off_t]) -m4trace:configure.in:676: -1- m4_pattern_allow([^off_t$]) -m4trace:configure.in:676: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if does not define. */ -@%:@undef off_t]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([size_t]) -m4trace:configure.in:676: -1- m4_pattern_allow([^size_t$]) -m4trace:configure.in:676: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef size_t]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_ALLOCA_H$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have and it should be used (not on Ultrix). - */ -@%:@undef HAVE_ALLOCA_H]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_ALLOCA$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ -@%:@undef HAVE_ALLOCA]) -m4trace:configure.in:676: -1- AC_LIBSOURCE([alloca.c]) -m4trace:configure.in:676: -1- AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([ALLOCA]) -m4trace:configure.in:676: -1- m4_pattern_allow([^ALLOCA$]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) -m4trace:configure.in:676: -1- m4_pattern_allow([^C_ALLOCA$]) -m4trace:configure.in:676: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ -@%:@undef C_ALLOCA]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) -m4trace:configure.in:676: -1- m4_pattern_allow([^CRAY_STACKSEG_END$]) -m4trace:configure.in:676: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c\' support on those systems. - */ -@%:@undef CRAY_STACKSEG_END]) -m4trace:configure.in:676: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -@%:@undef STACK_DIRECTION]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) -m4trace:configure.in:676: -1- m4_pattern_allow([^STACK_DIRECTION$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -@%:@undef HAVE_GETPAGESIZE]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_MMAP$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ -@%:@undef HAVE_MMAP]) -m4trace:configure.in:676: -1- AC_SUBST([GLIBC21]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([GLIBC21]) -m4trace:configure.in:676: -1- m4_pattern_allow([^GLIBC21$]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2613: gt_INTDIV0 is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([INTDIV0_RAISES_SIGFPE]) -m4trace:configure.in:676: -1- m4_pattern_allow([^INTDIV0_RAISES_SIGFPE$]) -m4trace:configure.in:676: -1- AH_OUTPUT([INTDIV0_RAISES_SIGFPE], [/* Define if integer division by zero raises signal SIGFPE. */ -@%:@undef INTDIV0_RAISES_SIGFPE]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2715: jm_AC_HEADER_INTTYPES_H is expanded from... -aclocal.m4:4016: jm_AC_TYPE_UINTMAX_T is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H_WITH_UINTMAX]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_INTTYPES_H_WITH_UINTMAX$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_INTTYPES_H_WITH_UINTMAX], [/* Define if exists, doesn\'t clash with , and - declares uintmax_t. */ -@%:@undef HAVE_INTTYPES_H_WITH_UINTMAX]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:3986: jm_AC_HEADER_STDINT_H is expanded from... -aclocal.m4:4016: jm_AC_TYPE_UINTMAX_T is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDINT_H_WITH_UINTMAX]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_STDINT_H_WITH_UINTMAX$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_STDINT_H_WITH_UINTMAX], [/* Define if exists, doesn\'t clash with , and declares - uintmax_t. */ -@%:@undef HAVE_STDINT_H_WITH_UINTMAX]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:4043: jm_AC_TYPE_UNSIGNED_LONG_LONG is expanded from... -aclocal.m4:4016: jm_AC_TYPE_UINTMAX_T is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_UNSIGNED_LONG_LONG], [/* Define if you have the unsigned long long type. */ -@%:@undef HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) -m4trace:configure.in:676: -1- m4_pattern_allow([^uintmax_t$]) -m4trace:configure.in:676: -1- AH_OUTPUT([uintmax_t], [/* Define to unsigned long or unsigned long long if and - don\'t define. */ -@%:@undef uintmax_t]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINTMAX_T]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_UINTMAX_T$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_UINTMAX_T], [/* Define if you have the \'uintmax_t\' type in or . */ -@%:@undef HAVE_UINTMAX_T]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2688: gt_HEADER_INTTYPES_H is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_INTTYPES_H$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define if exists and doesn\'t clash with . */ -@%:@undef HAVE_INTTYPES_H]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2743: gt_INTTYPES_PRI is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([PRI_MACROS_BROKEN]) -m4trace:configure.in:676: -1- m4_pattern_allow([^PRI_MACROS_BROKEN$]) -m4trace:configure.in:676: -1- AH_OUTPUT([PRI_MACROS_BROKEN], [/* Define if exists and defines unusable PRI* macros. */ -@%:@undef PRI_MACROS_BROKEN]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ARGZ_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LIMITS_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LOCALE_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_NL_TYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_NL_TYPES_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MALLOC_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDDEF_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRING_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_FEOF_UNLOCKED], [/* Define to 1 if you have the `feof_unlocked\' function. */ -@%:@undef HAVE_FEOF_UNLOCKED]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_FGETS_UNLOCKED], [/* Define to 1 if you have the `fgets_unlocked\' function. */ -@%:@undef HAVE_FGETS_UNLOCKED]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_GETC_UNLOCKED], [/* Define to 1 if you have the `getc_unlocked\' function. */ -@%:@undef HAVE_GETC_UNLOCKED]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ -@%:@undef HAVE_GETCWD]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_GETEGID], [/* Define to 1 if you have the `getegid\' function. */ -@%:@undef HAVE_GETEGID]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_GETEUID], [/* Define to 1 if you have the `geteuid\' function. */ -@%:@undef HAVE_GETEUID]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_GETGID], [/* Define to 1 if you have the `getgid\' function. */ -@%:@undef HAVE_GETGID]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_GETUID], [/* Define to 1 if you have the `getuid\' function. */ -@%:@undef HAVE_GETUID]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ -@%:@undef HAVE_MEMPCPY]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ -@%:@undef HAVE_MUNMAP]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ -@%:@undef HAVE_PUTENV]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ -@%:@undef HAVE_SETENV]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ -@%:@undef HAVE_SETLOCALE]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_LOCALECONV], [/* Define to 1 if you have the `localeconv\' function. */ -@%:@undef HAVE_LOCALECONV]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ -@%:@undef HAVE_STPCPY]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ -@%:@undef HAVE_STRCASECMP]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ -@%:@undef HAVE_STRDUP]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ -@%:@undef HAVE_STRTOUL]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_TSEARCH], [/* Define to 1 if you have the `tsearch\' function. */ -@%:@undef HAVE_TSEARCH]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ -@%:@undef HAVE___ARGZ_COUNT]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ -@%:@undef HAVE___ARGZ_STRINGIFY]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ -@%:@undef HAVE___ARGZ_NEXT]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE___FSETLOCKING], [/* Define to 1 if you have the `__fsetlocking\' function. */ -@%:@undef HAVE___FSETLOCKING]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2521: AM_ICONV_LINK is expanded from... -aclocal.m4:2576: AM_ICONV is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2521: AM_ICONV_LINK is expanded from... -aclocal.m4:2576: AM_ICONV is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_ICONV$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_ICONV], [/* Define if you have the iconv() function. */ -@%:@undef HAVE_ICONV]) -m4trace:configure.in:676: -1- AC_SUBST([LIBICONV]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([LIBICONV]) -m4trace:configure.in:676: -1- m4_pattern_allow([^LIBICONV$]) -m4trace:configure.in:676: -1- AC_SUBST([LTLIBICONV]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([LTLIBICONV]) -m4trace:configure.in:676: -1- m4_pattern_allow([^LTLIBICONV$]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:2576: AM_ICONV is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([ICONV_CONST]) -m4trace:configure.in:676: -1- m4_pattern_allow([^ICONV_CONST$]) -m4trace:configure.in:676: -1- AH_OUTPUT([ICONV_CONST], [/* Define as const if the declaration of iconv() needs const. */ -@%:@undef ICONV_CONST]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2040: AM_LANGINFO_CODESET is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_LANGINFO_CODESET], [/* Define if you have and nl_langinfo(CODESET). */ -@%:@undef HAVE_LANGINFO_CODESET]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2810: AM_LC_MESSAGES is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LC_MESSAGES]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_LC_MESSAGES$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_LC_MESSAGES], [/* Define if your file defines LC_MESSAGES. */ -@%:@undef HAVE_LC_MESSAGES]) -m4trace:configure.in:676: -1- AC_SUBST([INTLBISON]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([INTLBISON]) -m4trace:configure.in:676: -1- m4_pattern_allow([^INTLBISON$]) -m4trace:configure.in:676: -1- AM_NLS -m4trace:configure.in:676: -1- AC_SUBST([USE_NLS]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([USE_NLS]) -m4trace:configure.in:676: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.in:676: the top level]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS]) -m4trace:configure.in:676: -1- m4_pattern_allow([^ENABLE_NLS$]) -m4trace:configure.in:676: -1- AH_OUTPUT([ENABLE_NLS], [/* Define to 1 if translation of program messages to the user\'s native - language is requested. */ -@%:@undef ENABLE_NLS]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETTEXT]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_GETTEXT$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_GETTEXT], [/* Define if the GNU gettext() function is already present or preinstalled. */ -@%:@undef HAVE_GETTEXT]) -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DCGETTEXT]) -m4trace:configure.in:676: -1- m4_pattern_allow([^HAVE_DCGETTEXT$]) -m4trace:configure.in:676: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define if the GNU dcgettext() function is already present or preinstalled. - */ -@%:@undef HAVE_DCGETTEXT]) -m4trace:configure.in:676: -1- AC_SUBST([BUILD_INCLUDED_LIBINTL]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([BUILD_INCLUDED_LIBINTL]) -m4trace:configure.in:676: -1- m4_pattern_allow([^BUILD_INCLUDED_LIBINTL$]) -m4trace:configure.in:676: -1- AC_SUBST([USE_INCLUDED_LIBINTL]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([USE_INCLUDED_LIBINTL]) -m4trace:configure.in:676: -1- m4_pattern_allow([^USE_INCLUDED_LIBINTL$]) -m4trace:configure.in:676: -1- AC_SUBST([CATOBJEXT]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([CATOBJEXT]) -m4trace:configure.in:676: -1- m4_pattern_allow([^CATOBJEXT$]) -m4trace:configure.in:676: -1- AC_SUBST([DATADIRNAME]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([DATADIRNAME]) -m4trace:configure.in:676: -1- m4_pattern_allow([^DATADIRNAME$]) -m4trace:configure.in:676: -1- AC_SUBST([INSTOBJEXT]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([INSTOBJEXT]) -m4trace:configure.in:676: -1- m4_pattern_allow([^INSTOBJEXT$]) -m4trace:configure.in:676: -1- AC_SUBST([GENCAT]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([GENCAT]) -m4trace:configure.in:676: -1- m4_pattern_allow([^GENCAT$]) -m4trace:configure.in:676: -1- AC_SUBST([INTLOBJS]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([INTLOBJS]) -m4trace:configure.in:676: -1- m4_pattern_allow([^INTLOBJS$]) -m4trace:configure.in:676: -1- AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([INTL_LIBTOOL_SUFFIX_PREFIX]) -m4trace:configure.in:676: -1- m4_pattern_allow([^INTL_LIBTOOL_SUFFIX_PREFIX$]) -m4trace:configure.in:676: -1- AC_SUBST([INTLLIBS]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([INTLLIBS]) -m4trace:configure.in:676: -1- m4_pattern_allow([^INTLLIBS$]) -m4trace:configure.in:676: -1- AC_SUBST([LIBINTL]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([LIBINTL]) -m4trace:configure.in:676: -1- m4_pattern_allow([^LIBINTL$]) -m4trace:configure.in:676: -1- AC_SUBST([LTLIBINTL]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([LTLIBINTL]) -m4trace:configure.in:676: -1- m4_pattern_allow([^LTLIBINTL$]) -m4trace:configure.in:676: -1- AC_SUBST([POSUB]) -m4trace:configure.in:676: -1- AC_SUBST_TRACE([POSUB]) -m4trace:configure.in:676: -1- m4_pattern_allow([^POSUB$]) -m4trace:configure.in:679: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -@%:@undef HAVE_DIRENT_H]) -m4trace:configure.in:679: -1- AH_OUTPUT([HAVE_SYS_NDIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -@%:@undef HAVE_SYS_NDIR_H]) -m4trace:configure.in:679: -1- AH_OUTPUT([HAVE_SYS_DIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -@%:@undef HAVE_SYS_DIR_H]) -m4trace:configure.in:679: -1- AH_OUTPUT([HAVE_NDIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. */ -@%:@undef HAVE_NDIR_H]) -m4trace:configure.in:680: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME]) -m4trace:configure.in:680: -1- m4_pattern_allow([^TIME_WITH_SYS_TIME$]) -m4trace:configure.in:680: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both and . */ -@%:@undef TIME_WITH_SYS_TIME]) -m4trace:configure.in:682: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_INTTYPES_H]) -m4trace:configure.in:682: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) -m4trace:configure.in:682: -1- m4_pattern_allow([^HAVE_INTTYPES_H$]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_STDARG_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDARG_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_VARARGS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_VARARGS_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LIMITS_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRING_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MEMORY_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LOCALE_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_TERMCAP_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_TERMCAP_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_TERMIO_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_TERMIO_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_TERMIOS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_TERMIOS_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_DLFCN_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_STDBOOL_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDBOOL_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDDEF_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDINT_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_NETDB_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_PWD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_PWD_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_GRP_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_GRP_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRINGS_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_REGEX_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_REGEX_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_SYSLOG_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYSLOG_H]) -m4trace:configure.in:684: -1- AH_OUTPUT([HAVE_ULIMIT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ULIMIT_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_PTE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PTE_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_STREAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_STREAM_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_SELECT_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_FILE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_FILE_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_RESOURCE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_RESOURCE_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_SOCKET_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_STAT_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIME_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_TIMES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIMES_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TYPES_H]) -m4trace:configure.in:688: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_WAIT_H]) -m4trace:configure.in:691: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_NETINET_IN_H]) -m4trace:configure.in:691: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ARPA_INET_H]) -m4trace:configure.in:702: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) -m4trace:configure.in:702: -1- m4_pattern_allow([^HAVE_ALLOCA_H$]) -m4trace:configure.in:702: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have and it should be used (not on Ultrix). - */ -@%:@undef HAVE_ALLOCA_H]) -m4trace:configure.in:702: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) -m4trace:configure.in:702: -1- m4_pattern_allow([^HAVE_ALLOCA$]) -m4trace:configure.in:702: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ -@%:@undef HAVE_ALLOCA]) -m4trace:configure.in:702: -1- AC_LIBSOURCE([alloca.c]) -m4trace:configure.in:702: -1- AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext]) -m4trace:configure.in:702: -1- AC_SUBST_TRACE([ALLOCA]) -m4trace:configure.in:702: -1- m4_pattern_allow([^ALLOCA$]) -m4trace:configure.in:702: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) -m4trace:configure.in:702: -1- m4_pattern_allow([^C_ALLOCA$]) -m4trace:configure.in:702: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ -@%:@undef C_ALLOCA]) -m4trace:configure.in:702: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) -m4trace:configure.in:702: -1- m4_pattern_allow([^CRAY_STACKSEG_END$]) -m4trace:configure.in:702: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c\' support on those systems. - */ -@%:@undef CRAY_STACKSEG_END]) -m4trace:configure.in:702: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -@%:@undef STACK_DIRECTION]) -m4trace:configure.in:702: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) -m4trace:configure.in:702: -1- m4_pattern_allow([^STACK_DIRECTION$]) -m4trace:configure.in:703: -1- AC_DEFINE_TRACE_LITERAL([GETPGRP_VOID]) -m4trace:configure.in:703: -1- m4_pattern_allow([^GETPGRP_VOID$]) -m4trace:configure.in:703: -1- AH_OUTPUT([GETPGRP_VOID], [/* Define to 1 if the `getpgrp\' function requires zero arguments. */ -@%:@undef GETPGRP_VOID]) -m4trace:configure.in:704: -1- _m4_warn([obsolete], [The macro `AC_FUNC_SETVBUF_REVERSED' is obsolete. Remove it and all references to SETVBUF_REVERSED.], [../../lib/autoconf/functions.m4:1714: AC_FUNC_SETVBUF_REVERSED is expanded from... -configure.in:704: the top level]) -m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_VPRINTF], [/* Define to 1 if you have the `vprintf\' function. */ -@%:@undef HAVE_VPRINTF]) -m4trace:configure.in:705: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VPRINTF]) -m4trace:configure.in:705: -1- m4_pattern_allow([^HAVE_VPRINTF$]) -m4trace:configure.in:705: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DOPRNT]) -m4trace:configure.in:705: -1- m4_pattern_allow([^HAVE_DOPRNT$]) -m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_DOPRNT], [/* Define to 1 if you don\'t have `vprintf\' but do have `_doprnt.\' */ -@%:@undef HAVE_DOPRNT]) -m4trace:configure.in:706: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCOLL]) -m4trace:configure.in:706: -1- m4_pattern_allow([^HAVE_STRCOLL$]) -m4trace:configure.in:706: -1- AH_OUTPUT([HAVE_STRCOLL], [/* Define to 1 if you have the `strcoll\' function and it is properly defined. - */ -@%:@undef HAVE_STRCOLL]) -m4trace:configure.in:727: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VPRINTF]) -m4trace:configure.in:727: -1- m4_pattern_allow([^HAVE_VPRINTF$]) -m4trace:configure.in:732: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS vprint.$ac_objext"]) -m4trace:configure.in:732: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:732: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:732: -1- AC_LIBSOURCE([vprint.c]) -m4trace:configure.in:736: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete. -You should run autoupdate.], [../../lib/autoconf/types.m4:738: AC_TYPE_SIGNAL is expanded from... -configure.in:736: the top level]) -m4trace:configure.in:736: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) -m4trace:configure.in:736: -1- m4_pattern_allow([^RETSIGTYPE$]) -m4trace:configure.in:736: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ -@%:@undef RETSIGTYPE]) -m4trace:configure.in:739: -2- AC_DEFINE_TRACE_LITERAL([HAVE_SETOSTYPE]) -m4trace:configure.in:739: -2- m4_pattern_allow([^HAVE_SETOSTYPE$]) -m4trace:configure.in:740: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WAIT3]) -m4trace:configure.in:740: -2- m4_pattern_allow([^HAVE_WAIT3$]) -m4trace:configure.in:743: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MKFIFO]) -m4trace:configure.in:743: -2- m4_pattern_allow([^HAVE_MKFIFO$]) -m4trace:configure.in:743: -2- AC_DEFINE_TRACE_LITERAL([MKFIFO_MISSING]) -m4trace:configure.in:743: -2- m4_pattern_allow([^MKFIFO_MISSING$]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_DUP2], [/* Define to 1 if you have the `dup2\' function. */ -@%:@undef HAVE_DUP2]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_EACCESS], [/* Define to 1 if you have the `eaccess\' function. */ -@%:@undef HAVE_EACCESS]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */ -@%:@undef HAVE_FCNTL]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_GETDTABLESIZE], [/* Define to 1 if you have the `getdtablesize\' function. */ -@%:@undef HAVE_GETDTABLESIZE]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_GETGROUPS], [/* Define to 1 if you have the `getgroups\' function. */ -@%:@undef HAVE_GETGROUPS]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_GETHOSTNAME], [/* Define to 1 if you have the `gethostname\' function. */ -@%:@undef HAVE_GETHOSTNAME]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -@%:@undef HAVE_GETPAGESIZE]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_GETPEERNAME], [/* Define to 1 if you have the `getpeername\' function. */ -@%:@undef HAVE_GETPEERNAME]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_GETRLIMIT], [/* Define to 1 if you have the `getrlimit\' function. */ -@%:@undef HAVE_GETRLIMIT]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_GETRUSAGE], [/* Define to 1 if you have the `getrusage\' function. */ -@%:@undef HAVE_GETRUSAGE]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ -@%:@undef HAVE_GETTIMEOFDAY]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_KILL], [/* Define to 1 if you have the `kill\' function. */ -@%:@undef HAVE_KILL]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_KILLPG], [/* Define to 1 if you have the `killpg\' function. */ -@%:@undef HAVE_KILLPG]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */ -@%:@undef HAVE_LSTAT]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_READLINK], [/* Define to 1 if you have the `readlink\' function. */ -@%:@undef HAVE_READLINK]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_SBRK], [/* Define to 1 if you have the `sbrk\' function. */ -@%:@undef HAVE_SBRK]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */ -@%:@undef HAVE_SELECT]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_SETDTABLESIZE], [/* Define to 1 if you have the `setdtablesize\' function. */ -@%:@undef HAVE_SETDTABLESIZE]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_SETITIMER], [/* Define to 1 if you have the `setitimer\' function. */ -@%:@undef HAVE_SETITIMER]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_TCGETPGRP], [/* Define to 1 if you have the `tcgetpgrp\' function. */ -@%:@undef HAVE_TCGETPGRP]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_UNAME], [/* Define to 1 if you have the `uname\' function. */ -@%:@undef HAVE_UNAME]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_ULIMIT], [/* Define to 1 if you have the `ulimit\' function. */ -@%:@undef HAVE_ULIMIT]) -m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_WAITPID], [/* Define to 1 if you have the `waitpid\' function. */ -@%:@undef HAVE_WAITPID]) -m4trace:configure.in:750: -1- AH_OUTPUT([HAVE_RENAME], [/* Define to 1 if you have the `rename\' function. */ -@%:@undef HAVE_RENAME]) -m4trace:configure.in:750: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RENAME]) -m4trace:configure.in:750: -1- m4_pattern_allow([^HAVE_RENAME$]) -m4trace:configure.in:750: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS rename.$ac_objext"]) -m4trace:configure.in:750: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:750: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:750: -1- AC_LIBSOURCE([rename.c]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_BCOPY], [/* Define to 1 if you have the `bcopy\' function. */ -@%:@undef HAVE_BCOPY]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_BZERO], [/* Define to 1 if you have the `bzero\' function. */ -@%:@undef HAVE_BZERO]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_CONFSTR], [/* Define to 1 if you have the `confstr\' function. */ -@%:@undef HAVE_CONFSTR]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_FACCESSAT], [/* Define to 1 if you have the `faccessat\' function. */ -@%:@undef HAVE_FACCESSAT]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_FNMATCH], [/* Define to 1 if you have the `fnmatch\' function. */ -@%:@undef HAVE_FNMATCH]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_GETADDRINFO], [/* Define to 1 if you have the `getaddrinfo\' function. */ -@%:@undef HAVE_GETADDRINFO]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_GETHOSTBYNAME], [/* Define to 1 if you have the `gethostbyname\' function. */ -@%:@undef HAVE_GETHOSTBYNAME]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_GETSERVBYNAME], [/* Define to 1 if you have the `getservbyname\' function. */ -@%:@undef HAVE_GETSERVBYNAME]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_GETSERVENT], [/* Define to 1 if you have the `getservent\' function. */ -@%:@undef HAVE_GETSERVENT]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_INET_ATON], [/* Define to 1 if you have the `inet_aton\' function. */ -@%:@undef HAVE_INET_ATON]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_IMAXDIV], [/* Define to 1 if you have the `imaxdiv\' function. */ -@%:@undef HAVE_IMAXDIV]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the `memmove\' function. */ -@%:@undef HAVE_MEMMOVE]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_PATHCONF], [/* Define to 1 if you have the `pathconf\' function. */ -@%:@undef HAVE_PATHCONF]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ -@%:@undef HAVE_PUTENV]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_RAISE], [/* Define to 1 if you have the `raise\' function. */ -@%:@undef HAVE_RAISE]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_REGCOMP], [/* Define to 1 if you have the `regcomp\' function. */ -@%:@undef HAVE_REGCOMP]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_REGEXEC], [/* Define to 1 if you have the `regexec\' function. */ -@%:@undef HAVE_REGEXEC]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ -@%:@undef HAVE_SETENV]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_SETLINEBUF], [/* Define to 1 if you have the `setlinebuf\' function. */ -@%:@undef HAVE_SETLINEBUF]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ -@%:@undef HAVE_SETLOCALE]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_SETVBUF], [/* Define to 1 if you have the `setvbuf\' function. */ -@%:@undef HAVE_SETVBUF]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_SIGINTERRUPT], [/* Define to 1 if you have the `siginterrupt\' function. */ -@%:@undef HAVE_SIGINTERRUPT]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */ -@%:@undef HAVE_STRCHR]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_SYSCONF], [/* Define to 1 if you have the `sysconf\' function. */ -@%:@undef HAVE_SYSCONF]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_SYSLOG], [/* Define to 1 if you have the `syslog\' function. */ -@%:@undef HAVE_SYSLOG]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_TCGETATTR], [/* Define to 1 if you have the `tcgetattr\' function. */ -@%:@undef HAVE_TCGETATTR]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_TIMES], [/* Define to 1 if you have the `times\' function. */ -@%:@undef HAVE_TIMES]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_TTYNAME], [/* Define to 1 if you have the `ttyname\' function. */ -@%:@undef HAVE_TTYNAME]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_TZSET], [/* Define to 1 if you have the `tzset\' function. */ -@%:@undef HAVE_TZSET]) -m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_UNSETENV], [/* Define to 1 if you have the `unsetenv\' function. */ -@%:@undef HAVE_UNSETENV]) -m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_VASPRINTF], [/* Define to 1 if you have the `vasprintf\' function. */ -@%:@undef HAVE_VASPRINTF]) -m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_ASPRINTF], [/* Define to 1 if you have the `asprintf\' function. */ -@%:@undef HAVE_ASPRINTF]) -m4trace:configure.in:760: -1- AH_OUTPUT([HAVE_ISASCII], [/* Define to 1 if you have the `isascii\' function. */ -@%:@undef HAVE_ISASCII]) -m4trace:configure.in:760: -1- AH_OUTPUT([HAVE_ISBLANK], [/* Define to 1 if you have the `isblank\' function. */ -@%:@undef HAVE_ISBLANK]) -m4trace:configure.in:760: -1- AH_OUTPUT([HAVE_ISGRAPH], [/* Define to 1 if you have the `isgraph\' function. */ -@%:@undef HAVE_ISGRAPH]) -m4trace:configure.in:760: -1- AH_OUTPUT([HAVE_ISPRINT], [/* Define to 1 if you have the `isprint\' function. */ -@%:@undef HAVE_ISPRINT]) -m4trace:configure.in:760: -1- AH_OUTPUT([HAVE_ISSPACE], [/* Define to 1 if you have the `isspace\' function. */ -@%:@undef HAVE_ISSPACE]) -m4trace:configure.in:760: -1- AH_OUTPUT([HAVE_ISXDIGIT], [/* Define to 1 if you have the `isxdigit\' function. */ -@%:@undef HAVE_ISXDIGIT]) -m4trace:configure.in:761: -1- AH_OUTPUT([HAVE_GETPWENT], [/* Define to 1 if you have the `getpwent\' function. */ -@%:@undef HAVE_GETPWENT]) -m4trace:configure.in:761: -1- AH_OUTPUT([HAVE_GETPWNAM], [/* Define to 1 if you have the `getpwnam\' function. */ -@%:@undef HAVE_GETPWNAM]) -m4trace:configure.in:761: -1- AH_OUTPUT([HAVE_GETPWUID], [/* Define to 1 if you have the `getpwuid\' function. */ -@%:@undef HAVE_GETPWUID]) -m4trace:configure.in:762: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ -@%:@undef HAVE_GETCWD]) -m4trace:configure.in:762: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETCWD]) -m4trace:configure.in:762: -1- m4_pattern_allow([^HAVE_GETCWD$]) -m4trace:configure.in:762: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS getcwd.$ac_objext"]) -m4trace:configure.in:762: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:762: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:762: -1- AC_LIBSOURCE([getcwd.c]) -m4trace:configure.in:762: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */ -@%:@undef HAVE_MEMSET]) -m4trace:configure.in:762: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MEMSET]) -m4trace:configure.in:762: -1- m4_pattern_allow([^HAVE_MEMSET$]) -m4trace:configure.in:762: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS memset.$ac_objext"]) -m4trace:configure.in:762: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:762: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:762: -1- AC_LIBSOURCE([memset.c]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ -@%:@undef HAVE_STRCASECMP]) -m4trace:configure.in:763: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCASECMP]) -m4trace:configure.in:763: -1- m4_pattern_allow([^HAVE_STRCASECMP$]) -m4trace:configure.in:763: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strcasecmp.$ac_objext"]) -m4trace:configure.in:763: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:763: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strcasecmp.c]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRCASESTR], [/* Define to 1 if you have the `strcasestr\' function. */ -@%:@undef HAVE_STRCASESTR]) -m4trace:configure.in:763: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCASESTR]) -m4trace:configure.in:763: -1- m4_pattern_allow([^HAVE_STRCASESTR$]) -m4trace:configure.in:763: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strcasestr.$ac_objext"]) -m4trace:configure.in:763: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:763: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strcasestr.c]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */ -@%:@undef HAVE_STRERROR]) -m4trace:configure.in:763: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRERROR]) -m4trace:configure.in:763: -1- m4_pattern_allow([^HAVE_STRERROR$]) -m4trace:configure.in:763: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strerror.$ac_objext"]) -m4trace:configure.in:763: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:763: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strerror.c]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the `strftime\' function. */ -@%:@undef HAVE_STRFTIME]) -m4trace:configure.in:763: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRFTIME]) -m4trace:configure.in:763: -1- m4_pattern_allow([^HAVE_STRFTIME$]) -m4trace:configure.in:763: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strftime.$ac_objext"]) -m4trace:configure.in:763: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:763: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strftime.c]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRNLEN], [/* Define to 1 if you have the `strnlen\' function. */ -@%:@undef HAVE_STRNLEN]) -m4trace:configure.in:763: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRNLEN]) -m4trace:configure.in:763: -1- m4_pattern_allow([^HAVE_STRNLEN$]) -m4trace:configure.in:763: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strnlen.$ac_objext"]) -m4trace:configure.in:763: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:763: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strnlen.c]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRPBRK], [/* Define to 1 if you have the `strpbrk\' function. */ -@%:@undef HAVE_STRPBRK]) -m4trace:configure.in:763: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRPBRK]) -m4trace:configure.in:763: -1- m4_pattern_allow([^HAVE_STRPBRK$]) -m4trace:configure.in:763: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strpbrk.$ac_objext"]) -m4trace:configure.in:763: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:763: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strpbrk.c]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */ -@%:@undef HAVE_STRSTR]) -m4trace:configure.in:763: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSTR]) -m4trace:configure.in:763: -1- m4_pattern_allow([^HAVE_STRSTR$]) -m4trace:configure.in:763: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strstr.$ac_objext"]) -m4trace:configure.in:763: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:763: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strstr.c]) -m4trace:configure.in:764: -1- AH_OUTPUT([HAVE_STRTOD], [/* Define to 1 if you have the `strtod\' function. */ -@%:@undef HAVE_STRTOD]) -m4trace:configure.in:764: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOD]) -m4trace:configure.in:764: -1- m4_pattern_allow([^HAVE_STRTOD$]) -m4trace:configure.in:764: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtod.$ac_objext"]) -m4trace:configure.in:764: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:764: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:764: -1- AC_LIBSOURCE([strtod.c]) -m4trace:configure.in:764: -1- AH_OUTPUT([HAVE_STRTOL], [/* Define to 1 if you have the `strtol\' function. */ -@%:@undef HAVE_STRTOL]) -m4trace:configure.in:764: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOL]) -m4trace:configure.in:764: -1- m4_pattern_allow([^HAVE_STRTOL$]) -m4trace:configure.in:764: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtol.$ac_objext"]) -m4trace:configure.in:764: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:764: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:764: -1- AC_LIBSOURCE([strtol.c]) -m4trace:configure.in:764: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ -@%:@undef HAVE_STRTOUL]) -m4trace:configure.in:764: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOUL]) -m4trace:configure.in:764: -1- m4_pattern_allow([^HAVE_STRTOUL$]) -m4trace:configure.in:764: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoul.$ac_objext"]) -m4trace:configure.in:764: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:764: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:764: -1- AC_LIBSOURCE([strtoul.c]) -m4trace:configure.in:764: -1- AH_OUTPUT([HAVE_STRTOLL], [/* Define to 1 if you have the `strtoll\' function. */ -@%:@undef HAVE_STRTOLL]) -m4trace:configure.in:764: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOLL]) -m4trace:configure.in:764: -1- m4_pattern_allow([^HAVE_STRTOLL$]) -m4trace:configure.in:764: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoll.$ac_objext"]) -m4trace:configure.in:764: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:764: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:764: -1- AC_LIBSOURCE([strtoll.c]) -m4trace:configure.in:764: -1- AH_OUTPUT([HAVE_STRTOULL], [/* Define to 1 if you have the `strtoull\' function. */ -@%:@undef HAVE_STRTOULL]) -m4trace:configure.in:764: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOULL]) -m4trace:configure.in:764: -1- m4_pattern_allow([^HAVE_STRTOULL$]) -m4trace:configure.in:764: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoull.$ac_objext"]) -m4trace:configure.in:764: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:764: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:764: -1- AC_LIBSOURCE([strtoull.c]) -m4trace:configure.in:764: -1- AH_OUTPUT([HAVE_STRTOIMAX], [/* Define to 1 if you have the `strtoimax\' function. */ -@%:@undef HAVE_STRTOIMAX]) -m4trace:configure.in:764: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOIMAX]) -m4trace:configure.in:764: -1- m4_pattern_allow([^HAVE_STRTOIMAX$]) -m4trace:configure.in:764: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoimax.$ac_objext"]) -m4trace:configure.in:764: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:764: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:764: -1- AC_LIBSOURCE([strtoimax.c]) -m4trace:configure.in:764: -1- AH_OUTPUT([HAVE_STRTOUMAX], [/* Define to 1 if you have the `strtoumax\' function. */ -@%:@undef HAVE_STRTOUMAX]) -m4trace:configure.in:764: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOUMAX]) -m4trace:configure.in:764: -1- m4_pattern_allow([^HAVE_STRTOUMAX$]) -m4trace:configure.in:764: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoumax.$ac_objext"]) -m4trace:configure.in:764: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:764: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:764: -1- AC_LIBSOURCE([strtoumax.c]) -m4trace:configure.in:765: -1- AH_OUTPUT([HAVE_DPRINTF], [/* Define to 1 if you have the `dprintf\' function. */ -@%:@undef HAVE_DPRINTF]) -m4trace:configure.in:765: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DPRINTF]) -m4trace:configure.in:765: -1- m4_pattern_allow([^HAVE_DPRINTF$]) -m4trace:configure.in:765: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS dprintf.$ac_objext"]) -m4trace:configure.in:765: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:765: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:765: -1- AC_LIBSOURCE([dprintf.c]) -m4trace:configure.in:766: -1- AH_OUTPUT([HAVE_STRCHRNUL], [/* Define to 1 if you have the `strchrnul\' function. */ -@%:@undef HAVE_STRCHRNUL]) -m4trace:configure.in:766: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCHRNUL]) -m4trace:configure.in:766: -1- m4_pattern_allow([^HAVE_STRCHRNUL$]) -m4trace:configure.in:766: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strchrnul.$ac_objext"]) -m4trace:configure.in:766: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:766: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:766: -1- AC_LIBSOURCE([strchrnul.c]) -m4trace:configure.in:768: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_AUDIT_USER_TTY]) -m4trace:configure.in:768: -1- m4_pattern_allow([^HAVE_DECL_AUDIT_USER_TTY$]) -m4trace:configure.in:768: -1- AH_OUTPUT([HAVE_DECL_AUDIT_USER_TTY], [/* Define to 1 if you have the declaration of `AUDIT_USER_TTY\', and to 0 if - you don\'t. */ -@%:@undef HAVE_DECL_AUDIT_USER_TTY]) -m4trace:configure.in:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CONFSTR]) -m4trace:configure.in:770: -1- m4_pattern_allow([^HAVE_DECL_CONFSTR$]) -m4trace:configure.in:770: -1- AH_OUTPUT([HAVE_DECL_CONFSTR], [/* Define to 1 if you have the declaration of `confstr\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_CONFSTR]) -m4trace:configure.in:771: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PRINTF]) -m4trace:configure.in:771: -1- m4_pattern_allow([^HAVE_DECL_PRINTF$]) -m4trace:configure.in:771: -1- AH_OUTPUT([HAVE_DECL_PRINTF], [/* Define to 1 if you have the declaration of `printf\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_PRINTF]) -m4trace:configure.in:772: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SBRK]) -m4trace:configure.in:772: -1- m4_pattern_allow([^HAVE_DECL_SBRK$]) -m4trace:configure.in:772: -1- AH_OUTPUT([HAVE_DECL_SBRK], [/* Define to 1 if you have the declaration of `sbrk\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_SBRK]) -m4trace:configure.in:773: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SETREGID]) -m4trace:configure.in:773: -1- m4_pattern_allow([^HAVE_DECL_SETREGID$]) -m4trace:configure.in:773: -1- AH_OUTPUT([HAVE_DECL_SETREGID], [/* Define to 1 if you have the declaration of `setregid\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_SETREGID]) -m4trace:configure.in:774: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY]) -m4trace:configure.in:774: -1- m4_pattern_allow([^HAVE_DECL_STRCPY$]) -m4trace:configure.in:774: -1- AH_OUTPUT([HAVE_DECL_STRCPY], [/* Define to 1 if you have the declaration of `strcpy\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_STRCPY]) -m4trace:configure.in:775: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL]) -m4trace:configure.in:775: -1- m4_pattern_allow([^HAVE_DECL_STRSIGNAL$]) -m4trace:configure.in:775: -1- AH_OUTPUT([HAVE_DECL_STRSIGNAL], [/* Define to 1 if you have the declaration of `strsignal\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_STRSIGNAL]) -m4trace:configure.in:778: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD]) -m4trace:configure.in:778: -1- m4_pattern_allow([^HAVE_DECL_STRTOLD$]) -m4trace:configure.in:778: -1- AH_OUTPUT([HAVE_DECL_STRTOLD], [/* Define to 1 if you have the declaration of `strtold\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_STRTOLD]) -m4trace:configure.in:778: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2881: AC_CHECK_DECLS is expanded from... -configure.in:778: the top level]) -m4trace:configure.in:778: -1- AC_DEFINE_TRACE_LITERAL([STRTOLD_BROKEN]) -m4trace:configure.in:778: -1- m4_pattern_allow([^STRTOLD_BROKEN$]) -m4trace:configure.in:794: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:794: the top level]) -m4trace:configure.in:795: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:795: the top level]) -m4trace:configure.in:796: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:796: the top level]) -m4trace:configure.in:797: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:797: the top level]) -m4trace:configure.in:798: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:798: the top level]) -m4trace:configure.in:799: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.in:799: the top level]) -m4trace:configure.in:801: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIME_H]) -m4trace:configure.in:801: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:801: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */ -@%:@undef HAVE_ALARM]) -m4trace:configure.in:801: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS mktime.$ac_objext"]) -m4trace:configure.in:801: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:801: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:801: -1- AC_LIBSOURCE([mktime.c]) -m4trace:configure.in:808: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ARGZ_H]) -m4trace:configure.in:808: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ERRNO_H]) -m4trace:configure.in:808: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_FCNTL_H]) -m4trace:configure.in:808: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MALLOC_H]) -m4trace:configure.in:808: -1- AH_OUTPUT([HAVE_STDIO_EXT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDIO_EXT_H]) -m4trace:configure.in:811: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.in:811: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.in:811: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:811: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -@%:@undef HAVE_GETPAGESIZE]) -m4trace:configure.in:811: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE]) -m4trace:configure.in:811: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$]) -m4trace:configure.in:811: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) -m4trace:configure.in:811: -1- m4_pattern_allow([^HAVE_MMAP$]) -m4trace:configure.in:811: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ -@%:@undef HAVE_MMAP]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ -@%:@undef HAVE___ARGZ_COUNT]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ -@%:@undef HAVE___ARGZ_NEXT]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ -@%:@undef HAVE___ARGZ_STRINGIFY]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define to 1 if you have the `dcgettext\' function. */ -@%:@undef HAVE_DCGETTEXT]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ -@%:@undef HAVE_MEMPCPY]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ -@%:@undef HAVE_MUNMAP]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ -@%:@undef HAVE_STPCPY]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_STRCSPN], [/* Define to 1 if you have the `strcspn\' function. */ -@%:@undef HAVE_STRCSPN]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ -@%:@undef HAVE_STRDUP]) -m4trace:configure.in:821: -1- AC_SUBST([INTL_DEP]) -m4trace:configure.in:821: -1- AC_SUBST_TRACE([INTL_DEP]) -m4trace:configure.in:821: -1- m4_pattern_allow([^INTL_DEP$]) -m4trace:configure.in:822: -1- AC_SUBST([INTL_INC]) -m4trace:configure.in:822: -1- AC_SUBST_TRACE([INTL_INC]) -m4trace:configure.in:822: -1- m4_pattern_allow([^INTL_INC$]) -m4trace:configure.in:823: -1- AC_SUBST([LIBINTL_H]) -m4trace:configure.in:823: -1- AC_SUBST_TRACE([LIBINTL_H]) -m4trace:configure.in:823: -1- m4_pattern_allow([^LIBINTL_H$]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_WCTYPE_H]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE_H]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_WCTYPE_H$]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_WCHAR_H]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCHAR_H]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_WCHAR_H$]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LANGINFO_H]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_H]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_LANGINFO_H$]) -m4trace:configure.in:829: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRLEN]) -m4trace:configure.in:829: -2- m4_pattern_allow([^HAVE_MBRLEN$]) -m4trace:configure.in:829: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCMP]) -m4trace:configure.in:829: -2- m4_pattern_allow([^HAVE_MBSCMP$]) -m4trace:configure.in:829: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCMP]) -m4trace:configure.in:829: -2- m4_pattern_allow([^HAVE_MBSCMP$]) -m4trace:configure.in:829: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSNRTOWCS]) -m4trace:configure.in:829: -2- m4_pattern_allow([^HAVE_MBSNRTOWCS$]) -m4trace:configure.in:829: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSRTOWCS]) -m4trace:configure.in:829: -2- m4_pattern_allow([^HAVE_MBSRTOWCS$]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_MBSCHR], [/* Define to 1 if you have the `mbschr\' function. */ -@%:@undef HAVE_MBSCHR]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCHR]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_MBSCHR$]) -m4trace:configure.in:829: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS mbschr.$ac_objext"]) -m4trace:configure.in:829: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:829: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:829: -1- AC_LIBSOURCE([mbschr.c]) -m4trace:configure.in:829: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCRTOMB]) -m4trace:configure.in:829: -2- m4_pattern_allow([^HAVE_WCRTOMB$]) -m4trace:configure.in:829: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSCOLL]) -m4trace:configure.in:829: -2- m4_pattern_allow([^HAVE_WCSCOLL$]) -m4trace:configure.in:829: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSDUP]) -m4trace:configure.in:829: -2- m4_pattern_allow([^HAVE_WCSDUP$]) -m4trace:configure.in:829: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCWIDTH]) -m4trace:configure.in:829: -2- m4_pattern_allow([^HAVE_WCWIDTH$]) -m4trace:configure.in:829: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE]) -m4trace:configure.in:829: -2- m4_pattern_allow([^HAVE_WCTYPE$]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_WCSWIDTH], [/* Define to 1 if you have the `wcswidth\' function. */ -@%:@undef HAVE_WCSWIDTH]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCSWIDTH]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_WCSWIDTH$]) -m4trace:configure.in:829: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS wcswidth.$ac_objext"]) -m4trace:configure.in:829: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:829: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:829: -1- AC_LIBSOURCE([wcswidth.c]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBRTOWC]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_MBRTOWC$]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_MBRTOWC], [/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ -@%:@undef HAVE_MBRTOWC]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSTATE_T]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_MBSTATE_T$]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_ISWLOWER], [/* Define to 1 if you have the `iswlower\' function. */ -@%:@undef HAVE_ISWLOWER]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_ISWUPPER], [/* Define to 1 if you have the `iswupper\' function. */ -@%:@undef HAVE_ISWUPPER]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_TOWLOWER], [/* Define to 1 if you have the `towlower\' function. */ -@%:@undef HAVE_TOWLOWER]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_TOWUPPER], [/* Define to 1 if you have the `towupper\' function. */ -@%:@undef HAVE_TOWUPPER]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_ISWCTYPE], [/* Define to 1 if you have the `iswctype\' function. */ -@%:@undef HAVE_ISWCTYPE]) -m4trace:configure.in:829: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:829: the top level]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$]) -m4trace:configure.in:829: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:829: the top level]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCHAR_T]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_WCHAR_T$]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_WCHAR_T], [/* systems should define this type here */ -@%:@undef HAVE_WCHAR_T]) -m4trace:configure.in:829: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:829: the top level]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE_T]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_WCTYPE_T$]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_WCTYPE_T], [/* systems should define this type here */ -@%:@undef HAVE_WCTYPE_T]) -m4trace:configure.in:829: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:829: the top level]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WINT_T]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_WINT_T$]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_WINT_T], [/* systems should define this type here */ -@%:@undef HAVE_WINT_T]) -m4trace:configure.in:829: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:829: the top level]) -m4trace:configure.in:829: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [../../lib/autoconf/general.m4:2749: AC_RUN_IFELSE is expanded from... -../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:829: the top level]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([WCWIDTH_BROKEN]) -m4trace:configure.in:829: -1- m4_pattern_allow([^WCWIDTH_BROKEN$]) -m4trace:configure.in:829: -1- AH_OUTPUT([WCWIDTH_BROKEN], [/* wcwidth is usually not broken */ -@%:@undef WCWIDTH_BROKEN]) -m4trace:configure.in:829: -1- AH_OUTPUT([HAVE_LOCALE_CHARSET], [/* Define to 1 if you have the `locale_charset\' function. */ -@%:@undef HAVE_LOCALE_CHARSET]) -m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LOCALE_CHARSET]) -m4trace:configure.in:829: -1- m4_pattern_allow([^HAVE_LOCALE_CHARSET$]) -m4trace:configure.in:833: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define to 1 if you have the `dl\' library (-ldl). */ -@%:@undef HAVE_LIBDL]) -m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) -m4trace:configure.in:833: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.in:834: -1- AH_OUTPUT([HAVE_DLOPEN], [/* Define to 1 if you have the `dlopen\' function. */ -@%:@undef HAVE_DLOPEN]) -m4trace:configure.in:834: -1- AH_OUTPUT([HAVE_DLCLOSE], [/* Define to 1 if you have the `dlclose\' function. */ -@%:@undef HAVE_DLCLOSE]) -m4trace:configure.in:834: -1- AH_OUTPUT([HAVE_DLSYM], [/* Define to 1 if you have the `dlsym\' function. */ -@%:@undef HAVE_DLSYM]) -m4trace:configure.in:838: -1- _m4_warn([obsolete], [The macro `AC_DECL_SYS_SIGLIST' is obsolete. -You should run autoupdate.], [../../lib/autoconf/specific.m4:41: AC_DECL_SYS_SIGLIST is expanded from... -configure.in:838: the top level]) -m4trace:configure.in:838: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.in:838: -1- m4_pattern_allow([^HAVE_DECL_SYS_SIGLIST$]) -m4trace:configure.in:838: -1- AH_OUTPUT([HAVE_DECL_SYS_SIGLIST], [/* Define to 1 if you have the declaration of `sys_siglist\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.in:842: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:563: BASH_FUNC_INET_ATON is expanded from... -configure.in:842: the top level]) -m4trace:configure.in:842: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INET_ATON]) -m4trace:configure.in:842: -1- m4_pattern_allow([^HAVE_INET_ATON$]) -m4trace:configure.in:842: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS inet_aton.$ac_objext"]) -m4trace:configure.in:842: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:842: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:842: -1- AC_LIBSOURCE([inet_aton.c]) -m4trace:configure.in:848: -1- AH_OUTPUT([HAVE_LIBSUN], [/* Define to 1 if you have the `sun\' library (-lsun). */ -@%:@undef HAVE_LIBSUN]) -m4trace:configure.in:848: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSUN]) -m4trace:configure.in:848: -1- m4_pattern_allow([^HAVE_LIBSUN$]) -m4trace:configure.in:853: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSOCKET]) -m4trace:configure.in:853: -1- m4_pattern_allow([^HAVE_LIBSOCKET$]) -m4trace:configure.in:853: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPEERNAME]) -m4trace:configure.in:853: -1- m4_pattern_allow([^HAVE_GETPEERNAME$]) -m4trace:configure.in:857: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:732: BASH_FUNC_GETHOSTBYNAME is expanded from... -configure.in:857: the top level]) -m4trace:configure.in:857: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME]) -m4trace:configure.in:857: -1- m4_pattern_allow([^HAVE_GETHOSTBYNAME$]) -m4trace:configure.in:861: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.in:861: -1- m4_pattern_allow([^uid_t$]) -m4trace:configure.in:861: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef uid_t]) -m4trace:configure.in:861: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.in:861: -1- m4_pattern_allow([^gid_t$]) -m4trace:configure.in:861: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef gid_t]) -m4trace:configure.in:861: -1- AC_DEFINE_TRACE_LITERAL([GETGROUPS_T]) -m4trace:configure.in:861: -1- m4_pattern_allow([^GETGROUPS_T$]) -m4trace:configure.in:861: -1- AH_OUTPUT([GETGROUPS_T], [/* Define to the type of elements in the array set by `getgroups\'. Usually - this is either `int\' or `gid_t\'. */ -@%:@undef GETGROUPS_T]) -m4trace:configure.in:862: -1- AC_DEFINE_TRACE_LITERAL([off_t]) -m4trace:configure.in:862: -1- m4_pattern_allow([^off_t$]) -m4trace:configure.in:862: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if does not define. */ -@%:@undef off_t]) -m4trace:configure.in:863: -1- AC_DEFINE_TRACE_LITERAL([mode_t]) -m4trace:configure.in:863: -1- m4_pattern_allow([^mode_t$]) -m4trace:configure.in:863: -1- AH_OUTPUT([mode_t], [/* Define to `int\' if does not define. */ -@%:@undef mode_t]) -m4trace:configure.in:864: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.in:864: -1- m4_pattern_allow([^uid_t$]) -m4trace:configure.in:864: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef uid_t]) -m4trace:configure.in:864: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.in:864: -1- m4_pattern_allow([^gid_t$]) -m4trace:configure.in:864: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef gid_t]) -m4trace:configure.in:865: -1- AC_DEFINE_TRACE_LITERAL([pid_t]) -m4trace:configure.in:865: -1- m4_pattern_allow([^pid_t$]) -m4trace:configure.in:865: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if does not define. */ -@%:@undef pid_t]) -m4trace:configure.in:866: -1- AC_DEFINE_TRACE_LITERAL([size_t]) -m4trace:configure.in:866: -1- m4_pattern_allow([^size_t$]) -m4trace:configure.in:866: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef size_t]) -m4trace:configure.in:867: -1- AC_DEFINE_TRACE_LITERAL([ssize_t]) -m4trace:configure.in:867: -1- m4_pattern_allow([^ssize_t$]) -m4trace:configure.in:867: -1- AH_OUTPUT([ssize_t], [/* Define to `int\' if does not define. */ -@%:@undef ssize_t]) -m4trace:configure.in:868: -1- AC_DEFINE_TRACE_LITERAL([time_t]) -m4trace:configure.in:868: -1- m4_pattern_allow([^time_t$]) -m4trace:configure.in:868: -1- AH_OUTPUT([time_t], [/* Define to `long\' if does not define. */ -@%:@undef time_t]) -m4trace:configure.in:870: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:472: BASH_TYPE_LONG_LONG is expanded from... -configure.in:870: the top level]) -m4trace:configure.in:870: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG]) -m4trace:configure.in:870: -1- m4_pattern_allow([^HAVE_LONG_LONG$]) -m4trace:configure.in:871: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:486: BASH_TYPE_UNSIGNED_LONG_LONG is expanded from... -configure.in:871: the top level]) -m4trace:configure.in:871: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:871: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG$]) -m4trace:configure.in:873: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete. -You should run autoupdate.], [../../lib/autoconf/types.m4:738: AC_TYPE_SIGNAL is expanded from... -configure.in:873: the top level]) -m4trace:configure.in:873: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) -m4trace:configure.in:873: -1- m4_pattern_allow([^RETSIGTYPE$]) -m4trace:configure.in:873: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ -@%:@undef RETSIGTYPE]) -m4trace:configure.in:874: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:537: BASH_TYPE_SIG_ATOMIC_T is expanded from... -configure.in:874: the top level]) -m4trace:configure.in:874: -1- AC_DEFINE_TRACE_LITERAL([sig_atomic_t]) -m4trace:configure.in:874: -1- m4_pattern_allow([^sig_atomic_t$]) -m4trace:configure.in:874: -1- AH_OUTPUT([sig_atomic_t], [/* Define to `int\' if does not define. */ -@%:@undef sig_atomic_t]) -m4trace:configure.in:876: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR]) -m4trace:configure.in:876: -1- m4_pattern_allow([^SIZEOF_CHAR$]) -m4trace:configure.in:876: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of `char\', as computed by sizeof. */ -@%:@undef SIZEOF_CHAR]) -m4trace:configure.in:877: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT]) -m4trace:configure.in:877: -1- m4_pattern_allow([^SIZEOF_SHORT$]) -m4trace:configure.in:877: -1- AH_OUTPUT([SIZEOF_SHORT], [/* The size of `short\', as computed by sizeof. */ -@%:@undef SIZEOF_SHORT]) -m4trace:configure.in:878: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT]) -m4trace:configure.in:878: -1- m4_pattern_allow([^SIZEOF_INT$]) -m4trace:configure.in:878: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of `int\', as computed by sizeof. */ -@%:@undef SIZEOF_INT]) -m4trace:configure.in:879: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG]) -m4trace:configure.in:879: -1- m4_pattern_allow([^SIZEOF_LONG$]) -m4trace:configure.in:879: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of `long\', as computed by sizeof. */ -@%:@undef SIZEOF_LONG]) -m4trace:configure.in:880: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR_P]) -m4trace:configure.in:880: -1- m4_pattern_allow([^SIZEOF_CHAR_P$]) -m4trace:configure.in:880: -1- AH_OUTPUT([SIZEOF_CHAR_P], [/* The size of `char *\', as computed by sizeof. */ -@%:@undef SIZEOF_CHAR_P]) -m4trace:configure.in:881: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_DOUBLE]) -m4trace:configure.in:881: -1- m4_pattern_allow([^SIZEOF_DOUBLE$]) -m4trace:configure.in:881: -1- AH_OUTPUT([SIZEOF_DOUBLE], [/* The size of `double\', as computed by sizeof. */ -@%:@undef SIZEOF_DOUBLE]) -m4trace:configure.in:882: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG]) -m4trace:configure.in:882: -1- m4_pattern_allow([^SIZEOF_LONG_LONG$]) -m4trace:configure.in:882: -1- AH_OUTPUT([SIZEOF_LONG_LONG], [/* The size of `long long\', as computed by sizeof. */ -@%:@undef SIZEOF_LONG_LONG]) -m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([u_int]) -m4trace:configure.in:884: -1- m4_pattern_allow([^u_int$]) -m4trace:configure.in:884: -1- AH_OUTPUT([u_int], [/* Define to `unsigned int\' if does not define. */ -@%:@undef u_int]) -m4trace:configure.in:885: -1- AC_DEFINE_TRACE_LITERAL([u_long]) -m4trace:configure.in:885: -1- m4_pattern_allow([^u_long$]) -m4trace:configure.in:885: -1- AH_OUTPUT([u_long], [/* Define to `unsigned long\' if does not define. */ -@%:@undef u_long]) -m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:887: -1- m4_pattern_allow([^bits16_t$]) -m4trace:configure.in:887: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if does not define. */ -@%:@undef bits16_t]) -m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:887: -1- m4_pattern_allow([^bits16_t$]) -m4trace:configure.in:887: -1- AH_OUTPUT([bits16_t], [/* Define to `char\' if does not define. */ -@%:@undef bits16_t]) -m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:887: -1- m4_pattern_allow([^bits16_t$]) -m4trace:configure.in:887: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if does not define. */ -@%:@undef bits16_t]) -m4trace:configure.in:888: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:888: -1- m4_pattern_allow([^u_bits16_t$]) -m4trace:configure.in:888: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if does not define. */ -@%:@undef u_bits16_t]) -m4trace:configure.in:888: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:888: -1- m4_pattern_allow([^u_bits16_t$]) -m4trace:configure.in:888: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned char\' if does not define. */ -@%:@undef u_bits16_t]) -m4trace:configure.in:888: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:888: -1- m4_pattern_allow([^u_bits16_t$]) -m4trace:configure.in:888: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if does not define. */ -@%:@undef u_bits16_t]) -m4trace:configure.in:889: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:889: -1- m4_pattern_allow([^bits32_t$]) -m4trace:configure.in:889: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if does not define. */ -@%:@undef bits32_t]) -m4trace:configure.in:889: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:889: -1- m4_pattern_allow([^bits32_t$]) -m4trace:configure.in:889: -1- AH_OUTPUT([bits32_t], [/* Define to `long\' if does not define. */ -@%:@undef bits32_t]) -m4trace:configure.in:889: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:889: -1- m4_pattern_allow([^bits32_t$]) -m4trace:configure.in:889: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if does not define. */ -@%:@undef bits32_t]) -m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:890: -1- m4_pattern_allow([^u_bits32_t$]) -m4trace:configure.in:890: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef u_bits32_t]) -m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:890: -1- m4_pattern_allow([^u_bits32_t$]) -m4trace:configure.in:890: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned long\' if does not define. */ -@%:@undef u_bits32_t]) -m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:890: -1- m4_pattern_allow([^u_bits32_t$]) -m4trace:configure.in:890: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef u_bits32_t]) -m4trace:configure.in:891: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:891: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.in:891: -1- AH_OUTPUT([bits64_t], [/* Define to `char *\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.in:891: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:891: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.in:891: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.in:891: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:891: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.in:891: -1- AH_OUTPUT([bits64_t], [/* Define to `long long\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.in:891: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:891: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.in:891: -1- AH_OUTPUT([bits64_t], [/* Define to `long\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.in:891: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:891: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.in:891: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.in:893: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:893: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.in:893: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.in:893: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:893: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.in:893: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.in:893: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:893: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.in:893: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long long\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.in:893: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:893: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.in:893: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.in:896: -1- AC_DEFINE_TRACE_LITERAL([STAT_MACROS_BROKEN]) -m4trace:configure.in:896: -1- m4_pattern_allow([^STAT_MACROS_BROKEN$]) -m4trace:configure.in:896: -1- AH_OUTPUT([STAT_MACROS_BROKEN], [/* Define to 1 if the `S_IS*\' macros in do not work properly. */ -@%:@undef STAT_MACROS_BROKEN]) -m4trace:configure.in:901: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HASH_BANG_EXEC]) -m4trace:configure.in:901: -1- m4_pattern_allow([^HAVE_HASH_BANG_EXEC$]) -m4trace:configure.in:906: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:549: BASH_FUNC_LSTAT is expanded from... -configure.in:906: the top level]) -m4trace:configure.in:906: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LSTAT]) -m4trace:configure.in:906: -1- m4_pattern_allow([^HAVE_LSTAT$]) -m4trace:configure.in:910: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1920: BASH_FUNC_CTYPE_NONASCII is expanded from... -configure.in:910: the top level]) -m4trace:configure.in:910: -1- AC_DEFINE_TRACE_LITERAL([CTYPE_NON_ASCII]) -m4trace:configure.in:910: -1- m4_pattern_allow([^CTYPE_NON_ASCII$]) -m4trace:configure.in:911: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:270: BASH_FUNC_DUP2_CLOEXEC_CHECK is expanded from... -configure.in:911: the top level]) -m4trace:configure.in:911: -1- AC_DEFINE_TRACE_LITERAL([DUP2_BROKEN]) -m4trace:configure.in:911: -1- m4_pattern_allow([^DUP2_BROKEN$]) -m4trace:configure.in:912: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1235: BASH_SYS_PGRP_SYNC is expanded from... -configure.in:912: the top level]) -m4trace:configure.in:912: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) -m4trace:configure.in:912: -1- m4_pattern_allow([^PGRP_PIPE$]) -m4trace:configure.in:913: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1195: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:913: the top level]) -m4trace:configure.in:913: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1195: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:913: the top level]) -m4trace:configure.in:913: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1195: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:913: the top level]) -m4trace:configure.in:913: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGNALS]) -m4trace:configure.in:913: -1- m4_pattern_allow([^HAVE_POSIX_SIGNALS$]) -m4trace:configure.in:913: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BSD_SIGNALS]) -m4trace:configure.in:913: -1- m4_pattern_allow([^HAVE_BSD_SIGNALS$]) -m4trace:configure.in:913: -1- AC_DEFINE_TRACE_LITERAL([HAVE_USG_SIGHOLD]) -m4trace:configure.in:913: -1- m4_pattern_allow([^HAVE_USG_SIGHOLD$]) -m4trace:configure.in:916: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:253: BASH_SYS_ERRLIST is expanded from... -configure.in:916: the top level]) -m4trace:configure.in:916: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST]) -m4trace:configure.in:916: -1- m4_pattern_allow([^HAVE_SYS_ERRLIST$]) -m4trace:configure.in:917: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:211: BASH_SYS_SIGLIST is expanded from... -configure.in:917: the top level]) -m4trace:configure.in:917: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SIGLIST]) -m4trace:configure.in:917: -1- m4_pattern_allow([^HAVE_SYS_SIGLIST$]) -m4trace:configure.in:918: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:167: BASH_DECL_UNDER_SYS_SIGLIST is expanded from... -aclocal.m4:184: BASH_UNDER_SYS_SIGLIST is expanded from... -configure.in:918: the top level]) -m4trace:configure.in:918: -1- AC_DEFINE_TRACE_LITERAL([UNDER_SYS_SIGLIST_DECLARED]) -m4trace:configure.in:918: -1- m4_pattern_allow([^UNDER_SYS_SIGLIST_DECLARED$]) -m4trace:configure.in:918: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:184: BASH_UNDER_SYS_SIGLIST is expanded from... -configure.in:918: the top level]) -m4trace:configure.in:918: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNDER_SYS_SIGLIST]) -m4trace:configure.in:918: -1- m4_pattern_allow([^HAVE_UNDER_SYS_SIGLIST$]) -m4trace:configure.in:921: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:366: BASH_TYPE_SIGHANDLER is expanded from... -configure.in:921: the top level]) -m4trace:configure.in:921: -1- AC_DEFINE_TRACE_LITERAL([VOID_SIGHANDLER]) -m4trace:configure.in:921: -1- m4_pattern_allow([^VOID_SIGHANDLER$]) -m4trace:configure.in:922: -1- AC_DEFINE_TRACE_LITERAL([clock_t]) -m4trace:configure.in:922: -1- m4_pattern_allow([^clock_t$]) -m4trace:configure.in:923: -1- AC_DEFINE_TRACE_LITERAL([sigset_t]) -m4trace:configure.in:923: -1- m4_pattern_allow([^sigset_t$]) -m4trace:configure.in:924: -1- AC_DEFINE_TRACE_LITERAL([HAVE_QUAD_T]) -m4trace:configure.in:924: -1- m4_pattern_allow([^HAVE_QUAD_T$]) -m4trace:configure.in:924: -1- AC_DEFINE_TRACE_LITERAL([quad_t]) -m4trace:configure.in:924: -1- m4_pattern_allow([^quad_t$]) -m4trace:configure.in:925: -1- AC_DEFINE_TRACE_LITERAL([intmax_t]) -m4trace:configure.in:925: -1- m4_pattern_allow([^intmax_t$]) -m4trace:configure.in:926: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) -m4trace:configure.in:926: -1- m4_pattern_allow([^uintmax_t$]) -m4trace:configure.in:928: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SOCKLEN_T]) -m4trace:configure.in:928: -1- m4_pattern_allow([^HAVE_SOCKLEN_T$]) -m4trace:configure.in:928: -1- AC_DEFINE_TRACE_LITERAL([socklen_t]) -m4trace:configure.in:928: -1- m4_pattern_allow([^socklen_t$]) -m4trace:configure.in:930: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:507: BASH_TYPE_RLIMIT is expanded from... -configure.in:930: the top level]) -m4trace:configure.in:930: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:507: BASH_TYPE_RLIMIT is expanded from... -configure.in:930: the top level]) -m4trace:configure.in:930: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) -m4trace:configure.in:930: -1- m4_pattern_allow([^RLIMTYPE$]) -m4trace:configure.in:930: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) -m4trace:configure.in:930: -1- m4_pattern_allow([^RLIMTYPE$]) -m4trace:configure.in:932: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INTMAX_T]) -m4trace:configure.in:932: -1- m4_pattern_allow([^SIZEOF_INTMAX_T$]) -m4trace:configure.in:932: -1- AH_OUTPUT([SIZEOF_INTMAX_T], [/* The size of `intmax_t\', as computed by sizeof. */ -@%:@undef SIZEOF_INTMAX_T]) -m4trace:configure.in:935: -2- AC_DEFINE_TRACE_LITERAL([TERMIOS_LDISC]) -m4trace:configure.in:935: -2- m4_pattern_allow([^TERMIOS_LDISC$]) -m4trace:configure.in:936: -2- AC_DEFINE_TRACE_LITERAL([TERMIO_LDISC]) -m4trace:configure.in:936: -2- m4_pattern_allow([^TERMIO_LDISC$]) -m4trace:configure.in:937: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1042: BASH_STRUCT_DIRENT_D_INO is expanded from... -configure.in:937: the top level]) -m4trace:configure.in:937: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_INO]) -m4trace:configure.in:937: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_INO$]) -m4trace:configure.in:938: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1075: BASH_STRUCT_DIRENT_D_FILENO is expanded from... -configure.in:938: the top level]) -m4trace:configure.in:938: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_FILENO]) -m4trace:configure.in:938: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_FILENO$]) -m4trace:configure.in:939: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1108: BASH_STRUCT_DIRENT_D_NAMLEN is expanded from... -configure.in:939: the top level]) -m4trace:configure.in:939: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_NAMLEN]) -m4trace:configure.in:939: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_NAMLEN$]) -m4trace:configure.in:940: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1173: BASH_STRUCT_WINSIZE is expanded from... -configure.in:940: the top level]) -m4trace:configure.in:940: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1173: BASH_STRUCT_WINSIZE is expanded from... -configure.in:940: the top level]) -m4trace:configure.in:940: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_SYS_IOCTL]) -m4trace:configure.in:940: -1- m4_pattern_allow([^STRUCT_WINSIZE_IN_SYS_IOCTL$]) -m4trace:configure.in:940: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_TERMIOS]) -m4trace:configure.in:940: -1- m4_pattern_allow([^STRUCT_WINSIZE_IN_TERMIOS$]) -m4trace:configure.in:941: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIMEVAL]) -m4trace:configure.in:941: -1- m4_pattern_allow([^HAVE_TIMEVAL$]) -m4trace:configure.in:942: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLOCKS]) -m4trace:configure.in:942: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BLOCKS$]) -m4trace:configure.in:942: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLOCKS], [/* Define to 1 if `st_blocks\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_BLOCKS]) -m4trace:configure.in:943: -1- AC_DEFINE_TRACE_LITERAL([TM_IN_SYS_TIME]) -m4trace:configure.in:943: -1- m4_pattern_allow([^TM_IN_SYS_TIME$]) -m4trace:configure.in:943: -1- AH_OUTPUT([TM_IN_SYS_TIME], [/* Define to 1 if your declares `struct tm\'. */ -@%:@undef TM_IN_SYS_TIME]) -m4trace:configure.in:944: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TM_TM_ZONE]) -m4trace:configure.in:944: -1- m4_pattern_allow([^HAVE_STRUCT_TM_TM_ZONE$]) -m4trace:configure.in:944: -1- AH_OUTPUT([HAVE_STRUCT_TM_TM_ZONE], [/* Define to 1 if `tm_zone\' is a member of `struct tm\'. */ -@%:@undef HAVE_STRUCT_TM_TM_ZONE]) -m4trace:configure.in:944: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TM_ZONE]) -m4trace:configure.in:944: -1- m4_pattern_allow([^HAVE_TM_ZONE$]) -m4trace:configure.in:944: -1- AH_OUTPUT([HAVE_TM_ZONE], [/* Define to 1 if your `struct tm\' has `tm_zone\'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE\' instead. */ -@%:@undef HAVE_TM_ZONE]) -m4trace:configure.in:944: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_TZNAME]) -m4trace:configure.in:944: -1- m4_pattern_allow([^HAVE_DECL_TZNAME$]) -m4trace:configure.in:944: -1- AH_OUTPUT([HAVE_DECL_TZNAME], [/* Define to 1 if you have the declaration of `tzname\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_TZNAME]) -m4trace:configure.in:944: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TZNAME]) -m4trace:configure.in:944: -1- m4_pattern_allow([^HAVE_TZNAME$]) -m4trace:configure.in:944: -1- AH_OUTPUT([HAVE_TZNAME], [/* Define to 1 if you don\'t have `tm_zone\' but do have the external array - `tzname\'. */ -@%:@undef HAVE_TZNAME]) -m4trace:configure.in:945: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEZONE]) -m4trace:configure.in:945: -1- m4_pattern_allow([^HAVE_STRUCT_TIMEZONE$]) -m4trace:configure.in:947: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:4149: BASH_STRUCT_WEXITSTATUS_OFFSET is expanded from... -configure.in:947: the top level]) -m4trace:configure.in:947: -1- AC_DEFINE_TRACE_LITERAL([WEXITSTATUS_OFFSET]) -m4trace:configure.in:947: -1- m4_pattern_allow([^WEXITSTATUS_OFFSET$]) -m4trace:configure.in:947: -1- AH_OUTPUT([WEXITSTATUS_OFFSET], [/* Offset of exit status in wait status word */ -@%:@undef WEXITSTATUS_OFFSET]) -m4trace:configure.in:949: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIME_H]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- m4_pattern_allow([^HAVE_STRUCT_TIMESPEC$]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- m4_pattern_allow([^TIME_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- m4_pattern_allow([^HAVE_STRUCT_TIMESPEC$]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- m4_pattern_allow([^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- m4_pattern_allow([^HAVE_STRUCT_TIMESPEC$]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- m4_pattern_allow([^PTHREAD_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.in:949: -1- AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- AC_SUBST_TRACE([TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- m4_pattern_allow([^TIME_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.in:949: -1- AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- AC_SUBST_TRACE([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- m4_pattern_allow([^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.in:949: -1- AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- AC_SUBST_TRACE([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- m4_pattern_allow([^PTHREAD_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.in:950: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIME_H]) -m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC]) -m4trace:configure.in:950: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC$]) -m4trace:configure.in:950: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC], [/* Define to 1 if `st_atim.tv_nsec\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC]) -m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC]) -m4trace:configure.in:950: -1- m4_pattern_allow([^TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC$]) -m4trace:configure.in:950: -1- AH_OUTPUT([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [/* Define to 1 if the type of the st_atim member of a struct stat is struct - timespec. */ -@%:@undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC]) -m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC]) -m4trace:configure.in:950: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC$]) -m4trace:configure.in:950: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC], [/* Define to 1 if `st_atimespec.tv_nsec\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC]) -m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIMENSEC]) -m4trace:configure.in:950: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIMENSEC$]) -m4trace:configure.in:950: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIMENSEC], [/* Define to 1 if `st_atimensec\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_ATIMENSEC]) -m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC]) -m4trace:configure.in:950: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC$]) -m4trace:configure.in:950: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC], [/* Define to 1 if `st_atim.st__tim.tv_nsec\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC]) -m4trace:configure.in:953: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:299: BASH_FUNC_STRSIGNAL is expanded from... -configure.in:953: the top level]) -m4trace:configure.in:953: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSIGNAL]) -m4trace:configure.in:953: -1- m4_pattern_allow([^HAVE_STRSIGNAL$]) -m4trace:configure.in:954: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:313: BASH_FUNC_OPENDIR_CHECK is expanded from... -configure.in:954: the top level]) -m4trace:configure.in:954: -1- AC_DEFINE_TRACE_LITERAL([OPENDIR_NOT_ROBUST]) -m4trace:configure.in:954: -1- m4_pattern_allow([^OPENDIR_NOT_ROBUST$]) -m4trace:configure.in:955: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:683: BASH_FUNC_ULIMIT_MAXFDS is expanded from... -configure.in:955: the top level]) -m4trace:configure.in:955: -1- AC_DEFINE_TRACE_LITERAL([ULIMIT_MAXFDS]) -m4trace:configure.in:955: -1- m4_pattern_allow([^ULIMIT_MAXFDS$]) -m4trace:configure.in:956: -1- AH_OUTPUT([HAVE_FPURGE], [/* Define to 1 if you have the `fpurge\' function. */ -@%:@undef HAVE_FPURGE]) -m4trace:configure.in:956: -1- AH_OUTPUT([HAVE___FPURGE], [/* Define to 1 if you have the `__fpurge\' function. */ -@%:@undef HAVE___FPURGE]) -m4trace:configure.in:956: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FPURGE]) -m4trace:configure.in:956: -1- m4_pattern_allow([^HAVE_DECL_FPURGE$]) -m4trace:configure.in:956: -1- AH_OUTPUT([HAVE_DECL_FPURGE], [/* Define to 1 if you have the declaration of `fpurge\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_FPURGE]) -m4trace:configure.in:957: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:579: BASH_FUNC_GETENV is expanded from... -configure.in:957: the top level]) -m4trace:configure.in:957: -1- AC_DEFINE_TRACE_LITERAL([CAN_REDEFINE_GETENV]) -m4trace:configure.in:957: -1- m4_pattern_allow([^CAN_REDEFINE_GETENV$]) -m4trace:configure.in:959: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:702: BASH_FUNC_GETCWD is expanded from... -configure.in:959: the top level]) -m4trace:configure.in:959: -1- AC_DEFINE_TRACE_LITERAL([GETCWD_BROKEN]) -m4trace:configure.in:959: -1- m4_pattern_allow([^GETCWD_BROKEN$]) -m4trace:configure.in:959: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS getcwd.$ac_objext"]) -m4trace:configure.in:959: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:959: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:959: -1- AC_LIBSOURCE([getcwd.c]) -m4trace:configure.in:961: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:778: BASH_FUNC_POSIX_SETJMP is expanded from... -configure.in:961: the top level]) -m4trace:configure.in:961: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGSETJMP]) -m4trace:configure.in:961: -1- m4_pattern_allow([^HAVE_POSIX_SIGSETJMP$]) -m4trace:configure.in:962: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:829: BASH_FUNC_STRCOLL is expanded from... -configure.in:962: the top level]) -m4trace:configure.in:962: -1- AC_DEFINE_TRACE_LITERAL([STRCOLL_BROKEN]) -m4trace:configure.in:962: -1- m4_pattern_allow([^STRCOLL_BROKEN$]) -m4trace:configure.in:963: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */ -@%:@undef HAVE_SNPRINTF]) -m4trace:configure.in:963: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:4065: BASH_FUNC_SNPRINTF is expanded from... -configure.in:963: the top level]) -m4trace:configure.in:963: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SNPRINTF]) -m4trace:configure.in:963: -1- m4_pattern_allow([^HAVE_SNPRINTF$]) -m4trace:configure.in:963: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define if you have a standard-conformant snprintf function. */ -@%:@undef HAVE_SNPRINTF]) -m4trace:configure.in:964: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define to 1 if you have the `vsnprintf\' function. */ -@%:@undef HAVE_VSNPRINTF]) -m4trace:configure.in:964: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:4093: BASH_FUNC_VSNPRINTF is expanded from... -configure.in:964: the top level]) -m4trace:configure.in:964: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VSNPRINTF]) -m4trace:configure.in:964: -1- m4_pattern_allow([^HAVE_VSNPRINTF$]) -m4trace:configure.in:964: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define if you have a standard-conformant vsnprintf function. */ -@%:@undef HAVE_VSNPRINTF]) -m4trace:configure.in:970: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:624: BASH_FUNC_STD_PUTENV is expanded from... -configure.in:970: the top level]) -m4trace:configure.in:970: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) -m4trace:configure.in:970: -1- m4_pattern_allow([^HAVE_STD_PUTENV$]) -m4trace:configure.in:972: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) -m4trace:configure.in:972: -1- m4_pattern_allow([^HAVE_STD_PUTENV$]) -m4trace:configure.in:975: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:654: BASH_FUNC_STD_UNSETENV is expanded from... -configure.in:975: the top level]) -m4trace:configure.in:975: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) -m4trace:configure.in:975: -1- m4_pattern_allow([^HAVE_STD_UNSETENV$]) -m4trace:configure.in:977: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) -m4trace:configure.in:977: -1- m4_pattern_allow([^HAVE_STD_UNSETENV$]) -m4trace:configure.in:980: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:878: BASH_FUNC_PRINTF_A_FORMAT is expanded from... -configure.in:980: the top level]) -m4trace:configure.in:980: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRINTF_A_FORMAT]) -m4trace:configure.in:980: -1- m4_pattern_allow([^HAVE_PRINTF_A_FORMAT$]) -m4trace:configure.in:983: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1297: BASH_SYS_REINSTALL_SIGHANDLERS is expanded from... -configure.in:983: the top level]) -m4trace:configure.in:983: -1- AC_DEFINE_TRACE_LITERAL([MUST_REINSTALL_SIGHANDLERS]) -m4trace:configure.in:983: -1- m4_pattern_allow([^MUST_REINSTALL_SIGHANDLERS$]) -m4trace:configure.in:984: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1356: BASH_SYS_JOB_CONTROL_MISSING is expanded from... -configure.in:984: the top level]) -m4trace:configure.in:984: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL_MISSING]) -m4trace:configure.in:984: -1- m4_pattern_allow([^JOB_CONTROL_MISSING$]) -m4trace:configure.in:985: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1415: BASH_SYS_NAMED_PIPES is expanded from... -configure.in:985: the top level]) -m4trace:configure.in:985: -1- AC_DEFINE_TRACE_LITERAL([NAMED_PIPES_MISSING]) -m4trace:configure.in:985: -1- m4_pattern_allow([^NAMED_PIPES_MISSING$]) -m4trace:configure.in:988: -1- AC_DEFINE_TRACE_LITERAL([GWINSZ_IN_SYS_IOCTL]) -m4trace:configure.in:988: -1- m4_pattern_allow([^GWINSZ_IN_SYS_IOCTL$]) -m4trace:configure.in:988: -1- AH_OUTPUT([GWINSZ_IN_SYS_IOCTL], [/* Define to 1 if `TIOCGWINSZ\' requires . */ -@%:@undef GWINSZ_IN_SYS_IOCTL]) -m4trace:configure.in:989: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1496: BASH_HAVE_TIOCSTAT is expanded from... -configure.in:989: the top level]) -m4trace:configure.in:989: -1- AC_DEFINE_TRACE_LITERAL([TIOCSTAT_IN_SYS_IOCTL]) -m4trace:configure.in:989: -1- m4_pattern_allow([^TIOCSTAT_IN_SYS_IOCTL$]) -m4trace:configure.in:990: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1508: BASH_HAVE_FIONREAD is expanded from... -configure.in:990: the top level]) -m4trace:configure.in:990: -1- AC_DEFINE_TRACE_LITERAL([FIONREAD_IN_SYS_IOCTL]) -m4trace:configure.in:990: -1- m4_pattern_allow([^FIONREAD_IN_SYS_IOCTL$]) -m4trace:configure.in:992: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1964: BASH_CHECK_WCONTINUED is expanded from... -configure.in:992: the top level]) -m4trace:configure.in:992: -1- AC_DEFINE_TRACE_LITERAL([WCONTINUED_BROKEN]) -m4trace:configure.in:992: -1- m4_pattern_allow([^WCONTINUED_BROKEN$]) -m4trace:configure.in:995: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1526: BASH_CHECK_SPEED_T is expanded from... -configure.in:995: the top level]) -m4trace:configure.in:995: -1- AC_DEFINE_TRACE_LITERAL([SPEED_T_IN_SYS_TYPES]) -m4trace:configure.in:995: -1- m4_pattern_allow([^SPEED_T_IN_SYS_TYPES$]) -m4trace:configure.in:996: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPW_DECLS]) -m4trace:configure.in:996: -1- m4_pattern_allow([^HAVE_GETPW_DECLS$]) -m4trace:configure.in:997: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1653: BASH_CHECK_RTSIGS is expanded from... -configure.in:997: the top level]) -m4trace:configure.in:997: -1- AC_DEFINE_TRACE_LITERAL([UNUSABLE_RT_SIGNALS]) -m4trace:configure.in:997: -1- m4_pattern_allow([^UNUSABLE_RT_SIGNALS$]) -m4trace:configure.in:998: -1- AC_SUBST([SIGLIST_O]) -m4trace:configure.in:998: -1- AC_SUBST_TRACE([SIGLIST_O]) -m4trace:configure.in:998: -1- m4_pattern_allow([^SIGLIST_O$]) -m4trace:configure.in:1002: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1605: BASH_CHECK_KERNEL_RLIMIT is expanded from... -configure.in:1002: the top level]) -m4trace:configure.in:1002: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1605: BASH_CHECK_KERNEL_RLIMIT is expanded from... -configure.in:1002: the top level]) -m4trace:configure.in:1002: -1- AC_DEFINE_TRACE_LITERAL([RLIMIT_NEEDS_KERNEL]) -m4trace:configure.in:1002: -1- m4_pattern_allow([^RLIMIT_NEEDS_KERNEL$]) -m4trace:configure.in:1012: -1- AC_SUBST([TERMCAP_LIB]) -m4trace:configure.in:1012: -1- AC_SUBST_TRACE([TERMCAP_LIB]) -m4trace:configure.in:1012: -1- m4_pattern_allow([^TERMCAP_LIB$]) -m4trace:configure.in:1013: -1- AC_SUBST([TERMCAP_DEP]) -m4trace:configure.in:1013: -1- AC_SUBST_TRACE([TERMCAP_DEP]) -m4trace:configure.in:1013: -1- m4_pattern_allow([^TERMCAP_DEP$]) -m4trace:configure.in:1015: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) -m4trace:configure.in:1015: -1- m4_pattern_allow([^HAVE_DEV_FD$]) -m4trace:configure.in:1015: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) -m4trace:configure.in:1015: -1- m4_pattern_allow([^DEV_FD_PREFIX$]) -m4trace:configure.in:1015: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) -m4trace:configure.in:1015: -1- m4_pattern_allow([^HAVE_DEV_FD$]) -m4trace:configure.in:1015: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) -m4trace:configure.in:1015: -1- m4_pattern_allow([^DEV_FD_PREFIX$]) -m4trace:configure.in:1016: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_STDIN]) -m4trace:configure.in:1016: -1- m4_pattern_allow([^HAVE_DEV_STDIN$]) -m4trace:configure.in:1017: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_MAIL_DIRECTORY]) -m4trace:configure.in:1017: -1- m4_pattern_allow([^DEFAULT_MAIL_DIRECTORY$]) -m4trace:configure.in:1024: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL]) -m4trace:configure.in:1024: -1- m4_pattern_allow([^JOB_CONTROL$]) -m4trace:configure.in:1030: -1- AC_SUBST([JOBS_O]) -m4trace:configure.in:1030: -1- AC_SUBST_TRACE([JOBS_O]) -m4trace:configure.in:1030: -1- m4_pattern_allow([^JOBS_O$]) -m4trace:configure.in:1043: -1- AC_DEFINE_TRACE_LITERAL([SVR4_2]) -m4trace:configure.in:1043: -1- m4_pattern_allow([^SVR4_2$]) -m4trace:configure.in:1044: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) -m4trace:configure.in:1044: -1- m4_pattern_allow([^SVR4$]) -m4trace:configure.in:1045: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) -m4trace:configure.in:1045: -1- m4_pattern_allow([^SVR4$]) -m4trace:configure.in:1046: -1- AC_DEFINE_TRACE_LITERAL([SVR5]) -m4trace:configure.in:1046: -1- m4_pattern_allow([^SVR5$]) -m4trace:configure.in:1065: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) -m4trace:configure.in:1065: -1- m4_pattern_allow([^PGRP_PIPE$]) -m4trace:configure.in:1112: -1- AC_SUBST([SHOBJ_CC]) -m4trace:configure.in:1112: -1- AC_SUBST_TRACE([SHOBJ_CC]) -m4trace:configure.in:1112: -1- m4_pattern_allow([^SHOBJ_CC$]) -m4trace:configure.in:1113: -1- AC_SUBST([SHOBJ_CFLAGS]) -m4trace:configure.in:1113: -1- AC_SUBST_TRACE([SHOBJ_CFLAGS]) -m4trace:configure.in:1113: -1- m4_pattern_allow([^SHOBJ_CFLAGS$]) -m4trace:configure.in:1114: -1- AC_SUBST([SHOBJ_LD]) -m4trace:configure.in:1114: -1- AC_SUBST_TRACE([SHOBJ_LD]) -m4trace:configure.in:1114: -1- m4_pattern_allow([^SHOBJ_LD$]) -m4trace:configure.in:1115: -1- AC_SUBST([SHOBJ_LDFLAGS]) -m4trace:configure.in:1115: -1- AC_SUBST_TRACE([SHOBJ_LDFLAGS]) -m4trace:configure.in:1115: -1- m4_pattern_allow([^SHOBJ_LDFLAGS$]) -m4trace:configure.in:1116: -1- AC_SUBST([SHOBJ_XLDFLAGS]) -m4trace:configure.in:1116: -1- AC_SUBST_TRACE([SHOBJ_XLDFLAGS]) -m4trace:configure.in:1116: -1- m4_pattern_allow([^SHOBJ_XLDFLAGS$]) -m4trace:configure.in:1117: -1- AC_SUBST([SHOBJ_LIBS]) -m4trace:configure.in:1117: -1- AC_SUBST_TRACE([SHOBJ_LIBS]) -m4trace:configure.in:1117: -1- m4_pattern_allow([^SHOBJ_LIBS$]) -m4trace:configure.in:1118: -1- AC_SUBST([SHOBJ_STATUS]) -m4trace:configure.in:1118: -1- AC_SUBST_TRACE([SHOBJ_STATUS]) -m4trace:configure.in:1118: -1- m4_pattern_allow([^SHOBJ_STATUS$]) -m4trace:configure.in:1150: -1- AC_SUBST([PROFILE_FLAGS]) -m4trace:configure.in:1150: -1- AC_SUBST_TRACE([PROFILE_FLAGS]) -m4trace:configure.in:1150: -1- m4_pattern_allow([^PROFILE_FLAGS$]) -m4trace:configure.in:1152: -1- AC_SUBST([incdir]) -m4trace:configure.in:1152: -1- AC_SUBST_TRACE([incdir]) -m4trace:configure.in:1152: -1- m4_pattern_allow([^incdir$]) -m4trace:configure.in:1153: -1- AC_SUBST([BUILD_DIR]) -m4trace:configure.in:1153: -1- AC_SUBST_TRACE([BUILD_DIR]) -m4trace:configure.in:1153: -1- m4_pattern_allow([^BUILD_DIR$]) -m4trace:configure.in:1156: -1- AC_SUBST([datarootdir]) -m4trace:configure.in:1156: -1- AC_SUBST_TRACE([datarootdir]) -m4trace:configure.in:1156: -1- m4_pattern_allow([^datarootdir$]) -m4trace:configure.in:1157: -1- AC_SUBST([localedir]) -m4trace:configure.in:1157: -1- AC_SUBST_TRACE([localedir]) -m4trace:configure.in:1157: -1- m4_pattern_allow([^localedir$]) -m4trace:configure.in:1159: -1- AC_SUBST([YACC]) -m4trace:configure.in:1159: -1- AC_SUBST_TRACE([YACC]) -m4trace:configure.in:1159: -1- m4_pattern_allow([^YACC$]) -m4trace:configure.in:1160: -1- AC_SUBST([AR]) -m4trace:configure.in:1160: -1- AC_SUBST_TRACE([AR]) -m4trace:configure.in:1160: -1- m4_pattern_allow([^AR$]) -m4trace:configure.in:1161: -1- AC_SUBST([ARFLAGS]) -m4trace:configure.in:1161: -1- AC_SUBST_TRACE([ARFLAGS]) -m4trace:configure.in:1161: -1- m4_pattern_allow([^ARFLAGS$]) -m4trace:configure.in:1163: -1- AC_SUBST([BASHVERS]) -m4trace:configure.in:1163: -1- AC_SUBST_TRACE([BASHVERS]) -m4trace:configure.in:1163: -1- m4_pattern_allow([^BASHVERS$]) -m4trace:configure.in:1164: -1- AC_SUBST([RELSTATUS]) -m4trace:configure.in:1164: -1- AC_SUBST_TRACE([RELSTATUS]) -m4trace:configure.in:1164: -1- m4_pattern_allow([^RELSTATUS$]) -m4trace:configure.in:1165: -1- AC_SUBST([DEBUG]) -m4trace:configure.in:1165: -1- AC_SUBST_TRACE([DEBUG]) -m4trace:configure.in:1165: -1- m4_pattern_allow([^DEBUG$]) -m4trace:configure.in:1166: -1- AC_SUBST([MALLOC_DEBUG]) -m4trace:configure.in:1166: -1- AC_SUBST_TRACE([MALLOC_DEBUG]) -m4trace:configure.in:1166: -1- m4_pattern_allow([^MALLOC_DEBUG$]) -m4trace:configure.in:1168: -1- AC_SUBST([host_cpu]) -m4trace:configure.in:1168: -1- AC_SUBST_TRACE([host_cpu]) -m4trace:configure.in:1168: -1- m4_pattern_allow([^host_cpu$]) -m4trace:configure.in:1169: -1- AC_SUBST([host_vendor]) -m4trace:configure.in:1169: -1- AC_SUBST_TRACE([host_vendor]) -m4trace:configure.in:1169: -1- m4_pattern_allow([^host_vendor$]) -m4trace:configure.in:1170: -1- AC_SUBST([host_os]) -m4trace:configure.in:1170: -1- AC_SUBST_TRACE([host_os]) -m4trace:configure.in:1170: -1- m4_pattern_allow([^host_os$]) -m4trace:configure.in:1172: -1- AC_SUBST([LOCAL_LIBS]) -m4trace:configure.in:1172: -1- AC_SUBST_TRACE([LOCAL_LIBS]) -m4trace:configure.in:1172: -1- m4_pattern_allow([^LOCAL_LIBS$]) -m4trace:configure.in:1173: -1- AC_SUBST([LOCAL_CFLAGS]) -m4trace:configure.in:1173: -1- AC_SUBST_TRACE([LOCAL_CFLAGS]) -m4trace:configure.in:1173: -1- m4_pattern_allow([^LOCAL_CFLAGS$]) -m4trace:configure.in:1174: -1- AC_SUBST([LOCAL_LDFLAGS]) -m4trace:configure.in:1174: -1- AC_SUBST_TRACE([LOCAL_LDFLAGS]) -m4trace:configure.in:1174: -1- m4_pattern_allow([^LOCAL_LDFLAGS$]) -m4trace:configure.in:1175: -1- AC_SUBST([LOCAL_DEFS]) -m4trace:configure.in:1175: -1- AC_SUBST_TRACE([LOCAL_DEFS]) -m4trace:configure.in:1175: -1- m4_pattern_allow([^LOCAL_DEFS$]) -m4trace:configure.in:1180: -1- 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]) -m4trace:configure.in:1180: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. -You should run autoupdate.], []) -m4trace:configure.in:1180: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.in:1180: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.in:1180: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([LTLIBOBJS]) -m4trace:configure.in:1180: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([top_builddir]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([top_build_prefix]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([srcdir]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([abs_srcdir]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([top_srcdir]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([abs_top_srcdir]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([builddir]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([abs_builddir]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([abs_top_builddir]) -m4trace:configure.in:1180: -1- AC_SUBST_TRACE([INSTALL]) diff --git a/autom4te.cache/traces.2 b/autom4te.cache/traces.2 deleted file mode 100644 index 03eeb5d04..000000000 --- a/autom4te.cache/traces.2 +++ /dev/null @@ -1,2068 +0,0 @@ -m4trace:configure.in:29: -1- AC_INIT([bash], [4.2-maint], [bug-bash@gnu.org]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.in:29: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) -m4trace:configure.in:29: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.in:29: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.in:29: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}]) -m4trace:configure.in:29: -1- AC_SUBST([PATH_SEPARATOR]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) -m4trace:configure.in:29: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) -m4trace:configure.in:29: -1- AC_SUBST([exec_prefix], [NONE]) -m4trace:configure.in:29: -1- AC_SUBST([prefix], [NONE]) -m4trace:configure.in:29: -1- AC_SUBST([program_transform_name], [s,x,x,]) -m4trace:configure.in:29: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) -m4trace:configure.in:29: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) -m4trace:configure.in:29: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) -m4trace:configure.in:29: -1- AC_SUBST([datadir], ['${prefix}/share']) -m4trace:configure.in:29: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) -m4trace:configure.in:29: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) -m4trace:configure.in:29: -1- AC_SUBST([localstatedir], ['${prefix}/var']) -m4trace:configure.in:29: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) -m4trace:configure.in:29: -1- AC_SUBST([includedir], ['${prefix}/include']) -m4trace:configure.in:29: -1- AC_SUBST([oldincludedir], ['/usr/include']) -m4trace:configure.in:29: -1- AC_SUBST([infodir], ['${prefix}/info']) -m4trace:configure.in:29: -1- AC_SUBST([mandir], ['${prefix}/man']) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ -#undef PACKAGE_NAME]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ -#undef PACKAGE_VERSION]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING]) -m4trace:configure.in:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) -m4trace:configure.in:29: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT]) -m4trace:configure.in:29: -1- AC_SUBST([build_alias]) -m4trace:configure.in:29: -1- AC_SUBST([host_alias]) -m4trace:configure.in:29: -1- AC_SUBST([target_alias]) -m4trace:configure.in:29: -1- AC_SUBST([DEFS]) -m4trace:configure.in:29: -1- AC_SUBST([ECHO_C]) -m4trace:configure.in:29: -1- AC_SUBST([ECHO_N]) -m4trace:configure.in:29: -1- AC_SUBST([ECHO_T]) -m4trace:configure.in:29: -1- AC_SUBST([LIBS]) -m4trace:configure.in:36: -1- AC_CONFIG_AUX_DIR([./support]) -m4trace:configure.in:37: -1- AC_CONFIG_HEADERS([config.h]) -m4trace:configure.in:51: -1- AC_CANONICAL_HOST -m4trace:configure.in:51: -1- AC_SUBST([build], [$ac_cv_build]) -m4trace:configure.in:51: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`]) -m4trace:configure.in:51: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`]) -m4trace:configure.in:51: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`]) -m4trace:configure.in:51: -1- AC_SUBST([host], [$ac_cv_host]) -m4trace:configure.in:51: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`]) -m4trace:configure.in:51: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`]) -m4trace:configure.in:51: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`]) -m4trace:configure.in:103: -1- AC_SUBST([DEBUGGER_START_FILE]) -m4trace:configure.in:107: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:107: the top level]) -m4trace:configure.in:108: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:108: the top level]) -m4trace:configure.in:109: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:109: the top level]) -m4trace:configure.in:110: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:110: the top level]) -m4trace:configure.in:111: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:111: the top level]) -m4trace:configure.in:112: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:112: the top level]) -m4trace:configure.in:113: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:113: the top level]) -m4trace:configure.in:124: -1- AC_DEFINE_TRACE_LITERAL([USING_BASH_MALLOC]) -m4trace:configure.in:134: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_MALLOC_WRAPPERS]) -m4trace:configure.in:144: -1- AC_DEFINE_TRACE_LITERAL([AFS]) -m4trace:configure.in:196: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:196: the top level]) -m4trace:configure.in:212: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:212: the top level]) -m4trace:configure.in:213: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:213: the top level]) -m4trace:configure.in:214: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:214: the top level]) -m4trace:configure.in:215: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:215: the top level]) -m4trace:configure.in:216: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:216: the top level]) -m4trace:configure.in:217: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:217: the top level]) -m4trace:configure.in:218: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:218: the top level]) -m4trace:configure.in:219: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:219: the top level]) -m4trace:configure.in:220: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:220: the top level]) -m4trace:configure.in:221: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:221: the top level]) -m4trace:configure.in:222: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:222: the top level]) -m4trace:configure.in:223: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:223: the top level]) -m4trace:configure.in:224: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:224: the top level]) -m4trace:configure.in:225: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:225: the top level]) -m4trace:configure.in:226: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:226: the top level]) -m4trace:configure.in:227: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:227: the top level]) -m4trace:configure.in:228: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:228: the top level]) -m4trace:configure.in:229: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:229: the top level]) -m4trace:configure.in:230: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:230: the top level]) -m4trace:configure.in:231: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:231: the top level]) -m4trace:configure.in:232: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:232: the top level]) -m4trace:configure.in:233: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:233: the top level]) -m4trace:configure.in:234: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:234: the top level]) -m4trace:configure.in:235: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:235: the top level]) -m4trace:configure.in:236: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:236: the top level]) -m4trace:configure.in:237: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:237: the top level]) -m4trace:configure.in:238: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:238: the top level]) -m4trace:configure.in:239: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:239: the top level]) -m4trace:configure.in:240: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:240: the top level]) -m4trace:configure.in:241: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:241: the top level]) -m4trace:configure.in:242: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:242: the top level]) -m4trace:configure.in:243: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:243: the top level]) -m4trace:configure.in:244: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:244: the top level]) -m4trace:configure.in:247: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:247: the top level]) -m4trace:configure.in:248: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:248: the top level]) -m4trace:configure.in:249: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -configure.in:249: the top level]) -m4trace:configure.in:252: -1- AC_SUBST([CC_FOR_BUILD]) -m4trace:configure.in:253: -1- AC_SUBST([CFLAGS_FOR_BUILD]) -m4trace:configure.in:254: -1- AC_SUBST([LDFLAGS_FOR_BUILD]) -m4trace:configure.in:255: -1- AC_SUBST([CPPFLAGS_FOR_BUILD]) -m4trace:configure.in:264: -1- AC_DEFINE_TRACE_LITERAL([ALIAS]) -m4trace:configure.in:267: -1- AC_DEFINE_TRACE_LITERAL([PUSHD_AND_POPD]) -m4trace:configure.in:270: -1- AC_DEFINE_TRACE_LITERAL([RESTRICTED_SHELL]) -m4trace:configure.in:273: -1- AC_DEFINE_TRACE_LITERAL([PROCESS_SUBSTITUTION]) -m4trace:configure.in:276: -1- AC_DEFINE_TRACE_LITERAL([PROMPT_STRING_DECODE]) -m4trace:configure.in:279: -1- AC_DEFINE_TRACE_LITERAL([SELECT_COMMAND]) -m4trace:configure.in:282: -1- AC_DEFINE_TRACE_LITERAL([HELP_BUILTIN]) -m4trace:configure.in:285: -1- AC_DEFINE_TRACE_LITERAL([ARRAY_VARS]) -m4trace:configure.in:288: -1- AC_DEFINE_TRACE_LITERAL([DPAREN_ARITHMETIC]) -m4trace:configure.in:291: -1- AC_DEFINE_TRACE_LITERAL([BRACE_EXPANSION]) -m4trace:configure.in:294: -1- AC_DEFINE_TRACE_LITERAL([DISABLED_BUILTINS]) -m4trace:configure.in:297: -1- AC_DEFINE_TRACE_LITERAL([COMMAND_TIMING]) -m4trace:configure.in:300: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_ECHO_TO_XPG]) -m4trace:configure.in:303: -1- AC_DEFINE_TRACE_LITERAL([STRICT_POSIX]) -m4trace:configure.in:306: -1- AC_DEFINE_TRACE_LITERAL([EXTENDED_GLOB]) -m4trace:configure.in:309: -1- AC_DEFINE_TRACE_LITERAL([EXTGLOB_DEFAULT]) -m4trace:configure.in:311: -1- AC_DEFINE_TRACE_LITERAL([EXTGLOB_DEFAULT]) -m4trace:configure.in:314: -1- AC_DEFINE_TRACE_LITERAL([COND_COMMAND]) -m4trace:configure.in:317: -1- AC_DEFINE_TRACE_LITERAL([COND_REGEXP]) -m4trace:configure.in:320: -1- AC_DEFINE_TRACE_LITERAL([COPROCESS_SUPPORT]) -m4trace:configure.in:323: -1- AC_DEFINE_TRACE_LITERAL([ARITH_FOR_COMMAND]) -m4trace:configure.in:326: -1- AC_DEFINE_TRACE_LITERAL([NETWORK_REDIRECTIONS]) -m4trace:configure.in:329: -1- AC_DEFINE_TRACE_LITERAL([PROGRAMMABLE_COMPLETION]) -m4trace:configure.in:332: -1- AC_DEFINE_TRACE_LITERAL([NO_MULTIBYTE_SUPPORT]) -m4trace:configure.in:335: -1- AC_DEFINE_TRACE_LITERAL([DEBUGGER]) -m4trace:configure.in:338: -1- AC_DEFINE_TRACE_LITERAL([CASEMOD_ATTRS]) -m4trace:configure.in:341: -1- AC_DEFINE_TRACE_LITERAL([CASEMOD_EXPANSIONS]) -m4trace:configure.in:345: -1- AC_DEFINE_TRACE_LITERAL([MEMSCRAMBLE]) -m4trace:configure.in:371: -1- AC_SUBST([TESTSCRIPT]) -m4trace:configure.in:372: -1- AC_SUBST([PURIFY]) -m4trace:configure.in:373: -1- AC_SUBST([MALLOC_TARGET]) -m4trace:configure.in:374: -1- AC_SUBST([MALLOC_SRC]) -m4trace:configure.in:376: -1- AC_SUBST([MALLOC_LIB]) -m4trace:configure.in:377: -1- AC_SUBST([MALLOC_LIBRARY]) -m4trace:configure.in:378: -1- AC_SUBST([MALLOC_LDFLAGS]) -m4trace:configure.in:379: -1- AC_SUBST([MALLOC_DEP]) -m4trace:configure.in:381: -1- AC_SUBST([htmldir]) -m4trace:configure.in:383: -1- AC_SUBST([HELPDIR]) -m4trace:configure.in:384: -1- AC_SUBST([HELPDIRDEFINE]) -m4trace:configure.in:385: -1- AC_SUBST([HELPINSTALL]) -m4trace:configure.in:386: -1- AC_SUBST([HELPFILES_TARGET]) -m4trace:configure.in:387: -1- AC_SUBST([HELPSTRINGS]) -m4trace:configure.in:396: -1- AC_PROG_CC -m4trace:configure.in:396: -1- AC_SUBST([CC]) -m4trace:configure.in:396: -1- AC_SUBST([CFLAGS]) -m4trace:configure.in:396: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:396: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:396: -1- AC_SUBST([CC]) -m4trace:configure.in:396: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:396: -1- AC_SUBST([CC]) -m4trace:configure.in:396: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:396: -1- AC_SUBST([CC]) -m4trace:configure.in:396: -1- AC_SUBST([CC]) -m4trace:configure.in:396: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:396: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) -m4trace:configure.in:396: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) -m4trace:configure.in:399: -1- AC_CHECK_LIB([cposix], [strerror], [LIBS="$LIBS -lcposix"]) -m4trace:configure.in:400: -1- AC_HEADER_STDC -m4trace:configure.in:400: -1- AC_PROG_CPP -m4trace:configure.in:400: -1- AC_SUBST([CPP]) -m4trace:configure.in:400: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:400: -1- AC_SUBST([CPP]) -m4trace:configure.in:400: -1- AC_SUBST([EGREP]) -m4trace:configure.in:400: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) -m4trace:configure.in:400: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS]) -m4trace:configure.in:400: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default]) -m4trace:configure.in:400: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H]) -m4trace:configure.in:400: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H]) -m4trace:configure.in:400: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H]) -m4trace:configure.in:400: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H]) -m4trace:configure.in:400: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H]) -m4trace:configure.in:400: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H]) -m4trace:configure.in:400: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H]) -m4trace:configure.in:400: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H]) -m4trace:configure.in:400: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H]) -m4trace:configure.in:400: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_SOURCE]) -m4trace:configure.in:400: -1- AH_OUTPUT([_POSIX_SOURCE], [/* Define to 1 if you need to in order for `stat\' and other things to work. */ -#undef _POSIX_SOURCE]) -m4trace:configure.in:400: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_1_SOURCE]) -m4trace:configure.in:400: -1- AH_OUTPUT([_POSIX_1_SOURCE], [/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -#undef _POSIX_1_SOURCE]) -m4trace:configure.in:400: -1- AC_DEFINE_TRACE_LITERAL([_MINIX]) -m4trace:configure.in:400: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */ -#undef _MINIX]) -m4trace:configure.in:402: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS]) -m4trace:configure.in:402: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */ -#undef _FILE_OFFSET_BITS]) -m4trace:configure.in:402: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES]) -m4trace:configure.in:402: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */ -#undef _LARGE_FILES]) -m4trace:configure.in:439: -1- AC_SUBST([CROSS_COMPILE]) -m4trace:configure.in:441: -1- AC_SUBST([SIGNAMES_H]) -m4trace:configure.in:442: -1- AC_SUBST([SIGNAMES_O]) -m4trace:configure.in:476: -1- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete. -You should run autoupdate.], [autoconf/c.m4:440: ac_cv_prog_gcc is expanded from... -configure.in:476: the top level]) -m4trace:configure.in:503: -1- AC_SUBST([CFLAGS]) -m4trace:configure.in:504: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:505: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:506: -1- AC_SUBST([STATIC_LD]) -m4trace:configure.in:508: -1- AC_SUBST([CC_FOR_BUILD]) -m4trace:configure.in:509: -1- AC_SUBST([CFLAGS_FOR_BUILD]) -m4trace:configure.in:510: -1- AC_SUBST([CPPFLAGS_FOR_BUILD]) -m4trace:configure.in:511: -1- AC_SUBST([LDFLAGS_FOR_BUILD]) -m4trace:configure.in:512: -1- AC_SUBST([LIBS_FOR_BUILD]) -m4trace:configure.in:514: -1- AC_PROG_GCC_TRADITIONAL -m4trace:configure.in:526: -1- AC_CHECK_LIB([termcap], [tgetent], [bash_cv_termcap_lib=libtermcap], [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo, - [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses, - [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, - bash_cv_termcap_lib=gnutermcap)])])]) -m4trace:configure.in:526: -1- AC_CHECK_LIB([tinfo], [tgetent], [bash_cv_termcap_lib=libtinfo], [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses, - [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, - bash_cv_termcap_lib=gnutermcap)])]) -m4trace:configure.in:526: -1- AC_CHECK_LIB([curses], [tgetent], [bash_cv_termcap_lib=libcurses], [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, - bash_cv_termcap_lib=gnutermcap)]) -m4trace:configure.in:526: -1- AC_CHECK_LIB([ncurses], [tgetent], [bash_cv_termcap_lib=libncurses], [bash_cv_termcap_lib=gnutermcap]) -m4trace:configure.in:526: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1918: RL_LIB_READLINE_VERSION is expanded from... -configure.in:526: the top level]) -m4trace:configure.in:526: -1- AC_DEFINE_TRACE_LITERAL([RL_READLINE_VERSION]) -m4trace:configure.in:526: -1- AH_OUTPUT([RL_READLINE_VERSION], [/* encoded version of the installed readline library */ -#undef RL_READLINE_VERSION]) -m4trace:configure.in:526: -1- AC_DEFINE_TRACE_LITERAL([RL_VERSION_MAJOR]) -m4trace:configure.in:526: -1- AH_OUTPUT([RL_VERSION_MAJOR], [/* major version of installed readline library */ -#undef RL_VERSION_MAJOR]) -m4trace:configure.in:526: -1- AC_DEFINE_TRACE_LITERAL([RL_VERSION_MINOR]) -m4trace:configure.in:526: -1- AH_OUTPUT([RL_VERSION_MINOR], [/* minor version of installed readline library */ -#undef RL_VERSION_MINOR]) -m4trace:configure.in:526: -1- AC_SUBST([RL_VERSION]) -m4trace:configure.in:526: -1- AC_SUBST([RL_MAJOR]) -m4trace:configure.in:526: -1- AC_SUBST([RL_MINOR]) -m4trace:configure.in:539: -1- AC_DEFINE_TRACE_LITERAL([READLINE]) -m4trace:configure.in:574: -1- AC_DEFINE_TRACE_LITERAL([HISTORY]) -m4trace:configure.in:577: -1- AC_DEFINE_TRACE_LITERAL([BANG_HISTORY]) -m4trace:configure.in:607: -1- AC_SUBST([READLINE_LIB]) -m4trace:configure.in:608: -1- AC_SUBST([READLINE_DEP]) -m4trace:configure.in:609: -1- AC_SUBST([RL_LIBDIR]) -m4trace:configure.in:610: -1- AC_SUBST([RL_INCLUDEDIR]) -m4trace:configure.in:611: -1- AC_SUBST([RL_INCLUDE]) -m4trace:configure.in:612: -1- AC_SUBST([HISTORY_LIB]) -m4trace:configure.in:613: -1- AC_SUBST([HISTORY_DEP]) -m4trace:configure.in:614: -1- AC_SUBST([HIST_LIBDIR]) -m4trace:configure.in:615: -1- AC_SUBST([TILDE_LIB]) -m4trace:configure.in:620: -1- AC_PROG_INSTALL -m4trace:configure.in:620: -1- AC_SUBST([INSTALL_PROGRAM]) -m4trace:configure.in:620: -1- AC_SUBST([INSTALL_SCRIPT]) -m4trace:configure.in:620: -1- AC_SUBST([INSTALL_DATA]) -m4trace:configure.in:621: -1- AC_SUBST([AR]) -m4trace:configure.in:625: -1- AC_PROG_RANLIB -m4trace:configure.in:625: -1- AC_SUBST([RANLIB]) -m4trace:configure.in:625: -1- AC_SUBST([ac_ct_RANLIB]) -m4trace:configure.in:626: -1- AC_PROG_YACC -m4trace:configure.in:626: -1- AC_SUBST([YACC]) -m4trace:configure.in:627: -1- AC_PROG_MAKE_SET -m4trace:configure.in:627: -1- AC_SUBST([SET_MAKE]) -m4trace:configure.in:633: -1- AC_SUBST([MAKE_SHELL]) -m4trace:configure.in:655: -1- AC_SUBST([SIZE]) -m4trace:configure.in:657: -1- m4_include([m4/stat-time.m4]) -m4trace:configure.in:658: -1- m4_include([m4/timespec.m4]) -m4trace:configure.in:661: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) -m4trace:configure.in:664: -1- AC_C_CONST -m4trace:configure.in:664: -1- AC_DEFINE_TRACE_LITERAL([const]) -m4trace:configure.in:664: -1- AH_OUTPUT([const], [/* Define to empty if `const\' does not conform to ANSI C. */ -#undef const]) -m4trace:configure.in:665: -1- AC_C_INLINE -m4trace:configure.in:665: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler - calls it, or to nothing if \'inline\' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif]) -m4trace:configure.in:666: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN]) -m4trace:configure.in:666: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define to 1 if your processor stores words with the most significant byte - first (like Motorola and SPARC, unlike Intel and VAX). */ -#undef WORDS_BIGENDIAN]) -m4trace:configure.in:667: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRINGIZE]) -m4trace:configure.in:667: -1- AH_OUTPUT([HAVE_STRINGIZE], [/* Define to 1 if cpp supports the ANSI @%:@ stringizing operator. */ -#undef HAVE_STRINGIZE]) -m4trace:configure.in:668: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_DOUBLE]) -m4trace:configure.in:668: -1- AH_OUTPUT([HAVE_LONG_DOUBLE], [/* Define to 1 if long double works and has more range or precision than - double. */ -#undef HAVE_LONG_DOUBLE]) -m4trace:configure.in:669: -1- AC_DEFINE_TRACE_LITERAL([PROTOTYPES]) -m4trace:configure.in:669: -1- AH_OUTPUT([PROTOTYPES], [/* Define to 1 if the C compiler supports function prototypes. */ -#undef PROTOTYPES]) -m4trace:configure.in:669: -1- AC_DEFINE_TRACE_LITERAL([__PROTOTYPES]) -m4trace:configure.in:669: -1- AH_OUTPUT([__PROTOTYPES], [/* Define like PROTOTYPES; this can be used by system headers. */ -#undef __PROTOTYPES]) -m4trace:configure.in:670: -1- AH_OUTPUT([__CHAR_UNSIGNED__], [/* Define to 1 if type `char\' is unsigned and you are not using gcc. */ -#ifndef __CHAR_UNSIGNED__ -# undef __CHAR_UNSIGNED__ -#endif]) -m4trace:configure.in:670: -1- AC_DEFINE_TRACE_LITERAL([__CHAR_UNSIGNED__]) -m4trace:configure.in:671: -1- AC_C_VOLATILE -m4trace:configure.in:671: -1- AC_DEFINE_TRACE_LITERAL([volatile]) -m4trace:configure.in:671: -1- AH_OUTPUT([volatile], [/* Define to empty if the keyword `volatile\' does not work. Warning: valid - code using `volatile\' can become incorrect without. Disable with care. */ -#undef volatile]) -m4trace:configure.in:672: -1- AC_DEFINE_TRACE_LITERAL([restrict]) -m4trace:configure.in:672: -1- AH_OUTPUT([restrict], [/* Define to equivalent of C99 restrict keyword, or to nothing if this is not - supported. Do not define if restrict is supported directly. */ -#undef restrict]) -m4trace:configure.in:672: -1- AC_DEFINE_TRACE_LITERAL([restrict]) -m4trace:configure.in:675: -1- AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl]) -m4trace:configure.in:675: -1- AC_SUBST([MKINSTALLDIRS]) -m4trace:configure.in:675: -1- AC_SUBST([USE_NLS]) -m4trace:configure.in:675: -1- AC_SUBST([MSGFMT]) -m4trace:configure.in:675: -1- AC_SUBST([GMSGFMT], [$ac_cv_path_GMSGFMT]) -m4trace:configure.in:675: -1- AC_SUBST([XGETTEXT]) -m4trace:configure.in:675: -1- AC_SUBST([MSGMERGE]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete. -You should run autoupdate.], [autoconf/status.m4:318: AC_OUTPUT_COMMANDS is expanded from... -aclocal.m4:3881: AM_PO_SUBDIRS is expanded from... -configure.in:675: AM_PO_SUBDIRS is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -3- _m4_warn([obsolete], [The macro `_AC_OUTPUT_COMMANDS_CNT' is obsolete. -You should run autoupdate.], [autoconf/status.m4:321: _AC_OUTPUT_COMMANDS_CNT is expanded from... -autoconf/status.m4:318: AC_OUTPUT_COMMANDS is expanded from... -aclocal.m4:3881: AM_PO_SUBDIRS is expanded from... -configure.in:675: AM_PO_SUBDIRS is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_TYPE_OFF_T -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([off_t]) -m4trace:configure.in:675: -1- AH_OUTPUT([off_t], [/* Define to `long\' if does not define. */ -#undef off_t]) -m4trace:configure.in:675: -1- AC_TYPE_SIZE_T -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([size_t]) -m4trace:configure.in:675: -1- AH_OUTPUT([size_t], [/* Define to `unsigned\' if does not define. */ -#undef size_t]) -m4trace:configure.in:675: -1- AC_FUNC_ALLOCA -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#undef HAVE_ALLOCA_H]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ -#undef HAVE_ALLOCA]) -m4trace:configure.in:675: -1- AC_LIBSOURCE([alloca.c]) -m4trace:configure.in:675: -1- AC_SUBST([ALLOCA], [alloca.$ac_objext]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) -m4trace:configure.in:675: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ -#undef C_ALLOCA]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) -m4trace:configure.in:675: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c\' support on those systems. - */ -#undef CRAY_STACKSEG_END]) -m4trace:configure.in:675: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -@%:@undef STACK_DIRECTION]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) -m4trace:configure.in:675: -1- AC_FUNC_MMAP -m4trace:configure.in:675: -1- AC_CHECK_HEADERS([stdlib.h unistd.h]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H]) -m4trace:configure.in:675: -1- AC_CHECK_FUNCS([getpagesize]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -#undef HAVE_GETPAGESIZE]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ -#undef HAVE_MMAP]) -m4trace:configure.in:675: -1- AC_SUBST([GLIBC21]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2674: gt_INTDIV0 is expanded from... -configure.in:675: gt_INTDIV0 is required by... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([INTDIV0_RAISES_SIGFPE]) -m4trace:configure.in:675: -1- AH_OUTPUT([INTDIV0_RAISES_SIGFPE], [/* Define if integer division by zero raises signal SIGFPE. */ -#undef INTDIV0_RAISES_SIGFPE]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2729: jm_AC_HEADER_INTTYPES_H is expanded from... -configure.in:675: jm_AC_HEADER_INTTYPES_H is required by... -aclocal.m4:4032: jm_AC_TYPE_UINTMAX_T is expanded from... -configure.in:675: jm_AC_TYPE_UINTMAX_T is required by... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H_WITH_UINTMAX]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_INTTYPES_H_WITH_UINTMAX], [/* Define if exists, doesn\'t clash with , and - declares uintmax_t. */ -#undef HAVE_INTTYPES_H_WITH_UINTMAX]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:4000: jm_AC_HEADER_STDINT_H is expanded from... -configure.in:675: jm_AC_HEADER_STDINT_H is required by... -aclocal.m4:4032: jm_AC_TYPE_UINTMAX_T is expanded from... -configure.in:675: jm_AC_TYPE_UINTMAX_T is required by... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDINT_H_WITH_UINTMAX]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_STDINT_H_WITH_UINTMAX], [/* Define if exists, doesn\'t clash with , and declares - uintmax_t. */ -#undef HAVE_STDINT_H_WITH_UINTMAX]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:4055: jm_AC_TYPE_UNSIGNED_LONG_LONG is expanded from... -configure.in:675: jm_AC_TYPE_UNSIGNED_LONG_LONG is required by... -aclocal.m4:4032: jm_AC_TYPE_UINTMAX_T is expanded from... -configure.in:675: jm_AC_TYPE_UINTMAX_T is required by... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_UNSIGNED_LONG_LONG], [/* Define if you have the unsigned long long type. */ -#undef HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) -m4trace:configure.in:675: -1- AH_OUTPUT([uintmax_t], [/* Define to unsigned long or unsigned long long if and - don\'t define. */ -#undef uintmax_t]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINTMAX_T]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_UINTMAX_T], [/* Define if you have the \'uintmax_t\' type in or . */ -#undef HAVE_UINTMAX_T]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2701: gt_HEADER_INTTYPES_H is expanded from... -configure.in:675: gt_HEADER_INTTYPES_H is required by... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define if exists and doesn\'t clash with . */ -#undef HAVE_INTTYPES_H]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2761: gt_INTTYPES_PRI is expanded from... -configure.in:675: gt_INTTYPES_PRI is required by... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([PRI_MACROS_BROKEN]) -m4trace:configure.in:675: -1- AH_OUTPUT([PRI_MACROS_BROKEN], [/* Define if exists and defines unusable PRI* macros. */ -#undef PRI_MACROS_BROKEN]) -m4trace:configure.in:675: -1- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ -stdlib.h string.h unistd.h sys/param.h]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_ARGZ_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_LIMITS_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_LOCALE_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_NL_TYPES_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_NL_TYPES_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_MALLOC_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDDEF_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:675: -1- AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ -geteuid getgid getuid mempcpy munmap putenv setenv setlocale localeconv stpcpy \ -strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ -__fsetlocking]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_FEOF_UNLOCKED], [/* Define to 1 if you have the `feof_unlocked\' function. */ -#undef HAVE_FEOF_UNLOCKED]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_FGETS_UNLOCKED], [/* Define to 1 if you have the `fgets_unlocked\' function. */ -#undef HAVE_FGETS_UNLOCKED]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_GETC_UNLOCKED], [/* Define to 1 if you have the `getc_unlocked\' function. */ -#undef HAVE_GETC_UNLOCKED]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ -#undef HAVE_GETCWD]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_GETEGID], [/* Define to 1 if you have the `getegid\' function. */ -#undef HAVE_GETEGID]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_GETEUID], [/* Define to 1 if you have the `geteuid\' function. */ -#undef HAVE_GETEUID]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_GETGID], [/* Define to 1 if you have the `getgid\' function. */ -#undef HAVE_GETGID]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_GETUID], [/* Define to 1 if you have the `getuid\' function. */ -#undef HAVE_GETUID]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ -#undef HAVE_MEMPCPY]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ -#undef HAVE_MUNMAP]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ -#undef HAVE_PUTENV]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ -#undef HAVE_SETENV]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ -#undef HAVE_SETLOCALE]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_LOCALECONV], [/* Define to 1 if you have the `localeconv\' function. */ -#undef HAVE_LOCALECONV]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ -#undef HAVE_STPCPY]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ -#undef HAVE_STRCASECMP]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ -#undef HAVE_STRDUP]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ -#undef HAVE_STRTOUL]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_TSEARCH], [/* Define to 1 if you have the `tsearch\' function. */ -#undef HAVE_TSEARCH]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ -#undef HAVE___ARGZ_COUNT]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ -#undef HAVE___ARGZ_STRINGIFY]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ -#undef HAVE___ARGZ_NEXT]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE___FSETLOCKING], [/* Define to 1 if you have the `__fsetlocking\' function. */ -#undef HAVE___FSETLOCKING]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2574: AM_ICONV_LINK is expanded from... -aclocal.m4:2602: AM_ICONV is expanded from... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2574: AM_ICONV_LINK is expanded from... -aclocal.m4:2602: AM_ICONV is expanded from... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_ICONV], [/* Define if you have the iconv() function. */ -#undef HAVE_ICONV]) -m4trace:configure.in:675: -1- AC_SUBST([LIBICONV]) -m4trace:configure.in:675: -1- AC_SUBST([LTLIBICONV]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:2602: AM_ICONV is expanded from... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([ICONV_CONST]) -m4trace:configure.in:675: -1- AH_OUTPUT([ICONV_CONST], [/* Define as const if the declaration of iconv() needs const. */ -#undef ICONV_CONST]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2052: AM_LANGINFO_CODESET is expanded from... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_LANGINFO_CODESET], [/* Define if you have and nl_langinfo(CODESET). */ -#undef HAVE_LANGINFO_CODESET]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2819: AM_LC_MESSAGES is expanded from... -aclocal.m4:2463: AM_INTL_SUBDIR is expanded from... -configure.in:675: AM_INTL_SUBDIR is required by... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LC_MESSAGES]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_LC_MESSAGES], [/* Define if your file defines LC_MESSAGES. */ -#undef HAVE_LC_MESSAGES]) -m4trace:configure.in:675: -1- AC_SUBST([INTLBISON]) -m4trace:configure.in:675: -1- AC_SUBST([USE_NLS]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:2393: AM_GNU_GETTEXT is expanded from... -configure.in:675: the top level]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS]) -m4trace:configure.in:675: -1- AH_OUTPUT([ENABLE_NLS], [/* Define to 1 if translation of program messages to the user\'s native - language is requested. */ -#undef ENABLE_NLS]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETTEXT]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_GETTEXT], [/* Define if the GNU gettext() function is already present or preinstalled. */ -#undef HAVE_GETTEXT]) -m4trace:configure.in:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DCGETTEXT]) -m4trace:configure.in:675: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define if the GNU dcgettext() function is already present or preinstalled. - */ -#undef HAVE_DCGETTEXT]) -m4trace:configure.in:675: -1- AC_SUBST([BUILD_INCLUDED_LIBINTL]) -m4trace:configure.in:675: -1- AC_SUBST([USE_INCLUDED_LIBINTL]) -m4trace:configure.in:675: -1- AC_SUBST([CATOBJEXT]) -m4trace:configure.in:675: -1- AC_SUBST([DATADIRNAME]) -m4trace:configure.in:675: -1- AC_SUBST([INSTOBJEXT]) -m4trace:configure.in:675: -1- AC_SUBST([GENCAT]) -m4trace:configure.in:675: -1- AC_SUBST([INTLOBJS]) -m4trace:configure.in:675: -1- AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) -m4trace:configure.in:675: -1- AC_SUBST([INTLLIBS]) -m4trace:configure.in:675: -1- AC_SUBST([LIBINTL]) -m4trace:configure.in:675: -1- AC_SUBST([LTLIBINTL]) -m4trace:configure.in:675: -1- AC_SUBST([POSUB]) -m4trace:configure.in:678: -1- AC_HEADER_DIRENT -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -#undef HAVE_DIRENT_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_SYS_NDIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -#undef HAVE_SYS_NDIR_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_SYS_DIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -#undef HAVE_SYS_DIR_H]) -m4trace:configure.in:678: -1- AH_OUTPUT([HAVE_NDIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. */ -#undef HAVE_NDIR_H]) -m4trace:configure.in:679: -1- AC_HEADER_TIME -m4trace:configure.in:679: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME]) -m4trace:configure.in:679: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME]) -m4trace:configure.in:681: -1- AC_CHECK_HEADERS([inttypes.h]) -m4trace:configure.in:681: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H]) -m4trace:configure.in:686: -1- AC_CHECK_HEADERS([unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ - memory.h locale.h termcap.h termio.h termios.h dlfcn.h \ - stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \ - regex.h syslog.h ulimit.h]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_STDARG_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDARG_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_VARARGS_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_VARARGS_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_LIMITS_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_LOCALE_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_TERMCAP_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_TERMCAP_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_TERMIO_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_TERMIO_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_TERMIOS_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_TERMIOS_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_STDBOOL_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDBOOL_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDDEF_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_NETDB_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_PWD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_PWD_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_GRP_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_GRP_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_REGEX_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_REGEX_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_SYSLOG_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYSLOG_H]) -m4trace:configure.in:686: -1- AH_OUTPUT([HAVE_ULIMIT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_ULIMIT_H]) -m4trace:configure.in:689: -1- AC_CHECK_HEADERS([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]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_PTE_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_PTE_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_STREAM_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STREAM_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SELECT_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_FILE_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_FILE_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_RESOURCE_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_RESOURCE_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SOCKET_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TIME_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_TIMES_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TIMES_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H]) -m4trace:configure.in:689: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_WAIT_H]) -m4trace:configure.in:690: -1- AC_CHECK_HEADERS([netinet/in.h arpa/inet.h]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_NETINET_IN_H]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_ARPA_INET_H]) -m4trace:configure.in:701: -1- AC_FUNC_ALLOCA -m4trace:configure.in:701: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) -m4trace:configure.in:701: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#undef HAVE_ALLOCA_H]) -m4trace:configure.in:701: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) -m4trace:configure.in:701: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ -#undef HAVE_ALLOCA]) -m4trace:configure.in:701: -1- AC_LIBSOURCE([alloca.c]) -m4trace:configure.in:701: -1- AC_SUBST([ALLOCA], [alloca.$ac_objext]) -m4trace:configure.in:701: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) -m4trace:configure.in:701: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ -#undef C_ALLOCA]) -m4trace:configure.in:701: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) -m4trace:configure.in:701: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c\' support on those systems. - */ -#undef CRAY_STACKSEG_END]) -m4trace:configure.in:701: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -@%:@undef STACK_DIRECTION]) -m4trace:configure.in:701: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) -m4trace:configure.in:702: -1- AC_FUNC_GETPGRP -m4trace:configure.in:702: -1- AC_DEFINE_TRACE_LITERAL([GETPGRP_VOID]) -m4trace:configure.in:702: -1- AH_OUTPUT([GETPGRP_VOID], [/* Define to 1 if the `getpgrp\' function requires zero arguments. */ -#undef GETPGRP_VOID]) -m4trace:configure.in:703: -1- AC_FUNC_SETVBUF_REVERSED -m4trace:configure.in:703: -1- AC_DEFINE_TRACE_LITERAL([SETVBUF_REVERSED]) -m4trace:configure.in:703: -1- AH_OUTPUT([SETVBUF_REVERSED], [/* Define to 1 if the `setvbuf\' function takes the buffering type as its - second argument and the buffer pointer as the third, as on System V before - release 3. */ -#undef SETVBUF_REVERSED]) -m4trace:configure.in:704: -1- AC_FUNC_VPRINTF -m4trace:configure.in:704: -1- AC_CHECK_FUNCS([vprintf], [ -AC_CHECK_FUNC(_doprnt, - [AC_DEFINE(HAVE_DOPRNT, 1, - [Define to 1 if you don't have `vprintf' but do have - `_doprnt.'])])]) -m4trace:configure.in:704: -1- AH_OUTPUT([HAVE_VPRINTF], [/* Define to 1 if you have the `vprintf\' function. */ -#undef HAVE_VPRINTF]) -m4trace:configure.in:704: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DOPRNT]) -m4trace:configure.in:704: -1- AH_OUTPUT([HAVE_DOPRNT], [/* Define to 1 if you don\'t have `vprintf\' but do have `_doprnt.\' */ -#undef HAVE_DOPRNT]) -m4trace:configure.in:705: -1- AC_FUNC_STRCOLL -m4trace:configure.in:705: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCOLL]) -m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_STRCOLL], [/* Define to 1 if you have the `strcoll\' function and it is properly defined. - */ -#undef HAVE_STRCOLL]) -m4trace:configure.in:726: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VPRINTF]) -m4trace:configure.in:731: -1- AC_LIBSOURCE([vprint.c]) -m4trace:configure.in:731: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:735: -1- AC_TYPE_SIGNAL -m4trace:configure.in:735: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) -m4trace:configure.in:735: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ -#undef RETSIGTYPE]) -m4trace:configure.in:738: -2- AC_DEFINE_TRACE_LITERAL([HAVE_SETOSTYPE]) -m4trace:configure.in:739: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WAIT3]) -m4trace:configure.in:742: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MKFIFO]) -m4trace:configure.in:742: -2- AC_DEFINE_TRACE_LITERAL([MKFIFO_MISSING]) -m4trace:configure.in:748: -1- AC_CHECK_FUNCS([dup2 eaccess fcntl getdtablesize getgroups gethostname \ - getpagesize getpeername getrlimit getrusage gettimeofday \ - kill killpg lstat readlink sbrk select setdtablesize \ - setitimer tcgetpgrp uname ulimit waitpid]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_DUP2], [/* Define to 1 if you have the `dup2\' function. */ -#undef HAVE_DUP2]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_EACCESS], [/* Define to 1 if you have the `eaccess\' function. */ -#undef HAVE_EACCESS]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */ -#undef HAVE_FCNTL]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_GETDTABLESIZE], [/* Define to 1 if you have the `getdtablesize\' function. */ -#undef HAVE_GETDTABLESIZE]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_GETGROUPS], [/* Define to 1 if you have the `getgroups\' function. */ -#undef HAVE_GETGROUPS]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_GETHOSTNAME], [/* Define to 1 if you have the `gethostname\' function. */ -#undef HAVE_GETHOSTNAME]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -#undef HAVE_GETPAGESIZE]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_GETPEERNAME], [/* Define to 1 if you have the `getpeername\' function. */ -#undef HAVE_GETPEERNAME]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_GETRLIMIT], [/* Define to 1 if you have the `getrlimit\' function. */ -#undef HAVE_GETRLIMIT]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_GETRUSAGE], [/* Define to 1 if you have the `getrusage\' function. */ -#undef HAVE_GETRUSAGE]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ -#undef HAVE_GETTIMEOFDAY]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_KILL], [/* Define to 1 if you have the `kill\' function. */ -#undef HAVE_KILL]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_KILLPG], [/* Define to 1 if you have the `killpg\' function. */ -#undef HAVE_KILLPG]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */ -#undef HAVE_LSTAT]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_READLINK], [/* Define to 1 if you have the `readlink\' function. */ -#undef HAVE_READLINK]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_SBRK], [/* Define to 1 if you have the `sbrk\' function. */ -#undef HAVE_SBRK]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */ -#undef HAVE_SELECT]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_SETDTABLESIZE], [/* Define to 1 if you have the `setdtablesize\' function. */ -#undef HAVE_SETDTABLESIZE]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_SETITIMER], [/* Define to 1 if you have the `setitimer\' function. */ -#undef HAVE_SETITIMER]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_TCGETPGRP], [/* Define to 1 if you have the `tcgetpgrp\' function. */ -#undef HAVE_TCGETPGRP]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_UNAME], [/* Define to 1 if you have the `uname\' function. */ -#undef HAVE_UNAME]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_ULIMIT], [/* Define to 1 if you have the `ulimit\' function. */ -#undef HAVE_ULIMIT]) -m4trace:configure.in:748: -1- AH_OUTPUT([HAVE_WAITPID], [/* Define to 1 if you have the `waitpid\' function. */ -#undef HAVE_WAITPID]) -m4trace:configure.in:749: -1- AC_LIBSOURCE([rename.c]) -m4trace:configure.in:749: -1- AC_CHECK_FUNCS([rename], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:749: -1- AH_OUTPUT([HAVE_RENAME], [/* Define to 1 if you have the `rename\' function. */ -#undef HAVE_RENAME]) -m4trace:configure.in:749: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:756: -1- AC_CHECK_FUNCS([bcopy bzero confstr faccessat fnmatch \ - getaddrinfo gethostbyname getservbyname getservent inet_aton \ - imaxdiv memmove pathconf putenv raise regcomp regexec \ - setenv setlinebuf setlocale setvbuf siginterrupt strchr \ - sysconf syslog tcgetattr times ttyname tzset unsetenv]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_BCOPY], [/* Define to 1 if you have the `bcopy\' function. */ -#undef HAVE_BCOPY]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_BZERO], [/* Define to 1 if you have the `bzero\' function. */ -#undef HAVE_BZERO]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_CONFSTR], [/* Define to 1 if you have the `confstr\' function. */ -#undef HAVE_CONFSTR]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_FACCESSAT], [/* Define to 1 if you have the `faccessat\' function. */ -#undef HAVE_FACCESSAT]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_FNMATCH], [/* Define to 1 if you have the `fnmatch\' function. */ -#undef HAVE_FNMATCH]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_GETADDRINFO], [/* Define to 1 if you have the `getaddrinfo\' function. */ -#undef HAVE_GETADDRINFO]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_GETHOSTBYNAME], [/* Define to 1 if you have the `gethostbyname\' function. */ -#undef HAVE_GETHOSTBYNAME]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_GETSERVBYNAME], [/* Define to 1 if you have the `getservbyname\' function. */ -#undef HAVE_GETSERVBYNAME]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_GETSERVENT], [/* Define to 1 if you have the `getservent\' function. */ -#undef HAVE_GETSERVENT]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_INET_ATON], [/* Define to 1 if you have the `inet_aton\' function. */ -#undef HAVE_INET_ATON]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_IMAXDIV], [/* Define to 1 if you have the `imaxdiv\' function. */ -#undef HAVE_IMAXDIV]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the `memmove\' function. */ -#undef HAVE_MEMMOVE]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_PATHCONF], [/* Define to 1 if you have the `pathconf\' function. */ -#undef HAVE_PATHCONF]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ -#undef HAVE_PUTENV]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_RAISE], [/* Define to 1 if you have the `raise\' function. */ -#undef HAVE_RAISE]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_REGCOMP], [/* Define to 1 if you have the `regcomp\' function. */ -#undef HAVE_REGCOMP]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_REGEXEC], [/* Define to 1 if you have the `regexec\' function. */ -#undef HAVE_REGEXEC]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ -#undef HAVE_SETENV]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_SETLINEBUF], [/* Define to 1 if you have the `setlinebuf\' function. */ -#undef HAVE_SETLINEBUF]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ -#undef HAVE_SETLOCALE]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_SETVBUF], [/* Define to 1 if you have the `setvbuf\' function. */ -#undef HAVE_SETVBUF]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_SIGINTERRUPT], [/* Define to 1 if you have the `siginterrupt\' function. */ -#undef HAVE_SIGINTERRUPT]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */ -#undef HAVE_STRCHR]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_SYSCONF], [/* Define to 1 if you have the `sysconf\' function. */ -#undef HAVE_SYSCONF]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_SYSLOG], [/* Define to 1 if you have the `syslog\' function. */ -#undef HAVE_SYSLOG]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_TCGETATTR], [/* Define to 1 if you have the `tcgetattr\' function. */ -#undef HAVE_TCGETATTR]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_TIMES], [/* Define to 1 if you have the `times\' function. */ -#undef HAVE_TIMES]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_TTYNAME], [/* Define to 1 if you have the `ttyname\' function. */ -#undef HAVE_TTYNAME]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_TZSET], [/* Define to 1 if you have the `tzset\' function. */ -#undef HAVE_TZSET]) -m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_UNSETENV], [/* Define to 1 if you have the `unsetenv\' function. */ -#undef HAVE_UNSETENV]) -m4trace:configure.in:758: -1- AC_CHECK_FUNCS([vasprintf asprintf]) -m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_VASPRINTF], [/* Define to 1 if you have the `vasprintf\' function. */ -#undef HAVE_VASPRINTF]) -m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_ASPRINTF], [/* Define to 1 if you have the `asprintf\' function. */ -#undef HAVE_ASPRINTF]) -m4trace:configure.in:759: -1- AC_CHECK_FUNCS([isascii isblank isgraph isprint isspace isxdigit]) -m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_ISASCII], [/* Define to 1 if you have the `isascii\' function. */ -#undef HAVE_ISASCII]) -m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_ISBLANK], [/* Define to 1 if you have the `isblank\' function. */ -#undef HAVE_ISBLANK]) -m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_ISGRAPH], [/* Define to 1 if you have the `isgraph\' function. */ -#undef HAVE_ISGRAPH]) -m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_ISPRINT], [/* Define to 1 if you have the `isprint\' function. */ -#undef HAVE_ISPRINT]) -m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_ISSPACE], [/* Define to 1 if you have the `isspace\' function. */ -#undef HAVE_ISSPACE]) -m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_ISXDIGIT], [/* Define to 1 if you have the `isxdigit\' function. */ -#undef HAVE_ISXDIGIT]) -m4trace:configure.in:760: -1- AC_CHECK_FUNCS([getpwent getpwnam getpwuid]) -m4trace:configure.in:760: -1- AH_OUTPUT([HAVE_GETPWENT], [/* Define to 1 if you have the `getpwent\' function. */ -#undef HAVE_GETPWENT]) -m4trace:configure.in:760: -1- AH_OUTPUT([HAVE_GETPWNAM], [/* Define to 1 if you have the `getpwnam\' function. */ -#undef HAVE_GETPWNAM]) -m4trace:configure.in:760: -1- AH_OUTPUT([HAVE_GETPWUID], [/* Define to 1 if you have the `getpwuid\' function. */ -#undef HAVE_GETPWUID]) -m4trace:configure.in:761: -1- AC_LIBSOURCE([getcwd.c]) -m4trace:configure.in:761: -1- AC_LIBSOURCE([memset.c]) -m4trace:configure.in:761: -1- AC_CHECK_FUNCS([getcwd memset], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:761: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ -#undef HAVE_GETCWD]) -m4trace:configure.in:761: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */ -#undef HAVE_MEMSET]) -m4trace:configure.in:761: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:762: -1- AC_LIBSOURCE([strcasecmp.c]) -m4trace:configure.in:762: -1- AC_LIBSOURCE([strcasestr.c]) -m4trace:configure.in:762: -1- AC_LIBSOURCE([strerror.c]) -m4trace:configure.in:762: -1- AC_LIBSOURCE([strftime.c]) -m4trace:configure.in:762: -1- AC_LIBSOURCE([strnlen.c]) -m4trace:configure.in:762: -1- AC_LIBSOURCE([strpbrk.c]) -m4trace:configure.in:762: -1- AC_LIBSOURCE([strstr.c]) -m4trace:configure.in:762: -1- AC_CHECK_FUNCS([strcasecmp strcasestr strerror strftime strnlen strpbrk strstr], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:762: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ -#undef HAVE_STRCASECMP]) -m4trace:configure.in:762: -1- AH_OUTPUT([HAVE_STRCASESTR], [/* Define to 1 if you have the `strcasestr\' function. */ -#undef HAVE_STRCASESTR]) -m4trace:configure.in:762: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */ -#undef HAVE_STRERROR]) -m4trace:configure.in:762: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the `strftime\' function. */ -#undef HAVE_STRFTIME]) -m4trace:configure.in:762: -1- AH_OUTPUT([HAVE_STRNLEN], [/* Define to 1 if you have the `strnlen\' function. */ -#undef HAVE_STRNLEN]) -m4trace:configure.in:762: -1- AH_OUTPUT([HAVE_STRPBRK], [/* Define to 1 if you have the `strpbrk\' function. */ -#undef HAVE_STRPBRK]) -m4trace:configure.in:762: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */ -#undef HAVE_STRSTR]) -m4trace:configure.in:762: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strtod.c]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strtol.c]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strtoul.c]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strtoll.c]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strtoull.c]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strtoimax.c]) -m4trace:configure.in:763: -1- AC_LIBSOURCE([strtoumax.c]) -m4trace:configure.in:763: -1- AC_CHECK_FUNCS([strtod strtol strtoul strtoll strtoull strtoimax strtoumax], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRTOD], [/* Define to 1 if you have the `strtod\' function. */ -#undef HAVE_STRTOD]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRTOL], [/* Define to 1 if you have the `strtol\' function. */ -#undef HAVE_STRTOL]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ -#undef HAVE_STRTOUL]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRTOLL], [/* Define to 1 if you have the `strtoll\' function. */ -#undef HAVE_STRTOLL]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRTOULL], [/* Define to 1 if you have the `strtoull\' function. */ -#undef HAVE_STRTOULL]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRTOIMAX], [/* Define to 1 if you have the `strtoimax\' function. */ -#undef HAVE_STRTOIMAX]) -m4trace:configure.in:763: -1- AH_OUTPUT([HAVE_STRTOUMAX], [/* Define to 1 if you have the `strtoumax\' function. */ -#undef HAVE_STRTOUMAX]) -m4trace:configure.in:763: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:764: -1- AC_LIBSOURCE([dprintf.c]) -m4trace:configure.in:764: -1- AC_CHECK_FUNCS([dprintf], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:764: -1- AH_OUTPUT([HAVE_DPRINTF], [/* Define to 1 if you have the `dprintf\' function. */ -#undef HAVE_DPRINTF]) -m4trace:configure.in:764: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:765: -1- AC_LIBSOURCE([strchrnul.c]) -m4trace:configure.in:765: -1- AC_CHECK_FUNCS([strchrnul], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:765: -1- AH_OUTPUT([HAVE_STRCHRNUL], [/* Define to 1 if you have the `strchrnul\' function. */ -#undef HAVE_STRCHRNUL]) -m4trace:configure.in:765: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:767: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_AUDIT_USER_TTY]) -m4trace:configure.in:767: -1- AH_OUTPUT([HAVE_DECL_AUDIT_USER_TTY], [/* Define to 1 if you have the declaration of `AUDIT_USER_TTY\', and to 0 if - you don\'t. */ -#undef HAVE_DECL_AUDIT_USER_TTY]) -m4trace:configure.in:767: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_AUDIT_USER_TTY]) -m4trace:configure.in:769: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CONFSTR]) -m4trace:configure.in:769: -1- AH_OUTPUT([HAVE_DECL_CONFSTR], [/* Define to 1 if you have the declaration of `confstr\', and to 0 if you - don\'t. */ -#undef HAVE_DECL_CONFSTR]) -m4trace:configure.in:769: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CONFSTR]) -m4trace:configure.in:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PRINTF]) -m4trace:configure.in:770: -1- AH_OUTPUT([HAVE_DECL_PRINTF], [/* Define to 1 if you have the declaration of `printf\', and to 0 if you don\'t. - */ -#undef HAVE_DECL_PRINTF]) -m4trace:configure.in:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PRINTF]) -m4trace:configure.in:771: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SBRK]) -m4trace:configure.in:771: -1- AH_OUTPUT([HAVE_DECL_SBRK], [/* Define to 1 if you have the declaration of `sbrk\', and to 0 if you don\'t. - */ -#undef HAVE_DECL_SBRK]) -m4trace:configure.in:771: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SBRK]) -m4trace:configure.in:772: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SETREGID]) -m4trace:configure.in:772: -1- AH_OUTPUT([HAVE_DECL_SETREGID], [/* Define to 1 if you have the declaration of `setregid\', and to 0 if you - don\'t. */ -#undef HAVE_DECL_SETREGID]) -m4trace:configure.in:772: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SETREGID]) -m4trace:configure.in:773: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY]) -m4trace:configure.in:773: -1- AH_OUTPUT([HAVE_DECL_STRCPY], [/* Define to 1 if you have the declaration of `strcpy\', and to 0 if you don\'t. - */ -#undef HAVE_DECL_STRCPY]) -m4trace:configure.in:773: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY]) -m4trace:configure.in:774: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL]) -m4trace:configure.in:774: -1- AH_OUTPUT([HAVE_DECL_STRSIGNAL], [/* Define to 1 if you have the declaration of `strsignal\', and to 0 if you - don\'t. */ -#undef HAVE_DECL_STRSIGNAL]) -m4trace:configure.in:774: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL]) -m4trace:configure.in:791: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD]) -m4trace:configure.in:791: -1- AH_OUTPUT([HAVE_DECL_STRTOLD], [/* Define to 1 if you have the declaration of `strtold\', and to 0 if you - don\'t. */ -#undef HAVE_DECL_STRTOLD]) -m4trace:configure.in:791: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:2352: AC_CHECK_DECL is expanded from... -autoconf/general.m4:2372: AC_CHECK_DECLS is expanded from... -configure.in:791: the top level]) -m4trace:configure.in:791: -1- AC_DEFINE_TRACE_LITERAL([STRTOLD_BROKEN]) -m4trace:configure.in:791: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD]) -m4trace:configure.in:793: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:125: BASH_CHECK_DECL is expanded from... -configure.in:793: the top level]) -m4trace:configure.in:794: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:125: BASH_CHECK_DECL is expanded from... -configure.in:794: the top level]) -m4trace:configure.in:795: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:125: BASH_CHECK_DECL is expanded from... -configure.in:795: the top level]) -m4trace:configure.in:796: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:125: BASH_CHECK_DECL is expanded from... -configure.in:796: the top level]) -m4trace:configure.in:797: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:125: BASH_CHECK_DECL is expanded from... -configure.in:797: the top level]) -m4trace:configure.in:798: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:125: BASH_CHECK_DECL is expanded from... -configure.in:798: the top level]) -m4trace:configure.in:800: -1- AC_FUNC_MKTIME -m4trace:configure.in:800: -1- AC_CHECK_HEADERS([stdlib.h sys/time.h unistd.h]) -m4trace:configure.in:800: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H]) -m4trace:configure.in:800: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TIME_H]) -m4trace:configure.in:800: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H]) -m4trace:configure.in:800: -1- AC_CHECK_FUNCS([alarm]) -m4trace:configure.in:800: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */ -#undef HAVE_ALARM]) -m4trace:configure.in:800: -1- AC_LIBSOURCE([mktime.c]) -m4trace:configure.in:800: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:807: -1- AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h]) -m4trace:configure.in:807: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_ARGZ_H]) -m4trace:configure.in:807: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_ERRNO_H]) -m4trace:configure.in:807: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_FCNTL_H]) -m4trace:configure.in:807: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_MALLOC_H]) -m4trace:configure.in:807: -1- AH_OUTPUT([HAVE_STDIO_EXT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDIO_EXT_H]) -m4trace:configure.in:810: -1- AC_FUNC_MMAP -m4trace:configure.in:810: -1- AC_CHECK_HEADERS([stdlib.h unistd.h]) -m4trace:configure.in:810: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H]) -m4trace:configure.in:810: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H]) -m4trace:configure.in:810: -1- AC_CHECK_FUNCS([getpagesize]) -m4trace:configure.in:810: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -#undef HAVE_GETPAGESIZE]) -m4trace:configure.in:810: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) -m4trace:configure.in:810: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ -#undef HAVE_MMAP]) -m4trace:configure.in:812: -1- AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \ - munmap stpcpy strcspn strdup]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ -#undef HAVE___ARGZ_COUNT]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ -#undef HAVE___ARGZ_NEXT]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ -#undef HAVE___ARGZ_STRINGIFY]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define to 1 if you have the `dcgettext\' function. */ -#undef HAVE_DCGETTEXT]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ -#undef HAVE_MEMPCPY]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ -#undef HAVE_MUNMAP]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ -#undef HAVE_STPCPY]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_STRCSPN], [/* Define to 1 if you have the `strcspn\' function. */ -#undef HAVE_STRCSPN]) -m4trace:configure.in:812: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ -#undef HAVE_STRDUP]) -m4trace:configure.in:820: -1- AC_SUBST([INTL_DEP]) -m4trace:configure.in:821: -1- AC_SUBST([INTL_INC]) -m4trace:configure.in:822: -1- AC_SUBST([LIBINTL_H]) -m4trace:configure.in:828: -1- AC_CHECK_HEADERS([wctype.h]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_WCTYPE_H]) -m4trace:configure.in:828: -1- AC_CHECK_HEADERS([wchar.h]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_WCHAR_H]) -m4trace:configure.in:828: -1- AC_CHECK_HEADERS([langinfo.h]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_LANGINFO_H]) -m4trace:configure.in:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRLEN]) -m4trace:configure.in:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCMP]) -m4trace:configure.in:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCMP]) -m4trace:configure.in:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSNRTOWCS]) -m4trace:configure.in:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSRTOWCS]) -m4trace:configure.in:828: -1- AC_LIBSOURCE([mbschr.c]) -m4trace:configure.in:828: -1- AC_CHECK_FUNCS([mbschr], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_MBSCHR], [/* Define to 1 if you have the `mbschr\' function. */ -#undef HAVE_MBSCHR]) -m4trace:configure.in:828: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCRTOMB]) -m4trace:configure.in:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSCOLL]) -m4trace:configure.in:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSDUP]) -m4trace:configure.in:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCWIDTH]) -m4trace:configure.in:828: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE]) -m4trace:configure.in:828: -1- AC_LIBSOURCE([wcswidth.c]) -m4trace:configure.in:828: -1- AC_CHECK_FUNCS([wcswidth], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_WCSWIDTH], [/* Define to 1 if you have the `wcswidth\' function. */ -#undef HAVE_WCSWIDTH]) -m4trace:configure.in:828: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:828: -1- AC_FUNC_MBRTOWC -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBRTOWC]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_MBRTOWC], [/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ -#undef HAVE_MBRTOWC]) -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSTATE_T]) -m4trace:configure.in:828: -1- AC_CHECK_FUNCS([iswlower iswupper towlower towupper iswctype]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_ISWLOWER], [/* Define to 1 if you have the `iswlower\' function. */ -#undef HAVE_ISWLOWER]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_ISWUPPER], [/* Define to 1 if you have the `iswupper\' function. */ -#undef HAVE_ISWUPPER]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_TOWLOWER], [/* Define to 1 if you have the `towlower\' function. */ -#undef HAVE_TOWLOWER]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_TOWUPPER], [/* Define to 1 if you have the `towupper\' function. */ -#undef HAVE_TOWUPPER]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_ISWCTYPE], [/* Define to 1 if you have the `iswctype\' function. */ -#undef HAVE_ISWCTYPE]) -m4trace:configure.in:828: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:1799: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:828: the top level]) -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.in:828: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:1799: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:828: the top level]) -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCHAR_T]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_WCHAR_T], [/* systems should define this type here */ -#undef HAVE_WCHAR_T]) -m4trace:configure.in:828: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:1799: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:828: the top level]) -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE_T]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_WCTYPE_T], [/* systems should define this type here */ -#undef HAVE_WCTYPE_T]) -m4trace:configure.in:828: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:1799: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:828: the top level]) -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WINT_T]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_WINT_T], [/* systems should define this type here */ -#undef HAVE_WINT_T]) -m4trace:configure.in:828: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:1799: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:828: the top level]) -m4trace:configure.in:828: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:1799: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:828: the top level]) -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([WCWIDTH_BROKEN]) -m4trace:configure.in:828: -1- AH_OUTPUT([WCWIDTH_BROKEN], [/* wcwidth is usually not broken */ -#undef WCWIDTH_BROKEN]) -m4trace:configure.in:828: -1- AC_CHECK_FUNCS([locale_charset]) -m4trace:configure.in:828: -1- AH_OUTPUT([HAVE_LOCALE_CHARSET], [/* Define to 1 if you have the `locale_charset\' function. */ -#undef HAVE_LOCALE_CHARSET]) -m4trace:configure.in:832: -1- AC_CHECK_LIB([dl], [dlopen]) -m4trace:configure.in:832: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define to 1 if you have the `dl\' library (-ldl). */ -#undef HAVE_LIBDL]) -m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) -m4trace:configure.in:833: -1- AC_CHECK_FUNCS([dlopen dlclose dlsym]) -m4trace:configure.in:833: -1- AH_OUTPUT([HAVE_DLOPEN], [/* Define to 1 if you have the `dlopen\' function. */ -#undef HAVE_DLOPEN]) -m4trace:configure.in:833: -1- AH_OUTPUT([HAVE_DLCLOSE], [/* Define to 1 if you have the `dlclose\' function. */ -#undef HAVE_DLCLOSE]) -m4trace:configure.in:833: -1- AH_OUTPUT([HAVE_DLSYM], [/* Define to 1 if you have the `dlsym\' function. */ -#undef HAVE_DLSYM]) -m4trace:configure.in:837: -1- AC_DECL_SYS_SIGLIST -m4trace:configure.in:837: -1- _m4_warn([obsolete], [The macro `AC_DECL_SYS_SIGLIST' is obsolete. -You should run autoupdate.], [autoconf/specific.m4:70: AC_DECL_SYS_SIGLIST is expanded from... -configure.in:837: the top level]) -m4trace:configure.in:837: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.in:837: -1- AH_OUTPUT([HAVE_DECL_SYS_SIGLIST], [/* Define to 1 if you have the declaration of `sys_siglist\', and to 0 if you - don\'t. */ -#undef HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.in:837: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.in:841: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:577: BASH_FUNC_INET_ATON is expanded from... -configure.in:841: the top level]) -m4trace:configure.in:841: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INET_ATON]) -m4trace:configure.in:841: -1- AC_LIBSOURCE([inet_aton.c]) -m4trace:configure.in:841: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:847: -1- AC_CHECK_LIB([sun], [getpwent]) -m4trace:configure.in:847: -1- AH_OUTPUT([HAVE_LIBSUN], [/* Define to 1 if you have the `sun\' library (-lsun). */ -#undef HAVE_LIBSUN]) -m4trace:configure.in:847: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSUN]) -m4trace:configure.in:852: -1- AC_CHECK_LIB([socket], [getpeername], [bash_cv_have_socklib=yes], [bash_cv_have_socklib=no], [-lnsl]) -m4trace:configure.in:852: -1- AC_CHECK_LIB([nsl], [t_open], [bash_cv_have_libnsl=yes], [bash_cv_have_libnsl=no]) -m4trace:configure.in:852: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSOCKET]) -m4trace:configure.in:852: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPEERNAME]) -m4trace:configure.in:856: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:752: BASH_FUNC_GETHOSTBYNAME is expanded from... -configure.in:856: the top level]) -m4trace:configure.in:856: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME]) -m4trace:configure.in:860: -1- AC_TYPE_UID_T -m4trace:configure.in:860: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.in:860: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if doesn\'t define. */ -#undef uid_t]) -m4trace:configure.in:860: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.in:860: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if doesn\'t define. */ -#undef gid_t]) -m4trace:configure.in:860: -1- AC_DEFINE_TRACE_LITERAL([GETGROUPS_T]) -m4trace:configure.in:860: -1- AH_OUTPUT([GETGROUPS_T], [/* Define to the type of elements in the array set by `getgroups\'. Usually - this is either `int\' or `gid_t\'. */ -#undef GETGROUPS_T]) -m4trace:configure.in:861: -1- AC_TYPE_OFF_T -m4trace:configure.in:861: -1- AC_DEFINE_TRACE_LITERAL([off_t]) -m4trace:configure.in:861: -1- AH_OUTPUT([off_t], [/* Define to `long\' if does not define. */ -#undef off_t]) -m4trace:configure.in:862: -1- AC_TYPE_MODE_T -m4trace:configure.in:862: -1- AC_DEFINE_TRACE_LITERAL([mode_t]) -m4trace:configure.in:862: -1- AH_OUTPUT([mode_t], [/* Define to `int\' if does not define. */ -#undef mode_t]) -m4trace:configure.in:863: -1- AC_TYPE_UID_T -m4trace:configure.in:863: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.in:863: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if doesn\'t define. */ -#undef uid_t]) -m4trace:configure.in:863: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.in:863: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if doesn\'t define. */ -#undef gid_t]) -m4trace:configure.in:864: -1- AC_TYPE_PID_T -m4trace:configure.in:864: -1- AC_DEFINE_TRACE_LITERAL([pid_t]) -m4trace:configure.in:864: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if does not define. */ -#undef pid_t]) -m4trace:configure.in:865: -1- AC_TYPE_SIZE_T -m4trace:configure.in:865: -1- AC_DEFINE_TRACE_LITERAL([size_t]) -m4trace:configure.in:865: -1- AH_OUTPUT([size_t], [/* Define to `unsigned\' if does not define. */ -#undef size_t]) -m4trace:configure.in:866: -1- AC_DEFINE_TRACE_LITERAL([ssize_t]) -m4trace:configure.in:866: -1- AH_OUTPUT([ssize_t], [/* Define to `int\' if does not define. */ -#undef ssize_t]) -m4trace:configure.in:867: -1- AC_DEFINE_TRACE_LITERAL([time_t]) -m4trace:configure.in:867: -1- AH_OUTPUT([time_t], [/* Define to `long\' if does not define. */ -#undef time_t]) -m4trace:configure.in:869: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:484: BASH_TYPE_LONG_LONG is expanded from... -configure.in:869: the top level]) -m4trace:configure.in:869: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG]) -m4trace:configure.in:870: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:499: BASH_TYPE_UNSIGNED_LONG_LONG is expanded from... -configure.in:870: the top level]) -m4trace:configure.in:870: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:872: -1- AC_TYPE_SIGNAL -m4trace:configure.in:872: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) -m4trace:configure.in:872: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ -#undef RETSIGTYPE]) -m4trace:configure.in:873: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:547: BASH_TYPE_SIG_ATOMIC_T is expanded from... -configure.in:873: the top level]) -m4trace:configure.in:873: -1- AC_DEFINE_TRACE_LITERAL([sig_atomic_t]) -m4trace:configure.in:873: -1- AH_OUTPUT([sig_atomic_t], [/* Define to `int\' if does not define. */ -#undef sig_atomic_t]) -m4trace:configure.in:875: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:875: the top level]) -m4trace:configure.in:875: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR]) -m4trace:configure.in:875: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of a `char\', as computed by sizeof. */ -#undef SIZEOF_CHAR]) -m4trace:configure.in:876: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:876: the top level]) -m4trace:configure.in:876: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT]) -m4trace:configure.in:876: -1- AH_OUTPUT([SIZEOF_SHORT], [/* The size of a `short\', as computed by sizeof. */ -#undef SIZEOF_SHORT]) -m4trace:configure.in:877: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:877: the top level]) -m4trace:configure.in:877: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT]) -m4trace:configure.in:877: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of a `int\', as computed by sizeof. */ -#undef SIZEOF_INT]) -m4trace:configure.in:878: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:878: the top level]) -m4trace:configure.in:878: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG]) -m4trace:configure.in:878: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of a `long\', as computed by sizeof. */ -#undef SIZEOF_LONG]) -m4trace:configure.in:879: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:879: the top level]) -m4trace:configure.in:879: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR_P]) -m4trace:configure.in:879: -1- AH_OUTPUT([SIZEOF_CHAR_P], [/* The size of a `char *\', as computed by sizeof. */ -#undef SIZEOF_CHAR_P]) -m4trace:configure.in:880: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:880: the top level]) -m4trace:configure.in:880: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_DOUBLE]) -m4trace:configure.in:880: -1- AH_OUTPUT([SIZEOF_DOUBLE], [/* The size of a `double\', as computed by sizeof. */ -#undef SIZEOF_DOUBLE]) -m4trace:configure.in:881: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:881: the top level]) -m4trace:configure.in:881: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG]) -m4trace:configure.in:881: -1- AH_OUTPUT([SIZEOF_LONG_LONG], [/* The size of a `long long\', as computed by sizeof. */ -#undef SIZEOF_LONG_LONG]) -m4trace:configure.in:883: -1- AC_DEFINE_TRACE_LITERAL([u_int]) -m4trace:configure.in:883: -1- AH_OUTPUT([u_int], [/* Define to `unsigned int\' if does not define. */ -#undef u_int]) -m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([u_long]) -m4trace:configure.in:884: -1- AH_OUTPUT([u_long], [/* Define to `unsigned long\' if does not define. */ -#undef u_long]) -m4trace:configure.in:886: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:886: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if does not define. */ -#undef bits16_t]) -m4trace:configure.in:886: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:886: -1- AH_OUTPUT([bits16_t], [/* Define to `char\' if does not define. */ -#undef bits16_t]) -m4trace:configure.in:886: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:886: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if does not define. */ -#undef bits16_t]) -m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:887: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if does not define. */ -#undef u_bits16_t]) -m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:887: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned char\' if does not define. */ -#undef u_bits16_t]) -m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:887: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if does not define. */ -#undef u_bits16_t]) -m4trace:configure.in:888: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:888: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if does not define. */ -#undef bits32_t]) -m4trace:configure.in:888: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:888: -1- AH_OUTPUT([bits32_t], [/* Define to `long\' if does not define. */ -#undef bits32_t]) -m4trace:configure.in:888: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:888: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if does not define. */ -#undef bits32_t]) -m4trace:configure.in:889: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:889: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if does not define. */ -#undef u_bits32_t]) -m4trace:configure.in:889: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:889: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned long\' if does not define. */ -#undef u_bits32_t]) -m4trace:configure.in:889: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:889: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if does not define. */ -#undef u_bits32_t]) -m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:890: -1- AH_OUTPUT([bits64_t], [/* Define to `char *\' if does not define. */ -#undef bits64_t]) -m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:890: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if does not define. */ -#undef bits64_t]) -m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:890: -1- AH_OUTPUT([bits64_t], [/* Define to `long long\' if does not define. */ -#undef bits64_t]) -m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:890: -1- AH_OUTPUT([bits64_t], [/* Define to `long\' if does not define. */ -#undef bits64_t]) -m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:890: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if does not define. */ -#undef bits64_t]) -m4trace:configure.in:892: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:892: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if does not define. */ -#undef ptrdiff_t]) -m4trace:configure.in:892: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:892: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long\' if does not define. */ -#undef ptrdiff_t]) -m4trace:configure.in:892: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:892: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long long\' if does not define. */ -#undef ptrdiff_t]) -m4trace:configure.in:892: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:892: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if does not define. */ -#undef ptrdiff_t]) -m4trace:configure.in:895: -1- AC_HEADER_STAT -m4trace:configure.in:895: -1- AC_DEFINE_TRACE_LITERAL([STAT_MACROS_BROKEN]) -m4trace:configure.in:895: -1- AH_OUTPUT([STAT_MACROS_BROKEN], [/* Define to 1 if the `S_IS*\' macros in do not work properly. */ -#undef STAT_MACROS_BROKEN]) -m4trace:configure.in:900: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HASH_BANG_EXEC]) -m4trace:configure.in:905: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:561: BASH_FUNC_LSTAT is expanded from... -configure.in:905: the top level]) -m4trace:configure.in:905: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LSTAT]) -m4trace:configure.in:909: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1962: BASH_FUNC_CTYPE_NONASCII is expanded from... -configure.in:909: the top level]) -m4trace:configure.in:909: -1- AC_DEFINE_TRACE_LITERAL([CTYPE_NON_ASCII]) -m4trace:configure.in:910: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:297: BASH_FUNC_DUP2_CLOEXEC_CHECK is expanded from... -configure.in:910: the top level]) -m4trace:configure.in:910: -1- AC_DEFINE_TRACE_LITERAL([DUP2_BROKEN]) -m4trace:configure.in:911: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1295: BASH_SYS_PGRP_SYNC is expanded from... -configure.in:911: the top level]) -m4trace:configure.in:911: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) -m4trace:configure.in:912: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1232: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:912: the top level]) -m4trace:configure.in:912: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:2215: AC_LINK_IFELSE is expanded from... -autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1232: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:912: the top level]) -m4trace:configure.in:912: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:2215: AC_LINK_IFELSE is expanded from... -autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:2215: AC_LINK_IFELSE is expanded from... -autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1232: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:912: the top level]) -m4trace:configure.in:912: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGNALS]) -m4trace:configure.in:912: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BSD_SIGNALS]) -m4trace:configure.in:912: -1- AC_DEFINE_TRACE_LITERAL([HAVE_USG_SIGHOLD]) -m4trace:configure.in:915: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:265: BASH_SYS_ERRLIST is expanded from... -configure.in:915: the top level]) -m4trace:configure.in:915: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST]) -m4trace:configure.in:916: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:236: BASH_SYS_SIGLIST is expanded from... -configure.in:916: the top level]) -m4trace:configure.in:916: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SIGLIST]) -m4trace:configure.in:917: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:182: BASH_DECL_UNDER_SYS_SIGLIST is expanded from... -configure.in:917: BASH_DECL_UNDER_SYS_SIGLIST is required by... -aclocal.m4:209: BASH_UNDER_SYS_SIGLIST is expanded from... -configure.in:917: the top level]) -m4trace:configure.in:917: -1- AC_DEFINE_TRACE_LITERAL([UNDER_SYS_SIGLIST_DECLARED]) -m4trace:configure.in:917: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:209: BASH_UNDER_SYS_SIGLIST is expanded from... -configure.in:917: the top level]) -m4trace:configure.in:917: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNDER_SYS_SIGLIST]) -m4trace:configure.in:920: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:383: BASH_TYPE_SIGHANDLER is expanded from... -configure.in:920: the top level]) -m4trace:configure.in:920: -1- AC_DEFINE_TRACE_LITERAL([VOID_SIGHANDLER]) -m4trace:configure.in:921: -1- AC_DEFINE_TRACE_LITERAL([clock_t]) -m4trace:configure.in:922: -1- AC_DEFINE_TRACE_LITERAL([sigset_t]) -m4trace:configure.in:923: -1- AC_DEFINE_TRACE_LITERAL([HAVE_QUAD_T]) -m4trace:configure.in:923: -1- AC_DEFINE_TRACE_LITERAL([quad_t]) -m4trace:configure.in:924: -1- AC_DEFINE_TRACE_LITERAL([intmax_t]) -m4trace:configure.in:925: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) -m4trace:configure.in:927: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SOCKLEN_T]) -m4trace:configure.in:927: -1- AC_DEFINE_TRACE_LITERAL([socklen_t]) -m4trace:configure.in:929: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:535: BASH_TYPE_RLIMIT is expanded from... -configure.in:929: the top level]) -m4trace:configure.in:929: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:2173: AC_COMPILE_IFELSE is expanded from... -autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:535: BASH_TYPE_RLIMIT is expanded from... -configure.in:929: the top level]) -m4trace:configure.in:929: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) -m4trace:configure.in:929: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) -m4trace:configure.in:931: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:931: the top level]) -m4trace:configure.in:931: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INTMAX_T]) -m4trace:configure.in:931: -1- AH_OUTPUT([SIZEOF_INTMAX_T], [/* The size of a `intmax_t\', as computed by sizeof. */ -#undef SIZEOF_INTMAX_T]) -m4trace:configure.in:934: -2- AC_DEFINE_TRACE_LITERAL([TERMIOS_LDISC]) -m4trace:configure.in:935: -2- AC_DEFINE_TRACE_LITERAL([TERMIO_LDISC]) -m4trace:configure.in:936: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1073: BASH_STRUCT_DIRENT_D_INO is expanded from... -configure.in:936: the top level]) -m4trace:configure.in:936: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_INO]) -m4trace:configure.in:937: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1106: BASH_STRUCT_DIRENT_D_FILENO is expanded from... -configure.in:937: the top level]) -m4trace:configure.in:937: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_FILENO]) -m4trace:configure.in:938: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1139: BASH_STRUCT_DIRENT_D_NAMLEN is expanded from... -configure.in:938: the top level]) -m4trace:configure.in:938: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_NAMLEN]) -m4trace:configure.in:939: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1192: BASH_STRUCT_WINSIZE is expanded from... -configure.in:939: the top level]) -m4trace:configure.in:939: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:2173: AC_COMPILE_IFELSE is expanded from... -autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1192: BASH_STRUCT_WINSIZE is expanded from... -configure.in:939: the top level]) -m4trace:configure.in:939: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_SYS_IOCTL]) -m4trace:configure.in:939: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_TERMIOS]) -m4trace:configure.in:940: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIMEVAL]) -m4trace:configure.in:941: -1- AC_CHECK_MEMBERS([struct stat.st_blocks]) -m4trace:configure.in:941: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLOCKS]) -m4trace:configure.in:941: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLOCKS], [/* Define to 1 if `st_blocks\' is member of `struct stat\'. */ -#undef HAVE_STRUCT_STAT_ST_BLOCKS]) -m4trace:configure.in:942: -1- AC_STRUCT_TM -m4trace:configure.in:942: -1- AC_DEFINE_TRACE_LITERAL([TM_IN_SYS_TIME]) -m4trace:configure.in:942: -1- AH_OUTPUT([TM_IN_SYS_TIME], [/* Define to 1 if your declares `struct tm\'. */ -#undef TM_IN_SYS_TIME]) -m4trace:configure.in:943: -1- AC_STRUCT_TIMEZONE -m4trace:configure.in:943: -1- AC_CHECK_MEMBERS([struct tm.tm_zone], [], [], [#include -#include <$ac_cv_struct_tm> -]) -m4trace:configure.in:943: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TM_TM_ZONE]) -m4trace:configure.in:943: -1- AH_OUTPUT([HAVE_STRUCT_TM_TM_ZONE], [/* Define to 1 if `tm_zone\' is member of `struct tm\'. */ -#undef HAVE_STRUCT_TM_TM_ZONE]) -m4trace:configure.in:943: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TM_ZONE]) -m4trace:configure.in:943: -1- AH_OUTPUT([HAVE_TM_ZONE], [/* Define to 1 if your `struct tm\' has `tm_zone\'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE\' instead. */ -#undef HAVE_TM_ZONE]) -m4trace:configure.in:943: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TZNAME]) -m4trace:configure.in:943: -1- AH_OUTPUT([HAVE_TZNAME], [/* Define to 1 if you don\'t have `tm_zone\' but do have the external array - `tzname\'. */ -#undef HAVE_TZNAME]) -m4trace:configure.in:944: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEZONE]) -m4trace:configure.in:946: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:4195: BASH_STRUCT_WEXITSTATUS_OFFSET is expanded from... -configure.in:946: the top level]) -m4trace:configure.in:946: -1- AC_DEFINE_TRACE_LITERAL([WEXITSTATUS_OFFSET]) -m4trace:configure.in:946: -1- AH_OUTPUT([WEXITSTATUS_OFFSET], [/* Offset of exit status in wait status word */ -#undef WEXITSTATUS_OFFSET]) -m4trace:configure.in:948: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC]) -m4trace:configure.in:948: -1- AC_DEFINE_TRACE_LITERAL([TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:948: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC]) -m4trace:configure.in:948: -1- AC_DEFINE_TRACE_LITERAL([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:948: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC]) -m4trace:configure.in:948: -1- AC_DEFINE_TRACE_LITERAL([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:948: -1- AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:948: -1- AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:948: -1- AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec], [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec], - [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [[ - #include - #include - #if HAVE_SYS_TIME_H - # include - #endif - #include - struct timespec ts; - struct stat st; - ]], - [[ - st.st_atim = ts; - ]])], - [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes], - [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])]) - if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then - AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [1], - [Define to 1 if the type of the st_atim member of a struct stat is - struct timespec.]) - fi], [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [], - [AC_CHECK_MEMBERS([struct stat.st_atimensec], [], - [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], - [#include - #include ])], - [#include - #include ])], - [#include - #include ])], [#include - #include ]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC]) -m4trace:configure.in:949: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC], [/* Define to 1 if `st_atim.tv_nsec\' is member of `struct stat\'. */ -#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- AH_OUTPUT([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [/* Define to 1 if the type of the st_atim member of a struct stat is struct - timespec. */ -#undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC]) -m4trace:configure.in:949: -1- AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [], [AC_CHECK_MEMBERS([struct stat.st_atimensec], [], - [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], - [#include - #include ])], - [#include - #include ])], [#include - #include ]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC]) -m4trace:configure.in:949: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC], [/* Define to 1 if `st_atimespec.tv_nsec\' is member of `struct stat\'. */ -#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC]) -m4trace:configure.in:949: -1- AC_CHECK_MEMBERS([struct stat.st_atimensec], [], [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], - [#include - #include ])], [#include - #include ]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIMENSEC]) -m4trace:configure.in:949: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIMENSEC], [/* Define to 1 if `st_atimensec\' is member of `struct stat\'. */ -#undef HAVE_STRUCT_STAT_ST_ATIMENSEC]) -m4trace:configure.in:949: -1- AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], [#include - #include ]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC]) -m4trace:configure.in:949: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC], [/* Define to 1 if `st_atim.st__tim.tv_nsec\' is member of `struct stat\'. */ -#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC]) -m4trace:configure.in:952: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:310: BASH_FUNC_STRSIGNAL is expanded from... -configure.in:952: the top level]) -m4trace:configure.in:952: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSIGNAL]) -m4trace:configure.in:953: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:363: BASH_FUNC_OPENDIR_CHECK is expanded from... -configure.in:953: the top level]) -m4trace:configure.in:953: -1- AC_DEFINE_TRACE_LITERAL([OPENDIR_NOT_ROBUST]) -m4trace:configure.in:954: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:700: BASH_FUNC_ULIMIT_MAXFDS is expanded from... -configure.in:954: the top level]) -m4trace:configure.in:954: -1- AC_DEFINE_TRACE_LITERAL([ULIMIT_MAXFDS]) -m4trace:configure.in:955: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FPURGE]) -m4trace:configure.in:955: -1- AH_OUTPUT([HAVE_DECL_FPURGE], [/* Define to 1 if you have the declaration of `fpurge\', and to 0 if you don\'t. - */ -#undef HAVE_DECL_FPURGE]) -m4trace:configure.in:955: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FPURGE]) -m4trace:configure.in:956: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:621: BASH_FUNC_GETENV is expanded from... -configure.in:956: the top level]) -m4trace:configure.in:956: -1- AC_DEFINE_TRACE_LITERAL([CAN_REDEFINE_GETENV]) -m4trace:configure.in:958: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:726: BASH_FUNC_GETCWD is expanded from... -configure.in:958: the top level]) -m4trace:configure.in:958: -1- AC_DEFINE_TRACE_LITERAL([GETCWD_BROKEN]) -m4trace:configure.in:958: -1- AC_LIBSOURCE([getcwd.c]) -m4trace:configure.in:958: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:960: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:827: BASH_FUNC_POSIX_SETJMP is expanded from... -configure.in:960: the top level]) -m4trace:configure.in:960: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGSETJMP]) -m4trace:configure.in:961: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:876: BASH_FUNC_STRCOLL is expanded from... -configure.in:961: the top level]) -m4trace:configure.in:961: -1- AC_DEFINE_TRACE_LITERAL([STRCOLL_BROKEN]) -m4trace:configure.in:962: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:4091: BASH_FUNC_SNPRINTF is expanded from... -configure.in:962: the top level]) -m4trace:configure.in:962: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SNPRINTF]) -m4trace:configure.in:962: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define if you have a standard-conformant snprintf function. */ -#undef HAVE_SNPRINTF]) -m4trace:configure.in:963: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:4147: BASH_FUNC_VSNPRINTF is expanded from... -configure.in:963: the top level]) -m4trace:configure.in:963: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VSNPRINTF]) -m4trace:configure.in:963: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define if you have a standard-conformant vsnprintf function. */ -#undef HAVE_VSNPRINTF]) -m4trace:configure.in:969: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:651: BASH_FUNC_STD_PUTENV is expanded from... -configure.in:969: the top level]) -m4trace:configure.in:969: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) -m4trace:configure.in:971: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) -m4trace:configure.in:974: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:681: BASH_FUNC_STD_UNSETENV is expanded from... -configure.in:974: the top level]) -m4trace:configure.in:974: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) -m4trace:configure.in:976: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) -m4trace:configure.in:979: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:902: BASH_FUNC_PRINTF_A_FORMAT is expanded from... -configure.in:979: the top level]) -m4trace:configure.in:979: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRINTF_A_FORMAT]) -m4trace:configure.in:982: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1353: BASH_SYS_REINSTALL_SIGHANDLERS is expanded from... -configure.in:982: the top level]) -m4trace:configure.in:982: -1- AC_DEFINE_TRACE_LITERAL([MUST_REINSTALL_SIGHANDLERS]) -m4trace:configure.in:983: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1411: BASH_SYS_JOB_CONTROL_MISSING is expanded from... -configure.in:983: the top level]) -m4trace:configure.in:983: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL_MISSING]) -m4trace:configure.in:984: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1463: BASH_SYS_NAMED_PIPES is expanded from... -configure.in:984: the top level]) -m4trace:configure.in:984: -1- AC_DEFINE_TRACE_LITERAL([NAMED_PIPES_MISSING]) -m4trace:configure.in:987: -1- AC_DEFINE_TRACE_LITERAL([GWINSZ_IN_SYS_IOCTL]) -m4trace:configure.in:987: -1- AH_OUTPUT([GWINSZ_IN_SYS_IOCTL], [/* Define to 1 if `TIOCGWINSZ\' requires . */ -#undef GWINSZ_IN_SYS_IOCTL]) -m4trace:configure.in:988: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1506: BASH_HAVE_TIOCSTAT is expanded from... -configure.in:988: the top level]) -m4trace:configure.in:988: -1- AC_DEFINE_TRACE_LITERAL([TIOCSTAT_IN_SYS_IOCTL]) -m4trace:configure.in:989: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1518: BASH_HAVE_FIONREAD is expanded from... -configure.in:989: the top level]) -m4trace:configure.in:989: -1- AC_DEFINE_TRACE_LITERAL([FIONREAD_IN_SYS_IOCTL]) -m4trace:configure.in:991: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1995: BASH_CHECK_WCONTINUED is expanded from... -configure.in:991: the top level]) -m4trace:configure.in:991: -1- AC_DEFINE_TRACE_LITERAL([WCONTINUED_BROKEN]) -m4trace:configure.in:994: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1535: BASH_CHECK_SPEED_T is expanded from... -configure.in:994: the top level]) -m4trace:configure.in:994: -1- AC_DEFINE_TRACE_LITERAL([SPEED_T_IN_SYS_TYPES]) -m4trace:configure.in:995: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPW_DECLS]) -m4trace:configure.in:996: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1682: BASH_CHECK_RTSIGS is expanded from... -configure.in:996: the top level]) -m4trace:configure.in:996: -1- AC_DEFINE_TRACE_LITERAL([UNUSABLE_RT_SIGNALS]) -m4trace:configure.in:997: -1- AC_SUBST([SIGLIST_O]) -m4trace:configure.in:1001: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1631: BASH_CHECK_KERNEL_RLIMIT is expanded from... -configure.in:1001: the top level]) -m4trace:configure.in:1001: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:2173: AC_COMPILE_IFELSE is expanded from... -autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -aclocal.m4:1631: BASH_CHECK_KERNEL_RLIMIT is expanded from... -configure.in:1001: the top level]) -m4trace:configure.in:1001: -1- AC_DEFINE_TRACE_LITERAL([RLIMIT_NEEDS_KERNEL]) -m4trace:configure.in:1009: -1- AC_CHECK_LIB([termcap], [tgetent], [bash_cv_termcap_lib=libtermcap], [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo, - [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses, - [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, - bash_cv_termcap_lib=gnutermcap)])])]) -m4trace:configure.in:1009: -1- AC_CHECK_LIB([tinfo], [tgetent], [bash_cv_termcap_lib=libtinfo], [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses, - [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, - bash_cv_termcap_lib=gnutermcap)])]) -m4trace:configure.in:1009: -1- AC_CHECK_LIB([curses], [tgetent], [bash_cv_termcap_lib=libcurses], [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, - bash_cv_termcap_lib=gnutermcap)]) -m4trace:configure.in:1009: -1- AC_CHECK_LIB([ncurses], [tgetent], [bash_cv_termcap_lib=libncurses], [bash_cv_termcap_lib=gnutermcap]) -m4trace:configure.in:1011: -1- AC_SUBST([TERMCAP_LIB]) -m4trace:configure.in:1012: -1- AC_SUBST([TERMCAP_DEP]) -m4trace:configure.in:1014: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) -m4trace:configure.in:1014: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) -m4trace:configure.in:1014: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) -m4trace:configure.in:1014: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) -m4trace:configure.in:1015: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_STDIN]) -m4trace:configure.in:1016: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_MAIL_DIRECTORY]) -m4trace:configure.in:1023: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL]) -m4trace:configure.in:1029: -1- AC_SUBST([JOBS_O]) -m4trace:configure.in:1042: -1- AC_DEFINE_TRACE_LITERAL([SVR4_2]) -m4trace:configure.in:1043: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) -m4trace:configure.in:1044: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) -m4trace:configure.in:1045: -1- AC_DEFINE_TRACE_LITERAL([SVR5]) -m4trace:configure.in:1064: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) -m4trace:configure.in:1111: -1- AC_SUBST([SHOBJ_CC]) -m4trace:configure.in:1112: -1- AC_SUBST([SHOBJ_CFLAGS]) -m4trace:configure.in:1113: -1- AC_SUBST([SHOBJ_LD]) -m4trace:configure.in:1114: -1- AC_SUBST([SHOBJ_LDFLAGS]) -m4trace:configure.in:1115: -1- AC_SUBST([SHOBJ_XLDFLAGS]) -m4trace:configure.in:1116: -1- AC_SUBST([SHOBJ_LIBS]) -m4trace:configure.in:1117: -1- AC_SUBST([SHOBJ_STATUS]) -m4trace:configure.in:1149: -1- AC_SUBST([PROFILE_FLAGS]) -m4trace:configure.in:1151: -1- AC_SUBST([incdir]) -m4trace:configure.in:1152: -1- AC_SUBST([BUILD_DIR]) -m4trace:configure.in:1155: -1- AC_SUBST([datarootdir]) -m4trace:configure.in:1156: -1- AC_SUBST([localedir]) -m4trace:configure.in:1158: -1- AC_SUBST([YACC]) -m4trace:configure.in:1159: -1- AC_SUBST([AR]) -m4trace:configure.in:1160: -1- AC_SUBST([ARFLAGS]) -m4trace:configure.in:1162: -1- AC_SUBST([BASHVERS]) -m4trace:configure.in:1163: -1- AC_SUBST([RELSTATUS]) -m4trace:configure.in:1164: -1- AC_SUBST([DEBUG]) -m4trace:configure.in:1165: -1- AC_SUBST([MALLOC_DEBUG]) -m4trace:configure.in:1167: -1- AC_SUBST([host_cpu]) -m4trace:configure.in:1168: -1- AC_SUBST([host_vendor]) -m4trace:configure.in:1169: -1- AC_SUBST([host_os]) -m4trace:configure.in:1171: -1- AC_SUBST([LOCAL_LIBS]) -m4trace:configure.in:1172: -1- AC_SUBST([LOCAL_CFLAGS]) -m4trace:configure.in:1173: -1- AC_SUBST([LOCAL_LDFLAGS]) -m4trace:configure.in:1174: -1- AC_SUBST([LOCAL_DEFS]) -m4trace:configure.in:1187: -1- 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]) -m4trace:configure.in:1187: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. -You should run autoupdate.], []) -m4trace:configure.in:1187: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.in:1187: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) diff --git a/autom4te.cache/traces.3 b/autom4te.cache/traces.3 deleted file mode 100644 index f1b0857d4..000000000 --- a/autom4te.cache/traces.3 +++ /dev/null @@ -1,2779 +0,0 @@ -m4trace:configure.ac:29: -1- AC_INIT([bash], [4.3-alpha], [bug-bash@gnu.org]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) -m4trace:configure.ac:29: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.ac:29: -1- AC_SUBST([SHELL]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([SHELL]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^SHELL$]) -m4trace:configure.ac:29: -1- AC_SUBST([PATH_SEPARATOR]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PATH_SEPARATOR$]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([PACKAGE_NAME]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([PACKAGE_STRING]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([PACKAGE_URL]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.ac:29: -1- AC_SUBST([exec_prefix], [NONE]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([exec_prefix]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^exec_prefix$]) -m4trace:configure.ac:29: -1- AC_SUBST([prefix], [NONE]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([prefix]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^prefix$]) -m4trace:configure.ac:29: -1- AC_SUBST([program_transform_name], [s,x,x,]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([program_transform_name]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^program_transform_name$]) -m4trace:configure.ac:29: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([bindir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^bindir$]) -m4trace:configure.ac:29: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([sbindir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^sbindir$]) -m4trace:configure.ac:29: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([libexecdir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^libexecdir$]) -m4trace:configure.ac:29: -1- AC_SUBST([datarootdir], ['${prefix}/share']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([datarootdir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^datarootdir$]) -m4trace:configure.ac:29: -1- AC_SUBST([datadir], ['${datarootdir}']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([datadir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^datadir$]) -m4trace:configure.ac:29: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([sysconfdir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^sysconfdir$]) -m4trace:configure.ac:29: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([sharedstatedir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^sharedstatedir$]) -m4trace:configure.ac:29: -1- AC_SUBST([localstatedir], ['${prefix}/var']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([localstatedir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^localstatedir$]) -m4trace:configure.ac:29: -1- AC_SUBST([includedir], ['${prefix}/include']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([includedir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^includedir$]) -m4trace:configure.ac:29: -1- AC_SUBST([oldincludedir], ['/usr/include']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([oldincludedir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^oldincludedir$]) -m4trace:configure.ac:29: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], - ['${datarootdir}/doc/${PACKAGE_TARNAME}'], - ['${datarootdir}/doc/${PACKAGE}'])]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([docdir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^docdir$]) -m4trace:configure.ac:29: -1- AC_SUBST([infodir], ['${datarootdir}/info']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([infodir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^infodir$]) -m4trace:configure.ac:29: -1- AC_SUBST([htmldir], ['${docdir}']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([htmldir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^htmldir$]) -m4trace:configure.ac:29: -1- AC_SUBST([dvidir], ['${docdir}']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([dvidir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^dvidir$]) -m4trace:configure.ac:29: -1- AC_SUBST([pdfdir], ['${docdir}']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([pdfdir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^pdfdir$]) -m4trace:configure.ac:29: -1- AC_SUBST([psdir], ['${docdir}']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([psdir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^psdir$]) -m4trace:configure.ac:29: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([libdir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^libdir$]) -m4trace:configure.ac:29: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([localedir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^localedir$]) -m4trace:configure.ac:29: -1- AC_SUBST([mandir], ['${datarootdir}/man']) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([mandir]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^mandir$]) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_NAME$]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ -@%:@undef PACKAGE_NAME]) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ -@%:@undef PACKAGE_TARNAME]) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_VERSION$]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ -@%:@undef PACKAGE_VERSION]) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_STRING$]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ -@%:@undef PACKAGE_STRING]) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ -@%:@undef PACKAGE_BUGREPORT]) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^PACKAGE_URL$]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */ -@%:@undef PACKAGE_URL]) -m4trace:configure.ac:29: -1- AC_SUBST([DEFS]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([DEFS]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^DEFS$]) -m4trace:configure.ac:29: -1- AC_SUBST([ECHO_C]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([ECHO_C]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^ECHO_C$]) -m4trace:configure.ac:29: -1- AC_SUBST([ECHO_N]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([ECHO_N]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^ECHO_N$]) -m4trace:configure.ac:29: -1- AC_SUBST([ECHO_T]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([ECHO_T]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^ECHO_T$]) -m4trace:configure.ac:29: -1- AC_SUBST([LIBS]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([LIBS]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.ac:29: -1- AC_SUBST([build_alias]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([build_alias]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^build_alias$]) -m4trace:configure.ac:29: -1- AC_SUBST([host_alias]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([host_alias]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^host_alias$]) -m4trace:configure.ac:29: -1- AC_SUBST([target_alias]) -m4trace:configure.ac:29: -1- AC_SUBST_TRACE([target_alias]) -m4trace:configure.ac:29: -1- m4_pattern_allow([^target_alias$]) -m4trace:configure.ac:36: -1- AC_CONFIG_AUX_DIR([./support]) -m4trace:configure.ac:37: -1- AC_CONFIG_HEADERS([config.h]) -m4trace:configure.ac:51: -1- AC_CANONICAL_HOST -m4trace:configure.ac:51: -1- AC_CANONICAL_BUILD -m4trace:configure.ac:51: -1- AC_REQUIRE_AUX_FILE([config.sub]) -m4trace:configure.ac:51: -1- AC_REQUIRE_AUX_FILE([config.guess]) -m4trace:configure.ac:51: -1- AC_SUBST([build], [$ac_cv_build]) -m4trace:configure.ac:51: -1- AC_SUBST_TRACE([build]) -m4trace:configure.ac:51: -1- m4_pattern_allow([^build$]) -m4trace:configure.ac:51: -1- AC_SUBST([build_cpu], [$[1]]) -m4trace:configure.ac:51: -1- AC_SUBST_TRACE([build_cpu]) -m4trace:configure.ac:51: -1- m4_pattern_allow([^build_cpu$]) -m4trace:configure.ac:51: -1- AC_SUBST([build_vendor], [$[2]]) -m4trace:configure.ac:51: -1- AC_SUBST_TRACE([build_vendor]) -m4trace:configure.ac:51: -1- m4_pattern_allow([^build_vendor$]) -m4trace:configure.ac:51: -1- AC_SUBST([build_os]) -m4trace:configure.ac:51: -1- AC_SUBST_TRACE([build_os]) -m4trace:configure.ac:51: -1- m4_pattern_allow([^build_os$]) -m4trace:configure.ac:51: -1- AC_SUBST([host], [$ac_cv_host]) -m4trace:configure.ac:51: -1- AC_SUBST_TRACE([host]) -m4trace:configure.ac:51: -1- m4_pattern_allow([^host$]) -m4trace:configure.ac:51: -1- AC_SUBST([host_cpu], [$[1]]) -m4trace:configure.ac:51: -1- AC_SUBST_TRACE([host_cpu]) -m4trace:configure.ac:51: -1- m4_pattern_allow([^host_cpu$]) -m4trace:configure.ac:51: -1- AC_SUBST([host_vendor], [$[2]]) -m4trace:configure.ac:51: -1- AC_SUBST_TRACE([host_vendor]) -m4trace:configure.ac:51: -1- m4_pattern_allow([^host_vendor$]) -m4trace:configure.ac:51: -1- AC_SUBST([host_os]) -m4trace:configure.ac:51: -1- AC_SUBST_TRACE([host_os]) -m4trace:configure.ac:51: -1- m4_pattern_allow([^host_os$]) -m4trace:configure.ac:52: -1- AC_CANONICAL_BUILD -m4trace:configure.ac:106: -1- AC_SUBST([DEBUGGER_START_FILE]) -m4trace:configure.ac:106: -1- AC_SUBST_TRACE([DEBUGGER_START_FILE]) -m4trace:configure.ac:106: -1- m4_pattern_allow([^DEBUGGER_START_FILE$]) -m4trace:configure.ac:110: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:110: the top level]) -m4trace:configure.ac:111: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:111: the top level]) -m4trace:configure.ac:112: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:112: the top level]) -m4trace:configure.ac:113: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:113: the top level]) -m4trace:configure.ac:114: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:114: the top level]) -m4trace:configure.ac:115: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:115: the top level]) -m4trace:configure.ac:116: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:116: the top level]) -m4trace:configure.ac:127: -1- AC_DEFINE_TRACE_LITERAL([USING_BASH_MALLOC]) -m4trace:configure.ac:127: -1- m4_pattern_allow([^USING_BASH_MALLOC$]) -m4trace:configure.ac:137: -1- AC_DEFINE_TRACE_LITERAL([DISABLE_MALLOC_WRAPPERS]) -m4trace:configure.ac:137: -1- m4_pattern_allow([^DISABLE_MALLOC_WRAPPERS$]) -m4trace:configure.ac:147: -1- AC_DEFINE_TRACE_LITERAL([AFS]) -m4trace:configure.ac:147: -1- m4_pattern_allow([^AFS$]) -m4trace:configure.ac:200: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:200: the top level]) -m4trace:configure.ac:216: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:216: the top level]) -m4trace:configure.ac:217: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:217: the top level]) -m4trace:configure.ac:218: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:218: the top level]) -m4trace:configure.ac:219: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:219: the top level]) -m4trace:configure.ac:220: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:220: the top level]) -m4trace:configure.ac:221: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:221: the top level]) -m4trace:configure.ac:222: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:222: the top level]) -m4trace:configure.ac:223: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:223: the top level]) -m4trace:configure.ac:224: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:224: the top level]) -m4trace:configure.ac:225: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:225: the top level]) -m4trace:configure.ac:226: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:226: the top level]) -m4trace:configure.ac:227: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:227: the top level]) -m4trace:configure.ac:228: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:228: the top level]) -m4trace:configure.ac:229: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:229: the top level]) -m4trace:configure.ac:230: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:230: the top level]) -m4trace:configure.ac:231: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:231: the top level]) -m4trace:configure.ac:232: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:232: the top level]) -m4trace:configure.ac:233: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:233: the top level]) -m4trace:configure.ac:234: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:234: the top level]) -m4trace:configure.ac:235: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:235: the top level]) -m4trace:configure.ac:236: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:236: the top level]) -m4trace:configure.ac:237: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:237: the top level]) -m4trace:configure.ac:238: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:238: the top level]) -m4trace:configure.ac:239: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:239: the top level]) -m4trace:configure.ac:240: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:240: the top level]) -m4trace:configure.ac:241: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:241: the top level]) -m4trace:configure.ac:242: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:242: the top level]) -m4trace:configure.ac:243: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:243: the top level]) -m4trace:configure.ac:244: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:244: the top level]) -m4trace:configure.ac:245: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:245: the top level]) -m4trace:configure.ac:246: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:246: the top level]) -m4trace:configure.ac:247: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:247: the top level]) -m4trace:configure.ac:248: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:248: the top level]) -m4trace:configure.ac:249: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:249: the top level]) -m4trace:configure.ac:252: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:252: the top level]) -m4trace:configure.ac:253: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:253: the top level]) -m4trace:configure.ac:254: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from... -configure.ac:254: the top level]) -m4trace:configure.ac:257: -1- AC_SUBST([CC_FOR_BUILD]) -m4trace:configure.ac:257: -1- AC_SUBST_TRACE([CC_FOR_BUILD]) -m4trace:configure.ac:257: -1- m4_pattern_allow([^CC_FOR_BUILD$]) -m4trace:configure.ac:258: -1- AC_SUBST([CFLAGS_FOR_BUILD]) -m4trace:configure.ac:258: -1- AC_SUBST_TRACE([CFLAGS_FOR_BUILD]) -m4trace:configure.ac:258: -1- m4_pattern_allow([^CFLAGS_FOR_BUILD$]) -m4trace:configure.ac:259: -1- AC_SUBST([LDFLAGS_FOR_BUILD]) -m4trace:configure.ac:259: -1- AC_SUBST_TRACE([LDFLAGS_FOR_BUILD]) -m4trace:configure.ac:259: -1- m4_pattern_allow([^LDFLAGS_FOR_BUILD$]) -m4trace:configure.ac:260: -1- AC_SUBST([CPPFLAGS_FOR_BUILD]) -m4trace:configure.ac:260: -1- AC_SUBST_TRACE([CPPFLAGS_FOR_BUILD]) -m4trace:configure.ac:260: -1- m4_pattern_allow([^CPPFLAGS_FOR_BUILD$]) -m4trace:configure.ac:269: -1- AC_DEFINE_TRACE_LITERAL([ALIAS]) -m4trace:configure.ac:269: -1- m4_pattern_allow([^ALIAS$]) -m4trace:configure.ac:272: -1- AC_DEFINE_TRACE_LITERAL([PUSHD_AND_POPD]) -m4trace:configure.ac:272: -1- m4_pattern_allow([^PUSHD_AND_POPD$]) -m4trace:configure.ac:275: -1- AC_DEFINE_TRACE_LITERAL([RESTRICTED_SHELL]) -m4trace:configure.ac:275: -1- m4_pattern_allow([^RESTRICTED_SHELL$]) -m4trace:configure.ac:278: -1- AC_DEFINE_TRACE_LITERAL([PROCESS_SUBSTITUTION]) -m4trace:configure.ac:278: -1- m4_pattern_allow([^PROCESS_SUBSTITUTION$]) -m4trace:configure.ac:281: -1- AC_DEFINE_TRACE_LITERAL([PROMPT_STRING_DECODE]) -m4trace:configure.ac:281: -1- m4_pattern_allow([^PROMPT_STRING_DECODE$]) -m4trace:configure.ac:284: -1- AC_DEFINE_TRACE_LITERAL([SELECT_COMMAND]) -m4trace:configure.ac:284: -1- m4_pattern_allow([^SELECT_COMMAND$]) -m4trace:configure.ac:287: -1- AC_DEFINE_TRACE_LITERAL([HELP_BUILTIN]) -m4trace:configure.ac:287: -1- m4_pattern_allow([^HELP_BUILTIN$]) -m4trace:configure.ac:290: -1- AC_DEFINE_TRACE_LITERAL([ARRAY_VARS]) -m4trace:configure.ac:290: -1- m4_pattern_allow([^ARRAY_VARS$]) -m4trace:configure.ac:293: -1- AC_DEFINE_TRACE_LITERAL([DPAREN_ARITHMETIC]) -m4trace:configure.ac:293: -1- m4_pattern_allow([^DPAREN_ARITHMETIC$]) -m4trace:configure.ac:296: -1- AC_DEFINE_TRACE_LITERAL([BRACE_EXPANSION]) -m4trace:configure.ac:296: -1- m4_pattern_allow([^BRACE_EXPANSION$]) -m4trace:configure.ac:299: -1- AC_DEFINE_TRACE_LITERAL([DISABLED_BUILTINS]) -m4trace:configure.ac:299: -1- m4_pattern_allow([^DISABLED_BUILTINS$]) -m4trace:configure.ac:302: -1- AC_DEFINE_TRACE_LITERAL([COMMAND_TIMING]) -m4trace:configure.ac:302: -1- m4_pattern_allow([^COMMAND_TIMING$]) -m4trace:configure.ac:305: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_ECHO_TO_XPG]) -m4trace:configure.ac:305: -1- m4_pattern_allow([^DEFAULT_ECHO_TO_XPG$]) -m4trace:configure.ac:308: -1- AC_DEFINE_TRACE_LITERAL([STRICT_POSIX]) -m4trace:configure.ac:308: -1- m4_pattern_allow([^STRICT_POSIX$]) -m4trace:configure.ac:311: -1- AC_DEFINE_TRACE_LITERAL([EXTENDED_GLOB]) -m4trace:configure.ac:311: -1- m4_pattern_allow([^EXTENDED_GLOB$]) -m4trace:configure.ac:314: -1- AC_DEFINE_TRACE_LITERAL([EXTGLOB_DEFAULT]) -m4trace:configure.ac:314: -1- m4_pattern_allow([^EXTGLOB_DEFAULT$]) -m4trace:configure.ac:316: -1- AC_DEFINE_TRACE_LITERAL([EXTGLOB_DEFAULT]) -m4trace:configure.ac:316: -1- m4_pattern_allow([^EXTGLOB_DEFAULT$]) -m4trace:configure.ac:319: -1- AC_DEFINE_TRACE_LITERAL([COND_COMMAND]) -m4trace:configure.ac:319: -1- m4_pattern_allow([^COND_COMMAND$]) -m4trace:configure.ac:322: -1- AC_DEFINE_TRACE_LITERAL([COND_REGEXP]) -m4trace:configure.ac:322: -1- m4_pattern_allow([^COND_REGEXP$]) -m4trace:configure.ac:325: -1- AC_DEFINE_TRACE_LITERAL([COPROCESS_SUPPORT]) -m4trace:configure.ac:325: -1- m4_pattern_allow([^COPROCESS_SUPPORT$]) -m4trace:configure.ac:328: -1- AC_DEFINE_TRACE_LITERAL([ARITH_FOR_COMMAND]) -m4trace:configure.ac:328: -1- m4_pattern_allow([^ARITH_FOR_COMMAND$]) -m4trace:configure.ac:331: -1- AC_DEFINE_TRACE_LITERAL([NETWORK_REDIRECTIONS]) -m4trace:configure.ac:331: -1- m4_pattern_allow([^NETWORK_REDIRECTIONS$]) -m4trace:configure.ac:334: -1- AC_DEFINE_TRACE_LITERAL([PROGRAMMABLE_COMPLETION]) -m4trace:configure.ac:334: -1- m4_pattern_allow([^PROGRAMMABLE_COMPLETION$]) -m4trace:configure.ac:337: -1- AC_DEFINE_TRACE_LITERAL([NO_MULTIBYTE_SUPPORT]) -m4trace:configure.ac:337: -1- m4_pattern_allow([^NO_MULTIBYTE_SUPPORT$]) -m4trace:configure.ac:340: -1- AC_DEFINE_TRACE_LITERAL([DEBUGGER]) -m4trace:configure.ac:340: -1- m4_pattern_allow([^DEBUGGER$]) -m4trace:configure.ac:343: -1- AC_DEFINE_TRACE_LITERAL([CASEMOD_ATTRS]) -m4trace:configure.ac:343: -1- m4_pattern_allow([^CASEMOD_ATTRS$]) -m4trace:configure.ac:346: -1- AC_DEFINE_TRACE_LITERAL([CASEMOD_EXPANSIONS]) -m4trace:configure.ac:346: -1- m4_pattern_allow([^CASEMOD_EXPANSIONS$]) -m4trace:configure.ac:349: -1- AC_DEFINE_TRACE_LITERAL([DIRCOMPLETE_EXPAND_DEFAULT]) -m4trace:configure.ac:349: -1- m4_pattern_allow([^DIRCOMPLETE_EXPAND_DEFAULT$]) -m4trace:configure.ac:353: -1- AC_DEFINE_TRACE_LITERAL([MEMSCRAMBLE]) -m4trace:configure.ac:353: -1- m4_pattern_allow([^MEMSCRAMBLE$]) -m4trace:configure.ac:379: -1- AC_SUBST([TESTSCRIPT]) -m4trace:configure.ac:379: -1- AC_SUBST_TRACE([TESTSCRIPT]) -m4trace:configure.ac:379: -1- m4_pattern_allow([^TESTSCRIPT$]) -m4trace:configure.ac:380: -1- AC_SUBST([PURIFY]) -m4trace:configure.ac:380: -1- AC_SUBST_TRACE([PURIFY]) -m4trace:configure.ac:380: -1- m4_pattern_allow([^PURIFY$]) -m4trace:configure.ac:381: -1- AC_SUBST([MALLOC_TARGET]) -m4trace:configure.ac:381: -1- AC_SUBST_TRACE([MALLOC_TARGET]) -m4trace:configure.ac:381: -1- m4_pattern_allow([^MALLOC_TARGET$]) -m4trace:configure.ac:382: -1- AC_SUBST([MALLOC_SRC]) -m4trace:configure.ac:382: -1- AC_SUBST_TRACE([MALLOC_SRC]) -m4trace:configure.ac:382: -1- m4_pattern_allow([^MALLOC_SRC$]) -m4trace:configure.ac:384: -1- AC_SUBST([MALLOC_LIB]) -m4trace:configure.ac:384: -1- AC_SUBST_TRACE([MALLOC_LIB]) -m4trace:configure.ac:384: -1- m4_pattern_allow([^MALLOC_LIB$]) -m4trace:configure.ac:385: -1- AC_SUBST([MALLOC_LIBRARY]) -m4trace:configure.ac:385: -1- AC_SUBST_TRACE([MALLOC_LIBRARY]) -m4trace:configure.ac:385: -1- m4_pattern_allow([^MALLOC_LIBRARY$]) -m4trace:configure.ac:386: -1- AC_SUBST([MALLOC_LDFLAGS]) -m4trace:configure.ac:386: -1- AC_SUBST_TRACE([MALLOC_LDFLAGS]) -m4trace:configure.ac:386: -1- m4_pattern_allow([^MALLOC_LDFLAGS$]) -m4trace:configure.ac:387: -1- AC_SUBST([MALLOC_DEP]) -m4trace:configure.ac:387: -1- AC_SUBST_TRACE([MALLOC_DEP]) -m4trace:configure.ac:387: -1- m4_pattern_allow([^MALLOC_DEP$]) -m4trace:configure.ac:389: -1- AC_SUBST([htmldir]) -m4trace:configure.ac:389: -1- AC_SUBST_TRACE([htmldir]) -m4trace:configure.ac:389: -1- m4_pattern_allow([^htmldir$]) -m4trace:configure.ac:391: -1- AC_SUBST([HELPDIR]) -m4trace:configure.ac:391: -1- AC_SUBST_TRACE([HELPDIR]) -m4trace:configure.ac:391: -1- m4_pattern_allow([^HELPDIR$]) -m4trace:configure.ac:392: -1- AC_SUBST([HELPDIRDEFINE]) -m4trace:configure.ac:392: -1- AC_SUBST_TRACE([HELPDIRDEFINE]) -m4trace:configure.ac:392: -1- m4_pattern_allow([^HELPDIRDEFINE$]) -m4trace:configure.ac:393: -1- AC_SUBST([HELPINSTALL]) -m4trace:configure.ac:393: -1- AC_SUBST_TRACE([HELPINSTALL]) -m4trace:configure.ac:393: -1- m4_pattern_allow([^HELPINSTALL$]) -m4trace:configure.ac:394: -1- AC_SUBST([HELPFILES_TARGET]) -m4trace:configure.ac:394: -1- AC_SUBST_TRACE([HELPFILES_TARGET]) -m4trace:configure.ac:394: -1- m4_pattern_allow([^HELPFILES_TARGET$]) -m4trace:configure.ac:395: -1- AC_SUBST([HELPSTRINGS]) -m4trace:configure.ac:395: -1- AC_SUBST_TRACE([HELPSTRINGS]) -m4trace:configure.ac:395: -1- m4_pattern_allow([^HELPSTRINGS$]) -m4trace:configure.ac:404: -1- AC_SUBST([CC]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:404: -1- AC_SUBST([CFLAGS]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([CFLAGS]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.ac:404: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([LDFLAGS]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^LDFLAGS$]) -m4trace:configure.ac:404: -1- AC_SUBST([LIBS]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([LIBS]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^LIBS$]) -m4trace:configure.ac:404: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.ac:404: -1- AC_SUBST([CC]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:404: -1- AC_SUBST([CC]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:404: -1- AC_SUBST([CC]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:404: -1- AC_SUBST([CC]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([CC]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^CC$]) -m4trace:configure.ac:404: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([ac_ct_CC]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^ac_ct_CC$]) -m4trace:configure.ac:404: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([EXEEXT]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^EXEEXT$]) -m4trace:configure.ac:404: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) -m4trace:configure.ac:404: -1- AC_SUBST_TRACE([OBJEXT]) -m4trace:configure.ac:404: -1- m4_pattern_allow([^OBJEXT$]) -m4trace:configure.ac:408: -1- _m4_warn([obsolete], [The macro `AC_MINIX' is obsolete. -You should run autoupdate.], [../../lib/autoconf/specific.m4:437: AC_MINIX is expanded from... -configure.ac:408: the top level]) -m4trace:configure.ac:408: -1- AC_SUBST([CPP]) -m4trace:configure.ac:408: -1- AC_SUBST_TRACE([CPP]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.ac:408: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.ac:408: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.ac:408: -1- AC_SUBST([CPP]) -m4trace:configure.ac:408: -1- AC_SUBST_TRACE([CPP]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^CPP$]) -m4trace:configure.ac:408: -1- AC_SUBST([GREP]) -m4trace:configure.ac:408: -1- AC_SUBST_TRACE([GREP]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^GREP$]) -m4trace:configure.ac:408: -1- AC_SUBST([EGREP]) -m4trace:configure.ac:408: -1- AC_SUBST_TRACE([EGREP]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^EGREP$]) -m4trace:configure.ac:408: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^STDC_HEADERS$]) -m4trace:configure.ac:408: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ -@%:@undef STDC_HEADERS]) -m4trace:configure.ac:408: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TYPES_H]) -m4trace:configure.ac:408: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_STAT_H]) -m4trace:configure.ac:408: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.ac:408: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRING_H]) -m4trace:configure.ac:408: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MEMORY_H]) -m4trace:configure.ac:408: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRINGS_H]) -m4trace:configure.ac:408: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_INTTYPES_H]) -m4trace:configure.ac:408: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDINT_H]) -m4trace:configure.ac:408: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.ac:408: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_SOURCE]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^_POSIX_SOURCE$]) -m4trace:configure.ac:408: -1- AH_OUTPUT([_POSIX_SOURCE], [/* Define to 1 if you need to in order for `stat\' and other things to work. */ -@%:@undef _POSIX_SOURCE]) -m4trace:configure.ac:408: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_1_SOURCE]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^_POSIX_1_SOURCE$]) -m4trace:configure.ac:408: -1- AH_OUTPUT([_POSIX_1_SOURCE], [/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -@%:@undef _POSIX_1_SOURCE]) -m4trace:configure.ac:408: -1- AC_DEFINE_TRACE_LITERAL([_MINIX]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^_MINIX$]) -m4trace:configure.ac:408: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */ -@%:@undef _MINIX]) -m4trace:configure.ac:408: -1- AH_OUTPUT([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif -]) -m4trace:configure.ac:408: -1- AC_DEFINE_TRACE_LITERAL([__EXTENSIONS__]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^__EXTENSIONS__$]) -m4trace:configure.ac:408: -1- AC_DEFINE_TRACE_LITERAL([_ALL_SOURCE]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^_ALL_SOURCE$]) -m4trace:configure.ac:408: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^_GNU_SOURCE$]) -m4trace:configure.ac:408: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$]) -m4trace:configure.ac:408: -1- AC_DEFINE_TRACE_LITERAL([_TANDEM_SOURCE]) -m4trace:configure.ac:408: -1- m4_pattern_allow([^_TANDEM_SOURCE$]) -m4trace:configure.ac:410: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS]) -m4trace:configure.ac:410: -1- m4_pattern_allow([^_FILE_OFFSET_BITS$]) -m4trace:configure.ac:410: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */ -@%:@undef _FILE_OFFSET_BITS]) -m4trace:configure.ac:410: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES]) -m4trace:configure.ac:410: -1- m4_pattern_allow([^_LARGE_FILES$]) -m4trace:configure.ac:410: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */ -@%:@undef _LARGE_FILES]) -m4trace:configure.ac:447: -1- AC_SUBST([CROSS_COMPILE]) -m4trace:configure.ac:447: -1- AC_SUBST_TRACE([CROSS_COMPILE]) -m4trace:configure.ac:447: -1- m4_pattern_allow([^CROSS_COMPILE$]) -m4trace:configure.ac:449: -1- AC_SUBST([SIGNAMES_H]) -m4trace:configure.ac:449: -1- AC_SUBST_TRACE([SIGNAMES_H]) -m4trace:configure.ac:449: -1- m4_pattern_allow([^SIGNAMES_H$]) -m4trace:configure.ac:450: -1- AC_SUBST([SIGNAMES_O]) -m4trace:configure.ac:450: -1- AC_SUBST_TRACE([SIGNAMES_O]) -m4trace:configure.ac:450: -1- m4_pattern_allow([^SIGNAMES_O$]) -m4trace:configure.ac:484: -1- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete. -You should run autoupdate.], [../../lib/autoconf/c.m4:436: ac_cv_prog_gcc is expanded from... -configure.ac:484: the top level]) -m4trace:configure.ac:511: -1- AC_SUBST([CFLAGS]) -m4trace:configure.ac:511: -1- AC_SUBST_TRACE([CFLAGS]) -m4trace:configure.ac:511: -1- m4_pattern_allow([^CFLAGS$]) -m4trace:configure.ac:512: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.ac:512: -1- AC_SUBST_TRACE([CPPFLAGS]) -m4trace:configure.ac:512: -1- m4_pattern_allow([^CPPFLAGS$]) -m4trace:configure.ac:513: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.ac:513: -1- AC_SUBST_TRACE([LDFLAGS]) -m4trace:configure.ac:513: -1- m4_pattern_allow([^LDFLAGS$]) -m4trace:configure.ac:514: -1- AC_SUBST([STATIC_LD]) -m4trace:configure.ac:514: -1- AC_SUBST_TRACE([STATIC_LD]) -m4trace:configure.ac:514: -1- m4_pattern_allow([^STATIC_LD$]) -m4trace:configure.ac:516: -1- AC_SUBST([CC_FOR_BUILD]) -m4trace:configure.ac:516: -1- AC_SUBST_TRACE([CC_FOR_BUILD]) -m4trace:configure.ac:516: -1- m4_pattern_allow([^CC_FOR_BUILD$]) -m4trace:configure.ac:517: -1- AC_SUBST([CFLAGS_FOR_BUILD]) -m4trace:configure.ac:517: -1- AC_SUBST_TRACE([CFLAGS_FOR_BUILD]) -m4trace:configure.ac:517: -1- m4_pattern_allow([^CFLAGS_FOR_BUILD$]) -m4trace:configure.ac:518: -1- AC_SUBST([CPPFLAGS_FOR_BUILD]) -m4trace:configure.ac:518: -1- AC_SUBST_TRACE([CPPFLAGS_FOR_BUILD]) -m4trace:configure.ac:518: -1- m4_pattern_allow([^CPPFLAGS_FOR_BUILD$]) -m4trace:configure.ac:519: -1- AC_SUBST([LDFLAGS_FOR_BUILD]) -m4trace:configure.ac:519: -1- AC_SUBST_TRACE([LDFLAGS_FOR_BUILD]) -m4trace:configure.ac:519: -1- m4_pattern_allow([^LDFLAGS_FOR_BUILD$]) -m4trace:configure.ac:520: -1- AC_SUBST([LIBS_FOR_BUILD]) -m4trace:configure.ac:520: -1- AC_SUBST_TRACE([LIBS_FOR_BUILD]) -m4trace:configure.ac:520: -1- m4_pattern_allow([^LIBS_FOR_BUILD$]) -m4trace:configure.ac:534: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1806: RL_LIB_READLINE_VERSION is expanded from... -configure.ac:534: the top level]) -m4trace:configure.ac:534: -1- AC_DEFINE_TRACE_LITERAL([RL_READLINE_VERSION]) -m4trace:configure.ac:534: -1- m4_pattern_allow([^RL_READLINE_VERSION$]) -m4trace:configure.ac:534: -1- AH_OUTPUT([RL_READLINE_VERSION], [/* encoded version of the installed readline library */ -@%:@undef RL_READLINE_VERSION]) -m4trace:configure.ac:534: -1- AC_DEFINE_TRACE_LITERAL([RL_VERSION_MAJOR]) -m4trace:configure.ac:534: -1- m4_pattern_allow([^RL_VERSION_MAJOR$]) -m4trace:configure.ac:534: -1- AH_OUTPUT([RL_VERSION_MAJOR], [/* major version of installed readline library */ -@%:@undef RL_VERSION_MAJOR]) -m4trace:configure.ac:534: -1- AC_DEFINE_TRACE_LITERAL([RL_VERSION_MINOR]) -m4trace:configure.ac:534: -1- m4_pattern_allow([^RL_VERSION_MINOR$]) -m4trace:configure.ac:534: -1- AH_OUTPUT([RL_VERSION_MINOR], [/* minor version of installed readline library */ -@%:@undef RL_VERSION_MINOR]) -m4trace:configure.ac:534: -1- AC_SUBST([RL_VERSION]) -m4trace:configure.ac:534: -1- AC_SUBST_TRACE([RL_VERSION]) -m4trace:configure.ac:534: -1- m4_pattern_allow([^RL_VERSION$]) -m4trace:configure.ac:534: -1- AC_SUBST([RL_MAJOR]) -m4trace:configure.ac:534: -1- AC_SUBST_TRACE([RL_MAJOR]) -m4trace:configure.ac:534: -1- m4_pattern_allow([^RL_MAJOR$]) -m4trace:configure.ac:534: -1- AC_SUBST([RL_MINOR]) -m4trace:configure.ac:534: -1- AC_SUBST_TRACE([RL_MINOR]) -m4trace:configure.ac:534: -1- m4_pattern_allow([^RL_MINOR$]) -m4trace:configure.ac:547: -1- AC_DEFINE_TRACE_LITERAL([READLINE]) -m4trace:configure.ac:547: -1- m4_pattern_allow([^READLINE$]) -m4trace:configure.ac:582: -1- AC_DEFINE_TRACE_LITERAL([HISTORY]) -m4trace:configure.ac:582: -1- m4_pattern_allow([^HISTORY$]) -m4trace:configure.ac:585: -1- AC_DEFINE_TRACE_LITERAL([BANG_HISTORY]) -m4trace:configure.ac:585: -1- m4_pattern_allow([^BANG_HISTORY$]) -m4trace:configure.ac:615: -1- AC_SUBST([READLINE_LIB]) -m4trace:configure.ac:615: -1- AC_SUBST_TRACE([READLINE_LIB]) -m4trace:configure.ac:615: -1- m4_pattern_allow([^READLINE_LIB$]) -m4trace:configure.ac:616: -1- AC_SUBST([READLINE_DEP]) -m4trace:configure.ac:616: -1- AC_SUBST_TRACE([READLINE_DEP]) -m4trace:configure.ac:616: -1- m4_pattern_allow([^READLINE_DEP$]) -m4trace:configure.ac:617: -1- AC_SUBST([RL_LIBDIR]) -m4trace:configure.ac:617: -1- AC_SUBST_TRACE([RL_LIBDIR]) -m4trace:configure.ac:617: -1- m4_pattern_allow([^RL_LIBDIR$]) -m4trace:configure.ac:618: -1- AC_SUBST([RL_INCLUDEDIR]) -m4trace:configure.ac:618: -1- AC_SUBST_TRACE([RL_INCLUDEDIR]) -m4trace:configure.ac:618: -1- m4_pattern_allow([^RL_INCLUDEDIR$]) -m4trace:configure.ac:619: -1- AC_SUBST([RL_INCLUDE]) -m4trace:configure.ac:619: -1- AC_SUBST_TRACE([RL_INCLUDE]) -m4trace:configure.ac:619: -1- m4_pattern_allow([^RL_INCLUDE$]) -m4trace:configure.ac:620: -1- AC_SUBST([HISTORY_LIB]) -m4trace:configure.ac:620: -1- AC_SUBST_TRACE([HISTORY_LIB]) -m4trace:configure.ac:620: -1- m4_pattern_allow([^HISTORY_LIB$]) -m4trace:configure.ac:621: -1- AC_SUBST([HISTORY_DEP]) -m4trace:configure.ac:621: -1- AC_SUBST_TRACE([HISTORY_DEP]) -m4trace:configure.ac:621: -1- m4_pattern_allow([^HISTORY_DEP$]) -m4trace:configure.ac:622: -1- AC_SUBST([HIST_LIBDIR]) -m4trace:configure.ac:622: -1- AC_SUBST_TRACE([HIST_LIBDIR]) -m4trace:configure.ac:622: -1- m4_pattern_allow([^HIST_LIBDIR$]) -m4trace:configure.ac:623: -1- AC_SUBST([TILDE_LIB]) -m4trace:configure.ac:623: -1- AC_SUBST_TRACE([TILDE_LIB]) -m4trace:configure.ac:623: -1- m4_pattern_allow([^TILDE_LIB$]) -m4trace:configure.ac:628: -1- AC_REQUIRE_AUX_FILE([install-sh]) -m4trace:configure.ac:628: -1- AC_SUBST([INSTALL_PROGRAM]) -m4trace:configure.ac:628: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) -m4trace:configure.ac:628: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) -m4trace:configure.ac:628: -1- AC_SUBST([INSTALL_SCRIPT]) -m4trace:configure.ac:628: -1- AC_SUBST_TRACE([INSTALL_SCRIPT]) -m4trace:configure.ac:628: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) -m4trace:configure.ac:628: -1- AC_SUBST([INSTALL_DATA]) -m4trace:configure.ac:628: -1- AC_SUBST_TRACE([INSTALL_DATA]) -m4trace:configure.ac:628: -1- m4_pattern_allow([^INSTALL_DATA$]) -m4trace:configure.ac:629: -1- AC_SUBST([AR]) -m4trace:configure.ac:629: -1- AC_SUBST_TRACE([AR]) -m4trace:configure.ac:629: -1- m4_pattern_allow([^AR$]) -m4trace:configure.ac:633: -1- AC_SUBST([RANLIB]) -m4trace:configure.ac:633: -1- AC_SUBST_TRACE([RANLIB]) -m4trace:configure.ac:633: -1- m4_pattern_allow([^RANLIB$]) -m4trace:configure.ac:634: -1- AC_SUBST([YACC]) -m4trace:configure.ac:634: -1- AC_SUBST_TRACE([YACC]) -m4trace:configure.ac:634: -1- m4_pattern_allow([^YACC$]) -m4trace:configure.ac:634: -1- AC_SUBST([YACC]) -m4trace:configure.ac:634: -1- AC_SUBST_TRACE([YACC]) -m4trace:configure.ac:634: -1- m4_pattern_allow([^YACC$]) -m4trace:configure.ac:634: -1- AC_SUBST([YFLAGS]) -m4trace:configure.ac:634: -1- AC_SUBST_TRACE([YFLAGS]) -m4trace:configure.ac:634: -1- m4_pattern_allow([^YFLAGS$]) -m4trace:configure.ac:635: -1- AC_SUBST([SET_MAKE]) -m4trace:configure.ac:635: -1- AC_SUBST_TRACE([SET_MAKE]) -m4trace:configure.ac:635: -1- m4_pattern_allow([^SET_MAKE$]) -m4trace:configure.ac:641: -1- AC_SUBST([MAKE_SHELL]) -m4trace:configure.ac:641: -1- AC_SUBST_TRACE([MAKE_SHELL]) -m4trace:configure.ac:641: -1- m4_pattern_allow([^MAKE_SHELL$]) -m4trace:configure.ac:663: -1- AC_SUBST([SIZE]) -m4trace:configure.ac:663: -1- AC_SUBST_TRACE([SIZE]) -m4trace:configure.ac:663: -1- m4_pattern_allow([^SIZE$]) -m4trace:configure.ac:665: -1- m4_include([m4/stat-time.m4]) -m4trace:configure.ac:666: -1- m4_include([m4/timespec.m4]) -m4trace:configure.ac:669: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) -m4trace:configure.ac:669: -1- m4_pattern_allow([^_GNU_SOURCE$]) -m4trace:configure.ac:672: -1- AC_DEFINE_TRACE_LITERAL([const]) -m4trace:configure.ac:672: -1- m4_pattern_allow([^const$]) -m4trace:configure.ac:672: -1- AH_OUTPUT([const], [/* Define to empty if `const\' does not conform to ANSI C. */ -@%:@undef const]) -m4trace:configure.ac:673: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler - calls it, or to nothing if \'inline\' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif]) -m4trace:configure.ac:674: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#endif]) -m4trace:configure.ac:674: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN]) -m4trace:configure.ac:674: -1- m4_pattern_allow([^WORDS_BIGENDIAN$]) -m4trace:configure.ac:674: -1- AC_DEFINE_TRACE_LITERAL([AC_APPLE_UNIVERSAL_BUILD]) -m4trace:configure.ac:674: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$]) -m4trace:configure.ac:674: -1- AH_OUTPUT([AC_APPLE_UNIVERSAL_BUILD], [/* Define if building universal (internal helper macro) */ -@%:@undef AC_APPLE_UNIVERSAL_BUILD]) -m4trace:configure.ac:675: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRINGIZE]) -m4trace:configure.ac:675: -1- m4_pattern_allow([^HAVE_STRINGIZE$]) -m4trace:configure.ac:675: -1- AH_OUTPUT([HAVE_STRINGIZE], [/* Define to 1 if cpp supports the ANSI @%:@ stringizing operator. */ -@%:@undef HAVE_STRINGIZE]) -m4trace:configure.ac:676: -1- _m4_warn([obsolete], [The macro `AC_C_LONG_DOUBLE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/types.m4:451: AC_C_LONG_DOUBLE is expanded from... -configure.ac:676: the top level]) -m4trace:configure.ac:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_DOUBLE_WIDER]) -m4trace:configure.ac:676: -1- m4_pattern_allow([^HAVE_LONG_DOUBLE_WIDER$]) -m4trace:configure.ac:676: -1- AH_OUTPUT([HAVE_LONG_DOUBLE_WIDER], [/* Define to 1 if the type `long double\' works and has more range or precision - than `double\'. */ -@%:@undef HAVE_LONG_DOUBLE_WIDER]) -m4trace:configure.ac:676: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_DOUBLE]) -m4trace:configure.ac:676: -1- m4_pattern_allow([^HAVE_LONG_DOUBLE$]) -m4trace:configure.ac:676: -1- AH_OUTPUT([HAVE_LONG_DOUBLE], [/* Define to 1 if the type `long double\' works and has more range or precision - than `double\'. */ -@%:@undef HAVE_LONG_DOUBLE]) -m4trace:configure.ac:677: -1- AC_DEFINE_TRACE_LITERAL([PROTOTYPES]) -m4trace:configure.ac:677: -1- m4_pattern_allow([^PROTOTYPES$]) -m4trace:configure.ac:677: -1- AH_OUTPUT([PROTOTYPES], [/* Define to 1 if the C compiler supports function prototypes. */ -@%:@undef PROTOTYPES]) -m4trace:configure.ac:677: -1- AC_DEFINE_TRACE_LITERAL([__PROTOTYPES]) -m4trace:configure.ac:677: -1- m4_pattern_allow([^__PROTOTYPES$]) -m4trace:configure.ac:677: -1- AH_OUTPUT([__PROTOTYPES], [/* Define like PROTOTYPES; this can be used by system headers. */ -@%:@undef __PROTOTYPES]) -m4trace:configure.ac:678: -1- AH_OUTPUT([__CHAR_UNSIGNED__], [/* Define to 1 if type `char\' is unsigned and you are not using gcc. */ -#ifndef __CHAR_UNSIGNED__ -# undef __CHAR_UNSIGNED__ -#endif]) -m4trace:configure.ac:678: -1- AC_DEFINE_TRACE_LITERAL([__CHAR_UNSIGNED__]) -m4trace:configure.ac:678: -1- m4_pattern_allow([^__CHAR_UNSIGNED__$]) -m4trace:configure.ac:679: -1- AC_DEFINE_TRACE_LITERAL([volatile]) -m4trace:configure.ac:679: -1- m4_pattern_allow([^volatile$]) -m4trace:configure.ac:679: -1- AH_OUTPUT([volatile], [/* Define to empty if the keyword `volatile\' does not work. Warning: valid - code using `volatile\' can become incorrect without. Disable with care. */ -@%:@undef volatile]) -m4trace:configure.ac:680: -1- AH_OUTPUT([restrict], [/* Define to the equivalent of the C99 \'restrict\' keyword, or to - nothing if this is not supported. Do not define if restrict is - supported directly. */ -#undef restrict -/* Work around a bug in Sun C++: it does not support _Restrict or - __restrict__, even though the corresponding Sun C compiler ends up with - "#define restrict _Restrict" or "#define restrict __restrict__" in the - previous line. Perhaps some future version of Sun C++ will work with - restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ -#if defined __SUNPRO_CC && !defined __RESTRICT -# define _Restrict -# define __restrict__ -#endif]) -m4trace:configure.ac:680: -1- AC_DEFINE_TRACE_LITERAL([restrict]) -m4trace:configure.ac:680: -1- m4_pattern_allow([^restrict$]) -m4trace:configure.ac:680: -1- AC_DEFINE_TRACE_LITERAL([restrict]) -m4trace:configure.ac:680: -1- m4_pattern_allow([^restrict$]) -m4trace:configure.ac:683: -1- AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl]) -m4trace:configure.ac:683: -1- AC_SUBST([MKINSTALLDIRS]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([MKINSTALLDIRS]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^MKINSTALLDIRS$]) -m4trace:configure.ac:683: -1- AM_NLS -m4trace:configure.ac:683: -1- AC_SUBST([USE_NLS]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([USE_NLS]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.ac:683: -1- AC_SUBST([MSGFMT]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([MSGFMT]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^MSGFMT$]) -m4trace:configure.ac:683: -1- AC_SUBST([GMSGFMT]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([GMSGFMT]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^GMSGFMT$]) -m4trace:configure.ac:683: -1- AC_SUBST([XGETTEXT]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([XGETTEXT]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^XGETTEXT$]) -m4trace:configure.ac:683: -1- AC_SUBST([MSGMERGE]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([MSGMERGE]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^MSGMERGE$]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete. -You should run autoupdate.], [../../lib/autoconf/status.m4:1028: AC_OUTPUT_COMMANDS is expanded from... -aclocal.m4:3707: AM_PO_SUBDIRS is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([off_t]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^off_t$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if does not define. */ -@%:@undef off_t]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([size_t]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^size_t$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef size_t]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_ALLOCA_H$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have and it should be used (not on Ultrix). - */ -@%:@undef HAVE_ALLOCA_H]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_ALLOCA$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ -@%:@undef HAVE_ALLOCA]) -m4trace:configure.ac:683: -1- AC_LIBSOURCE([alloca.c]) -m4trace:configure.ac:683: -1- AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([ALLOCA]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^ALLOCA$]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^C_ALLOCA$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ -@%:@undef C_ALLOCA]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^CRAY_STACKSEG_END$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c\' support on those systems. - */ -@%:@undef CRAY_STACKSEG_END]) -m4trace:configure.ac:683: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -@%:@undef STACK_DIRECTION]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^STACK_DIRECTION$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -@%:@undef HAVE_GETPAGESIZE]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_MMAP$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ -@%:@undef HAVE_MMAP]) -m4trace:configure.ac:683: -1- AC_SUBST([GLIBC21]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([GLIBC21]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^GLIBC21$]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2613: gt_INTDIV0 is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([INTDIV0_RAISES_SIGFPE]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^INTDIV0_RAISES_SIGFPE$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([INTDIV0_RAISES_SIGFPE], [/* Define if integer division by zero raises signal SIGFPE. */ -@%:@undef INTDIV0_RAISES_SIGFPE]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2715: jm_AC_HEADER_INTTYPES_H is expanded from... -aclocal.m4:4016: jm_AC_TYPE_UINTMAX_T is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H_WITH_UINTMAX]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_INTTYPES_H_WITH_UINTMAX$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_INTTYPES_H_WITH_UINTMAX], [/* Define if exists, doesn\'t clash with , and - declares uintmax_t. */ -@%:@undef HAVE_INTTYPES_H_WITH_UINTMAX]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:3986: jm_AC_HEADER_STDINT_H is expanded from... -aclocal.m4:4016: jm_AC_TYPE_UINTMAX_T is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDINT_H_WITH_UINTMAX]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_STDINT_H_WITH_UINTMAX$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_STDINT_H_WITH_UINTMAX], [/* Define if exists, doesn\'t clash with , and declares - uintmax_t. */ -@%:@undef HAVE_STDINT_H_WITH_UINTMAX]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:4043: jm_AC_TYPE_UNSIGNED_LONG_LONG is expanded from... -aclocal.m4:4016: jm_AC_TYPE_UINTMAX_T is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_UNSIGNED_LONG_LONG], [/* Define if you have the unsigned long long type. */ -@%:@undef HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^uintmax_t$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([uintmax_t], [/* Define to unsigned long or unsigned long long if and - don\'t define. */ -@%:@undef uintmax_t]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINTMAX_T]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_UINTMAX_T$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_UINTMAX_T], [/* Define if you have the \'uintmax_t\' type in or . */ -@%:@undef HAVE_UINTMAX_T]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2688: gt_HEADER_INTTYPES_H is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_INTTYPES_H$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define if exists and doesn\'t clash with . */ -@%:@undef HAVE_INTTYPES_H]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2743: gt_INTTYPES_PRI is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([PRI_MACROS_BROKEN]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^PRI_MACROS_BROKEN$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([PRI_MACROS_BROKEN], [/* Define if exists and defines unusable PRI* macros. */ -@%:@undef PRI_MACROS_BROKEN]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ARGZ_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LIMITS_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LOCALE_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_NL_TYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_NL_TYPES_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MALLOC_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDDEF_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRING_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_FEOF_UNLOCKED], [/* Define to 1 if you have the `feof_unlocked\' function. */ -@%:@undef HAVE_FEOF_UNLOCKED]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_FGETS_UNLOCKED], [/* Define to 1 if you have the `fgets_unlocked\' function. */ -@%:@undef HAVE_FGETS_UNLOCKED]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_GETC_UNLOCKED], [/* Define to 1 if you have the `getc_unlocked\' function. */ -@%:@undef HAVE_GETC_UNLOCKED]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ -@%:@undef HAVE_GETCWD]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_GETEGID], [/* Define to 1 if you have the `getegid\' function. */ -@%:@undef HAVE_GETEGID]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_GETEUID], [/* Define to 1 if you have the `geteuid\' function. */ -@%:@undef HAVE_GETEUID]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_GETGID], [/* Define to 1 if you have the `getgid\' function. */ -@%:@undef HAVE_GETGID]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_GETUID], [/* Define to 1 if you have the `getuid\' function. */ -@%:@undef HAVE_GETUID]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ -@%:@undef HAVE_MEMPCPY]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ -@%:@undef HAVE_MUNMAP]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ -@%:@undef HAVE_PUTENV]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ -@%:@undef HAVE_SETENV]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ -@%:@undef HAVE_SETLOCALE]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_LOCALECONV], [/* Define to 1 if you have the `localeconv\' function. */ -@%:@undef HAVE_LOCALECONV]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ -@%:@undef HAVE_STPCPY]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ -@%:@undef HAVE_STRCASECMP]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ -@%:@undef HAVE_STRDUP]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ -@%:@undef HAVE_STRTOUL]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_TSEARCH], [/* Define to 1 if you have the `tsearch\' function. */ -@%:@undef HAVE_TSEARCH]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ -@%:@undef HAVE___ARGZ_COUNT]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ -@%:@undef HAVE___ARGZ_STRINGIFY]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ -@%:@undef HAVE___ARGZ_NEXT]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE___FSETLOCKING], [/* Define to 1 if you have the `__fsetlocking\' function. */ -@%:@undef HAVE___FSETLOCKING]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2521: AM_ICONV_LINK is expanded from... -aclocal.m4:2576: AM_ICONV is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2521: AM_ICONV_LINK is expanded from... -aclocal.m4:2576: AM_ICONV is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_ICONV$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_ICONV], [/* Define if you have the iconv() function. */ -@%:@undef HAVE_ICONV]) -m4trace:configure.ac:683: -1- AC_SUBST([LIBICONV]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([LIBICONV]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^LIBICONV$]) -m4trace:configure.ac:683: -1- AC_SUBST([LTLIBICONV]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([LTLIBICONV]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^LTLIBICONV$]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:2576: AM_ICONV is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([ICONV_CONST]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^ICONV_CONST$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([ICONV_CONST], [/* Define as const if the declaration of iconv() needs const. */ -@%:@undef ICONV_CONST]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2040: AM_LANGINFO_CODESET is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_LANGINFO_CODESET], [/* Define if you have and nl_langinfo(CODESET). */ -@%:@undef HAVE_LANGINFO_CODESET]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2810: AM_LC_MESSAGES is expanded from... -aclocal.m4:2399: AM_INTL_SUBDIR is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LC_MESSAGES]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_LC_MESSAGES$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_LC_MESSAGES], [/* Define if your file defines LC_MESSAGES. */ -@%:@undef HAVE_LC_MESSAGES]) -m4trace:configure.ac:683: -1- AC_SUBST([INTLBISON]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([INTLBISON]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^INTLBISON$]) -m4trace:configure.ac:683: -1- AM_NLS -m4trace:configure.ac:683: -1- AC_SUBST([USE_NLS]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([USE_NLS]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^USE_NLS$]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:2111: AM_GNU_GETTEXT is expanded from... -configure.ac:683: the top level]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^ENABLE_NLS$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([ENABLE_NLS], [/* Define to 1 if translation of program messages to the user\'s native - language is requested. */ -@%:@undef ENABLE_NLS]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETTEXT]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_GETTEXT$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_GETTEXT], [/* Define if the GNU gettext() function is already present or preinstalled. */ -@%:@undef HAVE_GETTEXT]) -m4trace:configure.ac:683: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DCGETTEXT]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^HAVE_DCGETTEXT$]) -m4trace:configure.ac:683: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define if the GNU dcgettext() function is already present or preinstalled. - */ -@%:@undef HAVE_DCGETTEXT]) -m4trace:configure.ac:683: -1- AC_SUBST([BUILD_INCLUDED_LIBINTL]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([BUILD_INCLUDED_LIBINTL]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^BUILD_INCLUDED_LIBINTL$]) -m4trace:configure.ac:683: -1- AC_SUBST([USE_INCLUDED_LIBINTL]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([USE_INCLUDED_LIBINTL]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^USE_INCLUDED_LIBINTL$]) -m4trace:configure.ac:683: -1- AC_SUBST([CATOBJEXT]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([CATOBJEXT]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^CATOBJEXT$]) -m4trace:configure.ac:683: -1- AC_SUBST([DATADIRNAME]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([DATADIRNAME]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^DATADIRNAME$]) -m4trace:configure.ac:683: -1- AC_SUBST([INSTOBJEXT]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([INSTOBJEXT]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^INSTOBJEXT$]) -m4trace:configure.ac:683: -1- AC_SUBST([GENCAT]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([GENCAT]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^GENCAT$]) -m4trace:configure.ac:683: -1- AC_SUBST([INTLOBJS]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([INTLOBJS]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^INTLOBJS$]) -m4trace:configure.ac:683: -1- AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([INTL_LIBTOOL_SUFFIX_PREFIX]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^INTL_LIBTOOL_SUFFIX_PREFIX$]) -m4trace:configure.ac:683: -1- AC_SUBST([INTLLIBS]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([INTLLIBS]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^INTLLIBS$]) -m4trace:configure.ac:683: -1- AC_SUBST([LIBINTL]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([LIBINTL]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^LIBINTL$]) -m4trace:configure.ac:683: -1- AC_SUBST([LTLIBINTL]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([LTLIBINTL]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^LTLIBINTL$]) -m4trace:configure.ac:683: -1- AC_SUBST([POSUB]) -m4trace:configure.ac:683: -1- AC_SUBST_TRACE([POSUB]) -m4trace:configure.ac:683: -1- m4_pattern_allow([^POSUB$]) -m4trace:configure.ac:686: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -@%:@undef HAVE_DIRENT_H]) -m4trace:configure.ac:686: -1- AH_OUTPUT([HAVE_SYS_NDIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -@%:@undef HAVE_SYS_NDIR_H]) -m4trace:configure.ac:686: -1- AH_OUTPUT([HAVE_SYS_DIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. - */ -@%:@undef HAVE_SYS_DIR_H]) -m4trace:configure.ac:686: -1- AH_OUTPUT([HAVE_NDIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. */ -@%:@undef HAVE_NDIR_H]) -m4trace:configure.ac:687: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME]) -m4trace:configure.ac:687: -1- m4_pattern_allow([^TIME_WITH_SYS_TIME$]) -m4trace:configure.ac:687: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both and . */ -@%:@undef TIME_WITH_SYS_TIME]) -m4trace:configure.ac:689: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_INTTYPES_H]) -m4trace:configure.ac:689: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) -m4trace:configure.ac:689: -1- m4_pattern_allow([^HAVE_INTTYPES_H$]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_STDARG_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDARG_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_VARARGS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_VARARGS_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LIMITS_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRING_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MEMORY_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LOCALE_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_TERMCAP_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_TERMCAP_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_TERMIO_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_TERMIO_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_TERMIOS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_TERMIOS_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_DLFCN_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_STDBOOL_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDBOOL_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDDEF_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDINT_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_NETDB_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_PWD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_PWD_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_GRP_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_GRP_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STRINGS_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_REGEX_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_REGEX_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_SYSLOG_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYSLOG_H]) -m4trace:configure.ac:691: -1- AH_OUTPUT([HAVE_ULIMIT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ULIMIT_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_PTE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PTE_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_STREAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_STREAM_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_SELECT_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_FILE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_FILE_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_RESOURCE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_RESOURCE_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_SOCKET_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_STAT_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIME_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_TIMES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIMES_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TYPES_H]) -m4trace:configure.ac:695: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_WAIT_H]) -m4trace:configure.ac:698: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_NETINET_IN_H]) -m4trace:configure.ac:698: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ARPA_INET_H]) -m4trace:configure.ac:709: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) -m4trace:configure.ac:709: -1- m4_pattern_allow([^HAVE_ALLOCA_H$]) -m4trace:configure.ac:709: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have and it should be used (not on Ultrix). - */ -@%:@undef HAVE_ALLOCA_H]) -m4trace:configure.ac:709: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) -m4trace:configure.ac:709: -1- m4_pattern_allow([^HAVE_ALLOCA$]) -m4trace:configure.ac:709: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ -@%:@undef HAVE_ALLOCA]) -m4trace:configure.ac:709: -1- AC_LIBSOURCE([alloca.c]) -m4trace:configure.ac:709: -1- AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext]) -m4trace:configure.ac:709: -1- AC_SUBST_TRACE([ALLOCA]) -m4trace:configure.ac:709: -1- m4_pattern_allow([^ALLOCA$]) -m4trace:configure.ac:709: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) -m4trace:configure.ac:709: -1- m4_pattern_allow([^C_ALLOCA$]) -m4trace:configure.ac:709: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ -@%:@undef C_ALLOCA]) -m4trace:configure.ac:709: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) -m4trace:configure.ac:709: -1- m4_pattern_allow([^CRAY_STACKSEG_END$]) -m4trace:configure.ac:709: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c\' support on those systems. - */ -@%:@undef CRAY_STACKSEG_END]) -m4trace:configure.ac:709: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -@%:@undef STACK_DIRECTION]) -m4trace:configure.ac:709: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) -m4trace:configure.ac:709: -1- m4_pattern_allow([^STACK_DIRECTION$]) -m4trace:configure.ac:710: -1- AC_DEFINE_TRACE_LITERAL([GETPGRP_VOID]) -m4trace:configure.ac:710: -1- m4_pattern_allow([^GETPGRP_VOID$]) -m4trace:configure.ac:710: -1- AH_OUTPUT([GETPGRP_VOID], [/* Define to 1 if the `getpgrp\' function requires zero arguments. */ -@%:@undef GETPGRP_VOID]) -m4trace:configure.ac:711: -1- _m4_warn([obsolete], [The macro `AC_FUNC_SETVBUF_REVERSED' is obsolete. Remove it and all references to SETVBUF_REVERSED.], [../../lib/autoconf/functions.m4:1714: AC_FUNC_SETVBUF_REVERSED is expanded from... -configure.ac:711: the top level]) -m4trace:configure.ac:712: -1- AH_OUTPUT([HAVE_VPRINTF], [/* Define to 1 if you have the `vprintf\' function. */ -@%:@undef HAVE_VPRINTF]) -m4trace:configure.ac:712: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VPRINTF]) -m4trace:configure.ac:712: -1- m4_pattern_allow([^HAVE_VPRINTF$]) -m4trace:configure.ac:712: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DOPRNT]) -m4trace:configure.ac:712: -1- m4_pattern_allow([^HAVE_DOPRNT$]) -m4trace:configure.ac:712: -1- AH_OUTPUT([HAVE_DOPRNT], [/* Define to 1 if you don\'t have `vprintf\' but do have `_doprnt.\' */ -@%:@undef HAVE_DOPRNT]) -m4trace:configure.ac:713: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCOLL]) -m4trace:configure.ac:713: -1- m4_pattern_allow([^HAVE_STRCOLL$]) -m4trace:configure.ac:713: -1- AH_OUTPUT([HAVE_STRCOLL], [/* Define to 1 if you have the `strcoll\' function and it is properly defined. - */ -@%:@undef HAVE_STRCOLL]) -m4trace:configure.ac:734: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VPRINTF]) -m4trace:configure.ac:734: -1- m4_pattern_allow([^HAVE_VPRINTF$]) -m4trace:configure.ac:739: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS vprint.$ac_objext"]) -m4trace:configure.ac:739: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:739: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:739: -1- AC_LIBSOURCE([vprint.c]) -m4trace:configure.ac:743: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete. -You should run autoupdate.], [../../lib/autoconf/types.m4:738: AC_TYPE_SIGNAL is expanded from... -configure.ac:743: the top level]) -m4trace:configure.ac:743: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) -m4trace:configure.ac:743: -1- m4_pattern_allow([^RETSIGTYPE$]) -m4trace:configure.ac:743: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ -@%:@undef RETSIGTYPE]) -m4trace:configure.ac:746: -2- AC_DEFINE_TRACE_LITERAL([HAVE_SETOSTYPE]) -m4trace:configure.ac:746: -2- m4_pattern_allow([^HAVE_SETOSTYPE$]) -m4trace:configure.ac:747: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WAIT3]) -m4trace:configure.ac:747: -2- m4_pattern_allow([^HAVE_WAIT3$]) -m4trace:configure.ac:750: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MKFIFO]) -m4trace:configure.ac:750: -2- m4_pattern_allow([^HAVE_MKFIFO$]) -m4trace:configure.ac:750: -2- AC_DEFINE_TRACE_LITERAL([MKFIFO_MISSING]) -m4trace:configure.ac:750: -2- m4_pattern_allow([^MKFIFO_MISSING$]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_DUP2], [/* Define to 1 if you have the `dup2\' function. */ -@%:@undef HAVE_DUP2]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_EACCESS], [/* Define to 1 if you have the `eaccess\' function. */ -@%:@undef HAVE_EACCESS]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */ -@%:@undef HAVE_FCNTL]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_GETDTABLESIZE], [/* Define to 1 if you have the `getdtablesize\' function. */ -@%:@undef HAVE_GETDTABLESIZE]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_GETGROUPS], [/* Define to 1 if you have the `getgroups\' function. */ -@%:@undef HAVE_GETGROUPS]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_GETHOSTNAME], [/* Define to 1 if you have the `gethostname\' function. */ -@%:@undef HAVE_GETHOSTNAME]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -@%:@undef HAVE_GETPAGESIZE]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_GETPEERNAME], [/* Define to 1 if you have the `getpeername\' function. */ -@%:@undef HAVE_GETPEERNAME]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_GETRLIMIT], [/* Define to 1 if you have the `getrlimit\' function. */ -@%:@undef HAVE_GETRLIMIT]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_GETRUSAGE], [/* Define to 1 if you have the `getrusage\' function. */ -@%:@undef HAVE_GETRUSAGE]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ -@%:@undef HAVE_GETTIMEOFDAY]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_KILL], [/* Define to 1 if you have the `kill\' function. */ -@%:@undef HAVE_KILL]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_KILLPG], [/* Define to 1 if you have the `killpg\' function. */ -@%:@undef HAVE_KILLPG]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */ -@%:@undef HAVE_LSTAT]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_READLINK], [/* Define to 1 if you have the `readlink\' function. */ -@%:@undef HAVE_READLINK]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_SBRK], [/* Define to 1 if you have the `sbrk\' function. */ -@%:@undef HAVE_SBRK]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */ -@%:@undef HAVE_SELECT]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_SETDTABLESIZE], [/* Define to 1 if you have the `setdtablesize\' function. */ -@%:@undef HAVE_SETDTABLESIZE]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_SETITIMER], [/* Define to 1 if you have the `setitimer\' function. */ -@%:@undef HAVE_SETITIMER]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_TCGETPGRP], [/* Define to 1 if you have the `tcgetpgrp\' function. */ -@%:@undef HAVE_TCGETPGRP]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_UNAME], [/* Define to 1 if you have the `uname\' function. */ -@%:@undef HAVE_UNAME]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_ULIMIT], [/* Define to 1 if you have the `ulimit\' function. */ -@%:@undef HAVE_ULIMIT]) -m4trace:configure.ac:753: -1- AH_OUTPUT([HAVE_WAITPID], [/* Define to 1 if you have the `waitpid\' function. */ -@%:@undef HAVE_WAITPID]) -m4trace:configure.ac:757: -1- AH_OUTPUT([HAVE_RENAME], [/* Define to 1 if you have the `rename\' function. */ -@%:@undef HAVE_RENAME]) -m4trace:configure.ac:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RENAME]) -m4trace:configure.ac:757: -1- m4_pattern_allow([^HAVE_RENAME$]) -m4trace:configure.ac:757: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS rename.$ac_objext"]) -m4trace:configure.ac:757: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:757: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:757: -1- AC_LIBSOURCE([rename.c]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_BCOPY], [/* Define to 1 if you have the `bcopy\' function. */ -@%:@undef HAVE_BCOPY]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_BZERO], [/* Define to 1 if you have the `bzero\' function. */ -@%:@undef HAVE_BZERO]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_CONFSTR], [/* Define to 1 if you have the `confstr\' function. */ -@%:@undef HAVE_CONFSTR]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_FACCESSAT], [/* Define to 1 if you have the `faccessat\' function. */ -@%:@undef HAVE_FACCESSAT]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_FNMATCH], [/* Define to 1 if you have the `fnmatch\' function. */ -@%:@undef HAVE_FNMATCH]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_GETADDRINFO], [/* Define to 1 if you have the `getaddrinfo\' function. */ -@%:@undef HAVE_GETADDRINFO]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_GETHOSTBYNAME], [/* Define to 1 if you have the `gethostbyname\' function. */ -@%:@undef HAVE_GETHOSTBYNAME]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_GETSERVBYNAME], [/* Define to 1 if you have the `getservbyname\' function. */ -@%:@undef HAVE_GETSERVBYNAME]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_GETSERVENT], [/* Define to 1 if you have the `getservent\' function. */ -@%:@undef HAVE_GETSERVENT]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_INET_ATON], [/* Define to 1 if you have the `inet_aton\' function. */ -@%:@undef HAVE_INET_ATON]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_IMAXDIV], [/* Define to 1 if you have the `imaxdiv\' function. */ -@%:@undef HAVE_IMAXDIV]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the `memmove\' function. */ -@%:@undef HAVE_MEMMOVE]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_PATHCONF], [/* Define to 1 if you have the `pathconf\' function. */ -@%:@undef HAVE_PATHCONF]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ -@%:@undef HAVE_PUTENV]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_RAISE], [/* Define to 1 if you have the `raise\' function. */ -@%:@undef HAVE_RAISE]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_REGCOMP], [/* Define to 1 if you have the `regcomp\' function. */ -@%:@undef HAVE_REGCOMP]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_REGEXEC], [/* Define to 1 if you have the `regexec\' function. */ -@%:@undef HAVE_REGEXEC]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ -@%:@undef HAVE_SETENV]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_SETLINEBUF], [/* Define to 1 if you have the `setlinebuf\' function. */ -@%:@undef HAVE_SETLINEBUF]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ -@%:@undef HAVE_SETLOCALE]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_SETVBUF], [/* Define to 1 if you have the `setvbuf\' function. */ -@%:@undef HAVE_SETVBUF]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_SIGINTERRUPT], [/* Define to 1 if you have the `siginterrupt\' function. */ -@%:@undef HAVE_SIGINTERRUPT]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */ -@%:@undef HAVE_STRCHR]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_SYSCONF], [/* Define to 1 if you have the `sysconf\' function. */ -@%:@undef HAVE_SYSCONF]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_SYSLOG], [/* Define to 1 if you have the `syslog\' function. */ -@%:@undef HAVE_SYSLOG]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_TCGETATTR], [/* Define to 1 if you have the `tcgetattr\' function. */ -@%:@undef HAVE_TCGETATTR]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_TIMES], [/* Define to 1 if you have the `times\' function. */ -@%:@undef HAVE_TIMES]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_TTYNAME], [/* Define to 1 if you have the `ttyname\' function. */ -@%:@undef HAVE_TTYNAME]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_TZSET], [/* Define to 1 if you have the `tzset\' function. */ -@%:@undef HAVE_TZSET]) -m4trace:configure.ac:760: -1- AH_OUTPUT([HAVE_UNSETENV], [/* Define to 1 if you have the `unsetenv\' function. */ -@%:@undef HAVE_UNSETENV]) -m4trace:configure.ac:766: -1- AH_OUTPUT([HAVE_VASPRINTF], [/* Define to 1 if you have the `vasprintf\' function. */ -@%:@undef HAVE_VASPRINTF]) -m4trace:configure.ac:766: -1- AH_OUTPUT([HAVE_ASPRINTF], [/* Define to 1 if you have the `asprintf\' function. */ -@%:@undef HAVE_ASPRINTF]) -m4trace:configure.ac:767: -1- AH_OUTPUT([HAVE_ISASCII], [/* Define to 1 if you have the `isascii\' function. */ -@%:@undef HAVE_ISASCII]) -m4trace:configure.ac:767: -1- AH_OUTPUT([HAVE_ISBLANK], [/* Define to 1 if you have the `isblank\' function. */ -@%:@undef HAVE_ISBLANK]) -m4trace:configure.ac:767: -1- AH_OUTPUT([HAVE_ISGRAPH], [/* Define to 1 if you have the `isgraph\' function. */ -@%:@undef HAVE_ISGRAPH]) -m4trace:configure.ac:767: -1- AH_OUTPUT([HAVE_ISPRINT], [/* Define to 1 if you have the `isprint\' function. */ -@%:@undef HAVE_ISPRINT]) -m4trace:configure.ac:767: -1- AH_OUTPUT([HAVE_ISSPACE], [/* Define to 1 if you have the `isspace\' function. */ -@%:@undef HAVE_ISSPACE]) -m4trace:configure.ac:767: -1- AH_OUTPUT([HAVE_ISXDIGIT], [/* Define to 1 if you have the `isxdigit\' function. */ -@%:@undef HAVE_ISXDIGIT]) -m4trace:configure.ac:768: -1- AH_OUTPUT([HAVE_GETPWENT], [/* Define to 1 if you have the `getpwent\' function. */ -@%:@undef HAVE_GETPWENT]) -m4trace:configure.ac:768: -1- AH_OUTPUT([HAVE_GETPWNAM], [/* Define to 1 if you have the `getpwnam\' function. */ -@%:@undef HAVE_GETPWNAM]) -m4trace:configure.ac:768: -1- AH_OUTPUT([HAVE_GETPWUID], [/* Define to 1 if you have the `getpwuid\' function. */ -@%:@undef HAVE_GETPWUID]) -m4trace:configure.ac:769: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ -@%:@undef HAVE_GETCWD]) -m4trace:configure.ac:769: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETCWD]) -m4trace:configure.ac:769: -1- m4_pattern_allow([^HAVE_GETCWD$]) -m4trace:configure.ac:769: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS getcwd.$ac_objext"]) -m4trace:configure.ac:769: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:769: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:769: -1- AC_LIBSOURCE([getcwd.c]) -m4trace:configure.ac:769: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */ -@%:@undef HAVE_MEMSET]) -m4trace:configure.ac:769: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MEMSET]) -m4trace:configure.ac:769: -1- m4_pattern_allow([^HAVE_MEMSET$]) -m4trace:configure.ac:769: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS memset.$ac_objext"]) -m4trace:configure.ac:769: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:769: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:769: -1- AC_LIBSOURCE([memset.c]) -m4trace:configure.ac:770: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ -@%:@undef HAVE_STRCASECMP]) -m4trace:configure.ac:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCASECMP]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^HAVE_STRCASECMP$]) -m4trace:configure.ac:770: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strcasecmp.$ac_objext"]) -m4trace:configure.ac:770: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:770: -1- AC_LIBSOURCE([strcasecmp.c]) -m4trace:configure.ac:770: -1- AH_OUTPUT([HAVE_STRCASESTR], [/* Define to 1 if you have the `strcasestr\' function. */ -@%:@undef HAVE_STRCASESTR]) -m4trace:configure.ac:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCASESTR]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^HAVE_STRCASESTR$]) -m4trace:configure.ac:770: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strcasestr.$ac_objext"]) -m4trace:configure.ac:770: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:770: -1- AC_LIBSOURCE([strcasestr.c]) -m4trace:configure.ac:770: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */ -@%:@undef HAVE_STRERROR]) -m4trace:configure.ac:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRERROR]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^HAVE_STRERROR$]) -m4trace:configure.ac:770: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strerror.$ac_objext"]) -m4trace:configure.ac:770: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:770: -1- AC_LIBSOURCE([strerror.c]) -m4trace:configure.ac:770: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the `strftime\' function. */ -@%:@undef HAVE_STRFTIME]) -m4trace:configure.ac:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRFTIME]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^HAVE_STRFTIME$]) -m4trace:configure.ac:770: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strftime.$ac_objext"]) -m4trace:configure.ac:770: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:770: -1- AC_LIBSOURCE([strftime.c]) -m4trace:configure.ac:770: -1- AH_OUTPUT([HAVE_STRNLEN], [/* Define to 1 if you have the `strnlen\' function. */ -@%:@undef HAVE_STRNLEN]) -m4trace:configure.ac:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRNLEN]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^HAVE_STRNLEN$]) -m4trace:configure.ac:770: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strnlen.$ac_objext"]) -m4trace:configure.ac:770: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:770: -1- AC_LIBSOURCE([strnlen.c]) -m4trace:configure.ac:770: -1- AH_OUTPUT([HAVE_STRPBRK], [/* Define to 1 if you have the `strpbrk\' function. */ -@%:@undef HAVE_STRPBRK]) -m4trace:configure.ac:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRPBRK]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^HAVE_STRPBRK$]) -m4trace:configure.ac:770: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strpbrk.$ac_objext"]) -m4trace:configure.ac:770: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:770: -1- AC_LIBSOURCE([strpbrk.c]) -m4trace:configure.ac:770: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */ -@%:@undef HAVE_STRSTR]) -m4trace:configure.ac:770: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSTR]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^HAVE_STRSTR$]) -m4trace:configure.ac:770: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strstr.$ac_objext"]) -m4trace:configure.ac:770: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:770: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:770: -1- AC_LIBSOURCE([strstr.c]) -m4trace:configure.ac:771: -1- AH_OUTPUT([HAVE_STRTOD], [/* Define to 1 if you have the `strtod\' function. */ -@%:@undef HAVE_STRTOD]) -m4trace:configure.ac:771: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOD]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^HAVE_STRTOD$]) -m4trace:configure.ac:771: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtod.$ac_objext"]) -m4trace:configure.ac:771: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:771: -1- AC_LIBSOURCE([strtod.c]) -m4trace:configure.ac:771: -1- AH_OUTPUT([HAVE_STRTOL], [/* Define to 1 if you have the `strtol\' function. */ -@%:@undef HAVE_STRTOL]) -m4trace:configure.ac:771: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOL]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^HAVE_STRTOL$]) -m4trace:configure.ac:771: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtol.$ac_objext"]) -m4trace:configure.ac:771: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:771: -1- AC_LIBSOURCE([strtol.c]) -m4trace:configure.ac:771: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ -@%:@undef HAVE_STRTOUL]) -m4trace:configure.ac:771: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOUL]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^HAVE_STRTOUL$]) -m4trace:configure.ac:771: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoul.$ac_objext"]) -m4trace:configure.ac:771: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:771: -1- AC_LIBSOURCE([strtoul.c]) -m4trace:configure.ac:771: -1- AH_OUTPUT([HAVE_STRTOLL], [/* Define to 1 if you have the `strtoll\' function. */ -@%:@undef HAVE_STRTOLL]) -m4trace:configure.ac:771: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOLL]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^HAVE_STRTOLL$]) -m4trace:configure.ac:771: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoll.$ac_objext"]) -m4trace:configure.ac:771: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:771: -1- AC_LIBSOURCE([strtoll.c]) -m4trace:configure.ac:771: -1- AH_OUTPUT([HAVE_STRTOULL], [/* Define to 1 if you have the `strtoull\' function. */ -@%:@undef HAVE_STRTOULL]) -m4trace:configure.ac:771: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOULL]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^HAVE_STRTOULL$]) -m4trace:configure.ac:771: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoull.$ac_objext"]) -m4trace:configure.ac:771: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:771: -1- AC_LIBSOURCE([strtoull.c]) -m4trace:configure.ac:771: -1- AH_OUTPUT([HAVE_STRTOIMAX], [/* Define to 1 if you have the `strtoimax\' function. */ -@%:@undef HAVE_STRTOIMAX]) -m4trace:configure.ac:771: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOIMAX]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^HAVE_STRTOIMAX$]) -m4trace:configure.ac:771: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoimax.$ac_objext"]) -m4trace:configure.ac:771: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:771: -1- AC_LIBSOURCE([strtoimax.c]) -m4trace:configure.ac:771: -1- AH_OUTPUT([HAVE_STRTOUMAX], [/* Define to 1 if you have the `strtoumax\' function. */ -@%:@undef HAVE_STRTOUMAX]) -m4trace:configure.ac:771: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOUMAX]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^HAVE_STRTOUMAX$]) -m4trace:configure.ac:771: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strtoumax.$ac_objext"]) -m4trace:configure.ac:771: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:771: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:771: -1- AC_LIBSOURCE([strtoumax.c]) -m4trace:configure.ac:772: -1- AH_OUTPUT([HAVE_DPRINTF], [/* Define to 1 if you have the `dprintf\' function. */ -@%:@undef HAVE_DPRINTF]) -m4trace:configure.ac:772: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DPRINTF]) -m4trace:configure.ac:772: -1- m4_pattern_allow([^HAVE_DPRINTF$]) -m4trace:configure.ac:772: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS dprintf.$ac_objext"]) -m4trace:configure.ac:772: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:772: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:772: -1- AC_LIBSOURCE([dprintf.c]) -m4trace:configure.ac:773: -1- AH_OUTPUT([HAVE_STRCHRNUL], [/* Define to 1 if you have the `strchrnul\' function. */ -@%:@undef HAVE_STRCHRNUL]) -m4trace:configure.ac:773: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCHRNUL]) -m4trace:configure.ac:773: -1- m4_pattern_allow([^HAVE_STRCHRNUL$]) -m4trace:configure.ac:773: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strchrnul.$ac_objext"]) -m4trace:configure.ac:773: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:773: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:773: -1- AC_LIBSOURCE([strchrnul.c]) -m4trace:configure.ac:775: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_AUDIT_USER_TTY]) -m4trace:configure.ac:775: -1- m4_pattern_allow([^HAVE_DECL_AUDIT_USER_TTY$]) -m4trace:configure.ac:775: -1- AH_OUTPUT([HAVE_DECL_AUDIT_USER_TTY], [/* Define to 1 if you have the declaration of `AUDIT_USER_TTY\', and to 0 if - you don\'t. */ -@%:@undef HAVE_DECL_AUDIT_USER_TTY]) -m4trace:configure.ac:777: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CONFSTR]) -m4trace:configure.ac:777: -1- m4_pattern_allow([^HAVE_DECL_CONFSTR$]) -m4trace:configure.ac:777: -1- AH_OUTPUT([HAVE_DECL_CONFSTR], [/* Define to 1 if you have the declaration of `confstr\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_CONFSTR]) -m4trace:configure.ac:778: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PRINTF]) -m4trace:configure.ac:778: -1- m4_pattern_allow([^HAVE_DECL_PRINTF$]) -m4trace:configure.ac:778: -1- AH_OUTPUT([HAVE_DECL_PRINTF], [/* Define to 1 if you have the declaration of `printf\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_PRINTF]) -m4trace:configure.ac:779: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SBRK]) -m4trace:configure.ac:779: -1- m4_pattern_allow([^HAVE_DECL_SBRK$]) -m4trace:configure.ac:779: -1- AH_OUTPUT([HAVE_DECL_SBRK], [/* Define to 1 if you have the declaration of `sbrk\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_SBRK]) -m4trace:configure.ac:780: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SETREGID]) -m4trace:configure.ac:780: -1- m4_pattern_allow([^HAVE_DECL_SETREGID$]) -m4trace:configure.ac:780: -1- AH_OUTPUT([HAVE_DECL_SETREGID], [/* Define to 1 if you have the declaration of `setregid\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_SETREGID]) -m4trace:configure.ac:781: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY]) -m4trace:configure.ac:781: -1- m4_pattern_allow([^HAVE_DECL_STRCPY$]) -m4trace:configure.ac:781: -1- AH_OUTPUT([HAVE_DECL_STRCPY], [/* Define to 1 if you have the declaration of `strcpy\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_STRCPY]) -m4trace:configure.ac:782: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL]) -m4trace:configure.ac:782: -1- m4_pattern_allow([^HAVE_DECL_STRSIGNAL$]) -m4trace:configure.ac:782: -1- AH_OUTPUT([HAVE_DECL_STRSIGNAL], [/* Define to 1 if you have the declaration of `strsignal\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_STRSIGNAL]) -m4trace:configure.ac:785: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD]) -m4trace:configure.ac:785: -1- m4_pattern_allow([^HAVE_DECL_STRTOLD$]) -m4trace:configure.ac:785: -1- AH_OUTPUT([HAVE_DECL_STRTOLD], [/* Define to 1 if you have the declaration of `strtold\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_STRTOLD]) -m4trace:configure.ac:785: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2881: AC_CHECK_DECLS is expanded from... -configure.ac:785: the top level]) -m4trace:configure.ac:785: -1- AC_DEFINE_TRACE_LITERAL([STRTOLD_BROKEN]) -m4trace:configure.ac:785: -1- m4_pattern_allow([^STRTOLD_BROKEN$]) -m4trace:configure.ac:801: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.ac:801: the top level]) -m4trace:configure.ac:802: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.ac:802: the top level]) -m4trace:configure.ac:803: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.ac:803: the top level]) -m4trace:configure.ac:804: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.ac:804: the top level]) -m4trace:configure.ac:805: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.ac:805: the top level]) -m4trace:configure.ac:806: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:103: BASH_CHECK_DECL is expanded from... -configure.ac:806: the top level]) -m4trace:configure.ac:808: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIME_H]) -m4trace:configure.ac:808: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.ac:808: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */ -@%:@undef HAVE_ALARM]) -m4trace:configure.ac:808: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS mktime.$ac_objext"]) -m4trace:configure.ac:808: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:808: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:808: -1- AC_LIBSOURCE([mktime.c]) -m4trace:configure.ac:815: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ARGZ_H]) -m4trace:configure.ac:815: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_ERRNO_H]) -m4trace:configure.ac:815: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_FCNTL_H]) -m4trace:configure.ac:815: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_MALLOC_H]) -m4trace:configure.ac:815: -1- AH_OUTPUT([HAVE_STDIO_EXT_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDIO_EXT_H]) -m4trace:configure.ac:818: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_STDLIB_H]) -m4trace:configure.ac:818: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_UNISTD_H]) -m4trace:configure.ac:818: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_PARAM_H]) -m4trace:configure.ac:818: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ -@%:@undef HAVE_GETPAGESIZE]) -m4trace:configure.ac:818: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE]) -m4trace:configure.ac:818: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$]) -m4trace:configure.ac:818: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) -m4trace:configure.ac:818: -1- m4_pattern_allow([^HAVE_MMAP$]) -m4trace:configure.ac:818: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ -@%:@undef HAVE_MMAP]) -m4trace:configure.ac:819: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ -@%:@undef HAVE___ARGZ_COUNT]) -m4trace:configure.ac:819: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ -@%:@undef HAVE___ARGZ_NEXT]) -m4trace:configure.ac:819: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ -@%:@undef HAVE___ARGZ_STRINGIFY]) -m4trace:configure.ac:819: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define to 1 if you have the `dcgettext\' function. */ -@%:@undef HAVE_DCGETTEXT]) -m4trace:configure.ac:819: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ -@%:@undef HAVE_MEMPCPY]) -m4trace:configure.ac:819: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ -@%:@undef HAVE_MUNMAP]) -m4trace:configure.ac:819: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ -@%:@undef HAVE_STPCPY]) -m4trace:configure.ac:819: -1- AH_OUTPUT([HAVE_STRCSPN], [/* Define to 1 if you have the `strcspn\' function. */ -@%:@undef HAVE_STRCSPN]) -m4trace:configure.ac:819: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ -@%:@undef HAVE_STRDUP]) -m4trace:configure.ac:828: -1- AC_SUBST([INTL_DEP]) -m4trace:configure.ac:828: -1- AC_SUBST_TRACE([INTL_DEP]) -m4trace:configure.ac:828: -1- m4_pattern_allow([^INTL_DEP$]) -m4trace:configure.ac:829: -1- AC_SUBST([INTL_INC]) -m4trace:configure.ac:829: -1- AC_SUBST_TRACE([INTL_INC]) -m4trace:configure.ac:829: -1- m4_pattern_allow([^INTL_INC$]) -m4trace:configure.ac:830: -1- AC_SUBST([LIBINTL_H]) -m4trace:configure.ac:830: -1- AC_SUBST_TRACE([LIBINTL_H]) -m4trace:configure.ac:830: -1- m4_pattern_allow([^LIBINTL_H$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_WCTYPE_H]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE_H]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_WCTYPE_H$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_WCHAR_H]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCHAR_H]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_WCHAR_H$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_LANGINFO_H]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_H]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_LANGINFO_H$]) -m4trace:configure.ac:836: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRLEN]) -m4trace:configure.ac:836: -2- m4_pattern_allow([^HAVE_MBRLEN$]) -m4trace:configure.ac:836: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCMP]) -m4trace:configure.ac:836: -2- m4_pattern_allow([^HAVE_MBSCMP$]) -m4trace:configure.ac:836: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCMP]) -m4trace:configure.ac:836: -2- m4_pattern_allow([^HAVE_MBSCMP$]) -m4trace:configure.ac:836: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSNRTOWCS]) -m4trace:configure.ac:836: -2- m4_pattern_allow([^HAVE_MBSNRTOWCS$]) -m4trace:configure.ac:836: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSRTOWCS]) -m4trace:configure.ac:836: -2- m4_pattern_allow([^HAVE_MBSRTOWCS$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_MBSCHR], [/* Define to 1 if you have the `mbschr\' function. */ -@%:@undef HAVE_MBSCHR]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSCHR]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_MBSCHR$]) -m4trace:configure.ac:836: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS mbschr.$ac_objext"]) -m4trace:configure.ac:836: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:836: -1- AC_LIBSOURCE([mbschr.c]) -m4trace:configure.ac:836: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCRTOMB]) -m4trace:configure.ac:836: -2- m4_pattern_allow([^HAVE_WCRTOMB$]) -m4trace:configure.ac:836: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSCOLL]) -m4trace:configure.ac:836: -2- m4_pattern_allow([^HAVE_WCSCOLL$]) -m4trace:configure.ac:836: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSDUP]) -m4trace:configure.ac:836: -2- m4_pattern_allow([^HAVE_WCSDUP$]) -m4trace:configure.ac:836: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCWIDTH]) -m4trace:configure.ac:836: -2- m4_pattern_allow([^HAVE_WCWIDTH$]) -m4trace:configure.ac:836: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE]) -m4trace:configure.ac:836: -2- m4_pattern_allow([^HAVE_WCTYPE$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_WCSWIDTH], [/* Define to 1 if you have the `wcswidth\' function. */ -@%:@undef HAVE_WCSWIDTH]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCSWIDTH]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_WCSWIDTH$]) -m4trace:configure.ac:836: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS wcswidth.$ac_objext"]) -m4trace:configure.ac:836: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:836: -1- AC_LIBSOURCE([wcswidth.c]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBRTOWC]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_MBRTOWC$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_MBRTOWC], [/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ -@%:@undef HAVE_MBRTOWC]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSTATE_T]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_MBSTATE_T$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_ISWLOWER], [/* Define to 1 if you have the `iswlower\' function. */ -@%:@undef HAVE_ISWLOWER]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_ISWUPPER], [/* Define to 1 if you have the `iswupper\' function. */ -@%:@undef HAVE_ISWUPPER]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_TOWLOWER], [/* Define to 1 if you have the `towlower\' function. */ -@%:@undef HAVE_TOWLOWER]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_TOWUPPER], [/* Define to 1 if you have the `towupper\' function. */ -@%:@undef HAVE_TOWUPPER]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_ISWCTYPE], [/* Define to 1 if you have the `iswctype\' function. */ -@%:@undef HAVE_ISWCTYPE]) -m4trace:configure.ac:836: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.ac:836: the top level]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$]) -m4trace:configure.ac:836: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.ac:836: the top level]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCHAR_T]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_WCHAR_T$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_WCHAR_T], [/* systems should define this type here */ -@%:@undef HAVE_WCHAR_T]) -m4trace:configure.ac:836: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.ac:836: the top level]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE_T]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_WCTYPE_T$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_WCTYPE_T], [/* systems should define this type here */ -@%:@undef HAVE_WCTYPE_T]) -m4trace:configure.ac:836: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.ac:836: the top level]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WINT_T]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_WINT_T$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_WINT_T], [/* systems should define this type here */ -@%:@undef HAVE_WINT_T]) -m4trace:configure.ac:836: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.ac:836: the top level]) -m4trace:configure.ac:836: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [../../lib/autoconf/general.m4:2749: AC_RUN_IFELSE is expanded from... -../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:1689: BASH_CHECK_MULTIBYTE is expanded from... -configure.ac:836: the top level]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([WCWIDTH_BROKEN]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^WCWIDTH_BROKEN$]) -m4trace:configure.ac:836: -1- AH_OUTPUT([WCWIDTH_BROKEN], [/* wcwidth is usually not broken */ -@%:@undef WCWIDTH_BROKEN]) -m4trace:configure.ac:836: -1- AH_OUTPUT([HAVE_LOCALE_CHARSET], [/* Define to 1 if you have the `locale_charset\' function. */ -@%:@undef HAVE_LOCALE_CHARSET]) -m4trace:configure.ac:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LOCALE_CHARSET]) -m4trace:configure.ac:836: -1- m4_pattern_allow([^HAVE_LOCALE_CHARSET$]) -m4trace:configure.ac:840: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define to 1 if you have the `dl\' library (-ldl). */ -@%:@undef HAVE_LIBDL]) -m4trace:configure.ac:840: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) -m4trace:configure.ac:840: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.ac:841: -1- AH_OUTPUT([HAVE_DLOPEN], [/* Define to 1 if you have the `dlopen\' function. */ -@%:@undef HAVE_DLOPEN]) -m4trace:configure.ac:841: -1- AH_OUTPUT([HAVE_DLCLOSE], [/* Define to 1 if you have the `dlclose\' function. */ -@%:@undef HAVE_DLCLOSE]) -m4trace:configure.ac:841: -1- AH_OUTPUT([HAVE_DLSYM], [/* Define to 1 if you have the `dlsym\' function. */ -@%:@undef HAVE_DLSYM]) -m4trace:configure.ac:845: -1- _m4_warn([obsolete], [The macro `AC_DECL_SYS_SIGLIST' is obsolete. -You should run autoupdate.], [../../lib/autoconf/specific.m4:41: AC_DECL_SYS_SIGLIST is expanded from... -configure.ac:845: the top level]) -m4trace:configure.ac:845: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.ac:845: -1- m4_pattern_allow([^HAVE_DECL_SYS_SIGLIST$]) -m4trace:configure.ac:845: -1- AH_OUTPUT([HAVE_DECL_SYS_SIGLIST], [/* Define to 1 if you have the declaration of `sys_siglist\', and to 0 if you - don\'t. */ -@%:@undef HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.ac:849: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:563: BASH_FUNC_INET_ATON is expanded from... -configure.ac:849: the top level]) -m4trace:configure.ac:849: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INET_ATON]) -m4trace:configure.ac:849: -1- m4_pattern_allow([^HAVE_INET_ATON$]) -m4trace:configure.ac:849: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS inet_aton.$ac_objext"]) -m4trace:configure.ac:849: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:849: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:849: -1- AC_LIBSOURCE([inet_aton.c]) -m4trace:configure.ac:855: -1- AH_OUTPUT([HAVE_LIBSUN], [/* Define to 1 if you have the `sun\' library (-lsun). */ -@%:@undef HAVE_LIBSUN]) -m4trace:configure.ac:855: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSUN]) -m4trace:configure.ac:855: -1- m4_pattern_allow([^HAVE_LIBSUN$]) -m4trace:configure.ac:860: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSOCKET]) -m4trace:configure.ac:860: -1- m4_pattern_allow([^HAVE_LIBSOCKET$]) -m4trace:configure.ac:860: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPEERNAME]) -m4trace:configure.ac:860: -1- m4_pattern_allow([^HAVE_GETPEERNAME$]) -m4trace:configure.ac:864: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:732: BASH_FUNC_GETHOSTBYNAME is expanded from... -configure.ac:864: the top level]) -m4trace:configure.ac:864: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME]) -m4trace:configure.ac:864: -1- m4_pattern_allow([^HAVE_GETHOSTBYNAME$]) -m4trace:configure.ac:868: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.ac:868: -1- m4_pattern_allow([^uid_t$]) -m4trace:configure.ac:868: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef uid_t]) -m4trace:configure.ac:868: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.ac:868: -1- m4_pattern_allow([^gid_t$]) -m4trace:configure.ac:868: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef gid_t]) -m4trace:configure.ac:868: -1- AC_DEFINE_TRACE_LITERAL([GETGROUPS_T]) -m4trace:configure.ac:868: -1- m4_pattern_allow([^GETGROUPS_T$]) -m4trace:configure.ac:868: -1- AH_OUTPUT([GETGROUPS_T], [/* Define to the type of elements in the array set by `getgroups\'. Usually - this is either `int\' or `gid_t\'. */ -@%:@undef GETGROUPS_T]) -m4trace:configure.ac:869: -1- AC_DEFINE_TRACE_LITERAL([off_t]) -m4trace:configure.ac:869: -1- m4_pattern_allow([^off_t$]) -m4trace:configure.ac:869: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if does not define. */ -@%:@undef off_t]) -m4trace:configure.ac:870: -1- AC_DEFINE_TRACE_LITERAL([mode_t]) -m4trace:configure.ac:870: -1- m4_pattern_allow([^mode_t$]) -m4trace:configure.ac:870: -1- AH_OUTPUT([mode_t], [/* Define to `int\' if does not define. */ -@%:@undef mode_t]) -m4trace:configure.ac:871: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.ac:871: -1- m4_pattern_allow([^uid_t$]) -m4trace:configure.ac:871: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef uid_t]) -m4trace:configure.ac:871: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.ac:871: -1- m4_pattern_allow([^gid_t$]) -m4trace:configure.ac:871: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if doesn\'t define. */ -@%:@undef gid_t]) -m4trace:configure.ac:872: -1- AC_DEFINE_TRACE_LITERAL([pid_t]) -m4trace:configure.ac:872: -1- m4_pattern_allow([^pid_t$]) -m4trace:configure.ac:872: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if does not define. */ -@%:@undef pid_t]) -m4trace:configure.ac:873: -1- AC_DEFINE_TRACE_LITERAL([size_t]) -m4trace:configure.ac:873: -1- m4_pattern_allow([^size_t$]) -m4trace:configure.ac:873: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef size_t]) -m4trace:configure.ac:874: -1- AC_DEFINE_TRACE_LITERAL([ssize_t]) -m4trace:configure.ac:874: -1- m4_pattern_allow([^ssize_t$]) -m4trace:configure.ac:874: -1- AH_OUTPUT([ssize_t], [/* Define to `int\' if does not define. */ -@%:@undef ssize_t]) -m4trace:configure.ac:875: -1- AC_DEFINE_TRACE_LITERAL([time_t]) -m4trace:configure.ac:875: -1- m4_pattern_allow([^time_t$]) -m4trace:configure.ac:875: -1- AH_OUTPUT([time_t], [/* Define to `long\' if does not define. */ -@%:@undef time_t]) -m4trace:configure.ac:877: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:472: BASH_TYPE_LONG_LONG is expanded from... -configure.ac:877: the top level]) -m4trace:configure.ac:877: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG]) -m4trace:configure.ac:877: -1- m4_pattern_allow([^HAVE_LONG_LONG$]) -m4trace:configure.ac:878: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:486: BASH_TYPE_UNSIGNED_LONG_LONG is expanded from... -configure.ac:878: the top level]) -m4trace:configure.ac:878: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.ac:878: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG$]) -m4trace:configure.ac:880: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete. -You should run autoupdate.], [../../lib/autoconf/types.m4:738: AC_TYPE_SIGNAL is expanded from... -configure.ac:880: the top level]) -m4trace:configure.ac:880: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) -m4trace:configure.ac:880: -1- m4_pattern_allow([^RETSIGTYPE$]) -m4trace:configure.ac:880: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ -@%:@undef RETSIGTYPE]) -m4trace:configure.ac:881: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:537: BASH_TYPE_SIG_ATOMIC_T is expanded from... -configure.ac:881: the top level]) -m4trace:configure.ac:881: -1- AC_DEFINE_TRACE_LITERAL([sig_atomic_t]) -m4trace:configure.ac:881: -1- m4_pattern_allow([^sig_atomic_t$]) -m4trace:configure.ac:881: -1- AH_OUTPUT([sig_atomic_t], [/* Define to `int\' if does not define. */ -@%:@undef sig_atomic_t]) -m4trace:configure.ac:883: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR]) -m4trace:configure.ac:883: -1- m4_pattern_allow([^SIZEOF_CHAR$]) -m4trace:configure.ac:883: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of `char\', as computed by sizeof. */ -@%:@undef SIZEOF_CHAR]) -m4trace:configure.ac:884: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT]) -m4trace:configure.ac:884: -1- m4_pattern_allow([^SIZEOF_SHORT$]) -m4trace:configure.ac:884: -1- AH_OUTPUT([SIZEOF_SHORT], [/* The size of `short\', as computed by sizeof. */ -@%:@undef SIZEOF_SHORT]) -m4trace:configure.ac:885: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT]) -m4trace:configure.ac:885: -1- m4_pattern_allow([^SIZEOF_INT$]) -m4trace:configure.ac:885: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of `int\', as computed by sizeof. */ -@%:@undef SIZEOF_INT]) -m4trace:configure.ac:886: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG]) -m4trace:configure.ac:886: -1- m4_pattern_allow([^SIZEOF_LONG$]) -m4trace:configure.ac:886: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of `long\', as computed by sizeof. */ -@%:@undef SIZEOF_LONG]) -m4trace:configure.ac:887: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR_P]) -m4trace:configure.ac:887: -1- m4_pattern_allow([^SIZEOF_CHAR_P$]) -m4trace:configure.ac:887: -1- AH_OUTPUT([SIZEOF_CHAR_P], [/* The size of `char *\', as computed by sizeof. */ -@%:@undef SIZEOF_CHAR_P]) -m4trace:configure.ac:888: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_DOUBLE]) -m4trace:configure.ac:888: -1- m4_pattern_allow([^SIZEOF_DOUBLE$]) -m4trace:configure.ac:888: -1- AH_OUTPUT([SIZEOF_DOUBLE], [/* The size of `double\', as computed by sizeof. */ -@%:@undef SIZEOF_DOUBLE]) -m4trace:configure.ac:889: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG]) -m4trace:configure.ac:889: -1- m4_pattern_allow([^SIZEOF_LONG_LONG$]) -m4trace:configure.ac:889: -1- AH_OUTPUT([SIZEOF_LONG_LONG], [/* The size of `long long\', as computed by sizeof. */ -@%:@undef SIZEOF_LONG_LONG]) -m4trace:configure.ac:891: -1- AC_DEFINE_TRACE_LITERAL([u_int]) -m4trace:configure.ac:891: -1- m4_pattern_allow([^u_int$]) -m4trace:configure.ac:891: -1- AH_OUTPUT([u_int], [/* Define to `unsigned int\' if does not define. */ -@%:@undef u_int]) -m4trace:configure.ac:892: -1- AC_DEFINE_TRACE_LITERAL([u_long]) -m4trace:configure.ac:892: -1- m4_pattern_allow([^u_long$]) -m4trace:configure.ac:892: -1- AH_OUTPUT([u_long], [/* Define to `unsigned long\' if does not define. */ -@%:@undef u_long]) -m4trace:configure.ac:894: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.ac:894: -1- m4_pattern_allow([^bits16_t$]) -m4trace:configure.ac:894: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if does not define. */ -@%:@undef bits16_t]) -m4trace:configure.ac:894: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.ac:894: -1- m4_pattern_allow([^bits16_t$]) -m4trace:configure.ac:894: -1- AH_OUTPUT([bits16_t], [/* Define to `char\' if does not define. */ -@%:@undef bits16_t]) -m4trace:configure.ac:894: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.ac:894: -1- m4_pattern_allow([^bits16_t$]) -m4trace:configure.ac:894: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if does not define. */ -@%:@undef bits16_t]) -m4trace:configure.ac:895: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.ac:895: -1- m4_pattern_allow([^u_bits16_t$]) -m4trace:configure.ac:895: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if does not define. */ -@%:@undef u_bits16_t]) -m4trace:configure.ac:895: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.ac:895: -1- m4_pattern_allow([^u_bits16_t$]) -m4trace:configure.ac:895: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned char\' if does not define. */ -@%:@undef u_bits16_t]) -m4trace:configure.ac:895: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.ac:895: -1- m4_pattern_allow([^u_bits16_t$]) -m4trace:configure.ac:895: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if does not define. */ -@%:@undef u_bits16_t]) -m4trace:configure.ac:896: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.ac:896: -1- m4_pattern_allow([^bits32_t$]) -m4trace:configure.ac:896: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if does not define. */ -@%:@undef bits32_t]) -m4trace:configure.ac:896: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.ac:896: -1- m4_pattern_allow([^bits32_t$]) -m4trace:configure.ac:896: -1- AH_OUTPUT([bits32_t], [/* Define to `long\' if does not define. */ -@%:@undef bits32_t]) -m4trace:configure.ac:896: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.ac:896: -1- m4_pattern_allow([^bits32_t$]) -m4trace:configure.ac:896: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if does not define. */ -@%:@undef bits32_t]) -m4trace:configure.ac:897: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.ac:897: -1- m4_pattern_allow([^u_bits32_t$]) -m4trace:configure.ac:897: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef u_bits32_t]) -m4trace:configure.ac:897: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.ac:897: -1- m4_pattern_allow([^u_bits32_t$]) -m4trace:configure.ac:897: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned long\' if does not define. */ -@%:@undef u_bits32_t]) -m4trace:configure.ac:897: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.ac:897: -1- m4_pattern_allow([^u_bits32_t$]) -m4trace:configure.ac:897: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if does not define. */ -@%:@undef u_bits32_t]) -m4trace:configure.ac:898: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.ac:898: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.ac:898: -1- AH_OUTPUT([bits64_t], [/* Define to `char *\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.ac:898: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.ac:898: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.ac:898: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.ac:898: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.ac:898: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.ac:898: -1- AH_OUTPUT([bits64_t], [/* Define to `long long\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.ac:898: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.ac:898: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.ac:898: -1- AH_OUTPUT([bits64_t], [/* Define to `long\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.ac:898: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.ac:898: -1- m4_pattern_allow([^bits64_t$]) -m4trace:configure.ac:898: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if does not define. */ -@%:@undef bits64_t]) -m4trace:configure.ac:900: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.ac:900: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.ac:900: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.ac:900: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.ac:900: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.ac:900: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.ac:900: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.ac:900: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.ac:900: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long long\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.ac:900: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.ac:900: -1- m4_pattern_allow([^ptrdiff_t$]) -m4trace:configure.ac:900: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if does not define. */ -@%:@undef ptrdiff_t]) -m4trace:configure.ac:903: -1- AC_DEFINE_TRACE_LITERAL([STAT_MACROS_BROKEN]) -m4trace:configure.ac:903: -1- m4_pattern_allow([^STAT_MACROS_BROKEN$]) -m4trace:configure.ac:903: -1- AH_OUTPUT([STAT_MACROS_BROKEN], [/* Define to 1 if the `S_IS*\' macros in do not work properly. */ -@%:@undef STAT_MACROS_BROKEN]) -m4trace:configure.ac:908: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HASH_BANG_EXEC]) -m4trace:configure.ac:908: -1- m4_pattern_allow([^HAVE_HASH_BANG_EXEC$]) -m4trace:configure.ac:913: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:549: BASH_FUNC_LSTAT is expanded from... -configure.ac:913: the top level]) -m4trace:configure.ac:913: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LSTAT]) -m4trace:configure.ac:913: -1- m4_pattern_allow([^HAVE_LSTAT$]) -m4trace:configure.ac:917: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1920: BASH_FUNC_CTYPE_NONASCII is expanded from... -configure.ac:917: the top level]) -m4trace:configure.ac:917: -1- AC_DEFINE_TRACE_LITERAL([CTYPE_NON_ASCII]) -m4trace:configure.ac:917: -1- m4_pattern_allow([^CTYPE_NON_ASCII$]) -m4trace:configure.ac:918: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:270: BASH_FUNC_DUP2_CLOEXEC_CHECK is expanded from... -configure.ac:918: the top level]) -m4trace:configure.ac:918: -1- AC_DEFINE_TRACE_LITERAL([DUP2_BROKEN]) -m4trace:configure.ac:918: -1- m4_pattern_allow([^DUP2_BROKEN$]) -m4trace:configure.ac:919: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1235: BASH_SYS_PGRP_SYNC is expanded from... -configure.ac:919: the top level]) -m4trace:configure.ac:919: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) -m4trace:configure.ac:919: -1- m4_pattern_allow([^PGRP_PIPE$]) -m4trace:configure.ac:920: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1195: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.ac:920: the top level]) -m4trace:configure.ac:920: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1195: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.ac:920: the top level]) -m4trace:configure.ac:920: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2662: _AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2679: AC_LINK_IFELSE is expanded from... -../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1195: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.ac:920: the top level]) -m4trace:configure.ac:920: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGNALS]) -m4trace:configure.ac:920: -1- m4_pattern_allow([^HAVE_POSIX_SIGNALS$]) -m4trace:configure.ac:920: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BSD_SIGNALS]) -m4trace:configure.ac:920: -1- m4_pattern_allow([^HAVE_BSD_SIGNALS$]) -m4trace:configure.ac:920: -1- AC_DEFINE_TRACE_LITERAL([HAVE_USG_SIGHOLD]) -m4trace:configure.ac:920: -1- m4_pattern_allow([^HAVE_USG_SIGHOLD$]) -m4trace:configure.ac:923: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:253: BASH_SYS_ERRLIST is expanded from... -configure.ac:923: the top level]) -m4trace:configure.ac:923: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST]) -m4trace:configure.ac:923: -1- m4_pattern_allow([^HAVE_SYS_ERRLIST$]) -m4trace:configure.ac:924: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:211: BASH_SYS_SIGLIST is expanded from... -configure.ac:924: the top level]) -m4trace:configure.ac:924: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SIGLIST]) -m4trace:configure.ac:924: -1- m4_pattern_allow([^HAVE_SYS_SIGLIST$]) -m4trace:configure.ac:925: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:167: BASH_DECL_UNDER_SYS_SIGLIST is expanded from... -aclocal.m4:184: BASH_UNDER_SYS_SIGLIST is expanded from... -configure.ac:925: the top level]) -m4trace:configure.ac:925: -1- AC_DEFINE_TRACE_LITERAL([UNDER_SYS_SIGLIST_DECLARED]) -m4trace:configure.ac:925: -1- m4_pattern_allow([^UNDER_SYS_SIGLIST_DECLARED$]) -m4trace:configure.ac:925: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:184: BASH_UNDER_SYS_SIGLIST is expanded from... -configure.ac:925: the top level]) -m4trace:configure.ac:925: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNDER_SYS_SIGLIST]) -m4trace:configure.ac:925: -1- m4_pattern_allow([^HAVE_UNDER_SYS_SIGLIST$]) -m4trace:configure.ac:928: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:366: BASH_TYPE_SIGHANDLER is expanded from... -configure.ac:928: the top level]) -m4trace:configure.ac:928: -1- AC_DEFINE_TRACE_LITERAL([VOID_SIGHANDLER]) -m4trace:configure.ac:928: -1- m4_pattern_allow([^VOID_SIGHANDLER$]) -m4trace:configure.ac:929: -1- AC_DEFINE_TRACE_LITERAL([clock_t]) -m4trace:configure.ac:929: -1- m4_pattern_allow([^clock_t$]) -m4trace:configure.ac:930: -1- AC_DEFINE_TRACE_LITERAL([sigset_t]) -m4trace:configure.ac:930: -1- m4_pattern_allow([^sigset_t$]) -m4trace:configure.ac:931: -1- AC_DEFINE_TRACE_LITERAL([sig_atomic_t]) -m4trace:configure.ac:931: -1- m4_pattern_allow([^sig_atomic_t$]) -m4trace:configure.ac:932: -1- AC_DEFINE_TRACE_LITERAL([HAVE_QUAD_T]) -m4trace:configure.ac:932: -1- m4_pattern_allow([^HAVE_QUAD_T$]) -m4trace:configure.ac:932: -1- AC_DEFINE_TRACE_LITERAL([quad_t]) -m4trace:configure.ac:932: -1- m4_pattern_allow([^quad_t$]) -m4trace:configure.ac:933: -1- AC_DEFINE_TRACE_LITERAL([intmax_t]) -m4trace:configure.ac:933: -1- m4_pattern_allow([^intmax_t$]) -m4trace:configure.ac:934: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) -m4trace:configure.ac:934: -1- m4_pattern_allow([^uintmax_t$]) -m4trace:configure.ac:936: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SOCKLEN_T]) -m4trace:configure.ac:936: -1- m4_pattern_allow([^HAVE_SOCKLEN_T$]) -m4trace:configure.ac:936: -1- AC_DEFINE_TRACE_LITERAL([socklen_t]) -m4trace:configure.ac:936: -1- m4_pattern_allow([^socklen_t$]) -m4trace:configure.ac:938: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:507: BASH_TYPE_RLIMIT is expanded from... -configure.ac:938: the top level]) -m4trace:configure.ac:938: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:507: BASH_TYPE_RLIMIT is expanded from... -configure.ac:938: the top level]) -m4trace:configure.ac:938: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) -m4trace:configure.ac:938: -1- m4_pattern_allow([^RLIMTYPE$]) -m4trace:configure.ac:938: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) -m4trace:configure.ac:938: -1- m4_pattern_allow([^RLIMTYPE$]) -m4trace:configure.ac:940: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INTMAX_T]) -m4trace:configure.ac:940: -1- m4_pattern_allow([^SIZEOF_INTMAX_T$]) -m4trace:configure.ac:940: -1- AH_OUTPUT([SIZEOF_INTMAX_T], [/* The size of `intmax_t\', as computed by sizeof. */ -@%:@undef SIZEOF_INTMAX_T]) -m4trace:configure.ac:943: -2- AC_DEFINE_TRACE_LITERAL([TERMIOS_LDISC]) -m4trace:configure.ac:943: -2- m4_pattern_allow([^TERMIOS_LDISC$]) -m4trace:configure.ac:944: -2- AC_DEFINE_TRACE_LITERAL([TERMIO_LDISC]) -m4trace:configure.ac:944: -2- m4_pattern_allow([^TERMIO_LDISC$]) -m4trace:configure.ac:945: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1042: BASH_STRUCT_DIRENT_D_INO is expanded from... -configure.ac:945: the top level]) -m4trace:configure.ac:945: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_INO]) -m4trace:configure.ac:945: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_INO$]) -m4trace:configure.ac:946: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1075: BASH_STRUCT_DIRENT_D_FILENO is expanded from... -configure.ac:946: the top level]) -m4trace:configure.ac:946: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_FILENO]) -m4trace:configure.ac:946: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_FILENO$]) -m4trace:configure.ac:947: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1108: BASH_STRUCT_DIRENT_D_NAMLEN is expanded from... -configure.ac:947: the top level]) -m4trace:configure.ac:947: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_NAMLEN]) -m4trace:configure.ac:947: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_NAMLEN$]) -m4trace:configure.ac:948: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1173: BASH_STRUCT_WINSIZE is expanded from... -configure.ac:948: the top level]) -m4trace:configure.ac:948: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1173: BASH_STRUCT_WINSIZE is expanded from... -configure.ac:948: the top level]) -m4trace:configure.ac:948: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_SYS_IOCTL]) -m4trace:configure.ac:948: -1- m4_pattern_allow([^STRUCT_WINSIZE_IN_SYS_IOCTL$]) -m4trace:configure.ac:948: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_TERMIOS]) -m4trace:configure.ac:948: -1- m4_pattern_allow([^STRUCT_WINSIZE_IN_TERMIOS$]) -m4trace:configure.ac:949: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIMEVAL]) -m4trace:configure.ac:949: -1- m4_pattern_allow([^HAVE_TIMEVAL$]) -m4trace:configure.ac:950: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLOCKS]) -m4trace:configure.ac:950: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BLOCKS$]) -m4trace:configure.ac:950: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLOCKS], [/* Define to 1 if `st_blocks\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_BLOCKS]) -m4trace:configure.ac:951: -1- AC_DEFINE_TRACE_LITERAL([TM_IN_SYS_TIME]) -m4trace:configure.ac:951: -1- m4_pattern_allow([^TM_IN_SYS_TIME$]) -m4trace:configure.ac:951: -1- AH_OUTPUT([TM_IN_SYS_TIME], [/* Define to 1 if your declares `struct tm\'. */ -@%:@undef TM_IN_SYS_TIME]) -m4trace:configure.ac:952: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TM_TM_ZONE]) -m4trace:configure.ac:952: -1- m4_pattern_allow([^HAVE_STRUCT_TM_TM_ZONE$]) -m4trace:configure.ac:952: -1- AH_OUTPUT([HAVE_STRUCT_TM_TM_ZONE], [/* Define to 1 if `tm_zone\' is a member of `struct tm\'. */ -@%:@undef HAVE_STRUCT_TM_TM_ZONE]) -m4trace:configure.ac:952: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TM_ZONE]) -m4trace:configure.ac:952: -1- m4_pattern_allow([^HAVE_TM_ZONE$]) -m4trace:configure.ac:952: -1- AH_OUTPUT([HAVE_TM_ZONE], [/* Define to 1 if your `struct tm\' has `tm_zone\'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE\' instead. */ -@%:@undef HAVE_TM_ZONE]) -m4trace:configure.ac:952: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_TZNAME]) -m4trace:configure.ac:952: -1- m4_pattern_allow([^HAVE_DECL_TZNAME$]) -m4trace:configure.ac:952: -1- AH_OUTPUT([HAVE_DECL_TZNAME], [/* Define to 1 if you have the declaration of `tzname\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_TZNAME]) -m4trace:configure.ac:952: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TZNAME]) -m4trace:configure.ac:952: -1- m4_pattern_allow([^HAVE_TZNAME$]) -m4trace:configure.ac:952: -1- AH_OUTPUT([HAVE_TZNAME], [/* Define to 1 if you don\'t have `tm_zone\' but do have the external array - `tzname\'. */ -@%:@undef HAVE_TZNAME]) -m4trace:configure.ac:953: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEZONE]) -m4trace:configure.ac:953: -1- m4_pattern_allow([^HAVE_STRUCT_TIMEZONE$]) -m4trace:configure.ac:955: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:4149: BASH_STRUCT_WEXITSTATUS_OFFSET is expanded from... -configure.ac:955: the top level]) -m4trace:configure.ac:955: -1- AC_DEFINE_TRACE_LITERAL([WEXITSTATUS_OFFSET]) -m4trace:configure.ac:955: -1- m4_pattern_allow([^WEXITSTATUS_OFFSET$]) -m4trace:configure.ac:955: -1- AH_OUTPUT([WEXITSTATUS_OFFSET], [/* Offset of exit status in wait status word */ -@%:@undef WEXITSTATUS_OFFSET]) -m4trace:configure.ac:957: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIME_H]) -m4trace:configure.ac:957: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- m4_pattern_allow([^HAVE_STRUCT_TIMESPEC$]) -m4trace:configure.ac:957: -1- AC_DEFINE_TRACE_LITERAL([TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- m4_pattern_allow([^TIME_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.ac:957: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- m4_pattern_allow([^HAVE_STRUCT_TIMESPEC$]) -m4trace:configure.ac:957: -1- AC_DEFINE_TRACE_LITERAL([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- m4_pattern_allow([^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.ac:957: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- m4_pattern_allow([^HAVE_STRUCT_TIMESPEC$]) -m4trace:configure.ac:957: -1- AC_DEFINE_TRACE_LITERAL([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- m4_pattern_allow([^PTHREAD_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.ac:957: -1- AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- AC_SUBST_TRACE([TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- m4_pattern_allow([^TIME_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.ac:957: -1- AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- AC_SUBST_TRACE([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- m4_pattern_allow([^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.ac:957: -1- AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- AC_SUBST_TRACE([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) -m4trace:configure.ac:957: -1- m4_pattern_allow([^PTHREAD_H_DEFINES_STRUCT_TIMESPEC$]) -m4trace:configure.ac:958: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -@%:@undef HAVE_SYS_TIME_H]) -m4trace:configure.ac:958: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC]) -m4trace:configure.ac:958: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC$]) -m4trace:configure.ac:958: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC], [/* Define to 1 if `st_atim.tv_nsec\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC]) -m4trace:configure.ac:958: -1- AC_DEFINE_TRACE_LITERAL([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC]) -m4trace:configure.ac:958: -1- m4_pattern_allow([^TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC$]) -m4trace:configure.ac:958: -1- AH_OUTPUT([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [/* Define to 1 if the type of the st_atim member of a struct stat is struct - timespec. */ -@%:@undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC]) -m4trace:configure.ac:958: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC]) -m4trace:configure.ac:958: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC$]) -m4trace:configure.ac:958: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC], [/* Define to 1 if `st_atimespec.tv_nsec\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC]) -m4trace:configure.ac:958: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIMENSEC]) -m4trace:configure.ac:958: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIMENSEC$]) -m4trace:configure.ac:958: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIMENSEC], [/* Define to 1 if `st_atimensec\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_ATIMENSEC]) -m4trace:configure.ac:958: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC]) -m4trace:configure.ac:958: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC$]) -m4trace:configure.ac:958: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC], [/* Define to 1 if `st_atim.st__tim.tv_nsec\' is a member of `struct stat\'. */ -@%:@undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC]) -m4trace:configure.ac:961: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:299: BASH_FUNC_STRSIGNAL is expanded from... -configure.ac:961: the top level]) -m4trace:configure.ac:961: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSIGNAL]) -m4trace:configure.ac:961: -1- m4_pattern_allow([^HAVE_STRSIGNAL$]) -m4trace:configure.ac:962: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:313: BASH_FUNC_OPENDIR_CHECK is expanded from... -configure.ac:962: the top level]) -m4trace:configure.ac:962: -1- AC_DEFINE_TRACE_LITERAL([OPENDIR_NOT_ROBUST]) -m4trace:configure.ac:962: -1- m4_pattern_allow([^OPENDIR_NOT_ROBUST$]) -m4trace:configure.ac:963: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:683: BASH_FUNC_ULIMIT_MAXFDS is expanded from... -configure.ac:963: the top level]) -m4trace:configure.ac:963: -1- AC_DEFINE_TRACE_LITERAL([ULIMIT_MAXFDS]) -m4trace:configure.ac:963: -1- m4_pattern_allow([^ULIMIT_MAXFDS$]) -m4trace:configure.ac:964: -1- AH_OUTPUT([HAVE_FPURGE], [/* Define to 1 if you have the `fpurge\' function. */ -@%:@undef HAVE_FPURGE]) -m4trace:configure.ac:964: -1- AH_OUTPUT([HAVE___FPURGE], [/* Define to 1 if you have the `__fpurge\' function. */ -@%:@undef HAVE___FPURGE]) -m4trace:configure.ac:964: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FPURGE]) -m4trace:configure.ac:964: -1- m4_pattern_allow([^HAVE_DECL_FPURGE$]) -m4trace:configure.ac:964: -1- AH_OUTPUT([HAVE_DECL_FPURGE], [/* Define to 1 if you have the declaration of `fpurge\', and to 0 if you don\'t. - */ -@%:@undef HAVE_DECL_FPURGE]) -m4trace:configure.ac:965: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:579: BASH_FUNC_GETENV is expanded from... -configure.ac:965: the top level]) -m4trace:configure.ac:965: -1- AC_DEFINE_TRACE_LITERAL([CAN_REDEFINE_GETENV]) -m4trace:configure.ac:965: -1- m4_pattern_allow([^CAN_REDEFINE_GETENV$]) -m4trace:configure.ac:967: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:702: BASH_FUNC_GETCWD is expanded from... -configure.ac:967: the top level]) -m4trace:configure.ac:967: -1- AC_DEFINE_TRACE_LITERAL([GETCWD_BROKEN]) -m4trace:configure.ac:967: -1- m4_pattern_allow([^GETCWD_BROKEN$]) -m4trace:configure.ac:967: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS getcwd.$ac_objext"]) -m4trace:configure.ac:967: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:967: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:967: -1- AC_LIBSOURCE([getcwd.c]) -m4trace:configure.ac:969: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:778: BASH_FUNC_POSIX_SETJMP is expanded from... -configure.ac:969: the top level]) -m4trace:configure.ac:969: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGSETJMP]) -m4trace:configure.ac:969: -1- m4_pattern_allow([^HAVE_POSIX_SIGSETJMP$]) -m4trace:configure.ac:970: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:829: BASH_FUNC_STRCOLL is expanded from... -configure.ac:970: the top level]) -m4trace:configure.ac:970: -1- AC_DEFINE_TRACE_LITERAL([STRCOLL_BROKEN]) -m4trace:configure.ac:970: -1- m4_pattern_allow([^STRCOLL_BROKEN$]) -m4trace:configure.ac:971: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */ -@%:@undef HAVE_SNPRINTF]) -m4trace:configure.ac:971: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:4065: BASH_FUNC_SNPRINTF is expanded from... -configure.ac:971: the top level]) -m4trace:configure.ac:971: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SNPRINTF]) -m4trace:configure.ac:971: -1- m4_pattern_allow([^HAVE_SNPRINTF$]) -m4trace:configure.ac:971: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define if you have a standard-conformant snprintf function. */ -@%:@undef HAVE_SNPRINTF]) -m4trace:configure.ac:972: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define to 1 if you have the `vsnprintf\' function. */ -@%:@undef HAVE_VSNPRINTF]) -m4trace:configure.ac:972: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:4093: BASH_FUNC_VSNPRINTF is expanded from... -configure.ac:972: the top level]) -m4trace:configure.ac:972: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VSNPRINTF]) -m4trace:configure.ac:972: -1- m4_pattern_allow([^HAVE_VSNPRINTF$]) -m4trace:configure.ac:972: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define if you have a standard-conformant vsnprintf function. */ -@%:@undef HAVE_VSNPRINTF]) -m4trace:configure.ac:978: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:624: BASH_FUNC_STD_PUTENV is expanded from... -configure.ac:978: the top level]) -m4trace:configure.ac:978: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) -m4trace:configure.ac:978: -1- m4_pattern_allow([^HAVE_STD_PUTENV$]) -m4trace:configure.ac:980: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) -m4trace:configure.ac:980: -1- m4_pattern_allow([^HAVE_STD_PUTENV$]) -m4trace:configure.ac:983: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... -aclocal.m4:654: BASH_FUNC_STD_UNSETENV is expanded from... -configure.ac:983: the top level]) -m4trace:configure.ac:983: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) -m4trace:configure.ac:983: -1- m4_pattern_allow([^HAVE_STD_UNSETENV$]) -m4trace:configure.ac:985: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) -m4trace:configure.ac:985: -1- m4_pattern_allow([^HAVE_STD_UNSETENV$]) -m4trace:configure.ac:988: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:878: BASH_FUNC_PRINTF_A_FORMAT is expanded from... -configure.ac:988: the top level]) -m4trace:configure.ac:988: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRINTF_A_FORMAT]) -m4trace:configure.ac:988: -1- m4_pattern_allow([^HAVE_PRINTF_A_FORMAT$]) -m4trace:configure.ac:991: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1297: BASH_SYS_REINSTALL_SIGHANDLERS is expanded from... -configure.ac:991: the top level]) -m4trace:configure.ac:991: -1- AC_DEFINE_TRACE_LITERAL([MUST_REINSTALL_SIGHANDLERS]) -m4trace:configure.ac:991: -1- m4_pattern_allow([^MUST_REINSTALL_SIGHANDLERS$]) -m4trace:configure.ac:992: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1356: BASH_SYS_JOB_CONTROL_MISSING is expanded from... -configure.ac:992: the top level]) -m4trace:configure.ac:992: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL_MISSING]) -m4trace:configure.ac:992: -1- m4_pattern_allow([^JOB_CONTROL_MISSING$]) -m4trace:configure.ac:993: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1415: BASH_SYS_NAMED_PIPES is expanded from... -configure.ac:993: the top level]) -m4trace:configure.ac:993: -1- AC_DEFINE_TRACE_LITERAL([NAMED_PIPES_MISSING]) -m4trace:configure.ac:993: -1- m4_pattern_allow([^NAMED_PIPES_MISSING$]) -m4trace:configure.ac:996: -1- AC_DEFINE_TRACE_LITERAL([GWINSZ_IN_SYS_IOCTL]) -m4trace:configure.ac:996: -1- m4_pattern_allow([^GWINSZ_IN_SYS_IOCTL$]) -m4trace:configure.ac:996: -1- AH_OUTPUT([GWINSZ_IN_SYS_IOCTL], [/* Define to 1 if `TIOCGWINSZ\' requires . */ -@%:@undef GWINSZ_IN_SYS_IOCTL]) -m4trace:configure.ac:997: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1496: BASH_HAVE_TIOCSTAT is expanded from... -configure.ac:997: the top level]) -m4trace:configure.ac:997: -1- AC_DEFINE_TRACE_LITERAL([TIOCSTAT_IN_SYS_IOCTL]) -m4trace:configure.ac:997: -1- m4_pattern_allow([^TIOCSTAT_IN_SYS_IOCTL$]) -m4trace:configure.ac:998: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1508: BASH_HAVE_FIONREAD is expanded from... -configure.ac:998: the top level]) -m4trace:configure.ac:998: -1- AC_DEFINE_TRACE_LITERAL([FIONREAD_IN_SYS_IOCTL]) -m4trace:configure.ac:998: -1- m4_pattern_allow([^FIONREAD_IN_SYS_IOCTL$]) -m4trace:configure.ac:1000: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1964: BASH_CHECK_WCONTINUED is expanded from... -configure.ac:1000: the top level]) -m4trace:configure.ac:1000: -1- AC_DEFINE_TRACE_LITERAL([WCONTINUED_BROKEN]) -m4trace:configure.ac:1000: -1- m4_pattern_allow([^WCONTINUED_BROKEN$]) -m4trace:configure.ac:1003: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1526: BASH_CHECK_SPEED_T is expanded from... -configure.ac:1003: the top level]) -m4trace:configure.ac:1003: -1- AC_DEFINE_TRACE_LITERAL([SPEED_T_IN_SYS_TYPES]) -m4trace:configure.ac:1003: -1- m4_pattern_allow([^SPEED_T_IN_SYS_TYPES$]) -m4trace:configure.ac:1004: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPW_DECLS]) -m4trace:configure.ac:1004: -1- m4_pattern_allow([^HAVE_GETPW_DECLS$]) -m4trace:configure.ac:1005: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2765: AC_TRY_RUN is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1653: BASH_CHECK_RTSIGS is expanded from... -configure.ac:1005: the top level]) -m4trace:configure.ac:1005: -1- AC_DEFINE_TRACE_LITERAL([UNUSABLE_RT_SIGNALS]) -m4trace:configure.ac:1005: -1- m4_pattern_allow([^UNUSABLE_RT_SIGNALS$]) -m4trace:configure.ac:1006: -1- AC_SUBST([SIGLIST_O]) -m4trace:configure.ac:1006: -1- AC_SUBST_TRACE([SIGLIST_O]) -m4trace:configure.ac:1006: -1- m4_pattern_allow([^SIGLIST_O$]) -m4trace:configure.ac:1010: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1605: BASH_CHECK_KERNEL_RLIMIT is expanded from... -configure.ac:1010: the top level]) -m4trace:configure.ac:1010: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from... -../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from... -../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... -../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... -aclocal.m4:1605: BASH_CHECK_KERNEL_RLIMIT is expanded from... -configure.ac:1010: the top level]) -m4trace:configure.ac:1010: -1- AC_DEFINE_TRACE_LITERAL([RLIMIT_NEEDS_KERNEL]) -m4trace:configure.ac:1010: -1- m4_pattern_allow([^RLIMIT_NEEDS_KERNEL$]) -m4trace:configure.ac:1020: -1- AC_SUBST([TERMCAP_LIB]) -m4trace:configure.ac:1020: -1- AC_SUBST_TRACE([TERMCAP_LIB]) -m4trace:configure.ac:1020: -1- m4_pattern_allow([^TERMCAP_LIB$]) -m4trace:configure.ac:1021: -1- AC_SUBST([TERMCAP_DEP]) -m4trace:configure.ac:1021: -1- AC_SUBST_TRACE([TERMCAP_DEP]) -m4trace:configure.ac:1021: -1- m4_pattern_allow([^TERMCAP_DEP$]) -m4trace:configure.ac:1023: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) -m4trace:configure.ac:1023: -1- m4_pattern_allow([^HAVE_DEV_FD$]) -m4trace:configure.ac:1023: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) -m4trace:configure.ac:1023: -1- m4_pattern_allow([^DEV_FD_PREFIX$]) -m4trace:configure.ac:1023: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) -m4trace:configure.ac:1023: -1- m4_pattern_allow([^HAVE_DEV_FD$]) -m4trace:configure.ac:1023: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) -m4trace:configure.ac:1023: -1- m4_pattern_allow([^DEV_FD_PREFIX$]) -m4trace:configure.ac:1024: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_STDIN]) -m4trace:configure.ac:1024: -1- m4_pattern_allow([^HAVE_DEV_STDIN$]) -m4trace:configure.ac:1025: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_MAIL_DIRECTORY]) -m4trace:configure.ac:1025: -1- m4_pattern_allow([^DEFAULT_MAIL_DIRECTORY$]) -m4trace:configure.ac:1032: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL]) -m4trace:configure.ac:1032: -1- m4_pattern_allow([^JOB_CONTROL$]) -m4trace:configure.ac:1038: -1- AC_SUBST([JOBS_O]) -m4trace:configure.ac:1038: -1- AC_SUBST_TRACE([JOBS_O]) -m4trace:configure.ac:1038: -1- m4_pattern_allow([^JOBS_O$]) -m4trace:configure.ac:1051: -1- AC_DEFINE_TRACE_LITERAL([SVR4_2]) -m4trace:configure.ac:1051: -1- m4_pattern_allow([^SVR4_2$]) -m4trace:configure.ac:1052: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) -m4trace:configure.ac:1052: -1- m4_pattern_allow([^SVR4$]) -m4trace:configure.ac:1053: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) -m4trace:configure.ac:1053: -1- m4_pattern_allow([^SVR4$]) -m4trace:configure.ac:1054: -1- AC_DEFINE_TRACE_LITERAL([SVR5]) -m4trace:configure.ac:1054: -1- m4_pattern_allow([^SVR5$]) -m4trace:configure.ac:1073: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) -m4trace:configure.ac:1073: -1- m4_pattern_allow([^PGRP_PIPE$]) -m4trace:configure.ac:1121: -1- AC_SUBST([SHOBJ_CC]) -m4trace:configure.ac:1121: -1- AC_SUBST_TRACE([SHOBJ_CC]) -m4trace:configure.ac:1121: -1- m4_pattern_allow([^SHOBJ_CC$]) -m4trace:configure.ac:1122: -1- AC_SUBST([SHOBJ_CFLAGS]) -m4trace:configure.ac:1122: -1- AC_SUBST_TRACE([SHOBJ_CFLAGS]) -m4trace:configure.ac:1122: -1- m4_pattern_allow([^SHOBJ_CFLAGS$]) -m4trace:configure.ac:1123: -1- AC_SUBST([SHOBJ_LD]) -m4trace:configure.ac:1123: -1- AC_SUBST_TRACE([SHOBJ_LD]) -m4trace:configure.ac:1123: -1- m4_pattern_allow([^SHOBJ_LD$]) -m4trace:configure.ac:1124: -1- AC_SUBST([SHOBJ_LDFLAGS]) -m4trace:configure.ac:1124: -1- AC_SUBST_TRACE([SHOBJ_LDFLAGS]) -m4trace:configure.ac:1124: -1- m4_pattern_allow([^SHOBJ_LDFLAGS$]) -m4trace:configure.ac:1125: -1- AC_SUBST([SHOBJ_XLDFLAGS]) -m4trace:configure.ac:1125: -1- AC_SUBST_TRACE([SHOBJ_XLDFLAGS]) -m4trace:configure.ac:1125: -1- m4_pattern_allow([^SHOBJ_XLDFLAGS$]) -m4trace:configure.ac:1126: -1- AC_SUBST([SHOBJ_LIBS]) -m4trace:configure.ac:1126: -1- AC_SUBST_TRACE([SHOBJ_LIBS]) -m4trace:configure.ac:1126: -1- m4_pattern_allow([^SHOBJ_LIBS$]) -m4trace:configure.ac:1127: -1- AC_SUBST([SHOBJ_STATUS]) -m4trace:configure.ac:1127: -1- AC_SUBST_TRACE([SHOBJ_STATUS]) -m4trace:configure.ac:1127: -1- m4_pattern_allow([^SHOBJ_STATUS$]) -m4trace:configure.ac:1159: -1- AC_SUBST([PROFILE_FLAGS]) -m4trace:configure.ac:1159: -1- AC_SUBST_TRACE([PROFILE_FLAGS]) -m4trace:configure.ac:1159: -1- m4_pattern_allow([^PROFILE_FLAGS$]) -m4trace:configure.ac:1161: -1- AC_SUBST([incdir]) -m4trace:configure.ac:1161: -1- AC_SUBST_TRACE([incdir]) -m4trace:configure.ac:1161: -1- m4_pattern_allow([^incdir$]) -m4trace:configure.ac:1162: -1- AC_SUBST([BUILD_DIR]) -m4trace:configure.ac:1162: -1- AC_SUBST_TRACE([BUILD_DIR]) -m4trace:configure.ac:1162: -1- m4_pattern_allow([^BUILD_DIR$]) -m4trace:configure.ac:1165: -1- AC_SUBST([datarootdir]) -m4trace:configure.ac:1165: -1- AC_SUBST_TRACE([datarootdir]) -m4trace:configure.ac:1165: -1- m4_pattern_allow([^datarootdir$]) -m4trace:configure.ac:1166: -1- AC_SUBST([localedir]) -m4trace:configure.ac:1166: -1- AC_SUBST_TRACE([localedir]) -m4trace:configure.ac:1166: -1- m4_pattern_allow([^localedir$]) -m4trace:configure.ac:1168: -1- AC_SUBST([YACC]) -m4trace:configure.ac:1168: -1- AC_SUBST_TRACE([YACC]) -m4trace:configure.ac:1168: -1- m4_pattern_allow([^YACC$]) -m4trace:configure.ac:1169: -1- AC_SUBST([AR]) -m4trace:configure.ac:1169: -1- AC_SUBST_TRACE([AR]) -m4trace:configure.ac:1169: -1- m4_pattern_allow([^AR$]) -m4trace:configure.ac:1170: -1- AC_SUBST([ARFLAGS]) -m4trace:configure.ac:1170: -1- AC_SUBST_TRACE([ARFLAGS]) -m4trace:configure.ac:1170: -1- m4_pattern_allow([^ARFLAGS$]) -m4trace:configure.ac:1172: -1- AC_SUBST([BASHVERS]) -m4trace:configure.ac:1172: -1- AC_SUBST_TRACE([BASHVERS]) -m4trace:configure.ac:1172: -1- m4_pattern_allow([^BASHVERS$]) -m4trace:configure.ac:1173: -1- AC_SUBST([RELSTATUS]) -m4trace:configure.ac:1173: -1- AC_SUBST_TRACE([RELSTATUS]) -m4trace:configure.ac:1173: -1- m4_pattern_allow([^RELSTATUS$]) -m4trace:configure.ac:1174: -1- AC_SUBST([DEBUG]) -m4trace:configure.ac:1174: -1- AC_SUBST_TRACE([DEBUG]) -m4trace:configure.ac:1174: -1- m4_pattern_allow([^DEBUG$]) -m4trace:configure.ac:1175: -1- AC_SUBST([MALLOC_DEBUG]) -m4trace:configure.ac:1175: -1- AC_SUBST_TRACE([MALLOC_DEBUG]) -m4trace:configure.ac:1175: -1- m4_pattern_allow([^MALLOC_DEBUG$]) -m4trace:configure.ac:1177: -1- AC_SUBST([host_cpu]) -m4trace:configure.ac:1177: -1- AC_SUBST_TRACE([host_cpu]) -m4trace:configure.ac:1177: -1- m4_pattern_allow([^host_cpu$]) -m4trace:configure.ac:1178: -1- AC_SUBST([host_vendor]) -m4trace:configure.ac:1178: -1- AC_SUBST_TRACE([host_vendor]) -m4trace:configure.ac:1178: -1- m4_pattern_allow([^host_vendor$]) -m4trace:configure.ac:1179: -1- AC_SUBST([host_os]) -m4trace:configure.ac:1179: -1- AC_SUBST_TRACE([host_os]) -m4trace:configure.ac:1179: -1- m4_pattern_allow([^host_os$]) -m4trace:configure.ac:1181: -1- AC_SUBST([LOCAL_LIBS]) -m4trace:configure.ac:1181: -1- AC_SUBST_TRACE([LOCAL_LIBS]) -m4trace:configure.ac:1181: -1- m4_pattern_allow([^LOCAL_LIBS$]) -m4trace:configure.ac:1182: -1- AC_SUBST([LOCAL_CFLAGS]) -m4trace:configure.ac:1182: -1- AC_SUBST_TRACE([LOCAL_CFLAGS]) -m4trace:configure.ac:1182: -1- m4_pattern_allow([^LOCAL_CFLAGS$]) -m4trace:configure.ac:1183: -1- AC_SUBST([LOCAL_LDFLAGS]) -m4trace:configure.ac:1183: -1- AC_SUBST_TRACE([LOCAL_LDFLAGS]) -m4trace:configure.ac:1183: -1- m4_pattern_allow([^LOCAL_LDFLAGS$]) -m4trace:configure.ac:1184: -1- AC_SUBST([LOCAL_DEFS]) -m4trace:configure.ac:1184: -1- AC_SUBST_TRACE([LOCAL_DEFS]) -m4trace:configure.ac:1184: -1- m4_pattern_allow([^LOCAL_DEFS$]) -m4trace:configure.ac:1189: -1- 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]) -m4trace:configure.ac:1189: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. -You should run autoupdate.], []) -m4trace:configure.ac:1189: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:1189: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:1189: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([LTLIBOBJS]) -m4trace:configure.ac:1189: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([top_builddir]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([top_build_prefix]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([srcdir]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([abs_srcdir]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([top_srcdir]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([abs_top_srcdir]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([builddir]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([abs_builddir]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([abs_top_builddir]) -m4trace:configure.ac:1189: -1- AC_SUBST_TRACE([INSTALL]) diff --git a/builtins/-i b/builtins/-i deleted file mode 100644 index e69de29bb..000000000 diff --git a/builtins/ChangeLog b/builtins/ChangeLog deleted file mode 100644 index e69de29bb..000000000 diff --git a/builtins/psize-posix.c b/builtins/psize-posix.c deleted file mode 100644 index e5840e437..000000000 --- a/builtins/psize-posix.c +++ /dev/null @@ -1,36 +0,0 @@ -/* psize-posix - display the pipe size on a Posix system. */ - -/* Copyright 2008,2009 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 3 of the License, 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. If not, see . -*/ - -#include -#include -#include - -main(c, v) -int c; -char **v; -{ - char *p; - long l; - - p = v[1] ? v[1] : "/"; - l = pathconf (p, _PC_PIPE_BUF); - printf ("%ld\n", l); - exit(0); -} diff --git a/builtins/readsave b/builtins/readsave deleted file mode 100644 index 8c26c792c..000000000 --- a/builtins/readsave +++ /dev/null @@ -1,17 +0,0 @@ -#else - /* This code implements the `rest of the fields and their intervening - separators' portion of the Posix spec. The latest interpretation says - that the last non-IFS white space separator (and any adjacent IFS - white space) is removed. We repeatedly parse fields, stopping when the - last results in us hitting the end of INPUT_STRING. */ - savei = t = input_string; - while (*input_string) - { - /* This call updates INPUT_STRING. */ - t1 = get_word_from_string (&input_string, ifs_chars, &e); - if (*input_string) - t = input_string; - } - *t = '\0'; - input_string = savei; -#endif diff --git a/configure.mk b/configure.mk deleted file mode 100644 index d6ff428b4..000000000 --- a/configure.mk +++ /dev/null @@ -1,3 +0,0 @@ -# Make sure the first target in the makefile is the right one -configure: configure.ac aclocal.m4 config.h.in - autoconf diff --git a/cross-build/beos-sig.h b/cross-build/beos-sig.h deleted file mode 100644 index ea82f8579..000000000 --- a/cross-build/beos-sig.h +++ /dev/null @@ -1,37 +0,0 @@ -/* This file is used when cross compiling bash to run native on BeOS. */ - -#ifndef __GNUC__ -# error cross compiling requires gcc -#endif - -/* A translation list so we can be polite to our users. - Use gcc labelled initializers to set up the array. Note that - some entries might wind up being NULL. */ - -char *signal_names[NSIG + 3] = { - [0] "EXIT", - [SIGHUP] "SIGHUP", - [SIGINT] "SIGINT", - [SIGQUIT] "SIGQUIT", - [SIGILL] "SIGILL", - [SIGCHLD] "SIGCHLD", - [SIGABRT] "SIGABRT", - [SIGPIPE] "SIGPIPE", - [SIGFPE] "SIGFPE", - [SIGKILL] "SIGKILL", - [SIGSTOP] "SIGSTOP", - [SIGSEGV] "SIGSEGV", - [SIGCONT] "SIGCONT", - [SIGTSTP] "SIGTSTP", - [SIGALRM] "SIGALRM", - [SIGTERM] "SIGTERM", - [SIGTTIN] "SIGTTIN", - [SIGTTOU] "SIGTTOU", - [SIGUSR1] "SIGUSR1", - [SIGUSR2] "SIGUSR2", - [SIGWINCH] "SIGWINCH", - [SIGKILLTHR] "SIGKILLTHR", - [NSIG] "DEBUG", - [NSIG + 1] "ERR", - [NSIG + 2] (char *)0x0, -}; diff --git a/cross-build/win32sig.h b/cross-build/win32sig.h deleted file mode 100644 index 41e618232..000000000 --- a/cross-build/win32sig.h +++ /dev/null @@ -1,256 +0,0 @@ -/* This file is used when cross-compiling for the CYGWIN32 environment on - a Unix machine. It gets copied to signames.h in the build directory. */ -#include -#include - -#ifndef __GNUC__ -# error cross compiling requires gcc -#endif - -/* A translation list so we can be polite to our users. Use gcc - labelled initializers to set up the array. Note that some entries - might wind up being NULL. */ - -char *signal_names[NSIG + 3] = { - [0] "EXIT", - -#ifdef SIGLOST - [SIGLOST] "SIGLOST", -#endif - -#ifdef SIGMSG - [SIGMSG] "SIGMSG", -#endif - -#ifdef SIGDANGER - [SIGDANGER] "SIGDANGER", -#endif - -#ifdef SIGMIGRATE - [SIGMIGRATE] "SIGMIGRATE", -#endif - -#ifdef SIGPRE - [SIGPRE] "SIGPRE", -#endif - -#ifdef SIGVIRT - [SIGVIRT] "SIGVIRT", -#endif - -#ifdef SIGALRM1 - [SIGALRM1] "SIGALRM1", -#endif - -#ifdef SIGWAITING - [SIGWAITING] "SIGWAITING", -#endif - -#ifdef SIGGRANT - [SIGGRANT] "SIGGRANT", -#endif - -#ifdef SIGKAP - [SIGKAP] "SIGKAP", -#endif - -#ifdef SIGRETRACT - [SIGRETRACT] "SIGRETRACT", -#endif - -#ifdef SIGSOUND - [SIGSOUND] "SIGSOUND", -#endif - -#ifdef SIGSAK - [SIGSAK] "SIGSAK", -#endif - -#ifdef SIGLWP - [SIGLWP] "SIGLWP", -#endif - -#ifdef SIGFREEZE - [SIGFREEZE] "SIGFREEZE", -#endif - -#ifdef SIGTHAW - [SIGTHAW] "SIGTHAW", -#endif - -#ifdef SIGCANCEL - [SIGCANCEL] "SIGCANCEL", -#endif - -#ifdef SIGDIL - [SIGDIL] "SIGDIL", -#endif - -#ifdef SIGCLD -#ifndef SIGCHLD - [SIGCLD] "SIGCLD", -#else -#if SIGCHLD != SIGCLD - [SIGCLD] "SIGCLD", -#endif -#endif -#endif - -#ifdef SIGPWR - [SIGPWR] "SIGPWR", -#endif - -#ifdef SIGPOLL -#ifndef SIGIO - [SIGPOLL] "SIGPOLL", -#else -#if SIGIO != SIGPOLL - [SIGPOLL] "SIGPOLL", -#endif -#endif -#endif - -#ifdef SIGWINDOW - [SIGWINDOW] "SIGWINDOW", -#endif - -#ifdef SIGHUP - [SIGHUP] "SIGHUP", -#endif - -#ifdef SIGINT - [SIGINT] "SIGINT", -#endif - -#ifdef SIGQUIT - [SIGQUIT] "SIGQUIT", -#endif - -#ifdef SIGILL - [SIGILL] "SIGILL", -#endif - -#ifdef SIGTRAP - [SIGTRAP] "SIGTRAP", -#endif - -#ifdef SIGIOT -#ifndef SIGABRT - [SIGIOT] "SIGIOT", -#else -#if SIGABRT != SIGIOT - [SIGIOT] "SIGIOT", -#endif -#endif -#endif - -#ifdef SIGABRT - [SIGABRT] "SIGABRT", -#endif - -#ifdef SIGEMT - [SIGEMT] "SIGEMT", -#endif - -#ifdef SIGFPE - [SIGFPE] "SIGFPE", -#endif - -#ifdef SIGKILL - [SIGKILL] "SIGKILL", -#endif - -#ifdef SIGBUS - [SIGBUS] "SIGBUS", -#endif - -#ifdef SIGSEGV - [SIGSEGV] "SIGSEGV", -#endif - -#ifdef SIGSYS - [SIGSYS] "SIGSYS", -#endif - -#ifdef SIGPIPE - [SIGPIPE] "SIGPIPE", -#endif - -#ifdef SIGALRM - [SIGALRM] "SIGALRM", -#endif - -#ifdef SIGTERM - [SIGTERM] "SIGTERM", -#endif - -#ifdef SIGURG - [SIGURG] "SIGURG", -#endif - -#ifdef SIGSTOP - [SIGSTOP] "SIGSTOP", -#endif - -#ifdef SIGTSTP - [SIGTSTP] "SIGTSTP", -#endif - -#ifdef SIGCONT - [SIGCONT] "SIGCONT", -#endif - -#ifdef SIGCHLD - [SIGCHLD] "SIGCHLD", -#endif - -#ifdef SIGTTIN - [SIGTTIN] "SIGTTIN", -#endif - -#ifdef SIGTTOU - [SIGTTOU] "SIGTTOU", -#endif - -#ifdef SIGIO - [SIGIO] "SIGIO", -#endif - -#ifdef SIGXCPU - [SIGXCPU] "SIGXCPU", -#endif - -#ifdef SIGXFSZ - [SIGXFSZ] "SIGXFSZ", -#endif - -#ifdef SIGVTALRM - [SIGVTALRM] "SIGVTALRM", -#endif - -#ifdef SIGPROF - [SIGPROF] "SIGPROF", -#endif - -#ifdef SIGWINCH - [SIGWINCH] "SIGWINCH", -#endif - -#ifdef SIGINFO - [SIGINFO] "SIGINFO", -#endif - -#ifdef SIGUSR1 - [SIGUSR1] "SIGUSR1", -#endif - -#ifdef SIGUSR2 - [SIGUSR2] "SIGUSR2", -#endif - - [NSIG] "DEBUG", - - [NSIG + 1] "ERR", - - [NSIG + 2] (char *)0x0 -}; diff --git a/examples/complete/complete-tests b/examples/complete/complete-tests deleted file mode 100644 index fa6a6f418..000000000 --- a/examples/complete/complete-tests +++ /dev/null @@ -1,68 +0,0 @@ -# Chet Ramey -# -# Copyright 2002 Chester Ramey -# -# This program 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. -# -# TThis program 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 this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# from zsh, just for testing -complete -A stopped -P '%' bg -complete -j -P '%' fg jobs disown -# this is wrong at this point -complete -j -P '%' -W '$(ps -x | tail +2 | cut -c1-5)' wait -complete -c type -complete -a unalias -complete -v getopts read unset -complete -v -S '=' declare export local readonly typeset -complete -f -- . source -complete -A shopt shopt -complete -e printenv - -complete -A helptopic help - -complete -c nohup exec nice eval -complete -c -k time - -complete -A signal trap kill - -complete -f chown ln more cat -complete -d mkdir rmdir - -complete -f -X '!*.+(gz|tgz)' gunzip gzcat zcat zmore -complete -f -X '!*.Z' uncompress zmore zcat -complete -f gzip - -complete -d cd pushd popd - -complete -A hostname rsh telnet rlogin ftp - -complete -u su -complete -W '"${GROUPS[@]}"' newgrp -complete -g groupdel groupmod - -complete -f -X '!*.+(ps|PS)' gs gv ghostview -complete -f -X '!*.dvi' dvips xdvi -complete -f -X '!*.pdf' acroread - -complete -f -X '!*.texi*' makeinfo texi2dvi texi2html - -complete -c gdb make - -complete -p gs -complete -p - -complete -r xdvi -complete -r notthere -complete -r -complete diff --git a/examples/copyright b/examples/copyright deleted file mode 100644 index 089086461..000000000 --- a/examples/copyright +++ /dev/null @@ -1,18 +0,0 @@ -# -# Chet Ramey -# -# Copyright 2011 Chester Ramey -# -# This program 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. -# -# TThis program 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 this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. diff --git a/examples/loadables/TODO b/examples/loadables/TODO deleted file mode 100644 index b498bdbc9..000000000 --- a/examples/loadables/TODO +++ /dev/null @@ -1,4 +0,0 @@ -cmp -wc -mkfifo -paste diff --git a/examples/loadables/bsdos.glue.c b/examples/loadables/bsdos.glue.c deleted file mode 100644 index 9df731b75..000000000 --- a/examples/loadables/bsdos.glue.c +++ /dev/null @@ -1,191 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "bashansi.h" -#include "shell.h" -#include "builtins.h" -#include "stdc.h" -#include "common.h" -#include "bashgetopt.h" - -char *this_command_name = (char *)NULL; - -void -builtin_error (const char *format, ...) -{ - va_list args; - char *name; - - name = get_name_for_error (); - fprintf (stderr, "%s: ", name); - - if (this_command_name && *this_command_name) - fprintf (stderr, "%s: ", this_command_name); - - va_start (args, format); - - vfprintf (stderr, format, args); - va_end (args); - fprintf (stderr, "\n"); -} - -int -no_options(list) -WORD_LIST *list; -{ - reset_internal_getopt (); - if (internal_getopt (list, "") != -1) - { - builtin_usage (); - return (1); - } - return (0); -} - -int -legal_number (string, result) - char *string; - long *result; -{ - long value; - char *ep; - - if (result) - *result = 0; - - value = strtol (string, &ep, 10); - - /* If *string is not '\0' but *ep is '\0' on return, the entire string - is valid. */ - if (string && *string && *ep == '\0') - { - if (result) - *result = value; - /* The SunOS4 implementation of strtol() will happily ignore - overflow conditions, so this cannot do overflow correctly - on those systems. */ - return 1; - } - - return (0); -} - -/* Return the number of elements in LIST, a generic list. */ -int -list_length (list) - GENERIC_LIST *list; -{ - register int i; - - for (i = 0; list; list = list->next, i++); - return (i); -} - -GENERIC_LIST * -reverse_list (list) - GENERIC_LIST *list; -{ - register GENERIC_LIST *next, *prev; - - for (prev = (GENERIC_LIST *)NULL; list; ) - { - next = list->next; - list->next = prev; - prev = list; - list = next; - } - return (prev); -} - -WORD_DESC * -make_bare_word (string) - char *string; -{ - WORD_DESC *temp; - - temp = (WORD_DESC *)xmalloc (sizeof (WORD_DESC)); - if (*string) - temp->word = savestring (string); - else - { - temp->word = xmalloc (1); - temp->word[0] = '\0'; - } - - temp->flags = 0; - return (temp); -} -WORD_LIST * -make_word_list (word, link) - WORD_DESC *word; - WORD_LIST *link; -{ - WORD_LIST *temp; - - temp = (WORD_LIST *)xmalloc (sizeof (WORD_LIST)); - temp->word = word; - temp->next = link; - return (temp); -} - -void -builtin_usage() -{ - if (this_command_name && *this_command_name) - fprintf (stderr, "%s: usage: %s args\n", this_command_name, this_command_name); - fflush (stderr); -} - -char * -xmalloc(s) - size_t s; -{ - return (malloc (s)); -} - -WORD_LIST * -argv_to_word_list (array, copy, starting_index) - char **array; - int copy, starting_index; -{ - WORD_LIST *list; - WORD_DESC *w; - int i, count; - - if (array == 0 || array[0] == 0) - return (WORD_LIST *)NULL; - - for (count = 0; array[count]; count++) - ; - - for (i = starting_index, list = (WORD_LIST *)NULL; i < count; i++) - { - w = make_bare_word (copy ? "" : array[i]); - if (copy) - { - free (w->word); - w->word = array[i]; - } - list = make_word_list (w, list); - } - return (REVERSE_LIST(list, WORD_LIST *)); -} - -/* Convert a WORD_LIST into a C-style argv. Return the number of elements - in the list in *IP, if IP is non-null. A convenience function for - loadable builtins; also used by `test'. */ -char ** -make_builtin_argv (list, ip) - WORD_LIST *list; - int *ip; -{ - char **argv; - - argv = strvec_from_word_list (list, 0, 1, ip); - argv[0] = this_command_name; - return argv; -} - diff --git a/examples/loadables/copyright-fullcomment b/examples/loadables/copyright-fullcomment deleted file mode 100644 index 3154216fc..000000000 --- a/examples/loadables/copyright-fullcomment +++ /dev/null @@ -1,17 +0,0 @@ -/* - Copyright (C) 1999-2009 Free Software Foundation, Inc. - - This file is part of GNU Bash. - 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 3 of the License, 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. If not, see . -*/ diff --git a/examples/loadables/pushd.def b/examples/loadables/pushd.def deleted file mode 100644 index 87300dcad..000000000 --- a/examples/loadables/pushd.def +++ /dev/null @@ -1,611 +0,0 @@ -This file is pushd.def, from which is created pushd.c. It implements the -builtins "pushd", "popd", and "dirs" in Bash. - -Copyright (C) 1987, 1989, 1991 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. - -$PRODUCES pushd.c - -$BUILTIN pushd -$FUNCTION pushd_builtin -$DEPENDS_ON PUSHD_AND_POPD -$SHORT_DOC pushd [dir | +N | -N] [-n] -Adds a directory to the top of the directory stack, or rotates -the stack, making the new top of the stack the current working -directory. With no arguments, exchanges the top two directories. - -+N Rotates the stack so that the Nth directory (counting - from the left of the list shown by `dirs', starting with - zero) is at the top. - --N Rotates the stack so that the Nth directory (counting - from the right of the list shown by `dirs', starting with - zero) is at the top. - --n suppress the normal change of directory when adding directories - to the stack, so only the stack is manipulated. - -dir adds DIR to the directory stack at the top, making it the - new current working directory. - -You can see the directory stack with the `dirs' command. -$END - -$BUILTIN popd -$FUNCTION popd_builtin -$DEPENDS_ON PUSHD_AND_POPD -$SHORT_DOC popd [+N | -N] [-n] -Removes entries from the directory stack. With no arguments, -removes the top directory from the stack, and cd's to the new -top directory. - -+N removes the Nth entry counting from the left of the list - shown by `dirs', starting with zero. For example: `popd +0' - removes the first directory, `popd +1' the second. - --N removes the Nth entry counting from the right of the list - shown by `dirs', starting with zero. For example: `popd -0' - removes the last directory, `popd -1' the next to last. - --n suppress the normal change of directory when removing directories - from the stack, so only the stack is manipulated. - -You can see the directory stack with the `dirs' command. -$END - -$BUILTIN dirs -$FUNCTION dirs_builtin -$DEPENDS_ON PUSHD_AND_POPD -$SHORT_DOC dirs [-clpv] [+N] [-N] -Display the list of currently remembered directories. Directories -find their way onto the list with the `pushd' command; you can get -back up through the list with the `popd' command. - -The -l flag specifies that `dirs' should not print shorthand versions -of directories which are relative to your home directory. This means -that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag -causes `dirs' to print the directory stack with one entry per line, -prepending the directory name with its position in the stack. The -p -flag does the same thing, but the stack position is not prepended. -The -c flag clears the directory stack by deleting all of the elements. - -+N displays the Nth entry counting from the left of the list shown by - dirs when invoked without options, starting with zero. - --N displays the Nth entry counting from the right of the list shown by - dirs when invoked without options, starting with zero. -$END - -#include - -#if defined (PUSHD_AND_POPD) -#include -#include - -#if defined (HAVE_UNISTD_H) -# include -#endif - -#include "../bashansi.h" - -#include - -#include - -#include "../shell.h" -#include "../maxpath.h" -#include "common.h" -#include "builtext.h" - -#if !defined (errno) -extern int errno; -#endif /* !errno */ - -static char *m_badarg = "%s: bad argument"; - -/* The list of remembered directories. */ -static char **pushd_directory_list = (char **)NULL; - -/* Number of existing slots in this list. */ -static int directory_list_size; - -/* Offset to the end of the list. */ -static int directory_list_offset; - -static void pushd_error (); -static void clear_directory_stack (); -static int cd_to_string (); -static int change_to_temp (); -static int get_dirstack_index (); -static void add_dirstack_element (); - -#define NOCD 0x01 -#define ROTATE 0x02 -#define LONGFORM 0x04 -#define CLEARSTAK 0x08 - -int -pushd_builtin (list) - WORD_LIST *list; -{ - char *temp, *current_directory, *top; - int j, flags; - long num; - char direction; - - /* If there is no argument list then switch current and - top of list. */ - if (list == 0) - { - if (directory_list_offset == 0) - { - builtin_error ("no other directory"); - return (EXECUTION_FAILURE); - } - - current_directory = get_working_directory ("pushd"); - if (current_directory == 0) - return (EXECUTION_FAILURE); - - j = directory_list_offset - 1; - temp = pushd_directory_list[j]; - pushd_directory_list[j] = current_directory; - j = change_to_temp (temp); - free (temp); - return j; - } - - for (flags = 0; list; list = list->next) - { - if (ISOPTION (list->word->word, 'n')) - { - flags |= NOCD; - } - else if (ISOPTION (list->word->word, '-')) - { - list = list->next; - break; - } - else if (list->word->word[0] == '-' && list->word->word[1] == '\0') - /* Let `pushd -' work like it used to. */ - break; - else if (((direction = list->word->word[0]) == '+') || direction == '-') - { - if (legal_number (list->word->word + 1, &num) == 0) - { - builtin_error (m_badarg, list->word->word); - builtin_usage (); - return (EXECUTION_FAILURE); - } - - if (direction == '-') - num = directory_list_offset - num; - - if (num > directory_list_offset || num < 0) - { - pushd_error (directory_list_offset, list->word->word); - return (EXECUTION_FAILURE); - } - flags |= ROTATE; - } - else if (*list->word->word == '-') - { - bad_option (list->word->word); - builtin_usage (); - return (EXECUTION_FAILURE); - } - else - break; - } - - if (flags & ROTATE) - { - /* Rotate the stack num times. Remember, the current - directory acts like it is part of the stack. */ - temp = get_working_directory ("pushd"); - - if (num == 0) - { - j = ((flags & NOCD) == 0) ? change_to_temp (temp) : EXECUTION_SUCCESS; - free (temp); - return j; - } - - do - { - top = pushd_directory_list[directory_list_offset - 1]; - - for (j = directory_list_offset - 2; j > -1; j--) - pushd_directory_list[j + 1] = pushd_directory_list[j]; - - pushd_directory_list[j + 1] = temp; - - temp = top; - num--; - } - while (num); - - j = ((flags & NOCD) == 0) ? change_to_temp (temp) : EXECUTION_SUCCESS; - free (temp); - return j; - } - - if (list == 0) - return (EXECUTION_SUCCESS); - - /* Change to the directory in list->word->word. Save the current - directory on the top of the stack. */ - current_directory = get_working_directory ("pushd"); - if (current_directory == 0) - return (EXECUTION_FAILURE); - - j = ((flags & NOCD) == 0) ? cd_builtin (list) : EXECUTION_SUCCESS; - if (j == EXECUTION_SUCCESS) - { - add_dirstack_element ((flags & NOCD) ? savestring (list->word->word) : current_directory); - dirs_builtin ((WORD_LIST *)NULL); - if (flags & NOCD) - free (current_directory); - return (EXECUTION_SUCCESS); - } - else - { - free (current_directory); - return (EXECUTION_FAILURE); - } -} - -/* Pop the directory stack, and then change to the new top of the stack. - If LIST is non-null it should consist of a word +N or -N, which says - what element to delete from the stack. The default is the top one. */ -int -popd_builtin (list) - WORD_LIST *list; -{ - register int i; - long which; - int flags; - char direction; - char *which_word; - - which_word = (char *)NULL; - for (flags = 0, which = 0L, direction = '+'; list; list = list->next) - { - if (ISOPTION (list->word->word, 'n')) - { - flags |= NOCD; - } - else if (ISOPTION (list->word->word, '-')) - { - list = list->next; - break; - } - else if (((direction = list->word->word[0]) == '+') || direction == '-') - { - if (legal_number (list->word->word + 1, &which) == 0) - { - builtin_error (m_badarg, list->word->word); - builtin_usage (); - return (EXECUTION_FAILURE); - } - which_word = list->word->word; - } - else if (*list->word->word == '-') - { - bad_option (list->word->word); - builtin_usage (); - return (EXECUTION_FAILURE); - } - else - break; - } - - if (which > directory_list_offset || (directory_list_offset == 0 && which == 0)) - { - pushd_error (directory_list_offset, which_word ? which_word : ""); - return (EXECUTION_FAILURE); - } - - /* Handle case of no specification, or top of stack specification. */ - if ((direction == '+' && which == 0) || - (direction == '-' && which == directory_list_offset)) - { - i = ((flags & NOCD) == 0) ? cd_to_string (pushd_directory_list[directory_list_offset - 1]) - : EXECUTION_SUCCESS; - if (i != EXECUTION_SUCCESS) - return (i); - free (pushd_directory_list[--directory_list_offset]); - } - else - { - /* Since an offset other than the top directory was specified, - remove that directory from the list and shift the remainder - of the list into place. */ - i = (direction == '+') ? directory_list_offset - which : which; - free (pushd_directory_list[i]); - directory_list_offset--; - - /* Shift the remainder of the list into place. */ - for (; i < directory_list_offset; i++) - pushd_directory_list[i] = pushd_directory_list[i + 1]; - } - - dirs_builtin ((WORD_LIST *)NULL); - return (EXECUTION_SUCCESS); -} - -/* Print the current list of directories on the directory stack. */ -int -dirs_builtin (list) - WORD_LIST *list; -{ - int flags, desired_index, index_flag, vflag; - long i; - char *temp, *w; - - for (flags = vflag = index_flag = 0, desired_index = -1, w = ""; list; list = list->next) - { - if (ISOPTION (list->word->word, 'l')) - { - flags |= LONGFORM; - } - else if (ISOPTION (list->word->word, 'c')) - { - flags |= CLEARSTAK; - } - else if (ISOPTION (list->word->word, 'v')) - { - vflag |= 2; - } - else if (ISOPTION (list->word->word, 'p')) - { - vflag |= 1; - } - else if (ISOPTION (list->word->word, '-')) - { - list = list->next; - break; - } - else if (*list->word->word == '+' || *list->word->word == '-') - { - int sign; - if (legal_number (w = list->word->word + 1, &i) == 0) - { - builtin_error (m_badarg, list->word->word); - builtin_usage (); - return (EXECUTION_FAILURE); - } - sign = (*list->word->word == '+') ? 1 : -1; - desired_index = get_dirstack_index (i, sign, &index_flag); - } - else - { - bad_option (list->word->word); - builtin_usage (); - return (EXECUTION_FAILURE); - } - } - - if (flags & CLEARSTAK) - { - clear_directory_stack (); - return (EXECUTION_SUCCESS); - } - - if (index_flag && (desired_index < 0 || desired_index > directory_list_offset)) - { - pushd_error (directory_list_offset, w); - return (EXECUTION_FAILURE); - } - -#define DIRSTACK_FORMAT(temp) \ - (flags & LONGFORM) ? temp : polite_directory_format (temp) - - /* The first directory printed is always the current working directory. */ - if (index_flag == 0 || (index_flag == 1 && desired_index == 0)) - { - temp = get_working_directory ("dirs"); - if (temp == 0) - temp = savestring (""); - if (vflag & 2) - printf ("%2d %s", 0, DIRSTACK_FORMAT (temp)); - else - printf ("%s", DIRSTACK_FORMAT (temp)); - free (temp); - if (index_flag) - { - putchar ('\n'); - return EXECUTION_SUCCESS; - } - } - -#define DIRSTACK_ENTRY(i) \ - (flags & LONGFORM) ? pushd_directory_list[i] \ - : polite_directory_format (pushd_directory_list[i]) - - /* Now print the requested directory stack entries. */ - if (index_flag) - { - if (vflag & 2) - printf ("%2d %s", directory_list_offset - desired_index, - DIRSTACK_ENTRY (desired_index)); - else - printf ("%s", DIRSTACK_ENTRY (desired_index)); - } - else - for (i = directory_list_offset - 1; i >= 0; i--) - if (vflag >= 2) - printf ("\n%2d %s", directory_list_offset - (int)i, DIRSTACK_ENTRY (i)); - else - printf ("%s%s", (vflag & 1) ? "\n" : " ", DIRSTACK_ENTRY (i)); - - putchar ('\n'); - fflush (stdout); - return (EXECUTION_SUCCESS); -} - -static void -pushd_error (offset, arg) - int offset; - char *arg; -{ - if (offset == 0) - builtin_error ("directory stack empty"); - else if (arg) - builtin_error ("%s: bad directory stack index", arg); - else - builtin_error ("bad directory stack index"); -} - -static void -clear_directory_stack () -{ - register int i; - - for (i = 0; i < directory_list_offset; i++) - free (pushd_directory_list[i]); - directory_list_offset = 0; -} - -/* Switch to the directory in NAME. This uses the cd_builtin to do the work, - so if the result is EXECUTION_FAILURE then an error message has already - been printed. */ -static int -cd_to_string (name) - char *name; -{ - WORD_LIST *tlist; - int result; - - tlist = make_word_list (make_word (name), NULL); - result = cd_builtin (tlist); - dispose_words (tlist); - return (result); -} - -static int -change_to_temp (temp) - char *temp; -{ - int tt; - - tt = temp ? cd_to_string (temp) : EXECUTION_FAILURE; - - if (tt == EXECUTION_SUCCESS) - dirs_builtin ((WORD_LIST *)NULL); - - return (tt); -} - -static void -add_dirstack_element (dir) - char *dir; -{ - int j; - - if (directory_list_offset == directory_list_size) - { - j = (directory_list_size += 10) * sizeof (char *); - pushd_directory_list = (char **)xrealloc (pushd_directory_list, j); - } - pushd_directory_list[directory_list_offset++] = dir; -} - -static int -get_dirstack_index (ind, sign, indexp) - int ind, sign, *indexp; -{ - if (indexp) - *indexp = sign > 0 ? 1 : 2; - - /* dirs +0 prints the current working directory. */ - /* dirs -0 prints last element in directory stack */ - if (ind == 0 && sign > 0) - return 0; - else if (ind == directory_list_offset) - { - if (indexp) - *indexp = sign > 0 ? 2 : 1; - return 0; - } - else - return (sign > 0 ? directory_list_offset - ind : ind); -} - -char * -get_dirstack_element (ind, sign) - int ind, sign; -{ - int i; - - i = get_dirstack_index (ind, sign, (int *)NULL); - return (i < 0 || i > directory_list_offset) ? (char *)NULL - : pushd_directory_list[i]; -} - -void -set_dirstack_element (ind, sign, value) - int ind, sign; - char *value; -{ - int i; - - i = get_dirstack_index (ind, sign, (int *)NULL); - if (ind == 0 || i < 0 || i > directory_list_offset) - return; - free (pushd_directory_list[i]); - pushd_directory_list[i] = savestring (value); -} - -WORD_LIST * -get_directory_stack () -{ - register int i; - WORD_LIST *ret; - char *d, *t; - - for (ret = (WORD_LIST *)NULL, i = 0; i < directory_list_offset; i++) - { - d = polite_directory_format (pushd_directory_list[i]); - ret = make_word_list (make_word (d), ret); - } - /* Now the current directory. */ - d = get_working_directory ("dirstack"); - i = 0; /* sentinel to decide whether or not to free d */ - if (d == 0) - d = "."; - else - { - t = polite_directory_format (d); - /* polite_directory_format sometimes returns its argument unchanged. - If it does not, we can free d right away. If it does, we need to - mark d to be deleted later. */ - if (t != d) - { - free (d); - d = t; - } - else /* t == d, so d is what we want */ - i = 1; - } - ret = make_word_list (make_word (d), ret); - if (i) - free (d); - return ret; /* was (REVERSE_LIST (ret, (WORD_LIST *)); */ -} -#endif /* PUSHD_AND_POPD */ diff --git a/examples/loadables/pushd.inc b/examples/loadables/pushd.inc deleted file mode 100644 index 768dae1aa..000000000 --- a/examples/loadables/pushd.inc +++ /dev/null @@ -1,90 +0,0 @@ -static char *dirs_doc[] = { - "Display the list of currently remembered directories. Directories", - "find their way onto the list with the `pushd' command; you can get", - "back up through the list with the `popd' command.", - "", - "The -l flag specifies that `dirs' should not print shorthand versions", - "of directories which are relative to your home directory. This means", - "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag", - "causes `dirs' to print the directory stack with one entry per line,", - "prepending the directory name with its position in the stack. The -p", - "flag does the same thing, but the stack position is not prepended.", - "The -c flag clears the directory stack by deleting all of the elements.", - "", - "+N displays the Nth entry counting from the left of the list shown by", - " dirs when invoked without options, starting with zero.", - "", - "-N displays the Nth entry counting from the right of the list shown by", - " dirs when invoked without options, starting with zero.", - (char *)NULL -}; - -static char *pushd_doc[] = { - "Adds a directory to the top of the directory stack, or rotates", - "the stack, making the new top of the stack the current working", - "directory. With no arguments, exchanges the top two directories.", - "", - "+N Rotates the stack so that the Nth directory (counting", - " from the left of the list shown by `dirs', starting with" - " zero) is at the top.", - "", - "-N Rotates the stack so that the Nth directory (counting", - " from the right of the list shown by `dirs', starting with" - " zero) is at the top.", - "", - "-n suppress the normal change of directory when adding directories", - " to the stack, so only the stack is manipulated.", - "", - "dir adds DIR to the directory stack at the top, making it the", - " new current working directory.", - "", - "You can see the directory stack with the `dirs' command.", - (char *)NULL -}; - -static char *popd_doc[] = { - "Removes entries from the directory stack. With no arguments,", - "removes the top directory from the stack, and cd's to the new", - "top directory.", - "", - "+N removes the Nth entry counting from the left of the list", - " shown by `dirs', starting with zero. For example: `popd +0'", - " removes the first directory, `popd +1' the second.", - "", - "-N removes the Nth entry counting from the right of the list", - " shown by `dirs', starting with zero. For example: `popd -0'", - " removes the last directory, `popd -1' the next to last.", - "", - "-n suppress the normal change of directory when removing directories", - " from the stack, so only the stack is manipulated.", - "", - "You can see the directory stack with the `dirs' command.", - (char *)NULL -}; - -struct builtin pushd_struct = { - "pushd", - pushd_builtin, - BUILTIN_ENABLED, - pushd_doc, - "pushd [+N | -N] [-n] [dir]", - 0 -}; - -struct builtin popd_struct = { - "popd", - popd_builtin, - BUILTIN_ENABLED, - popd_doc, - "popd [+N | -N] [-n]", - 0 -}; - -struct builtin dirs_struct = { - "dirs", - dirs_builtin, - BUILTIN_ENABLED, - dirs_doc, - "dirs [-clpv] [+N] [-N]", - 0 -}; diff --git a/lib/doc-support/Makefile.in b/lib/doc-support/Makefile.in deleted file mode 100644 index 86007941a..000000000 --- a/lib/doc-support/Makefile.in +++ /dev/null @@ -1,53 +0,0 @@ -# simple makefile to create texindex -# -# Copyright (C) 1996-2005 Free Software Foundation, Inc. - -# This program 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 3 of the License, or -# (at your option) any later version. - -# This program 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 this program. If not, see . - -topdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = .:@srcdir@ -BUILD_DIR = @BUILD_DIR@ - -CC = @CC@ -RM = rm - -SHELL = @MAKE_SHELL@ - -DEFS = @DEFS@ -CFLAGS = @CFLAGS@ @LOCAL_CFLAGS@ -LDFLAGS = @LDFLAGS@ @LOCAL_LDFLAGS@ -CPPFLAGS = @CPPFLAGS@ - -INCLUDES = -I. -I../.. -I$(topdir) - -CCFLAGS = $(CFLAGS) $(DEFS) $(CPPFLAGS) ${INCLUDES} - -.c.o: - $(RM) -f $@ - $(CC) $(CCFLAGS) -c $< - -OBJECTS = texindex.o getopt.o getopt1.o -SOURCES = texindex.c getopt.c getopt1.c - -all: texindex - -texindex: $(OBJECTS) - $(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBS) - -clean: - $(RM) $(OBJECTS) texindex - -distclean mostlyclean realclean maintainer-clean: clean - $(RM) Makefile diff --git a/lib/doc-support/getopt.c b/lib/doc-support/getopt.c deleted file mode 100644 index 802f0e3d2..000000000 --- a/lib/doc-support/getopt.c +++ /dev/null @@ -1,731 +0,0 @@ -/* getopt.c - Getopt for GNU. */ - -/* NOTE: getopt is now part of the C library, so if you don't know what - "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu - before changing it! */ - -/* Copyright (C) 1987, 88, 89, 90, 91, 92, 1993, 2008,2009 Free Software Foundation, Inc. - - 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 3 of the License, 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. If not, see . -*/ - -/* NOTE!!! AIX requires this to be the first thing in the file. - Do not put ANYTHING before it! */ -#if !defined (__GNUC__) && defined (_AIX) - #pragma alloca -#endif - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifdef __GNUC__ -#define alloca __builtin_alloca -#else /* not __GNUC__ */ -#if defined (HAVE_ALLOCA_H) || (defined(sparc) && (defined(sun) || (!defined(USG) && !defined(SVR4) && !defined(__svr4__)))) -#include -#else -#ifndef _AIX -char *alloca (); -#endif -#endif /* alloca.h */ -#endif /* not __GNUC__ */ - -#if !__STDC__ && !defined(const) && IN_GCC -#define const -#endif - -/* This tells Alpha OSF/1 not to define a getopt prototype in . */ -#ifndef _NO_PROTO -#define _NO_PROTO -#endif - -#include - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#if defined (_LIBC) || !defined (__GNU_LIBRARY__) - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -#undef alloca -/* Don't include stdlib.h for non-GNU C libraries because some of them - contain conflicting prototypes for getopt. */ -#include -#else /* Not GNU C library. */ -#define __alloca alloca -#endif /* GNU C library. */ - -/* If GETOPT_COMPAT is defined, `+' as well as `--' can introduce a - long-named option. Because this is not POSIX.2 compliant, it is - being phased out. */ -/* #define GETOPT_COMPAT */ - -/* This version of `getopt' appears to the caller like standard Unix `getopt' - but it behaves differently for the user, since it allows the user - to intersperse the options with the other arguments. - - As `getopt' works, it permutes the elements of ARGV so that, - when it is done, all the options precede everything else. Thus - all application programs are extended to handle flexible argument order. - - Setting the environment variable POSIXLY_CORRECT disables permutation. - Then the behavior is completely standard. - - GNU application programs can use a third alternative mode in which - they can distinguish the relative order of options and other arguments. */ - -#include "getopt.h" - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -char *optarg = 0; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns EOF, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -/* XXX 1003.2 says this must be 1 before any call. */ -int optind = 0; - -/* The next char to be scanned in the option-element - in which the last option character we returned was found. - This allows us to pick up the scan where we left off. - - If this is zero, or a null string, it means resume the scan - by advancing to the next ARGV-element. */ - -static char *nextchar; - -/* Callers store zero here to inhibit the error message - for unrecognized options. */ - -int opterr = 1; - -/* Set to an option character which was unrecognized. - This must be initialized on some systems to avoid linking in the - system's own getopt implementation. */ - -int optopt = '?'; - -/* Describe how to deal with options that follow non-option ARGV-elements. - - If the caller did not specify anything, - the default is REQUIRE_ORDER if the environment variable - POSIXLY_CORRECT is defined, PERMUTE otherwise. - - REQUIRE_ORDER means don't recognize them as options; - stop option processing when the first non-option is seen. - This is what Unix does. - This mode of operation is selected by either setting the environment - variable POSIXLY_CORRECT, or using `+' as the first character - of the list of option characters. - - PERMUTE is the default. We permute the contents of ARGV as we scan, - so that eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written to - expect this. - - RETURN_IN_ORDER is an option available to programs that were written - to expect options and other ARGV-elements in any order and that care about - the ordering of the two. We describe each non-option ARGV-element - as if it were the argument of an option with character code 1. - Using `-' as the first character of the list of option characters - selects this mode of operation. - - The special argument `--' forces an end of option-scanning regardless - of the value of `ordering'. In the case of RETURN_IN_ORDER, only - `--' can cause `getopt' to return EOF with `optind' != ARGC. */ - -static enum -{ - REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER -} ordering; - -#ifdef __GNU_LIBRARY__ -/* We want to avoid inclusion of string.h with non-GNU libraries - because there are many ways it can cause trouble. - On some systems, it contains special magic macros that don't work - in GCC. */ -#include -#define my_index strchr -#define my_bcopy(src, dst, n) memcpy ((dst), (src), (n)) -#else - -/* Avoid depending on library functions or files - whose names are inconsistent. */ - -char *getenv (); - -static char * -my_index (str, chr) - const char *str; - int chr; -{ - while (*str) - { - if (*str == chr) - return (char *) str; - str++; - } - return 0; -} - -static void -my_bcopy (from, to, size) - const char *from; - char *to; - int size; -{ - int i; - for (i = 0; i < size; i++) - to[i] = from[i]; -} -#endif /* GNU C library. */ - -/* Handle permutation of arguments. */ - -/* Describe the part of ARGV that contains non-options that have - been skipped. `first_nonopt' is the index in ARGV of the first of them; - `last_nonopt' is the index after the last of them. */ - -static int first_nonopt; -static int last_nonopt; - -/* Exchange two adjacent subsequences of ARGV. - One subsequence is elements [first_nonopt,last_nonopt) - which contains all the non-options that have been skipped so far. - The other is elements [last_nonopt,optind), which contains all - the options processed since those non-options were skipped. - - `first_nonopt' and `last_nonopt' are relocated so that they describe - the new indices of the non-options in ARGV after they are moved. */ - -static void -exchange (argv) - char **argv; -{ - int nonopts_size = (last_nonopt - first_nonopt) * sizeof (char *); - char **temp = (char **) __alloca (nonopts_size); - - /* Interchange the two blocks of data in ARGV. */ - - my_bcopy ((char *) &argv[first_nonopt], (char *) temp, nonopts_size); - my_bcopy ((char *) &argv[last_nonopt], (char *) &argv[first_nonopt], - (optind - last_nonopt) * sizeof (char *)); - my_bcopy ((char *) temp, - (char *) &argv[first_nonopt + optind - last_nonopt], - nonopts_size); - - /* Update records for the slots the non-options now occupy. */ - - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; -} - -/* Scan elements of ARGV (whose length is ARGC) for option characters - given in OPTSTRING. - - If an element of ARGV starts with '-', and is not exactly "-" or "--", - then it is an option element. The characters of this element - (aside from the initial '-') are option characters. If `getopt' - is called repeatedly, it returns successively each of the option characters - from each of the option elements. - - If `getopt' finds another option character, it returns that character, - updating `optind' and `nextchar' so that the next call to `getopt' can - resume the scan with the following option character or ARGV-element. - - If there are no more option characters, `getopt' returns `EOF'. - Then `optind' is the index in ARGV of the first ARGV-element - that is not an option. (The ARGV-elements have been permuted - so that those that are not options now come last.) - - OPTSTRING is a string containing the legitimate option characters. - If an option character is seen that is not listed in OPTSTRING, - return '?' after printing an error message. If you set `opterr' to - zero, the error message is suppressed but we still return '?'. - - If a char in OPTSTRING is followed by a colon, that means it wants an arg, - so the following text in the same ARGV-element, or the text of the following - ARGV-element, is returned in `optarg'. Two colons mean an option that - wants an optional arg; if there is text in the current ARGV-element, - it is returned in `optarg', otherwise `optarg' is set to zero. - - If OPTSTRING starts with `-' or `+', it requests different methods of - handling the non-option ARGV-elements. - See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. - - Long-named options begin with `--' instead of `-'. - Their names may be abbreviated as long as the abbreviation is unique - or is an exact match for some defined option. If they have an - argument, it follows the option name in the same ARGV-element, separated - from the option name by a `=', or else the in next ARGV-element. - When `getopt' finds a long-named option, it returns 0 if that option's - `flag' field is nonzero, the value of the option's `val' field - if the `flag' field is zero. - - The elements of ARGV aren't really const, because we permute them. - But we pretend they're const in the prototype to be compatible - with other systems. - - LONGOPTS is a vector of `struct option' terminated by an - element containing a name which is zero. - - LONGIND returns the index in LONGOPT of the long-named option found. - It is only valid when a long-named option has been found by the most - recent call. - - If LONG_ONLY is nonzero, '-' as well as '--' can introduce - long-named options. */ - -int -_getopt_internal (argc, argv, optstring, longopts, longind, long_only) - int argc; - char *const *argv; - const char *optstring; - const struct option *longopts; - int *longind; - int long_only; -{ - int option_index; - - optarg = 0; - - /* Initialize the internal data when the first call is made. - Start processing options with ARGV-element 1 (since ARGV-element 0 - is the program name); the sequence of previously skipped - non-option ARGV-elements is empty. */ - - if (optind == 0) - { - first_nonopt = last_nonopt = optind = 1; - - nextchar = NULL; - - /* Determine how to handle the ordering of options and nonoptions. */ - - if (optstring[0] == '-') - { - ordering = RETURN_IN_ORDER; - ++optstring; - } - else if (optstring[0] == '+') - { - ordering = REQUIRE_ORDER; - ++optstring; - } - else if (getenv ("POSIXLY_CORRECT") != NULL) - ordering = REQUIRE_ORDER; - else - ordering = PERMUTE; - } - - if (nextchar == NULL || *nextchar == '\0') - { - if (ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (last_nonopt != optind) - first_nonopt = optind; - - /* Now skip any additional non-options - and extend the range of non-options previously skipped. */ - - while (optind < argc - && (argv[optind][0] != '-' || argv[optind][1] == '\0') -#ifdef GETOPT_COMPAT - && (longopts == NULL - || argv[optind][0] != '+' || argv[optind][1] == '\0') -#endif /* GETOPT_COMPAT */ - ) - optind++; - last_nonopt = optind; - } - - /* Special ARGV-element `--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ - - if (optind != argc && !strcmp (argv[optind], "--")) - { - optind++; - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - last_nonopt = argc; - - optind = argc; - } - - /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ - - if (optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (first_nonopt != last_nonopt) - optind = first_nonopt; - return EOF; - } - - /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ - - if ((argv[optind][0] != '-' || argv[optind][1] == '\0') -#ifdef GETOPT_COMPAT - && (longopts == NULL - || argv[optind][0] != '+' || argv[optind][1] == '\0') -#endif /* GETOPT_COMPAT */ - ) - { - if (ordering == REQUIRE_ORDER) - return EOF; - optarg = argv[optind++]; - return 1; - } - - /* We have found another option-ARGV-element. - Start decoding its characters. */ - - nextchar = (argv[optind] + 1 - + (longopts != NULL && argv[optind][1] == '-')); - } - - if (longopts != NULL - && ((argv[optind][0] == '-' - && (argv[optind][1] == '-' || long_only)) -#ifdef GETOPT_COMPAT - || argv[optind][0] == '+' -#endif /* GETOPT_COMPAT */ - )) - { - const struct option *p; - char *s = nextchar; - int exact = 0; - int ambig = 0; - const struct option *pfound = NULL; - int indfound; - - while (*s && *s != '=') - s++; - - /* Test all options for either exact match or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; - p++, option_index++) - if (!strncmp (p->name, nextchar, s - nextchar)) - { - if (s - nextchar == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second nonexact match found. */ - ambig = 1; - } - - if (ambig && !exact) - { - if (opterr) - fprintf (stderr, "%s: option `%s' is ambiguous\n", - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - return '?'; - } - - if (pfound != NULL) - { - option_index = indfound; - optind++; - if (*s) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = s + 1; - else - { - if (opterr) - { - if (argv[optind - 1][1] == '-') - /* --option */ - fprintf (stderr, - "%s: option `--%s' doesn't allow an argument\n", - argv[0], pfound->name); - else - /* +option or -option */ - fprintf (stderr, - "%s: option `%c%s' doesn't allow an argument\n", - argv[0], argv[optind - 1][0], pfound->name); - } - nextchar += strlen (nextchar); - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (opterr) - fprintf (stderr, "%s: option `%s' requires an argument\n", - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short - option, then it's an error. - Otherwise interpret it as a short option. */ - if (!long_only || argv[optind][1] == '-' -#ifdef GETOPT_COMPAT - || argv[optind][0] == '+' -#endif /* GETOPT_COMPAT */ - || my_index (optstring, *nextchar) == NULL) - { - if (opterr) - { - if (argv[optind][1] == '-') - /* --option */ - fprintf (stderr, "%s: unrecognized option `--%s'\n", - argv[0], nextchar); - else - /* +option or -option */ - fprintf (stderr, "%s: unrecognized option `%c%s'\n", - argv[0], argv[optind][0], nextchar); - } - nextchar = (char *) ""; - optind++; - return '?'; - } - } - - /* Look at and handle the next option-character. */ - - { - char c = *nextchar++; - char *temp = my_index (optstring, c); - - /* Increment `optind' when we start to process its last character. */ - if (*nextchar == '\0') - ++optind; - - if (temp == NULL || c == ':') - { - if (opterr) - { -#if 0 - if (c < 040 || c >= 0177) - fprintf (stderr, "%s: unrecognized option, character code 0%o\n", - argv[0], c); - else - fprintf (stderr, "%s: unrecognized option `-%c'\n", argv[0], c); -#else - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, "%s: illegal option -- %c\n", argv[0], c); -#endif - } - optopt = c; - return '?'; - } - if (temp[1] == ':') - { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*nextchar != '\0') - { - optarg = nextchar; - optind++; - } - else - optarg = 0; - nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (opterr) - { -#if 0 - fprintf (stderr, "%s: option `-%c' requires an argument\n", - argv[0], c); -#else - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, "%s: option requires an argument -- %c\n", - argv[0], c); -#endif - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - nextchar = NULL; - } - } - return c; - } -} - -int -getopt (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - return _getopt_internal (argc, argv, optstring, - (const struct option *) 0, - (int *) 0, - 0); -} - -#endif /* _LIBC or not __GNU_LIBRARY__. */ - -#ifdef TEST - -/* Compile with -DTEST to make an executable for use in testing - the above definition of `getopt'. */ - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - - c = getopt (argc, argv, "abc:d:0123456789"); - if (c == EOF) - break; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/lib/doc-support/getopt.h b/lib/doc-support/getopt.h deleted file mode 100644 index 5c0453378..000000000 --- a/lib/doc-support/getopt.h +++ /dev/null @@ -1,132 +0,0 @@ -/* getopt.h - public declarations for getopt. */ - -/* Copyright (C) 1989, 1990, 1991, 1992, 1993, 2008,2009 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 3 of the License, 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. If not, see . -*/ - -#ifndef _GETOPT_H -#define _GETOPT_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -extern char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns EOF, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -extern int optind; - -/* Callers store zero here to inhibit the error message `getopt' prints - for unrecognized options. */ - -extern int opterr; - -/* Set to an option character which was unrecognized. */ - -extern int optopt; - -/* Describe the long-named options requested by the application. - The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of `struct option' terminated by an element containing a name which is - zero. - - The field `has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. - - If the field `flag' is not NULL, it points to a variable that is set - to the value given in the field `val' when the option is found, but - left unchanged if the option is not found. - - To have a long-named option do something other than set an `int' to - a compiled-in constant, such as set a value from `optarg', set the - option's `flag' field to zero and its `val' field to a nonzero - value (the equivalent single-letter option character, if there is - one). For long options that have a zero `flag' field, `getopt' - returns the contents of the `val' field. */ - -struct option -{ -#if __STDC__ - const char *name; -#else - char *name; -#endif - /* has_arg can't be an enum because some compilers complain about - type mismatches in all the code that assumes it is an int. */ - int has_arg; - int *flag; - int val; -}; - -/* Names for the values of the `has_arg' field of `struct option'. */ - -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -#if __STDC__ -#if defined(__GNU_LIBRARY__) -/* Many other libraries have conflicting prototypes for getopt, with - differences in the consts, in stdlib.h. To avoid compilation - errors, only prototype getopt for the GNU C library. */ -extern int getopt (int argc, char *const *argv, const char *shortopts); -#else /* not __GNU_LIBRARY__ */ -extern int getopt (); -#endif /* not __GNU_LIBRARY__ */ -extern int getopt_long (int argc, char *const *argv, const char *shortopts, - const struct option *longopts, int *longind); -extern int getopt_long_only (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind); - -/* Internal only. Users should not call this directly. */ -extern int _getopt_internal (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind, - int long_only); -#else /* not __STDC__ */ -extern int getopt (); -extern int getopt_long (); -extern int getopt_long_only (); - -extern int _getopt_internal (); -#endif /* not __STDC__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* _GETOPT_H */ diff --git a/lib/doc-support/getopt1.c b/lib/doc-support/getopt1.c deleted file mode 100644 index f51e6c006..000000000 --- a/lib/doc-support/getopt1.c +++ /dev/null @@ -1,178 +0,0 @@ -/* getopt1.c - getopt_long and getopt_long_only entry points for GNU getopt. - -/* Copyright (C) 1987, 88, 89, 90, 91, 92, 1993, 2008,2009 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 3 of the License, 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. If not, see . -*/ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "getopt.h" - -#if !__STDC__ && !defined(const) && IN_GCC -#define const -#endif - -#include - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#if defined (_LIBC) || !defined (__GNU_LIBRARY__) - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -#include -#else -char *getenv (); -#endif - -#ifndef NULL -#define NULL 0 -#endif - -int -getopt_long (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 0); -} - -/* Like getopt_long, but '-' as well as '--' can indicate a long option. - If an option that starts with '-' (not '--') doesn't match a long option, - but does match a short option, it is parsed as a short option - instead. */ - -int -getopt_long_only (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 1); -} - - -#endif /* _LIBC or not __GNU_LIBRARY__. */ - -#ifdef TEST - -#include - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - int option_index = 0; - static struct option long_options[] = - { - {"add", 1, 0, 0}, - {"append", 0, 0, 0}, - {"delete", 1, 0, 0}, - {"verbose", 0, 0, 0}, - {"create", 0, 0, 0}, - {"file", 1, 0, 0}, - {0, 0, 0, 0} - }; - - c = getopt_long (argc, argv, "abc:d:0123456789", - long_options, &option_index); - if (c == EOF) - break; - - switch (c) - { - case 0: - printf ("option %s", long_options[option_index].name); - if (optarg) - printf (" with arg %s", optarg); - printf ("\n"); - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case 'd': - printf ("option d with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/lib/doc-support/texindex.c b/lib/doc-support/texindex.c deleted file mode 100644 index 646df5996..000000000 --- a/lib/doc-support/texindex.c +++ /dev/null @@ -1,1665 +0,0 @@ -/* Prepare TeX index dribble output into an actual index. - - Version 1.45 - - Copyright (C) 1987, 1991, 1992 Free Software Foundation, Inc. - - This program 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 3 of the License, or - (at your option) any later version. - - This program 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 this program. If not, see . -*/ - -#include -#include -#include -#include "getopt.h" -#include "bashansi.h" - -#if !defined (errno) -extern int errno; -#endif - -#if defined (HAVE_UNISTD_H) -# include -#else /* !HAVE_UNISTD_H */ -extern long lseek (); -#endif /* !HAVE_UNISTD_H */ - -extern char *mktemp (); - -#if !defined (HAVE_STRERROR) -extern int sys_nerr; -extern char *sys_errlist[]; -#endif - -#include - -#if defined (_AIX) || !defined (_POSIX_VERSION) -# include -#endif - -#include - -#define TI_NO_ERROR 0 -#define TI_FATAL_ERROR 1 - -#if !defined (SEEK_SET) -# define SEEK_SET 0 -# define SEEK_CUR 1 -# define SEEK_END 2 -#endif /* !SEEK_SET */ - -/* When sorting in core, this structure describes one line - and the position and length of its first keyfield. */ -struct lineinfo -{ - char *text; /* The actual text of the line. */ - union { - char *text; /* The start of the key (for textual comparison). */ - long number; /* The numeric value (for numeric comparison). */ - } key; - long keylen; /* Length of KEY field. */ -}; - -/* This structure describes a field to use as a sort key. */ -struct keyfield -{ - int startwords; /* Number of words to skip. */ - int startchars; /* Number of additional chars to skip. */ - int endwords; /* Number of words to ignore at end. */ - int endchars; /* Ditto for characters of last word. */ - char ignore_blanks; /* Non-zero means ignore spaces and tabs. */ - char fold_case; /* Non-zero means case doesn't matter. */ - char reverse; /* Non-zero means compare in reverse order. */ - char numeric; /* Non-zeros means field is ASCII numeric. */ - char positional; /* Sort according to file position. */ - char braced; /* Count balanced-braced groupings as fields. */ -}; - -/* Vector of keyfields to use. */ -struct keyfield keyfields[3]; - -/* Number of keyfields stored in that vector. */ -int num_keyfields = 3; - -/* Vector of input file names, terminated with a null pointer. */ -char **infiles; - -/* Vector of corresponding output file names, or NULL, meaning default it - (add an `s' to the end). */ -char **outfiles; - -/* Length of `infiles'. */ -int num_infiles; - -/* Pointer to the array of pointers to lines being sorted. */ -char **linearray; - -/* The allocated length of `linearray'. */ -long nlines; - -/* Directory to use for temporary files. On Unix, it ends with a slash. */ -char *tempdir; - -/* Start of filename to use for temporary files. */ -char *tempbase; - -/* Number of last temporary file. */ -int tempcount; - -/* Number of last temporary file already deleted. - Temporary files are deleted by `flush_tempfiles' in order of creation. */ -int last_deleted_tempcount; - -/* During in-core sort, this points to the base of the data block - which contains all the lines of data. */ -char *text_base; - -/* Additional command switches .*/ - -/* Nonzero means do not delete tempfiles -- for debugging. */ -int keep_tempfiles; - -/* The name this program was run with. */ -char *program_name; - -/* Forward declarations of functions in this file. */ - -void decode_command (); -void sort_in_core (); -void sort_offline (); -char **parsefile (); -char *find_field (); -char *find_pos (); -long find_value (); -char *find_braced_pos (); -char *find_braced_end (); -void writelines (); -int compare_field (); -int compare_full (); -long readline (); -int merge_files (); -int merge_direct (); -void pfatal_with_name (); -void fatal (); -void error (); -void *xmalloc (), *xrealloc (); -char *concat (); -char *maketempname (); -void flush_tempfiles (); -char *tempcopy (); - -#define MAX_IN_CORE_SORT 500000 - -void -main (argc, argv) - int argc; - char **argv; -{ - int i; - - tempcount = 0; - last_deleted_tempcount = 0; - program_name = argv[0]; - - /* Describe the kind of sorting to do. */ - /* The first keyfield uses the first braced field and folds case. */ - keyfields[0].braced = 1; - keyfields[0].fold_case = 1; - keyfields[0].endwords = -1; - keyfields[0].endchars = -1; - - /* The second keyfield uses the second braced field, numerically. */ - keyfields[1].braced = 1; - keyfields[1].numeric = 1; - keyfields[1].startwords = 1; - keyfields[1].endwords = -1; - keyfields[1].endchars = -1; - - /* The third keyfield (which is ignored while discarding duplicates) - compares the whole line. */ - keyfields[2].endwords = -1; - keyfields[2].endchars = -1; - - decode_command (argc, argv); - - tempbase = mktemp (concat ("txiXXXXXX", "", "")); - - /* Process input files completely, one by one. */ - - for (i = 0; i < num_infiles; i++) - { - int desc; - long ptr; - char *outfile; - - desc = open (infiles[i], O_RDONLY, 0); - if (desc < 0) - pfatal_with_name (infiles[i]); - lseek (desc, 0L, SEEK_END); - ptr = lseek (desc, 0L, SEEK_CUR); - - close (desc); - - outfile = outfiles[i]; - if (!outfile) - { - outfile = concat (infiles[i], "s", ""); - } - - if (ptr < MAX_IN_CORE_SORT) - /* Sort a small amount of data. */ - sort_in_core (infiles[i], ptr, outfile); - else - sort_offline (infiles[i], ptr, outfile); - } - - flush_tempfiles (tempcount); - exit (TI_NO_ERROR); -} - -void -usage () -{ - fprintf (stderr, "\ -Usage: %s [-k] infile [-o outfile] ...\n", program_name); - exit (1); -} - -/* Decode the command line arguments to set the parameter variables - and set up the vector of keyfields and the vector of input files. */ - -void -decode_command (argc, argv) - int argc; - char **argv; -{ - int optc; - char **ip; - char **op; - - /* Store default values into parameter variables. */ - - tempdir = getenv ("TMPDIR"); - if (tempdir == NULL) - tempdir = "/tmp/"; - else - tempdir = concat (tempdir, "/", ""); - - keep_tempfiles = 0; - - /* Allocate ARGC input files, which must be enough. */ - - infiles = (char **) xmalloc (argc * sizeof (char *)); - outfiles = (char **) xmalloc (argc * sizeof (char *)); - ip = infiles; - op = outfiles; - - while ((optc = getopt (argc, argv, "-ko:")) != EOF) - { - switch (optc) - { - case 1: /* Non-option filename. */ - *ip++ = optarg; - *op++ = NULL; - break; - - case 'k': - keep_tempfiles = 1; - break; - - case 'o': - if (op > outfiles) - *(op - 1) = optarg; - break; - - default: - usage (); - } - } - - /* Record number of keyfields and terminate list of filenames. */ - num_infiles = ip - infiles; - *ip = 0; - if (num_infiles == 0) - usage (); -} - -/* Return a name for a temporary file. */ - -char * -maketempname (count) - int count; -{ - char tempsuffix[10]; - sprintf (tempsuffix, "%d", count); - return concat (tempdir, tempbase, tempsuffix); -} - -/* Delete all temporary files up to TO_COUNT. */ - -void -flush_tempfiles (to_count) - int to_count; -{ - if (keep_tempfiles) - return; - while (last_deleted_tempcount < to_count) - unlink (maketempname (++last_deleted_tempcount)); -} - -/* Copy the input file open on IDESC into a temporary file - and return the temporary file name. */ - -#define BUFSIZE 1024 - -char * -tempcopy (idesc) - int idesc; -{ - char *outfile = maketempname (++tempcount); - int odesc; - char buffer[BUFSIZE]; - - odesc = open (outfile, O_WRONLY | O_CREAT, 0666); - - if (odesc < 0) - pfatal_with_name (outfile); - - while (1) - { - int nread = read (idesc, buffer, BUFSIZE); - write (odesc, buffer, nread); - if (!nread) - break; - } - - close (odesc); - - return outfile; -} - -/* Compare LINE1 and LINE2 according to the specified set of keyfields. */ - -int -compare_full (line1, line2) - char **line1, **line2; -{ - int i; - - /* Compare using the first keyfield; - if that does not distinguish the lines, try the second keyfield; - and so on. */ - - for (i = 0; i < num_keyfields; i++) - { - long length1, length2; - char *start1 = find_field (&keyfields[i], *line1, &length1); - char *start2 = find_field (&keyfields[i], *line2, &length2); - int tem = compare_field (&keyfields[i], start1, length1, *line1 - text_base, - start2, length2, *line2 - text_base); - if (tem) - { - if (keyfields[i].reverse) - return -tem; - return tem; - } - } - - return 0; /* Lines match exactly. */ -} - -/* Compare LINE1 and LINE2, described by structures - in which the first keyfield is identified in advance. - For positional sorting, assumes that the order of the lines in core - reflects their nominal order. */ - -int -compare_prepared (line1, line2) - struct lineinfo *line1, *line2; -{ - int i; - int tem; - char *text1, *text2; - - /* Compare using the first keyfield, which has been found for us already. */ - if (keyfields->positional) - { - if (line1->text - text_base > line2->text - text_base) - tem = 1; - else - tem = -1; - } - else if (keyfields->numeric) - tem = line1->key.number - line2->key.number; - else - tem = compare_field (keyfields, line1->key.text, line1->keylen, 0, - line2->key.text, line2->keylen, 0); - if (tem) - { - if (keyfields->reverse) - return -tem; - return tem; - } - - text1 = line1->text; - text2 = line2->text; - - /* Compare using the second keyfield; - if that does not distinguish the lines, try the third keyfield; - and so on. */ - - for (i = 1; i < num_keyfields; i++) - { - long length1, length2; - char *start1 = find_field (&keyfields[i], text1, &length1); - char *start2 = find_field (&keyfields[i], text2, &length2); - int tem = compare_field (&keyfields[i], start1, length1, text1 - text_base, - start2, length2, text2 - text_base); - if (tem) - { - if (keyfields[i].reverse) - return -tem; - return tem; - } - } - - return 0; /* Lines match exactly. */ -} - -/* Like compare_full but more general. - You can pass any strings, and you can say how many keyfields to use. - POS1 and POS2 should indicate the nominal positional ordering of - the two lines in the input. */ - -int -compare_general (str1, str2, pos1, pos2, use_keyfields) - char *str1, *str2; - long pos1, pos2; - int use_keyfields; -{ - int i; - - /* Compare using the first keyfield; - if that does not distinguish the lines, try the second keyfield; - and so on. */ - - for (i = 0; i < use_keyfields; i++) - { - long length1, length2; - char *start1 = find_field (&keyfields[i], str1, &length1); - char *start2 = find_field (&keyfields[i], str2, &length2); - int tem = compare_field (&keyfields[i], start1, length1, pos1, - start2, length2, pos2); - if (tem) - { - if (keyfields[i].reverse) - return -tem; - return tem; - } - } - - return 0; /* Lines match exactly. */ -} - -/* Find the start and length of a field in STR according to KEYFIELD. - A pointer to the starting character is returned, and the length - is stored into the int that LENGTHPTR points to. */ - -char * -find_field (keyfield, str, lengthptr) - struct keyfield *keyfield; - char *str; - long *lengthptr; -{ - char *start; - char *end; - char *(*fun) (); - - if (keyfield->braced) - fun = find_braced_pos; - else - fun = find_pos; - - start = (*fun) (str, keyfield->startwords, keyfield->startchars, - keyfield->ignore_blanks); - if (keyfield->endwords < 0) - { - if (keyfield->braced) - end = find_braced_end (start); - else - { - end = start; - while (*end && *end != '\n') - end++; - } - } - else - { - end = (*fun) (str, keyfield->endwords, keyfield->endchars, 0); - if (end - str < start - str) - end = start; - } - *lengthptr = end - start; - return start; -} - -/* Return a pointer to a specified place within STR, - skipping (from the beginning) WORDS words and then CHARS chars. - If IGNORE_BLANKS is nonzero, we skip all blanks - after finding the specified word. */ - -char * -find_pos (str, words, chars, ignore_blanks) - char *str; - int words, chars; - int ignore_blanks; -{ - int i; - char *p = str; - - for (i = 0; i < words; i++) - { - char c; - /* Find next bunch of nonblanks and skip them. */ - while ((c = *p) == ' ' || c == '\t') - p++; - while ((c = *p) && c != '\n' && !(c == ' ' || c == '\t')) - p++; - if (!*p || *p == '\n') - return p; - } - - while (*p == ' ' || *p == '\t') - p++; - - for (i = 0; i < chars; i++) - { - if (!*p || *p == '\n') - break; - p++; - } - return p; -} - -/* Like find_pos but assumes that each field is surrounded by braces - and that braces within fields are balanced. */ - -char * -find_braced_pos (str, words, chars, ignore_blanks) - char *str; - int words, chars; - int ignore_blanks; -{ - int i; - int bracelevel; - char *p = str; - char c; - - for (i = 0; i < words; i++) - { - bracelevel = 1; - while ((c = *p++) != '{' && c != '\n' && c) - /* Do nothing. */ ; - if (c != '{') - return p - 1; - while (bracelevel) - { - c = *p++; - if (c == '{') - bracelevel++; - if (c == '}') - bracelevel--; - if (c == 0 || c == '\n') - return p - 1; - } - } - - while ((c = *p++) != '{' && c != '\n' && c) - /* Do nothing. */ ; - - if (c != '{') - return p - 1; - - if (ignore_blanks) - while ((c = *p) == ' ' || c == '\t') - p++; - - for (i = 0; i < chars; i++) - { - if (!*p || *p == '\n') - break; - p++; - } - return p; -} - -/* Find the end of the balanced-brace field which starts at STR. - The position returned is just before the closing brace. */ - -char * -find_braced_end (str) - char *str; -{ - int bracelevel; - char *p = str; - char c; - - bracelevel = 1; - while (bracelevel) - { - c = *p++; - if (c == '{') - bracelevel++; - if (c == '}') - bracelevel--; - if (c == 0 || c == '\n') - return p - 1; - } - return p - 1; -} - -long -find_value (start, length) - char *start; - long length; -{ - while (length != 0L) - { - if (isdigit (*start)) - return atol (start); - length--; - start++; - } - return 0l; -} - -/* Vector used to translate characters for comparison. - This is how we make all alphanumerics follow all else, - and ignore case in the first sorting. */ -int char_order[256]; - -void -init_char_order () -{ - int i; - for (i = 1; i < 256; i++) - char_order[i] = i; - - for (i = '0'; i <= '9'; i++) - char_order[i] += 512; - - for (i = 'a'; i <= 'z'; i++) - { - char_order[i] = 512 + i; - char_order[i + 'A' - 'a'] = 512 + i; - } -} - -/* Compare two fields (each specified as a start pointer and a character count) - according to KEYFIELD. - The sign of the value reports the relation between the fields. */ - -int -compare_field (keyfield, start1, length1, pos1, start2, length2, pos2) - struct keyfield *keyfield; - char *start1; - long length1; - long pos1; - char *start2; - long length2; - long pos2; -{ - if (keyfields->positional) - { - if (pos1 > pos2) - return 1; - else - return -1; - } - if (keyfield->numeric) - { - long value = find_value (start1, length1) - find_value (start2, length2); - if (value > 0) - return 1; - if (value < 0) - return -1; - return 0; - } - else - { - char *p1 = start1; - char *p2 = start2; - char *e1 = start1 + length1; - char *e2 = start2 + length2; - - while (1) - { - int c1, c2; - - if (p1 == e1) - c1 = 0; - else - c1 = *p1++; - if (p2 == e2) - c2 = 0; - else - c2 = *p2++; - - if (char_order[c1] != char_order[c2]) - return char_order[c1] - char_order[c2]; - if (!c1) - break; - } - - /* Strings are equal except possibly for case. */ - p1 = start1; - p2 = start2; - while (1) - { - int c1, c2; - - if (p1 == e1) - c1 = 0; - else - c1 = *p1++; - if (p2 == e2) - c2 = 0; - else - c2 = *p2++; - - if (c1 != c2) - /* Reverse sign here so upper case comes out last. */ - return c2 - c1; - if (!c1) - break; - } - - return 0; - } -} - -/* A `struct linebuffer' is a structure which holds a line of text. - `readline' reads a line from a stream into a linebuffer - and works regardless of the length of the line. */ - -struct linebuffer -{ - long size; - char *buffer; -}; - -/* Initialize LINEBUFFER for use. */ - -void -initbuffer (linebuffer) - struct linebuffer *linebuffer; -{ - linebuffer->size = 200; - linebuffer->buffer = (char *) xmalloc (200); -} - -/* Read a line of text from STREAM into LINEBUFFER. - Return the length of the line. */ - -long -readline (linebuffer, stream) - struct linebuffer *linebuffer; - FILE *stream; -{ - char *buffer = linebuffer->buffer; - char *p = linebuffer->buffer; - char *end = p + linebuffer->size; - - while (1) - { - int c = getc (stream); - if (p == end) - { - buffer = (char *) xrealloc (buffer, linebuffer->size *= 2); - p += buffer - linebuffer->buffer; - end += buffer - linebuffer->buffer; - linebuffer->buffer = buffer; - } - if (c < 0 || c == '\n') - { - *p = 0; - break; - } - *p++ = c; - } - - return p - buffer; -} - -/* Sort an input file too big to sort in core. */ - -void -sort_offline (infile, nfiles, total, outfile) - char *infile; - int nfiles; - long total; - char *outfile; -{ - /* More than enough. */ - int ntemps = 2 * (total + MAX_IN_CORE_SORT - 1) / MAX_IN_CORE_SORT; - char **tempfiles = (char **) xmalloc (ntemps * sizeof (char *)); - FILE *istream = fopen (infile, "r"); - int i; - struct linebuffer lb; - long linelength; - int failure = 0; - - initbuffer (&lb); - - /* Read in one line of input data. */ - - linelength = readline (&lb, istream); - - if (lb.buffer[0] != '\\' && lb.buffer[0] != '@') - { - error ("%s: not a texinfo index file", infile); - return; - } - - /* Split up the input into `ntemps' temporary files, or maybe fewer, - and put the new files' names into `tempfiles' */ - - for (i = 0; i < ntemps; i++) - { - char *outname = maketempname (++tempcount); - FILE *ostream = fopen (outname, "w"); - long tempsize = 0; - - if (!ostream) - pfatal_with_name (outname); - tempfiles[i] = outname; - - /* Copy lines into this temp file as long as it does not make file - "too big" or until there are no more lines. */ - - while (tempsize + linelength + 1 <= MAX_IN_CORE_SORT) - { - tempsize += linelength + 1; - fputs (lb.buffer, ostream); - putc ('\n', ostream); - - /* Read another line of input data. */ - - linelength = readline (&lb, istream); - if (!linelength && feof (istream)) - break; - - if (lb.buffer[0] != '\\' && lb.buffer[0] != '@') - { - error ("%s: not a texinfo index file", infile); - failure = 1; - goto fail; - } - } - fclose (ostream); - if (feof (istream)) - break; - } - - free (lb.buffer); - -fail: - /* Record number of temp files we actually needed. */ - - ntemps = i; - - /* Sort each tempfile into another tempfile. - Delete the first set of tempfiles and put the names of the second - into `tempfiles'. */ - - for (i = 0; i < ntemps; i++) - { - char *newtemp = maketempname (++tempcount); - sort_in_core (&tempfiles[i], MAX_IN_CORE_SORT, newtemp); - if (!keep_tempfiles) - unlink (tempfiles[i]); - tempfiles[i] = newtemp; - } - - if (failure) - return; - - /* Merge the tempfiles together and indexify. */ - - merge_files (tempfiles, ntemps, outfile); -} - -/* Sort INFILE, whose size is TOTAL, - assuming that is small enough to be done in-core, - then indexify it and send the output to OUTFILE (or to stdout). */ - -void -sort_in_core (infile, total, outfile) - char *infile; - long total; - char *outfile; -{ - char **nextline; - char *data = (char *) xmalloc (total + 1); - char *file_data; - long file_size; - int i; - FILE *ostream = stdout; - struct lineinfo *lineinfo; - - /* Read the contents of the file into the moby array `data'. */ - - int desc = open (infile, O_RDONLY, 0); - - if (desc < 0) - fatal ("failure reopening %s", infile); - for (file_size = 0;;) - { - i = read (desc, data + file_size, total - file_size); - if (i <= 0) - break; - file_size += i; - } - file_data = data; - data[file_size] = 0; - - close (desc); - - if (file_size > 0 && data[0] != '\\' && data[0] != '@') - { - error ("%s: not a texinfo index file", infile); - return; - } - - init_char_order (); - - /* Sort routines want to know this address. */ - - text_base = data; - - /* Create the array of pointers to lines, with a default size - frequently enough. */ - - nlines = total / 50; - if (!nlines) - nlines = 2; - linearray = (char **) xmalloc (nlines * sizeof (char *)); - - /* `nextline' points to the next free slot in this array. - `nlines' is the allocated size. */ - - nextline = linearray; - - /* Parse the input file's data, and make entries for the lines. */ - - nextline = parsefile (infile, nextline, file_data, file_size); - if (nextline == 0) - { - error ("%s: not a texinfo index file", infile); - return; - } - - /* Sort the lines. */ - - /* If we have enough space, find the first keyfield of each line in advance. - Make a `struct lineinfo' for each line, which records the keyfield - as well as the line, and sort them. */ - - lineinfo = (struct lineinfo *) malloc ((nextline - linearray) * sizeof (struct lineinfo)); - - if (lineinfo) - { - struct lineinfo *lp; - char **p; - - for (lp = lineinfo, p = linearray; p != nextline; lp++, p++) - { - lp->text = *p; - lp->key.text = find_field (keyfields, *p, &lp->keylen); - if (keyfields->numeric) - lp->key.number = find_value (lp->key.text, lp->keylen); - } - - qsort (lineinfo, nextline - linearray, sizeof (struct lineinfo), compare_prepared); - - for (lp = lineinfo, p = linearray; p != nextline; lp++, p++) - *p = lp->text; - - free (lineinfo); - } - else - qsort (linearray, nextline - linearray, sizeof (char *), compare_full); - - /* Open the output file. */ - - if (outfile) - { - ostream = fopen (outfile, "w"); - if (!ostream) - pfatal_with_name (outfile); - } - - writelines (linearray, nextline - linearray, ostream); - if (outfile) - fclose (ostream); - - free (linearray); - free (data); -} - -/* Parse an input string in core into lines. - DATA is the input string, and SIZE is its length. - Data goes in LINEARRAY starting at NEXTLINE. - The value returned is the first entry in LINEARRAY still unused. - Value 0 means input file contents are invalid. */ - -char ** -parsefile (filename, nextline, data, size) - char *filename; - char **nextline; - char *data; - long size; -{ - char *p, *end; - char **line = nextline; - - p = data; - end = p + size; - *end = 0; - - while (p != end) - { - if (p[0] != '\\' && p[0] != '@') - return 0; - - *line = p; - while (*p && *p != '\n') - p++; - if (p != end) - p++; - - line++; - if (line == linearray + nlines) - { - char **old = linearray; - linearray = (char **) xrealloc (linearray, sizeof (char *) * (nlines *= 4)); - line += linearray - old; - } - } - - return line; -} - -/* Indexification is a filter applied to the sorted lines - as they are being written to the output file. - Multiple entries for the same name, with different page numbers, - get combined into a single entry with multiple page numbers. - The first braced field, which is used for sorting, is discarded. - However, its first character is examined, folded to lower case, - and if it is different from that in the previous line fed to us - a \initial line is written with one argument, the new initial. - - If an entry has four braced fields, then the second and third - constitute primary and secondary names. - In this case, each change of primary name - generates a \primary line which contains only the primary name, - and in between these are \secondary lines which contain - just a secondary name and page numbers. */ - -/* The last primary name we wrote a \primary entry for. - If only one level of indexing is being done, this is the last name seen. */ -char *lastprimary; -/* Length of storage allocated for lastprimary. */ -int lastprimarylength; - -/* Similar, for the secondary name. */ -char *lastsecondary; -int lastsecondarylength; - -/* Zero if we are not in the middle of writing an entry. - One if we have written the beginning of an entry but have not - yet written any page numbers into it. - Greater than one if we have written the beginning of an entry - plus at least one page number. */ -int pending; - -/* The initial (for sorting purposes) of the last primary entry written. - When this changes, a \initial {c} line is written */ - -char *lastinitial; - -int lastinitiallength; - -/* When we need a string of length 1 for the value of lastinitial, - store it here. */ - -char lastinitial1[2]; - -/* Initialize static storage for writing an index. */ - -static void -xbzero(s, n) - char *s; - int n; -{ - register char *p; - for (p = s; n--; ) - *p++ = '\0'; -} - -void -init_index () -{ - pending = 0; - lastinitial = lastinitial1; - lastinitial1[0] = 0; - lastinitial1[1] = 0; - lastinitiallength = 0; - lastprimarylength = 100; - lastprimary = (char *) xmalloc (lastprimarylength + 1); - xbzero (lastprimary, lastprimarylength + 1); - lastsecondarylength = 100; - lastsecondary = (char *) xmalloc (lastsecondarylength + 1); - xbzero (lastsecondary, lastsecondarylength + 1); -} - -/* Indexify. Merge entries for the same name, - insert headers for each initial character, etc. */ - -void -indexify (line, ostream) - char *line; - FILE *ostream; -{ - char *primary, *secondary, *pagenumber; - int primarylength, secondarylength = 0, pagelength; - int nosecondary; - int initiallength; - char *initial; - char initial1[2]; - register char *p; - - /* First, analyze the parts of the entry fed to us this time. */ - - p = find_braced_pos (line, 0, 0, 0); - if (*p == '{') - { - initial = p; - /* Get length of inner pair of braces starting at `p', - including that inner pair of braces. */ - initiallength = find_braced_end (p + 1) + 1 - p; - } - else - { - initial = initial1; - initial1[0] = *p; - initial1[1] = 0; - initiallength = 1; - - if (initial1[0] >= 'a' && initial1[0] <= 'z') - initial1[0] -= 040; - } - - pagenumber = find_braced_pos (line, 1, 0, 0); - pagelength = find_braced_end (pagenumber) - pagenumber; - if (pagelength == 0) - abort (); - - primary = find_braced_pos (line, 2, 0, 0); - primarylength = find_braced_end (primary) - primary; - - secondary = find_braced_pos (line, 3, 0, 0); - nosecondary = !*secondary; - if (!nosecondary) - secondarylength = find_braced_end (secondary) - secondary; - - /* If the primary is different from before, make a new primary entry. */ - if (strncmp (primary, lastprimary, primarylength)) - { - /* Close off current secondary entry first, if one is open. */ - if (pending) - { - fputs ("}\n", ostream); - pending = 0; - } - - /* If this primary has a different initial, include an entry for - the initial. */ - if (initiallength != lastinitiallength || - strncmp (initial, lastinitial, initiallength)) - { - fprintf (ostream, "\\initial {"); - fwrite (initial, 1, initiallength, ostream); - fprintf (ostream, "}\n", initial); - if (initial == initial1) - { - lastinitial = lastinitial1; - *lastinitial1 = *initial1; - } - else - { - lastinitial = initial; - } - lastinitiallength = initiallength; - } - - /* Make the entry for the primary. */ - if (nosecondary) - fputs ("\\entry {", ostream); - else - fputs ("\\primary {", ostream); - fwrite (primary, primarylength, 1, ostream); - if (nosecondary) - { - fputs ("}{", ostream); - pending = 1; - } - else - fputs ("}\n", ostream); - - /* Record name of most recent primary. */ - if (lastprimarylength < primarylength) - { - lastprimarylength = primarylength + 100; - lastprimary = (char *) xrealloc (lastprimary, - 1 + lastprimarylength); - } - strncpy (lastprimary, primary, primarylength); - lastprimary[primarylength] = 0; - - /* There is no current secondary within this primary, now. */ - lastsecondary[0] = 0; - } - - /* Should not have an entry with no subtopic following one with a subtopic. */ - - if (nosecondary && *lastsecondary) - error ("entry %s follows an entry with a secondary name", line); - - /* Start a new secondary entry if necessary. */ - if (!nosecondary && strncmp (secondary, lastsecondary, secondarylength)) - { - if (pending) - { - fputs ("}\n", ostream); - pending = 0; - } - - /* Write the entry for the secondary. */ - fputs ("\\secondary {", ostream); - fwrite (secondary, secondarylength, 1, ostream); - fputs ("}{", ostream); - pending = 1; - - /* Record name of most recent secondary. */ - if (lastsecondarylength < secondarylength) - { - lastsecondarylength = secondarylength + 100; - lastsecondary = (char *) xrealloc (lastsecondary, - 1 + lastsecondarylength); - } - strncpy (lastsecondary, secondary, secondarylength); - lastsecondary[secondarylength] = 0; - } - - /* Here to add one more page number to the current entry. */ - if (pending++ != 1) - fputs (", ", ostream); /* Punctuate first, if this is not the first. */ - fwrite (pagenumber, pagelength, 1, ostream); -} - -/* Close out any unfinished output entry. */ - -void -finish_index (ostream) - FILE *ostream; -{ - if (pending) - fputs ("}\n", ostream); - free (lastprimary); - free (lastsecondary); -} - -/* Copy the lines in the sorted order. - Each line is copied out of the input file it was found in. */ - -void -writelines (linearray, nlines, ostream) - char **linearray; - int nlines; - FILE *ostream; -{ - char **stop_line = linearray + nlines; - char **next_line; - - init_index (); - - /* Output the text of the lines, and free the buffer space. */ - - for (next_line = linearray; next_line != stop_line; next_line++) - { - /* If -u was specified, output the line only if distinct from previous one. */ - if (next_line == linearray - /* Compare previous line with this one, using only the - explicitly specd keyfields. */ - || compare_general (*(next_line - 1), *next_line, 0L, 0L, num_keyfields - 1)) - { - char *p = *next_line; - char c; - - while ((c = *p++) && c != '\n') - /* Do nothing. */ ; - *(p - 1) = 0; - indexify (*next_line, ostream); - } - } - - finish_index (ostream); -} - -/* Assume (and optionally verify) that each input file is sorted; - merge them and output the result. - Returns nonzero if any input file fails to be sorted. - - This is the high-level interface that can handle an unlimited - number of files. */ - -#define MAX_DIRECT_MERGE 10 - -int -merge_files (infiles, nfiles, outfile) - char **infiles; - int nfiles; - char *outfile; -{ - char **tempfiles; - int ntemps; - int i; - int value = 0; - int start_tempcount = tempcount; - - if (nfiles <= MAX_DIRECT_MERGE) - return merge_direct (infiles, nfiles, outfile); - - /* Merge groups of MAX_DIRECT_MERGE input files at a time, - making a temporary file to hold each group's result. */ - - ntemps = (nfiles + MAX_DIRECT_MERGE - 1) / MAX_DIRECT_MERGE; - tempfiles = (char **) xmalloc (ntemps * sizeof (char *)); - for (i = 0; i < ntemps; i++) - { - int nf = MAX_DIRECT_MERGE; - if (i + 1 == ntemps) - nf = nfiles - i * MAX_DIRECT_MERGE; - tempfiles[i] = maketempname (++tempcount); - value |= merge_direct (&infiles[i * MAX_DIRECT_MERGE], nf, tempfiles[i]); - } - - /* All temporary files that existed before are no longer needed - since their contents have been merged into our new tempfiles. - So delete them. */ - flush_tempfiles (start_tempcount); - - /* Now merge the temporary files we created. */ - - merge_files (tempfiles, ntemps, outfile); - - free (tempfiles); - - return value; -} - -/* Assume (and optionally verify) that each input file is sorted; - merge them and output the result. - Returns nonzero if any input file fails to be sorted. - - This version of merging will not work if the number of - input files gets too high. Higher level functions - use it only with a bounded number of input files. */ - -int -merge_direct (infiles, nfiles, outfile) - char **infiles; - int nfiles; - char *outfile; -{ - struct linebuffer *lb1, *lb2; - struct linebuffer **thisline, **prevline; - FILE **streams; - int i; - int nleft; - int lossage = 0; - int *file_lossage; - struct linebuffer *prev_out = 0; - FILE *ostream = stdout; - - if (outfile) - { - ostream = fopen (outfile, "w"); - } - if (!ostream) - pfatal_with_name (outfile); - - init_index (); - - if (nfiles == 0) - { - if (outfile) - fclose (ostream); - return 0; - } - - /* For each file, make two line buffers. - Also, for each file, there is an element of `thisline' - which points at any time to one of the file's two buffers, - and an element of `prevline' which points to the other buffer. - `thisline' is supposed to point to the next available line from the file, - while `prevline' holds the last file line used, - which is remembered so that we can verify that the file is properly sorted. */ - - /* lb1 and lb2 contain one buffer each per file. */ - lb1 = (struct linebuffer *) xmalloc (nfiles * sizeof (struct linebuffer)); - lb2 = (struct linebuffer *) xmalloc (nfiles * sizeof (struct linebuffer)); - - /* thisline[i] points to the linebuffer holding the next available line in file i, - or is zero if there are no lines left in that file. */ - thisline = (struct linebuffer **) - xmalloc (nfiles * sizeof (struct linebuffer *)); - /* prevline[i] points to the linebuffer holding the last used line - from file i. This is just for verifying that file i is properly - sorted. */ - prevline = (struct linebuffer **) - xmalloc (nfiles * sizeof (struct linebuffer *)); - /* streams[i] holds the input stream for file i. */ - streams = (FILE **) xmalloc (nfiles * sizeof (FILE *)); - /* file_lossage[i] is nonzero if we already know file i is not - properly sorted. */ - file_lossage = (int *) xmalloc (nfiles * sizeof (int)); - - /* Allocate and initialize all that storage. */ - - for (i = 0; i < nfiles; i++) - { - initbuffer (&lb1[i]); - initbuffer (&lb2[i]); - thisline[i] = &lb1[i]; - prevline[i] = &lb2[i]; - file_lossage[i] = 0; - streams[i] = fopen (infiles[i], "r"); - if (!streams[i]) - pfatal_with_name (infiles[i]); - - readline (thisline[i], streams[i]); - } - - /* Keep count of number of files not at eof. */ - nleft = nfiles; - - while (nleft) - { - struct linebuffer *best = 0; - struct linebuffer *exch; - int bestfile = -1; - int i; - - /* Look at the next avail line of each file; choose the least one. */ - - for (i = 0; i < nfiles; i++) - { - if (thisline[i] && - (!best || - 0 < compare_general (best->buffer, thisline[i]->buffer, - (long) bestfile, (long) i, num_keyfields))) - { - best = thisline[i]; - bestfile = i; - } - } - - /* Output that line, unless it matches the previous one and we - don't want duplicates. */ - - if (!(prev_out && - !compare_general (prev_out->buffer, - best->buffer, 0L, 1L, num_keyfields - 1))) - indexify (best->buffer, ostream); - prev_out = best; - - /* Now make the line the previous of its file, and fetch a new - line from that file. */ - - exch = prevline[bestfile]; - prevline[bestfile] = thisline[bestfile]; - thisline[bestfile] = exch; - - while (1) - { - /* If the file has no more, mark it empty. */ - - if (feof (streams[bestfile])) - { - thisline[bestfile] = 0; - /* Update the number of files still not empty. */ - nleft--; - break; - } - readline (thisline[bestfile], streams[bestfile]); - if (thisline[bestfile]->buffer[0] || !feof (streams[bestfile])) - break; - } - } - - finish_index (ostream); - - /* Free all storage and close all input streams. */ - - for (i = 0; i < nfiles; i++) - { - fclose (streams[i]); - free (lb1[i].buffer); - free (lb2[i].buffer); - } - free (file_lossage); - free (lb1); - free (lb2); - free (thisline); - free (prevline); - free (streams); - - if (outfile) - fclose (ostream); - - return lossage; -} - -/* Print error message and exit. */ - -void -fatal (s1, s2) - char *s1, *s2; -{ - error (s1, s2); - exit (TI_FATAL_ERROR); -} - -/* Print error message. S1 is printf control string, S2 is arg for it. */ - -void -error (s1, s2) - char *s1, *s2; -{ - printf ("%s: ", program_name); - printf (s1, s2); - printf ("\n"); -} - -#if !defined (HAVE_STRERROR) -static char * -strerror (n) - int n; -{ - static char ebuf[40]; - - if (n < sys_nerr) - return sys_errlist[n]; - else - { - sprintf (ebuf, "Unknown error %d", n); - return ebuf; - } -} -#endif - -void -perror_with_name (name) - char *name; -{ - char *s; - - s = concat ("", strerror (errno), " for %s"); - error (s, name); -} - -void -pfatal_with_name (name) - char *name; -{ - char *s; - - s = concat ("", strerror (errno), " for %s"); - fatal (s, name); -} - -/* Return a newly-allocated string whose contents concatenate those of - S1, S2, S3. */ - -char * -concat (s1, s2, s3) - char *s1, *s2, *s3; -{ - int len1 = strlen (s1), len2 = strlen (s2), len3 = strlen (s3); - char *result = (char *) xmalloc (len1 + len2 + len3 + 1); - - strcpy (result, s1); - strcpy (result + len1, s2); - strcpy (result + len1 + len2, s3); - *(result + len1 + len2 + len3) = 0; - - return result; -} - -/* Just like malloc, but kills the program in case of fatal error. */ -void * -xmalloc (nbytes) - int nbytes; -{ - void *temp = (void *) malloc (nbytes); - - if (nbytes && temp == (void *)NULL) - memory_error ("xmalloc", nbytes); - - return (temp); -} - -/* Like realloc (), but barfs if there isn't enough memory. */ -void * -xrealloc (pointer, nbytes) - void *pointer; - int nbytes; -{ - void *temp; - - if (!pointer) - temp = (void *)xmalloc (nbytes); - else - temp = (void *)realloc (pointer, nbytes); - - if (nbytes && !temp) - memory_error ("xrealloc", nbytes); - - return (temp); -} - -memory_error (callers_name, bytes_wanted) - char *callers_name; - int bytes_wanted; -{ - char printable_string[80]; - - sprintf (printable_string, - "Virtual memory exhausted in %s ()! Needed %d bytes.", - callers_name, bytes_wanted); - - error (printable_string, ""); - abort (); -} diff --git a/lib/glob/ChangeLog b/lib/glob/ChangeLog deleted file mode 100644 index 377f0c17e..000000000 --- a/lib/glob/ChangeLog +++ /dev/null @@ -1,13 +0,0 @@ -Thu Oct 29 08:58:12 1992 Brian Fox (bfox@cubit) - - * glob.c (glob_filename): Fix tiny memory leak. Rework some - comments. - -Mon Jul 20 10:57:36 1992 Brian Fox (bfox@cubit) - - * glob.c: (glob_filename) Change use of rindex () to strrchr (). - -Thu Jul 9 10:02:47 1992 Brian Fox (bfox@cubit) - - * fnmatch.c: (fnmatch) Only process `[' as the start of a bracket - expression if there is a closing `]' present in the string. diff --git a/lib/malloc/OLD/gmalloc.c b/lib/malloc/OLD/gmalloc.c deleted file mode 100644 index c21d4473a..000000000 --- a/lib/malloc/OLD/gmalloc.c +++ /dev/null @@ -1,1486 +0,0 @@ -/* The malloc headers and source files from the C library follow here. */ - -/* Declarations for `malloc' and friends. - Copyright 1990, 91, 92, 93, 95, 96 Free Software Foundation, Inc. - Written May 1989 by Mike Haertel. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -This 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; see the file COPYING.LIB. If -ot, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111 USA. - - The author may be reached (Email) at the address mike@ai.mit.edu, - or (US mail) as Mike Haertel c/o Free Software Foundation. */ - -/* XXX NOTES: - 1. Augment the mstats struct so we can see how many blocks for fragments - and how many blocks for large requests were allocated. -*/ - -/* CHANGES: - 1. Reorganized the source for my benefit. - 2. Integrated the range-checking code by default. - 3. free(0) no longer dumps core. - 4. Extended the statistics. - 5. Fixed a couple of places where the stats were not kept correctly. -*/ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#if defined (HAVE_STRING_H) -# include -#else -# include -#endif - -#if defined (HAVE_LIMITS_H) -# include -#endif - -#if defined (HAVE_UNISTD_H) -# ifdef _MINIX -# include -# endif -# include -#endif - -#if defined (HAVE_STDDEF_H) -# include -#endif -#include - -#if defined (RCHECK) && !defined (botch) -# include -# define STDIO_H_INCLUDED -#endif - -#include "stdc.h" - -#ifndef errno -extern int errno; -#endif - -/* Need an autoconf test for this. */ -#if __STDC__ -# undef genptr_t -# define genptr_t void * -#else -# undef genptr_t -# define genptr_t char * -#endif /* !__STDC__ */ - -#if !defined (HAVE_MEMSET) -# define memset(s, zero, n) bzero ((s), (n)) -#endif -#if !defined (HAVE_MEMCPY) -# define memcpy(d, s, n) bcopy ((s), (d), (n)) -#endif - -/* Cope with systems lacking `memmove'. */ -#if !defined (HAVE_MEMMOVE) && !defined (memmove) -static void malloc_safe_bcopy __P ((genptr_t, genptr_t, size_t)); -# define memmove(to, from, size) malloc_safe_bcopy ((from), (to), (size)) -#endif - -#ifndef NULL -#define NULL 0 -#endif - -#ifndef min -#define min(A, B) ((A) < (B) ? (A) : (B)) -#endif - -/* Return values for `mprobe': these are the kinds of inconsistencies that - `mcheck' enables detection of. */ -enum mcheck_status - { - MCHECK_DISABLED = -1, /* Consistency checking is not turned on. */ - MCHECK_OK, /* Block is fine. */ - MCHECK_FREE, /* Block freed twice. */ - MCHECK_HEAD, /* Memory before the block was clobbered. */ - MCHECK_TAIL /* Memory after the block was clobbered. */ - }; - -/* Statistics available to the user. */ -struct mstats - { - size_t bytes_total; /* Total size of the heap. */ - size_t chunks_used; /* Chunks allocated by the user. */ - size_t bytes_used; /* Byte total of user-allocated chunks. */ - size_t chunks_free; /* Chunks in the free list. */ - size_t bytes_free; /* Byte total of chunks in the free list. */ - int nmalloc; /* Total number of calls to malloc. */ - int nfree; /* Total number of calls to free. */ - int nrealloc; /* Total number of calls to realloc. */ - int nsbrk; /* Total number of calls to sbrk. */ - size_t tsbrk; /* Total number of bytes allocated via sbrk. */ - int negsbrk; /* Total number of calls to sbrk with a negative arg */ - size_t tnegsbrk; /* Total number of bytes returned to the kernel. */ - }; - -#ifdef RCHECK -/* Arbitrary magical numbers. */ -#define MAGICWORD 0xfedabeeb -#define MAGICFREE 0xd8675309 -#define MAGICBYTE ((char) 0xd7) -#define MALLOCFLOOD ((char) 0x93) -#define FREEFLOOD ((char) 0x95) - -struct hdr - { - size_t size; /* Exact size requested by user. */ - u_bits32_t magic; /* Magic number to check header integrity. */ - }; -#endif /* RCHECK */ - -/* Functions exported by this library. */ -/* Allocate SIZE bytes of memory. */ -extern genptr_t malloc __P ((size_t __size)); - -/* Re-allocate the previously allocated block - in genptr_t, making the new block SIZE bytes long. */ -extern genptr_t realloc __P ((genptr_t __ptr, size_t __size)); - -/* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */ -extern genptr_t calloc __P ((size_t __nmemb, size_t __size)); - -/* Free a block allocated by `malloc', `realloc' or `calloc'. */ -extern void free __P ((genptr_t __ptr)); - -/* Allocate SIZE bytes allocated to ALIGNMENT bytes. */ -extern genptr_t memalign __P ((size_t __alignment, size_t __size)); - -/* Pick up the current statistics. */ -extern struct mstats mstats __P ((void)); - -#ifdef RCHECK -extern enum mcheck_status mprobe __P((genptr_t ptr)); -#endif - -/* End of exported functions. */ - -/* The allocator divides the heap into blocks of fixed size; large - requests receive one or more whole blocks, and small requests - receive a fragment of a block. Fragment sizes are powers of two, - and all fragments of a block are the same size. When all the - fragments in a block have been freed, the block itself is freed. */ -#define BLOCKLOG 12 -#define BLOCKSIZE 4096 /* 1 << BLOCKLOG */ -#define BLOCKIFY(SIZE) (((SIZE) + BLOCKSIZE - 1) / BLOCKSIZE) - -/* Determine the amount of memory spanned by the initial heap table - (not an absolute limit). */ -#define HEAP 4194304 /* 1 << 22 */ - -/* Number of contiguous free blocks allowed to build up at the end of - memory before they will be returned to the system. */ -#define FINAL_FREE_BLOCKS 8 - -/* Data structure giving per-block information. */ -typedef union - { - /* Heap information for a busy block. */ - struct - { - /* Zero for a large (multiblock) object, or positive giving the - logarithm to the base two of the fragment size. */ - int type; - union - { - struct - { - size_t nfree; /* Free frags in a fragmented block. */ - size_t first; /* First free fragment of the block. */ - } frag; - /* For a large object, in its first block, this has the number - of blocks in the object. In the other blocks, this has a - negative number which says how far back the first block is. */ - ptrdiff_t size; - } info; - } busy; - /* Heap information for a free block (that may be the first of a - free cluster). */ - struct - { - size_t size; /* Size (in blocks) of a free cluster. */ - size_t next; /* Index of next free cluster. */ - size_t prev; /* Index of previous free cluster. */ - } free; - } malloc_info; - -/* Pointer to first block of the heap. */ -static char *_heapbase; - -/* Table indexed by block number giving per-block information. */ -static malloc_info *_heapinfo; - -/* Address to block number and vice versa. */ -#define BLOCK(A) (((char *) (A) - _heapbase) / BLOCKSIZE + 1) -#define ADDRESS(B) ((genptr_t) (((B) - 1) * BLOCKSIZE + _heapbase)) - -/* Number of info entries. */ -static size_t heapsize; - -/* Current search index for the heap table. */ -static size_t _heapindex; - -/* Limit of valid info table indices. */ -static size_t _heaplimit; - -/* Doubly linked lists of free fragments. */ -struct list - { - struct list *next; - struct list *prev; - }; - -/* Free list headers for each fragment size. */ -static struct list _fraghead[BLOCKLOG]; - -/* List of blocks allocated with `memalign'. */ -struct alignlist - { - struct alignlist *next; - genptr_t aligned; /* The address that memaligned returned. */ - genptr_t exact; /* The address that malloc returned. */ - }; - -/* List of blocks allocated by memalign. */ -static struct alignlist *_aligned_blocks = NULL; - -/* Internal versions of `malloc', `realloc', and `free' - used when these functions need to call each other. */ -static genptr_t imalloc __P ((size_t __size)); -static genptr_t irealloc __P ((genptr_t __ptr, size_t __size)); -static void ifree __P ((genptr_t __ptr)); - -/* Given an address in the middle of a malloc'd object, - return the address of the beginning of the object. */ -static genptr_t malloc_find_object_address __P ((genptr_t __ptr)); - -/* Underlying allocation function; successive calls should - return contiguous pieces of memory. */ -static genptr_t default_morecore __P ((ptrdiff_t __size)); - -/* Number of extra blocks to get each time we ask for more core. - This reduces the frequency of calling `default_morecore'. */ -static size_t malloc_extra_blocks; - -/* Nonzero if `malloc' has been called and done its initialization. */ -static int malloc_initialized; -/* Function called to initialize malloc data structures. */ -static int malloc_initialize __P ((void)); - -#ifdef RCHECK -static void zmemset __P((genptr_t, int, size_t)); -static enum mcheck_status checkhdr __P((const struct hdr *)); -static void mabort __P((enum mcheck_status)); -#endif - -/* Instrumentation. */ -static size_t chunks_used; -static size_t bytes_used; -static size_t chunks_free; -static size_t bytes_free; -static int nmalloc, nfree, nrealloc; -static int nsbrk; -static size_t tsbrk; -static int negsbrk; -static size_t tnegsbrk; - -/* Aligned allocation. */ -static genptr_t -align (size) - size_t size; -{ - genptr_t result; - unsigned long int adj; - - result = default_morecore (size); - adj = (unsigned long int) ((unsigned long int) ((char *) result - - (char *) NULL)) % BLOCKSIZE; - if (adj != 0) - { - genptr_t new; - adj = BLOCKSIZE - adj; - new = default_morecore (adj); - result = (char *) result + adj; - } - - return result; -} - -/* Get SIZE bytes, if we can get them starting at END. - Return the address of the space we got. - If we cannot get space at END, fail and return -1. */ -static genptr_t -get_contiguous_space (size, position) - ptrdiff_t size; - genptr_t position; -{ - genptr_t before; - genptr_t after; - - before = default_morecore (0); - /* If we can tell in advance that the break is at the wrong place, - fail now. */ - if (before != position) - return 0; - - /* Allocate SIZE bytes and get the address of them. */ - after = default_morecore (size); - if (!after) - return 0; - - /* It was not contiguous--reject it. */ - if (after != position) - { - default_morecore (- size); - return 0; - } - - return after; -} - -/* This is called when `_heapinfo' and `heapsize' have just - been set to describe a new info table. Set up the table - to describe itself and account for it in the statistics. */ -inline static void -register_heapinfo () -{ - size_t block, blocks; - - block = BLOCK (_heapinfo); - blocks = BLOCKIFY (heapsize * sizeof (malloc_info)); - - /* Account for the _heapinfo block itself in the statistics. */ - bytes_used += blocks * BLOCKSIZE; - ++chunks_used; - - /* Describe the heapinfo block itself in the heapinfo. */ - _heapinfo[block].busy.type = 0; - _heapinfo[block].busy.info.size = blocks; - /* Leave back-pointers for malloc_find_address. */ - while (--blocks > 0) - _heapinfo[block + blocks].busy.info.size = -blocks; -} - -/* Set everything up and remember that we have. */ -static int -malloc_initialize () -{ - if (malloc_initialized) - return 0; - - heapsize = HEAP / BLOCKSIZE; - _heapinfo = (malloc_info *) align (heapsize * sizeof (malloc_info)); - if (_heapinfo == NULL) - return 0; - memset (_heapinfo, 0, heapsize * sizeof (malloc_info)); - _heapinfo[0].free.size = 0; - _heapinfo[0].free.next = _heapinfo[0].free.prev = 0; - _heapindex = 0; - _heapbase = (char *) _heapinfo; - _heaplimit = BLOCK (_heapbase + heapsize * sizeof (malloc_info)); - - register_heapinfo (); - - malloc_initialized = 1; - return 1; -} - -/* Allocate INCREMENT more bytes of data space, - and return the start of data space, or NULL on errors. - If INCREMENT is negative, shrink data space. */ -static genptr_t -default_morecore (increment) - ptrdiff_t increment; -{ - genptr_t result; - - nsbrk++; - tsbrk += increment; - if (increment < 0) - { - negsbrk++; - tnegsbrk += -increment; - } - result = (genptr_t) sbrk (increment); - if ((long)result == -1L) - return NULL; - return result; -} - -static int morecore_recursing; - -/* Get neatly aligned memory, initializing or - growing the heap info table as necessary. */ -static genptr_t -morecore (size) - size_t size; -{ - genptr_t result; - malloc_info *newinfo, *oldinfo; - size_t newsize; - - if (morecore_recursing) - /* Avoid recursion. The caller will know how to handle a null return. */ - return NULL; - - result = align (size); - if (result == NULL) - return NULL; - - /* Check if we need to grow the info table. */ - if ((size_t) BLOCK ((char *) result + size) > heapsize) - { - /* Calculate the new _heapinfo table size. We do not account for the - added blocks in the table itself, as we hope to place them in - existing free space, which is already covered by part of the - existing table. */ - newsize = heapsize; - do - newsize <<= 1; - while ((size_t) BLOCK ((char *) result + size) > newsize); - - /* We must not reuse existing core for the new info table when called - from realloc in the case of growing a large block, because the - block being grown is momentarily marked as free. In this case - _heaplimit is zero so we know not to reuse space for internal - allocation. */ - if (_heaplimit != 0) - { - /* First try to allocate the new info table in core we already - have, in the usual way using realloc. If realloc cannot - extend it in place or relocate it to existing sufficient core, - we will get called again, and the code above will notice the - `morecore_recursing' flag and return null. */ - int save = errno; /* Don't want to clobber errno with ENOMEM. */ - morecore_recursing = 1; - newinfo = (malloc_info *) irealloc (_heapinfo, newsize * sizeof (malloc_info)); - morecore_recursing = 0; - if (newinfo == NULL) - errno = save; - else - { - /* We found some space in core, and realloc has put the old - table's blocks on the free list. Now zero the new part - of the table and install the new table location. */ - memset (&newinfo[heapsize], 0, (newsize - heapsize) * sizeof (malloc_info)); - _heapinfo = newinfo; - heapsize = newsize; - goto got_heap; - } - } - - /* Allocate new space for the malloc info table. */ - while (1) - { - newinfo = (malloc_info *) align (newsize * sizeof (malloc_info)); - - /* Did it fail? */ - if (newinfo == NULL) - { - default_morecore (-size); - return NULL; - } - - /* Is it big enough to record status for its own space? - If so, we win. */ - if ((size_t) BLOCK ((char *) newinfo + newsize * sizeof (malloc_info)) < newsize) - break; - - /* Must try again. First give back most of what we just got. */ - default_morecore (- newsize * sizeof (malloc_info)); - newsize *= 2; - } - - /* Copy the old table to the beginning of the new, - and zero the rest of the new table. */ - memcpy (newinfo, _heapinfo, heapsize * sizeof (malloc_info)); - memset (&newinfo[heapsize], 0, (newsize - heapsize) * sizeof (malloc_info)); - oldinfo = _heapinfo; - _heapinfo = newinfo; - heapsize = newsize; - - register_heapinfo (); - - /* Reset _heaplimit so ifree never decides - it can relocate or resize the info table. */ - _heaplimit = 0; - ifree (oldinfo); - - /* The new heap limit includes the new table just allocated. */ - _heaplimit = BLOCK ((char *) newinfo + heapsize * sizeof (malloc_info)); - return result; - } - - got_heap: - _heaplimit = BLOCK ((char *) result + size); - return result; -} - -/* Allocate memory from the heap. */ -static genptr_t -imalloc (size) - size_t size; -{ - genptr_t result; - size_t block, blocks, lastblocks, start; - register size_t i; - struct list *next; - - /* ANSI C allows `malloc (0)' to either return NULL, or to return a - valid address you can realloc and free (though not dereference). - - It turns out that some extant code (sunrpc, at least Ultrix's version) - expects `malloc (0)' to return non-NULL and breaks otherwise. - Be compatible. */ - -#if 0 - if (size == 0) - return NULL; -#endif - - if (size < sizeof (struct list)) - size = sizeof (struct list); - -#ifdef SUNOS_LOCALTIME_BUG - if (size < 16) - size = 16; -#endif - - /* Determine the allocation policy based on the request size. */ - if (size <= BLOCKSIZE / 2) - { - /* Small allocation to receive a fragment of a block. - Determine the logarithm to base two of the fragment size. */ - register size_t log = 1; - --size; - while ((size /= 2) != 0) - ++log; - - /* Look in the fragment lists for a - free fragment of the desired size. */ - next = _fraghead[log].next; - if (next != NULL) - { - /* There are free fragments of this size. - Pop a fragment out of the fragment list and return it. - Update the block's nfree and first counters. */ - result = (genptr_t) next; - next->prev->next = next->next; - if (next->next != NULL) - next->next->prev = next->prev; - block = BLOCK (result); - if (--_heapinfo[block].busy.info.frag.nfree != 0) - _heapinfo[block].busy.info.frag.first = (unsigned long int) - ((unsigned long int) ((char *) next->next - (char *) NULL) - % BLOCKSIZE) >> log; - - /* Update the statistics. */ - ++chunks_used; - bytes_used += 1 << log; - --chunks_free; - bytes_free -= 1 << log; - } - else - { - /* No free fragments of the desired size, so get a new block - and break it into fragments, returning the first. */ - result = imalloc (BLOCKSIZE); - if (result == NULL) - return NULL; - - /* Link all fragments but the first into the free list. */ - next = (struct list *) ((char *) result + (1 << log)); - next->next = NULL; - next->prev = &_fraghead[log]; - _fraghead[log].next = next; - - for (i = 2; i < (size_t) (BLOCKSIZE >> log); ++i) - { - next = (struct list *) ((char *) result + (i << log)); - next->next = _fraghead[log].next; - next->prev = &_fraghead[log]; - next->prev->next = next; - next->next->prev = next; - } - - /* Initialize the nfree and first counters for this block. */ - block = BLOCK (result); - _heapinfo[block].busy.type = log; - _heapinfo[block].busy.info.frag.nfree = i - 1; - _heapinfo[block].busy.info.frag.first = i - 1; - - chunks_free += (BLOCKSIZE >> log) - 1; - bytes_free += BLOCKSIZE - (1 << log); - bytes_used -= BLOCKSIZE - (1 << log); - } - } - else - { - /* Large allocation to receive one or more blocks. - Search the free list in a circle starting at the last place visited. - If we loop completely around without finding a large enough - space we will have to get more memory from the system. */ - blocks = BLOCKIFY (size); - start = block = _heapindex; - while (_heapinfo[block].free.size < blocks) - { - block = _heapinfo[block].free.next; - if (block == start) - { - /* Need to get more from the system. Get a little extra. */ - size_t wantblocks = blocks + malloc_extra_blocks; - block = _heapinfo[0].free.prev; - lastblocks = _heapinfo[block].free.size; - /* Check to see if the new core will be contiguous with the - final free block; if so we don't need to get as much. */ - if (_heaplimit != 0 && block + lastblocks == _heaplimit && - /* We can't do this if we will have to make the heap info - table bigger to accomodate the new space. */ - block + wantblocks <= heapsize && - get_contiguous_space ((wantblocks - lastblocks) * BLOCKSIZE, - ADDRESS (block + lastblocks))) - { - /* We got it contiguously. Which block we are extending - (the `final free block' referred to above) might have - changed, if it got combined with a freed info table. */ - block = _heapinfo[0].free.prev; - _heapinfo[block].free.size += (wantblocks - lastblocks); - bytes_free += (wantblocks - lastblocks) * BLOCKSIZE; - _heaplimit += wantblocks - lastblocks; - continue; - } - result = morecore (wantblocks * BLOCKSIZE); - if (result == NULL) - return NULL; - block = BLOCK (result); - /* Put the new block at the end of the free list. */ - _heapinfo[block].free.size = wantblocks; - _heapinfo[block].free.prev = _heapinfo[0].free.prev; - _heapinfo[block].free.next = 0; - _heapinfo[0].free.prev = block; - _heapinfo[_heapinfo[block].free.prev].free.next = block; - ++chunks_free; - bytes_free += wantblocks * BLOCKSIZE; - /* Now loop to use some of that block for this allocation. */ - } - } - - /* At this point we have found a suitable free list entry. - Figure out how to remove what we need from the list. */ - result = ADDRESS (block); - if (_heapinfo[block].free.size > blocks) - { - /* The block we found has a bit left over, - so relink the tail end back into the free list. */ - _heapinfo[block + blocks].free.size - = _heapinfo[block].free.size - blocks; - _heapinfo[block + blocks].free.next - = _heapinfo[block].free.next; - _heapinfo[block + blocks].free.prev - = _heapinfo[block].free.prev; - _heapinfo[_heapinfo[block].free.prev].free.next - = _heapinfo[_heapinfo[block].free.next].free.prev - = _heapindex = block + blocks; - } - else - { - /* The block exactly matches our requirements, - so just remove it from the list. */ - _heapinfo[_heapinfo[block].free.next].free.prev - = _heapinfo[block].free.prev; - _heapinfo[_heapinfo[block].free.prev].free.next - = _heapindex = _heapinfo[block].free.next; - --chunks_free; - } - - _heapinfo[block].busy.type = 0; - _heapinfo[block].busy.info.size = blocks; - ++chunks_used; - bytes_used += blocks * BLOCKSIZE; - bytes_free -= blocks * BLOCKSIZE; - - /* Mark all the blocks of the object just allocated except for the - first with a negative number so you can find the first block by - adding that adjustment. */ - while (--blocks > 0) - _heapinfo[block + blocks].busy.info.size = -blocks; - } - - return result; -} - -genptr_t -malloc (size) - size_t size; -{ -#ifdef RCHECK - struct hdr *hdr; -#endif - - nmalloc++; - - if (malloc_initialized == 0 && malloc_initialize () == 0) - return NULL; - -#ifdef RCHECK - hdr = (struct hdr *) imalloc (sizeof (struct hdr) + size + 1); - if (hdr == NULL) - return NULL; - - hdr->size = size; - hdr->magic = MAGICWORD; - ((char *) &hdr[1])[size] = MAGICBYTE; - zmemset ((genptr_t) (hdr + 1), MALLOCFLOOD, size); - return (genptr_t) (hdr + 1); -#else - return (imalloc (size)); -#endif -} - -/* Free a block of memory allocated by `malloc'. */ - -/* Return memory to the heap. */ -static void -ifree (ptr) - genptr_t ptr; -{ - int type; - size_t block, blocks; - register size_t i; - struct list *prev, *next; - genptr_t curbrk; - size_t lesscore_threshold; - register struct alignlist *l; - - if (ptr == NULL) - return; - - /* Threshold of free space at which we will return some to the system. */ - lesscore_threshold = FINAL_FREE_BLOCKS + 2 * malloc_extra_blocks; - - for (l = _aligned_blocks; l != NULL; l = l->next) - if (l->aligned == ptr) - { - l->aligned = NULL; /* Mark the slot in the list as free. */ - ptr = l->exact; - break; - } - - block = BLOCK (ptr); - - type = _heapinfo[block].busy.type; - switch (type) - { - case 0: - /* Get as many statistics as early as we can. */ - --chunks_used; - bytes_used -= _heapinfo[block].busy.info.size * BLOCKSIZE; - bytes_free += _heapinfo[block].busy.info.size * BLOCKSIZE; - - /* Find the free cluster previous to this one in the free list. - Start searching at the last block referenced; this may benefit - programs with locality of allocation. */ - i = _heapindex; - if (i > block) - while (i > block) - i = _heapinfo[i].free.prev; - else - { - do - i = _heapinfo[i].free.next; - while (i > 0 && i < block); - i = _heapinfo[i].free.prev; - } - - /* Determine how to link this block into the free list. */ - if (block == i + _heapinfo[i].free.size) - { - /* Coalesce this block with its predecessor. */ - _heapinfo[i].free.size += _heapinfo[block].busy.info.size; - block = i; - } - else - { - /* Really link this block back into the free list. */ - _heapinfo[block].free.size = _heapinfo[block].busy.info.size; - _heapinfo[block].free.next = _heapinfo[i].free.next; - _heapinfo[block].free.prev = i; - _heapinfo[i].free.next = block; - _heapinfo[_heapinfo[block].free.next].free.prev = block; - ++chunks_free; - } - - /* Now that the block is linked in, see if we can coalesce it - with its successor (by deleting its successor from the list - and adding in its size). */ - if (block + _heapinfo[block].free.size == _heapinfo[block].free.next) - { - _heapinfo[block].free.size - += _heapinfo[_heapinfo[block].free.next].free.size; - _heapinfo[block].free.next - = _heapinfo[_heapinfo[block].free.next].free.next; - _heapinfo[_heapinfo[block].free.next].free.prev = block; - --chunks_free; - } - - /* How many trailing free blocks are there now? */ - blocks = _heapinfo[block].free.size; - - /* Where is the current end of accessible core? */ - curbrk = default_morecore (0); - - if (_heaplimit != 0 && curbrk == ADDRESS (_heaplimit)) - { - /* The end of the malloc heap is at the end of accessible core. - It's possible that moving _heapinfo will allow us to - return some space to the system. */ - - size_t info_block = BLOCK (_heapinfo); - size_t info_blocks = _heapinfo[info_block].busy.info.size; - size_t prev_block = _heapinfo[block].free.prev; - size_t prev_blocks = _heapinfo[prev_block].free.size; - size_t next_block = _heapinfo[block].free.next; - size_t next_blocks = _heapinfo[next_block].free.size; - - if (/* Win if this block being freed is last in core, the info table - is just before it, the previous free block is just before the - info table, and the two free blocks together form a useful - amount to return to the system. */ - (block + blocks == _heaplimit && - info_block + info_blocks == block && - prev_block != 0 && prev_block + prev_blocks == info_block && - blocks + prev_blocks >= lesscore_threshold) || - /* Nope, not the case. We can also win if this block being - freed is just before the info table, and the table extends - to the end of core or is followed only by a free block, - and the total free space is worth returning to the system. */ - (block + blocks == info_block && - ((info_block + info_blocks == _heaplimit && - blocks >= lesscore_threshold) || - (info_block + info_blocks == next_block && - next_block + next_blocks == _heaplimit && - blocks + next_blocks >= lesscore_threshold))) - ) - { - malloc_info *newinfo; - size_t oldlimit = _heaplimit; - - /* Free the old info table, clearing _heaplimit to avoid - recursion into this code. We don't want to return the - table's blocks to the system before we have copied them to - the new location. */ - _heaplimit = 0; - ifree (_heapinfo); - _heaplimit = oldlimit; - - /* Tell malloc to search from the beginning of the heap for - free blocks, so it doesn't reuse the ones just freed. */ - _heapindex = 0; - - /* Allocate new space for the info table and move its data. */ - newinfo = (malloc_info *) imalloc (info_blocks - * BLOCKSIZE); - memmove (newinfo, _heapinfo, info_blocks * BLOCKSIZE); - _heapinfo = newinfo; - - /* We should now have coalesced the free block with the - blocks freed from the old info table. Examine the entire - trailing free block to decide below whether to return some - to the system. */ - block = _heapinfo[0].free.prev; - blocks = _heapinfo[block].free.size; - } - - /* Now see if we can return stuff to the system. */ - if (block + blocks == _heaplimit && blocks >= lesscore_threshold) - { - register size_t bytes = blocks * BLOCKSIZE; - _heaplimit -= blocks; - default_morecore (-bytes); - _heapinfo[_heapinfo[block].free.prev].free.next - = _heapinfo[block].free.next; - _heapinfo[_heapinfo[block].free.next].free.prev - = _heapinfo[block].free.prev; - block = _heapinfo[block].free.prev; - --chunks_free; - bytes_free -= bytes; - } - } - - /* Set the next search to begin at this block. */ - _heapindex = block; - break; - - default: - /* Do some of the statistics. */ - --chunks_used; - bytes_used -= 1 << type; - ++chunks_free; - bytes_free += 1 << type; - - /* Get the address of the first free fragment in this block. */ - prev = (struct list *) ((char *) ADDRESS (block) + - (_heapinfo[block].busy.info.frag.first << type)); - - if (_heapinfo[block].busy.info.frag.nfree == (BLOCKSIZE >> type) - 1) - { - /* If all fragments of this block are free, remove them - from the fragment list and free the whole block. */ - next = prev; - for (i = 1; i < (size_t) (BLOCKSIZE >> type); ++i) - next = next->next; - prev->prev->next = next; - if (next != NULL) - next->prev = prev->prev; - _heapinfo[block].busy.type = 0; - _heapinfo[block].busy.info.size = 1; - - /* Keep the statistics accurate. */ - ++chunks_used; - bytes_used += BLOCKSIZE; - chunks_free -= BLOCKSIZE >> type; - bytes_free -= BLOCKSIZE; - - ifree (ADDRESS (block)); - } - else if (_heapinfo[block].busy.info.frag.nfree != 0) - { - /* If some fragments of this block are free, link this - fragment into the fragment list after the first free - fragment of this block. */ - next = (struct list *) ptr; - next->next = prev->next; - next->prev = prev; - prev->next = next; - if (next->next != NULL) - next->next->prev = next; - ++_heapinfo[block].busy.info.frag.nfree; - } - else - { - /* No fragments of this block are free, so link this - fragment into the fragment list and announce that - it is the first free fragment of this block. */ - prev = (struct list *) ptr; - _heapinfo[block].busy.info.frag.nfree = 1; - _heapinfo[block].busy.info.frag.first = (unsigned long int) - ((unsigned long int) ((char *) ptr - (char *) NULL) - % BLOCKSIZE >> type); - prev->next = _fraghead[type].next; - prev->prev = &_fraghead[type]; - prev->prev->next = prev; - if (prev->next != NULL) - prev->next->prev = prev; - } - break; - } -} - -/* Return memory to the heap. */ -void -free (ptr) - genptr_t ptr; -{ -#ifdef RCHECK - struct hdr *hdr; -#endif - - nfree++; - - if (ptr == 0) - return; - -#ifdef RCHECK - hdr = ((struct hdr *) ptr) - 1; - checkhdr (hdr); - hdr->magic = MAGICFREE; - zmemset (ptr, FREEFLOOD, hdr->size); - ifree (hdr); -#else - ifree (ptr); -#endif -} - -/* Change the size of a block allocated by `malloc'. */ - -#ifndef HAVE_MEMMOVE -/* Snarfed directly from Emacs src/dispnew.c: - XXX Should use system bcopy if it handles overlap. */ - -/* Like bcopy except never gets confused by overlap. */ - -static void -malloc_safe_bcopy (afrom, ato, size) - genptr_t afrom; - genptr_t ato; - size_t size; -{ - char *from, *to; - - from = afrom; - to = ato; - if (size <= 0 || from == to) - return; - - /* If the source and destination don't overlap, then bcopy can - handle it. If they do overlap, but the destination is lower in - memory than the source, we'll assume bcopy can handle that. */ - if (to < from || from + size <= to) - bcopy (from, to, size); - - /* Otherwise, we'll copy from the end. */ - else - { - register char *endf = from + size; - register char *endt = to + size; - - /* If TO - FROM is large, then we should break the copy into - nonoverlapping chunks of TO - FROM bytes each. However, if - TO - FROM is small, then the bcopy function call overhead - makes this not worth it. The crossover point could be about - anywhere. Since I don't think the obvious copy loop is too - bad, I'm trying to err in its favor. */ - if (to - from < 64) - { - do - *--endt = *--endf; - while (endf != from); - } - else - { - for (;;) - { - endt -= (to - from); - endf -= (to - from); - - if (endt < to) - break; - - bcopy (endf, endt, to - from); - } - - /* If SIZE wasn't a multiple of TO - FROM, there will be a - little left over. The amount left over is - (endt + (to - from)) - to, which is endt - from. */ - bcopy (from, to, endt - from); - } - } -} -#endif /* !HAVE_MEMMOVE */ - -/* Resize the given region to the new size, returning a pointer - to the (possibly moved) region. This is optimized for speed; - some benchmarks seem to indicate that greater compactness is - achieved by unconditionally allocating and copying to a - new region. This module has incestuous knowledge of the - internals of both free and malloc. */ -static genptr_t -irealloc (ptr, size) - genptr_t ptr; - size_t size; -{ - genptr_t result; - int type; - size_t block, blocks, oldlimit; - - if (size == 0) - { - ifree (ptr); - return imalloc (0); - } - else if (ptr == NULL) - return imalloc (size); - - block = BLOCK (ptr); - - type = _heapinfo[block].busy.type; - switch (type) - { - case 0: - /* Maybe reallocate a large block to a small fragment. */ - if (size <= BLOCKSIZE / 2) - { - result = imalloc (size); - if (result != NULL) - { - memcpy (result, ptr, size); - ifree (ptr); - return result; - } - } - - /* The new size is a large allocation as well; - see if we can hold it in place. */ - blocks = BLOCKIFY (size); - if (blocks < _heapinfo[block].busy.info.size) - { - /* The new size is smaller; return - excess memory to the free list. */ - _heapinfo[block + blocks].busy.type = 0; - _heapinfo[block + blocks].busy.info.size - = _heapinfo[block].busy.info.size - blocks; - _heapinfo[block].busy.info.size = blocks; - /* We have just created a new chunk by splitting a chunk in two. - Now we will free this chunk; increment the statistics counter - so it doesn't become wrong when ifree decrements it. */ - ++chunks_used; - ifree (ADDRESS (block + blocks)); - result = ptr; - } - else if (blocks == _heapinfo[block].busy.info.size) - /* No size change necessary. */ - result = ptr; - else - { - /* Won't fit, so allocate a new region that will. - Free the old region first in case there is sufficient - adjacent free space to grow without moving. */ - blocks = _heapinfo[block].busy.info.size; - /* Prevent free from actually returning memory to the system. */ - oldlimit = _heaplimit; - _heaplimit = 0; - ifree (ptr); - result = imalloc (size); - if (_heaplimit == 0) - _heaplimit = oldlimit; - if (result == NULL) - { - /* Now we're really in trouble. We have to unfree - the thing we just freed. Unfortunately it might - have been coalesced with its neighbors. */ - if (_heapindex == block) - (void) imalloc (blocks * BLOCKSIZE); - else - { - genptr_t previous; - previous = imalloc ((block - _heapindex) * BLOCKSIZE); - (void) imalloc (blocks * BLOCKSIZE); - ifree (previous); - } - return NULL; - } - if (ptr != result) - memmove (result, ptr, blocks * BLOCKSIZE); - } - break; - - default: - /* Old size is a fragment; type is logarithm - to base two of the fragment size. */ - if (size > (size_t) (1 << (type - 1)) && - size <= (size_t) (1 << type)) - /* The new size is the same kind of fragment. */ - result = ptr; - else - { - /* The new size is different; allocate a new space, - and copy the lesser of the new size and the old. */ - result = imalloc (size); - if (result == NULL) - return NULL; - memcpy (result, ptr, min (size, (size_t) 1 << type)); - ifree (ptr); - } - break; - } - - return result; -} - -genptr_t -realloc (ptr, size) - genptr_t ptr; - size_t size; -{ -#ifdef RCHECK - struct hdr *hdr; - size_t osize; -#endif - - if (malloc_initialized == 0 && malloc_initialize () == 0) - return NULL; - - nrealloc++; - -#ifdef RCHECK - hdr = ((struct hdr *) ptr) - 1; - osize = hdr->size; - - checkhdr (hdr); - if (size < osize) - zmemset ((char *) ptr + size, FREEFLOOD, osize - size); - hdr = (struct hdr *) irealloc ((genptr_t) hdr, sizeof (struct hdr) + size + 1); - if (hdr == NULL) - return NULL; - - hdr->size = size; - hdr->magic = MAGICWORD; - ((char *) &hdr[1])[size] = MAGICBYTE; - if (size > osize) - zmemset ((char *) (hdr + 1) + osize, MALLOCFLOOD, size - osize); - return (genptr_t) (hdr + 1); -#else - return (irealloc (ptr, size)); -#endif -} - -/* Allocate an array of NMEMB elements each SIZE bytes long. - The entire array is initialized to zeros. */ -genptr_t -calloc (nmemb, size) - register size_t nmemb; - register size_t size; -{ - register genptr_t result; - - result = malloc (nmemb * size); - if (result != NULL) - (void) memset (result, 0, nmemb * size); - - return result; -} - -/* Define the `cfree' alias for `free'. */ -void -cfree (ptr) - genptr_t ptr; -{ - free (ptr); -} - -genptr_t -memalign (alignment, size) - size_t alignment; - size_t size; -{ - genptr_t result; - unsigned long int adj, lastadj; - - /* Allocate a block with enough extra space to pad the block with up to - (ALIGNMENT - 1) bytes if necessary. */ - result = malloc (size + alignment - 1); - if (result == NULL) - return NULL; - - /* Figure out how much we will need to pad this particular block - to achieve the required alignment. */ - adj = (unsigned long int) ((char *) result - (char *) NULL) % alignment; - - do - { - /* Reallocate the block with only as much excess as it needs. */ - free (result); - result = malloc (adj + size); - if (result == NULL) /* Impossible unless interrupted. */ - return NULL; - - lastadj = adj; - adj = (unsigned long int) ((char *) result - (char *) NULL) % alignment; - /* It's conceivable we might have been so unlucky as to get a - different block with weaker alignment. If so, this block is too - short to contain SIZE after alignment correction. So we must - try again and get another block, slightly larger. */ - } while (adj > lastadj); - - if (adj != 0) - { - /* Record this block in the list of aligned blocks, so that `free' - can identify the pointer it is passed, which will be in the middle - of an allocated block. */ - - struct alignlist *l; - for (l = _aligned_blocks; l != NULL; l = l->next) - if (l->aligned == NULL) - /* This slot is free. Use it. */ - break; - if (l == NULL) - { - l = (struct alignlist *) imalloc (sizeof (struct alignlist)); - if (l == NULL) - { - free (result); - return NULL; - } - l->next = _aligned_blocks; - _aligned_blocks = l; - } - l->exact = result; - result = l->aligned = (char *) result + alignment - adj; - } - - return result; -} - -/* On some ANSI C systems, some libc functions call _malloc, _free - and _realloc. Make them use the GNU functions. */ - -genptr_t -_malloc (size) - size_t size; -{ - return malloc (size); -} - -void -_free (ptr) - genptr_t ptr; -{ - free (ptr); -} - -genptr_t -_realloc (ptr, size) - genptr_t ptr; - size_t size; -{ - return realloc (ptr, size); -} - -struct mstats -mstats () -{ - struct mstats result; - - result.bytes_total = (char *) default_morecore (0) - _heapbase; - result.chunks_used = chunks_used; - result.bytes_used = bytes_used; - result.chunks_free = chunks_free; - result.bytes_free = bytes_free; - result.nmalloc = nmalloc; - result.nrealloc = nrealloc; - result.nfree = nfree; - result.nsbrk = nsbrk; - result.tsbrk = tsbrk; - result.negsbrk = negsbrk; - result.tnegsbrk = tnegsbrk; - - return result; -} - -#ifdef RCHECK -/* Standard debugging hooks for `malloc'. */ - -static void -zmemset (ptr, val, size) - genptr_t ptr; - int val; - size_t size; -{ - char *cp = ptr; - - while (size--) - *cp++ = val; -} - -static enum mcheck_status -checkhdr (hdr) - const struct hdr *hdr; -{ - enum mcheck_status status; - - switch (hdr->magic) - { - default: - status = MCHECK_HEAD; - break; - case MAGICFREE: - status = MCHECK_FREE; - break; - case MAGICWORD: - if (((char *) &hdr[1])[hdr->size] != MAGICBYTE) - status = MCHECK_TAIL; - else - status = MCHECK_OK; - break; - } - if (status != MCHECK_OK) - mabort (status); - return status; -} - -#ifndef botch -botch (msg) - char *msg; -{ - fprintf (stderr, "mcheck: %s\n", msg); - fflush (stderr); - abort (); -} -#endif - -static void -mabort (status) - enum mcheck_status status; -{ - const char *msg; - - switch (status) - { - case MCHECK_OK: - msg = "memory is consistent, library is buggy"; - break; - case MCHECK_HEAD: - msg = "memory clobbered before allocated block"; - break; - case MCHECK_TAIL: - msg = "memory clobbered past end of allocated block"; - break; - case MCHECK_FREE: - msg = "block freed twice"; - break; - default: - msg = "bogus mcheck_status, library is buggy"; - break; - } - - botch (msg); -} - -enum mcheck_status -mprobe (ptr) - genptr_t ptr; -{ - return checkhdr ((struct hdr *)ptr); -} - -#ifndef STDIO_H_INCLUDED -# include -#endif - -void -print_malloc_stats (s) - char *s; -{ - struct mstats ms; - - ms = mstats (); - fprintf (stderr, "Memory allocation statistics: %s\n", s ? s : ""); - fprintf (stderr, "\nTotal chunks in use: %d, total chunks free: %d\n", - ms.chunks_used, ms.chunks_free); - fprintf (stderr, "Total bytes in use: %u, total bytes free: %u\n", - ms.bytes_used, ms.bytes_free); - fprintf (stderr, "Total bytes (from heapbase): %d\n", ms.bytes_total); - fprintf (stderr, "Total mallocs: %d, total frees: %d, total reallocs: %d\n", - ms.nmalloc, ms.nfree, ms.nrealloc); - fprintf (stderr, "Total sbrks: %d, total bytes via sbrk: %d\n", - ms.nsbrk, ms.tsbrk); - fprintf (stderr, "Total negative sbrks: %d, total bytes returned to kernel: %d\n", - ms.negsbrk, ms.tnegsbrk); -} -#endif /* RCHECK */ diff --git a/lib/malloc/OLD/ogmalloc.c b/lib/malloc/OLD/ogmalloc.c deleted file mode 100644 index 6b3600af0..000000000 --- a/lib/malloc/OLD/ogmalloc.c +++ /dev/null @@ -1,1579 +0,0 @@ -/* DO NOT EDIT THIS FILE -- it is automagically generated. -*- C -*- */ - -#define _MALLOC_INTERNAL - -/* The malloc headers and source files from the C library follow here. */ - -/* Declarations for `malloc' and friends. - Copyright 1990, 91, 92, 93, 95, 96 Free Software Foundation, Inc. - Written May 1989 by Mike Haertel. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -This 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111 USA. - - The author may be reached (Email) at the address mike@ai.mit.edu, - or (US mail) as Mike Haertel c/o Free Software Foundation. */ - -#ifndef _MALLOC_H - -#define _MALLOC_H 1 - -#ifdef _MALLOC_INTERNAL - -#ifdef HAVE_CONFIG_H -#include -#endif - -#if defined(_LIBC) || defined(STDC_HEADERS) || defined(USG) -#include -#else -#ifndef memset -#define memset(s, zero, n) bzero ((s), (n)) -#endif -#ifndef memcpy -#define memcpy(d, s, n) bcopy ((s), (d), (n)) -#endif -#endif - -#if defined (__GNU_LIBRARY__) || (defined (__STDC__) && __STDC__) -#include -#else -#ifndef CHAR_BIT -#define CHAR_BIT 8 -#endif -#endif - -#ifdef HAVE_UNISTD_H -#include -#endif - -#endif /* _MALLOC_INTERNAL. */ - - -#ifdef __cplusplus -extern "C" -{ -#endif - -#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) -#undef __P -#define __P(args) args -#undef __ptr_t -#define __ptr_t void * -#else /* Not C++ or ANSI C. */ -#undef __P -#define __P(args) () -#undef const -#define const -#undef __ptr_t -#define __ptr_t char * -#endif /* C++ or ANSI C. */ - -#if defined (__STDC__) && __STDC__ -#include -#define __malloc_size_t size_t -#define __malloc_ptrdiff_t ptrdiff_t -#else -#define __malloc_size_t unsigned int -#define __malloc_ptrdiff_t int -#endif - -#ifndef NULL -#define NULL 0 -#endif - - -/* Allocate SIZE bytes of memory. */ -extern __ptr_t malloc __P ((__malloc_size_t __size)); -/* Re-allocate the previously allocated block - in __ptr_t, making the new block SIZE bytes long. */ -extern __ptr_t realloc __P ((__ptr_t __ptr, __malloc_size_t __size)); -/* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */ -extern __ptr_t calloc __P ((__malloc_size_t __nmemb, __malloc_size_t __size)); -/* Free a block allocated by `malloc', `realloc' or `calloc'. */ -extern void free __P ((__ptr_t __ptr)); - -/* Allocate SIZE bytes allocated to ALIGNMENT bytes. */ -#if ! (defined (_MALLOC_INTERNAL) && __DJGPP__ - 0 == 1) /* Avoid conflict. */ -extern __ptr_t memalign __P ((__malloc_size_t __alignment, - __malloc_size_t __size)); -#endif - -/* Allocate SIZE bytes on a page boundary. */ -#if ! (defined (_MALLOC_INTERNAL) && defined (emacs)) /* Avoid conflict. */ -extern __ptr_t valloc __P ((__malloc_size_t __size)); -#endif - - -#ifdef _MALLOC_INTERNAL - -/* The allocator divides the heap into blocks of fixed size; large - requests receive one or more whole blocks, and small requests - receive a fragment of a block. Fragment sizes are powers of two, - and all fragments of a block are the same size. When all the - fragments in a block have been freed, the block itself is freed. */ -#define INT_BIT (CHAR_BIT * sizeof(int)) -#define BLOCKLOG (INT_BIT > 16 ? 12 : 9) -#define BLOCKSIZE (1 << BLOCKLOG) -#define BLOCKIFY(SIZE) (((SIZE) + BLOCKSIZE - 1) / BLOCKSIZE) - -/* Determine the amount of memory spanned by the initial heap table - (not an absolute limit). */ -#define HEAP (INT_BIT > 16 ? 4194304 : 65536) - -/* Number of contiguous free blocks allowed to build up at the end of - memory before they will be returned to the system. */ -#define FINAL_FREE_BLOCKS 8 - -/* Data structure giving per-block information. */ -typedef union - { - /* Heap information for a busy block. */ - struct - { - /* Zero for a large (multiblock) object, or positive giving the - logarithm to the base two of the fragment size. */ - int type; - union - { - struct - { - __malloc_size_t nfree; /* Free frags in a fragmented block. */ - __malloc_size_t first; /* First free fragment of the block. */ - } frag; - /* For a large object, in its first block, this has the number - of blocks in the object. In the other blocks, this has a - negative number which says how far back the first block is. */ - __malloc_ptrdiff_t size; - } info; - } busy; - /* Heap information for a free block - (that may be the first of a free cluster). */ - struct - { - __malloc_size_t size; /* Size (in blocks) of a free cluster. */ - __malloc_size_t next; /* Index of next free cluster. */ - __malloc_size_t prev; /* Index of previous free cluster. */ - } free; - } malloc_info; - -/* Pointer to first block of the heap. */ -extern char *_heapbase; - -/* Table indexed by block number giving per-block information. */ -extern malloc_info *_heapinfo; - -/* Address to block number and vice versa. */ -#define BLOCK(A) (((char *) (A) - _heapbase) / BLOCKSIZE + 1) -#define ADDRESS(B) ((__ptr_t) (((B) - 1) * BLOCKSIZE + _heapbase)) - -/* Current search index for the heap table. */ -extern __malloc_size_t _heapindex; - -/* Limit of valid info table indices. */ -extern __malloc_size_t _heaplimit; - -/* Doubly linked lists of free fragments. */ -struct list - { - struct list *next; - struct list *prev; - }; - -/* Free list headers for each fragment size. */ -extern struct list _fraghead[]; - -/* List of blocks allocated with `memalign' (or `valloc'). */ -struct alignlist - { - struct alignlist *next; - __ptr_t aligned; /* The address that memaligned returned. */ - __ptr_t exact; /* The address that malloc returned. */ - }; -extern struct alignlist *_aligned_blocks; - -/* Instrumentation. */ -extern __malloc_size_t _chunks_used; -extern __malloc_size_t _bytes_used; -extern __malloc_size_t _chunks_free; -extern __malloc_size_t _bytes_free; - -/* Internal versions of `malloc', `realloc', and `free' - used when these functions need to call each other. - They are the same but don't call the hooks. */ -extern __ptr_t _malloc_internal __P ((__malloc_size_t __size)); -extern __ptr_t _realloc_internal __P ((__ptr_t __ptr, __malloc_size_t __size)); -extern void _free_internal __P ((__ptr_t __ptr)); - -#endif /* _MALLOC_INTERNAL. */ - -/* Given an address in the middle of a malloc'd object, - return the address of the beginning of the object. */ -extern __ptr_t malloc_find_object_address __P ((__ptr_t __ptr)); - -/* Underlying allocation function; successive calls should - return contiguous pieces of memory. */ -extern __ptr_t (*__morecore) __P ((__malloc_ptrdiff_t __size)); - -/* Default value of `__morecore'. */ -extern __ptr_t __default_morecore __P ((__malloc_ptrdiff_t __size)); - -/* If not NULL, this function is called after each time - `__morecore' is called to increase the data size. */ -extern void (*__after_morecore_hook) __P ((void)); - -/* Number of extra blocks to get each time we ask for more core. - This reduces the frequency of calling `(*__morecore)'. */ -extern __malloc_size_t __malloc_extra_blocks; - -/* Nonzero if `malloc' has been called and done its initialization. */ -extern int __malloc_initialized; -/* Function called to initialize malloc data structures. */ -extern int __malloc_initialize __P ((void)); - -/* Hooks for debugging versions. */ -extern void (*__malloc_initialize_hook) __P ((void)); -extern void (*__free_hook) __P ((__ptr_t __ptr)); -extern __ptr_t (*__malloc_hook) __P ((__malloc_size_t __size)); -extern __ptr_t (*__realloc_hook) __P ((__ptr_t __ptr, __malloc_size_t __size)); -extern __ptr_t (*__memalign_hook) __P ((__malloc_size_t __size, - __malloc_size_t __alignment)); - -/* Return values for `mprobe': these are the kinds of inconsistencies that - `mcheck' enables detection of. */ -enum mcheck_status - { - MCHECK_DISABLED = -1, /* Consistency checking is not turned on. */ - MCHECK_OK, /* Block is fine. */ - MCHECK_FREE, /* Block freed twice. */ - MCHECK_HEAD, /* Memory before the block was clobbered. */ - MCHECK_TAIL /* Memory after the block was clobbered. */ - }; - -/* Activate a standard collection of debugging hooks. This must be called - before `malloc' is ever called. ABORTFUNC is called with an error code - (see enum above) when an inconsistency is detected. If ABORTFUNC is - null, the standard function prints on stderr and then calls `abort'. */ -extern int mcheck __P ((void (*__abortfunc) __P ((enum mcheck_status)))); - -/* Check for aberrations in a particular malloc'd block. You must have - called `mcheck' already. These are the same checks that `mcheck' does - when you free or reallocate a block. */ -extern enum mcheck_status mprobe __P ((__ptr_t __ptr)); - -/* Activate a standard collection of tracing hooks. */ -extern void mtrace __P ((void)); -extern void muntrace __P ((void)); - -/* Statistics available to the user. */ -struct mstats - { - __malloc_size_t bytes_total; /* Total size of the heap. */ - __malloc_size_t chunks_used; /* Chunks allocated by the user. */ - __malloc_size_t bytes_used; /* Byte total of user-allocated chunks. */ - __malloc_size_t chunks_free; /* Chunks in the free list. */ - __malloc_size_t bytes_free; /* Byte total of chunks in the free list. */ - }; - -/* Pick up the current statistics. */ -extern struct mstats mstats __P ((void)); - -/* Call WARNFUN with a warning message when memory usage is high. */ -extern void memory_warnings __P ((__ptr_t __start, - void (*__warnfun) __P ((const char *)))); - - -/* Relocating allocator. */ - -/* Allocate SIZE bytes, and store the address in *HANDLEPTR. */ -extern __ptr_t r_alloc __P ((__ptr_t *__handleptr, __malloc_size_t __size)); - -/* Free the storage allocated in HANDLEPTR. */ -extern void r_alloc_free __P ((__ptr_t *__handleptr)); - -/* Adjust the block at HANDLEPTR to be SIZE bytes long. */ -extern __ptr_t r_re_alloc __P ((__ptr_t *__handleptr, __malloc_size_t __size)); - - -#ifdef __cplusplus -} -#endif - -#endif /* malloc.h */ -/* Memory allocator `malloc'. - Copyright 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. - Written May 1989 by Mike Haertel. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -This 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111 USA. - - The author may be reached (Email) at the address mike@ai.mit.edu, - or (US mail) as Mike Haertel c/o Free Software Foundation. */ - -#ifndef _MALLOC_INTERNAL -#define _MALLOC_INTERNAL -#include -#endif -#include - -/* How to really get more memory. */ -__ptr_t (*__morecore) __P ((ptrdiff_t __size)) = __default_morecore; - -/* Debugging hook for `malloc'. */ -__ptr_t (*__malloc_hook) __P ((__malloc_size_t __size)); - -/* Pointer to the base of the first block. */ -char *_heapbase; - -/* Block information table. Allocated with align/__free (not malloc/free). */ -malloc_info *_heapinfo; - -/* Number of info entries. */ -static __malloc_size_t heapsize; - -/* Search index in the info table. */ -__malloc_size_t _heapindex; - -/* Limit of valid info table indices. */ -__malloc_size_t _heaplimit; - -/* Free lists for each fragment size. */ -struct list _fraghead[BLOCKLOG]; - -/* Instrumentation. */ -__malloc_size_t _chunks_used; -__malloc_size_t _bytes_used; -__malloc_size_t _chunks_free; -__malloc_size_t _bytes_free; - -/* Are you experienced? */ -int __malloc_initialized; - -__malloc_size_t __malloc_extra_blocks; - -void (*__malloc_initialize_hook) __P ((void)); -void (*__after_morecore_hook) __P ((void)); - - -/* Aligned allocation. */ -static __ptr_t align __P ((__malloc_size_t)); -static __ptr_t -align (size) - __malloc_size_t size; -{ - __ptr_t result; - unsigned long int adj; - - result = (*__morecore) (size); - adj = (unsigned long int) ((unsigned long int) ((char *) result - - (char *) NULL)) % BLOCKSIZE; - if (adj != 0) - { - __ptr_t new; - adj = BLOCKSIZE - adj; - new = (*__morecore) (adj); - result = (char *) result + adj; - } - - if (__after_morecore_hook) - (*__after_morecore_hook) (); - - return result; -} - -/* Get SIZE bytes, if we can get them starting at END. - Return the address of the space we got. - If we cannot get space at END, fail and return -1. */ -static __ptr_t get_contiguous_space __P ((__malloc_ptrdiff_t, __ptr_t)); -static __ptr_t -get_contiguous_space (size, position) - __malloc_ptrdiff_t size; - __ptr_t position; -{ - __ptr_t before; - __ptr_t after; - - before = (*__morecore) (0); - /* If we can tell in advance that the break is at the wrong place, - fail now. */ - if (before != position) - return 0; - - /* Allocate SIZE bytes and get the address of them. */ - after = (*__morecore) (size); - if (!after) - return 0; - - /* It was not contiguous--reject it. */ - if (after != position) - { - (*__morecore) (- size); - return 0; - } - - return after; -} - - -/* This is called when `_heapinfo' and `heapsize' have just - been set to describe a new info table. Set up the table - to describe itself and account for it in the statistics. */ -static void register_heapinfo __P ((void)); -#ifdef __GNUC__ -__inline__ -#endif -static void -register_heapinfo () -{ - __malloc_size_t block, blocks; - - block = BLOCK (_heapinfo); - blocks = BLOCKIFY (heapsize * sizeof (malloc_info)); - - /* Account for the _heapinfo block itself in the statistics. */ - _bytes_used += blocks * BLOCKSIZE; - ++_chunks_used; - - /* Describe the heapinfo block itself in the heapinfo. */ - _heapinfo[block].busy.type = 0; - _heapinfo[block].busy.info.size = blocks; - /* Leave back-pointers for malloc_find_address. */ - while (--blocks > 0) - _heapinfo[block + blocks].busy.info.size = -blocks; -} - -/* Set everything up and remember that we have. */ -int -__malloc_initialize () -{ - if (__malloc_initialized) - return 0; - - if (__malloc_initialize_hook) - (*__malloc_initialize_hook) (); - - heapsize = HEAP / BLOCKSIZE; - _heapinfo = (malloc_info *) align (heapsize * sizeof (malloc_info)); - if (_heapinfo == NULL) - return 0; - memset (_heapinfo, 0, heapsize * sizeof (malloc_info)); - _heapinfo[0].free.size = 0; - _heapinfo[0].free.next = _heapinfo[0].free.prev = 0; - _heapindex = 0; - _heapbase = (char *) _heapinfo; - _heaplimit = BLOCK (_heapbase + heapsize * sizeof (malloc_info)); - - register_heapinfo (); - - __malloc_initialized = 1; - return 1; -} - -static int morecore_recursing; - -/* Get neatly aligned memory, initializing or - growing the heap info table as necessary. */ -static __ptr_t morecore __P ((__malloc_size_t)); -static __ptr_t -morecore (size) - __malloc_size_t size; -{ - __ptr_t result; - malloc_info *newinfo, *oldinfo; - __malloc_size_t newsize; - - if (morecore_recursing) - /* Avoid recursion. The caller will know how to handle a null return. */ - return NULL; - - result = align (size); - if (result == NULL) - return NULL; - - /* Check if we need to grow the info table. */ - if ((__malloc_size_t) BLOCK ((char *) result + size) > heapsize) - { - /* Calculate the new _heapinfo table size. We do not account for the - added blocks in the table itself, as we hope to place them in - existing free space, which is already covered by part of the - existing table. */ - newsize = heapsize; - do - newsize *= 2; - while ((__malloc_size_t) BLOCK ((char *) result + size) > newsize); - - /* We must not reuse existing core for the new info table when called - from realloc in the case of growing a large block, because the - block being grown is momentarily marked as free. In this case - _heaplimit is zero so we know not to reuse space for internal - allocation. */ - if (_heaplimit != 0) - { - /* First try to allocate the new info table in core we already - have, in the usual way using realloc. If realloc cannot - extend it in place or relocate it to existing sufficient core, - we will get called again, and the code above will notice the - `morecore_recursing' flag and return null. */ - int save = errno; /* Don't want to clobber errno with ENOMEM. */ - morecore_recursing = 1; - newinfo = (malloc_info *) _realloc_internal - (_heapinfo, newsize * sizeof (malloc_info)); - morecore_recursing = 0; - if (newinfo == NULL) - errno = save; - else - { - /* We found some space in core, and realloc has put the old - table's blocks on the free list. Now zero the new part - of the table and install the new table location. */ - memset (&newinfo[heapsize], 0, - (newsize - heapsize) * sizeof (malloc_info)); - _heapinfo = newinfo; - heapsize = newsize; - goto got_heap; - } - } - - /* Allocate new space for the malloc info table. */ - while (1) - { - newinfo = (malloc_info *) align (newsize * sizeof (malloc_info)); - - /* Did it fail? */ - if (newinfo == NULL) - { - (*__morecore) (-size); - return NULL; - } - - /* Is it big enough to record status for its own space? - If so, we win. */ - if ((__malloc_size_t) BLOCK ((char *) newinfo - + newsize * sizeof (malloc_info)) - < newsize) - break; - - /* Must try again. First give back most of what we just got. */ - (*__morecore) (- newsize * sizeof (malloc_info)); - newsize *= 2; - } - - /* Copy the old table to the beginning of the new, - and zero the rest of the new table. */ - memcpy (newinfo, _heapinfo, heapsize * sizeof (malloc_info)); - memset (&newinfo[heapsize], 0, - (newsize - heapsize) * sizeof (malloc_info)); - oldinfo = _heapinfo; - _heapinfo = newinfo; - heapsize = newsize; - - register_heapinfo (); - - /* Reset _heaplimit so _free_internal never decides - it can relocate or resize the info table. */ - _heaplimit = 0; - _free_internal (oldinfo); - - /* The new heap limit includes the new table just allocated. */ - _heaplimit = BLOCK ((char *) newinfo + heapsize * sizeof (malloc_info)); - return result; - } - - got_heap: - _heaplimit = BLOCK ((char *) result + size); - return result; -} - -/* Allocate memory from the heap. */ -__ptr_t -_malloc_internal (size) - __malloc_size_t size; -{ - __ptr_t result; - __malloc_size_t block, blocks, lastblocks, start; - register __malloc_size_t i; - struct list *next; - - /* ANSI C allows `malloc (0)' to either return NULL, or to return a - valid address you can realloc and free (though not dereference). - - It turns out that some extant code (sunrpc, at least Ultrix's version) - expects `malloc (0)' to return non-NULL and breaks otherwise. - Be compatible. */ - -#if 0 - if (size == 0) - return NULL; -#endif - - if (size < sizeof (struct list)) - size = sizeof (struct list); - -#ifdef SUNOS_LOCALTIME_BUG - if (size < 16) - size = 16; -#endif - - /* Determine the allocation policy based on the request size. */ - if (size <= BLOCKSIZE / 2) - { - /* Small allocation to receive a fragment of a block. - Determine the logarithm to base two of the fragment size. */ - register __malloc_size_t log = 1; - --size; - while ((size /= 2) != 0) - ++log; - - /* Look in the fragment lists for a - free fragment of the desired size. */ - next = _fraghead[log].next; - if (next != NULL) - { - /* There are free fragments of this size. - Pop a fragment out of the fragment list and return it. - Update the block's nfree and first counters. */ - result = (__ptr_t) next; - next->prev->next = next->next; - if (next->next != NULL) - next->next->prev = next->prev; - block = BLOCK (result); - if (--_heapinfo[block].busy.info.frag.nfree != 0) - _heapinfo[block].busy.info.frag.first = (unsigned long int) - ((unsigned long int) ((char *) next->next - (char *) NULL) - % BLOCKSIZE) >> log; - - /* Update the statistics. */ - ++_chunks_used; - _bytes_used += 1 << log; - --_chunks_free; - _bytes_free -= 1 << log; - } - else - { - /* No free fragments of the desired size, so get a new block - and break it into fragments, returning the first. */ - result = malloc (BLOCKSIZE); - if (result == NULL) - return NULL; - - /* Link all fragments but the first into the free list. */ - next = (struct list *) ((char *) result + (1 << log)); - next->next = NULL; - next->prev = &_fraghead[log]; - _fraghead[log].next = next; - - for (i = 2; i < (__malloc_size_t) (BLOCKSIZE >> log); ++i) - { - next = (struct list *) ((char *) result + (i << log)); - next->next = _fraghead[log].next; - next->prev = &_fraghead[log]; - next->prev->next = next; - next->next->prev = next; - } - - /* Initialize the nfree and first counters for this block. */ - block = BLOCK (result); - _heapinfo[block].busy.type = log; - _heapinfo[block].busy.info.frag.nfree = i - 1; - _heapinfo[block].busy.info.frag.first = i - 1; - - _chunks_free += (BLOCKSIZE >> log) - 1; - _bytes_free += BLOCKSIZE - (1 << log); - _bytes_used -= BLOCKSIZE - (1 << log); - } - } - else - { - /* Large allocation to receive one or more blocks. - Search the free list in a circle starting at the last place visited. - If we loop completely around without finding a large enough - space we will have to get more memory from the system. */ - blocks = BLOCKIFY (size); - start = block = _heapindex; - while (_heapinfo[block].free.size < blocks) - { - block = _heapinfo[block].free.next; - if (block == start) - { - /* Need to get more from the system. Get a little extra. */ - __malloc_size_t wantblocks = blocks + __malloc_extra_blocks; - block = _heapinfo[0].free.prev; - lastblocks = _heapinfo[block].free.size; - /* Check to see if the new core will be contiguous with the - final free block; if so we don't need to get as much. */ - if (_heaplimit != 0 && block + lastblocks == _heaplimit && - /* We can't do this if we will have to make the heap info - table bigger to accomodate the new space. */ - block + wantblocks <= heapsize && - get_contiguous_space ((wantblocks - lastblocks) * BLOCKSIZE, - ADDRESS (block + lastblocks))) - { - /* We got it contiguously. Which block we are extending - (the `final free block' referred to above) might have - changed, if it got combined with a freed info table. */ - block = _heapinfo[0].free.prev; - _heapinfo[block].free.size += (wantblocks - lastblocks); - _bytes_free += (wantblocks - lastblocks) * BLOCKSIZE; - _heaplimit += wantblocks - lastblocks; - continue; - } - result = morecore (wantblocks * BLOCKSIZE); - if (result == NULL) - return NULL; - block = BLOCK (result); - /* Put the new block at the end of the free list. */ - _heapinfo[block].free.size = wantblocks; - _heapinfo[block].free.prev = _heapinfo[0].free.prev; - _heapinfo[block].free.next = 0; - _heapinfo[0].free.prev = block; - _heapinfo[_heapinfo[block].free.prev].free.next = block; - ++_chunks_free; - /* Now loop to use some of that block for this allocation. */ - } - } - - /* At this point we have found a suitable free list entry. - Figure out how to remove what we need from the list. */ - result = ADDRESS (block); - if (_heapinfo[block].free.size > blocks) - { - /* The block we found has a bit left over, - so relink the tail end back into the free list. */ - _heapinfo[block + blocks].free.size - = _heapinfo[block].free.size - blocks; - _heapinfo[block + blocks].free.next - = _heapinfo[block].free.next; - _heapinfo[block + blocks].free.prev - = _heapinfo[block].free.prev; - _heapinfo[_heapinfo[block].free.prev].free.next - = _heapinfo[_heapinfo[block].free.next].free.prev - = _heapindex = block + blocks; - } - else - { - /* The block exactly matches our requirements, - so just remove it from the list. */ - _heapinfo[_heapinfo[block].free.next].free.prev - = _heapinfo[block].free.prev; - _heapinfo[_heapinfo[block].free.prev].free.next - = _heapindex = _heapinfo[block].free.next; - --_chunks_free; - } - - _heapinfo[block].busy.type = 0; - _heapinfo[block].busy.info.size = blocks; - ++_chunks_used; - _bytes_used += blocks * BLOCKSIZE; - _bytes_free -= blocks * BLOCKSIZE; - - /* Mark all the blocks of the object just allocated except for the - first with a negative number so you can find the first block by - adding that adjustment. */ - while (--blocks > 0) - _heapinfo[block + blocks].busy.info.size = -blocks; - } - - return result; -} - -__ptr_t -malloc (size) - __malloc_size_t size; -{ - if (!__malloc_initialized && !__malloc_initialize ()) - return NULL; - - return (__malloc_hook != NULL ? *__malloc_hook : _malloc_internal) (size); -} - -#ifndef _LIBC - -/* On some ANSI C systems, some libc functions call _malloc, _free - and _realloc. Make them use the GNU functions. */ - -__ptr_t -_malloc (size) - __malloc_size_t size; -{ - return malloc (size); -} - -void -_free (ptr) - __ptr_t ptr; -{ - free (ptr); -} - -__ptr_t -_realloc (ptr, size) - __ptr_t ptr; - __malloc_size_t size; -{ - return realloc (ptr, size); -} - -#endif -/* Free a block of memory allocated by `malloc'. - Copyright 1990, 1991, 1992, 1994, 1995 Free Software Foundation, Inc. - Written May 1989 by Mike Haertel. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -This 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111 USA. - - The author may be reached (Email) at the address mike@ai.mit.edu, - or (US mail) as Mike Haertel c/o Free Software Foundation. */ - -#ifndef _MALLOC_INTERNAL -#define _MALLOC_INTERNAL -#include -#endif - - -/* Cope with systems lacking `memmove'. */ -#ifndef memmove -#if (defined (MEMMOVE_MISSING) || \ - !defined(_LIBC) && !defined(STDC_HEADERS) && !defined(USG)) -#ifdef emacs -#undef __malloc_safe_bcopy -#define __malloc_safe_bcopy safe_bcopy -#endif -/* This function is defined in realloc.c. */ -extern void __malloc_safe_bcopy __P ((__ptr_t, __ptr_t, __malloc_size_t)); -#define memmove(to, from, size) __malloc_safe_bcopy ((from), (to), (size)) -#endif -#endif - - -/* Debugging hook for free. */ -void (*__free_hook) __P ((__ptr_t __ptr)); - -/* List of blocks allocated by memalign. */ -struct alignlist *_aligned_blocks = NULL; - -/* Return memory to the heap. - Like `free' but don't call a __free_hook if there is one. */ -void -_free_internal (ptr) - __ptr_t ptr; -{ - int type; - __malloc_size_t block, blocks; - register __malloc_size_t i; - struct list *prev, *next; - __ptr_t curbrk; - const __malloc_size_t lesscore_threshold - /* Threshold of free space at which we will return some to the system. */ - = FINAL_FREE_BLOCKS + 2 * __malloc_extra_blocks; - - register struct alignlist *l; - - if (ptr == NULL) - return; - - for (l = _aligned_blocks; l != NULL; l = l->next) - if (l->aligned == ptr) - { - l->aligned = NULL; /* Mark the slot in the list as free. */ - ptr = l->exact; - break; - } - - block = BLOCK (ptr); - - type = _heapinfo[block].busy.type; - switch (type) - { - case 0: - /* Get as many statistics as early as we can. */ - --_chunks_used; - _bytes_used -= _heapinfo[block].busy.info.size * BLOCKSIZE; - _bytes_free += _heapinfo[block].busy.info.size * BLOCKSIZE; - - /* Find the free cluster previous to this one in the free list. - Start searching at the last block referenced; this may benefit - programs with locality of allocation. */ - i = _heapindex; - if (i > block) - while (i > block) - i = _heapinfo[i].free.prev; - else - { - do - i = _heapinfo[i].free.next; - while (i > 0 && i < block); - i = _heapinfo[i].free.prev; - } - - /* Determine how to link this block into the free list. */ - if (block == i + _heapinfo[i].free.size) - { - /* Coalesce this block with its predecessor. */ - _heapinfo[i].free.size += _heapinfo[block].busy.info.size; - block = i; - } - else - { - /* Really link this block back into the free list. */ - _heapinfo[block].free.size = _heapinfo[block].busy.info.size; - _heapinfo[block].free.next = _heapinfo[i].free.next; - _heapinfo[block].free.prev = i; - _heapinfo[i].free.next = block; - _heapinfo[_heapinfo[block].free.next].free.prev = block; - ++_chunks_free; - } - - /* Now that the block is linked in, see if we can coalesce it - with its successor (by deleting its successor from the list - and adding in its size). */ - if (block + _heapinfo[block].free.size == _heapinfo[block].free.next) - { - _heapinfo[block].free.size - += _heapinfo[_heapinfo[block].free.next].free.size; - _heapinfo[block].free.next - = _heapinfo[_heapinfo[block].free.next].free.next; - _heapinfo[_heapinfo[block].free.next].free.prev = block; - --_chunks_free; - } - - /* How many trailing free blocks are there now? */ - blocks = _heapinfo[block].free.size; - - /* Where is the current end of accessible core? */ - curbrk = (*__morecore) (0); - - if (_heaplimit != 0 && curbrk == ADDRESS (_heaplimit)) - { - /* The end of the malloc heap is at the end of accessible core. - It's possible that moving _heapinfo will allow us to - return some space to the system. */ - - __malloc_size_t info_block = BLOCK (_heapinfo); - __malloc_size_t info_blocks = _heapinfo[info_block].busy.info.size; - __malloc_size_t prev_block = _heapinfo[block].free.prev; - __malloc_size_t prev_blocks = _heapinfo[prev_block].free.size; - __malloc_size_t next_block = _heapinfo[block].free.next; - __malloc_size_t next_blocks = _heapinfo[next_block].free.size; - - if (/* Win if this block being freed is last in core, the info table - is just before it, the previous free block is just before the - info table, and the two free blocks together form a useful - amount to return to the system. */ - (block + blocks == _heaplimit && - info_block + info_blocks == block && - prev_block != 0 && prev_block + prev_blocks == info_block && - blocks + prev_blocks >= lesscore_threshold) || - /* Nope, not the case. We can also win if this block being - freed is just before the info table, and the table extends - to the end of core or is followed only by a free block, - and the total free space is worth returning to the system. */ - (block + blocks == info_block && - ((info_block + info_blocks == _heaplimit && - blocks >= lesscore_threshold) || - (info_block + info_blocks == next_block && - next_block + next_blocks == _heaplimit && - blocks + next_blocks >= lesscore_threshold))) - ) - { - malloc_info *newinfo; - __malloc_size_t oldlimit = _heaplimit; - - /* Free the old info table, clearing _heaplimit to avoid - recursion into this code. We don't want to return the - table's blocks to the system before we have copied them to - the new location. */ - _heaplimit = 0; - _free_internal (_heapinfo); - _heaplimit = oldlimit; - - /* Tell malloc to search from the beginning of the heap for - free blocks, so it doesn't reuse the ones just freed. */ - _heapindex = 0; - - /* Allocate new space for the info table and move its data. */ - newinfo = (malloc_info *) _malloc_internal (info_blocks - * BLOCKSIZE); - memmove (newinfo, _heapinfo, info_blocks * BLOCKSIZE); - _heapinfo = newinfo; - - /* We should now have coalesced the free block with the - blocks freed from the old info table. Examine the entire - trailing free block to decide below whether to return some - to the system. */ - block = _heapinfo[0].free.prev; - blocks = _heapinfo[block].free.size; - } - - /* Now see if we can return stuff to the system. */ - if (block + blocks == _heaplimit && blocks >= lesscore_threshold) - { - register __malloc_size_t bytes = blocks * BLOCKSIZE; - _heaplimit -= blocks; - (*__morecore) (-bytes); - _heapinfo[_heapinfo[block].free.prev].free.next - = _heapinfo[block].free.next; - _heapinfo[_heapinfo[block].free.next].free.prev - = _heapinfo[block].free.prev; - block = _heapinfo[block].free.prev; - --_chunks_free; - _bytes_free -= bytes; - } - } - - /* Set the next search to begin at this block. */ - _heapindex = block; - break; - - default: - /* Do some of the statistics. */ - --_chunks_used; - _bytes_used -= 1 << type; - ++_chunks_free; - _bytes_free += 1 << type; - - /* Get the address of the first free fragment in this block. */ - prev = (struct list *) ((char *) ADDRESS (block) + - (_heapinfo[block].busy.info.frag.first << type)); - - if (_heapinfo[block].busy.info.frag.nfree == (BLOCKSIZE >> type) - 1) - { - /* If all fragments of this block are free, remove them - from the fragment list and free the whole block. */ - next = prev; - for (i = 1; i < (__malloc_size_t) (BLOCKSIZE >> type); ++i) - next = next->next; - prev->prev->next = next; - if (next != NULL) - next->prev = prev->prev; - _heapinfo[block].busy.type = 0; - _heapinfo[block].busy.info.size = 1; - - /* Keep the statistics accurate. */ - ++_chunks_used; - _bytes_used += BLOCKSIZE; - _chunks_free -= BLOCKSIZE >> type; - _bytes_free -= BLOCKSIZE; - - free (ADDRESS (block)); - } - else if (_heapinfo[block].busy.info.frag.nfree != 0) - { - /* If some fragments of this block are free, link this - fragment into the fragment list after the first free - fragment of this block. */ - next = (struct list *) ptr; - next->next = prev->next; - next->prev = prev; - prev->next = next; - if (next->next != NULL) - next->next->prev = next; - ++_heapinfo[block].busy.info.frag.nfree; - } - else - { - /* No fragments of this block are free, so link this - fragment into the fragment list and announce that - it is the first free fragment of this block. */ - prev = (struct list *) ptr; - _heapinfo[block].busy.info.frag.nfree = 1; - _heapinfo[block].busy.info.frag.first = (unsigned long int) - ((unsigned long int) ((char *) ptr - (char *) NULL) - % BLOCKSIZE >> type); - prev->next = _fraghead[type].next; - prev->prev = &_fraghead[type]; - prev->prev->next = prev; - if (prev->next != NULL) - prev->next->prev = prev; - } - break; - } -} - -/* Return memory to the heap. */ -void -free (ptr) - __ptr_t ptr; -{ - if (__free_hook != NULL) - (*__free_hook) (ptr); - else - _free_internal (ptr); -} - -/* Define the `cfree' alias for `free'. */ -#ifdef weak_alias -weak_alias (free, cfree) -#else -void -cfree (ptr) - __ptr_t ptr; -{ - free (ptr); -} -#endif -/* Change the size of a block allocated by `malloc'. - Copyright 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. - Written May 1989 by Mike Haertel. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -This 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111 USA. - - The author may be reached (Email) at the address mike@ai.mit.edu, - or (US mail) as Mike Haertel c/o Free Software Foundation. */ - -#ifndef _MALLOC_INTERNAL -#define _MALLOC_INTERNAL -#include -#endif - - - -/* Cope with systems lacking `memmove'. */ -#if (defined (MEMMOVE_MISSING) || \ - !defined(_LIBC) && !defined(STDC_HEADERS) && !defined(USG)) - -#ifdef emacs -#undef __malloc_safe_bcopy -#define __malloc_safe_bcopy safe_bcopy -#else - -/* Snarfed directly from Emacs src/dispnew.c: - XXX Should use system bcopy if it handles overlap. */ - -/* Like bcopy except never gets confused by overlap. */ - -void -__malloc_safe_bcopy (afrom, ato, size) - __ptr_t afrom; - __ptr_t ato; - __malloc_size_t size; -{ - char *from = afrom, *to = ato; - - if (size <= 0 || from == to) - return; - - /* If the source and destination don't overlap, then bcopy can - handle it. If they do overlap, but the destination is lower in - memory than the source, we'll assume bcopy can handle that. */ - if (to < from || from + size <= to) - bcopy (from, to, size); - - /* Otherwise, we'll copy from the end. */ - else - { - register char *endf = from + size; - register char *endt = to + size; - - /* If TO - FROM is large, then we should break the copy into - nonoverlapping chunks of TO - FROM bytes each. However, if - TO - FROM is small, then the bcopy function call overhead - makes this not worth it. The crossover point could be about - anywhere. Since I don't think the obvious copy loop is too - bad, I'm trying to err in its favor. */ - if (to - from < 64) - { - do - *--endt = *--endf; - while (endf != from); - } - else - { - for (;;) - { - endt -= (to - from); - endf -= (to - from); - - if (endt < to) - break; - - bcopy (endf, endt, to - from); - } - - /* If SIZE wasn't a multiple of TO - FROM, there will be a - little left over. The amount left over is - (endt + (to - from)) - to, which is endt - from. */ - bcopy (from, to, endt - from); - } - } -} -#endif /* emacs */ - -#ifndef memmove -extern void __malloc_safe_bcopy __P ((__ptr_t, __ptr_t, __malloc_size_t)); -#define memmove(to, from, size) __malloc_safe_bcopy ((from), (to), (size)) -#endif - -#endif - - -#define min(A, B) ((A) < (B) ? (A) : (B)) - -/* Debugging hook for realloc. */ -__ptr_t (*__realloc_hook) __P ((__ptr_t __ptr, __malloc_size_t __size)); - -/* Resize the given region to the new size, returning a pointer - to the (possibly moved) region. This is optimized for speed; - some benchmarks seem to indicate that greater compactness is - achieved by unconditionally allocating and copying to a - new region. This module has incestuous knowledge of the - internals of both free and malloc. */ -__ptr_t -_realloc_internal (ptr, size) - __ptr_t ptr; - __malloc_size_t size; -{ - __ptr_t result; - int type; - __malloc_size_t block, blocks, oldlimit; - - if (size == 0) - { - _free_internal (ptr); - return _malloc_internal (0); - } - else if (ptr == NULL) - return _malloc_internal (size); - - block = BLOCK (ptr); - - type = _heapinfo[block].busy.type; - switch (type) - { - case 0: - /* Maybe reallocate a large block to a small fragment. */ - if (size <= BLOCKSIZE / 2) - { - result = _malloc_internal (size); - if (result != NULL) - { - memcpy (result, ptr, size); - _free_internal (ptr); - return result; - } - } - - /* The new size is a large allocation as well; - see if we can hold it in place. */ - blocks = BLOCKIFY (size); - if (blocks < _heapinfo[block].busy.info.size) - { - /* The new size is smaller; return - excess memory to the free list. */ - _heapinfo[block + blocks].busy.type = 0; - _heapinfo[block + blocks].busy.info.size - = _heapinfo[block].busy.info.size - blocks; - _heapinfo[block].busy.info.size = blocks; - /* We have just created a new chunk by splitting a chunk in two. - Now we will free this chunk; increment the statistics counter - so it doesn't become wrong when _free_internal decrements it. */ - ++_chunks_used; - _free_internal (ADDRESS (block + blocks)); - result = ptr; - } - else if (blocks == _heapinfo[block].busy.info.size) - /* No size change necessary. */ - result = ptr; - else - { - /* Won't fit, so allocate a new region that will. - Free the old region first in case there is sufficient - adjacent free space to grow without moving. */ - blocks = _heapinfo[block].busy.info.size; - /* Prevent free from actually returning memory to the system. */ - oldlimit = _heaplimit; - _heaplimit = 0; - _free_internal (ptr); - result = _malloc_internal (size); - if (_heaplimit == 0) - _heaplimit = oldlimit; - if (result == NULL) - { - /* Now we're really in trouble. We have to unfree - the thing we just freed. Unfortunately it might - have been coalesced with its neighbors. */ - if (_heapindex == block) - (void) _malloc_internal (blocks * BLOCKSIZE); - else - { - __ptr_t previous - = _malloc_internal ((block - _heapindex) * BLOCKSIZE); - (void) _malloc_internal (blocks * BLOCKSIZE); - _free_internal (previous); - } - return NULL; - } - if (ptr != result) - memmove (result, ptr, blocks * BLOCKSIZE); - } - break; - - default: - /* Old size is a fragment; type is logarithm - to base two of the fragment size. */ - if (size > (__malloc_size_t) (1 << (type - 1)) && - size <= (__malloc_size_t) (1 << type)) - /* The new size is the same kind of fragment. */ - result = ptr; - else - { - /* The new size is different; allocate a new space, - and copy the lesser of the new size and the old. */ - result = _malloc_internal (size); - if (result == NULL) - return NULL; - memcpy (result, ptr, min (size, (__malloc_size_t) 1 << type)); - _free_internal (ptr); - } - break; - } - - return result; -} - -__ptr_t -realloc (ptr, size) - __ptr_t ptr; - __malloc_size_t size; -{ - if (!__malloc_initialized && !__malloc_initialize ()) - return NULL; - - return (__realloc_hook != NULL ? *__realloc_hook : _realloc_internal) - (ptr, size); -} -/* Copyright (C) 1991, 1992, 1994 Free Software Foundation, Inc. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -This 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111 USA. - - The author may be reached (Email) at the address mike@ai.mit.edu, - or (US mail) as Mike Haertel c/o Free Software Foundation. */ - -#ifndef _MALLOC_INTERNAL -#define _MALLOC_INTERNAL -#include -#endif - -/* Allocate an array of NMEMB elements each SIZE bytes long. - The entire array is initialized to zeros. */ -__ptr_t -calloc (nmemb, size) - register __malloc_size_t nmemb; - register __malloc_size_t size; -{ - register __ptr_t result = malloc (nmemb * size); - - if (result != NULL) - (void) memset (result, 0, nmemb * size); - - return result; -} -/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. -This file is part of the GNU C Library. - -The GNU C 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 C 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. - -You should have received a copy of the GNU General Public License -along with the GNU C Library; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ - -#ifndef _MALLOC_INTERNAL -#define _MALLOC_INTERNAL -#include -#endif - -#ifndef __GNU_LIBRARY__ -#define __sbrk sbrk -#endif - -#ifdef __GNU_LIBRARY__ -/* It is best not to declare this and cast its result on foreign operating - systems with potentially hostile include files. */ - -#include -extern __ptr_t __sbrk __P ((ptrdiff_t increment)); -#endif - -#ifndef NULL -#define NULL 0 -#endif - -/* Allocate INCREMENT more bytes of data space, - and return the start of data space, or NULL on errors. - If INCREMENT is negative, shrink data space. */ -__ptr_t -__default_morecore (increment) - __malloc_ptrdiff_t increment; -{ - __ptr_t result = (__ptr_t) __sbrk (increment); - if (result == (__ptr_t) -1) - return NULL; - return result; -} -/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -This 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111 USA. */ - -#ifndef _MALLOC_INTERNAL -#define _MALLOC_INTERNAL -#include -#endif - -#if __DJGPP__ - 0 == 1 - -/* There is some problem with memalign in DJGPP v1 and we are supposed - to omit it. Noone told me why, they just told me to do it. */ - -#else - -__ptr_t (*__memalign_hook) __P ((size_t __size, size_t __alignment)); - -__ptr_t -memalign (alignment, size) - __malloc_size_t alignment; - __malloc_size_t size; -{ - __ptr_t result; - unsigned long int adj, lastadj; - - if (__memalign_hook) - return (*__memalign_hook) (alignment, size); - - /* Allocate a block with enough extra space to pad the block with up to - (ALIGNMENT - 1) bytes if necessary. */ - result = malloc (size + alignment - 1); - if (result == NULL) - return NULL; - - /* Figure out how much we will need to pad this particular block - to achieve the required alignment. */ - adj = (unsigned long int) ((char *) result - (char *) NULL) % alignment; - - do - { - /* Reallocate the block with only as much excess as it needs. */ - free (result); - result = malloc (adj + size); - if (result == NULL) /* Impossible unless interrupted. */ - return NULL; - - lastadj = adj; - adj = (unsigned long int) ((char *) result - (char *) NULL) % alignment; - /* It's conceivable we might have been so unlucky as to get a - different block with weaker alignment. If so, this block is too - short to contain SIZE after alignment correction. So we must - try again and get another block, slightly larger. */ - } while (adj > lastadj); - - if (adj != 0) - { - /* Record this block in the list of aligned blocks, so that `free' - can identify the pointer it is passed, which will be in the middle - of an allocated block. */ - - struct alignlist *l; - for (l = _aligned_blocks; l != NULL; l = l->next) - if (l->aligned == NULL) - /* This slot is free. Use it. */ - break; - if (l == NULL) - { - l = (struct alignlist *) malloc (sizeof (struct alignlist)); - if (l == NULL) - { - free (result); - return NULL; - } - l->next = _aligned_blocks; - _aligned_blocks = l; - } - l->exact = result; - result = l->aligned = (char *) result + alignment - adj; - } - - return result; -} - -#endif /* Not DJGPP v1 */ diff --git a/lib/malloc/OLD/old-nmalloc.c b/lib/malloc/OLD/old-nmalloc.c deleted file mode 100644 index 4d08c443b..000000000 --- a/lib/malloc/OLD/old-nmalloc.c +++ /dev/null @@ -1,890 +0,0 @@ -/* malloc.c - dynamic memory allocation for bash. */ - -/* Copyright (C) 1985, 1987, 1997 Free Software Foundation, Inc. - - This program 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. - - This program 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 this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. - -In other words, you are welcome to use, share and improve this program. -You are forbidden to forbid anyone else to use, share and improve -what you give them. Help stamp out software-hoarding! */ - -/* - * @(#)nmalloc.c 1 (Caltech) 2/21/82 - * - * U of M Modified: 20 Jun 1983 ACT: strange hacks for Emacs - * - * Nov 1983, Mike@BRL, Added support for 4.1C/4.2 BSD. - * - * This is a very fast storage allocator. It allocates blocks of a small - * number of different sizes, and keeps free lists of each size. Blocks - * that don't exactly fit are passed up to the next larger size. In this - * implementation, the available sizes are (2^n)-4 (or -16) bytes long. - * This is designed for use in a program that uses vast quantities of - * memory, but bombs when it runs out. To make it a little better, it - * warns the user when he starts to get near the end. - * - * June 84, ACT: modified rcheck code to check the range given to malloc, - * rather than the range determined by the 2-power used. - * - * Jan 85, RMS: calls malloc_warning to issue warning on nearly full. - * No longer Emacs-specific; can serve as all-purpose malloc for GNU. - * You should call malloc_init to reinitialize after loading dumped Emacs. - * Call malloc_stats to get info on memory stats if MALLOC_STATS turned on. - * realloc knows how to return same block given, just changing its size, - * if the power of 2 is correct. - */ -#define MALLOC_STATS /* for the time being */ - -/* - * nextf[i] is the pointer to the next free block of size 2^(i+3). The - * smallest allocatable block is 8 bytes. The overhead information will - * go in the first int of the block, and the returned pointer will point - * to the second. - */ - -/* XXX For the time being, until an autoconf test is created (ce has one) */ -#define bits32_t int -#define u_bits32_t unsigned int - -/* Define this to have free() write 0xcf into memory as it's freed, to - uncover callers that refer to freed memory. */ -/* SCO 3.2v4 getcwd and possibly other libc routines fail with MEMSCRAMBLE */ -#if !defined (NO_MEMSCRAMBLE) -# define MEMSCRAMBLE -#endif - -#if defined (HAVE_CONFIG_H) -# include -#endif /* HAVE_CONFIG_H */ - -#if defined (HAVE_UNISTD_H) -# include -#endif - -/* Determine which kind of system this is. */ -#if defined (SHELL) -# include "bashtypes.h" -#else -# include -#endif -#include - -#if defined (HAVE_STRING_H) -# include -#else -# include -#endif - -#if defined (MALLOC_STATS) || !defined (botch) -# include -#endif /* MALLOC_STATS || !botch */ - -/* Define getpagesize () if the system does not. */ -#ifndef HAVE_GETPAGESIZE -# include "getpagesize.h" -#endif - -#if __GNUC__ > 1 -# define FASTCOPY(s, d, n) __builtin_memcpy (d, s, n) -#else /* !__GNUC__ */ -# if !defined (HAVE_BCOPY) -# if !defined (HAVE_MEMMOVE) -# define FASTCOPY(s, d, n) memcpy (d, s, n) -# else -# define FASTCOPY(s, d, n) memmove (d, s, n) -# endif /* !HAVE_MEMMOVE */ -# else /* HAVE_BCOPY */ -# define FASTCOPY(s, d, n) bcopy (s, d, n) -# endif /* HAVE_BCOPY */ -#endif /* !__GNUC__ */ - -#if !defined (NULL) -# define NULL 0 -#endif - -#define NBUCKETS 30 - -#define ISALLOC ((char) 0xf7) /* magic byte that implies allocation */ -#define ISFREE ((char) 0x54) /* magic byte that implies free block */ - /* this is for error checking only */ -#define ISMEMALIGN ((char) 0xd6) /* Stored before the value returned by - memalign, with the rest of the word - being the distance to the true - beginning of the block. */ - -#if !defined (SBRK_DECLARED) -extern char *sbrk (); -#endif /* !SBRK_DECLARED */ - -#ifdef MALLOC_STATS -/* - * NMALLOC[i] is the difference between the number of mallocs and frees - * for a given block size. TMALLOC[i] is the total number of mallocs for - * a given block size. NMORECORE[i] is the total number of calls to - * morecore(i). NMAL and NFRE are counts of the number of calls to malloc() - * and free(), respectively. NREALLOC is the total number of calls to - * realloc(); NRCOPY is the number of times realloc() had to allocate new - * memory and copy to it. NRECURSE is a count of the number of recursive - * calls to malloc() for the same bucket size, which can be caused by calls - * to malloc() from a signal handler. NSBRK is the number of calls to sbrk() - * (whether by morecore() or for alignment); TSBRK is the total number of - * bytes requested from the kernel with sbrk(). BYTESUSED is the total - * number of bytes consumed by blocks currently in used; BYTESFREE is the - * total number of bytes currently on all of the free lists. NBSPLIT is - * the number of times a larger block was split to satisfy a smaller request. - * NBCOALESCE is the number of times two adjacent smaller blocks off the free - * list were combined to satisfy a larger request. - */ -struct _malstats { - int nmalloc[NBUCKETS]; - int tmalloc[NBUCKETS]; - int nmorecore[NBUCKETS]; - int nmal; - int nfre; - int nrealloc; - int nrcopy; - int nrecurse; - int nsbrk; - bits32_t tsbrk; - bits32_t bytesused; - bits32_t bytesfree; - int nbsplit; - int nbcoalesce; -}; - -static struct _malstats _mstats; - -/* Return statistics describing allocation of blocks of size BLOCKSIZE. - NFREE is the number of free blocks for this allocation size. NUSED - is the number of blocks in use. NMAL is the number of requests for - blocks of size BLOCKSIZE. NMORECORE is the number of times we had - to call MORECORE to repopulate the free list for this bucket. */ -struct bucket_stats { - u_bits32_t blocksize; - int nfree; - int nused; - int nmal; - int nmorecore; -}; -#endif /* MALLOC_STATS */ - -/* We have a flag indicating whether memory is allocated, an index in - nextf[], a size field, and a sentinel value to determine whether or - not a caller wrote before the start of allocated memory; to realloc() - memory we either copy mh_nbytes or just change mh_nbytes if there is - enough room in the block for the new size. Range checking is always - done. */ -struct mhead { - char mh_alloc; /* ISALLOC or ISFREE */ /* 1 */ - char mh_index; /* index in nextf[] */ /* 1 */ -/* Remainder are valid only when block is allocated */ - u_bits32_t mh_nbytes; /* # of bytes allocated */ /* 4 */ - u_bits16_t mh_magic2;/* should be == MAGIC2 */ /* 2 */ -}; - -/* Access free-list pointer of a block. - It is stored at block + sizeof (char *). - This is not a field in the mhead structure - because we want sizeof (struct mhead) - to describe the overhead for when the block is in use, - and we do not want the free-list pointer to count in that. */ - -#define CHAIN(a) \ - (*(struct mhead **) (sizeof (char *) + (char *) (a))) - -#if defined (botch) -extern void botch (); -#else -static void -botch (s) - char *s; -{ - fprintf (stderr, "\r\nmalloc: assertion botched: %s\r\n", s); - (void)fflush (stderr); - abort (); -} -#endif /* !botch */ - -#if !defined (__STRING) -# if defined (__STDC__) -# define __STRING(x) #x -# else -# define __STRING(x) "x" -# endif -#endif /* !__STRING */ - -/* To implement range checking, we write magic values in at the beginning - and end of each allocated block, and make sure they are undisturbed - whenever a free or a realloc occurs. */ - -/* Written in each of the 4 bytes following the block's real space */ -#define MAGIC1 0x55 -/* Written in the 2 bytes before the block's real space */ -#define MAGIC2 0x5555 -#define ASSERT(p) do { if (!(p)) botch(__STRING(p)); } while (0) -#define MSLOP 4 /* 4 bytes extra for MAGIC1s */ - -/* Minimum and maximum bucket indices for block splitting (and to bound - the search for a block to split). */ -#define SPLIT_MIN 3 -#define SPLIT_MID 9 -#define SPLIT_MAX 12 - -/* Minimum and maximum bucket indices for block coalescing. */ -#define COMBINE_MIN 6 -#define COMBINE_MAX (pagebucket - 1) - -#define MIN_COMBINE_FREE 4 - -/* nextf[i] is free list of blocks of size 2**(i + 3) */ - -static struct mhead *nextf[NBUCKETS]; - -/* busy[i] is nonzero while allocation of block size i is in progress. */ - -static char busy[NBUCKETS]; - -static int pagesz; /* system page size. */ -static int pagebucket; /* bucket for requests a page in size */ - -#if 0 -/* Coalesce two adjacent free blocks off the free list for size NU - 1, - as long as there are at least MIN_COMBINE_FREE free blocks and we - can find two adjacent free blocks. nextf[NU -1] is assumed to not - be busy; the caller (morecore()) checks for this. */ -static void -bcoalesce (nu) - register int nu; -{ - register struct mhead *mp, *mp1, *mp2; - register int nfree, nbuck; - unsigned long siz; - - nbuck = nu - 1; - if (nextf[nbuck] == 0) - return; - - nfree = 1; - mp1 = nextf[nbuck]; - mp = CHAIN (mp1); - mp2 = (struct mhead *)0; - while (CHAIN (mp)) - { - mp2 = mp1; - mp1 = mp; - mp = CHAIN (mp); - nfree++; - /* We may not want to run all the way through the free list here; - if we do not, we need to check a threshold value here and break - if nfree exceeds it. */ - } - if (nfree < MIN_COMBINE_FREE) - return; - /* OK, now we have mp1 pointing to the block we want to add to nextf[NU]. - CHAIN(mp2) must equal mp1. Check that mp1 and mp are adjacent. */ - if (CHAIN(mp2) != mp1) - botch ("bcoalesce: CHAIN(mp2) != mp1"); - siz = 1 << (nbuck + 3); - if (CHAIN (mp1) != (struct mhead *)((char *)mp1 + siz)) - return; /* not adjacent */ - -#ifdef MALLOC_STATS - _mstats.nbcoalesce++; -#endif - - /* Since they are adjacent, remove them from the free list */ - CHAIN (mp2) = CHAIN (mp); - - /* And add the combined two blocks to nextf[NU]. */ - mp1->mh_alloc = ISFREE; - mp1->mh_index = nu; - CHAIN (mp1) = nextf[nu]; - nextf[nu] = mp1; -} -#endif - -/* Split a block at index > NU (but less than SPLIT_MAX) into a set of - blocks of the correct size, and attach them to nextf[NU]. nextf[NU] - is assumed to be empty. Must be called with signals blocked (e.g., - by morecore()). */ -static void -bsplit (nu) - register int nu; -{ - register struct mhead *mp; - int nbuck, nblks; - unsigned long siz; - - if (nu >= SPLIT_MID) - { - for (nbuck = SPLIT_MAX; nbuck > nu; nbuck--) - { - if (busy[nbuck] || nextf[nbuck] == 0) - continue; - break; - } - } - else - { - for (nbuck = nu + 1; nbuck <= SPLIT_MAX; nbuck++) - { - if (busy[nbuck] || nextf[nbuck] == 0) - continue; - break; - } - } - - if (nbuck > SPLIT_MAX || nbuck <= nu) - return; - - /* XXX might want to split only if nextf[nbuck] has >= 2 blocks free - and nbuck is below some threshold. */ - -#ifdef MALLOC_STATS - _mstats.nbsplit++; -#endif - - /* Figure out how many blocks we'll get. */ - siz = (1 << (nu + 3)); - nblks = (1 << (nbuck + 3)) / siz; - - /* Remove the block from the chain of larger blocks. */ - mp = nextf[nbuck]; - nextf[nbuck] = CHAIN (mp); - - /* Split the block and put it on the requested chain. */ - nextf[nu] = mp; - while (1) - { - mp->mh_alloc = ISFREE; - mp->mh_index = nu; - if (--nblks <= 0) break; - CHAIN (mp) = (struct mhead *)((char *)mp + siz); - mp = (struct mhead *)((char *)mp + siz); - } - CHAIN (mp) = 0; -} - -static void -morecore (nu) /* ask system for more memory */ - register int nu; /* size index to get more of */ -{ - register struct mhead *mp; - register int nblks; - register long siz; - long sbrk_amt; /* amount to get via sbrk() */ - - /* Block all signals in case we are executed from a signal handler. */ -#if defined (HAVE_BSD_SIGNALS) - int oldmask; - oldmask = sigsetmask (-1); -#else -# if defined (HAVE_POSIX_SIGNALS) - sigset_t set, oset; - sigfillset (&set); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); -# endif /* HAVE_POSIX_SIGNALS */ -#endif /* HAVE_BSD_SIGNALS */ - - siz = 1 << (nu + 3); /* size of desired block for nextf[nu] */ - - if (siz < 0) - return; /* oops */ - -#ifdef MALLOC_STATS - _mstats.nmorecore[nu]++; -#endif - - /* Try to split a larger block here, if we're within the range of sizes - to split. */ - if (nu >= SPLIT_MIN && nu < SPLIT_MAX) - { - bsplit (nu); - if (nextf[nu] != 0) - goto morecore_done; - } - -#if 0 - /* Try to coalesce two adjacent blocks from the free list on nextf[nu - 1], - if we can, and we're withing the range of the block coalescing limits. */ - if (nu >= COMBINE_MIN && nu < COMBINE_MAX && busy[nu - 1] == 0 && nextf[nu - 1]) - { - bcoalesce (nu); - if (nextf[nu] != 0) - goto morecore_done; - } -#endif - - /* Take at least a page, and figure out how many blocks of the requested - size we're getting. */ - if (siz <= pagesz) - { - sbrk_amt = pagesz; - nblks = sbrk_amt / siz; - } - else - { - /* We always want to request an integral multiple of the page size - from the kernel, so let's compute whether or not `siz' is such - an amount. If it is, we can just request it. If not, we want - the smallest integral multiple of pagesize that is larger than - `siz' and will satisfy the request. */ - sbrk_amt = siz % pagesz; - if (sbrk_amt == 0) - sbrk_amt = siz; - else - sbrk_amt = siz + pagesz - sbrk_amt; - nblks = 1; - } - -#ifdef MALLOC_STATS - _mstats.nsbrk++; - _mstats.tsbrk += sbrk_amt; -#endif - - mp = (struct mhead *) sbrk (sbrk_amt); - - /* Totally out of memory. */ - if ((long)mp == -1) - return; - - /* shouldn't happen, but just in case */ - if ((long)mp & 7) - { - mp = (struct mhead *) (((long)mp + 8) & ~7); - nblks--; - } - - /* save new header and link the nblks blocks together */ - nextf[nu] = mp; - while (1) - { - mp->mh_alloc = ISFREE; - mp->mh_index = nu; - if (--nblks <= 0) break; - CHAIN (mp) = (struct mhead *)((char *)mp + siz); - mp = (struct mhead *)((char *)mp + siz); - } - CHAIN (mp) = 0; - -morecore_done: -#if defined (HAVE_BSD_SIGNALS) - sigsetmask (oldmask); -#else -# if defined (HAVE_POSIX_SIGNALS) - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); -# endif -#endif /* HAVE_BSD_SIGNALS */ -} - -#if defined (MEMSCRAMBLE) || !defined (NO_CALLOC) -static char * -zmemset (s, c, n) - char *s; - int c; - register int n; -{ - register char *sp; - - sp = s; - while (--n >= 0) - *sp++ = c; - return (s); -} -#endif /* MEMSCRAMBLE || !NO_CALLOC */ - -static void -malloc_debug_dummy () -{ - ; -} - -char * -malloc (n) /* get a block */ - size_t n; -{ - register struct mhead *p; - register long nbytes; - register int nunits; - - /* Get the system page size and align break pointer so everything will - be page-aligned. The page size must be at least 1K -- anything - smaller is increased. */ - if (pagesz == 0) - { - register long sbrk_needed; - - pagesz = getpagesize (); - if (pagesz < 1024) - pagesz = 1024; - /* OK, how much do we need to allocate to make things page-aligned? - This partial page is wasted space. Once we figure out how much - to advance the break pointer, go ahead and do it. */ - sbrk_needed = pagesz - ((long)sbrk (0) & (pagesz - 1)); /* sbrk(0) % pagesz */ - if (sbrk_needed < 0) - sbrk_needed += pagesz; - /* Now allocate the wasted space. */ - if (sbrk_needed) - { -#ifdef MALLOC_STATS - _mstats.nsbrk++; - _mstats.tsbrk += sbrk_needed; -#endif - if ((long)sbrk (sbrk_needed) == -1) - return (NULL); - } - nunits = 0; - nbytes = 8; - while (pagesz > nbytes) - { - nbytes <<= 1; - nunits++; - } - pagebucket = nunits; - } - - /* Figure out how many bytes are required, rounding up to the nearest - multiple of 4, then figure out which nextf[] area to use. Try to - be smart about where to start searching -- if the number of bytes - needed is greater than the page size, we can start at pagebucket. */ - nbytes = (n + sizeof *p + MSLOP + 3) & ~3; - nunits = 0; - if (nbytes <= (pagesz >> 1)) - { - register unsigned int shiftr; - - shiftr = (nbytes - 1) >> 2; /* == (nbytes - 1) / 4 */ - while (shiftr >>= 1) /* == (nbytes - 1) / {8,16,32,...} */ - nunits++; - } - else - { - register u_bits32_t amt; - - nunits = pagebucket; - amt = pagesz; - while (nbytes > amt) - { - amt <<= 1; - nunits++; - } - } - - /* In case this is reentrant use of malloc from signal handler, - pick a block size that no other malloc level is currently - trying to allocate. That's the easiest harmless way not to - interfere with the other level of execution. */ -#ifdef MALLOC_STATS - if (busy[nunits]) _mstats.nrecurse++; -#endif - while (busy[nunits]) nunits++; - busy[nunits] = 1; - - /* If there are no blocks of the appropriate size, go get some */ - if (nextf[nunits] == 0) - morecore (nunits); - - /* Get one block off the list, and set the new list head */ - if ((p = nextf[nunits]) == NULL) - { - busy[nunits] = 0; - return NULL; - } - nextf[nunits] = CHAIN (p); - busy[nunits] = 0; - - /* Check for free block clobbered */ - /* If not for this check, we would gobble a clobbered free chain ptr - and bomb out on the NEXT allocate of this size block */ - if (p->mh_alloc != ISFREE || p->mh_index != nunits) - botch ("malloc: block on free list clobbered"); - - /* Fill in the info, and if range checking, set up the magic numbers */ - p->mh_alloc = ISALLOC; - p->mh_nbytes = n; - p->mh_magic2 = MAGIC2; - { - register char *m = (char *) (p + 1) + n; - - *m++ = MAGIC1, *m++ = MAGIC1, *m++ = MAGIC1, *m = MAGIC1; - } - -#ifdef MEMSCRAMBLE - zmemset ((char *)(p + 1), 0xdf, n); /* scramble previous contents */ -#endif -#ifdef MALLOC_STATS - _mstats.nmalloc[nunits]++; - _mstats.tmalloc[nunits]++; - _mstats.nmal++; -#endif /* MALLOC_STATS */ - return (char *) (p + 1); -} - -void -free (mem) - char *mem; -{ - register struct mhead *p; - register char *ap; - register int nunits; - - if ((ap = mem) == 0) - return; - - p = (struct mhead *) ap - 1; - - if (p->mh_alloc == ISMEMALIGN) - { - ap -= p->mh_nbytes; - p = (struct mhead *) ap - 1; - } - - if (p->mh_alloc != ISALLOC) - { - if (p->mh_alloc == ISFREE) - botch ("free: called with already freed block argument"); - else - botch ("free: called with unallocated block argument"); - } - - ASSERT (p->mh_magic2 == MAGIC2); - ap += p->mh_nbytes; - ASSERT (*ap++ == MAGIC1); ASSERT (*ap++ == MAGIC1); - ASSERT (*ap++ == MAGIC1); ASSERT (*ap == MAGIC1); - -#ifdef MEMSCRAMBLE - zmemset (mem, 0xcf, p->mh_nbytes); -#endif - - nunits = p->mh_index; - - ASSERT (nunits < NBUCKETS); - p->mh_alloc = ISFREE; - - /* Protect against signal handlers calling malloc. */ - busy[nunits] = 1; - /* Put this block on the free list. */ - CHAIN (p) = nextf[nunits]; - nextf[nunits] = p; - busy[nunits] = 0; - -#ifdef MALLOC_STATS - _mstats.nmalloc[nunits]--; - _mstats.nfre++; -#endif /* MALLOC_STATS */ -} - -char * -realloc (mem, n) - char *mem; - register size_t n; -{ - register struct mhead *p; - register u_bits32_t tocopy; - register unsigned int nbytes; - register int nunits; - register char *m; - -#ifdef MALLOC_STATS - _mstats.nrealloc++; -#endif - - if (n == 0) - { - free (mem); - return (NULL); - } - if ((p = (struct mhead *) mem) == 0) - return malloc (n); - p--; - nunits = p->mh_index; - ASSERT (p->mh_alloc == ISALLOC); - ASSERT (p->mh_magic2 == MAGIC2); - - m = mem + (tocopy = p->mh_nbytes); - ASSERT (*m++ == MAGIC1); ASSERT (*m++ == MAGIC1); - ASSERT (*m++ == MAGIC1); ASSERT (*m == MAGIC1); - - /* See if desired size rounds to same power of 2 as actual size. */ - nbytes = (n + sizeof *p + MSLOP + 7) & ~7; - - /* If ok, use the same block, just marking its size as changed. */ - if (nbytes > (4 << nunits) && nbytes <= (8 << nunits)) - { - m = mem + tocopy; - *m++ = 0; *m++ = 0; *m++ = 0; *m++ = 0; - p->mh_nbytes = n; - m = mem + n; - *m++ = MAGIC1; *m++ = MAGIC1; *m++ = MAGIC1; *m++ = MAGIC1; - return mem; - } - -#ifdef MALLOC_STATS - _mstats.nrcopy++; -#endif - - if (n < tocopy) - tocopy = n; - - if ((m = malloc (n)) == 0) - return 0; - FASTCOPY (mem, m, tocopy); - free (mem); - return m; -} - -char * -memalign (alignment, size) - unsigned int alignment; - size_t size; -{ - register char *ptr; - register char *aligned; - register struct mhead *p; - - ptr = malloc (size + alignment); - - if (ptr == 0) - return 0; - /* If entire block has the desired alignment, just accept it. */ - if (((int) ptr & (alignment - 1)) == 0) - return ptr; - /* Otherwise, get address of byte in the block that has that alignment. */ - aligned = (char *) (((int) ptr + alignment - 1) & -alignment); - - /* Store a suitable indication of how to free the block, - so that free can find the true beginning of it. */ - p = (struct mhead *) aligned - 1; - p->mh_nbytes = aligned - ptr; - p->mh_alloc = ISMEMALIGN; - return aligned; -} - -#if !defined (HPUX) -/* This runs into trouble with getpagesize on HPUX, and Multimax machines. - Patching out seems cleaner than the ugly fix needed. */ -#if defined (__STDC__) -void * -#else -char * -#endif -valloc (size) - size_t size; -{ - return memalign (getpagesize (), size); -} -#endif /* !HPUX */ - -#ifndef NO_CALLOC -char * -calloc (n, s) - size_t n, s; -{ - size_t total; - char *result; - - total = n * s; - result = malloc (total); - if (result) - zmemset (result, 0, total); - return result; -} - -void -cfree (p) - char *p; -{ - free (p); -} -#endif /* !NO_CALLOC */ - -#ifdef MALLOC_STATS - -struct bucket_stats -malloc_bucket_stats (size) - int size; -{ - struct bucket_stats v; - register struct mhead *p; - - v.nfree = 0; - - if (size < 0 || size >= NBUCKETS) - { - v.blocksize = 0; - v.nused = v.nmal = 0; - return v; - } - - v.blocksize = 1 << (size + 3); - v.nused = _mstats.nmalloc[size]; - v.nmal = _mstats.tmalloc[size]; - v.nmorecore = _mstats.nmorecore[size]; - - for (p = nextf[size]; p; p = CHAIN (p)) - v.nfree++; - - return v; -} - -/* Return a copy of _MSTATS, with two additional fields filled in: - BYTESFREE is the total number of bytes on free lists. BYTESUSED - is the total number of bytes in use. These two fields are fairly - expensive to compute, so we do it only when asked to. */ -struct _malstats -malloc_stats () -{ - struct _malstats result; - struct bucket_stats v; - register int i; - - result = _mstats; - result.bytesused = result.bytesfree = 0; - for (i = 0; i < NBUCKETS; i++) - { - v = malloc_bucket_stats (i); - result.bytesfree += v.nfree * v.blocksize; - result.bytesused += v.nused * v.blocksize; - } - return (result); -} - -void -print_malloc_stats (s) - char *s; -{ - register int i; - int totused, totfree; - struct bucket_stats v; - - fprintf (stderr, "Memory allocation statistics: %s\n\tsize\tfree\tin use\ttotal\tmorecore\n", s ? s : ""); - for (i = totused = totfree = 0; i < NBUCKETS; i++) - { - v = malloc_bucket_stats (i); - fprintf (stderr, "%12lu\t%4d\t%6d\t%5d\t%8d\n", v.blocksize, v.nfree, v.nused, v.nmal, v.nmorecore); - totfree += v.nfree * v.blocksize; - totused += v.nused * v.blocksize; - } - fprintf (stderr, "\nTotal bytes in use: %d, total bytes free: %d\n", - totused, totfree); - fprintf (stderr, "Total mallocs: %d, total frees: %d, total reallocs: %d (%d copies)\n", - _mstats.nmal, _mstats.nfre, _mstats.nrealloc, _mstats.nrcopy); - fprintf (stderr, "Total sbrks: %d, total bytes via sbrk: %d\n", - _mstats.nsbrk, _mstats.tsbrk); - fprintf (stderr, "Total blocks split: %d, total block coalesces: %d\n", - _mstats.nbsplit, _mstats.nbcoalesce); -} -#endif /* MALLOC_STATS */ diff --git a/lib/malloc/OLD/omalloc.c b/lib/malloc/OLD/omalloc.c deleted file mode 100644 index 413faeb46..000000000 --- a/lib/malloc/OLD/omalloc.c +++ /dev/null @@ -1,759 +0,0 @@ -/* dynamic memory allocation for GNU. */ - -/* Copyright (C) 1985, 1987 Free Software Foundation, Inc. - - This program 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. - - This program 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 this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. - -In other words, you are welcome to use, share and improve this program. -You are forbidden to forbid anyone else to use, share and improve -what you give them. Help stamp out software-hoarding! */ - -/* - * @(#)nmalloc.c 1 (Caltech) 2/21/82 - * - * U of M Modified: 20 Jun 1983 ACT: strange hacks for Emacs - * - * Nov 1983, Mike@BRL, Added support for 4.1C/4.2 BSD. - * - * This is a very fast storage allocator. It allocates blocks of a small - * number of different sizes, and keeps free lists of each size. Blocks - * that don't exactly fit are passed up to the next larger size. In this - * implementation, the available sizes are (2^n)-4 (or -16) bytes long. - * This is designed for use in a program that uses vast quantities of - * memory, but bombs when it runs out. To make it a little better, it - * warns the user when he starts to get near the end. - * - * June 84, ACT: modified rcheck code to check the range given to malloc, - * rather than the range determined by the 2-power used. - * - * Jan 85, RMS: calls malloc_warning to issue warning on nearly full. - * No longer Emacs-specific; can serve as all-purpose malloc for GNU. - * You should call malloc_init to reinitialize after loading dumped Emacs. - * Call malloc_stats to get info on memory stats if MSTATS turned on. - * realloc knows how to return same block given, just changing its size, - * if the power of 2 is correct. - */ - -/* - * nextf[i] is the pointer to the next free block of size 2^(i+3). The - * smallest allocatable block is 8 bytes. The overhead information will - * go in the first int of the block, and the returned pointer will point - * to the second. - * -#ifdef MSTATS - * nmalloc[i] is the difference between the number of mallocs and frees - * for a given block size. -#endif - */ - -/* Define this to have free() write 0xcf into memory as it's freed, to - uncover callers that refer to freed memory. */ -/* SCO 3.2v4 getcwd and possibly other libc routines fail with MEMSCRAMBLE */ -#if !defined (NO_MEMSCRAMBLE) -# define MEMSCRAMBLE -#endif - -#if defined (emacs) || defined (HAVE_CONFIG_H) -# include -#endif /* emacs */ - -#if defined (HAVE_UNISTD_H) -# include -#endif - -/* Determine which kind of system this is. */ -#if defined (SHELL) -# include "bashtypes.h" -#else -# include -#endif -#include - -/* Define getpagesize () if the system does not. */ -#ifndef HAVE_GETPAGESIZE -# include "getpagesize.h" -#endif - -#if defined (HAVE_RESOURCE) -# include -# include -#endif /* HAVE_RESOURCE */ - -/* Check for the needed symbols. If they aren't present, this - system's isn't very useful to us. */ -#if !defined (RLIMIT_DATA) -# undef HAVE_RESOURCE -#endif - -#if __GNUC__ > 1 -# define FASTCOPY(s, d, n) __builtin_memcpy (d, s, n) -#else /* !__GNUC__ */ -# if !defined (HAVE_BCOPY) -# if !defined (HAVE_MEMMOVE) -# define FASTCOPY(s, d, n) memcpy (d, s, n) -# else -# define FASTCOPY(s, d, n) memmove (d, s, n) -# endif /* !HAVE_MEMMOVE */ -# else /* HAVE_BCOPY */ -# define FASTCOPY(s, d, n) bcopy (s, d, n) -# endif /* HAVE_BCOPY */ -#endif /* !__GNUC__ */ - -#if !defined (NULL) -# define NULL 0 -#endif - -#define start_of_data() &etext - -#define ISALLOC ((char) 0xf7) /* magic byte that implies allocation */ -#define ISFREE ((char) 0x54) /* magic byte that implies free block */ - /* this is for error checking only */ -#define ISMEMALIGN ((char) 0xd6) /* Stored before the value returned by - memalign, with the rest of the word - being the distance to the true - beginning of the block. */ -extern char etext; - -#if !defined (SBRK_DECLARED) -extern char *sbrk (); -#endif /* !SBRK_DECLARED */ - -/* These two are for user programs to look at, when they are interested. */ -unsigned int malloc_sbrk_used; /* amount of data space used now */ -unsigned int malloc_sbrk_unused; /* amount more we can have */ - -/* start of data space; can be changed by calling init_malloc */ -static char *data_space_start; - -static void get_lim_data (); - -#ifdef MSTATS -static int nmalloc[30]; -static int nmal, nfre; -#endif /* MSTATS */ - -/* If range checking is not turned on, all we have is a flag indicating - whether memory is allocated, an index in nextf[], and a size field; to - realloc() memory we copy either size bytes or 1<<(index+3) bytes depending - on whether the former can hold the exact size (given the value of - 'index'). If range checking is on, we always need to know how much space - is allocated, so the 'size' field is never used. */ - -struct mhead { - char mh_alloc; /* ISALLOC or ISFREE */ - char mh_index; /* index in nextf[] */ -/* Remainder are valid only when block is allocated */ - unsigned short mh_size; /* size, if < 0x10000 */ -#ifdef RCHECK - unsigned int mh_nbytes; /* number of bytes allocated */ - int mh_magic4; /* should be == MAGIC4 */ -#endif /* RCHECK */ -}; - -/* Access free-list pointer of a block. - It is stored at block + 4. - This is not a field in the mhead structure - because we want sizeof (struct mhead) - to describe the overhead for when the block is in use, - and we do not want the free-list pointer to count in that. */ - -#define CHAIN(a) \ - (*(struct mhead **) (sizeof (char *) + (char *) (a))) - -#ifdef RCHECK -# include -# if !defined (botch) -# define botch(x) abort () -# else -extern void botch(); -# endif /* botch */ - -# if !defined (__STRING) -# if defined (__STDC__) -# define __STRING(x) #x -# else -# define __STRING(x) "x" -# endif -# endif - - /* To implement range checking, we write magic values in at the beginning - and end of each allocated block, and make sure they are undisturbed - whenever a free or a realloc occurs. */ - - /* Written in each of the 4 bytes following the block's real space */ -# define MAGIC1 0x55 - /* Written in the 4 bytes before the block's real space */ -# define MAGIC4 0x55555555 -# define ASSERT(p) if (!(p)) botch(__STRING(p)); else -# define EXTRA 4 /* 4 bytes extra for MAGIC1s */ -#else /* !RCHECK */ -# define ASSERT(p) -# define EXTRA 0 -#endif /* RCHECK */ - -/* nextf[i] is free list of blocks of size 2**(i + 3) */ - -static struct mhead *nextf[30]; - -/* busy[i] is nonzero while allocation of block size i is in progress. */ - -static char busy[30]; - -/* Number of bytes of writable memory we can expect to be able to get */ -static unsigned int lim_data; - -/* Level number of warnings already issued. - 0 -- no warnings issued. - 1 -- 75% warning already issued. - 2 -- 85% warning already issued. -*/ -static int warnlevel; - -/* Function to call to issue a warning; - 0 means don't issue them. */ -static void (*warnfunction) (); - -/* nonzero once initial bunch of free blocks made */ -static int gotpool; - -char *_malloc_base; - -static void getpool (); - -/* Cause reinitialization based on job parameters; - also declare where the end of pure storage is. */ -void -malloc_init (start, warnfun) - char *start; - void (*warnfun) (); -{ - if (start) - data_space_start = start; - lim_data = 0; - warnlevel = 0; - warnfunction = warnfun; -} - -/* Return the maximum size to which MEM can be realloc'd - without actually requiring copying. */ - -int -malloc_usable_size (mem) - char *mem; -{ - int blocksize = 8 << (((struct mhead *) mem) - 1) -> mh_index; - - return blocksize - sizeof (struct mhead) - EXTRA; -} - -static void -morecore (nu) /* ask system for more memory */ - register int nu; /* size index to get more of */ -{ - register char *cp; - register int nblks; - register unsigned int siz; - - /* Block all signals in case we are executed from a signal handler. */ -#if defined (HAVE_BSD_SIGNALS) - int oldmask; - oldmask = sigsetmask (-1); -#else -# if defined (HAVE_POSIX_SIGNALS) - sigset_t set, oset; - sigfillset (&set); - sigemptyset (&oset); - sigprocmask (SIG_BLOCK, &set, &oset); -# endif /* HAVE_POSIX_SIGNALS */ -#endif /* HAVE_BSD_SIGNALS */ - - if (!data_space_start) - { - data_space_start = start_of_data (); - } - - if (lim_data == 0) - get_lim_data (); - - /* On initial startup, get two blocks of each size up to 1k bytes */ - if (!gotpool) - { getpool (); getpool (); gotpool = 1; } - - /* Find current end of memory and issue warning if getting near max */ - - cp = sbrk (0); - siz = cp - data_space_start; - malloc_sbrk_used = siz; - malloc_sbrk_unused = lim_data - siz; - - if (warnfunction) - switch (warnlevel) - { - case 0: - if (siz > (lim_data / 4) * 3) - { - warnlevel++; - (*warnfunction) ("Warning: past 75% of memory limit"); - } - break; - case 1: - if (siz > (lim_data / 20) * 17) - { - warnlevel++; - (*warnfunction) ("Warning: past 85% of memory limit"); - } - break; - case 2: - if (siz > (lim_data / 20) * 19) - { - warnlevel++; - (*warnfunction) ("Warning: past 95% of memory limit"); - } - break; - } - - if ((int) cp & 0x3ff) /* land on 1K boundaries */ - sbrk (1024 - ((int) cp & 0x3ff)); - - /* Take at least 2k, and figure out how many blocks of the desired size - we're about to get */ - nblks = 1; - if ((siz = nu) < 8) - nblks = 1 << ((siz = 8) - nu); - - if ((cp = sbrk (1 << (siz + 3))) == (char *) -1) - return; /* no more room! */ - - if ((int) cp & 7) - { /* shouldn't happen, but just in case */ - cp = (char *) (((int) cp + 8) & ~7); - nblks--; - } - - /* save new header and link the nblks blocks together */ - nextf[nu] = (struct mhead *) cp; - siz = 1 << (nu + 3); - while (1) - { - ((struct mhead *) cp) -> mh_alloc = ISFREE; - ((struct mhead *) cp) -> mh_index = nu; - if (--nblks <= 0) break; - CHAIN ((struct mhead *) cp) = (struct mhead *) (cp + siz); - cp += siz; - } - CHAIN ((struct mhead *) cp) = 0; - -#if defined (HAVE_BSD_SIGNALS) - sigsetmask (oldmask); -#else -# if defined (HAVE_POSIX_SIGNALS) - sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); -# endif -#endif /* HAVE_BSD_SIGNALS */ -} - -static void -getpool () -{ - register int nu; - register char *cp = sbrk (0); - - if ((int) cp & 0x3ff) /* land on 1K boundaries */ - sbrk (1024 - ((int) cp & 0x3ff)); - - /* Record address of start of space allocated by malloc. */ - if (_malloc_base == 0) - _malloc_base = cp; - - /* Get 2k of storage */ - - cp = sbrk (04000); - if (cp == (char *) -1) - return; - - /* Divide it into an initial 8-word block - plus one block of size 2**nu for nu = 3 ... 10. */ - - CHAIN (cp) = nextf[0]; - nextf[0] = (struct mhead *) cp; - ((struct mhead *) cp) -> mh_alloc = ISFREE; - ((struct mhead *) cp) -> mh_index = 0; - cp += 8; - - for (nu = 0; nu < 7; nu++) - { - CHAIN (cp) = nextf[nu]; - nextf[nu] = (struct mhead *) cp; - ((struct mhead *) cp) -> mh_alloc = ISFREE; - ((struct mhead *) cp) -> mh_index = nu; - cp += 8 << nu; - } -} - -#if defined (MEMSCRAMBLE) || !defined (NO_CALLOC) -static char * -zmemset (s, c, n) - char *s; - int c; - register int n; -{ - register char *sp; - - sp = s; - while (--n >= 0) - *sp++ = c; - return (s); -} -#endif /* MEMSCRAMBLE || !NO_CALLOC */ - -char * -malloc (n) /* get a block */ - unsigned int n; -{ - register struct mhead *p; - register unsigned int nbytes; - register int nunits = 0; - - /* Figure out how many bytes are required, rounding up to the nearest - multiple of 4, then figure out which nextf[] area to use */ - nbytes = (n + sizeof *p + EXTRA + 3) & ~3; - { - register unsigned int shiftr = (nbytes - 1) >> 2; - - while (shiftr >>= 1) - nunits++; - } - - /* In case this is reentrant use of malloc from signal handler, - pick a block size that no other malloc level is currently - trying to allocate. That's the easiest harmless way not to - interfere with the other level of execution. */ - while (busy[nunits]) nunits++; - busy[nunits] = 1; - - /* If there are no blocks of the appropriate size, go get some */ - /* COULD SPLIT UP A LARGER BLOCK HERE ... ACT */ - if (nextf[nunits] == 0) - morecore (nunits); - - /* Get one block off the list, and set the new list head */ - if ((p = nextf[nunits]) == 0) - { - busy[nunits] = 0; - return 0; - } - nextf[nunits] = CHAIN (p); - busy[nunits] = 0; - - /* Check for free block clobbered */ - /* If not for this check, we would gobble a clobbered free chain ptr */ - /* and bomb out on the NEXT allocate of this size block */ - if (p -> mh_alloc != ISFREE || p -> mh_index != nunits) -#ifdef RCHECK - botch ("block on free list clobbered"); -#else /* not RCHECK */ - abort (); -#endif /* not RCHECK */ - - /* Fill in the info, and if range checking, set up the magic numbers */ - p -> mh_alloc = ISALLOC; -#ifdef RCHECK - p -> mh_nbytes = n; - p -> mh_magic4 = MAGIC4; - { - register char *m = (char *) (p + 1) + n; - - *m++ = MAGIC1, *m++ = MAGIC1, *m++ = MAGIC1, *m = MAGIC1; - } -#else /* not RCHECK */ - p -> mh_size = n; -#endif /* not RCHECK */ -#ifdef MEMSCRAMBLE - zmemset ((char *)(p + 1), 0xdf, n); /* scramble previous contents */ -#endif -#ifdef MSTATS - nmalloc[nunits]++; - nmal++; -#endif /* MSTATS */ - return (char *) (p + 1); -} - -void -free (mem) - char *mem; -{ - register struct mhead *p; - { - register char *ap = mem; - - if (ap == 0) - return; - - p = (struct mhead *) ap - 1; - - if (p -> mh_alloc == ISMEMALIGN) - { -#ifdef RCHECK - ap -= p->mh_nbytes; -#else - ap -= p->mh_size; /* XXX */ -#endif - p = (struct mhead *) ap - 1; - } - -#ifndef RCHECK - if (p -> mh_alloc != ISALLOC) - abort (); - -#else /* RCHECK */ - if (p -> mh_alloc != ISALLOC) - { - if (p -> mh_alloc == ISFREE) - botch ("free: Called with already freed block argument\n"); - else - botch ("free: Called with unallocated block argument\n"); - } - - ASSERT (p -> mh_magic4 == MAGIC4); - ap += p -> mh_nbytes; - ASSERT (*ap++ == MAGIC1); ASSERT (*ap++ == MAGIC1); - ASSERT (*ap++ == MAGIC1); ASSERT (*ap == MAGIC1); -#endif /* RCHECK */ - } -#ifdef MEMSCRAMBLE - { - register int n; - -#ifdef RCHECK - n = p->mh_nbytes; -#else /* not RCHECK */ - n = p->mh_size; -#endif /* not RCHECK */ - zmemset (mem, 0xcf, n); - } -#endif - { - register int nunits = p -> mh_index; - - ASSERT (nunits <= 29); - p -> mh_alloc = ISFREE; - - /* Protect against signal handlers calling malloc. */ - busy[nunits] = 1; - /* Put this block on the free list. */ - CHAIN (p) = nextf[nunits]; - nextf[nunits] = p; - busy[nunits] = 0; - -#ifdef MSTATS - nmalloc[nunits]--; - nfre++; -#endif /* MSTATS */ - } -} - -char * -realloc (mem, n) - char *mem; - register unsigned int n; -{ - register struct mhead *p; - register unsigned int tocopy; - register unsigned int nbytes; - register int nunits; - - if ((p = (struct mhead *) mem) == 0) - return malloc (n); - p--; - nunits = p -> mh_index; - ASSERT (p -> mh_alloc == ISALLOC); -#ifdef RCHECK - ASSERT (p -> mh_magic4 == MAGIC4); - { - register char *m = mem + (tocopy = p -> mh_nbytes); - ASSERT (*m++ == MAGIC1); ASSERT (*m++ == MAGIC1); - ASSERT (*m++ == MAGIC1); ASSERT (*m == MAGIC1); - } -#else /* not RCHECK */ - if (p -> mh_index >= 13) - tocopy = (1 << (p -> mh_index + 3)) - sizeof *p; - else - tocopy = p -> mh_size; -#endif /* not RCHECK */ - - /* See if desired size rounds to same power of 2 as actual size. */ - nbytes = (n + sizeof *p + EXTRA + 7) & ~7; - - /* If ok, use the same block, just marking its size as changed. */ - if (nbytes > (4 << nunits) && nbytes <= (8 << nunits)) - { -#ifdef RCHECK - register char *m = mem + tocopy; - *m++ = 0; *m++ = 0; *m++ = 0; *m++ = 0; - p-> mh_nbytes = n; - m = mem + n; - *m++ = MAGIC1; *m++ = MAGIC1; *m++ = MAGIC1; *m++ = MAGIC1; -#else /* not RCHECK */ - p -> mh_size = n; -#endif /* not RCHECK */ - return mem; - } - - if (n < tocopy) - tocopy = n; - { - register char *new; - - if ((new = malloc (n)) == 0) - return 0; - FASTCOPY (mem, new, tocopy); - free (mem); - return new; - } -} - -char * -memalign (alignment, size) - unsigned int alignment, size; -{ - register char *ptr; - register char *aligned; - register struct mhead *p; - - ptr = malloc (size + alignment); - - if (ptr == 0) - return 0; - /* If entire block has the desired alignment, just accept it. */ - if (((int) ptr & (alignment - 1)) == 0) - return ptr; - /* Otherwise, get address of byte in the block that has that alignment. */ - aligned = (char *) (((int) ptr + alignment - 1) & -alignment); - - /* Store a suitable indication of how to free the block, - so that free can find the true beginning of it. */ - p = (struct mhead *) aligned - 1; - p -> mh_size = aligned - ptr; - p -> mh_alloc = ISMEMALIGN; - return aligned; -} - -#if !defined (HPUX) -/* This runs into trouble with getpagesize on HPUX, and Multimax machines. - Patching out seems cleaner than the ugly fix needed. */ -#if defined (__STDC__) -void * -#else -char * -#endif -valloc (size) - size_t size; -{ - return memalign (getpagesize (), size); -} -#endif /* !HPUX */ - -#ifndef NO_CALLOC -char * -calloc (n, s) - size_t n, s; -{ - size_t total; - char *result; - - total = n * s; - result = malloc (total); - if (result) - zmemset (result, 0, total); - return result; -} - -void -cfree (p) - char *p; -{ - free (p); -} -#endif /* !NO_CALLOC */ - -#ifdef MSTATS -/* Return statistics describing allocation of blocks of size 2**n. */ - -struct mstats_value - { - int blocksize; - int nfree; - int nused; - }; - -struct mstats_value -malloc_stats (size) - int size; -{ - struct mstats_value v; - register int i; - register struct mhead *p; - - v.nfree = 0; - - if (size < 0 || size >= 30) - { - v.blocksize = 0; - v.nused = 0; - return v; - } - - v.blocksize = 1 << (size + 3); - v.nused = nmalloc[size]; - - for (p = nextf[size]; p; p = CHAIN (p)) - v.nfree++; - - return v; -} -#endif /* MSTATS */ - -/* - * This function returns the total number of bytes that the process - * will be allowed to allocate via the sbrk(2) system call. On - * BSD systems this is the total space allocatable to stack and - * data. On USG systems this is the data space only. - */ - -#if !defined (HAVE_RESOURCE) -extern long ulimit (); - -static void -get_lim_data () -{ - lim_data = ulimit (3, 0); - lim_data -= (long) data_space_start; -} - -#else /* HAVE_RESOURCE */ -static void -get_lim_data () -{ - struct rlimit XXrlimit; - - getrlimit (RLIMIT_DATA, &XXrlimit); -#ifdef RLIM_INFINITY - lim_data = XXrlimit.rlim_cur & RLIM_INFINITY; /* soft limit */ -#else - lim_data = XXrlimit.rlim_cur; /* soft limit */ -#endif -} - -#endif /* HAVE_RESOURCE */ diff --git a/lib/malloc/memtest.c b/lib/malloc/memtest.c deleted file mode 100644 index 15f811582..000000000 --- a/lib/malloc/memtest.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - * malloc test program. - * - * to build: - * make x.o - * gcc -g -o x x.o xmalloc.o lib/malloc/libmalloc.a - */ - -/* Copyright (C) 2002-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 3 of the License, 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. If not, see . -*/ - -#include -#include -#include - -#define USING_BASH_MALLOC -#define HAVE_STRINGIZE - -#include "xmalloc.h" - -int interrupt_immediately = 0; - -static char xp[64]; - -main(int c, char **v) -{ - char *p; - - malloc_set_register(1); - -#if 0 - free (xp); /* free unallocated memory */ -#endif - -#if 0 - p = xrealloc(xp, 128); -#endif - -#if 0 - /* - * request an amount so that the bucket changes when the malloc - * overhead is added to the requested size. This had better - * succeed. - */ - p = xmalloc(25); - p[0] = 'a'; - p[1] = '\0'; - free(p); /* sanity check on underflow checks in free() */ -#endif - -#if 0 - p = xmalloc(28); - /* This works for little-endian machines like i386. */ - p[-4] = '\7'; /* underflow */ - p = xrealloc(p, 128); /* realloc corrupted memory */ -#endif - -#if 0 - p = xmalloc(28); - /* This works for little-endian machines like i386. */ - p[-4] = '\7'; /* underflow */ - free(p); -#endif - -#if 0 - p = xmalloc(2); - free(p); - free(p); /* duplicate free */ -#endif - -#if 0 - p = xmalloc(32); - free(p); - p = xrealloc(p, 128); /* realloc freed mem */ -#endif - -#if 0 - p = xmalloc(64); - p[64] = '\0'; - p = xrealloc(p, 128); /* overflow */ -#endif - -#if 0 - p = xmalloc(64); - p[64] = '\0'; - free(p); /* overflow */ -#endif - -#if 0 - p = xmalloc(64); - p[-1] = 'a'; - free (p); /* underflow */ -#endif - -#if 0 - p = xmalloc(64); - p[-1] = 'a'; - p = xrealloc(p, 129); /* underflow */ -#endif - - mregister_dump_table(); - exit(0); -} - -void -fatal_error(const char *format, ...) -{ - va_list args; - - fprintf(stderr, "malloc-test: "); - va_start(args, format); - vfprintf(stderr, format, args); - fprintf(stderr, "\n"); - va_end(args); - exit(2); -} - -void -programming_error(const char *format, ...) -{ - va_list args; - - fprintf(stderr, "malloc-test: "); - va_start(args, format); - vfprintf(stderr, format, args); - fprintf(stderr, "\n"); - va_end(args); - - abort(); -} - -int -signal_is_trapped(int n) -{ - return 0; -} diff --git a/lib/posixheaders.old/ansi_stdlib.h b/lib/posixheaders.old/ansi_stdlib.h deleted file mode 100644 index 52339da5d..000000000 --- a/lib/posixheaders.old/ansi_stdlib.h +++ /dev/null @@ -1,41 +0,0 @@ -/* ansi_stdlib.h -- An ANSI Standard stdlib.h. */ -/* A minimal stdlib.h containing extern declarations for those functions - that bash uses. */ - -/* Copyright (C) 1993 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#if !defined (_STDLIB_H_) -#define _STDLIB_H_ 1 - -/* String conversion functions. */ -extern int atoi (); -extern long int atol (); - -/* Memory allocation functions. */ -extern char *malloc (); -extern char *realloc (); -extern void free (); - -/* Other miscellaneous functions. */ -extern void abort (); -extern void exit (); -extern char *getenv (); -extern void qsort (); - -#endif /* _STDLIB_H */ diff --git a/lib/posixheaders.old/filecntl.h b/lib/posixheaders.old/filecntl.h deleted file mode 100644 index cf5054ded..000000000 --- a/lib/posixheaders.old/filecntl.h +++ /dev/null @@ -1,45 +0,0 @@ -/* filecntl.h - Definitions to set file descriptors to close-on-exec. */ - -/* Copyright (C) 1993 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#if !defined (_FILECNTL_H_) -#define _FILECNTL_H_ - -#include - -/* Definitions to set file descriptors to close-on-exec, the Posix way. */ -#if !defined (FD_CLOEXEC) -#define FD_CLOEXEC 1 -#endif - -#define FD_NCLOEXEC 0 - -#define SET_CLOSE_ON_EXEC(fd) (fcntl ((fd), F_SETFD, FD_CLOEXEC)) -#define SET_OPEN_ON_EXEC(fd) (fcntl ((fd), F_SETFD, FD_NCLOEXEC)) - -/* How to open a file in non-blocking mode, the Posix.1 way. */ -#if !defined (O_NONBLOCK) -# if defined (O_NDELAY) -# define O_NONBLOCK O_NDELAY -# else -# define O_NONBLOCK 0 -# endif -#endif - -#endif /* ! _FILECNTL_H_ */ diff --git a/lib/posixheaders.old/memalloc.h b/lib/posixheaders.old/memalloc.h deleted file mode 100644 index c68961f32..000000000 --- a/lib/posixheaders.old/memalloc.h +++ /dev/null @@ -1,58 +0,0 @@ -/* memalloc.h -- consolidate code for including alloca.h or malloc.h and - defining alloca. */ - -/* Copyright (C) 1993 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#if !defined (_MEMALLOC_H_) -# define _MEMALLOC_H_ - -#if defined (sparc) && defined (sun) && !defined (HAVE_ALLOCA_H) -# define HAVE_ALLOCA_H -#endif - -#if defined (__GNUC__) && !defined (HAVE_ALLOCA) -# define HAVE_ALLOCA -#endif - -#if defined (HAVE_ALLOCA_H) && !defined (HAVE_ALLOCA) -# define HAVE_ALLOCA -#endif /* HAVE_ALLOCA_H && !HAVE_ALLOCA */ - -#if defined (__GNUC__) && !defined (C_ALLOCA) -# undef alloca -# define alloca __builtin_alloca -#else /* !__GNUC__ || C_ALLOCA */ -# if defined (HAVE_ALLOCA_H) && !defined (C_ALLOCA) -# if defined (IBMESA) -# include -# else /* !IBMESA */ -# include -# endif /* !IBMESA */ -# else /* !HAVE_ALLOCA_H || C_ALLOCA */ -# if defined (__hpux) && defined (__STDC__) && !defined (alloca) -extern void *alloca (); -# else -# if !defined (alloca) -extern char *alloca (); -# endif /* !alloca */ -# endif /* !__hpux || !__STDC__ && !alloca */ -# endif /* !HAVE_ALLOCA_H || C_ALLOCA */ -#endif /* !__GNUC__ || C_ALLOCA */ - -#endif /* _MEMALLOC_H_ */ diff --git a/lib/posixheaders.old/posixdir.h b/lib/posixheaders.old/posixdir.h deleted file mode 100644 index 7480a93d5..000000000 --- a/lib/posixheaders.old/posixdir.h +++ /dev/null @@ -1,49 +0,0 @@ -/* posixdir.h -- Posix directory reading includes and defines. */ - -/* Copyright (C) 1987,1991 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/* This file should be included instead of or . */ - -#if !defined (_POSIXDIR_H_) -#define _POSIXDIR_H_ - -#if defined (HAVE_DIRENT_H) -# include -# define D_NAMLEN(d) (strlen ((d)->d_name)) -#else -# if defined (HAVE_SYS_NDIR_H) -# include -# endif -# if defined (HAVE_SYS_DIR_H) -# include -# endif -# if defined (HAVE_NDIR_H) -# include -# endif -# if !defined (dirent) -# define dirent direct -# endif /* !dirent */ -# define D_NAMLEN(d) ((d)->d_namlen) -#endif /* !HAVE_DIRENT_H */ - -#if defined (STRUCT_DIRENT_HAS_D_INO) && !defined (STRUCT_DIRENT_HAS_D_FILENO) -# define d_fileno d_ino -#endif - -#endif /* !_POSIXDIR_H_ */ diff --git a/lib/posixheaders.old/posixjmp.h b/lib/posixheaders.old/posixjmp.h deleted file mode 100644 index 1347cc07e..000000000 --- a/lib/posixheaders.old/posixjmp.h +++ /dev/null @@ -1,22 +0,0 @@ -/* posixjmp.h -- wrapper for setjmp.h with changes for POSIX systems. */ - -#ifndef _POSIXJMP_H_ -#define _POSIXJMP_H_ - -#include - -/* This *must* be included *after* config.h */ - -#if defined (HAVE_POSIX_SIGSETJMP) -# define procenv_t sigjmp_buf -# if !defined (__OPENNT) -# undef setjmp -# define setjmp(x) sigsetjmp((x), 1) -# undef longjmp -# define longjmp(x, n) siglongjmp((x), (n)) -# endif /* !__OPENNT */ -#else -# define procenv_t jmp_buf -#endif - -#endif /* _POSIXJMP_H_ */ diff --git a/lib/posixheaders.old/posixstat.h b/lib/posixheaders.old/posixstat.h deleted file mode 100644 index bfce8c04f..000000000 --- a/lib/posixheaders.old/posixstat.h +++ /dev/null @@ -1,142 +0,0 @@ -/* posixstat.h -- Posix stat(2) definitions for systems that - don't have them. */ - -/* Copyright (C) 1987,1991 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/* This file should be included instead of . - It relies on the local sys/stat.h to work though. */ -#if !defined (_POSIXSTAT_H_) -#define _POSIXSTAT_H_ - -#include - -#if defined (STAT_MACROS_BROKEN) -# undef S_ISBLK -# undef S_ISCHR -# undef S_ISDIR -# undef S_ISFIFO -# undef S_ISREG -# undef S_ISLNK -#endif /* STAT_MACROS_BROKEN */ - -/* These are guaranteed to work only on isc386 */ -#if !defined (S_IFDIR) && !defined (S_ISDIR) -# define S_IFDIR 0040000 -#endif /* !S_IFDIR && !S_ISDIR */ -#if !defined (S_IFMT) -# define S_IFMT 0170000 -#endif /* !S_IFMT */ - -/* Posix 1003.1 5.6.1.1 file types */ - -/* Some Posix-wannabe systems define _S_IF* macros instead of S_IF*, but - do not provide the S_IS* macros that Posix requires. */ - -#if defined (_S_IFMT) && !defined (S_IFMT) -#define S_IFMT _S_IFMT -#endif -#if defined (_S_IFIFO) && !defined (S_IFIFO) -#define S_IFIFO _S_IFIFO -#endif -#if defined (_S_IFCHR) && !defined (S_IFCHR) -#define S_IFCHR _S_IFCHR -#endif -#if defined (_S_IFDIR) && !defined (S_IFDIR) -#define S_IFDIR _S_IFDIR -#endif -#if defined (_S_IFBLK) && !defined (S_IFBLK) -#define S_IFBLK _S_IFBLK -#endif -#if defined (_S_IFREG) && !defined (S_IFREG) -#define S_IFREG _S_IFREG -#endif -#if defined (_S_IFLNK) && !defined (S_IFLNK) -#define S_IFLNK _S_IFLNK -#endif -#if defined (_S_IFSOCK) && !defined (S_IFSOCK) -#define S_IFSOCK _S_IFSOCK -#endif - -/* Test for each symbol individually and define the ones necessary (some - systems claiming Posix compatibility define some but not all). */ - -#if defined (S_IFBLK) && !defined (S_ISBLK) -#define S_ISBLK(m) (((m)&S_IFMT) == S_IFBLK) /* block device */ -#endif - -#if defined (S_IFCHR) && !defined (S_ISCHR) -#define S_ISCHR(m) (((m)&S_IFMT) == S_IFCHR) /* character device */ -#endif - -#if defined (S_IFDIR) && !defined (S_ISDIR) -#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) /* directory */ -#endif - -#if defined (S_IFREG) && !defined (S_ISREG) -#define S_ISREG(m) (((m)&S_IFMT) == S_IFREG) /* file */ -#endif - -#if defined (S_IFIFO) && !defined (S_ISFIFO) -#define S_ISFIFO(m) (((m)&S_IFMT) == S_IFIFO) /* fifo - named pipe */ -#endif - -#if defined (S_IFLNK) && !defined (S_ISLNK) -#define S_ISLNK(m) (((m)&S_IFMT) == S_IFLNK) /* symbolic link */ -#endif - -#if defined (S_IFSOCK) && !defined (S_ISSOCK) -#define S_ISSOCK(m) (((m)&S_IFMT) == S_IFSOCK) /* socket */ -#endif - -/* - * POSIX 1003.1 5.6.1.2 File Modes - */ - -#if !defined (S_IRWXU) -# if !defined (S_IREAD) -# define S_IREAD 00400 -# define S_IWRITE 00200 -# define S_IEXEC 00100 -# endif /* S_IREAD */ - -# if !defined (S_IRUSR) -# define S_IRUSR S_IREAD /* read, owner */ -# define S_IWUSR S_IWRITE /* write, owner */ -# define S_IXUSR S_IEXEC /* execute, owner */ - -# define S_IRGRP (S_IREAD >> 3) /* read, group */ -# define S_IWGRP (S_IWRITE >> 3) /* write, group */ -# define S_IXGRP (S_IEXEC >> 3) /* execute, group */ - -# define S_IROTH (S_IREAD >> 6) /* read, other */ -# define S_IWOTH (S_IWRITE >> 6) /* write, other */ -# define S_IXOTH (S_IEXEC >> 6) /* execute, other */ -# endif /* !S_IRUSR */ - -# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) -# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) -# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) -#endif /* !S_IRWXU */ - -/* These are non-standard, but are used in builtins.c$symbolic_umask() */ -#define S_IRUGO (S_IRUSR | S_IRGRP | S_IROTH) -#define S_IWUGO (S_IWUSR | S_IWGRP | S_IWOTH) -#define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) - -#endif /* _POSIXSTAT_H_ */ diff --git a/lib/posixheaders.old/stdc.h b/lib/posixheaders.old/stdc.h deleted file mode 100644 index f1590c6dc..000000000 --- a/lib/posixheaders.old/stdc.h +++ /dev/null @@ -1,79 +0,0 @@ -/* stdc.h -- macros to make source compile on both ANSI C and K&R C - compilers. */ - -/* Copyright (C) 1993 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#if !defined (_STDC_H_) -#define _STDC_H_ - -/* Adapted from BSD /usr/include/sys/cdefs.h. */ - -/* A function can be defined using prototypes and compile on both ANSI C - and traditional C compilers with something like this: - extern char *func __P((char *, char *, int)); */ - -#if defined (__STDC__) - -# if !defined (__P) -# define __P(protos) protos -# endif -# define __STRING(x) #x - -# if !defined (__GNUC__) -# define inline -# endif - -#else /* !__STDC__ */ - -# if !defined (__P) -# define __P(protos) () -# endif -# define __STRING(x) "x" - -#if defined (__GNUC__) /* gcc with -traditional */ -# if !defined (const) -# define const __const -# endif -# if !defined (inline) -# define inline __inline -# endif -# if !defined (signed) -# define signed __signed -# endif -# if !defined (volatile) -# define volatile __volatile -# endif -#else /* !__GNUC__ */ -# if !defined (const) -# define const -# endif -# if !defined (inline) -# define inline -# endif -# if !defined (signed) -# define signed -# endif -# if !defined (volatile) -# define volatile -# endif -#endif /* !__GNUC__ */ - -#endif /* !__STDC__ */ - -#endif /* !_STDC_H_ */ diff --git a/lib/readline/-i b/lib/readline/-i deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/NEW/xxx-autocomplete b/lib/readline/NEW/xxx-autocomplete deleted file mode 100644 index fdc2ad077..000000000 --- a/lib/readline/NEW/xxx-autocomplete +++ /dev/null @@ -1,39 +0,0 @@ -#if defined (READLINE_AUTOCOMPLETE) -/* Return the list of completions for the text between START and END. - FOUND_QUOTE is non-zero if we're completing a quoted word; if so, - QUOTE_CHAR is the delimiter. If NONTRIVIAL_P is nonzero, it gets - set to a flag saying whether or not the completion added anything - to the word. Not part of rl_complete_internal because it's too - hard to separate functions without postprocess_matches possibly being - called twice; here to support the autocompletion code. */ -char ** -_rl_generate_completions (start, end, found_quote, quote_char, nontrivial_p) - int start, end, found_quote, quote_char, *nontrivial_p; -{ - rl_compentry_func_t *our_func; - char *text; - char **matches; - - our_func = rl_completion_entry_function - ? rl_completion_entry_function - : rl_filename_completion_function; - text = rl_copy_text (start, end); - matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char); - - /* *nontrivial_p is set if the common prefix adds something to the word - being completed. */ - if (nontrivial_p) - *nontrivial_p = matches && strcmp (text, matches[0]) != 0; - - free (text); - - /* Postprocess the matches */ - if (matches == 0) - return (char **)0; - - if (postprocess_matches (&matches, rl_filename_completion_desired) == 0) - return (char **)0; - - return 0; -} -#endif diff --git a/lib/readline/copyright-comment b/lib/readline/copyright-comment deleted file mode 100644 index eea44d2e4..000000000 --- a/lib/readline/copyright-comment +++ /dev/null @@ -1,12 +0,0 @@ - Readline 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 3 of the License, or - (at your option) any later version. - - Readline 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 Readline. If not, see . diff --git a/lib/readline/copyright-history b/lib/readline/copyright-history deleted file mode 100644 index 6e7422e55..000000000 --- a/lib/readline/copyright-history +++ /dev/null @@ -1,12 +0,0 @@ - History 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 3 of the License, or - (at your option) any later version. - - History 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 History. If not, see . diff --git a/lib/readline/doc/Makefile.in b/lib/readline/doc/Makefile.in deleted file mode 100644 index 08444d20a..000000000 --- a/lib/readline/doc/Makefile.in +++ /dev/null @@ -1,159 +0,0 @@ -# Derived by hand from the generated readline-src/doc/Makefile -# This makefile for Readline library documentation is in -*- text -*- mode. -# Emacs likes it that way. - -# Copyright (C) 1996-2002 Free Software Foundation, Inc. - -# This program 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 3 of the License, or -# (at your option) any later version. - -# This program 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 this program. If not, see . - -topdir = . -srcdir = . -VPATH = . - -prefix = /usr/local -infodir = ${prefix}/info - -mandir = ${prefix}/man -manpfx = man - -man1ext = 1 -man1dir = $(mandir)/$(manpfx)$(man1ext) -man3ext = 3 -man3dir = $(mandir)/$(manpfx)$(man3ext) - -SHELL = /bin/sh -RM = rm -f - -INSTALL = /usr/bin/install -c -INSTALL_DATA = ${INSTALL} -m 644 - -BUILD_DIR = . -TEXINPUTDIR = $(srcdir) - -MAKEINFO = LANGUAGE= makeinfo -TEXI2DVI = $(srcdir)/texi2dvi -TEXI2HTML = $(srcdir)/texi2html -QUIETPS = #set this to -q to shut up dvips -PSDPI = 600 -DVIPS = dvips -D ${PSDPI} $(QUIETPS) -o $@ # tricky -DVIPDF = dvipdfm -o $@ -p ${PAPERSIZE} -PSPDF = gs -sPAPERSIZE=${PAPERSIZE} -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=$@ - -RLSRC = $(srcdir)/rlman.texi $(srcdir)/rluser.texi \ - $(srcdir)/rltech.texi $(srcdir)/version.texi \ - $(srcdir)/rluserman.texi -HISTSRC = $(srcdir)/history.texi $(srcdir)/hsuser.texi \ - $(srcdir)/hstech.texi $(srcdir)/version.texi - -# This should be a program that converts troff to an ascii-readable format -NROFF = groff -Tascii - -# This should be a program that converts troff to postscript -GROFF = groff - -DVIOBJ = readline.dvi history.dvi rluserman.dvi -INFOOBJ = readline.info history.info rluserman.info -PSOBJ = readline.ps history.ps rluserman.ps -HTMLOBJ = readline.html history.html rluserman.html -PDFOBJ = readline.pdf history.pdf rluserman.pdf - -INTERMEDIATE_OBJ = rlman.dvi - -CREATED_DOCS = $(DVIOBJ) $(INFOOBJ) $(PSOBJ) $(HTMLOBJ) $(PDFOBJ) - -.SUFFIXES: .ps .txt .dvi .html .pdf - -.ps.pdf: - $(RM) $@ - -${PSPDF} $< - -.dvi.pdf: - $(RM) $@ - -${DVIPDF} $< - -all: info dvi html ps -nodvi: info html -pdf: $(PDFOBJ) - -readline.dvi: $(RLSRC) - TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rlman.texi - mv rlman.dvi readline.dvi - -readline.info: $(RLSRC) - $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rlman.texi - -rluserman.dvi: $(RLSRC) - TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rluserman.texi - -rluserman.info: $(RLSRC) - $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rluserman.texi - -history.dvi: ${HISTSRC} - TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/history.texi - -history.info: ${HISTSRC} - $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/history.texi - -readline.ps: readline.dvi - $(RM) $@ - $(DVIPS) readline.dvi - -rluserman.ps: rluserman.dvi - $(RM) $@ - $(DVIPS) rluserman.dvi - -history.ps: history.dvi - $(RM) $@ - $(DVIPS) history.dvi - -readline.html: ${RLSRC} - $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rlman.texi - sed -e 's:rlman.html:readline.html:' rlman.html > readline.html - $(RM) rlman.html - -rluserman.html: ${RLSRC} - $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rluserman.texi - -history.html: ${HISTSRC} - $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/history.texi - -info: $(INFOOBJ) -dvi: $(DVIOBJ) -ps: $(PSOBJ) -html: $(HTMLOBJ) - -readline.pdf: readline.dvi -history.pdf: history.dvi -rluserman.pdf: rluserman.dvi - -clean: - $(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \ - *.fns *.kys *.tps *.vrs *.bt *.bts *.o core *.core - -distclean: clean - $(RM) $(CREATED_DOCS) - $(RM) $(INTERMEDIATE_OBJ) - $(RM) Makefile - -mostlyclean: clean - -maintainer-clean: clean - $(RM) $(CREATED_DOCS) - $(RM) $(INTERMEDIATE_OBJ) - $(RM) Makefile - -install: - @echo "This documentation should not be installed." - -uninstall: diff --git a/lib/readline/doc/hist.texinfo b/lib/readline/doc/hist.texinfo deleted file mode 100644 index 63ceb16e6..000000000 --- a/lib/readline/doc/hist.texinfo +++ /dev/null @@ -1,110 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@c %**start of header (This is for running Texinfo on a region.) -@setfilename history.info -@settitle GNU History Library -@c %**end of header (This is for running Texinfo on a region.) - -@setchapternewpage odd - -@include manvers.texinfo - -@ifinfo -@dircategory Libraries -@direntry -* History: (history). The GNU history library API -@end direntry - -This document describes the GNU History library, a programming tool that -provides a consistent user interface for recalling lines of previously -typed input. - -Copyright (C) 1988-2002 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -pare preserved on all copies. - -@ignore -Permission is granted to process this file through TeX and print the -results, provided the printed document carries copying permission -notice identical to this one except for the removal of this paragraph -(this paragraph not being relevant to the printed manual). -@end ignore - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Free Software Foundation. -@end ifinfo - -@titlepage -@title GNU History Library -@subtitle Edition @value{EDITION}, for @code{History Library} Version @value{VERSION}. -@subtitle @value{UPDATE-MONTH} -@author Brian Fox, Free Software Foundation -@author Chet Ramey, Case Western Reserve University - -@page -This document describes the GNU History library, a programming tool that -provides a consistent user interface for recalling lines of previously -typed input. - -Published by the Free Software Foundation @* -59 Temple Place, Suite 330, @* -Boston, MA 02111 USA - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Free Software Foundation. - -@vskip 0pt plus 1filll -Copyright @copyright{} 1988-2002 Free Software Foundation, Inc. -@end titlepage - -@ifinfo -@node Top -@top GNU History Library - -This document describes the GNU History library, a programming tool that -provides a consistent user interface for recalling lines of previously -typed input. - -@menu -* Using History Interactively:: GNU History User's Manual. -* Programming with GNU History:: GNU History Programmer's Manual. -* Concept Index:: Index of concepts described in this manual. -* Function and Variable Index:: Index of externally visible functions - and variables. -@end menu -@end ifinfo - -@syncodeindex fn vr - -@include hsuser.texinfo -@include hstech.texinfo - -@node Concept Index -@appendix Concept Index -@printindex cp - -@node Function and Variable Index -@appendix Function and Variable Index -@printindex vr - -@contents -@bye diff --git a/lib/readline/doc/history.3 b/lib/readline/doc/history.3 deleted file mode 100644 index 15775aa96..000000000 --- a/lib/readline/doc/history.3 +++ /dev/null @@ -1,672 +0,0 @@ -.\" -.\" MAN PAGE COMMENTS to -.\" -.\" Chet Ramey -.\" Information Network Services -.\" Case Western Reserve University -.\" chet@ins.CWRU.Edu -.\" -.\" Last Change: Thu Aug 12 22:24:41 EDT 2010 -.\" -.TH HISTORY 3 "2010 August 12" "GNU History 6.2" -.\" -.\" File Name macro. This used to be `.PN', for Path Name, -.\" but Sun doesn't seem to like that very much. -.\" -.de FN -\fI\|\\$1\|\fP -.. -.ds lp \fR\|(\fP -.ds rp \fR\|)\fP -.\" FnN return-value fun-name N arguments -.de Fn1 -\fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3\fP\\*(rp -.br -.. -.de Fn2 -.if t \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3,\|\\$4\fP\\*(rp -.if n \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3, \\$4\fP\\*(rp -.br -.. -.de Fn3 -.if t \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3,\|\\$4,\|\\$5\fP\|\\*(rp -.if n \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3, \\$4, \\$5\fP\\*(rp -.br -.. -.de Vb -\fI\\$1\fP \fB\\$2\fP -.br -.. -.SH NAME -history \- GNU History Library -.SH COPYRIGHT -.if t The GNU History Library is Copyright \(co 1989-2011 by the Free Software Foundation, Inc. -.if n The GNU History Library is Copyright (C) 1989-2011 by the Free Software Foundation, Inc. -.SH DESCRIPTION -Many programs read input from the user a line at a time. The GNU -History library is able to keep track of those lines, associate arbitrary -data with each line, and utilize information from previous lines in -composing new ones. -.PP -.SH "HISTORY EXPANSION" -.PP -The history library supports a history expansion feature that -is identical to the history expansion in -.BR bash. -This section describes what syntax features are available. -.PP -History expansions introduce words from the history list into -the input stream, making it easy to repeat commands, insert the -arguments to a previous command into the current input line, or -fix errors in previous commands quickly. -.PP -History expansion is usually performed immediately after a complete line -is read. -It takes place in two parts. -The first is to determine which line from the history list -to use during substitution. -The second is to select portions of that line for inclusion into -the current one. -The line selected from the history is the \fIevent\fP, -and the portions of that line that are acted upon are \fIwords\fP. -Various \fImodifiers\fP are available to manipulate the selected words. -The line is broken into words in the same fashion as \fBbash\fP -does when reading input, -so that several words that would otherwise be separated -are considered one word when surrounded by quotes (see the -description of \fBhistory_tokenize()\fP below). -History expansions are introduced by the appearance of the -history expansion character, which is \^\fB!\fP\^ by default. -Only backslash (\^\fB\e\fP\^) and single quotes can quote -the history expansion character. -.SS Event Designators -.PP -An event designator is a reference to a command line entry in the -history list. -Unless the reference is absolute, events are relative to the current -position in the history list. -.PP -.PD 0 -.TP -.B ! -Start a history substitution, except when followed by a -.BR blank , -newline, = or (. -.TP -.B !\fIn\fR -Refer to command line -.IR n . -.TP -.B !\-\fIn\fR -Refer to the current command minus -.IR n . -.TP -.B !! -Refer to the previous command. This is a synonym for `!\-1'. -.TP -.B !\fIstring\fR -Refer to the most recent command -preceding the current position in the history list -starting with -.IR string . -.TP -.B !?\fIstring\fR\fB[?]\fR -Refer to the most recent command -preceding the current position in the history list -containing -.IR string . -The trailing \fB?\fP may be omitted if -.I string -is followed immediately by a newline. -.TP -.B \d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u -Quick substitution. Repeat the last command, replacing -.I string1 -with -.IR string2 . -Equivalent to -``!!:s/\fIstring1\fP/\fIstring2\fP/'' -(see \fBModifiers\fP below). -.TP -.B !# -The entire command line typed so far. -.PD -.SS Word Designators -.PP -Word designators are used to select desired words from the event. -A -.B : -separates the event specification from the word designator. -It may be omitted if the word designator begins with a -.BR ^ , -.BR $ , -.BR * , -.BR \- , -or -.BR % . -Words are numbered from the beginning of the line, -with the first word being denoted by 0 (zero). -Words are inserted into the current line separated by single spaces. -.PP -.PD 0 -.TP -.B 0 (zero) -The zeroth word. For the shell, this is the command -word. -.TP -.I n -The \fIn\fRth word. -.TP -.B ^ -The first argument. That is, word 1. -.TP -.B $ -The last argument. -.TP -.B % -The word matched by the most recent `?\fIstring\fR?' search. -.TP -.I x\fB\-\fPy -A range of words; `\-\fIy\fR' abbreviates `0\-\fIy\fR'. -.TP -.B * -All of the words but the zeroth. This is a synonym -for `\fI1\-$\fP'. It is not an error to use -.B * -if there is just one -word in the event; the empty string is returned in that case. -.TP -.B x* -Abbreviates \fIx\-$\fP. -.TP -.B x\- -Abbreviates \fIx\-$\fP like \fBx*\fP, but omits the last word. -.PD -.PP -If a word designator is supplied without an event specification, the -previous command is used as the event. -.SS Modifiers -.PP -After the optional word designator, there may appear a sequence of -one or more of the following modifiers, each preceded by a `:'. -.PP -.PD 0 -.PP -.TP -.B h -Remove a trailing file name component, leaving only the head. -.TP -.B t -Remove all leading file name components, leaving the tail. -.TP -.B r -Remove a trailing suffix of the form \fI.xxx\fP, leaving the -basename. -.TP -.B e -Remove all but the trailing suffix. -.TP -.B p -Print the new command but do not execute it. -.TP -.B q -Quote the substituted words, escaping further substitutions. -.TP -.B x -Quote the substituted words as with -.BR q , -but break into words at -.B blanks -and newlines. -.TP -.B s/\fIold\fP/\fInew\fP/ -Substitute -.I new -for the first occurrence of -.I old -in the event line. Any delimiter can be used in place of /. The -final delimiter is optional if it is the last character of the -event line. The delimiter may be quoted in -.I old -and -.I new -with a single backslash. If & appears in -.IR new , -it is replaced by -.IR old . -A single backslash will quote the &. If -.I old -is null, it is set to the last -.I old -substituted, or, if no previous history substitutions took place, -the last -.I string -in a -.B !?\fIstring\fR\fB[?]\fR -search. -.TP -.B & -Repeat the previous substitution. -.TP -.B g -Cause changes to be applied over the entire event line. This is -used in conjunction with `\fB:s\fP' (e.g., `\fB:gs/\fIold\fP/\fInew\fP/\fR') -or `\fB:&\fP'. If used with -`\fB:s\fP', any delimiter can be used -in place of /, and the final delimiter is optional -if it is the last character of the event line. -An \fBa\fP may be used as a synonym for \fBg\fP. -.TP -.B G -Apply the following `\fBs\fP' modifier once to each word in the event line. -.PD -.SH "PROGRAMMING WITH HISTORY FUNCTIONS" -This section describes how to use the History library in other programs. -.SS Introduction to History -.PP -The programmer using the History library has available functions -for remembering lines on a history list, associating arbitrary data -with a line, removing lines from the list, searching through the list -for a line containing an arbitrary text string, and referencing any line -in the list directly. In addition, a history \fIexpansion\fP function -is available which provides for a consistent user interface across -different programs. -.PP -The user using programs written with the History library has the -benefit of a consistent user interface with a set of well-known -commands for manipulating the text of previous lines and using that text -in new commands. The basic history manipulation commands are -identical to -the history substitution provided by \fBbash\fP. -.PP -If the programmer desires, he can use the Readline library, which -includes some history manipulation by default, and has the added -advantage of command line editing. -.PP -Before declaring any functions using any functionality the History -library provides in other code, an application writer should include -the file -.FN -in any file that uses the -History library's features. It supplies extern declarations for all -of the library's public functions and variables, and declares all of -the public data structures. - -.SS History Storage -.PP -The history list is an array of history entries. A history entry is -declared as follows: -.PP -.Vb "typedef void *" histdata_t; -.PP -.nf -typedef struct _hist_entry { - char *line; - char *timestamp; - histdata_t data; -} HIST_ENTRY; -.fi -.PP -The history list itself might therefore be declared as -.PP -.Vb "HIST_ENTRY **" the_history_list; -.PP -The state of the History library is encapsulated into a single structure: -.PP -.nf -/* - * A structure used to pass around the current state of the history. - */ -typedef struct _hist_state { - HIST_ENTRY **entries; /* Pointer to the entries themselves. */ - int offset; /* The location pointer within this array. */ - int length; /* Number of elements within this array. */ - int size; /* Number of slots allocated to this array. */ - int flags; -} HISTORY_STATE; -.fi -.PP -If the flags member includes \fBHS_STIFLED\fP, the history has been -stifled. -.SH "History Functions" -.PP -This section describes the calling sequence for the various functions -exported by the GNU History library. -.SS Initializing History and State Management -This section describes functions used to initialize and manage -the state of the History library when you want to use the history -functions in your program. - -.Fn1 void using_history void -Begin a session in which the history functions might be used. This -initializes the interactive variables. - -.Fn1 "HISTORY_STATE *" history_get_history_state void -Return a structure describing the current state of the input history. - -.Fn1 void history_set_history_state "HISTORY_STATE *state" -Set the state of the history list according to \fIstate\fP. - -.SS History List Management - -These functions manage individual entries on the history list, or set -parameters managing the list itself. - -.Fn1 void add_history "const char *string" -Place \fIstring\fP at the end of the history list. The associated data -field (if any) is set to \fBNULL\fP. - -.Fn1 void add_history_time "const char *string" -Change the time stamp associated with the most recent history entry to -\fIstring\fP. - -.Fn1 "HIST_ENTRY *" remove_history "int which" -Remove history entry at offset \fIwhich\fP from the history. The -removed element is returned so you can free the line, data, -and containing structure. - -.Fn1 "histdata_t" free_history_entry "HIST_ENTRY *histent" -Free the history entry \fIhistent\fP and any history library private -data associated with it. Returns the application-specific data -so the caller can dispose of it. - -.Fn3 "HIST_ENTRY *" replace_history_entry "int which" "const char *line" "histdata_t data" -Make the history entry at offset \fIwhich\fP have \fIline\fP and \fIdata\fP. -This returns the old entry so the caller can dispose of any -application-specific data. In the case -of an invalid \fIwhich\fP, a \fBNULL\fP pointer is returned. - -.Fn1 void clear_history "void" -Clear the history list by deleting all the entries. - -.Fn1 void stifle_history "int max" -Stifle the history list, remembering only the last \fImax\fP entries. - -.Fn1 int unstifle_history "void" -Stop stifling the history. This returns the previously-set -maximum number of history entries (as set by \fBstifle_history()\fP). -history was stifled. The value is positive if the history was -stifled, negative if it wasn't. - -.Fn1 int history_is_stifled "void" -Returns non-zero if the history is stifled, zero if it is not. - -.SS Information About the History List - -These functions return information about the entire history list or -individual list entries. - -.Fn1 "HIST_ENTRY **" history_list "void" -Return a \fBNULL\fP terminated array of \fIHIST_ENTRY *\fP which is the -current input history. Element 0 of this list is the beginning of time. -If there is no history, return \fBNULL\fP. - -.Fn1 int where_history "void" -Returns the offset of the current history element. - -.Fn1 "HIST_ENTRY *" current_history "void" -Return the history entry at the current position, as determined by -\fBwhere_history()\fP. If there is no entry there, return a \fBNULL\fP -pointer. - -.Fn1 "HIST_ENTRY *" history_get "int offset" -Return the history entry at position \fIoffset\fP, starting from -\fBhistory_base\fP. -If there is no entry there, or if \fIoffset\fP -is greater than the history length, return a \fBNULL\fP pointer. - -.Fn1 "time_t" history_get_time "HIST_ENTRY *" -Return the time stamp associated with the history entry passed as the argument. - -.Fn1 int history_total_bytes "void" -Return the number of bytes that the primary history entries are using. -This function returns the sum of the lengths of all the lines in the -history. - -.SS Moving Around the History List - -These functions allow the current index into the history list to be -set or changed. - -.Fn1 int history_set_pos "int pos" -Set the current history offset to \fIpos\fP, an absolute index -into the list. -Returns 1 on success, 0 if \fIpos\fP is less than zero or greater -than the number of history entries. - -.Fn1 "HIST_ENTRY *" previous_history "void" -Back up the current history offset to the previous history entry, and -return a pointer to that entry. If there is no previous entry, return -a \fBNULL\fP pointer. - -.Fn1 "HIST_ENTRY *" next_history "void" -Move the current history offset forward to the next history entry, and -return the a pointer to that entry. If there is no next entry, return -a \fBNULL\fP pointer. - -.SS Searching the History List - -These functions allow searching of the history list for entries containing -a specific string. Searching may be performed both forward and backward -from the current history position. The search may be \fIanchored\fP, -meaning that the string must match at the beginning of the history entry. - -.Fn2 int history_search "const char *string" "int direction" -Search the history for \fIstring\fP, starting at the current history offset. -If \fIdirection\fP is less than 0, then the search is through -previous entries, otherwise through subsequent entries. -If \fIstring\fP is found, then -the current history index is set to that history entry, and the value -returned is the offset in the line of the entry where -\fIstring\fP was found. Otherwise, nothing is changed, and a -1 is -returned. - -.Fn2 int history_search_prefix "const char *string" "int direction" -Search the history for \fIstring\fP, starting at the current history -offset. The search is anchored: matching lines must begin with -\fIstring\fP. If \fIdirection\fP is less than 0, then the search is -through previous entries, otherwise through subsequent entries. -If \fIstring\fP is found, then the -current history index is set to that entry, and the return value is 0. -Otherwise, nothing is changed, and a -1 is returned. - -.Fn3 int history_search_pos "const char *string" "int direction" "int pos" -Search for \fIstring\fP in the history list, starting at \fIpos\fP, an -absolute index into the list. If \fIdirection\fP is negative, the search -proceeds backward from \fIpos\fP, otherwise forward. Returns the absolute -index of the history element where \fIstring\fP was found, or -1 otherwise. - -.SS Managing the History File -The History library can read the history from and write it to a file. -This section documents the functions for managing a history file. - -.Fn1 int read_history "const char *filename" -Add the contents of \fIfilename\fP to the history list, a line at a time. -If \fIfilename\fP is \fBNULL\fP, then read from \fI~/.history\fP. -Returns 0 if successful, or \fBerrno\fP if not. - -.Fn3 int read_history_range "const char *filename" "int from" "int to" -Read a range of lines from \fIfilename\fP, adding them to the history list. -Start reading at line \fIfrom\fP and end at \fIto\fP. -If \fIfrom\fP is zero, start at the beginning. If \fIto\fP is less than -\fIfrom\fP, then read until the end of the file. If \fIfilename\fP is -\fBNULL\fP, then read from \fI~/.history\fP. Returns 0 if successful, -or \fBerrno\fP if not. - -.Fn1 int write_history "const char *filename" -Write the current history to \fIfilename\fP, overwriting \fIfilename\fP -if necessary. -If \fIfilename\fP is \fBNULL\fP, then write the history list to \fI~/.history\fP. -Returns 0 on success, or \fBerrno\fP on a read or write error. - - -.Fn2 int append_history "int nelements" "const char *filename" -Append the last \fInelements\fP of the history list to \fIfilename\fP. -If \fIfilename\fP is \fBNULL\fP, then append to \fI~/.history\fP. -Returns 0 on success, or \fBerrno\fP on a read or write error. - -.Fn2 int history_truncate_file "const char *filename" "int nlines" -Truncate the history file \fIfilename\fP, leaving only the last -\fInlines\fP lines. -If \fIfilename\fP is \fBNULL\fP, then \fI~/.history\fP is truncated. -Returns 0 on success, or \fBerrno\fP on failure. - -.SS History Expansion - -These functions implement history expansion. - -.Fn2 int history_expand "char *string" "char **output" -Expand \fIstring\fP, placing the result into \fIoutput\fP, a pointer -to a string. Returns: -.RS -.PD 0 -.TP -0 -If no expansions took place (or, if the only change in -the text was the removal of escape characters preceding the history expansion -character); -.TP -1 -if expansions did take place; -.TP --1 -if there was an error in expansion; -.TP -2 -if the returned line should be displayed, but not executed, -as with the \fB:p\fP modifier. -.PD -.RE -If an error ocurred in expansion, then \fIoutput\fP contains a descriptive -error message. - -.Fn3 "char *" get_history_event "const char *string" "int *cindex" "int qchar" -Returns the text of the history event beginning at \fIstring\fP + -\fI*cindex\fP. \fI*cindex\fP is modified to point to after the event -specifier. At function entry, \fIcindex\fP points to the index into -\fIstring\fP where the history event specification begins. \fIqchar\fP -is a character that is allowed to end the event specification in addition -to the ``normal'' terminating characters. - -.Fn1 "char **" history_tokenize "const char *string" -Return an array of tokens parsed out of \fIstring\fP, much as the -shell might. -The tokens are split on the characters in the -\fBhistory_word_delimiters\fP variable, -and shell quoting conventions are obeyed. - -.Fn3 "char *" history_arg_extract "int first" "int last" "const char *string" -Extract a string segment consisting of the \fIfirst\fP through \fIlast\fP -arguments present in \fIstring\fP. Arguments are split using -\fBhistory_tokenize()\fP. - -.SS History Variables - -This section describes the externally-visible variables exported by -the GNU History Library. - -.Vb int history_base -The logical offset of the first entry in the history list. - -.Vb int history_length -The number of entries currently stored in the history list. - -.Vb int history_max_entries -The maximum number of history entries. This must be changed using -\fBstifle_history()\fP. - -.Vb int history_wite_timestamps -If non-zero, timestamps are written to the history file, so they can be -preserved between sessions. The default value is 0, meaning that -timestamps are not saved. -The current timestamp format uses the value of \fIhistory_comment_char\fP -to delimit timestamp entries in the history file. If that variable does -not have a value (the default), timestamps will not be written. - -.Vb char history_expansion_char -The character that introduces a history event. The default is \fB!\fP. -Setting this to 0 inhibits history expansion. - -.Vb char history_subst_char -The character that invokes word substitution if found at the start of -a line. The default is \fB^\fP. - -.Vb char history_comment_char -During tokenization, if this character is seen as the first character -of a word, then it and all subsequent characters up to a newline are -ignored, suppressing history expansion for the remainder of the line. -This is disabled by default. - -.Vb "char *" history_word_delimiters -The characters that separate tokens for \fBhistory_tokenize()\fP. -The default value is \fB"\ \et\en()<>;&|"\fP. - -.Vb "char *" history_no_expand_chars -The list of characters which inhibit history expansion if found immediately -following \fBhistory_expansion_char\fP. The default is space, tab, newline, -\fB\er\fP, and \fB=\fP. - -.Vb "char *" history_search_delimiter_chars -The list of additional characters which can delimit a history search -string, in addition to space, tab, \fI:\fP and \fI?\fP in the case of -a substring search. The default is empty. - -.Vb int history_quotes_inhibit_expansion -If non-zero, single-quoted words are not scanned for the history expansion -character. The default value is 0. - -.Vb "rl_linebuf_func_t *" history_inhibit_expansion_function -This should be set to the address of a function that takes two arguments: -a \fBchar *\fP (\fIstring\fP) -and an \fBint\fP index into that string (\fIi\fP). -It should return a non-zero value if the history expansion starting at -\fIstring[i]\fP should not be performed; zero if the expansion should -be done. -It is intended for use by applications like \fBbash\fP that use the history -expansion character for additional purposes. -By default, this variable is set to \fBNULL\fP. -.SH FILES -.PD 0 -.TP -.FN ~/.history -Default filename for reading and writing saved history -.PD -.SH "SEE ALSO" -.PD 0 -.TP -\fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey -.TP -\fIThe Gnu History Library\fP, Brian Fox and Chet Ramey -.TP -\fIbash\fP(1) -.TP -\fIreadline\fP(3) -.PD -.SH AUTHORS -Brian Fox, Free Software Foundation -.br -bfox@gnu.org -.PP -Chet Ramey, Case Western Reserve University -.br -chet@ins.CWRU.Edu -.SH BUG REPORTS -If you find a bug in the -.B history -library, you should report it. But first, you should -make sure that it really is a bug, and that it appears in the latest -version of the -.B history -library that you have. -.PP -Once you have determined that a bug actually exists, mail a -bug report to \fIbug\-readline\fP@\fIgnu.org\fP. -If you have a fix, you are welcome to mail that -as well! Suggestions and `philosophical' bug reports may be mailed -to \fPbug-readline\fP@\fIgnu.org\fP or posted to the Usenet -newsgroup -.BR gnu.bash.bug . -.PP -Comments and bug reports concerning -this manual page should be directed to -.IR chet@ins.CWRU.Edu . diff --git a/lib/readline/doc/history.aux b/lib/readline/doc/history.aux deleted file mode 100644 index 33115f922..000000000 --- a/lib/readline/doc/history.aux +++ /dev/null @@ -1,63 +0,0 @@ -@xrdef{Using History Interactively-title}{Using History Interactively} -@xrdef{Using History Interactively-snt}{Chapter@tie 1} -@xrdef{History Interaction-title}{History Expansion} -@xrdef{History Interaction-snt}{Section@tie 1.1} -@xrdef{Event Designators-title}{Event Designators} -@xrdef{Event Designators-snt}{Section@tie 1.1.1} -@xrdef{Word Designators-title}{Word Designators} -@xrdef{Word Designators-snt}{Section@tie 1.1.2} -@xrdef{Using History Interactively-pg}{1} -@xrdef{History Interaction-pg}{1} -@xrdef{Event Designators-pg}{1} -@xrdef{Modifiers-title}{Modifiers} -@xrdef{Modifiers-snt}{Section@tie 1.1.3} -@xrdef{Word Designators-pg}{2} -@xrdef{Modifiers-pg}{2} -@xrdef{Programming with GNU History-title}{Programming with GNU History} -@xrdef{Programming with GNU History-snt}{Chapter@tie 2} -@xrdef{Introduction to History-title}{Introduction to History} -@xrdef{Introduction to History-snt}{Section@tie 2.1} -@xrdef{History Storage-title}{History Storage} -@xrdef{History Storage-snt}{Section@tie 2.2} -@xrdef{Programming with GNU History-pg}{4} -@xrdef{Introduction to History-pg}{4} -@xrdef{History Storage-pg}{4} -@xrdef{History Functions-title}{History Functions} -@xrdef{History Functions-snt}{Section@tie 2.3} -@xrdef{Initializing History and State Management-title}{Initializing History and State Management} -@xrdef{Initializing History and State Management-snt}{Section@tie 2.3.1} -@xrdef{History List Management-title}{History List Management} -@xrdef{History List Management-snt}{Section@tie 2.3.2} -@xrdef{History Functions-pg}{5} -@xrdef{Initializing History and State Management-pg}{5} -@xrdef{History List Management-pg}{5} -@xrdef{Information About the History List-title}{Information About the History List} -@xrdef{Information About the History List-snt}{Section@tie 2.3.3} -@xrdef{Moving Around the History List-title}{Moving Around the History List} -@xrdef{Moving Around the History List-snt}{Section@tie 2.3.4} -@xrdef{Information About the History List-pg}{6} -@xrdef{Moving Around the History List-pg}{6} -@xrdef{Searching the History List-title}{Searching the History List} -@xrdef{Searching the History List-snt}{Section@tie 2.3.5} -@xrdef{Managing the History File-title}{Managing the History File} -@xrdef{Managing the History File-snt}{Section@tie 2.3.6} -@xrdef{Searching the History List-pg}{7} -@xrdef{Managing the History File-pg}{7} -@xrdef{History Expansion-title}{History Expansion} -@xrdef{History Expansion-snt}{Section@tie 2.3.7} -@xrdef{History Variables-title}{History Variables} -@xrdef{History Variables-snt}{Section@tie 2.4} -@xrdef{History Expansion-pg}{8} -@xrdef{History Variables-pg}{8} -@xrdef{History Programming Example-title}{History Programming Example} -@xrdef{History Programming Example-snt}{Section@tie 2.5} -@xrdef{History Programming Example-pg}{10} -@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License} -@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char65{}} -@xrdef{GNU Free Documentation License-pg}{12} -@xrdef{Concept Index-title}{Concept Index} -@xrdef{Concept Index-snt}{Appendix@tie @char66{}} -@xrdef{Concept Index-pg}{20} -@xrdef{Function and Variable Index-title}{Function and Variable Index} -@xrdef{Function and Variable Index-snt}{Appendix@tie @char67{}} -@xrdef{Function and Variable Index-pg}{21} diff --git a/lib/readline/doc/history.bt b/lib/readline/doc/history.bt deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/history.cp b/lib/readline/doc/history.cp deleted file mode 100644 index 7a2fe80ec..000000000 --- a/lib/readline/doc/history.cp +++ /dev/null @@ -1,5 +0,0 @@ -\entry{history expansion}{1}{history expansion} -\entry{event designators}{1}{event designators} -\entry{history events}{1}{history events} -\entry{History Searching}{7}{History Searching} -\entry{anchored search}{7}{anchored search} diff --git a/lib/readline/doc/history.cps b/lib/readline/doc/history.cps deleted file mode 100644 index 20db3f6ef..000000000 --- a/lib/readline/doc/history.cps +++ /dev/null @@ -1,8 +0,0 @@ -\initial {A} -\entry {anchored search}{7} -\initial {E} -\entry {event designators}{1} -\initial {H} -\entry {history events}{1} -\entry {history expansion}{1} -\entry {History Searching}{7} diff --git a/lib/readline/doc/history.dvi b/lib/readline/doc/history.dvi deleted file mode 100644 index 1e3fd8b3a..000000000 Binary files a/lib/readline/doc/history.dvi and /dev/null differ diff --git a/lib/readline/doc/history.fn b/lib/readline/doc/history.fn deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/history.html b/lib/readline/doc/history.html deleted file mode 100644 index 5bdbb1b9e..000000000 --- a/lib/readline/doc/history.html +++ /dev/null @@ -1,2297 +0,0 @@ - - - - - -GNU History Library: - - - - - - - - - - - - - - - - - -
[Top][Contents][Index][ ? ]
-

GNU History Library

- -This document describes the GNU History library, a programming tool that -provides a consistent user interface for recalling lines of previously -typed input. -

- -

- - - - - -
1. Using History Interactively  GNU History User's Manual.
2. Programming with GNU History  GNU History Programmer's Manual.
A. GNU Free Documentation License  License for copying this manual.
B. Concept Index  Index of concepts described in this manual.
C. Function and Variable Index  Index of externally visible functions - and variables.
-

- -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
- -

1. Using History Interactively

- -

- -This chapter describes how to use the GNU History Library interactively, -from a user's standpoint. It should be considered a user's guide. For -information on using the GNU History Library in your own programs, -see section 2. Programming with GNU History. -

- -

- -
1.1 History Expansion  What it feels like using History as a user.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.1 History Expansion

- -

- -The History library provides a history expansion feature that is similar -to the history expansion provided by csh. This section -describes the syntax used to manipulate the history information. -

- -History expansions introduce words from the history list into -the input stream, making it easy to repeat commands, insert the -arguments to a previous command into the current input line, or -fix errors in previous commands quickly. -

- -History expansion takes place in two parts. The first is to determine -which line from the history list should be used during substitution. -The second is to select portions of that line for inclusion into the -current one. The line selected from the history is called the -event, and the portions of that line that are acted upon are -called words. Various modifiers are available to manipulate -the selected words. The line is broken into words in the same fashion -that Bash does, so that several words -surrounded by quotes are considered one word. -History expansions are introduced by the appearance of the -history expansion character, which is `!' by default. -

- -

- - - -
1.1.1 Event Designators  How to specify which history line to use.
1.1.2 Word Designators  Specifying which words are of interest.
1.1.3 Modifiers  Modifying the results of substitution.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.1.1 Event Designators

- -

- -An event designator is a reference to a command line entry in the -history list. -Unless the reference is absolute, events are relative to the current -position in the history list. - -

- -

- -
! -
Start a history substitution, except when followed by a space, tab, -the end of the line, or `='. -

- -

!n -
Refer to command line n. -

- -

!-n -
Refer to the command n lines back. -

- -

!! -
Refer to the previous command. This is a synonym for `!-1'. -

- -

!string -
Refer to the most recent command -preceding the current position in the history list -starting with string. -

- -

!?string[?] -
Refer to the most recent command -preceding the current position in the history list -containing string. -The trailing -`?' may be omitted if the string is followed immediately by -a newline. -

- -

^string1^string2^ -
Quick Substitution. Repeat the last command, replacing string1 -with string2. Equivalent to -!!:s/string1/string2/. -

- -

!# -
The entire command line typed so far. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.1.2 Word Designators

- -

- -Word designators are used to select desired words from the event. -A `:' separates the event specification from the word designator. It -may be omitted if the word designator begins with a `^', `$', -`*', `-', or `%'. Words are numbered from the beginning -of the line, with the first word being denoted by 0 (zero). Words are -inserted into the current line separated by single spaces. -

- -For example, -

- -

-
!! -
designates the preceding command. When you type this, the preceding -command is repeated in toto. -

- -

!!:$ -
designates the last argument of the preceding command. This may be -shortened to !$. -

- -

!fi:2 -
designates the second argument of the most recent command starting with -the letters fi. -
-

- -Here are the word designators: - -

- -
0 (zero) -
The 0th word. For many applications, this is the command word. -

- -

n -
The nth word. -

- -

^ -
The first argument; that is, word 1. -

- -

$ -
The last argument. -

- -

% -
The word matched by the most recent `?string?' search. -

- -

x-y -
A range of words; `-y' abbreviates `0-y'. -

- -

* -
All of the words, except the 0th. This is a synonym for `1-$'. -It is not an error to use `*' if there is just one word in the event; -the empty string is returned in that case. -

- -

x* -
Abbreviates `x-$' -

- -

x- -
Abbreviates `x-$' like `x*', but omits the last word. -

- -

-

- -If a word designator is supplied without an event specification, the -previous command is used as the event. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.1.3 Modifiers

- -

- -After the optional word designator, you can add a sequence of one or more -of the following modifiers, each preceded by a `:'. -

- -

- -
h -
Remove a trailing pathname component, leaving only the head. -

- -

t -
Remove all leading pathname components, leaving the tail. -

- -

r -
Remove a trailing suffix of the form `.suffix', leaving -the basename. -

- -

e -
Remove all but the trailing suffix. -

- -

p -
Print the new command but do not execute it. -

- -

s/old/new/ -
Substitute new for the first occurrence of old in the -event line. Any delimiter may be used in place of `/'. -The delimiter may be quoted in old and new -with a single backslash. If `&' appears in new, -it is replaced by old. A single backslash will quote -the `&'. The final delimiter is optional if it is the last -character on the input line. -

- -

& -
Repeat the previous substitution. -

- -

g -
a -
Cause changes to be applied over the entire event line. Used in -conjunction with `s', as in gs/old/new/, -or with `&'. -

- -

G -
Apply the following `s' modifier once to each word in the event. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2. Programming with GNU History

- -

- -This chapter describes how to interface programs that you write -with the GNU History Library. -It should be considered a technical guide. -For information on the interactive use of GNU History, see section 1. Using History Interactively. -

- -

- - - - - -
2.1 Introduction to History  What is the GNU History library for?
2.2 History Storage  How information is stored.
2.3 History Functions  Functions that you can use.
2.4 History Variables  Variables that control behaviour.
2.5 History Programming Example  Example of using the GNU History Library.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.1 Introduction to History

- -

- -Many programs read input from the user a line at a time. The GNU -History library is able to keep track of those lines, associate arbitrary -data with each line, and utilize information from previous lines in -composing new ones. -

- -The programmer using the History library has available functions -for remembering lines on a history list, associating arbitrary data -with a line, removing lines from the list, searching through the list -for a line containing an arbitrary text string, and referencing any line -in the list directly. In addition, a history expansion function -is available which provides for a consistent user interface across -different programs. -

- -The user using programs written with the History library has the -benefit of a consistent user interface with a set of well-known -commands for manipulating the text of previous lines and using that text -in new commands. The basic history manipulation commands are similar to -the history substitution provided by csh. -

- -If the programmer desires, he can use the Readline library, which -includes some history manipulation by default, and has the added -advantage of command line editing. -

- -Before declaring any functions using any functionality the History -library provides in other code, an application writer should include -the file <readline/history.h> in any file that uses the -History library's features. It supplies extern declarations for all -of the library's public functions and variables, and declares all of -the public data structures. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.2 History Storage

- -

- -The history list is an array of history entries. A history entry is -declared as follows: -

- -
 
typedef void *histdata_t;
-
-typedef struct _hist_entry {
-  char *line;
-  char *timestamp;
-  histdata_t data;
-} HIST_ENTRY;
-

- -The history list itself might therefore be declared as -

- -
 
HIST_ENTRY **the_history_list;
-

- -The state of the History library is encapsulated into a single structure: -

- -
 
/*
- * A structure used to pass around the current state of the history.
- */
-typedef struct _hist_state {
-  HIST_ENTRY **entries; /* Pointer to the entries themselves. */
-  int offset;           /* The location pointer within this array. */
-  int length;           /* Number of elements within this array. */
-  int size;             /* Number of slots allocated to this array. */
-  int flags;
-} HISTORY_STATE;
-

- -If the flags member includes HS_STIFLED, the history has been -stifled. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.3 History Functions

- -

- -This section describes the calling sequence for the various functions -exported by the GNU History library. -

- -

- - - - - - - -
2.3.1 Initializing History and State Management  Functions to call when you - want to use history in a - program.
2.3.2 History List Management  Functions used to manage the list - of history entries.
2.3.3 Information About the History List  Functions returning information about - the history list.
2.3.4 Moving Around the History List  Functions used to change the position - in the history list.
2.3.5 Searching the History List  Functions to search the history list - for entries containing a string.
2.3.6 Managing the History File  Functions that read and write a file - containing the history list.
2.3.7 History Expansion  Functions to perform csh-like history - expansion.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.3.1 Initializing History and State Management

- -

- -This section describes functions used to initialize and manage -the state of the History library when you want to use the history -functions in your program. -

- - -

-
Function: void using_history (void) -
Begin a session in which the history functions might be used. This -initializes the interactive variables. -
-

- - -

-
Function: HISTORY_STATE * history_get_history_state (void) -
Return a structure describing the current state of the input history. -
-

- - -

-
Function: void history_set_history_state (HISTORY_STATE *state) -
Set the state of the history list according to state. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.3.2 History List Management

- -

- -These functions manage individual entries on the history list, or set -parameters managing the list itself. -

- - -

-
Function: void add_history (const char *string) -
Place string at the end of the history list. The associated data -field (if any) is set to NULL. -
-

- - -

-
Function: void add_history_time (const char *string) -
Change the time stamp associated with the most recent history entry to -string. -
-

- - -

-
Function: HIST_ENTRY * remove_history (int which) -
Remove history entry at offset which from the history. The -removed element is returned so you can free the line, data, -and containing structure. -
-

- - -

-
Function: histdata_t free_history_entry (HIST_ENTRY *histent) -
Free the history entry histent and any history library private -data associated with it. Returns the application-specific data -so the caller can dispose of it. -
-

- - -

-
Function: HIST_ENTRY * replace_history_entry (int which, const char *line, histdata_t data) -
Make the history entry at offset which have line and data. -This returns the old entry so the caller can dispose of any -application-specific data. In the case -of an invalid which, a NULL pointer is returned. -
-

- - -

-
Function: void clear_history (void) -
Clear the history list by deleting all the entries. -
-

- - -

-
Function: void stifle_history (int max) -
Stifle the history list, remembering only the last max entries. -
-

- - -

-
Function: int unstifle_history (void) -
Stop stifling the history. This returns the previously-set -maximum number of history entries (as set by stifle_history()). -The value is positive if the history was -stifled, negative if it wasn't. -
-

- - -

-
Function: int history_is_stifled (void) -
Returns non-zero if the history is stifled, zero if it is not. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.3.3 Information About the History List

- -

- -These functions return information about the entire history list or -individual list entries. -

- - -

-
Function: HIST_ENTRY ** history_list (void) -
Return a NULL terminated array of HIST_ENTRY * which is the -current input history. Element 0 of this list is the beginning of time. -If there is no history, return NULL. -
-

- - -

-
Function: int where_history (void) -
Returns the offset of the current history element. -
-

- - -

-
Function: HIST_ENTRY * current_history (void) -
Return the history entry at the current position, as determined by -where_history(). If there is no entry there, return a NULL -pointer. -
-

- - -

-
Function: HIST_ENTRY * history_get (int offset) -
Return the history entry at position offset, starting from -history_base (see section 2.4 History Variables). -If there is no entry there, or if offset -is greater than the history length, return a NULL pointer. -
-

- - -

-
Function: time_t history_get_time (HIST_ENTRY *entry) -
Return the time stamp associated with the history entry entry. -
-

- - -

-
Function: int history_total_bytes (void) -
Return the number of bytes that the primary history entries are using. -This function returns the sum of the lengths of all the lines in the -history. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.3.4 Moving Around the History List

- -

- -These functions allow the current index into the history list to be -set or changed. -

- - -

-
Function: int history_set_pos (int pos) -
Set the current history offset to pos, an absolute index -into the list. -Returns 1 on success, 0 if pos is less than zero or greater -than the number of history entries. -
-

- - -

-
Function: HIST_ENTRY * previous_history (void) -
Back up the current history offset to the previous history entry, and -return a pointer to that entry. If there is no previous entry, return -a NULL pointer. -
-

- - -

-
Function: HIST_ENTRY * next_history (void) -
Move the current history offset forward to the next history entry, and -return the a pointer to that entry. If there is no next entry, return -a NULL pointer. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.3.5 Searching the History List

- -

- -These functions allow searching of the history list for entries containing -a specific string. Searching may be performed both forward and backward -from the current history position. The search may be anchored, -meaning that the string must match at the beginning of the history entry. - -

- - -

-
Function: int history_search (const char *string, int direction) -
Search the history for string, starting at the current history offset. -If direction is less than 0, then the search is through -previous entries, otherwise through subsequent entries. -If string is found, then -the current history index is set to that history entry, and the value -returned is the offset in the line of the entry where -string was found. Otherwise, nothing is changed, and a -1 is -returned. -
-

- - -

-
Function: int history_search_prefix (const char *string, int direction) -
Search the history for string, starting at the current history -offset. The search is anchored: matching lines must begin with -string. If direction is less than 0, then the search is -through previous entries, otherwise through subsequent entries. -If string is found, then the -current history index is set to that entry, and the return value is 0. -Otherwise, nothing is changed, and a -1 is returned. -
-

- - -

-
Function: int history_search_pos (const char *string, int direction, int pos) -
Search for string in the history list, starting at pos, an -absolute index into the list. If direction is negative, the search -proceeds backward from pos, otherwise forward. Returns the absolute -index of the history element where string was found, or -1 otherwise. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.3.6 Managing the History File

- -

- -The History library can read the history from and write it to a file. -This section documents the functions for managing a history file. -

- - -

-
Function: int read_history (const char *filename) -
Add the contents of filename to the history list, a line at a time. -If filename is NULL, then read from `~/.history'. -Returns 0 if successful, or errno if not. -
-

- - -

-
Function: int read_history_range (const char *filename, int from, int to) -
Read a range of lines from filename, adding them to the history list. -Start reading at line from and end at to. -If from is zero, start at the beginning. If to is less than -from, then read until the end of the file. If filename is -NULL, then read from `~/.history'. Returns 0 if successful, -or errno if not. -
-

- - -

-
Function: int write_history (const char *filename) -
Write the current history to filename, overwriting filename -if necessary. -If filename is NULL, then write the history list to -`~/.history'. -Returns 0 on success, or errno on a read or write error. -
-

- - -

-
Function: int append_history (int nelements, const char *filename) -
Append the last nelements of the history list to filename. -If filename is NULL, then append to `~/.history'. -Returns 0 on success, or errno on a read or write error. -
-

- - -

-
Function: int history_truncate_file (const char *filename, int nlines) -
Truncate the history file filename, leaving only the last -nlines lines. -If filename is NULL, then `~/.history' is truncated. -Returns 0 on success, or errno on failure. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.3.7 History Expansion

- -

- -These functions implement history expansion. -

- - -

-
Function: int history_expand (char *string, char **output) -
Expand string, placing the result into output, a pointer -to a string (see section 1.1 History Expansion). Returns: -
-
0 -
If no expansions took place (or, if the only change in -the text was the removal of escape characters preceding the history expansion -character); -
1 -
if expansions did take place; -
-1 -
if there was an error in expansion; -
2 -
if the returned line should be displayed, but not executed, -as with the :p modifier (see section 1.1.3 Modifiers). -
-

- -If an error ocurred in expansion, then output contains a descriptive -error message. -

-

- - -

-
Function: char * get_history_event (const char *string, int *cindex, int qchar) -
Returns the text of the history event beginning at string + -*cindex. *cindex is modified to point to after the event -specifier. At function entry, cindex points to the index into -string where the history event specification begins. qchar -is a character that is allowed to end the event specification in addition -to the "normal" terminating characters. -
-

- - -

-
Function: char ** history_tokenize (const char *string) -
Return an array of tokens parsed out of string, much as the -shell might. The tokens are split on the characters in the -history_word_delimiters variable, -and shell quoting conventions are obeyed. -
-

- - -

-
Function: char * history_arg_extract (int first, int last, const char *string) -
Extract a string segment consisting of the first through last -arguments present in string. Arguments are split using -history_tokenize. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4 History Variables

- -

- -This section describes the externally-visible variables exported by -the GNU History Library. -

- - -

-
Variable: int history_base -
The logical offset of the first entry in the history list. -
-

- - -

-
Variable: int history_length -
The number of entries currently stored in the history list. -
-

- - -

-
Variable: int history_max_entries -
The maximum number of history entries. This must be changed using -stifle_history(). -
-

- - -

-
Variable: int history_write_timestamps -
If non-zero, timestamps are written to the history file, so they can be -preserved between sessions. The default value is 0, meaning that -timestamps are not saved. -

- -The current timestamp format uses the value of history_comment_char -to delimit timestamp entries in the history file. If that variable does -not have a value (the default), timestamps will not be written. -

-

- - -

-
Variable: char history_expansion_char -
The character that introduces a history event. The default is `!'. -Setting this to 0 inhibits history expansion. -
-

- - -

-
Variable: char history_subst_char -
The character that invokes word substitution if found at the start of -a line. The default is `^'. -
-

- - -

-
Variable: char history_comment_char -
During tokenization, if this character is seen as the first character -of a word, then it and all subsequent characters up to a newline are -ignored, suppressing history expansion for the remainder of the line. -This is disabled by default. -
-

- - -

-
Variable: char * history_word_delimiters -
The characters that separate tokens for history_tokenize(). -The default value is " \t\n()<>;&|". -
-

- - -

-
Variable: char * history_search_delimiter_chars -
The list of additional characters which can delimit a history search -string, in addition to space, TAB, `:' and `?' in the case of -a substring search. The default is empty. -
-

- - -

-
Variable: char * history_no_expand_chars -
The list of characters which inhibit history expansion if found immediately -following history_expansion_char. The default is space, tab, newline, -carriage return, and `='. -
-

- - -

-
Variable: int history_quotes_inhibit_expansion -
If non-zero, single-quoted words are not scanned for the history expansion -character. The default value is 0. -
-

- - -

-
Variable: rl_linebuf_func_t * history_inhibit_expansion_function -
This should be set to the address of a function that takes two arguments: -a char * (string) -and an int index into that string (i). -It should return a non-zero value if the history expansion starting at -string[i] should not be performed; zero if the expansion should -be done. -It is intended for use by applications like Bash that use the history -expansion character for additional purposes. -By default, this variable is set to NULL. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.5 History Programming Example

- -

- -The following program demonstrates simple use of the GNU History Library. -

- -
 
#include <stdio.h>
-#include <readline/history.h>
-
-main (argc, argv)
-     int argc;
-     char **argv;
-{
-  char line[1024], *t;
-  int len, done = 0;
-
-  line[0] = 0;
-
-  using_history ();
-  while (!done)
-    {
-      printf ("history$ ");
-      fflush (stdout);
-      t = fgets (line, sizeof (line) - 1, stdin);
-      if (t && *t)
-        {
-          len = strlen (t);
-          if (t[len - 1] == '\n')
-            t[len - 1] = '\0';
-        }
-
-      if (!t)
-        strcpy (line, "quit");
-
-      if (line[0])
-        {
-          char *expansion;
-          int result;
-
-          result = history_expand (line, &expansion);
-          if (result)
-            fprintf (stderr, "%s\n", expansion);
-
-          if (result < 0 || result == 2)
-            {
-              free (expansion);
-              continue;
-            }
-
-          add_history (expansion);
-          strncpy (line, expansion, sizeof (line) - 1);
-          free (expansion);
-        }
-
-      if (strcmp (line, "quit") == 0)
-        done = 1;
-      else if (strcmp (line, "save") == 0)
-        write_history ("history_file");
-      else if (strcmp (line, "read") == 0)
-        read_history ("history_file");
-      else if (strcmp (line, "list") == 0)
-        {
-          register HIST_ENTRY **the_list;
-          register int i;
-
-          the_list = history_list ();
-          if (the_list)
-            for (i = 0; the_list[i]; i++)
-              printf ("%d: %s\n", i + history_base, the_list[i]->line);
-        }
-      else if (strncmp (line, "delete", 6) == 0)
-        {
-          int which;
-          if ((sscanf (line + 6, "%d", &which)) == 1)
-            {
-              HIST_ENTRY *entry = remove_history (which);
-              if (!entry)
-                fprintf (stderr, "No such entry %d\n", which);
-              else
-                {
-                  free (entry->line);
-                  free (entry);
-                }
-            }
-          else
-            {
-              fprintf (stderr, "non-numeric arg given to `delete'\n");
-            }
-        }
-    }
-}
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

A. GNU Free Documentation License

- -

- -

- Version 1.3, 3 November 2008 -
-

- -
 
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-http://fsf.org/
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-

- -

    -
  1. -PREAMBLE -

    - -The purpose of this License is to make a manual, textbook, or other -functional and useful document free in the sense of freedom: to -assure everyone the effective freedom to copy and redistribute it, -with or without modifying it, either commercially or noncommercially. -Secondarily, this License preserves for the author and publisher a way -to get credit for their work, while not being considered responsible -for modifications made by others. -

    - -This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. -

    - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. -

    - -

  2. -APPLICABILITY AND DEFINITIONS -

    - -This License applies to any manual or other work, in any medium, that -contains a notice placed by the copyright holder saying it can be -distributed under the terms of this License. Such a notice grants a -world-wide, royalty-free license, unlimited in duration, to use that -work under the conditions stated herein. The "Document", below, -refers to any such manual or work. Any member of the public is a -licensee, and is addressed as "you". You accept the license if you -copy, modify or distribute the work in a way requiring permission -under copyright law. -

    - -A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. -

    - -A "Secondary Section" is a named appendix or a front-matter section -of the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall -subject (or to related matters) and contains nothing that could fall -directly within that overall subject. (Thus, if the Document is in -part a textbook of mathematics, a Secondary Section may not explain -any mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. -

    - -The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. If a -section does not fit the above definition of Secondary then it is not -allowed to be designated as Invariant. The Document may contain zero -Invariant Sections. If the Document does not identify any Invariant -Sections then there are none. -

    - -The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. A Front-Cover Text may -be at most 5 words, and a Back-Cover Text may be at most 25 words. -

    - -A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, that is suitable for revising the document -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup, or absence of markup, has been arranged to thwart -or discourage subsequent modification by readers is not Transparent. -An image format is not Transparent if used for any substantial amount -of text. A copy that is not "Transparent" is called "Opaque". -

    - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input -format, SGML or XML using a publicly available -DTD, and standard-conforming simple HTML, -PostScript or PDF designed for human modification. Examples -of transparent image formats include PNG, XCF and -JPG. Opaque formats include proprietary formats that can be -read and edited only by proprietary word processors, SGML or -XML for which the DTD and/or processing tools are -not generally available, and the machine-generated HTML, -PostScript or PDF produced by some word processors for -output purposes only. -

    - -The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, "Title Page" means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. -

    - -The "publisher" means any person or entity that distributes copies -of the Document to the public. -

    - -A section "Entitled XYZ" means a named subunit of the Document whose -title either is precisely XYZ or contains XYZ in parentheses following -text that translates XYZ in another language. (Here XYZ stands for a -specific section name mentioned below, such as "Acknowledgements", -"Dedications", "Endorsements", or "History".) To "Preserve the Title" -of such a section when you modify the Document means that it remains a -section "Entitled XYZ" according to this definition. -

    - -The Document may include Warranty Disclaimers next to the notice which -states that this License applies to the Document. These Warranty -Disclaimers are considered to be included by reference in this -License, but only as regards disclaiming warranties: any other -implication that these Warranty Disclaimers may have is void and has -no effect on the meaning of this License. -

    - -

  3. -VERBATIM COPYING -

    - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. -

    - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. -

    - -

  4. -COPYING IN QUANTITY -

    - -If you publish printed copies (or copies in media that commonly have -printed covers) of the Document, numbering more than 100, and the -Document's license notice requires Cover Texts, you must enclose the -copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. -

    - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. -

    - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a computer-network location from which the general network-using -public has access to download using public-standard network protocols -a complete Transparent copy of the Document, free of added material. -If you use the latter option, you must take reasonably prudent steps, -when you begin distribution of Opaque copies in quantity, to ensure -that this Transparent copy will remain thus accessible at the stated -location until at least one year after the last time you distribute an -Opaque copy (directly or through your agents or retailers) of that -edition to the public. -

    - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. -

    - -

  5. -MODIFICATIONS -

    - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: -

    - -

      -
    1. -Use in the Title Page (and on the covers, if any) a title distinct -from that of the Document, and from those of previous versions -(which should, if there were any, be listed in the History section -of the Document). You may use the same title as a previous version -if the original publisher of that version gives permission. -

      - -

    2. -List on the Title Page, as authors, one or more persons or entities -responsible for authorship of the modifications in the Modified -Version, together with at least five of the principal authors of the -Document (all of its principal authors, if it has fewer than five), -unless they release you from this requirement. -

      - -

    3. -State on the Title page the name of the publisher of the -Modified Version, as the publisher. -

      - -

    4. -Preserve all the copyright notices of the Document. -

      - -

    5. -Add an appropriate copyright notice for your modifications -adjacent to the other copyright notices. -

      - -

    6. -Include, immediately after the copyright notices, a license notice -giving the public permission to use the Modified Version under the -terms of this License, in the form shown in the Addendum below. -

      - -

    7. -Preserve in that license notice the full lists of Invariant Sections -and required Cover Texts given in the Document's license notice. -

      - -

    8. -Include an unaltered copy of this License. -

      - -

    9. -Preserve the section Entitled "History", Preserve its Title, and add -to it an item stating at least the title, year, new authors, and -publisher of the Modified Version as given on the Title Page. If -there is no section Entitled "History" in the Document, create one -stating the title, year, authors, and publisher of the Document as -given on its Title Page, then add an item describing the Modified -Version as stated in the previous sentence. -

      - -

    10. -Preserve the network location, if any, given in the Document for -public access to a Transparent copy of the Document, and likewise -the network locations given in the Document for previous versions -it was based on. These may be placed in the "History" section. -You may omit a network location for a work that was published at -least four years before the Document itself, or if the original -publisher of the version it refers to gives permission. -

      - -

    11. -For any section Entitled "Acknowledgements" or "Dedications", Preserve -the Title of the section, and preserve in the section all the -substance and tone of each of the contributor acknowledgements and/or -dedications given therein. -

      - -

    12. -Preserve all the Invariant Sections of the Document, -unaltered in their text and in their titles. Section numbers -or the equivalent are not considered part of the section titles. -

      - -

    13. -Delete any section Entitled "Endorsements". Such a section -may not be included in the Modified Version. -

      - -

    14. -Do not retitle any existing section to be Entitled "Endorsements" or -to conflict in title with any Invariant Section. -

      - -

    15. -Preserve any Warranty Disclaimers. -
    -

    - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. -

    - -You may add a section Entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties--for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. -

    - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. -

    - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. -

    - -

  6. -COMBINING DOCUMENTS -

    - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice, and that you preserve all their Warranty Disclaimers. -

    - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. -

    - -In the combination, you must combine any sections Entitled "History" -in the various original documents, forming one section Entitled -"History"; likewise combine any sections Entitled "Acknowledgements", -and any sections Entitled "Dedications". You must delete all -sections Entitled "Endorsements." -

    - -

  7. -COLLECTIONS OF DOCUMENTS -

    - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. -

    - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. -

    - -

  8. -AGGREGATION WITH INDEPENDENT WORKS -

    - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, is called an "aggregate" if the copyright -resulting from the compilation is not used to limit the legal rights -of the compilation's users beyond what the individual works permit. -When the Document is included in an aggregate, this License does not -apply to the other works in the aggregate which are not themselves -derivative works of the Document. -

    - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one half of -the entire aggregate, the Document's Cover Texts may be placed on -covers that bracket the Document within the aggregate, or the -electronic equivalent of covers if the Document is in electronic form. -Otherwise they must appear on printed covers that bracket the whole -aggregate. -

    - -

  9. -TRANSLATION -

    - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License, and all the license notices in the -Document, and any Warranty Disclaimers, provided that you also include -the original English version of this License and the original versions -of those notices and disclaimers. In case of a disagreement between -the translation and the original version of this License or a notice -or disclaimer, the original version will prevail. -

    - -If a section in the Document is Entitled "Acknowledgements", -"Dedications", or "History", the requirement (section 4) to Preserve -its Title (section 1) will typically require changing the actual -title. -

    - -

  10. -TERMINATION -

    - -You may not copy, modify, sublicense, or distribute the Document -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense, or distribute it is void, and -will automatically terminate your rights under this License. -

    - -However, if you cease all violation of this License, then your license -from a particular copyright holder is reinstated (a) provisionally, -unless and until the copyright holder explicitly and finally -terminates your license, and (b) permanently, if the copyright holder -fails to notify you of the violation by some reasonable means prior to -60 days after the cessation. -

    - -Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. -

    - -Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, receipt of a copy of some or all of the same material does -not give you any rights to use it. -

    - -

  11. -FUTURE REVISIONS OF THIS LICENSE -

    - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -http://www.gnu.org/copyleft/. -

    - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. If the Document -specifies that a proxy can decide which future versions of this -License can be used, that proxy's public statement of acceptance of a -version permanently authorizes you to choose that version for the -Document. -

    - -

  12. -RELICENSING -

    - -"Massive Multiauthor Collaboration Site" (or "MMC Site") means any -World Wide Web server that publishes copyrightable works and also -provides prominent facilities for anybody to edit those works. A -public wiki that anybody can edit is an example of such a server. A -"Massive Multiauthor Collaboration" (or "MMC") contained in the -site means any set of copyrightable works thus published on the MMC -site. -

    - -"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 -license published by Creative Commons Corporation, a not-for-profit -corporation with a principal place of business in San Francisco, -California, as well as future copyleft versions of that license -published by that same organization. -

    - -"Incorporate" means to publish or republish a Document, in whole or -in part, as part of another Document. -

    - -An MMC is "eligible for relicensing" if it is licensed under this -License, and if all works that were first published under this License -somewhere other than this MMC, and subsequently incorporated in whole -or in part into the MMC, (1) had no cover texts or invariant sections, -and (2) were thus incorporated prior to November 1, 2008. -

    - -The operator of an MMC Site may republish an MMC contained in the site -under CC-BY-SA on the same site at any time before August 1, 2009, -provided the MMC is eligible for relicensing. -

    - -

-

- - -

ADDENDUM: How to use this License for your documents

- -

- -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: -

- -
 
  Copyright (C)  year  your name.
-  Permission is granted to copy, distribute and/or modify this document
-  under the terms of the GNU Free Documentation License, Version 1.3
-  or any later version published by the Free Software Foundation;
-  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-  Texts.  A copy of the license is included in the section entitled ``GNU
-  Free Documentation License''.
-

- -If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the "with...Texts." line with this: -

- -
 
    with the Invariant Sections being list their titles, with
-    the Front-Cover Texts being list, and with the Back-Cover Texts
-    being list.
-

- -If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. -

- -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

B. Concept Index

- -
Jump to:   A -   -E -   -H -   -

- - - - - - - - - - - - - - -
Index Entry Section

A
anchored search2.3.5 Searching the History List

E
event designators1.1.1 Event Designators

H
history events1.1.1 Event Designators
history expansion1.1 History Expansion
History Searching2.3.5 Searching the History List

Jump to:   A -   -E -   -H -   -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

C. Function and Variable Index

- -
Jump to:   A -   -C -   -F -   -G -   -H -   -N -   -P -   -R -   -S -   -U -   -W -   -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Index Entry Section

A
add_history2.3.2 History List Management
add_history_time2.3.2 History List Management
append_history2.3.6 Managing the History File

C
clear_history2.3.2 History List Management
current_history2.3.3 Information About the History List

F
free_history_entry2.3.2 History List Management

G
get_history_event2.3.7 History Expansion

H
history_arg_extract2.3.7 History Expansion
history_base2.4 History Variables
history_comment_char2.4 History Variables
history_expand2.3.7 History Expansion
history_expansion_char2.4 History Variables
history_get2.3.3 Information About the History List
history_get_history_state2.3.1 Initializing History and State Management
history_get_time2.3.3 Information About the History List
history_inhibit_expansion_function2.4 History Variables
history_is_stifled2.3.2 History List Management
history_length2.4 History Variables
history_list2.3.3 Information About the History List
history_max_entries2.4 History Variables
history_no_expand_chars2.4 History Variables
history_quotes_inhibit_expansion2.4 History Variables
history_search2.3.5 Searching the History List
history_search_delimiter_chars2.4 History Variables
history_search_pos2.3.5 Searching the History List
history_search_prefix2.3.5 Searching the History List
history_set_history_state2.3.1 Initializing History and State Management
history_set_pos2.3.4 Moving Around the History List
history_subst_char2.4 History Variables
history_tokenize2.3.7 History Expansion
history_total_bytes2.3.3 Information About the History List
history_truncate_file2.3.6 Managing the History File
history_word_delimiters2.4 History Variables
history_write_timestamps2.4 History Variables

N
next_history2.3.4 Moving Around the History List

P
previous_history2.3.4 Moving Around the History List

R
read_history2.3.6 Managing the History File
read_history_range2.3.6 Managing the History File
remove_history2.3.2 History List Management
replace_history_entry2.3.2 History List Management

S
stifle_history2.3.2 History List Management

U
unstifle_history2.3.2 History List Management
using_history2.3.1 Initializing History and State Management

W
where_history2.3.3 Information About the History List
write_history2.3.6 Managing the History File

Jump to:   A -   -C -   -F -   -G -   -H -   -N -   -P -   -R -   -S -   -U -   -W -   -

- -


- - - - - - -
[Top][Contents][Index][ ? ]
-

Table of Contents

- -
- - - - - - -
[Top][Contents][Index][ ? ]
-

Short Table of Contents

-
-1. Using History Interactively -
-2. Programming with GNU History -
-A. GNU Free Documentation License -
-B. Concept Index -
-C. Function and Variable Index -
- -
-
- - - - - - -
[Top][Contents][Index][ ? ]
-

About this document

-This document was generated by Chet Ramey on February, 8 2011 -using texi2html -

-The buttons in the navigation panels have the following meaning: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Button Name Go to From 1.2.3 go to
- [ < ] -Back - -previous section in reading order - -1.2.2 -
- [ > ] -Forward - -next section in reading order - -1.2.4 -
- [ << ] -FastBack - -previous or up-and-previous section - -1.1 -
- [ Up ] -Up - -up section - -1.2 -
- [ >> ] -FastForward - -next or up-and-next section - -1.3 -
- [Top] -Top - -cover (top) of document - -   -
- [Contents] -Contents - -table of contents - -   -
- [Index] -Index - -concept index - -   -
- [ ? ] -About - -this page - -   -
-

-where the Example assumes that the current position -is at Subsubsection One-Two-Three of a document of -the following structure: -
    -
  • 1. Section One
  • -
      -
    • 1.1 Subsection One-One
    • -
        -
      • ...
      • -
      -
    • 1.2 Subsection One-Two
    • -
        -
      • 1.2.1 Subsubsection One-Two-One -
      • 1.2.2 Subsubsection One-Two-Two -
      • 1.2.3 Subsubsection One-Two-Three     -<== Current Position -
      • 1.2.4 Subsubsection One-Two-Four -
      -
    • 1.3 Subsection One-Three
    • -
        -
      • ...
      • -
      -
    • 1.4 Subsection One-Four
    • -
    -
- -
-
- -This document was generated -by Chet Ramey on February, 8 2011 -using texi2html - - - diff --git a/lib/readline/doc/history.info b/lib/readline/doc/history.info deleted file mode 100644 index f8278f0d3..000000000 --- a/lib/readline/doc/history.info +++ /dev/null @@ -1,1401 +0,0 @@ -This is history.info, produced by makeinfo version 4.13 from -./history.texi. - -This document describes the GNU History library (version 6.2, September -6 2010), a programming tool that provides a consistent user interface -for recalling lines of previously typed input. - - Copyright (C) 1988-2011 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.3 or any later version published by the Free Software - Foundation; with no Invariant Sections, with the Front-Cover texts - being "A GNU Manual", and with the Back-Cover Texts as in (a) - below. A copy of the license is included in the section entitled - "GNU Free Documentation License". - - (a) The FSF's Back-Cover Text is: You are free to copy and modify - this GNU manual. Buying copies from GNU Press supports the FSF in - developing GNU and promoting software freedom." - - -INFO-DIR-SECTION Libraries -START-INFO-DIR-ENTRY -* History: (history). The GNU history library API. -END-INFO-DIR-ENTRY - - -File: history.info, Node: Top, Next: Using History Interactively, Up: (dir) - -GNU History Library -******************* - -This document describes the GNU History library, a programming tool that -provides a consistent user interface for recalling lines of previously -typed input. - -* Menu: - -* Using History Interactively:: GNU History User's Manual. -* Programming with GNU History:: GNU History Programmer's Manual. -* GNU Free Documentation License:: License for copying this manual. -* Concept Index:: Index of concepts described in this manual. -* Function and Variable Index:: Index of externally visible functions - and variables. - - -File: history.info, Node: Using History Interactively, Next: Programming with GNU History, Prev: Top, Up: Top - -1 Using History Interactively -***************************** - -This chapter describes how to use the GNU History Library interactively, -from a user's standpoint. It should be considered a user's guide. For -information on using the GNU History Library in your own programs, -*note Programming with GNU History::. - -* Menu: - -* History Interaction:: What it feels like using History as a user. - - -File: history.info, Node: History Interaction, Up: Using History Interactively - -1.1 History Expansion -===================== - -The History library provides a history expansion feature that is similar -to the history expansion provided by `csh'. This section describes the -syntax used to manipulate the history information. - - History expansions introduce words from the history list into the -input stream, making it easy to repeat commands, insert the arguments -to a previous command into the current input line, or fix errors in -previous commands quickly. - - History expansion takes place in two parts. The first is to -determine which line from the history list should be used during -substitution. The second is to select portions of that line for -inclusion into the current one. The line selected from the history is -called the "event", and the portions of that line that are acted upon -are called "words". Various "modifiers" are available to manipulate -the selected words. The line is broken into words in the same fashion -that Bash does, so that several words surrounded by quotes are -considered one word. History expansions are introduced by the -appearance of the history expansion character, which is `!' by default. - -* Menu: - -* Event Designators:: How to specify which history line to use. -* Word Designators:: Specifying which words are of interest. -* Modifiers:: Modifying the results of substitution. - - -File: history.info, Node: Event Designators, Next: Word Designators, Up: History Interaction - -1.1.1 Event Designators ------------------------ - -An event designator is a reference to a command line entry in the -history list. Unless the reference is absolute, events are relative to -the current position in the history list. - -`!' - Start a history substitution, except when followed by a space, tab, - the end of the line, or `='. - -`!N' - Refer to command line N. - -`!-N' - Refer to the command N lines back. - -`!!' - Refer to the previous command. This is a synonym for `!-1'. - -`!STRING' - Refer to the most recent command preceding the current position in - the history list starting with STRING. - -`!?STRING[?]' - Refer to the most recent command preceding the current position in - the history list containing STRING. The trailing `?' may be - omitted if the STRING is followed immediately by a newline. - -`^STRING1^STRING2^' - Quick Substitution. Repeat the last command, replacing STRING1 - with STRING2. Equivalent to `!!:s/STRING1/STRING2/'. - -`!#' - The entire command line typed so far. - - - -File: history.info, Node: Word Designators, Next: Modifiers, Prev: Event Designators, Up: History Interaction - -1.1.2 Word Designators ----------------------- - -Word designators are used to select desired words from the event. A -`:' separates the event specification from the word designator. It may -be omitted if the word designator begins with a `^', `$', `*', `-', or -`%'. Words are numbered from the beginning of the line, with the first -word being denoted by 0 (zero). Words are inserted into the current -line separated by single spaces. - - For example, - -`!!' - designates the preceding command. When you type this, the - preceding command is repeated in toto. - -`!!:$' - designates the last argument of the preceding command. This may be - shortened to `!$'. - -`!fi:2' - designates the second argument of the most recent command starting - with the letters `fi'. - - Here are the word designators: - -`0 (zero)' - The `0'th word. For many applications, this is the command word. - -`N' - The Nth word. - -`^' - The first argument; that is, word 1. - -`$' - The last argument. - -`%' - The word matched by the most recent `?STRING?' search. - -`X-Y' - A range of words; `-Y' abbreviates `0-Y'. - -`*' - All of the words, except the `0'th. This is a synonym for `1-$'. - It is not an error to use `*' if there is just one word in the - event; the empty string is returned in that case. - -`X*' - Abbreviates `X-$' - -`X-' - Abbreviates `X-$' like `X*', but omits the last word. - - - If a word designator is supplied without an event specification, the -previous command is used as the event. - - -File: history.info, Node: Modifiers, Prev: Word Designators, Up: History Interaction - -1.1.3 Modifiers ---------------- - -After the optional word designator, you can add a sequence of one or -more of the following modifiers, each preceded by a `:'. - -`h' - Remove a trailing pathname component, leaving only the head. - -`t' - Remove all leading pathname components, leaving the tail. - -`r' - Remove a trailing suffix of the form `.SUFFIX', leaving the - basename. - -`e' - Remove all but the trailing suffix. - -`p' - Print the new command but do not execute it. - -`s/OLD/NEW/' - Substitute NEW for the first occurrence of OLD in the event line. - Any delimiter may be used in place of `/'. The delimiter may be - quoted in OLD and NEW with a single backslash. If `&' appears in - NEW, it is replaced by OLD. A single backslash will quote the - `&'. The final delimiter is optional if it is the last character - on the input line. - -`&' - Repeat the previous substitution. - -`g' -`a' - Cause changes to be applied over the entire event line. Used in - conjunction with `s', as in `gs/OLD/NEW/', or with `&'. - -`G' - Apply the following `s' modifier once to each word in the event. - - - -File: history.info, Node: Programming with GNU History, Next: GNU Free Documentation License, Prev: Using History Interactively, Up: Top - -2 Programming with GNU History -****************************** - -This chapter describes how to interface programs that you write with -the GNU History Library. It should be considered a technical guide. -For information on the interactive use of GNU History, *note Using -History Interactively::. - -* Menu: - -* Introduction to History:: What is the GNU History library for? -* History Storage:: How information is stored. -* History Functions:: Functions that you can use. -* History Variables:: Variables that control behaviour. -* History Programming Example:: Example of using the GNU History Library. - - -File: history.info, Node: Introduction to History, Next: History Storage, Up: Programming with GNU History - -2.1 Introduction to History -=========================== - -Many programs read input from the user a line at a time. The GNU -History library is able to keep track of those lines, associate -arbitrary data with each line, and utilize information from previous -lines in composing new ones. - - The programmer using the History library has available functions for -remembering lines on a history list, associating arbitrary data with a -line, removing lines from the list, searching through the list for a -line containing an arbitrary text string, and referencing any line in -the list directly. In addition, a history "expansion" function is -available which provides for a consistent user interface across -different programs. - - The user using programs written with the History library has the -benefit of a consistent user interface with a set of well-known -commands for manipulating the text of previous lines and using that text -in new commands. The basic history manipulation commands are similar to -the history substitution provided by `csh'. - - If the programmer desires, he can use the Readline library, which -includes some history manipulation by default, and has the added -advantage of command line editing. - - Before declaring any functions using any functionality the History -library provides in other code, an application writer should include -the file `' in any file that uses the History -library's features. It supplies extern declarations for all of the -library's public functions and variables, and declares all of the -public data structures. - - -File: history.info, Node: History Storage, Next: History Functions, Prev: Introduction to History, Up: Programming with GNU History - -2.2 History Storage -=================== - -The history list is an array of history entries. A history entry is -declared as follows: - - typedef void *histdata_t; - - typedef struct _hist_entry { - char *line; - char *timestamp; - histdata_t data; - } HIST_ENTRY; - - The history list itself might therefore be declared as - - HIST_ENTRY **the_history_list; - - The state of the History library is encapsulated into a single -structure: - - /* - * A structure used to pass around the current state of the history. - */ - typedef struct _hist_state { - HIST_ENTRY **entries; /* Pointer to the entries themselves. */ - int offset; /* The location pointer within this array. */ - int length; /* Number of elements within this array. */ - int size; /* Number of slots allocated to this array. */ - int flags; - } HISTORY_STATE; - - If the flags member includes `HS_STIFLED', the history has been -stifled. - - -File: history.info, Node: History Functions, Next: History Variables, Prev: History Storage, Up: Programming with GNU History - -2.3 History Functions -===================== - -This section describes the calling sequence for the various functions -exported by the GNU History library. - -* Menu: - -* Initializing History and State Management:: Functions to call when you - want to use history in a - program. -* History List Management:: Functions used to manage the list - of history entries. -* Information About the History List:: Functions returning information about - the history list. -* Moving Around the History List:: Functions used to change the position - in the history list. -* Searching the History List:: Functions to search the history list - for entries containing a string. -* Managing the History File:: Functions that read and write a file - containing the history list. -* History Expansion:: Functions to perform csh-like history - expansion. - - -File: history.info, Node: Initializing History and State Management, Next: History List Management, Up: History Functions - -2.3.1 Initializing History and State Management ------------------------------------------------ - -This section describes functions used to initialize and manage the -state of the History library when you want to use the history functions -in your program. - - -- Function: void using_history (void) - Begin a session in which the history functions might be used. This - initializes the interactive variables. - - -- Function: HISTORY_STATE * history_get_history_state (void) - Return a structure describing the current state of the input - history. - - -- Function: void history_set_history_state (HISTORY_STATE *state) - Set the state of the history list according to STATE. - - -File: history.info, Node: History List Management, Next: Information About the History List, Prev: Initializing History and State Management, Up: History Functions - -2.3.2 History List Management ------------------------------ - -These functions manage individual entries on the history list, or set -parameters managing the list itself. - - -- Function: void add_history (const char *string) - Place STRING at the end of the history list. The associated data - field (if any) is set to `NULL'. - - -- Function: void add_history_time (const char *string) - Change the time stamp associated with the most recent history - entry to STRING. - - -- Function: HIST_ENTRY * remove_history (int which) - Remove history entry at offset WHICH from the history. The - removed element is returned so you can free the line, data, and - containing structure. - - -- Function: histdata_t free_history_entry (HIST_ENTRY *histent) - Free the history entry HISTENT and any history library private - data associated with it. Returns the application-specific data so - the caller can dispose of it. - - -- Function: HIST_ENTRY * replace_history_entry (int which, const char - *line, histdata_t data) - Make the history entry at offset WHICH have LINE and DATA. This - returns the old entry so the caller can dispose of any - application-specific data. In the case of an invalid WHICH, a - `NULL' pointer is returned. - - -- Function: void clear_history (void) - Clear the history list by deleting all the entries. - - -- Function: void stifle_history (int max) - Stifle the history list, remembering only the last MAX entries. - - -- Function: int unstifle_history (void) - Stop stifling the history. This returns the previously-set - maximum number of history entries (as set by `stifle_history()'). - The value is positive if the history was stifled, negative if it - wasn't. - - -- Function: int history_is_stifled (void) - Returns non-zero if the history is stifled, zero if it is not. - - -File: history.info, Node: Information About the History List, Next: Moving Around the History List, Prev: History List Management, Up: History Functions - -2.3.3 Information About the History List ----------------------------------------- - -These functions return information about the entire history list or -individual list entries. - - -- Function: HIST_ENTRY ** history_list (void) - Return a `NULL' terminated array of `HIST_ENTRY *' which is the - current input history. Element 0 of this list is the beginning of - time. If there is no history, return `NULL'. - - -- Function: int where_history (void) - Returns the offset of the current history element. - - -- Function: HIST_ENTRY * current_history (void) - Return the history entry at the current position, as determined by - `where_history()'. If there is no entry there, return a `NULL' - pointer. - - -- Function: HIST_ENTRY * history_get (int offset) - Return the history entry at position OFFSET, starting from - `history_base' (*note History Variables::). If there is no entry - there, or if OFFSET is greater than the history length, return a - `NULL' pointer. - - -- Function: time_t history_get_time (HIST_ENTRY *entry) - Return the time stamp associated with the history entry ENTRY. - - -- Function: int history_total_bytes (void) - Return the number of bytes that the primary history entries are - using. This function returns the sum of the lengths of all the - lines in the history. - - -File: history.info, Node: Moving Around the History List, Next: Searching the History List, Prev: Information About the History List, Up: History Functions - -2.3.4 Moving Around the History List ------------------------------------- - -These functions allow the current index into the history list to be set -or changed. - - -- Function: int history_set_pos (int pos) - Set the current history offset to POS, an absolute index into the - list. Returns 1 on success, 0 if POS is less than zero or greater - than the number of history entries. - - -- Function: HIST_ENTRY * previous_history (void) - Back up the current history offset to the previous history entry, - and return a pointer to that entry. If there is no previous - entry, return a `NULL' pointer. - - -- Function: HIST_ENTRY * next_history (void) - Move the current history offset forward to the next history entry, - and return the a pointer to that entry. If there is no next - entry, return a `NULL' pointer. - - -File: history.info, Node: Searching the History List, Next: Managing the History File, Prev: Moving Around the History List, Up: History Functions - -2.3.5 Searching the History List --------------------------------- - -These functions allow searching of the history list for entries -containing a specific string. Searching may be performed both forward -and backward from the current history position. The search may be -"anchored", meaning that the string must match at the beginning of the -history entry. - - -- Function: int history_search (const char *string, int direction) - Search the history for STRING, starting at the current history - offset. If DIRECTION is less than 0, then the search is through - previous entries, otherwise through subsequent entries. If STRING - is found, then the current history index is set to that history - entry, and the value returned is the offset in the line of the - entry where STRING was found. Otherwise, nothing is changed, and - a -1 is returned. - - -- Function: int history_search_prefix (const char *string, int - direction) - Search the history for STRING, starting at the current history - offset. The search is anchored: matching lines must begin with - STRING. If DIRECTION is less than 0, then the search is through - previous entries, otherwise through subsequent entries. If STRING - is found, then the current history index is set to that entry, and - the return value is 0. Otherwise, nothing is changed, and a -1 is - returned. - - -- Function: int history_search_pos (const char *string, int - direction, int pos) - Search for STRING in the history list, starting at POS, an - absolute index into the list. If DIRECTION is negative, the search - proceeds backward from POS, otherwise forward. Returns the - absolute index of the history element where STRING was found, or - -1 otherwise. - - -File: history.info, Node: Managing the History File, Next: History Expansion, Prev: Searching the History List, Up: History Functions - -2.3.6 Managing the History File -------------------------------- - -The History library can read the history from and write it to a file. -This section documents the functions for managing a history file. - - -- Function: int read_history (const char *filename) - Add the contents of FILENAME to the history list, a line at a time. - If FILENAME is `NULL', then read from `~/.history'. Returns 0 if - successful, or `errno' if not. - - -- Function: int read_history_range (const char *filename, int from, - int to) - Read a range of lines from FILENAME, adding them to the history - list. Start reading at line FROM and end at TO. If FROM is zero, - start at the beginning. If TO is less than FROM, then read until - the end of the file. If FILENAME is `NULL', then read from - `~/.history'. Returns 0 if successful, or `errno' if not. - - -- Function: int write_history (const char *filename) - Write the current history to FILENAME, overwriting FILENAME if - necessary. If FILENAME is `NULL', then write the history list to - `~/.history'. Returns 0 on success, or `errno' on a read or write - error. - - -- Function: int append_history (int nelements, const char *filename) - Append the last NELEMENTS of the history list to FILENAME. If - FILENAME is `NULL', then append to `~/.history'. Returns 0 on - success, or `errno' on a read or write error. - - -- Function: int history_truncate_file (const char *filename, int - nlines) - Truncate the history file FILENAME, leaving only the last NLINES - lines. If FILENAME is `NULL', then `~/.history' is truncated. - Returns 0 on success, or `errno' on failure. - - -File: history.info, Node: History Expansion, Prev: Managing the History File, Up: History Functions - -2.3.7 History Expansion ------------------------ - -These functions implement history expansion. - - -- Function: int history_expand (char *string, char **output) - Expand STRING, placing the result into OUTPUT, a pointer to a - string (*note History Interaction::). Returns: - `0' - If no expansions took place (or, if the only change in the - text was the removal of escape characters preceding the - history expansion character); - - `1' - if expansions did take place; - - `-1' - if there was an error in expansion; - - `2' - if the returned line should be displayed, but not executed, - as with the `:p' modifier (*note Modifiers::). - - If an error ocurred in expansion, then OUTPUT contains a - descriptive error message. - - -- Function: char * get_history_event (const char *string, int - *cindex, int qchar) - Returns the text of the history event beginning at STRING + - *CINDEX. *CINDEX is modified to point to after the event - specifier. At function entry, CINDEX points to the index into - STRING where the history event specification begins. QCHAR is a - character that is allowed to end the event specification in - addition to the "normal" terminating characters. - - -- Function: char ** history_tokenize (const char *string) - Return an array of tokens parsed out of STRING, much as the shell - might. The tokens are split on the characters in the - HISTORY_WORD_DELIMITERS variable, and shell quoting conventions - are obeyed. - - -- Function: char * history_arg_extract (int first, int last, const - char *string) - Extract a string segment consisting of the FIRST through LAST - arguments present in STRING. Arguments are split using - `history_tokenize'. - - -File: history.info, Node: History Variables, Next: History Programming Example, Prev: History Functions, Up: Programming with GNU History - -2.4 History Variables -===================== - -This section describes the externally-visible variables exported by the -GNU History Library. - - -- Variable: int history_base - The logical offset of the first entry in the history list. - - -- Variable: int history_length - The number of entries currently stored in the history list. - - -- Variable: int history_max_entries - The maximum number of history entries. This must be changed using - `stifle_history()'. - - -- Variable: int history_write_timestamps - If non-zero, timestamps are written to the history file, so they - can be preserved between sessions. The default value is 0, - meaning that timestamps are not saved. - - The current timestamp format uses the value of HISTORY_COMMENT_CHAR - to delimit timestamp entries in the history file. If that - variable does not have a value (the default), timestamps will not - be written. - - -- Variable: char history_expansion_char - The character that introduces a history event. The default is `!'. - Setting this to 0 inhibits history expansion. - - -- Variable: char history_subst_char - The character that invokes word substitution if found at the start - of a line. The default is `^'. - - -- Variable: char history_comment_char - During tokenization, if this character is seen as the first - character of a word, then it and all subsequent characters up to a - newline are ignored, suppressing history expansion for the - remainder of the line. This is disabled by default. - - -- Variable: char * history_word_delimiters - The characters that separate tokens for `history_tokenize()'. The - default value is `" \t\n()<>;&|"'. - - -- Variable: char * history_search_delimiter_chars - The list of additional characters which can delimit a history - search string, in addition to space, TAB, `:' and `?' in the case - of a substring search. The default is empty. - - -- Variable: char * history_no_expand_chars - The list of characters which inhibit history expansion if found - immediately following HISTORY_EXPANSION_CHAR. The default is - space, tab, newline, carriage return, and `='. - - -- Variable: int history_quotes_inhibit_expansion - If non-zero, single-quoted words are not scanned for the history - expansion character. The default value is 0. - - -- Variable: rl_linebuf_func_t * history_inhibit_expansion_function - This should be set to the address of a function that takes two - arguments: a `char *' (STRING) and an `int' index into that string - (I). It should return a non-zero value if the history expansion - starting at STRING[I] should not be performed; zero if the - expansion should be done. It is intended for use by applications - like Bash that use the history expansion character for additional - purposes. By default, this variable is set to `NULL'. - - -File: history.info, Node: History Programming Example, Prev: History Variables, Up: Programming with GNU History - -2.5 History Programming Example -=============================== - -The following program demonstrates simple use of the GNU History -Library. - - #include - #include - - main (argc, argv) - int argc; - char **argv; - { - char line[1024], *t; - int len, done = 0; - - line[0] = 0; - - using_history (); - while (!done) - { - printf ("history$ "); - fflush (stdout); - t = fgets (line, sizeof (line) - 1, stdin); - if (t && *t) - { - len = strlen (t); - if (t[len - 1] == '\n') - t[len - 1] = '\0'; - } - - if (!t) - strcpy (line, "quit"); - - if (line[0]) - { - char *expansion; - int result; - - result = history_expand (line, &expansion); - if (result) - fprintf (stderr, "%s\n", expansion); - - if (result < 0 || result == 2) - { - free (expansion); - continue; - } - - add_history (expansion); - strncpy (line, expansion, sizeof (line) - 1); - free (expansion); - } - - if (strcmp (line, "quit") == 0) - done = 1; - else if (strcmp (line, "save") == 0) - write_history ("history_file"); - else if (strcmp (line, "read") == 0) - read_history ("history_file"); - else if (strcmp (line, "list") == 0) - { - register HIST_ENTRY **the_list; - register int i; - - the_list = history_list (); - if (the_list) - for (i = 0; the_list[i]; i++) - printf ("%d: %s\n", i + history_base, the_list[i]->line); - } - else if (strncmp (line, "delete", 6) == 0) - { - int which; - if ((sscanf (line + 6, "%d", &which)) == 1) - { - HIST_ENTRY *entry = remove_history (which); - if (!entry) - fprintf (stderr, "No such entry %d\n", which); - else - { - free (entry->line); - free (entry); - } - } - else - { - fprintf (stderr, "non-numeric arg given to `delete'\n"); - } - } - } - } - - -File: history.info, Node: GNU Free Documentation License, Next: Concept Index, Prev: Programming with GNU History, Up: Top - -Appendix A GNU Free Documentation License -***************************************** - - Version 1.3, 3 November 2008 - - Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. - `http://fsf.org/' - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other - functional and useful document "free" in the sense of freedom: to - assure everyone the effective freedom to copy and redistribute it, - with or without modifying it, either commercially or - noncommercially. Secondarily, this License preserves for the - author and publisher a way to get credit for their work, while not - being considered responsible for modifications made by others. - - This License is a kind of "copyleft", which means that derivative - works of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft - license designed for free software. - - We have designed this License in order to use it for manuals for - free software, because free software needs free documentation: a - free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to - software manuals; it can be used for any textual work, regardless - of subject matter or whether it is published as a printed book. - We recommend this License principally for works whose purpose is - instruction or reference. - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work, in any medium, - that contains a notice placed by the copyright holder saying it - can be distributed under the terms of this License. Such a notice - grants a world-wide, royalty-free license, unlimited in duration, - to use that work under the conditions stated herein. The - "Document", below, refers to any such manual or work. Any member - of the public is a licensee, and is addressed as "you". You - accept the license if you copy, modify or distribute the work in a - way requiring permission under copyright law. - - A "Modified Version" of the Document means any work containing the - Document or a portion of it, either copied verbatim, or with - modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter section - of the Document that deals exclusively with the relationship of the - publishers or authors of the Document to the Document's overall - subject (or to related matters) and contains nothing that could - fall directly within that overall subject. (Thus, if the Document - is in part a textbook of mathematics, a Secondary Section may not - explain any mathematics.) The relationship could be a matter of - historical connection with the subject or with related matters, or - of legal, commercial, philosophical, ethical or political position - regarding them. - - The "Invariant Sections" are certain Secondary Sections whose - titles are designated, as being those of Invariant Sections, in - the notice that says that the Document is released under this - License. If a section does not fit the above definition of - Secondary then it is not allowed to be designated as Invariant. - The Document may contain zero Invariant Sections. If the Document - does not identify any Invariant Sections then there are none. - - The "Cover Texts" are certain short passages of text that are - listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License. A - Front-Cover Text may be at most 5 words, and a Back-Cover Text may - be at most 25 words. - - A "Transparent" copy of the Document means a machine-readable copy, - represented in a format whose specification is available to the - general public, that is suitable for revising the document - straightforwardly with generic text editors or (for images - composed of pixels) generic paint programs or (for drawings) some - widely available drawing editor, and that is suitable for input to - text formatters or for automatic translation to a variety of - formats suitable for input to text formatters. A copy made in an - otherwise Transparent file format whose markup, or absence of - markup, has been arranged to thwart or discourage subsequent - modification by readers is not Transparent. An image format is - not Transparent if used for any substantial amount of text. A - copy that is not "Transparent" is called "Opaque". - - Examples of suitable formats for Transparent copies include plain - ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and - standard-conforming simple HTML, PostScript or PDF designed for - human modification. Examples of transparent image formats include - PNG, XCF and JPG. Opaque formats include proprietary formats that - can be read and edited only by proprietary word processors, SGML or - XML for which the DTD and/or processing tools are not generally - available, and the machine-generated HTML, PostScript or PDF - produced by some word processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, - plus such following pages as are needed to hold, legibly, the - material this License requires to appear in the title page. For - works in formats which do not have any title page as such, "Title - Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text. - - The "publisher" means any person or entity that distributes copies - of the Document to the public. - - A section "Entitled XYZ" means a named subunit of the Document - whose title either is precisely XYZ or contains XYZ in parentheses - following text that translates XYZ in another language. (Here XYZ - stands for a specific section name mentioned below, such as - "Acknowledgements", "Dedications", "Endorsements", or "History".) - To "Preserve the Title" of such a section when you modify the - Document means that it remains a section "Entitled XYZ" according - to this definition. - - The Document may include Warranty Disclaimers next to the notice - which states that this License applies to the Document. These - Warranty Disclaimers are considered to be included by reference in - this License, but only as regards disclaiming warranties: any other - implication that these Warranty Disclaimers may have is void and - has no effect on the meaning of this License. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either - commercially or noncommercially, provided that this License, the - copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that you - add no other conditions whatsoever to those of this License. You - may not use technical measures to obstruct or control the reading - or further copying of the copies you make or distribute. However, - you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow - the conditions in section 3. - - You may also lend copies, under the same conditions stated above, - and you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies (or copies in media that commonly - have printed covers) of the Document, numbering more than 100, and - the Document's license notice requires Cover Texts, you must - enclose the copies in covers that carry, clearly and legibly, all - these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The - front cover must present the full title with all words of the - title equally prominent and visible. You may add other material - on the covers in addition. Copying with changes limited to the - covers, as long as they preserve the title of the Document and - satisfy these conditions, can be treated as verbatim copying in - other respects. - - If the required texts for either cover are too voluminous to fit - legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto - adjacent pages. - - If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a - machine-readable Transparent copy along with each Opaque copy, or - state in or with each Opaque copy a computer-network location from - which the general network-using public has access to download - using public-standard network protocols a complete Transparent - copy of the Document, free of added material. If you use the - latter option, you must take reasonably prudent steps, when you - begin distribution of Opaque copies in quantity, to ensure that - this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you - distribute an Opaque copy (directly or through your agents or - retailers) of that edition to the public. - - It is requested, but not required, that you contact the authors of - the Document well before redistributing any large number of - copies, to give them a chance to provide you with an updated - version of the Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document - under the conditions of sections 2 and 3 above, provided that you - release the Modified Version under precisely this License, with - the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version to - whoever possesses a copy of it. In addition, you must do these - things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title - distinct from that of the Document, and from those of - previous versions (which should, if there were any, be listed - in the History section of the Document). You may use the - same title as a previous version if the original publisher of - that version gives permission. - - B. List on the Title Page, as authors, one or more persons or - entities responsible for authorship of the modifications in - the Modified Version, together with at least five of the - principal authors of the Document (all of its principal - authors, if it has fewer than five), unless they release you - from this requirement. - - C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. - - D. Preserve all the copyright notices of the Document. - - E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - - F. Include, immediately after the copyright notices, a license - notice giving the public permission to use the Modified - Version under the terms of this License, in the form shown in - the Addendum below. - - G. Preserve in that license notice the full lists of Invariant - Sections and required Cover Texts given in the Document's - license notice. - - H. Include an unaltered copy of this License. - - I. Preserve the section Entitled "History", Preserve its Title, - and add to it an item stating at least the title, year, new - authors, and publisher of the Modified Version as given on - the Title Page. If there is no section Entitled "History" in - the Document, create one stating the title, year, authors, - and publisher of the Document as given on its Title Page, - then add an item describing the Modified Version as stated in - the previous sentence. - - J. Preserve the network location, if any, given in the Document - for public access to a Transparent copy of the Document, and - likewise the network locations given in the Document for - previous versions it was based on. These may be placed in - the "History" section. You may omit a network location for a - work that was published at least four years before the - Document itself, or if the original publisher of the version - it refers to gives permission. - - K. For any section Entitled "Acknowledgements" or "Dedications", - Preserve the Title of the section, and preserve in the - section all the substance and tone of each of the contributor - acknowledgements and/or dedications given therein. - - L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section - titles. - - M. Delete any section Entitled "Endorsements". Such a section - may not be included in the Modified Version. - - N. Do not retitle any existing section to be Entitled - "Endorsements" or to conflict in title with any Invariant - Section. - - O. Preserve any Warranty Disclaimers. - - If the Modified Version includes new front-matter sections or - appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option - designate some or all of these sections as invariant. To do this, - add their titles to the list of Invariant Sections in the Modified - Version's license notice. These titles must be distinct from any - other section titles. - - You may add a section Entitled "Endorsements", provided it contains - nothing but endorsements of your Modified Version by various - parties--for example, statements of peer review or that the text - has been approved by an organization as the authoritative - definition of a standard. - - You may add a passage of up to five words as a Front-Cover Text, - and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one - passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. If the - Document already includes a cover text for the same cover, - previously added by you or by arrangement made by the same entity - you are acting on behalf of, you may not add another; but you may - replace the old one, on explicit permission from the previous - publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this - License give permission to use their names for publicity for or to - assert or imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under - this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination - all of the Invariant Sections of all of the original documents, - unmodified, and list them all as Invariant Sections of your - combined work in its license notice, and that you preserve all - their Warranty Disclaimers. - - The combined work need only contain one copy of this License, and - multiple identical Invariant Sections may be replaced with a single - copy. If there are multiple Invariant Sections with the same name - but different contents, make the title of each such section unique - by adding at the end of it, in parentheses, the name of the - original author or publisher of that section if known, or else a - unique number. Make the same adjustment to the section titles in - the list of Invariant Sections in the license notice of the - combined work. - - In the combination, you must combine any sections Entitled - "History" in the various original documents, forming one section - Entitled "History"; likewise combine any sections Entitled - "Acknowledgements", and any sections Entitled "Dedications". You - must delete all sections Entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other - documents released under this License, and replace the individual - copies of this License in the various documents with a single copy - that is included in the collection, provided that you follow the - rules of this License for verbatim copying of each of the - documents in all other respects. - - You may extract a single document from such a collection, and - distribute it individually under this License, provided you insert - a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume of - a storage or distribution medium, is called an "aggregate" if the - copyright resulting from the compilation is not used to limit the - legal rights of the compilation's users beyond what the individual - works permit. When the Document is included in an aggregate, this - License does not apply to the other works in the aggregate which - are not themselves derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these - copies of the Document, then if the Document is less than one half - of the entire aggregate, the Document's Cover Texts may be placed - on covers that bracket the Document within the aggregate, or the - electronic equivalent of covers if the Document is in electronic - form. Otherwise they must appear on printed covers that bracket - the whole aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section - 4. Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include a - translation of this License, and all the license notices in the - Document, and any Warranty Disclaimers, provided that you also - include the original English version of this License and the - original versions of those notices and disclaimers. In case of a - disagreement between the translation and the original version of - this License or a notice or disclaimer, the original version will - prevail. - - If a section in the Document is Entitled "Acknowledgements", - "Dedications", or "History", the requirement (section 4) to - Preserve its Title (section 1) will typically require changing the - actual title. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document - except as expressly provided under this License. Any attempt - otherwise to copy, modify, sublicense, or distribute it is void, - and will automatically terminate your rights under this License. - - However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly - and finally terminates your license, and (b) permanently, if the - copyright holder fails to notify you of the violation by some - reasonable means prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from - that copyright holder, and you cure the violation prior to 30 days - after your receipt of the notice. - - Termination of your rights under this section does not terminate - the licenses of parties who have received copies or rights from - you under this License. If your rights have been terminated and - not permanently reinstated, receipt of a copy of some or all of - the same material does not give you any rights to use it. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of - the GNU Free Documentation License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. See - `http://www.gnu.org/copyleft/'. - - Each version of the License is given a distinguishing version - number. If the Document specifies that a particular numbered - version of this License "or any later version" applies to it, you - have the option of following the terms and conditions either of - that specified version or of any later version that has been - published (not as a draft) by the Free Software Foundation. If - the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation. If the Document specifies that a proxy - can decide which future versions of this License can be used, that - proxy's public statement of acceptance of a version permanently - authorizes you to choose that version for the Document. - - 11. RELICENSING - - "Massive Multiauthor Collaboration Site" (or "MMC Site") means any - World Wide Web server that publishes copyrightable works and also - provides prominent facilities for anybody to edit those works. A - public wiki that anybody can edit is an example of such a server. - A "Massive Multiauthor Collaboration" (or "MMC") contained in the - site means any set of copyrightable works thus published on the MMC - site. - - "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 - license published by Creative Commons Corporation, a not-for-profit - corporation with a principal place of business in San Francisco, - California, as well as future copyleft versions of that license - published by that same organization. - - "Incorporate" means to publish or republish a Document, in whole or - in part, as part of another Document. - - An MMC is "eligible for relicensing" if it is licensed under this - License, and if all works that were first published under this - License somewhere other than this MMC, and subsequently - incorporated in whole or in part into the MMC, (1) had no cover - texts or invariant sections, and (2) were thus incorporated prior - to November 1, 2008. - - The operator of an MMC Site may republish an MMC contained in the - site under CC-BY-SA on the same site at any time before August 1, - 2009, provided the MMC is eligible for relicensing. - - -ADDENDUM: How to use this License for your documents -==================================================== - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (C) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.3 - or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover - Texts. A copy of the license is included in the section entitled ``GNU - Free Documentation License''. - - If you have Invariant Sections, Front-Cover Texts and Back-Cover -Texts, replace the "with...Texts." line with this: - - with the Invariant Sections being LIST THEIR TITLES, with - the Front-Cover Texts being LIST, and with the Back-Cover Texts - being LIST. - - If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - -File: history.info, Node: Concept Index, Next: Function and Variable Index, Prev: GNU Free Documentation License, Up: Top - -Appendix B Concept Index -************************ - -[index] -* Menu: - -* anchored search: Searching the History List. - (line 10) -* event designators: Event Designators. (line 6) -* history events: Event Designators. (line 8) -* history expansion: History Interaction. (line 6) -* History Searching: Searching the History List. - (line 6) - - -File: history.info, Node: Function and Variable Index, Prev: Concept Index, Up: Top - -Appendix C Function and Variable Index -************************************** - -[index] -* Menu: - -* add_history: History List Management. - (line 10) -* add_history_time: History List Management. - (line 14) -* append_history: Managing the History File. - (line 29) -* clear_history: History List Management. - (line 35) -* current_history: Information About the History List. - (line 18) -* free_history_entry: History List Management. - (line 23) -* get_history_event: History Expansion. (line 31) -* history_arg_extract: History Expansion. (line 46) -* history_base: History Variables. (line 10) -* history_comment_char: History Variables. (line 38) -* history_expand: History Expansion. (line 9) -* history_expansion_char: History Variables. (line 30) -* history_get: Information About the History List. - (line 23) -* history_get_history_state: Initializing History and State Management. - (line 15) -* history_get_time: Information About the History List. - (line 29) -* history_inhibit_expansion_function: History Variables. (line 62) -* history_is_stifled: History List Management. - (line 47) -* history_length: History Variables. (line 13) -* history_list: Information About the History List. - (line 10) -* history_max_entries: History Variables. (line 16) -* history_no_expand_chars: History Variables. (line 53) -* history_quotes_inhibit_expansion: History Variables. (line 58) -* history_search: Searching the History List. - (line 13) -* history_search_delimiter_chars: History Variables. (line 48) -* history_search_pos: Searching the History List. - (line 33) -* history_search_prefix: Searching the History List. - (line 23) -* history_set_history_state: Initializing History and State Management. - (line 19) -* history_set_pos: Moving Around the History List. - (line 10) -* history_subst_char: History Variables. (line 34) -* history_tokenize: History Expansion. (line 39) -* history_total_bytes: Information About the History List. - (line 32) -* history_truncate_file: Managing the History File. - (line 35) -* history_word_delimiters: History Variables. (line 44) -* history_write_timestamps: History Variables. (line 20) -* next_history: Moving Around the History List. - (line 20) -* previous_history: Moving Around the History List. - (line 15) -* read_history: Managing the History File. - (line 10) -* read_history_range: Managing the History File. - (line 16) -* remove_history: History List Management. - (line 18) -* replace_history_entry: History List Management. - (line 29) -* stifle_history: History List Management. - (line 38) -* unstifle_history: History List Management. - (line 41) -* using_history: Initializing History and State Management. - (line 11) -* where_history: Information About the History List. - (line 15) -* write_history: Managing the History File. - (line 23) - - - -Tag Table: -Node: Top1270 -Node: Using History Interactively1915 -Node: History Interaction2423 -Node: Event Designators3847 -Node: Word Designators4989 -Node: Modifiers6628 -Node: Programming with GNU History7853 -Node: Introduction to History8596 -Node: History Storage10286 -Node: History Functions11421 -Node: Initializing History and State Management12410 -Node: History List Management13222 -Node: Information About the History List15254 -Node: Moving Around the History List16751 -Node: Searching the History List17752 -Node: Managing the History File19684 -Node: History Expansion21504 -Node: History Variables23412 -Node: History Programming Example26444 -Node: GNU Free Documentation License29121 -Node: Concept Index54312 -Node: Function and Variable Index55017 - -End Tag Table diff --git a/lib/readline/doc/history.ky b/lib/readline/doc/history.ky deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/history.log b/lib/readline/doc/history.log deleted file mode 100644 index e05337634..000000000 --- a/lib/readline/doc/history.log +++ /dev/null @@ -1,189 +0,0 @@ -This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 8 FEB 2011 11:10 -**/usr/homes/chet/src/bash/src/lib/readline/doc/history.texi -(/usr/homes/chet/src/bash/src/lib/readline/doc/history.texi (./texinfo.tex -Loading texinfo [version 2009-01-18.17]: -\bindingoffset=\dimen16 -\normaloffset=\dimen17 -\pagewidth=\dimen18 -\pageheight=\dimen19 -\outerhsize=\dimen20 -\outervsize=\dimen21 -\cornerlong=\dimen22 -\cornerthick=\dimen23 -\topandbottommargin=\dimen24 -\headlinebox=\box16 -\footlinebox=\box17 -\margin=\insert252 -\EMsimple=\toks12 -\groupbox=\box18 -\groupinvalidhelp=\toks13 -\mil=\dimen25 -\exdentamount=\skip18 -\inmarginspacing=\skip19 - pdf, -\tempnum=\count26 -\lnkcount=\count27 -\filename=\toks14 -\filenamelength=\count28 -\pgn=\count29 -\toksA=\toks15 -\toksB=\toks16 -\toksC=\toks17 -\toksD=\toks18 -\boxA=\box19 -\countA=\count30 -\nopdfimagehelp=\toks19 - fonts, -\sffam=\fam8 -\textleading=\dimen26 - markup, -\fontdepth=\count31 - glyphs, -\errorbox=\box20 - -page headings, -\titlepagetopglue=\skip20 -\titlepagebottomglue=\skip21 -\evenheadline=\toks20 -\oddheadline=\toks21 -\evenfootline=\toks22 -\oddfootline=\toks23 - tables, -\tableindent=\dimen27 -\itemindent=\dimen28 -\itemmargin=\dimen29 -\itemmax=\dimen30 -\itemno=\count32 -\multitableparskip=\skip22 -\multitableparindent=\skip23 -\multitablecolspace=\dimen31 -\multitablelinespace=\skip24 -\colcount=\count33 -\everytab=\toks24 - conditionals, -\doignorecount=\count34 - indexing, -\whatsitskip=\skip25 -\whatsitpenalty=\count35 -\secondaryindent=\skip26 -\partialpage=\box21 -\doublecolumnhsize=\dimen32 - sectioning, -\unnumberedno=\count36 -\chapno=\count37 -\secno=\count38 -\subsecno=\count39 -\subsubsecno=\count40 -\appendixno=\count41 -\absseclevel=\count42 -\secbase=\count43 -\chapheadingskip=\skip27 -\secheadingskip=\skip28 -\subsecheadingskip=\skip29 - toc, -\tocfile=\write0 -\contentsrightmargin=\skip30 -\savepageno=\count44 -\lastnegativepageno=\count45 -\tocindent=\dimen33 - environments, -\lispnarrowing=\skip31 -\envskipamount=\skip32 -\circthick=\dimen34 -\cartouter=\dimen35 -\cartinner=\dimen36 -\normbskip=\skip33 -\normpskip=\skip34 -\normlskip=\skip35 -\lskip=\skip36 -\rskip=\skip37 -\nonfillparindent=\dimen37 -\tabw=\dimen38 - -defuns, -\defbodyindent=\skip38 -\defargsindent=\skip39 -\deflastargmargin=\skip40 -\defunpenalty=\count46 -\parencount=\count47 -\brackcount=\count48 - macros, -\macscribble=\write1 -\paramno=\count49 -\macname=\toks25 - cross references, -\auxfile=\write2 -\savesfregister=\count50 - insertions, -\footnoteno=\count51 -\SAVEfootins=\box22 -\SAVEmargin=\box23 - -(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex -\epsffilein=\read0 -\epsfframemargin=\dimen39 -\epsfframethickness=\dimen40 -\epsfrsize=\dimen41 -\epsftmp=\dimen42 -\epsftsize=\dimen43 -\epsfxsize=\dimen44 -\epsfysize=\dimen45 -\pspoints=\dimen46 -\epsfnoopenhelp=\toks26 -) -\noepsfhelp=\toks27 - localization, -\nolanghelp=\toks28 -\countUTFx=\count52 -\countUTFy=\count53 -\countUTFz=\count54 - formatting, -\defaultparindent=\dimen47 - -and turning on texinfo input format.) (./history.aux) -\openout2 = `history.aux'. - -@cpindfile=@write3 -@fnindfile=@write4 -@vrindfile=@write5 -@tpindfile=@write6 -@kyindfile=@write7 -@pgindfile=@write8 - (./version.texi) [1 -\openout3 = `history.cp'. - -\openout4 = `history.fn'. - -\openout5 = `history.vr'. - -\openout6 = `history.tp'. - -\openout7 = `history.ky'. - -\openout8 = `history.pg'. - -] -\openout1 = `history.tmp'. - - -(./history.tmp) [2] (./history.toc) [-1] (./hsuser.texi Chapter 1 -\openout0 = `history.toc'. - -@btindfile=@write9 - [1 -\openout9 = `history.bt'. - -] [2]) -(./hstech.texi Chapter 2 [3] [4] [5] [6] [7] [8] [9] [10]) Appendix A [11] -(./fdl.texi [12] [13] [14] [15] [16] [17] [18]) Appendix B [19] (./history.cps) -Appendix C [20] (./history.vrs) [21] ) -Here is how much of TeX's memory you used: - 1745 strings out of 97980 - 20843 string characters out of 1221004 - 66071 words of memory out of 1500000 - 2572 multiletter control sequences out of 10000+50000 - 32127 words of font info for 112 fonts, out of 1200000 for 2000 - 51 hyphenation exceptions out of 8191 - 15i,6n,14p,329b,490s stack positions out of 5000i,500n,6000p,200000b,5000s - -Output written on history.dvi (24 pages, 86016 bytes). diff --git a/lib/readline/doc/history.pg b/lib/readline/doc/history.pg deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/history.ps b/lib/readline/doc/history.ps deleted file mode 100644 index 830078aa8..000000000 --- a/lib/readline/doc/history.ps +++ /dev/null @@ -1,4680 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software -%%Title: history.dvi -%%Pages: 24 -%%PageOrder: Ascend -%%BoundingBox: 0 0 595 842 -%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSY10 CMMI12 CMMI10 CMCSC10 CMSL10 -%%+ CMSLTT10 CMSS10 CMTT9 CMR9 CMMI9 -%%DocumentPaperSizes: a4 -%%EndComments -%DVIPSWebPage: (www.radicaleye.com) -%DVIPSCommandLine: dvips -D 300 -o history.ps history.dvi -%DVIPSParameters: dpi=300 -%DVIPSSource: TeX output 2011.02.08:1110 -%%BeginProcSet: tex.pro 0 0 -%! -/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S -N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 -mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 -0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ -landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize -mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ -matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round -exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ -statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] -N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin -/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array -/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 -array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N -df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A -definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get -}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} -B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr -1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S -/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy -setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask -restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn -/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put -}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ -bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A -mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ -SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ -userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X -1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 -index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N -/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ -/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) -(LaserWriter 16/600)]{A length product length le{A length product exch 0 -exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse -end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask -grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} -imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round -exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto -fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p -delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} -B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ -p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S -rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end - -%%EndProcSet -%%BeginProcSet: texps.pro 0 0 -%! -TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 -index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll -exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 -ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ -pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get -div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type -/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end -definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup -sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll -mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ -exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} -forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def -end - -%%EndProcSet -%%BeginFont: CMMI9 -%!PS-AdobeFont-1.1: CMMI9 1.100 -%%CreationDate: 1996 Jul 23 07:53:55 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 58 /period put -readonly def -/FontBBox{-29 -250 1075 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E394A533A081C36D6F5CA5FED4F9AC9ADE41E04F9FC52E758C9F45A92BED935 -86F9CFDB57732045913A6422AD4206418610C81D882EE493DE9523CC1BFE1505 -DD1390B19BC1947A01B93BC668BE9B2A0E69A968554239B88C00AF9FBDF09CCD -67D3B2094C11A04762FE8CC1E91D020A28B3C122D24BEAACF82313F4604F2FEF -6E176D730A879BE45DD0D4996EF0247AEB1CA0AB08FF374D99F06D47B36F9554 -FAD9A2D3CE451B7791C3709D8A1DDDEFBD840C1B42AB824D5A0DFF0E0F15B0B7 -22AEEB877FF489581DA6FA8DA64944555101EB16F7AB0B717E148B7B98D8DBFD -730C52937E226545CF8DC3E07C5BA30739BAFCD0F2B44275A6D503F582C0FB4F -449963D0AD2FAFDE33BA3D77BCA9D1DF878DDAFCA2E22CC4BACD542B282164C7 -97C2BDE318AF9D501CA21F6E662E7AAB75A5F24D2C182E598D175D44E88AB19A -E7CD59584F95B389183EE21B525BF52A3F23C0FE5383A5565A19361D716F508C -AAB78411CA5A4D27552CC1C435760D5A89D535B71C593E755C616661363308DA -A683F54ED0C23FB2C225A008392B0B719F66F11A946A090B7C00B662A3C69599 -B4ECB0CC70C85C4BBBF207E0026F6C7A19F2ACFB7A60804FC98A4BFFD7BFFF2B -9529E6D9D4238002BBC255BC62959D6F3381FE06E0621B879D5FE5B541D45A1E -759A6E7DC32B1D1632368D09A97039DF255B6492B1B2B7E2C1434E8306ECA7D3 -5A79B6D614B4979F10988BC76ED53A5F45315CD7DA216221F842FD0F3E050DD2 -BAC23C984D506D8F7D614BCB6B244F5F41321549BB0BD041FBF3053307168680 -3435E9C9445A59A7C666418C4F2512C32058B1CE1EA46C7839C6E372F6CC60AE -2CF46DD2F130B532DE8ECD42D9204500E413799E298CF6426F28D23BB7216BEA -1A618B3ECC61B44DDEF0BB22D640B47C09AC0DF378CE68FC9CD88BDAE9ED89CB -431A5CF9C3E9528FEE7A9936C2B1CF7B38DD2B95773F0EA0051607BE1B0B3588 -A8B907A5EF011B4622C5093A7B107DD1EED6FEE9536DECF1CC96E65373D0F433 -30AE3C094654ABF4698C07F8C74E71D023DFD242EE83B1306786124DD8C6BFA7 -801E66CB944BE7EBCB3FE803EC97067AF7AFC8A4E9AC9D11 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMR9 -%!PS-AdobeFont-1.1: CMR9 1.0 -%%CreationDate: 1991 Aug 20 16:39:59 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 49 /one put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 72 /H put -dup 83 /S put -dup 97 /a put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 118 /v put -dup 120 /x put -dup 121 /y put -readonly def -/FontBBox{-39 -250 1036 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 -87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F -D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 -92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835 -3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203 -046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E -C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A -A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2 -A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D -731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B -09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1 -49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B -5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B -54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C -C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F -11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC -D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A -109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40 -3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343 -C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7CCFF73F4DA0 -79C95BA59FE28B4C215985B32DD3AF0843AA8D257E97A12C37A7E5F07FA3B46B -76D85FB41CD90FFCADEC92F5D8AB1109D99E4251F4D0DC2693AF1404DF49B308 -49D7516DC2391D5FFDF9B75C589BD3C4DAFF2DC0F2D809EF9A864E1D8AF48514 -48C90D75A4168D99D07A6BAE0A6E46D0B2681C0A634A2A11FE8CB3E9645E42B7 -CEC0F081EF5EC0275B5A363ADD57B1DF5CC39EE580C9000FD3E84A8659A49F58 -FE78EFBF8A587984581BF7FBD76B2FA7E0E345D939FAAF781E8E463A761E2B8A -923ECD676EDCB340CEA6F6BC95CDFA5591CD4162E62E18BF99D95D82965CE96F -01C4FCAE8D710D0C822DC1FB7CEBE6D5A6571CF5E1E4E09AD669AE9B5C541AD4 -BDBD4521F87CCB6594BC9651164B9A8936BB472E2D0FFDA1321DA3705BF338D8 -754EB9BA0E027AEC143ED0DF0AB63723C8782C7F6934454F66616B0AB11DC672 -CE8DD3B7BD53E293E684111FB679A8DB9B7F5BE0DE2D885AD61E5F5E6A531A2A -59B88E09B24B382E0B82CB1ED14C4CBDC42740242D4BB659089119E173C18D06 -E4899FA22620159BE2F93957CC35200EE2DBECB50C2DB46865DB2DA806AE9526 -C95993E81BC219108C9E60C391C09A2204B5ED2FF07738B595778FDAD688C239 -E5D88498FFFA562F84B4EB2A438A5E6E53B8AE37B8DE3645AD5177A951F3F482 -C1DEBC090071106307630FBC73042C45EF0F0207731EB7353A7CC574927DA574 -9288D70E163B7E1B6BA00F00A646223F7F65BCC37549289259D8C6ACEDF9E13D -8F48262F4F2819D01074196106CF0C546FB97805917EA2CE1366A960CA1C2D75 -8040F3680B0964A51762FE7298A9448E48B966331FFA31287D03EFD57C4817EB -48045F3FD8CF3CEC740ACA4374D0BDC29924D0101BD332B356724F96FD16C13B -6FE70C2419A5464E2768DD68B74E4D5621466E75F481CCBB9F83DAD4BDE54AE6 -91139AFBF6B0218F6697E47679BDE65BE25E8ECC20458CE11DC7899599363280 -041D8B49C2B043D793F9FDC915435459BE783A939AA081BB60FFB3B0AD4C65DF -427A7D92DBE1096F8AD111C7F06816EA2B3688C61AE0F27BE9AAFD036FCAA6EF -D5EE4C5E611ABBAB378EE8FACC3C23CDF16020982BF22993240DF28CBBB3CCD6 -64505D48B9716873A8CA7610A7DDC2B5BEB9C859B49C14575B37189A0721BD17 -F36B1C88B495F55C19A581895FF86D04D76978DADB486ADE888480F3975FC604 -DC69CE386B57CC759B5755C527EB2BB56BC4CC3AC8256DC6666EF865096E349F -9E3BA0A9B30F09295C36FBEFF2211D917125551626617C456ADE8C3C46087D66 -A119C924376A77E5B10D777FE4DD91EDA4411244E0733A0D6DEAEA2545E291A5 -E3F92C307A9C04ED7228D468FC1649D969E90CFC3FA0EC2C88E399EA78BC65CB -3218D1DF850F8A005242543C6F983FF6DB070A841F63820A78E7971683D63225 -ED7DCBEA8130B104E25A3BB4E0F457E2A8A093539A029152EE906560A86C3219 -89D6E9A963322841F713973D0B19E9439AEC3935DA60B5BDE44139B95FECD321 -2CCD7C9473CA7490EC44D30DED292F8F759EA500AADE2334D188E6ECEFF4491D -9227153BC250BA7D9EB7C0411723B1EE76A9D86DF8530A9277D9D086B7C4ECD9 -861D1A9CD9AD967B312EED0896876184ADD6351AD7446E2D37A408C19CC687CC -268589DF450E40B9BD1634C5102040796F7D22D137B6513AF9D6B34559A1B88A -81B8F01D89EF4FF9271D19099D74327E44A9CFE0F281E4951FFDDA041346800A -F5BFB4F7D42CF9F641F3DA3D1083579E798DDF968C53C1A72B573976A5560191 -7FE836812ED2AB13EC910BE239A36CDB8E478234E4B1C39AEABB5C1F8887C271 -1AA961C65B513E835D52268905C2BB3BB5F570C91DEB1D35A3B4CC633E28B1CB -33F72D80E60FCC08BE630592C6B0A12785CC3E3FCD71B8BC680899B19D4D707C -46B7D0BC251A150C06F2ACAF15FBA0A4024BA2C8BFA0EAB2CF7C1DC9CF33E63B -738CFCB2B2BF14C37CA935CAA4707E6BC6C39B598019773857813EFA1AAEB74D -C40F0329414136910D9B6E3E02C5DFAF6690FDFA55ADDFF5BC7C1917D8996533 -538DC0B629CEA825B08E8D1882ECB52BE3299BE56328A142389F7208947CA6AC -CCF49F921B53906F58F2E9AB253D500EC125DD62D5E1BCAAE973B429E151B119 -29A6A61071C6AC1F6D61CE434DBD7F205B4496E744E1DF205183F7EB546516FA -A0A8054D72FF4A7A579134ACDC1DD61E8D28065AC34FBE04CD8366884FFCD595 -13D5C429E0C68098CE3D0E5B9533B5D166894D9958C1B9D384257A30316F925A -40229CC8665CECB8440118700CA8C98091B6C2B117027E7CBF069C31292D4C6A -A7C311C4D52FF847B25739633FE51C724DFAC6F26ACBD3588AB6FC886A7D0530 -2ECD82855ED3FBA5CBCC797051EA514F45CC8F9593ADD302E3BA79C8E46FD22B -37A2F21F07D35CB9DD8529E5018AFCF3AB1765F170D02E03F79B75882906CA02 -A75DED91B4670926FE6FEA4DEDF80BE3849D3D615917BE4742E594A3496C2446 -F76BA5AF5714D9A091111AE1F6628DB7A952E44254EFBCBDEAB492C902DB272A -1C1E8FA0807874100B03C404F158C9916C9D4ACA59F7BB0A5299C73795CADFC6 -7CF2E2BEDC4BCD537BD0E1E624CAB0811DB45DB36F8C0FA0772AC33994ADBC72 -63C4E6A12439C9F43B71191A767579E1FD06382C1DC06A7C69A8858AB47E04D2 -9EC7D01A045CE7A04A39AEC3806B731D7DB53CB8469630604CC0D198753CAA49 -E1B55F06650945E03909EB79F1E2232077B9F1BBC8860553C47726EED45CD944 -966814E30C9CAE2AE1F1BC6018DA252D4C1E0F6D54929165F39858448258A628 -E278A01300312F43762795CA0D5E5AD3F3AE19883D9065BEEBAA6D8F7CDC4AE4 -4C8D39277111749AB7E2A568620EBD7DCB76836F244D9720C4EB0B9100DD7B0A -6AC2B75AE80E6406102EF019B5B28CA14D853A8D9957129C4BF0EF3EFBA7EB0C -9317B11BB69CB98671518A3847981A027245914B7C0238E9A4E3A5169EE63C6B -B6645144DE0B73A8A4BC6F9CD21BF9FB6CAFE2CC742E733952EF4E725524B7EE -9AA2CF272C835CB79C5E403CEF9D74FF0C7436EBAB6209BD13BC7A9BDFA02ED1 -A233E6646837D9C4C1CCE1D813094C2A88B3B57AC7EDF1EC376696A52AE96FB2 -ADAA12270964E5A5E8C32470166BED504F477A8E37F72826B5D5AD1E17F5D140 -421EFAEAA061618E347B35AA46C1E915F8AB517AE828B2349B99DBECE6B8302F -CCEE90FE666B6CA4712C50B1CCF582EBC5432D26C5E560835508CD13B0F43760 -85A50F0733C35C7CFE1B952DBEAEBD6A6EA43F6AAC2E75F9D03A61F774375F43 -3041544C07FF105E1DE4D50D9C46FC90BBB20A7486807F6E5B115B33FF3E5492 -8729F0D1C8FCF5DAA180E59112061EE6ECFB6C0748B01DF68BD6F76D4AB5195F -BD58A37A3EEADF9E05F81BE571F731977ED04D4D4DB7B51DD10FE351D02C5090 -3B0B41E0C3BFF3230014FAA0FB1402A8EC6106E78DBFD410A979AA5211AFF01E -E446615E2BA8FAB7BE9C7224F5F6C678AD509DF20BD0AD887E8804F806439A7A -12E9A4EC2044C329410900A869CD878B84E92D0EE8EED95166C4233F5AA3AAD5 -07C42C19FC4790178E4C2DA81CEB2382055828789CD471D79DEA1EE6D11BB7AA -F8035405CA79C679A202D800DAD046092A5B1AF6472B94B62873EB6C0EC8683A -159BEB9FB3F57EE16C1738DBD684F5EC321B24AEBD8259754B01E6DB7868674C -7A9B25FCC54F45D825AC044561783544B8ADC7D6DED3B41A843416CF55B3F8DC -9285E181671642CAAD8769A4C916282B227940C1C29DCC3E02D051ABFA3B3CED -6BD69676873A346C43A9611435E2AD636BB12187F72644F8FAF40F65ED2B2751 -78BF371854AAC8BFE285D68435D5DBF1A34161E2347CB3CC1503C3A2214213D1 -21FE71AFB26AF7DACB02541D900D4D6B0153524D2A17C917EF83791C6AB3248D -10A837A4CEC4F158F2C40BCCEBB9E7175485C889B90461E4147F1C5EE68B85F0 -19D0E7263C5498C72703A9720F25D38EC8893D24D5BD3088D63A10815D43DC9C -0D4F6C4AE46F9DBB75D087CFE6A521182669099A11216DCCBFFE770CD2579C3D -BD41B35E5F8205034D8F2120BEA9FB72C6715B1FC6A8318AE58A07B3D6C85F7F -A15B4E55AEF566827DF641DB7FAC8A2782F2132FF7EB976970BF6ED4D494B85B -B9B8DFA4FFCDC6F3756A13DF7E596D80997F1C88D8E3F0F95F8356F7B490282A -A07F4CE85331FCDDEAB7C60F6FA62FAF354EB86B82BEE3654BC45B111D57D6FE -A6F3F2C203CE6190BBB92A365DC217F5701B7481923788607272A7D05AE622BF -D523A58EA6BB16344978158697F94DCECA6AEC487351227E46598F07551D384B -F08136A37ADC06747F61A35DD3EA337DAC79A183075B889E2FEB2E4B410C229D -803BDAD9894B94F65735E67BC07652B7D9ACC7A11A7C8A55318DF65775B5168B -5875C955D9FB09E01A13D66D8BD05C588A85A2B18B29CAD6681EA6F4B5B36A49 -BD8C65E8CAD928E3AD315E1B3E0AE8CE319FC0FE7D9C0F66335F69BA4C257FCD -490F8BC096E21AFCD49C02624B3E7373BE0D3AC204B97DF6C4F73AD3C1E937B3 -95A4EC7DCC051BDD976586546B2827FDBFE123F104491536D816185CE115ED94 -402614E5293D0EC1B6CEE1B955260A18B96F6D5D825FB029E1A5CFEB5476EB50 -EFF2341C9737C5FAB195E37136E2957831CD8F67499AEC281FA14260B3D3EBC1 -64918B9C5D104267FE176609AC63D067CB70749348C2877A2E88ABE087B4F0B3 -B462F4970D0903A3D4821EDE9C9B05026FEC969A03E816D6DFE60C1234A65F73 -8A9F0BFA7DD6A9F971BAF5256187D052401D76462CDE3C3A17EB3A4ADAC404DE -93D475CE0F1ACA1E328A104AC443618C43971E39F9BF2C93F86D6B45220AA4FC -1E4DE67F8D376C595E5F4B1492ADFCFDA4C55AA2396D1F7F7E6403F25536F1BA -6EB8937426C0B79B67EE7F46660581262B6029EAA0375A6A900406DC10E3B990 -165C68DAC5EC15DDC7CABA62D5446F154F89BD6E02AA9754F229CBF95638A25E -1592A49481D4F106571576827E44B1B3C8DA2B2DBE187F2E9B3BAB2E039235A7 -45AD875F1B31344D4C8B7F19F1EA136B295345D36B106FBF61373DE31D72D99A -9F5E6EBDBC5FE6187E5B6034442B70059CE2BCBA450584D536208BB7983A2C52 -66864CDCAAC8002B324427DA2AA3CB36A90E067A248FCFE4B6785E49F4DDD41D -F46D7AE9EAD03D90992CCCFF0E66102AB6B94D9CC62217B8B34BD122B90E5CB7 -07A162C3587EC865ABE9492797DE9D8DDF0DAC66A483085F655F4A4FD69881FC -2E8A423274F13AAF3BF3F49BA1C9F024FD2345FFDD38D6EC84AEC0703CA69DD1 -1C97FF1EA61A666F71C26DDD2264E41EC93CC78EEFFA4E480D2D2F8CD9CA8D59 -981F74F72D32CB11DCB6B4DBDC078E217F9CF855E76E3659AF9D67D324C1E1EC -50E3C01BA9E7BF9903DD9FBEDA1EC697552DA8F6E896E0ED71A6567AB628116A -B7E655313314A41B8B8652183C25339C20CCDD74EAE7F27EA7C9E9FADA0F70F4 -020C01ED0E8B6A21CB8ABED9F2D48444C3310D60BE710AD201A54C3CE00887C4 -7614A7B580A592F7E301E4696A5EA91D81F6FDED33701B0456F3821A0B8504FB -ACD91717FD661469F8325368F9DEEC474971B374190FD0865448D9B611816F05 -382140C6A07A56DEE5ACD88851E21B6281C7FDC21ECBBFC2A2B4C60AC16A1DF2 -C68BC43F81027085079178C2ADE5C84B036390C99E612F9E8F49BD0ABE1D5977 -46BD62652E29FA9E515601B81C7DA9245F102B7D939F91436803976AF3C787C0 -3DBCC9EF6EE197A13D136BFDA523A2194D8F60EAA75247FB44C575DB6202C466 -BF04D9153E4A7B742DD2FC75C1E7FAF9715EA53A2540B800D7305848EAC5B0A3 -AD838B481254E0D65A6F6602218C0CC6ADCAF7FA534EFDA315882376950390C1 -BC208247E5B7912729 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSLTT10 -%!PS-AdobeFont-1.1: CMSLTT10 1.0 -%%CreationDate: 1991 Aug 20 16:41:43 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSLTT10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -9.46 def -/isFixedPitch true def -end readonly def -/FontName /CMSLTT10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 49 /one put -dup 50 /two put -dup 97 /a put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 119 /w put -dup 120 /x put -dup 121 /y put -readonly def -/FontBBox{-20 -233 617 696}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0528A405DF15F03DB1C3DA8B850431F8 -0E5F73DAC973450D1ED0530313057E971FC7E7CA88E61DA6DB9A5CD61F0F76CB -4DE9105D0627B8DDF51A655098229920CF429CDAFC3F7788C95E7AB30E84F840 -8CED52E98DB4CFF161D2E62B0D28CB8B0AC82E7A8D2C007953BAFB3056D66079 -8064956E257D31C13509FB81A250D9E875C77A4E91CC49E9FB3C0718B2F691D4 -B4A64F351F4DD68133DED7629B0D96E5124584A16FD2AC7A3EB244A934FF059F -ED7297B0505F3C2994AD66A3CA5D2728B034DE94B64A8AFAF341601BD4DB5858 -C9950A8BB9C598B8960609F48116ABA8C007190AF0ED335EB5BF61BA6871FA5F -EAB5A26AEB5C7C352EB80799CEB983F19EEFA801093F62086AADD0B80BB6580F -2CF61B1390FA56DFA1A0B61C58DEF96BA767A8A37EA44730783C600706606C60 -4EE74EA99B7C0F8E2525C8847F3D31907C3C483EFA98F6C416B6B2C343DE6370 -52FAE423008D086A76A1FFB327CC7FD84B1C66B203A4F41582F4599A82F8362D -38108452EACCC937FFC4F3ABBFE3628DF51367DA6BA3F6826FC6522D6AC5E8EA -00BAD300FFB6DEDAB93237704202BACD030AA824B1E97C0AFE17FCE8C75F4FA0 -B8A74329A6CF1788C7EB34DA7307411E9AD7ED8D6582884456E06E033B4FFE7D -CD4DD8B06AD01340CCCFBC382C18CA451E4C886B01D082FF8CC5793F4727C3DF -B52B4F1A242F31D1EB79D1E39A1D4FD13D6C5E2A42AD4B4D1CC4EE7BA0E5F80F -802E5AB57EA15F4DE44D82AC408AA86D4BF58EF967FBC6497BBC7F017C0598AE -32CF865DFFF0FC7FF9E6DCE9B5F2F4C7491AC674F46E8E7660452CE0A77C1EE8 -00DE382ABED85350033F8ECB97398E4E0A75D4877A107F6A909D0C76D14F9A96 -8A6CFDE3FD9D79B6FD82693A9F354BD2ECF30C6D99F7AC522F8D6C93EA214F7B -3D0ED77F042ACDE9414264C0698E86398562E2C640DEBBA0734AB4C3ACE3907D -CC79E6B2C6C3C3F9B01526E8CD98237D4A9B403FF8CE3132222FA60C196A19BC -A2393AE6935C0F8B67FC1D1A13507C100403B61A82AB0165B072581059B844EE -CE34C714DB54843CA29B306D373EA67C2F6842FC3FE75898FB80AE43E689F641 -ACB7715CF595C8ADDF68D8D5DBF99528FC4FAE495ACEAC9E0B61971641EF17A0 -4015E263840C96C1F2ECC22A3368F9E0A31475185420560CBEE9639AB9280831 -69636C32D1F3E397FF45DD97FAB9222771EC4C50F45E8DCE4BB761DA258F936A -1067924AD9A066E11FA841E0258039BF264DB97EA12311A8AE9428DBD5A0EEAD -12915888C3BC3E25EF203BA7D30C9D7ECD8A33F72604FB9DF9DEB133671C993F -DC7628AC78C3E93D3441733E247F4A364C66C78334B1C31FD803FEDC7845EC70 -593FC75B7833792AE449CC2712A3E054148A9EBD8AC6170E14C7284C434CAD61 -FBBE0BD31D7970A6C032BB9A12E164759735B18471D2E9E19735387607ED1E5B -56CA84F1874F59A6797CD8181B0EC05F42E02F27A9F63542254DE953559CAD95 -9F4987CB5A72A329F4E8D07A23DEFA2C0A9C4CD8AC65E867007CBF7D0309BE28 -9E515728F9495D1B5F3EB89A51AE836937E548CB10DA7B969F7558DA4CB29E45 -813BE23A40849203DAD5C8890394F1EDD90074E63CC0D6CDCE6143A153E79A9C -7556EA3C9D7CA44368B81DE3B5ECF4791A4E8955ADE6632B22972A5F8B5EC694 -1EEF90BC65E2C91643058C323CD53CC4059CAB8EB5930DE530817C6E4283E53A -210C7BCD93B4E2EB9A4530932868FF6924106C3A889A9B0DA120949F9D24B2F9 -8B1D9EAD4F1B84CC9CA63E7E3154A6D42A338564B7FAAC6509E08F47A207F933 -6F4A1813D7958F62EBFED3361E6A3D45A2DC552FFEECD0F18E60222219ACEC20 -45285AE5EF96AF299FB42C9F516E6BA7079D20C9739D73972DCFF9FF27FD8D59 -8397137DEA913CCB5A678062F02008D5780F8BE9C7928F7F6CEFD68BCEFAE707 -91903D42A7068C81CFA224FD71380A04959471DBD86E29945D101B4388D3A602 -7C6D4064720146BCB85DB7184C77F01C1D5A0AD5538FADCB48D3B3C39602EEAD -D7611D55DF777E114E5EBFBFDBBF7C77F311801F40061DC2CBDBA9F26FDD2745 -CC72A296FA4BB1E5CD41BAEDA4BCFCE3F6A21699F0C8349BCD63D9C21F268461 -D8F1264444E9F6FBF93690970E6DFD201E68D6991B21201990FCB84BDE9D7FB6 -4A4E752D97E1CFCEEC9AA82D8B6AF47569D87C2B3372575BF5E84E0ED1F76C9A -6E6F6343A50F5728796F4EB21CE80020436D604A37608A43D74C1E8989E43473 -4469EB72EDE6B70938B405847455024F33E52134B08A3194F782F5FA47ED0EC1 -BB6CD75BADEFDE8155D1D9B7FA2BBBC56190F00A6CDDAF4A4CC7EEEBC0FE24AA -7AFE725A4036C72D827D1D9FBBCF98313F2CF1159870F7A111D8C55B97DF77A1 -93D2BF77CF3FA9AD36114D778C7CCA8D1C32DFA37B298ADAA1758772B945A6EF -90C44A27B6CAC3A3B4A43885E9F6BF14BCBD877AF6B498D0BD6FC1C7AD0C5962 -0A0327A291FF7278694DEE9E55E882D08D162C2297671685F9EA8BDEBB060977 -CF23C27B1036389C992B3FECAEC85C06816E9DC27D37CEB3AF8B1A3FFCA8CE3C -9AE090A3B8F72B3BFDB2AC87509499FB0C5D07A76A213E0579B9B48269500C37 -2448CE37E0488008B687947345E1A934F79560A4BDF44C1472D18714192F7706 -F71A3A1ED9A6928E6609055B2B1A049F481B37C4442C78A6FBF91949B3E9EF3C -453B442CCA9E973265604C673752465786FDE0BAECC038104A9EF6BDF2F2F14D -79DFF55430837C0111E882DBF56674AE2C2081C1FA5558CF34C6F1B0C16795AE -541725E0D6329A606FBAF5946054FEB12CCA4575A32A49625E8886A253D7F438 -E4C855F2F04139FB6309BB7147C7ABC18154AA559ECD0A46D70B8F87F5A322E9 -AB517EDD481831CF66B43A6DEEE50E150C19F45F7500F07169D4F7922FD24284 -93AE172849E0570942758D2F5C57B44FE8A939CEFE3E7D708FB8D245FBAFFCB5 -E6B51F90101493A58B7744FF0D135534A2ABD30E22F3541C7C606EB006277A1A -046FC6569559070DFEE59180284A8717058C2A0C2302694FB35B619731A26E6B -ECA6C4A99F1DC6636C148411089A56902F9381A05B97C9C657FC03715D34BD3F -25FA9A3CA78D05C0EA643CFDAF8A4CFD4AEDCF97896F257068516DC6DB23F783 -2142E05DFD8F96ECB5BB268B6738DEF2540751595E1A5612A4688E0D0D1AF9F6 -737E036A0129F2400C05AD9F8D95B01A8743E72EAF700F4E1ACD9EDC1D5D0CC0 -733725A6C604ED2270E0D27677259609A67F5F59246F3A187A74FD2DD8E94F17 -CE32D65DE64C2BF9F5AE2230B0CD64769075B74044CD1237EDC3DBBA2A0D51E9 -5B45FFE2447C2AFCAED3647B2AB12B68ACADC5F3041A85F43BCB2E60C195ECB8 -54A5D979F7A672C978E09777EAED15A2BB20D08C593B327CE89DE8A059141790 -F71A34040F8249BD1F253568E2FE11647A66A9DDD647180BC39BADC5AF42E64F -316EBDE2B19D26E24FDE3105DAF9F4CA01765E4D7E623D77E988A301458C13E4 -D0BEA87A09B2EEE7DEC079737BCD5C0DE724472800E03BCD16D8F9A6B380C7B0 -B75563584CB753C5B2C0C72555D16E638ED3BF3883047A71D7F9B9BA46F335C7 -90B751ED53836ACBB3DB9524A5F6E26169CC86A3F805C63D027D3D161446FEBF -E83E2377F39D154881EFF19DADBDCE48D6F3100ABB9C5DC617F3BAB482E4F570 -DDBC1A9F98201E40AA149083AAD5FBE908FAAEC7281CA1AB5D1674DDB3F8E867 -F4E311DA26C71CFF71080B03844285754575C9F94132C6F43A92553E922BA580 -19E418AEE7E71432EFF5994FD43BD4FEA2B5C70480758115CCFDAE38470C8A69 -8EFDE3172C30D0E8BFAF666253ECA7A93AB5DEC246F6DB6562B0D0D9A585EF56 -342E6A2891370C21A4F428682A1C1684514266051F9875875C64745BA8DE1680 -68DEB7407C1DEA7DAF8F7F499F123E7948C1DAD3844BCC12C835A632036E94AA -0C59E2566F2F7AF26CE5C87C975C481539AF17EC77B1B799C2C1C46C966496CA -3947C252153B9303EB31C11D0F1415EB2B4DF4CC55B081E514FECD172D82C0C6 -4CBF6ED2EA9DAC8F80563743B20F5D4DEDA1B60629E885EA183DB5119A06C541 -13BF437CCD89EDEEBB8D21CFCBEAF5C3C1112B4710BE66660A7D3726B4AE5FA1 -E773A77E18D6B3A02A6065467D452D75DEA48803CDC1600C089C183E68F04513 -F35FA955DF440EDFC083ED21F4121FC2CBD01D3B6D36504142E7DBD5D870AE81 -495A7D4F4B8504F5F87CA7E246EE341CDF20DC499FE279D8EBCC218CBC0D26D0 -2836C1C124D109F2D697BB54444952E5AF538B6514F222F693DA2CE3BC67ADBB -8CF143FFEB552224BB54C70AF45663B4CAC25BD25D514D3FC4D011EF9D5AA8B1 -9B16F5ECEE40488512E15798315CC2A85D604BAF68A3A3F980DD04A17D0E02C2 -702AE3E990DA9EF2AAC4957A3B6499771E8F00E7CAD3C207FACF32B372555025 -5392DBAB9E806F516866293506C3A0667C995BFF9AD8027FCBD2560E7BBB27DD -77CFD1FCC7B7BB072234CC908D7FD87B1410008CFEB63AF0C4B69BF22B75BF71 -6C811369BC4BBF5F410D6C61A12239FD1FE25363312A1BC595028157A185E9CA -308D7752DA09F6908E1C76A1BC08D254B7D7EDC295A6FF1658985D64DE0B9DBA -BEEC85A884D80EFAE9A66B7B577AA734E7E662341D2FFFEC2851A2BCF11DC560 -74F28DA227F1F29AA27BB7088C1BDF4DB64490CE3D8D99F903AD9331161E118F -CC75D0DAEC6AB9F63934371929EA2577CC16D9A2B0D452389FACBDE05B6C08FD -70A66B7C309F4990BF21EE6EE2B3B7B9BD4EFCC8B419499D4A9C8120FCACDDD5 -1CDB568EB932C74C8AA9D52B5C7B61828D696B41432661FC659B122FF69E7110 -6ADC582B8312F1FF10596833454C0FBF05CACE8E95EF9EB53119C5DE28B449CB -971F604BD8D7232C2723A155E37DD5519C6E959D365215BAC11AD54D30E42801 -B93423C8C028EF1A9B13773C624106DD59BA15F4252846B4D677F7D71C9870B6 -6AEF7D061AF2A03ACE5A05D050DC3B7CFA03E249C473B3D754A4570DAC910326 -CF6D61B084A54ADAA03A7C6D9B4A70DD94BE6467563A7B426A625C6CD1645E15 -23A707F0E2E119C1230F3BC3109EE3344962F90E37D679394AD3BAF2D557DD49 -4DC2AB31723955E9EBBC387154AA21F407F7F8F8423D5DCA8938BB7C22A65EFC -C04D60083E7B001031B088A00093B9530A7E71BAC40A5CF652849A77F6999752 -246D794648F8D42A2BFE5F5E4297F92991CA2D157404B1D46851AB529435ED05 -781249F75606BE08CE143545CC8077B25DDD598A8DA2D679A4F4920C4345DDEC -907CDAF694F6DCC9BF3D50C70E089BFF04A77A7DCDA1D76465D6C5D152C8FE5B -6772AD632900AAA71EFFF3A4F90C9AB755B124BF079B98C0B811E2A364AE6A5C -EAF99631D79BB7E144ABA2819811014301CE1C562BF38F9E58B2A4EA8EB8F72F -4A53F5F08A7FA95BF0A988A62214EFA998AADA81E6753161E8B32B45D4209B5D -64DE964EBC65220E146FC73BD34E4AEA2D4643453CF0FAF78EECB4B0539D36AE -853BF4635A063EBD1C1C04773886CFF56A12FF6B3F0FC7C76EEA3BBDCA392F4E -E64DF93EC4AF5D2528E66ECA77E134EC3D4368E0AD8055D782D5BCE2E43F5830 -F34AD1D64B9797DF1416046326290DCEDF3EA07175381A8C1D268B5A6E7C7C86 -4AF59EE9A71E1042EE5F23D303DB1B0A940D7C40950B4F7C60A78AE637 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMR10 -%!PS-AdobeFont-1.1: CMR10 1.00B -%%CreationDate: 1992 Feb 19 19:54:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 14 /ffi put -dup 34 /quotedblright put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -readonly def -/FontBBox{-251 -250 1009 969}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 -87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F -D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 -92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C -295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 -409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C -4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF -2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E -0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E -B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 -24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B -43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF -D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 -5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC -96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 -7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 -0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 -B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D -AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 -97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 -FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 -20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4 -0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD -F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20 -3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122 -A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379 -5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA1566B96E221864A -45A24ADAEC63F61C9FD18376D3984449A1F998C318A8FE36D0D5020E18A49625 -0F3BB603BA1F3E66FF412F6A32433FF8BD2968D79CE4273AD0E0CDDA5153C2BF -F8A46A2244F9394A49D339F763F5A7411A3C29336B21CCB01723705AF589B078 -3763035411FE36AB5D744E81379106890688CB5BC41184548B7FEBA08DE7288E -E6570FEA20C51FACE8E8F824BB61A4A038AB817C47B87391611B77928B2565A9 -3B27A573C05D36ED01D8F27CB2C793370FA9B90021B5696280A55F2CB6117B64 -293EAE0EA5A243F56FD007773CA35DF71B3D28643C25210CCE25F37A5095D6E5 -9CAFD99DD1DB0D7EAD454C13464DF6FF5DD42339797AE5AE467084550FC00139 -6EE818C6365007B2FD6E26285B832CFE6EA7E99665A224C9813C036CED262639 -3FB39C1F05FF8F31D2DEF37BB9B883334F51EA1243332FE1E3FC91864C8AEA79 -16A726F924AFD84F2F4215FB795FC41DCFFC835C90B9E31D291E47AA4BB8C05C -620F69DF31E91A0FBA8E217CDBFAD7C4D480EBC1EB396029CDE615C227A367AD -72834BA95539D39A38EA0CA3CF7F1123F70792CF315BAAA38BBCB6DFA80B4493 -5025F33C3696DAD6A0ADF584C71BCB1D29E523EA4B81FFCE15F3204022BBBEA0 -A9483EE8EAC07D581162672A0D66199174821ABD097561A263C0C0F24066FBE6 -0951F31FBBF2675141F3FB4457CC2A94A40191EA0AB2A606CF540BBB8887B6DE -715EDB1041EBB9D05D0F4A4672F534397B9529EF8743BE88BBA10C81E0A46259 -2F2AA7B638E20C9C8A3A827977AB58ABF7525BE15DB66CE8E9B81457552073B5 -85DF3FA70B5231C447C5724E14730B90FA35ED1B5723036F1658CA8E19EF5A6D -D333B78E91E4D7032EFBFD40A5A2269B0DFD9F7C3438DB58F94B507EB93032F9 -99E5F15D9F5D8CB031BBBFBCA8A15A617ACEDDE70DD9C2D9EE21179FB17AD913 -B4BF577A9046994689D1BC6A6985FF5F5A67D699C2FD288FD9E5BCAD5453EEC5 -68287BD7B8872726C28CD288B4DED2246B843577173450B6E5760852CF2E1727 -01FDB0FFFBE12CA13ACF6434AEF4B59EFF3E0DB1E87D35075B1D55AC12633167 -5A83A39056C077EAE6F2F7D1DDED300BA43830B8034F0A6AEC562D3023270601 -6C594D0359DF6F230F7B80B54EBAE4880AF338956B813E3B8DB8BC778BE0F612 -7D84939C2878B43EAA45BF10E257F22C28C2C148FF48843D2B52626148E3CAA7 -4527B9F246C17BDE21C6E7EAB4906BB6D9E84906CD1832C4BD9E405AFFE33AA2 -AE086C25EA26BC23D68986639366B99C87359915EBB76D7162AA667ADE4954D0 -B1E18027FAC2468CB2FEA2568E23DBC201E9B6A1151FBF21129A088D89E3E728 -28B2785C1A8B2637F368A93EAB459F80506435BE23A85396969E2AC4E0D6E4B0 -8B12EACD150049EF8942C108B96843159D4408424394B33603F565D1622FCB78 -01C22EAC64FB487AEFC0387059055F8BDF207C956D138903896534AD1F42212E -7902D54D0F0D8083B419A459D865F7E7A6A6F8B94FA8AA31417C4FE6440BA98D -1271ED7F25465E994E2D15B4326CF09A6D30ED6BD05D0B66F39DD8F864843B1F -8031DF58C9B37C10FB633BFB58B7940B52AB6948C4412D59266A2518B5E1260A -0EE0FBB176C4076680BEDAA7EDEFEB0995DD9A2CCF3EBF3305A20279366B73C5 -F3DE7527AF736D8D267CB71735935FDF78F765DEA560F7F97140BDE20E9CA866 -4242175E7962A14800C37EF65E856C81918C20C040FFBE7DDC373CDF456143B7 -F3AA5026F9B8286B876259E9532754866C649F4F3383C73878CC054CEBCF2605 -75CC0EB62627085F4DBBCE6B6206F867731F47907BA6B5D37CED7D58049CDA25 -7D47AEB352637FC627C28B09BA0B7778DCDB51A25D6088D7989D18C0079D2290 -B01330175812393755C7227B9E64F952CB99310B2F822437AA2CE4334403C6CD -7C9D007DDF21794D076A5D5263141367A768F8F53D8267251076D9E6E18F9470 -B02BCDAE33E59BDE73E7FF1BFCF40F956914B1A89E6C62FA4D7A084AFDA868A6 -55B77808BDE6448B9732B40B83BC63E8064AFBBFDD187FED36ED67E99CDD69A4 -23F603FEB3890FB19D9CE3600B79C019C5F4E25A63926A8F7BE1B44E53196D67 -F7A6A341F6D7D5E3A991B56A6D7A57A44D255B3CA95F5F6FF0472E6CA0F6F5A1 -D71629A598261C3B7A9BB72F2683F03304936ED01F8A774E74D24C25D5ED538C -63A8C4756AC67CEFCBADE365E29340E780BFED81A59C98292DAD3A1068794A32 -D28D40BB7BA410274E8C8F804055D9457E4439F1255B8070DCB89C4A72043C71 -2B192CDBF53EE9FC81CFA1A4BFBC12271DE6F87E7059F06F38799F37D49C94EE -58685D3F47C915A1CF37B2CB116909E52F537AF7CD386D62D01D30D6D079A5B5 -71BE47AD79CD0F40DE5F15977F11FDCCE33B952858D1478B59F687D7E96B9C5B -D59357FF5927734B19D5B15D3930598F968493970B616D570D3E2A51FE743A82 -E20909091813726FC10599F23E8B5738A90E237CA417B10677A6C8BDCE468EC6 -BD234802C6E4AD49AD148E9CFD0009C97F421070C6CCEFF5076A32EB90F3F5E9 -627E13F658A31CDD3C4A75C66A0508C92785A6C0BCBE2D4C9C1E6B0F33358236 -3B0E68737B23F76B2A2CC1BE7B1B3DF1EEC55F145CD68116804F0238DBDA3B4D -DE8AEACC8AA661B9028FE89F8BEDE8C339036F53073BD2C13EA5CE4F647654E9 -889DB4B8900D05D84DEA0E7A83532602514559BD083AF5DB829E15E62C7251B5 -B6D7F948C78FE7128AEDB6912BB9B0A398B65C4ABE7E3783684B0B6CBE479C0B -229923F5C83C307FDD2D243DC71B40EE71964352EE965C33E56DD0867CE466A7 -68B0BFBB68D15B23E918D1D002DAFB4038BB93BC0FB2E7962A3CB6FF620CB3C0 -F850B119EED8A2B877F9E2D8E8F82D1A6BE16F768081086B95A3968175C57054 -70BFC6C9CE582D7EB11FD407C8835C2DB798E25E782488A9A5C229EF008CD707 -3E4B31F5666906DAC6AE081D46D4E61EEFDF2612C3F47817EBDDB61CBA9C1E1C -A8C70E01BB07146903ED9E72B53BACEF7ED61CDA5812AD9FF1B44682A93F8D01 -08CE1363D775A7C815D4C14EDEAAF507089A503DE2EB81C75C46BC51A0059EB3 -14786BDB0AC405AA352FC5118FE3372398CF1D7264F981EA05DFCB911A2B85BD -01D17DDCE329F8C570E35484B545B62DD347563942518452FAD1B0DAF30E1DD3 -C4C64C0429D90AF26A0F4CA809B81C29FC653F945B388CF77B2E066563541278 -A3C1348A5CA23836DEBCA15AB78D195C68BB5F7C178344E21FCB44CD6CE12B87 -5A2AFC88C60389A73AB1D13BD86B1A0DE96CD36F7857A871E8231E338AD91A05 -B905E43123473B39307A9492787ED0C693FCB8376AB19F27A9AA74AFD21DE5C4 -76B1119FC152A3197B6D075F8C4A82846898E25B5C5FB90D72CD1B4AD63F012E -209F805111D3F79DC308C8D678312B3451A69E759DF4F8E8395ED7E7788EF079 -980B286549198BB0753F7172F4A091FE3DDB5C4CBBB6E2517D00B8999087A308 -16C42CC741FEB231C5CB6B7E8F3FE2E2DBE9455BEB14D354113696A54D615208 -E1A95CCF0E0E70314DAE4349DC26212B4147A53FC8A16970B6E37E48E0F9CA32 -2AB6E4598E4FDA267B6A9CB8266071BE3BA042C7D780FE61EF22116CF9642B36 -B4FDEE33D6E3CD64DA5DA1DCE187AABD948373D37B1985D0BB3FEB8CEB2F3A86 -AEA9E8CE67A15672414D3FD1B8B28ADCBBA5121DA3F1B5B7CDDE8E67E6E67866 -B1F02F644B9C88BFCE4624A9A424500BDA925BD7583B1367E2367E1BF8523A42 -EAD38C08A7CBA5760FBF83ABE1DEA9FC1E41F14D16ED4339CD4D17169313F879 -15DD4504FC1BA5BFE21CC6C26E206C4E1B7AC0E84A058B8B5BBE525A7A29A202 -4E0411D0C9185BBC834E8F483509495C203539F7D425F4102EF53248CA943CD4 -5F01026F1B1129149505AAEF7DCD2F3A6D6C494E29771590F658A8049DC981A1 -D9337FB49C4BC6418F271F4E14BA6B223B3CC521FD0879C2C08DAC47BA713FB1 -BF8D9A48E2C1E73F2F56721E8B77ED65E8115EC0DFAC0D61B54D1BA3EAA1744A -3A0287BE529B7C6749C768F07A07B9C227BA2AD6F88D6AB447614937DC12670E -7716BD4EB41E3F77A77209CCC6744581DE4B50531BE874AF185DBE34FFA966BC -02FB132BA1F5AF7E0BB25DEA00E412DAEB9F3D7664B788F7EB1DEED46FFDF9B8 -ED936923D31F6A673E3F5F60395B36672392488191F86263CF52B9C8DD7C3504 -B3186C0388A019F080D80234B68B8F3421190142ABDA05FD325150C6F900E01A -BF15BAF597B9701A8E3159408067C13108B38741EDD643C62905A25A8913D562 -270E42C47FA20C2A1B814A21E9D477E9E65EC931B6472929C85E8D363EEBE6AE -750E164D80015EA834FDC8FFF18C79ABD036FD1AE42715BFC3F3967604A5B5F6 -962D95E2F24ECBB719D3608BCBCC89233D2763A6120D2EC68A47F9449171DA73 -5FCC16DDAE60F4F95094F4BB468893C765CB5A2DC840B0CBE7141DCC254E06B7 -22A5A8BB94684E2EFDA11351B6C79481B157D2CBB5265B679CC8604F8C15FC25 -97E77A0DD279EE83F1C0A2788662B7336B3BDBAF8080CA3E905B27838122E762 -E6C52E39AF141B20F3AB7EBAFAC9A933A43CCDB08BFC3372510F3EAC553DBB98 -C65149F88E02066CE6C17F72C90F39DC2CB8D791551DB3374FA50650A8FC0B06 -E42E5C5522CBD3A1C90811519A04474FD7BFAAA92513E536F153B580750A9ADC -F1B1A5913D14F1AE8028A5E6E3D16A0EA4AB1ED2CFC5DD24A707FA635A210CC5 -9083732A216C8598B40C6E759658B41761C132F2FF2FECDFB377767B2D50FEB8 -06893FC6CDF6B0E83BF7BC5FD2F5551FCA8A79F8BBB89354B086CFBA51AC97CD -91B96733AE448992BBC1132A4CCC83DD4B3E7D83DAB519FF984E48583CC71F07 -06FF3ED9EA50E310AD68D829491AB9EB87E15EA196EFFAE80953904DA525395B -CDB33DD73A3E4A9B63BA0BC4CDC8B43836C0ADBAB4238D515EDBEB1B4838E00B -27F86A3AC3DD1A292BC2CF9C8AE7783426D681B841E4470A1A8D818CF292A97E -41BD70EDB22843B9B3587482FB8DB0FF148020E516C62ED13C02B0FE7958D13D -B6104A28975DB0EA79BE8F418807CF2863B5C9D77AEE3D6DFB97348AA05CC879 -B650E0D51B5A51DE309CFCE47CF977C78C01B9564E375C7DE789F5D5CA4E48C6 -39F016B6793FF1981377D3B4661F7688991F9A6A57B2DD8B5D8D794CEE4B7D2D -783DFEFB64B2B90AE6E6DA6230A21BB6DD0D1D9623B9A4A0FD7E999CDBAD77A5 -AB03742C5F36228B01524708D7A25B87186E72DB530B6D67699D39CA92997FDC -0CFCE7EBFB9FB28EAAAA23748771A992795D98BAF8E1219CE195B9847170DB0E -A369A4716D41E25763288F980FC9B4AC4242676E875A2261F1A343ED99BE69C9 -B0118170B3B8756B71AED4EC23829E614C12E7729F3FA9F19CDC03C9198E8A46 -F04033FA8C85B020666D12E8BE7539AE685222914CB6AEFA4C18C9C212C98104 -7333F98F02174EF7B29ED5C2F01E444AD54A4CAFB023FE38878F0158A24051DB -6639DE54FF45E3526BDE6FB4745D80BD39834B24B4CC66036D21236B9561F59B -84ADE006D1B8D9E235DC597C43F4C234C686E50ED87A29F1ED362BE315FA3B0E -C9B842FA46B52058491AAACEE7983A690F4711FEF5CED256D09D4AE7D71C0061 -6227DAF22FA7D30876856A1CE965199A15C65CC8A446FE470D233F53C245FA18 -5ECFE2F4FAC1561DBA2CD5FF2DA8C1AA2D825847230EFFAC6E59C840FF79D368 -CDD0412B4E83411144EAA53325A79F4A22FBECF3F625F047E8B1D025878ABDEE -2C3B5C6DC7D8EB4F098446CD3EAD3DA0A6A54195A7B399E7CA0780588FC84CEE -69164DE320825F8A24618D0810B71CED409CC6BFEE816E8C829AD81A8A16F6F6 -AD55D1903E647D935F3BFF542E9947256D1B5035F0E5BBDBB73AF80AE251B8FE -48A82A02090374E3A166D9C6A038D5C4BFD9D1DB522F18571B4129B47297A975 -65AC9B38E7C841146A5E2EB30821A31A88CE41F59CAF3DC4E48D06DB4EA7BC74 -A1DB26AEE13DE4E1ADB2F15ED40541745CC6626C6339E375BE124FD92E77FC0D -541104B12F5BBA219184D99B8D450CE7F0098854E4F6156C230BBF9BE2142ED6 -2BAF817836ED5922368FA3BA65F17ED3451EA218641820C3FFF1A362577CC25F -3C377C431D22B290A66F6D94554676B895CF0C718A16D790C81EC5E925D4D6B5 -623A82C38DE6D5A9F419742C1425A395E9F1DFFAD1E6E52AC4AA018F8D0F5066 -F26B7047E9798D169B39487B285743B67646D4640E9778248D40A84391E26CE2 -C4AAE1B1E0C454C8A985471D22B6B9ED993E215C4024242925C3F2953C207D43 -B928BBF8A4AB803FE2CA94247B4C117C828C5DB6C194E9EE41F3498B0BF81F3D -8396C84908D01713AEB02AAB05760A2E56A03A389AFB19DBDCCAE4B190DD8815 -92D56C81570B3DA87FD61E42BACB706195D3263D28E567BA9BB10FD3A42DEC18 -E12662BEC6417E3B9B5546856E320C7F7E7CC466F11E2EF3D69EF72A9165A233 -B7642ABBED62B4F20A9D5C0F857329544FBEAB9191CD59F1C44B9AEEB92F45AC -812154397FA039B7E00BF221EE3ACBD288924D697A0C23601668ECE88EF8EEBE -D279E953509E0DDD386CC30373E6702DE21CD47982E887521A99AD11532BE389 -9EAAD86F347E52DBAB8DB37BEAE59EC3246328DF0E495DC03D7DAA553EF8A6A3 -C2862E1EE2A8BBB8F1521984DD8FC30C798FD2D79D259904D13D9A3EBDEB1374 -81FB6A5507F2A032F12384818ACE9CD39C6786E8F0546354FAB6E14C920A53AA -241AB7B99073F12BF51485B7537F58ACEF8AB772E5507763F5DBE520C6FF61B6 -FECEAC6BDCB75A0D7329023913D86ED418AAD111497EEB97EB22B0EF771700DB -BA8A7AAA5A134C26A630D6D8366CEB5184AB0D1DA6BE411667F9FC170B12A10C -5167F90F850A18510094F72AB13208EDC1B9BB957417EEA33361CD0F48A2BDF6 -C4413A148B37E61D0111652DBCA3438792CA7E67E710C1402DF0CB975A45DB20 -E112A29C258F825A5E336B49A54228EE9397208572AED7F441EA1AD34B5C334F -910342EFC0771E267C15DB0B5C0AFBDB1D7C2160ADE2E7A2AC73210FC1D68DC6 -4B332262ED89477BB546F73CB9398FD0E96FB78FF4F8730E357CA67328F7CF92 -2687BB3E9916042A985691E3EA2BD13DA48BEC195727A1AD42A0A6DA32BF33FF -2EE8CC601800CF6B96EBBAE80E7D5A620491D0F998285D8E85E0E667FF89133A -0AE50AB2DA68BAFA49EF8C7AF907B7BE11345C105931412DA23870C7A8F8D4FE -D5715F6B01F18B38FBDFD65E66B616AF01886AA873CB90D9EBD72F29EF4051CA -60084E4DDBCE0E475BB98AFD60C4A64D720F6FD36DCACCB69A2BF746E3AC4DCD -96FA2DF360C17F68B58D76629FFFD08FF769379730B41E55F848360A6A25523A -9BF3ED4EAEAC7743C6F92AE6C2ED3F2F36707A629253067363BC4724719D93A8 -CE1C46E1E16293FF7E24C6CF39F971F53AA09B15244DE276F159690A6F369A9E -6DE8E69F73D9C794A1C32B0B4B3EE7C58E2C72778AE32122560F9214D7F94942 -8C21D46E3ECB044BEE35934096FBBF009EF3030034AD7D84890A45F2B2970F5A -9BA55007859A9FB0F6DCFA3E6564B9555E7F3063D46EEFFDD8854A94DE6950FA -A3852226E010E7C0379C21B09868B6A7300D2772068A449712DD2EAB299108C3 -B4CCBA45E08C3695293739E89D8C3B5D1621F0816F0259C3B1DB4E74BB2D489E -200BD7B7D5BF1C9A132B9BF451DF28CDAA438803E8656746A3D1C0654AFAB909 -177C1F016517C0B7065E98EE1B21B4D08B5FAA68D469C25EADAE718200A3A4D3 -385501BC72F5999C98F13889263BD5AFAAAF7402864E91363FC0F5C34082CD3D -2CFC70FB2431CC4C259B9597C7D70FBD0D1FE2C9B6CC3D88073C7627B464BFB2 -9F7F42CE057622037E610FA518F506F9A81FCB940B91B873D0C834512CBF8E9D -F02F9670E9B523DBDEE9B319995F9B1D612C7CFE4609A668225A975F550572AE -B25499FFB57FBA86C6799B67B05FD3C9ACAA386CC947F07DD71317B94691AD93 -44530890931AB8249EFCE7659E2D69DBFCF047BA992FC5325B5703951587EC8E -148DDFD28459AFEA56B72C7905E7415B02E5643C2550FA9D49EEF64D7630F05C -185421C580BE9780B643330F5B0B0FB4C3712668E851BCDDF8662C5D6E35825C -F643AE5455597B570D8B43466A748519E1A38C9A1225A92B2490D6993786B476 -E3498C00A1B29FAB050801813006E692EE98A9E1254BDA63D3E391AF186EB44A -E50C37165E2A314912B9D630035A8FD0961AF29E694636AF4E8912AA9B107AD0 -7E0990A428D7CEB660040F74A48EECD7724F32EE33B5649B79B63D1AEA095CFC -DFEAAFC8DB328130C261ECF940AAC676D2778FBC6ABB2365662AB1E8707FF091 -BD337B103CE2879D1FE0CDED25A3722D442C28F66BF52C9DE534863EA4BE362E -8625B859735AF68193302D20887748A625C9B1E5456BEA215F216E5E0A86EE40 -DE4413B724FD9AA1FFE418EA2FC6B2368EFB217E93120F3008BE9029AE81C1AA -ECE18F0C84758ADEEAF29D5CCF5BF879CAC196750FA5C559179F8A20FACE2C1A -AB37A3BD510B2505F32CAED1CE7C0C6F095F56B9593D3493E860A4F0CD6BBE9B -2D13ACE1EA583053B72A0D2245BC677898DE4C57BBAEDD2F2BC42D494B5B9E1C -CF3C182450250CEF19774E0723A3CA9320FAB92560B8394A14E1FDE84F350470 -523DAD433BA8C476EB389786C089C85E261780CCC544067A82DE3E835EA6A13A -3597DF92E35A80659FB03F193499D98C5E05D4C365922C20213EA0E713330E73 -F30E866B13FDC36B98557D17D670D016DCD4752F780DACE9CFF8C03FCC05770D -604D19A74969F03C81E9FC0B04BB36215718C319E4C38D2109D28447A43586B8 -1D6966E885C0E844389595C0507FE8502DA8EF459817B1937114C50A0320EC0B -653EC5693A2CD74A0BC34E8E8B576BFF7F0F191256A374E48B8B75048E9ED20F -F5D9329E5706559E1100676A8150FAE9FDB210330605B0694EB2D5A04EAD712D -7BAFDEADD782FDB478CBEE8A0175680DA713F8F3CD27E025E28D3E57F1EE98EE -E5400A38A059B70E8F051B56E5B463028A25BE6D0C18ADD9B865F63011843572 -4AF0404EE430A98267B00EABA58D9D815657871D3505B506A64ED1A5EEFA47BB -EBD1513B5400A69FA522C3E12272BB8215E235A397EDE80A59BD7D0C6CE5B369 -0430BAC269497F415A3613048C90423EB2D0CA0F128924D9546BB21BAC9A7263 -B0496520AC7264BB57570BD87EE56554078ADB66E9A61F2BF6FB52992694F753 -DEB205D221A9AD1E5FFE3B1E9AA3F3169313D71061E2464531A9BE1603C586DF -FEDA27EF90425725CBF4D04B01D6BFC5CB04BBCB9F2FC458BC84242ACE858EEC -FEA3E84675377F5E65D184B4B0D29983B9576C77518A858BD5C03EEAFCB70283 -764E379497F6D1D69AA0AA51BABEBF1C70D0E921E28ED71B2781C293A27F76DA -E29775D9AE33DBDE9DE3E9E5E43344D472BBB568CDDE0F46F8BE2A2534033633 -0A47E91EDBDDA8714B7B6F258ED7E348ADA6C4FF9A7B5288A825A9C5BE1F7387 -F69CAA5DFFDA4BBD1DFE0911BD7F9FB09FD8E718D36B4A6DE8C41E538A79AFDA -72E78F0B9301CD81EB671D7AD29C8B4511BC43D9A60E4F555AD27D65DFD23CC7 -C38A799ECB6A0290B39B4CC2EAEB3A0BE8AEF9E484071CD400A3D99BF2545558 -0B3580CE12AB5A32C37A9DB4394D6DA8A5F6607D0A9C3652F2CF59D06A6DD5BA -4F96BFAA2CE3E8720712175978263BFD8B8E849D532DEBEC7D1C0252D428572C -42B339DA0B93062B80AB251FB9E0FB7F759DFF33D0CD5AD743F01DDAC8C18EF2 -0B2CF667A27E3C56809374C598E8387DC401713C6547BF7BFE3B9B7BD9A33D4D -DAF7F15CFEB827E03AF5C150C703723ADB29F75C64A7E15135F8094557BF2C29 -E4477CD3AB780729C2F43836EB677ECAC650997CD5C8CDD466D7E8D8DE20989D -596BC11396831E0A4BECC03B9422952076F58401C8E176C2EA4996FD53DD7DD0 -2552D2B01D187C247D1320D65A18521DCD169684248C3ED5C8E3C076F40ED5A2 -A89C186EBCDEB9CDEA9395149D4770F54FDD5EA8FD0D5E210A3707E66395CE90 -48D92C1392141B28AB22C5ADDF1C65EC7D624299B5871E1291906496F69402AD -2EBDF50ED9D8265A2278DE9137C897A9D833D997FE0812D2AB1413EF98973258 -041DAB207602E9A80CD8966F979603B9DABF0328705B82A3A655E287411E0747 -15DD264C707279A61AD80D26E79A1363C809888D6572B5AF2289898BF53A3766 -A677F2B52A88EC4C85CA29C4C5108B474F6197AAF7768A693E94EE8E7C20224F -10973F20A6AE0A9B95ACA0F8DF17C67AD3EE91F6D5FA4320108B518FF7788CE6 -E55B0F40711B5B22440D38BC30C7A2E1FCF1C64A49DC41B9B91000145A9D6539 -E2049C050346151C73BA088284D412063A2B17E580BB210DCBFDF2648189C79C -E36ACDA3F3A12467CF7BB342C58B66F1AD2AA969BD8778581D6358166ADD0FE0 -1315BBB40DC2761793E991527A8EAE6DAA487F8032A40820D6DE6A625DB18FBC -8DBDFB020BC66094CD4EB6B6A649EFAD2AFB27E36330D8188281719EDAA4793E -A15670CAD04900C16902498533D00AE717B55430112BC66062F587F1FE719BEF -00F152A9D0B066E216FE610B04C0FDB04958C477C140ECA4F37C920F91AC9E29 -A58A13E1BC4F101DB4F776E8B4F54D21A82FAE329406F44A3725ABCA421A7986 -C49115F0C30F96C85F2BB60CF1A363411DB9A83CB266357E87D17267F211049D -C1AFD3AED644AAA15AD3C123E9C04FB6F8D7877217C98B3CC2CDBFF5927E9408 -F24C8C1C3B5FBADD709AD5378F3E6D37B1C0E5D6C9FE40EAE648A77956DA6834 -FFAA626CA253BD0B9622EF7C65340577DEA4F17554B5BC386183A9DFA9B263C2 -9D896CC0F2EF0C875DD3DE74F5AC50A46F232E4CFDB918354A4AE0E06C1751F5 -0C0B2622CB9904CBB6612BE56B8AE2B2E2A98A5D048175585E7A3065DA672C8E -3919DCAD8E892A1CE242853A138F1AEB814FBF075FBD3E5AC6334B88C801085E -7BD1F7C1E42F2BDA4BC8D9E8D2A7C86E40A27E0EB178B4B290C8BAAE509E75D7 -02E12E798529D89F9F271F44A4D9D92FE0C18548D20FCA6486CAB8F262CF65D3 -D80596FDE8039CE6072B87C3D5E626F201FD89E09A9954C7DA544EFE474C2500 -033D61146A284C63EB1A865FE13BE932438EA2949292886176771083BAB18628 -B4804B4465FFD9A34531DC7E65E1D1F78ACAE918FBADB9B48C23A684DF747A65 -28CB9E3B57B509CC567A21FE00D1547CC918318A26825052175877EFB3EA7B34 -708F4AA76254ED84C3F8C1DBBB6C7799F87FBCE1F8F0CB42535F486901290C8A -D345D08964FF40AE0AB35A4FFB32773BE84D4D1B9577A3C7D70717EE80B024F2 -9393E5CC42BFDD383B2EDC10F726AAB4F5281E23CCC40BB4CB7CEAEFE5B1F349 -3D46D86DF6611ED1FA3D47E2931974F145F9A67CB855EEC904386490A8C93A5B -AF09BB88A01AA220988796FD9B974E89A5B59FAD2B3936F2A75F0E8DA5C03DD3 -88DCF0BFCA43901D4347DF18975703643F893E314796B25E5D1D41FFF2CA8108 -0B1181DB70155D6CC505C63A6D7DF7D533720BAFFA1E6E41F04CA7CF4EE530F8 -F46832C8A4B753533B5C9BB5C97BD82F799AE52B0272A33C4003934C899D96C7 -84A5471ADEB37FDEED8F00CA7BAA8AA063D37D48FDBB0067D260D20F7E842A73 -C32DBE9823F83A56D253AC120EEDB0F9B4DB879A8D620704DB2C99163FF100F1 -7FD8538F7A20506F4BD54CCD24D4E662089A1D3A0D5FF151C6192CDA664172D3 -9C1F20CFECBC0E4348BB5D88D0BF4BE72F07B9C0737641CEFB7DB6F285A1353D -E6891A569402C12757284E9A93E1B77C1E58E7EF2837238EC0BCFFB06623FDD8 -9401CA0770F158702CEDA77E7D557019B03A5125372FFD5141582FED1023385B -FD27A8B645DE6B779B92E9FEB6C3A02AB4DF19F3DC484D92E63CCE22FB733AD6 -3D55811FA3BDB8E2BCA5AAF2417E70FCB74ED6FB6C5B43F5F96A3019C48F9D3C -CF5BEE959D5DD08C8694E3E8591434DC2F13992177B6F99FFF799A09623AA54D -14CDB2BCE9FE62DF68DD01B9C2D91FD568A408613E013667BD5EE2B47383F85B -DD54D1C8CF25652A5FC7B3803A5C6EAA15506746A44693CCDC4DC6A3E869E020 -D2FA893A63A719F0AFB8F9F8FD3C3FAA25CEFFD2E6F344F0D21FAA310161E928 -57C15E2C8118F4F8647B1872FBAFEB9741A58E8F45A4ADC38BAECBF8DDEB9F32 -E864D417366A6EFC734DD617CB13E191DE7FC92D554C0FEE8399FB580F3E9473 -E5DBCD1300EBA2DD843C95F0F62377BC064BE1046FC8E5B4F0466A7223242066 -83671470644C2F035B3FFE37CB6F58A61E527D63E043D60B8C515FA7E98AFEDC -DD1866776CA51EFC576A53FCB0FD8448461576D55445122B9D0440FD285F8B94 -726A796E8B6ED4ABF5252C8E0D33497BB5FA6E9A07F81DA77586F094EED9FA9A -24902FED4BB1CF856AC0C0CF9B930FA6164D569F2B4802EFF5B6527F8D7FFE93 -A907F9F7DF56AA4CC23125F165EEDB46AA8BD2ED6A8CF84745F9793A2293143C -1A8C4F0998A7CD4433230F1271987D8CCC2F6640368240D7E6BFE8F8A9DAF521 -58C8D9E8914B4C7B9F2B2A72A885EDE3A71CC550053F5BF3457FD93534F88F9F -239690925CA1785BE43B624A00FCFF123E43047951C51A000BB401C5E2FBBF77 -4F725632E6FC67C64E5ED6FA95DAF0687424F94EFCF97B72CFD6316F7A19CD58 -275E600EA4F13191DBE69745885C8EDFD206C5BB8769C8CF547F9549A22F0409 -3C638977CD2D9768F77D363F2D2112B1D0BC918CF84745F952D271B1CB156A83 -82AFA9670E4B3E66A9A45DBE756BEF66C7A29C8C89ADF7E3B766F16CEC8E1B99 -626BE9AE136A78E9A89A7D2D077C01E3DA1D316800F859028CF2A4689ADDF0C1 -009073513EB0306F6914A9178762E0E9E825211351C67E9B91A081771047639E -516F6B12D01EDA4F967A91BCDBC67B55AA74C6FF54A2FBEB2F2C19CE76E3F173 -ED70166A1D912CBAB7882517ADB1B6216B8290D54D993C0B70E8AE167209A11E -BBE4775288D61946C94882500832569AE45CBC885B8D6C537F4A6FA75DD447CB -5AA2831D6EBB29F8F7CC7A29D8586AAB176E63142DE4A37720FD9E37F09E9741 -730A042FC35B5334D9C490C78C66BA3B91554A0706770595B05BBF4C86AA1BBA -CD7A3D0AF0237F4268909EA00B16AD0FA8802ED22AEA1F697BFAB2708EE8EA22 -38501503DDE776A9C7273B8A0E3D7E7DD15C3D6267FB4F4799AFC48BC7024789 -B386CA202DE413F2E01ED03BD5D0D1D5B3FF99076B6CDAA89C7A0CCE0D09EC77 -06496B9A9C88C1EF3F824497A140962DE88FC229B82FBE3D07ABDA9E7E66547E -DCD987D91056B64792C7DDA0BFAD81E91C36ADAE4F21D793087DF44D7F5DADCC -34BBD2409E165C8FFA668956157C13FD6981AC63D88A49931A673E2C72CA9341 -5B3A0C51F4D612ACAFF37A71E728DFA18BC484EF8CC0F1494B19FE2677F6C8F7 -D5F7A91658577C9B816E76AFFD1F9E86E5891407B3FA4ED9FDD88E84ACFDD764 -42200A2FEF9831D9D3776B2573047B24CA4108E0A71F83110154ED1CFCB44DC3 -6D1ACC7FB2F695DD499FAE008A8CA7BFC5D599712B0010B739C5907AC069F871 -D278A21E252DE2E2CDB736729043213EF18F3A4148FB8FF037126E1FEBE67E84 -61CCAAA685669EB9E0CEA01FFD3BFF6D1716A45C6D45884D787D15B8D0C7F929 -C85FC6610BFD4B0C1A4A726755D485BC5A5A307E04C45635F05F6D74337A375F -2B330E4675D3AA147431B66C116C996A27E5FEA04F14A62222EAEABB13FF733E -878993645475F2F9BDE6B1E5AA2FD4E13EC030B98100C8908655D5053794C021 -A3DC2E11B77210BEA7D506940A2FDFD2F7D1CCFC294F6BA95D4BF986465C8B80 -78FBC93F860FEF5422B68E6A000D213F8A854B3036D5D60EFD339A0D501CA2B6 -6FB5D3F37A4F23F64F16DF01B3F31C1973E60ADAC1DA4963F6B3B58B0489E4B4 -1E6BAC48B17383C35082FF43720BA20CDFA532FFFB076F150B17EE8C58E27A9F -2868143CCD8B2E0D8EAC1ED6F2EE3AC85C3A293F9548F69808B11D80EFE0AB09 -A13B1AE202B8F0E643802C2E2600464B4BEADA5A2F5575A128584AB509AE171B -70E1F14482FD77BB899AC1AAF11140AFDC85CA54EFE21EC3DF261D166EC904CF -1CF201EA05053A214F14A0AAAEBEE0B8D9B2E815458586B8DE99FB07FE1A4B73 -47C316490F891A7F76361447E54F909BB41A0E0B91E435B5F5E92E127AA84194 -B47B7F6425509DA2F2F11C3849545C1856F5F959B32E7C187B1C480F65FCC153 -65C65DF9EAD804820E3EA361753C0D48F7216A36DA1752EACF3FE5AAC9BC5B12 -8926175550DE59E0B4A3DC1B3A6B3DFA8EB9920C9AA36D3D53BC57D60EA2DB5D -0081DF3BA8A699550EB2BBA928D6EA9ACB2AAE7033EB441C7ADD877FF4C4056F -9FEAB3B7FAEFFAC4B10BB121F0AA248AA6D6F83CE3CC265E195DDD6151192697 -B98DAF4BF0ABC22E81C86AD2B6ECCDD888313570F3BC9FE76D45D1D536FDC2F2 -4F6F341B03AEA842255AFA6D1B2F643B01CCC1B368F0EF82A2D5D4A09384016B -8E0C1C52B4F32DD75C0FC8E18E32C20F3C29331CFA8685FD411A22E076DC560F -1F37DA4C6803B0048662E11FE614B41D3E7F9AACB14D2E8F145328E9D7A4D999 -81F9B8FE82B59F1D2EDA95461B5F6BADDA8500CDEB07B2F4EAF64018D8B4D853 -C7D1286E50183C5B6CEEC9ACFF02BEE65EE2C3AA6BBF38FA62941FEF3620648B -678C8B29356256B7635C1437F04EFA6268A4678CCBBF9FF1787623730D2AD27D -A5E76ACD0FF2ACB9A57361FCD7FE655B97D5C388BDD849952C9450ABA55A855A -465FC9CAA2B9FF2AFC55478DDF9355299B0496E1F895701389CB90D27A193F81 -A0BCBE31662B78EB420BCD0FBA72D383885DF44B87D85B63F4D17FA5705537B4 -4351772E4C846FC0928672749A1A5D27D0514E3D197EBD10BD29874FF079B7E9 -D5DD1B5C9B785C0CB1C585A355503AF31274DD1B97A12D3520511595CC76E28A -ADA3D43AEDE2C97F90B0D3B1883D4ADFAE6E70012AD1FF8BEA791841A2B85410 -F426114F35CB920437931E3CE0CF0EDBC80E18E5B0BE1E16E6DA2D5DB3870263 -A3AED0B0296E94BF491E435822092E0FF556B462F57466551E07308B7C2CC85B -DBD324ACA2612B8C8D02952BEE23206D5D73F5F6E0104078E0B427A6731BB465 -BB277C0371FF4016B79729F4593CD57AD36182FE51DCBA880D48449E70221D45 -D7F515D8B8E6CFF2F40BBE8BB807644E4BFA8437A0C1E2A2594D2E81882A3746 -F4E9F3C905DCD2EDA8157E8C956A484BAB6C7EF3EFB95AA9F86711BDC576EA2D -002BD2DD3DB45FA1C80914B94EA012C2CB326C77DE471FD8B5ED1536ED84E4FB -DEBABDF2D3F4B18B891AF0E0A57F13CAF26EE0BBB8D21BA80FBEB00289B67319 -55A5945C06D71213B7124A9E7186E54480A1C8694AEBBF9D0059E49726D67806 -A8FF9002C645E86261AD11D3F46B6EEFDA628DDDF0BEC6DF72EF9B22437A13DA -F95AF287799D7294BFE70C75C5136E1C70C7A1CA16E5F9855C9C0DBB15CD65CC -4A74AE8942F3F5C1D5F41F8DCB963E0E814F3A97CF00E05D5ADF12145AA3E7BE -794BA735866995F227544E229DD4C900222E9D9F76FDDC7FC8DB78AA79D1378F -EB4593630F615DF51A859B888FDFF02BBFD06E59DD8B7F7AF0FBA98A022DB451 -158AC56D26F54ACE8943F7A49B33E848AAC6E330EA816459157EA1474477AFBF -EB0F3EBFD6B9B1C79D4EB28E9C64CC0F14C004D504FAE72AB3AC97DBC574DAE5 -E511261192E63D5FD3188FC846F0D899DD8EA0D0D1D35943FF562B76BEE74CF0 -A141E1B48FF9F8107647EC1814D76D9826B0554CDD8C99CB4F39BDCACFD715B1 -ECA8991E4232C9B5C4C01B72F39C79B2FB6659C7BB459B3F3935CF0908431000 -15126287A7B0CEBC255125E72F22B3EFBDE6208029DA674CC5B805DFFD61F863 -62AA7FCA523F0713782772B1F4C44C50ABAD90E92325BC01DEF9E147256680FC -0B3463651C415183F0A9D76195F81B73A5E829D58B52C7BBA1BB06CA92943388 -8E18E712115060705EF4B86BEE5898AF1A9927C389F0EB5C9F53E531A1F9302B -2B7AD17FC6D154411DA4E54164A1D4976BB9C452449967E2D0051A642B47B850 -DC7BA8C09C499FF9CAD8420F01AA14162650DC233B6F93C11033CBC329FE027D -9B37E958ABBE20D125147AA619051DCFCEF5DACF1FAB212B4E44D6CCA29127F1 -84FA5AFF25692CF492033F6DBAB9E536D5C18F23A534CF0406CE7AA0A8CE9E23 -9F8489436C42D36DDA54854ECD5FBE5EA7F5AEE98D06929555F96764F8F5D7C9 -EAD05AA2CDE772F2F45674917E8E21503E79A3C5191E68ED2A98554EE01F4BC6 -C5C3B2CE2E6A9F88534DD7DEEED8E2AC345A9C44C40EB676706202C041EA7864 -35C27C4B153FEE4862F1653C77BF7B8FEE2ADA8DCDA824060C8933045D8D9E63 -F0F69CD7A6F954B0A9E85F7C138F8FD486D92584FFBC38E223EF5FD4558D84EC -A8127E7B22FF5E075AD73AAB4000E2E53B54F8D9DDD43C7573F9F42EE6858457 -35149769ED212071BB9202245FB7FF304B60B403EBF1BAA6B6285C0B591D292E -1C4060AE684965F5EEFE270D5B6623FDE667EF39907FCA5DBA2C582847DED443 -3D1DF10CA8EC1B5F70062BEC4A7925056C036E87186EF573113C38E31615BBF5 -4BCE545B61A6A5D8F42F4E0087D881623F128B5FDA6E8EB090A075AA7A8CF33D -280AB71D5C139984ABA00A1E5238628F14DD018464715A98211662E4FC3FC817 -E741D8978F6E1DBDA5ABB133F58254941C5F35EA5266365F0460CB1ADAA61900 -6638FDFFEB15F269F5E6198DE6EB0273C9E67127511337A4CDCA33CF19E12C45 -E19C2957DCAD8BD625D8A2EC7E8062E3971CF64473E5E262F779707FAFF1B434 -38B22B4C2FC302CBA5FB6700745EEB2403C529A05BB341F3AF07C12677955E35 -BE7BC991BEF2B24F3BC4A0AEBAB6F84DB8F9D91327C68041799BE1CE104170BE -7F87650DAC79B191EE15E2A4BD69E67D092A69F6C1899172E3CD6BD8BB751A3E -E9E7340FAF30B562A57521F66BB47ADA29E6D419630F6C725D3594A9B2F91AA3 -9FA79D321AA64EDAC6755E67C0BF440A7F1EB5F19AC5BC90AA89E71776022738 -492FDA1C935EB8004D49F83F792D9B525E8F078D2B2A3CFE1E9641D862620043 -2DEB1D9A94CDD4B6519F0D5C05FC0A0D88CA37D2254CAD25EBD6A6D2EE55F29A -9AA6DC6D4078D2709678F2EE30A1B1856F19B5B174B9E24D58C49B4F97F9DB66 -3FEAF8DC4B6D19B6D80046ECFF48E9169E3EAD0894A8B4BDF9B9AF20DE83F28A -814B160E37C765A8987B8EF501B84F0F05D853A56031A6C258804A4AB72E9BF8 -5C4F3751355F4F3C087FE2D739C9D564C5AF2189609C042F745E807533C4CCED -891ACFA4DA4D65712275BA5024F81265A589BF19F3606873D0A43DAA91152390 -67AB6335E3198AE7759EEC131B284E57F970F6E95321BD0195693927BE46FB7A -F930D37730D31F284FF9223A775B4DCEC39CC2418EAB831727F61956D25C870A -83D3631DEC6DAB6E69BE84A2CA4DA29750E29B37DD1B9C0F4349C2A36578EE47 -8807A83BCF7931787AAAA5159880375FC0734BF290C1F206C90A1BB218121E51 -3ED345B406AB7B3571857135A36DF0C0B344D528CC6BE4A0AF9B6E8B0FBEE5F9 -3E6D1BBA29BDA06F63249087364D81063D085F4576A59955857428B801AAFD35 -85DABF6BD4E7929A26B5500888C9AADB025327DA99948D556DA48E8CE04B5988 -93401AC69CC6B9E1F08762D33249EF3F938E4771772C1D5A6801DB956A12E409 -EC8BAEAEBC8492175CD184AAF63CF1AE1EBD5142FCD911158859B7210D3D8DDA -748AAB8B28DBD425EB4F4C84BF25D767A1A52D19F4940B8E47F6E375A900EF9B -09838CD5763E2625399CD9ECA79BBA35473289091BE60159B19F361E690EEBD9 -01CD36E1A6E6B5267C70E0485437C3CDAD6BD9FC4B8B8D29DA28A730DBBC738B -751611DA36BD7562E2EF5F8239C403EB5DC2817CFD8F84715203327671419E36 -A04F0D543A66BDDC54ACEF5799D316DA2B1285241FA69E34E795151073557908 -FD230207545DE1FB62725C6E900E7D33F0E897AE58DA0CF3127AD87618E5B8AF -F45BA9D7E01711F648C7029AD181008B6CAE78861BF37BEE4B2062672AD87958 -9F0FA57635E376CFC12CCF17C18750339FA058AF585533BDF66752C4EBEBE153 -9F0A815B6D4D30C3C64D4C91FF36FEF4993EFF26CF08D366D8D95E8FE3F15613 -5586338DADA5F9295967E81DE02E184329B8DADCD5D9D472538EE4A43CAFEBF1 -E31165E8915707AB8C002F3D947B794EC3880E6251D9B6898B3B6179117B12BF -F49A615D657E38A25F7E2DE9A88FE8CA9526C35D0C156C30ED9712EE873951B1 -1181F197F9952C64214411F2AD9D96DE3E508108B6BC355B5FF2B65ADA08A3D7 -F27A2EBA663712EB49866414EEB2BC397EB6D65BF5341A77B1FF16261B06C7D0 -1842499BD48B0916CF918D4B3A4E73C20DBCE89B6660FDE6FD044B8D6FD83156 -1425FE1F267C4C623B6254AFBDD2EE08D021A31DC240F17DB6D911909784D042 -0EC0D12D743F356D8C3FF8BCDF9CBD49B512B17C3E9653CCA83DE38AF374FA0F -0827682E347D6A9205BA611B8625EC227568F823C87BEA48AB2727FD690A1503 -C9B4E16AE489008F88670793F6059A72ABF86B79DBE72D34F2B6EE0208FA57EB -922F1A9351B2F02F569E9BFD5261B8CDDDE3E9722FE0741F99DEE0C873259022 -A6C8090822540359E56D3D077E615A7222B7593854BF0414ED729295DA8E61F0 -71F646371F6B7C628F7C12DD12D9825146BB2A8CD8A82987CACE36FAEAFC6861 -A0A6B5045084ACD039FAC09273A3619DC9D3F16EA3AC87BC865A682926B5AEDD -57BD20A479BB6706FDF90823E1536F0BC3EAA621161CDEBAB7FA3562C08BF94C -84A89E4472FFE3DB47D01C301644C345CCB43EBC8C7B9FB4F2723BE4C987C8B9 -10769B0553B96492D2F74A321A4D47D5C733A013F73AD2EBCAAD97EA4EE92848 -84F92E32EB6BF7C59440A380CFFD4E30B660716D804C3FB1E544DA5C9DCBA601 -5F26A44F20E401CFB0746315086883F2325373E33C71D9838A14705FA3C13639 -07651B9888E9E5306ABDE3A5BB17D982C9859635B91EB8A73B5F710C42E47A7C -B677E5A77F9055350E1F54860232129E59C7F4C43A7E654F8001F91D205B88A4 -AD8C52DAEA28839F8B184D16207838FECA138105416CB2EF52E0D9C012110677 -DE8042420F848095C493995E2B60C009451FAB89CE596A87664502C9C370A724 -6C22FCC9208B1C8D974BB2611E3FBCF5049D1B2A807437DD1B1FFC6722380717 -C961981C6D853285C53D952CFBE303883867626435463D68C9A75E270FD9062C -DABBD7C71FCF0CE304816C18FD36D740CE9D33E494A3C5A03E432D41718F81DF -DE593767E3AA960F389106A77B879FF83476801D85BD76B3B92FBB043BA08E44 -ACD961F68BB3B1EFF42733096D7DE08722DC82396B643805AF7B3FAAE39D9BAF -75A78EB9D037B6B59776934A07CF3D4CC1FFAF8A26D8DF3E04A5A8770140DCAD -55957D53DFE2AFCDF6D21770704D62AD6DD87313BDCB753BABDB9B967264AC73 -0373619883ABBDB392C943437E552031441558C80F44F487B3B0496DE7E60B61 -C79C8A80 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMTT9 -%!PS-AdobeFont-1.1: CMTT9 1.0 -%%CreationDate: 1991 Aug 20 16:46:24 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTT9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -end readonly def -/FontName /CMTT9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 33 /exclam put -dup 34 /quotedbl put -dup 35 /numbersign put -dup 36 /dollar put -dup 37 /percent put -dup 38 /ampersand put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 54 /six put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /less put -dup 61 /equal put -dup 62 /greater put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 76 /L put -dup 78 /N put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 89 /Y put -dup 91 /bracketleft put -dup 92 /backslash put -dup 93 /bracketright put -dup 95 /underscore put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /braceleft put -dup 124 /bar put -dup 125 /braceright put -readonly def -/FontBBox{-6 -233 542 698}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E -2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279 -650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35 -F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A -D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E -F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1 -4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A -438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD -BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B -A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641 -AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74 -D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB -CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A -082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980 -9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0 -4BA1EBFAFDBEC531EA1210365091671CE3C86A6D4BC591C37DCC02570042575A -9D24252D6E01A8603753934D7EA5CAC1BE4E5AD2BA047DE8F3983B23A8A1511F -B08D373B69E5076CE4300137B8805EBCC0AAB89BBB312A77835795E3C069322D -42C893A30AD739E2BDD299679B158F7493764F2321E3965141B5ED1C6F4765ED -F46D391A646B30C90002B1C461AEE79E5F094CACCA656CEA3DB921CC5205F328 -A2C69F817061D6C60B121EEE844CA5008F23DF08D66E248C339CE7776CCC524C -8CA2BD3DD82DA10C66125257C1EA6A0550766E29C3BDC8B5B878A4D35B5FA0AC -1FEB3A038C1B92A6B625E7B2BBDCBB2A97CD92E29BC5850422A7DF6E7CD72722 -4096071A3AE383E392D6EC8615239B9357427F1CCBC396AC636B1CA66B232EE2 -191F60A878286CD42C95EA5DAC1472E81C3F47B0EEB6BED36ABBE143596BA7BC -7B41F903F7B22F5C6436B07FC8D91DC8B1825CAF3388A7EA9E7110FB8560077B -B2882B7B2D513C6FDF621FD23623EEC2D861F810CBCA5DB8CEE2CFA8A2D5C8AA -DA59EA9C229EB38B025502C5E625DE3816B77107E5967F7596857676B6F4E454 -55654BFA837D8FA0F4FB214ABE61483F34E2DBB95B60BA52E0ED8486199528FC -439D000BD1FE0CA35B39D08090E21352A08F54641764153C8F61CF3A1A4FCB6B -F4046AB159484B2F14A67E06E7ECC9156E8006922FC5C398D6CDB34E895245BE -9527D1AFDC844B35BDD6D2DDC078475C130E24C0F199B0416B7422FA27A0931A -1FA6805D4D60AA052A0101BD911C0DD25E870F0CC4226C4C36D6CCD442251B64 -0145B3EA3C2C799001B7AE02CA3FB0CFA545A4A5147787C471D01CE42B40F73E -4AA293C37F43EDDECDFE3FEAB470385B978E4369AFEEFE6F171AD5A4F6573EAF -F375A89F9F9CA20FA45750AC1F9A067B8D7DF6A044D9B1AC1CC6AE2A1F15250A -7C99A150FC7F511BEDC3BBFD64E5793EB558AEF72D080B23E71E1325F3245674 -AE7AAB0F4DFCA0BF442ACC254F71DE3F7B135EFB1B41308310309015E01AB4A1 -0E491A0D4C1A32ADF4786370E01457FA9DD7E915782D6C7E1E9DA7A67EF43F87 -A4740C18E53BB87D1DDDB2752B538B7454B1DD65669F0B395683FEECBE05103E -347A9FB9C98DFCED99D7A6879DDD1464BBA5095600F7CFF34A18218FB7226742 -8394DD5AC37BB6BDD22E952C535FD3F9547A01BC825A2FA8109068F05946C5F2 -EA9D9D01C879B44F7BAC40C94B0094FE58C1F6F916E48DBBAF6C72C0B11E6242 -C65173EDE7CC47B8AD3DBC74BB64992953AC98ED49B4B46CA94D223E961A962B -8A184D2CF2A7F92862C6E0DF6CB00D30CF7FED17FEA42838A3F81054A472709F -F3F002C5DD8DC2E7C4BD983E18E2676A81F85A65DCA00012CD287D6E90E7EB48 -4DCF789DF363D3BED10FF8B9B31D9BB8CABFDF91C3BC8C5A9071F4AB2D3B1840 -FB9C52292B108326F11693A29973B42779425D084A3FAA4F43DDD9C07DD357A0 -CFD35A7B3B6B14C59A1594B797EAE5A3FA54A7AA95EC9ACC31460AA17F61CBC8 -DFEB44FF91E0E144FE12AD252162519820F56A157C07299AD2D715FB80522A6B -AB8CF919FF97FDCCCA74135BE8E7E5413EA32DE85CE077C09AF90EEE7D78E11C -589C21B9099F7C64999720AEC0A18123FB67747F75129A4D3F1DBADEC948CD18 -7E1E2FFB400CF428A474D305B0B831133FAAA866BE8205B430C3C94AE7EBFA33 -198952E806DF8F7C823BDDB54677BB57DDAA389FAB2FEF8B89366B312AA6DD03 -7E3A851442FDB1BAEE81A154A2463DA78FC47D10BDD6F55A5B74893F188872ED -27F6CFF12AD92DD09970B995C1629BE5BB41CCDE25C2857DF45AA650083D9965 -F65A2AF700B3097C1AAAA1FC29C89DB9186E50BA22F8FA0D23591B50F617AA62 -7CCA4D77864FC4AF401D4B1BE16BFF00385D89656E347C52C12A33EEE9FD0911 -95860B53F18BEFF78CC0E8DF76C654F11EDF2527F577CBD196EB8804A2DBA13C -840D15845E120D5B8C1A710EF6CD01FAD157B94BC2D876C560227F734EB795AB -CFD47FCBFA12E0C281147A33C80CD1BD8A1C11FD3F235D366D367C9C551CC1A8 -3EA7AF1D7649B7A6FFD1BD8212A00946935D9E877FB24636BF573A5C620B3156 -17C914386B4FCAFC3AE9FDD1E332D3EF2EE5305B3C01E4BDB9E3528B71C40B82 -003B049352A5B969A8060FB9A86D2DDFFCC4BD41A556DF57C23595F9EE6CA267 -649866E117666151FAB8B2DB9AFEFB841A261898DD1D52592CFC0D1180B1DCBE -B7BF3D078CE3F0C78999CEB964C2E6647341CE2244399A304BA1F90BB164F7F5 -81F0A0221B3F71114C7AAB265DBB3F6F79BC6CF1A7D7CB11BC9AD969416FDE71 -34EEEECB1F7AA5744D6728EFE7FDA19EF74E5238AAC1FAE762797F4ED26C3F05 -2D2316A5F815F8BB2523067D3AF16652A75A12C409B9BE9416AF3BCF4458003E -F1922C60F94DAD2C549ACF20C14221274FFAD230B1B981248C42876074DD8B8C -9D81A7FDDA6BE40BE0787E3120C4FBC93A9A39BE4C17164EBA33F15BCF042D0C -37BC7E678A4D9DDC9519A9C37384383A20AABF131E44789BD4CA9D56800DA323 -8DEFADBD2D6899603F9462782F37930DB52F28479FD84EC7EE877E879987CB39 -E7133F429806EEFA5974E2D16C934353FE02127954BF71B1D1A09C513AB4DE0C -A0D9DACE1E8D361D4747ADAEAAE6190228E9EF1DB43A99F52DF26E11419EB14E -650BCE54E9EF0DA7BB70567B1F7F441D07793028FB52A3E3C561B8B3B34B3D62 -3595B9F44F4D74F756FB6B50E0BFD47585BFD99F76634890EF314713383776A0 -C6F34BE7E339B949F523562F81498175C93F635B1747440999E60041A2B4744E -B8AD0C1BAB9EA47F9AEBC4A5349C59EE5DAE4E6146C184DDB0BD1EC9B859398A -59CAAED3A72B8AC998BB5F51CDFF5A520AE2C36C4CDB2BC118663DC19E6E103D -ED641319D3BA89D4702C56D9FF61F3A93E4DCEC715001E46690D4F184B83BBF0 -60B969BBFDBB3F83716EC1480F99ACE4F02209F50AA768209911501F0F2F0E87 -48D8F3C7340963A0C8348FE3955B7C6C8614ADE31305C388E533D26690004ABE -71AC6D1213CC084F5AA4B66E261D7AC2F16DBDB5AA2F985BF822B23AC30AF0D3 -CBF4D94DEE34515596E3E605CCD98A26FF07603B4A52B6A808F77393BC5B9DED -620F4824C031942EEC542BC26EE06BDE40DAA2AFAEB124058FEB5ACE034D681F -51C3735D0BF340444C793BACAFD1E3860017B164697BF118C1FF5C124B88405B -B5AC38BFBB861A2D076B275CD0CC45504A1021411A41B9B1A3AA413BA9D82BBF -3022DFD0A1440F2D58BAF9BA6BAD749766900D83368AE48BC02DCE12F6D7CDE4 -1FBC15A80D9E7B377E874AD17C6364F0621B4AADFDF5D90A374A9404FC57055D -6A138926E75E67B9365DD3D95B6901F50FF465BBD813EB646EAC09BDC2426B35 -EF47D338E3D9EB7340C381FE1DD8E2A5F6E1598618B64DDCA43D33858DAF5095 -8A92152869F57DB7D548CDD16582AD07D5CFBBF4433CC3D487EACCF8784EDD80 -11D3C3054FDB1F78B0FA879FFCC99DA15D4E306AB927BE085AE54A896F6CF3E9 -F6689D4AF2A88C7024D3A89D31D024279612A829443BF35BC4F76DA05900B9B5 -078A7B78C9310279E3A855465731514C9CA8D643E5845873A6D3607F8F0D3625 -C8939779E756B2C6FA565033C8080226DE388DED3C989D5BAE59FEDE462591A6 -ECF9B40DB08A23D764DC5284CD8A04B8749374EC1A6A6732EF0C9852700F9436 -5D9FC748E459D13D13099FC7D74A86D85A18344ED6F7965685B3C54683821EA5 -2EC0C8EBC5188FAEC520B41D4FD68D7B0C9E3A7C3BE7C8229789697D0B265F6B -5A1FE82AB672357087C05B62FC06DEC6C3465B17B74D40A30214FBEEC649BA7E -45D4B8E9F2B7888600A16950B9D5C6B6F5777DCC97D04588FBD845F1C9D81189 -E61BA56AE99DABF99441BF2FC45E243415193898D02C0CBE119FDF863921C2C0 -B760B48C9A1F6DF7176813D9E7BED2F5D27E4BBFE9C27A4062BF99FAE432470E -98A2876BE53794FC7E3D1F2ADE2788E51682C37503A9ECC827867ADEB4C80227 -D9D8E23C8CE5DB56AA2406C117768079FF0DBABB3E5981A48B8A3E3427BD8F6B -D894F93F5F9018C23BDEB5F4711E87FA5EB142340111A9F7CCCC030BFFFCDBE3 -929A6BF3300CC9B1D79A92C157824E4A575793AE56D27135676431FB6596DBF2 -2A13C8F6E6082DF56F72C7B1E7B90ADEAE663A4C464E4C8C2B2F7AB9F154F942 -D573C87460849635FF730A2BBC479DB662099FEC948830E4831D8114B73C4EC6 -65C61679AB531A0E92967C6B79F711D0EFE29387EA15C379D5DF6C199BCAA16E -0EB5EC39EC280B03A6A3DE9CC87FE94C708EAA00CD4A62D9AF26B2CBE892AB28 -7ACFF0B18CB1F0455F8389F73C0B490C8ADCAEF476D9E0EC941AA218B2B9F92A -BBFC310C03DCFD06FD5BEFD566C25928B358238811AA9CFA445FC1B6600AE532 -657A163F95E0BCBCA9EACAC62E401863EFBEA751C9074D5807F8BFC15A304993 -03939165D2F52B3915511FB7E5F231F26D6C7A0D4E769501729EE55C5FA626F9 -313241440D20C0D640B3E7A05DDDE10EE749494840467DC88922253CC4B4B8B5 -11C5B308BC3713A40796E4A8C99EDF166B54E60493DA4A2C360F57E81ABCCAE4 -26B2A2E071B63C45D9A6AF034680D81480D85E10C740CA5747F506DE3CA3F489 -73FCB5CCC94D5BB0876A883D65A47B05C957A68F9598109B1B00EFE6E01678AD -354F37E28932D02D7F2C54D36945718C9124FC1515D2BA0D25A27084A7421762 -4F2B12AF7B9EBBD0A88E6EF38260FF55C14372DB946E551A6D6A967B008E6B01 -5A1DCCD8E7BCC291D8B9C4DB1EF72D50190372EF58764498360FFA1C3FAC6C54 -B95DF69F65A1807B61EE31114D52C637100E1177B0DF94FECD235B615613A63B -CC71FDECA38E42C165664A4F2A58F6D679308401563AE85A4A1449B1F5AFD565 -01E6A6EFD36EAF126BE1CBDDEC2B1826A392BAF6141085FBFD78EB36052849BC -83C05E4E3FBA8E05E7C979EF87A32DD90B8A6004200BBE75FB1AC49106FD1C98 -32E3584DEF229A697E949F1FE8BFDCF59C5ABF9D485442A0BD63967AE08174C2 -82EEE7E97BBBCC83E8FBCE6A8C88A12C181724101C564445F5A9155D8005CF69 -4C06826937C90D0AF736DBBCBDFC70440144D8FD8BA4896910B0DE1365602475 -34763A813F162FDE38214C67F2E87D71C621B26B4FDF379F11F1FDE4668C61F8 -8A65E918BACBEA12F880459CB4D64F3754D703C460C1FEBF0A8FD6F58F5DDEAA -93D761AAA91B7957D2C6B752D6FF38D312857D47B675FF9B39ED7D30662D307C -95181DC677A83B687C8A673EDDC45A38B28617F50DCF0D4E2373BBF98197ECC9 -29E5B8F3587AB4EC00B9EF8F0865154AEE4CE96DA350C00FAB8BD1FC903F1E8B -A4AE1197806FB18DE2A46F66D2F6A746197D7CBC32A8E4C53B249AEB59908F37 -AB12B0ECD227ECD96B19D6553C9F3DA83EA3EF4901AC8374549D23DD91E51D17 -BF101B4D643353D27C69C3C33BD6EBF84308CABAC072F8241A1756109D22E11D -CBB8CDDA99D0A42FF721F3AFFAE03265B08A7E2E41CD4D4B2645A0866D4ED93F -911455D824F88C670BF0EC07AA14A9F056A44F8FA2DBCC09FD3E5DA478784AA2 -1909B0BB1AB6565217E0E3AD4E259E1151E49D95DA3188D2EFDC650E768EE9A1 -33F41022BFE0390245046253346B64A292409EEC3CDDB0021FD4AE37B4051250 -2217392D095818D11F927A115F471017E453D7847346DE3FEC8BCB91AA59A155 -772ACD9026A2A93B91DB3A6C4810DA77A37CAEC8517DE28ECEFD9A876494E8E3 -BDC15E6A5585D949098B1DB2DFDE09CCA8DABEBF092121FB9148BBB04645952D -42079D0DDE13AA59417B484DAF6C30924FC393A8F0815A65AA5989FF738B89F4 -AE62B47D44DB067CBCFB9109E3C24C1DD84C3A581554E2014F3E6A57AC7A26DA -221866593BB54873745980EF42161C4FADDDD71D4547B69F7F9713FF225C9A4D -077A0BA2CEB8E67FA239C764ED4E2CCF8A8414E7AA936A03CA49C8263CB62A41 -3A312CBD817F90C5693B7108E1F3EC3CF0449109936DECCA38E22C15615182EA -5D8E9022AF754BF994D4C9485073392D6F7262C27BB97A0CA68DEA5313CB7B26 -9E999E6AD6A2F30FBD9BC8C61B04391C43EA4A170CF68B4F5AC71D2017109943 -E1568B23EDA8673015E0C5D8A31E933A0F6897C00DCBE5B796DD82B942F51587 -1605982D47DB697EE1951C79C1613B9E9AFB90E2EDF66F9024C1CCA694764333 -ED06424375C7E82B268155C4CA52ADB42263F6648BB5BAA416437427E3C11C21 -D76E1E07630EC193DEF3DD9AE9800F90ABC9B3F79136EB2ED48E145E3FE92B7E -F70973F206BE138A402999E2E29C570DB2113BB507349FE28BFB0DA21E121CBB -14302D2759B3BFF2B44E088EEF6ECA611CFD782E12986863F79308E075F2134F -30F158FEEC371D23E4ADFF110EE78D7A64F21F944F2D8ED8A15BF8A6FE9CE084 -438B244DAE336453662781AE997D62B82EA487F8368F333DF653D6B4627AD987 -30ED43E0402785CEB3255BC003EF67249E22408D312B862762A0E73A982B3976 -1BD5DBA538A3C510F1842A224DFB000698E45ACFE6D701D878CF5EFD80345D32 -3A1C7481FDC1ABAE47B873B196F62D40EF426774FA25F8222051F762FF8A6B67 -1F6E0ED8B78E36EC1F004F24E5698DBEDA70138B12F4E05C6E6738CC84F385B8 -22D1B4900160D9392465937BC948A1645E4D496496051CF45D950A1956F6A00E -520E2099332A0619771E12B2A6D799046E4F4C2D13D4DBBF4126EDA1847FBA1B -7BDB0EED2DF4785B7B3170709847FB045833CD9306F2489B813FA5F8B750CA2A -D7D620A5A425E21806FC0FAFD5E3A2FC4BC7C8B06DF2AA526226BCCAC341A39F -685F1FB0168AD2E8FD34F95925D0F3DAE06CD5B1C460E9F199805EBCE3FBE201 -F456E1B718641ABABCC92120A62FD45BFEA79BC873B37E88B84BBAF02A2639A0 -A7F190B4AE11A3DD8894A726D33E3B7757022B59D5D3B18A49A4C3322009A48E -2D9BA8E9636497C71A8C713DA6EFFBDB98D98B9857B9B19AF3C65BDC33C8DE0F -74B19789E802C9EB7A967ADA9AB8364034651E1CB0AC24DBADD6F5B9D59A0AF4 -E5B6BA95D1E1E0148D5120F3C19A572D7C423EDBE56C6433B486E831A386D132 -3A5C09AD801260C8AE3243B681E12961A0991B876A0FF1687895F0A29C19468E -CBE4BD85E70EDB163ED03660F59135BABC9B1E4107D613931597B3CA726B41BA -19390550FEF7472581F2700C4CFB09FD3A56D1B087210CB9F914C5F9B090337D -F39E009AA7E105964F551DC7DB5126EBED6DEE2CF0F13C27FA695AD4564B837D -B7E1D1D53C1ED8EFFA3CA0E42BB53262113EF8CF1C2DB687DD3C42551BD70961 -481735DA76956069648F7DF7876EB0562DC7A1DB0E5DE973BB06C1CFB5E9FF79 -5E228CECDC3EEB120D6B45077E46608EBB14C7BE2B7FBBB79E82557D6CB8B3BA -E4DB56D90F999929C695B53A9F9F70DA04D0717A0C231952E9B3E276DA4A3138 -BEACF8543564074254AA85089688F29B4A4CA38299EFC6DBE25D17A17FED4A76 -2E827396BAD2E499B0CCB9802133515FA9FF61DFBF4CC6857F058710ED7E2DFE -51F127F90F32050BFC3622027BC0C18E897DA6475B898B9D5AF15B4D03C96227 -AABEE49EFF1803D8B4A3CC0D6C4D36DC5B57EB3B83E28C77DB05DD56E62536FB -D998043AEBB0C17175D023646712FADBC23BDA28FEECF70A9CA6999FBA5E5C8B -70D4C4CB9C1A3E23B23CE5BD6AACE1F5AC0E4E6588B4320CDE9A4B1B8C594736 -2EAC45EE51200D3DE033F5D0BA0AF2EF4423ECFEC1622B91EC584875D8FCCA9E -7D44A26037DA5476A18109D33540C17CD4B45D900BA951AF213CFFD275E60FD2 -D47ECDC7B683EB4C5EAA684BFE45F37D14AF46C381CC8C1103E1924C108F391D -A153E15C48605ED0480780B012725E9B50E1A8FE6B7D2C656E33F48A33442B0B -15A62217E06D831B7237EA49D4C05C7CA6C2F1B3C3A98B6CBAB1FC38ACE8922E -1F1F699F43528EC4E526FA0283895D26390C37C1550C5618826F7BB2B7B45BBC -8E69EC037100878ACD5D0ECD048D23B5FD06CAF1587AD3E60099790C568E2727 -B86BC7E17DDA26EE8720C2AEB3647E3B0B1D986CF8265F06ECC551AE7CAE6F36 -352966E41231ADEE5D68D30C53D41D7D3F50359FB7BC060C69833A45142F1671 -C23AA2F19074171DD410A722F04FE927AE9858AF0052F0C28B4F69C7A7AB491D -D4C9C20169E6054E1F531410593F9BB69EC909F0DD314DEECCDC4F5ADC192A34 -3F7070689FDFB32AEB5B97467197FA73469572BBC3E369084A8025847ECBEFBE -4D475FCE09607CD06CC7F5608F30A164BC5EA08773D3C57695C51E7092AA4781 -F31E528AA8AD26AE6960BA7DD023C702E482715CE85D353DB4C140F6E81E91B5 -94531304C73AA8627B1DFCC0EB47C7A888060888EE98CBF1B8FBD9B4292FE50D -79CD2FCA83D498D7168F63360F3D5D4B7DF0FAAFD9E745EAC81E78FDDAEC32AF -6B45893DE552A4B0EB52CDDDF539595D8E4DF0245C05596390D6E8786AB4C621 -7B82B7983403153FB1AB89333F420A7004C9D0BCFD1E576413E97A40067F72B6 -1A1F84603171F1585D1A70131235030BDB369E028C3BB8B35C23541794C14972 -B06E912A339CB6D6562711F701C8C8F8A97D93EA8ED440293B61012B4BE52172 -756698BD042717A71EF3DCAB935A702C2289A94484C8A9FE08FEF74577949685 -46E5409509717E9647BDB4775DF43F65EB75DAC23B59D70CB39C907FA00A400F -AA9DF6AD2B4DDDCB7EF63C47AD093E14D4C54B0A903A502EE81F87A97D81F0D9 -865595D8008C868A0DF0364810A50276FE89B09F8A64FA698FCE50045FE582E5 -CF8AF80EEB0DD7D5C3E24B30A3961BEE2DF6CBC7F2B957C6C93A8B6611D25BC0 -830A1B9CB6E5E964F39DB02E0082047E6AF57BD46F92436A060B5ED47FFB77B4 -FF4DF28F86CD48E7FFCD2CCACC5360E06193D8FED2C27F58DA205442FC4F4355 -0164656094DACF27508D218DFCE80A644640E72F1FDCD55C22B2ECE55D74C002 -687C0F81904FF711AF7D0A4F70F72CD62F74A6B9EC78DF5F3A07002974701008 -AFF3F5CDC2C89444D13B2DE39CDD9B93C3D4E74DEE89C10496B10499D131EA67 -6BA50FCDC6C7DA2B3E94E26D3A6472376842F107D26DE7D137FDBA19B2DFEFD5 -60898956BE2225E01A0953082E5C15186779CE1C1696B92760C3BFA3B3D3C16A -196CD51882112DC5A89301A09458B50F605B904EFF42527FA57A0DAC771AD5F2 -F1F6900FA167808EC2627E60333EFD2E7E6DCCC020F88EBB43660E6C302B642A -E2AE157BF93272C3769C722809396BFB35E97BFB128FA3C3043FACCBA8EC8AFE -475434EEF95683BB2576399CABF929CC6534CC42A52E52925FE97A2C8CB8DB94 -B83EBFFBFFD36D81A81A7241EE96A298A428671C7D9873EB78CF0D9A6181E78E -7FDA5753236283AFE40D48D474D9C60FC71C065CFF66772DE7861225EBE41F75 -522334B2EC0F865E4157C50E0F0AC7D4F2C33348021C38107D0976ED3C5DBC01 -58576EE86938EAF1791CA39500112A3E89415D25F009710C7585E8870A291988 -353C8834D8EBAE470E2410D2C3CAEA110DD9A7AF0789BCAD8734E0A221006A8B -C1B73851DF9521C0B5DD4BE8C05C68B963824C417FE108A7D5006B5569D7878C -4788FA924073A66E8B4BF65B5A88B02B0FABA93CD8D1C7DA1A4F5976F20AA858 -3CDEB8E5FF91A265CDA61C2F5D0073D2A51E2B6E6BC4183FE1DFD928EEE25E4E -CB9E12975F280E9048964518DED9AD30E75B97DB4AA4BA6F9A6018A491DCFD86 -0918C75C818E9E8C6FC11DC1F73C609C71F68EBD3C142239E2897AA6D3DC5EB9 -081C49AC4A827F273F8F0B82BF19F9DF6BAB40FE15FA0066AD772FC4451F031D -ADD0F171C7E5226BD909E6DE76D5F2662DA01D2CE961A19A3AF976FCD9BD42EF -4DE7160373EADF50596EE389DB3B26BBBF8B255F14E3919B2082AA9F8474A37A -F71F9BC92EE15CBAC7372FC8D0734625E65406A11240594E5F9E6E9BE3D6F276 -D0CC1F4D1B48B0FB0ABCF467E3A8DB69B1994779DF36D03D956FAF806BF4BD21 -74DC674362757D3A0676973FE83D7521B51D24148F8F3143B0438038C6FB4F8B -D6812EB54FDE9F83F10A2AEB5CD0EAF58032AA2AAD7F55333A8728EFB6533075 -22F814E5AB848C4CF073CBABD2BAC21D1525FEE000D7B058658A380043C2C3E0 -4AF8844265F8926AE57C0532D68B86DA3ED7BC445FF523C35049FA273DCFD83E -E7262BFDA7FCD30EA039A49BC490A038C67B0353C91D7B5C904C24EF1DD5087E -BDFE503DD1C518CB774FEA64F9E18DA2BC74869067B3C17F2E34CD3E9F4B57F7 -243DA0925A39234214AFDF542F5A8EBD59C035628715676FD95A62C943B5E8DE -DB8D64063240EAE6E3CE0127C5504AB70006CD347DB61201E2339B7088BF8467 -C3099B70DC22FAD3D88B8E122818309D97CE604AFA456FB51D98F2CEA0BFC4B2 -C6C4AAAE38B99F13E8CA24F96B1A1D847B150911C97DFE19E541177C1A8CE22C -90E680C094ACDC4725621D5CE7A9130B66CC82BF00B16CBCA8E79D71D6D35ABB -2117F4F3C1B3115C49609BC383D1969172209C393E82FDA5AF966280DD3FE27D -F5F98308A8A773A04520BA6A949E109382D4A2B1A037913547CBE3427C222E0A -BFA7551129D42653FBE7E6686DA61B84B5BC37F0F29728D69A8B95A3D149D6D3 -FB7B5BA3C93D81599BBA5832E784ED4D42B9F034AC322B015D3AEDFDC4FDCB85 -3F2C13A0F3A69F7DD95B3B5856E0AB160B0EEF6A9644065D96105682E045F070 -1DFCFFF5E1D9A88767DCF2DA023F287204A97FF6828337B2E1CCBD4AAEA4106B -97F21F22D655A859114D76EF1EF20987B75FDB3E5DB0CC87910A9B4A140A7DB3 -DFE539684772EC2022AF3EA674AD8B3737E907AFF7DF226221CCE351E39EBFF8 -E02685F6061FFC09F74600D9898A4315E57C0212632062A40D42BF22F79CC5DB -18C845A67880765B2C059CED91CE797AB5EE22D43236E2AF9BD11CBC7273D623 -4468E3FC1472A840AF6D5BE68F49B5AA69E2BD4D5AE9F9A4DAF964D08FB73558 -B9C585C7674841B166A7F9D977B52D49F0BF6D55F5375FD1BA7108F19EF4D5D2 -40A4E629FE97331F286868B1AEA168B80AFC20C5375F4E6D93F0FEFB5D871CA1 -A2B2CDDC44E619FAA1E108E5916816A00447FE522C5228581A5F5E9D8E5E973B -B9D5C83BC8B47922063F6B0C300DF074FA4B931D9DCBFF21D244C8F199156A60 -3D4F448F520F2552FCE5EC51BF9BFAE7D0F9AA5E874672BEAC733E96B9C6E7DA -8FB807E1FD383BBD975AC6CC76775FC11921E1CFD000B01FBC88A782C799805E -70774646F44E55151610EB0FD0FB27593E08E756A7606454398B805B1C67D988 -1BBD89CB43BF7E9DA43D7C8F38D84A9AF3C3C91BF0417F99A7DFAE7591A8CB65 -92E453C60BF918767186539FD915B783C4F7C29A013DA911F90722E752D8FADF -DBA87CE1688C862189DCE34CDB060FB7C98E4106230471DB0FC69342C612C13F -25853367F5803845B2072AC9AB9BEA4561A9B83BA893A73B6B38AA358E8E5AE1 -D7C1F434E54C3852D68A3BD08FEA6BC21370C141512F71873D2DE495ACAF31CA -8F94D88B44BE5F5C928D2D89652BAC1153F9813F8DCFCE8A295E325462F54CE6 -EFE6C730C317CCE3EFF2A54FE193195911CE7373EFC8BF3C6E00A000F54FF4DC -94E1EFA27ACE95A6E67A40D63BB97131E21EA6BAA8FF9664B5D717A2746CE267 -3FE9E16E4F99110149B69A90450C308D469DDC2201BBC5EFB184F8CFAD7B5938 -43A825E80A35DBDF11F2160EDF77AE0EAD03E3CCEA232E9DD5696142547A95B8 -0E29BFFF4423E868170FBE9A6A5172F32D01A27F2925CF27864D8B6B0A0B0ACA -396EDD8AEB5DB7783A81C6EE3F666FD8499F4C1B6B00C4E74BDD2D4E1A0E4C63 -70BAFEA2716A06EE030FFE753B5A61DA294EAA26F5A3D3F7928A0D711531D67F -AB02F4CC75E959AC1508DBB369D3389EF94524CF8A28B82585CB31D08DDDD864 -E32EE295ACB868A7E98327EC31BC5AC1968CA83F50181E5839407E71C6709AEE -CF87ABE25904774E406009D99D1D699A5240A7059AFD29E1C65BEC20766CCC35 -461693AED9B8933F7C49B873331B38C2D79E8834D1EB0BC98BE62663203FE556 -F62F2722010E27409CCE434721316C542DA6559D6034934941DCB4863A1608BF -E6A1453A072D63593956C402FB88F6A725DC3DC1BF293DB990690CF10C205EE4 -655237FEF536B7E50B265FA0BAD862CFE169C0FC20617D4E8F2D6AC44FBE0CC4 -91DB7B97D9FA161522D4BCB26E9F5935BD289C1AE6FF0FDBCDCD5BEAC882F599 -0649B0CA544B6A11CD5B4F54A865CA1FC44547538F0F8E8BCCBE967ACA3F9EF4 -BE3F8EE127F91D8A21E77C6EE195F1C1B533E581AFB96BAF7E4F8C1D653692FD -D1CCE4AEA7936ED61832EB3ADD42DC4048540E84A6BEAF3CC60320EB9978EBCD -30D777C6AAA5B2070DA92A3174F8D08357C4272D3E3F2DFD06256C96B93C4159 -D2A85A2AF3AE136D0FF121A0481550EA1D4FA295F3C97BBEFB9AFAF392750483 -C7F6F3BD389EEB987341685C0B5E5B7166D445A39B0E5ACDFC9D439532C4189B -38E60EA5DD78C234DAE0C4A09CE81A4791854B44A0BBDA49A1BC2D8841830569 -845484C8679D18008C7B005C21DC9E1C07E6D0D706F97A377363CAD62F6C7D5B -41FF844474552DA1890427D8212910C168D3E2C3ED207BECC366BFFC70138F10 -5045CC71FB0B4F22FD94222A84B518A1CC27DD9ECF670367942F66F286FF3BEE -7653EE17D950E818B966534A7237856C4D3FA8DAA5F9E4BD49BA505D1B62A123 -8819D938659F6EF9C95B7E8635E88DB4C551AF5C403C90CC1784E704F5A48547 -E788B0480C9AF7538821A643711657F27EE34E27EC499538795494FF6164C31E -BAB6F5D3B94EA0713E743CA27C653E4B59EA44CE34BC94812F747E10D9186EEE -19504D8F0FE8DBAAB72E564632A65897E3AF20459CDC0CBEF986CB9A246CDECD -8EA2554B87F4B756BC31E38429F204279AF60EF12D9582E23DE56F6707A134E5 -FD30DEAC29DBDDD2982C68B1C72657E3E79F9A4B767B0EB99EE59B9F06332CF1 -19C60DCC428C3C02EAF49644541DC47BF07B4DB3245A0657DED22660250FF1A8 -1DB95E016E1F384BFAE0662FD0085F8E350BAE306E3C98BA8DFBF67FD4C8B51D -83686448603B52941F65E724EBBE33E33EAE5F4FF552476B8A457FE6164F2B22 -6041571E6E7AB0A5DAB29089102E8D9EEEEC7DD724328AAE8092EEC4C9B287E3 -25627DF5DE5305B4B6E20B2A52FB2EBF8A5CAE725AB39B3A51A5850C975CAEC0 -047DBB95267154BF392094B346ECA72D44F98E1C52D963BB7108A332910AC443 -E1E045D423F4FAE2DF02729100AD51248DA805CDE316DC88EDFDC8446F2AA72F -E63471B713A48CEF2453B39DEF846A6D1A3643E874CA9A0D637CBACABC8C00C0 -D6291898F8ABDF16D659EC77342E97FEE4ED63D91E78AF49F24E34CC10452A8F -BEA0F4B319E4A46BD76E0768248E258117F8B21CA8B0192BA8EA6B65E35BD363 -05A5895CA6245C3F04DB520EDBCC85EB2740F12C22ABB9CEBB75045276D3EB09 -6284A1CDDFF8260DFF74A2CE0D2554D58E158C29CFC5476D601555059E78A4C0 -9F79557F33DB45F0D94F80AF962F6AAB65A168F7CF2204A06713A270FBAE1112 -4FE694BBD566A63C25BD78469629D6829695AEC70C34122B93E4AA7CA4C879B1 -2E03FAE5E5EDBA36FB0909E6B178E27CE4353D1595AF6141C040F8858E938C42 -EB001FA14B598BF69F5EED3BC71D5F1325142EB5093A1DDA7FA530E021338E0A -6C505C730D51FE32F13ABF98F6DF645E206800860B89713889936FC1EE2F1B39 -20F969F7FCB6E475875B234640DBE7BFD86EA9DD30EDF8A3994622BB6CBE8F41 -8197096760A7B1B5D10C4BE5EA819326D196CA9D38ABDE0AF39E5F87D6CDC811 -A28A364C625138874EB95F5C30C7DA2B1A1FDAD77E9F8B0C5103D5835AC0BD44 -9FF8D366D0DADC5A5748DCB116C9A5518477309E2D43B5003B1D5CCA381804D7 -1AF5481DC5C0A3CE7B567221B2C36FC8B76C354BD2E657C9CB148E9CCF4BF0C9 -93F80370C6CF4DE9FF4788EC048BB119C7446EAA7FFD84664AAB97A6D40CD62D -C6ADF39CE276E8AF03B5761B43798F94E533041EAB2D2A96FFBC7055BDD2174D -258AA669144B82B311F95FF4C93F7E0B2F5096F3D8C36778B2607EA1760A4520 -E4857196212D2876C4CEE25F13996E0AF1A02540A929DCE5D98795C1736EEF0B -18818E1C2E66D08926FBBD2E97F11413B68DA4F64CBFAA0B43F390AED30B9739 -7730957A5E38DBDCC931E573154F5A682B20FD0F6394D443852A1E36EBB50AFF -D88DC6C3D47DA4E85F67CFF6C252B562E629F144C72F749C985B6A08928103D4 -CC6953FB922996ABE48E73EBA65521C5D73962526CF4864ABAB4FA6468EBE492 -07151A1CDFC73C02648343EA15837B3A4FF593425F8768C9FAD0EAF946FD18BC -66672FC3A66205BE6624A0E413CE2748603423D8985913D70C72D1AF7A82CFD8 -4D61B6B5164E6CF74CAAB55A8BFC1261AAE1548E0F4C24AC9CB821D5AF73519E -EA2341356FFF0ECB3E993CE9DADDD302C9BFEC9872C7CD287FB2CC30FED276CD -D911A9A265D2712D9A0F79EC15BFBFC44C1BC5E7D38D81F149E2834D82FA9990 -B363BAC070D49FCE6A8EBF1808DD99C6DFE1FA2756278C2FD59C552764D33876 -A90FA5912BC089989D72C140D0442AF025C9A05A37E229E70491629116CE9A38 -546BB24C45D02BFA35B5755D12B5A3305921EF47BFFA4DECB75C075EE47EF767 -8F7F6D8C04513202177390646916AE29A3A24CECF846713D7F9BC04FF00758DD -ACDE363C22D32D0C94D45E93C720A4604EE287263C71A321BBF2267F97F25E9A -489BF6C44B0ADDCF0389612E6712A29ADDCED6579BA6AB7A0DBC2E8AF22D1588 -D44201F379F11FB5F45A7BB2AB8506551ED2CABD85CE925E0B48D9D92ADD9637 -99EB1A6492D08DCAFB141EE2210197B65AB9B94B6AF31ACC9FEC9C8F7B37CFFB -58A804B106215001E27B7C6706066B0192ED57D8711FF843245A3A8021E3C8F2 -72337B6F3A4EF86788526EF0B3220215E7D5DD384F2737FFEA18CBF2A94FF79F -07052113A86A983E151FC8465A600685B4D67FFDC7F826EE63606EFD47DCBAE6 -B7A9F5C9402660BDD8F9272FBA01BE54CE42CD1C5153587A933E0DD3BF4D54DE -4057EE62A74A7273A927B3D26102E8F2E9E84750FDAFA69C70BD91D587FF4D8C -FDF7E0524837E64CE6CF4FBBEAC12D846083C4A33207B3CB03D3AB7CB3A9BFD3 -EAA32C0F4C3ACEADCAF16D878F6CC728BE6C92246B9108BFEA821A36591EB068 -9882B591C4509D98ADAE845F84D555E6D39F6713EDE2869C80672C26EAE8EB43 -D2D46EB80E930F4A05F20CB6AF3E3C4AF92FCB85DA8A75F425C41CC985353F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSS10 -%!PS-AdobeFont-1.1: CMSS10 1.0 -%%CreationDate: 1991 Aug 20 17:33:34 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSS10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMSS10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 40 /parenleft put -dup 41 /parenright put -readonly def -/FontBBox{-61 -250 999 759}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9 -D198C03874B5E6F8FBF4922065A92BC3E66D05DE53971CB1424510E892442858 -D69CE1F76E4DA76C87C763A4B2FE36321E54B1328C9155B8ED6361855A151723 -3386AEA3D042B8D89C8C0E9A33E5DF3B466F7BB8C2C8A4ED4CDAFF55FC6D3EE6 -0AF2CEBFC1AC3A6E6692F8BB81F82D86BAE85016AD62FCB05467082C2E5AD348 -44D1439C2B59F65590E57CA0DE481A7A34E79931B1513C4C30156170409A4BB8 -46D412D1DAF88AD30722F12DBCA1CCC6B4BCC28D06B0D29149DDEC520C8FBA13 -6B82E2E1790F00B216282FF122EF0D47B70A1B29514DDF7C0435ED238C14BDF5 -6DA243117FBEF7398F97EB95597707ED63C6797EBA1B46EA19ABB1DABDA171B3 -16CD500F5D64CBFBE4F9CBC3E66A34427D3C4D0C432710289381F9BFD91B4FF4 -1E3A896C3EEA2F3105C218877D6C0C6B763760FA364D00065E1CAE9DCB5676ED -286A9ED0D1C946DCA6A2A670EE0936FB4706CC62E234CFEED34AA615C48D2872 -A087F30990C85E64BA68F3D5C117123467DB411C9F2D6F6858CC70C1E352C477 -713097321B4C4FD4C5CDE305415F998E7245908EEDE6E056A736EA77BD8C639C -3A79FFD0B74B3D28F0494A115F2841CF8A8827AB5608F96FD8998A5F40FB3DFE -3AA0C7696DE4E1D18DC0D6E84B943175FC38FFC42A9C0CBB13A908978C98BFE5 -034F88480F32B9DEB2FD228FF6CB0B89B045AB02020C82E3F5716DC640613185 -9F597CE262729BC52132F43922B9E28BB71A30AC8709634561B22D13C4FAFE0A -12C4451969226B220038AD8DDA990A4E2CAD53DBEAB698898BBD3046234EB4EA -901287E71CB41296C431383AB85F18882F65BE36923F6C0FD6FADAC5B42FDB68 -64C06E047434FA7A659EF7F3D1AA8E547939FBF9C2ED7AC829F03CA59AFFBFA5 -A7AD2E0FC7BBE619961AE1785D09444B333993199FFED007382B54DDAEBE21E0 -1E75E0AB6D309DBE53BC7BB9F95D342F51798574D70B95021FA40163A86BE6C9 -342536A5730837C522D5314B1289D9B7E4EDD108BE7F35A20AB2A16608F6F007 -6DDD702A5A9BA1325CE2C1CD020DF677872135CF04F4E4F1E9AA6B494E2BC22F -107C331A7E80718B030A1103804D144802E3B03EF7CB083BCCDEAC7B43F1B4F5 -C1BF6016741B741CF7E12B4BF95221A72CC9F4657264771AA69C73DA1DA29102 -65D01A0E61F3024E672AFCCBE13CD0B7F54AE1418B72E357A0BABB4D03073B1D -F4EB54F899AD4A41A9F94DC200880A0DB99D67235A2451B25F710C29A882865B -A922E56E9FC16756014FA5CBDB1C32750BD6835A70EB715CEA19A8872041905E -8C660BACDCA26C8247D6B3C10FA5DC240E433E479AC6AFCF57CF96697FF46BE6 -44748E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMTT10 -%!PS-AdobeFont-1.1: CMTT10 1.00B -%%CreationDate: 1992 Apr 26 10:42:42 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTT10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -end readonly def -/FontName /CMTT10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 33 /exclam put -dup 34 /quotedbl put -dup 35 /numbersign put -dup 36 /dollar put -dup 37 /percent put -dup 38 /ampersand put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /less put -dup 61 /equal put -dup 62 /greater put -dup 63 /question put -dup 65 /A put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 76 /L put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 89 /Y put -dup 91 /bracketleft put -dup 92 /backslash put -dup 93 /bracketright put -dup 94 /asciicircum put -dup 95 /underscore put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /braceleft put -dup 124 /bar put -dup 125 /braceright put -dup 126 /asciitilde put -readonly def -/FontBBox{-4 -235 731 800}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19 -38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF -D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204 -EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727 -A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593 -F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714 -4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA -6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E -A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B -E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F -1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438 -452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF -8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369 -5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA -DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9 -BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19 -741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79 -E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712 -E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7 -D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE -C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA -726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227 -CEBEF0C9440DC034DAD9C19FB27A350233112B0A339366B7373CE058456E0E1F -139E2DCAA12133B5B6017B0E08E776403F967AF719E0161CDFBF8BBE8490F57E -53C78E97517EF7FB7C00035D601CAC8F4EB2F16F8765614227C71C390C32E960 -FC7E9B9BF26D89F808B05C2E483B9171450E4CF3A8690E3B6B1BE17C36157131 -89E42D8A2F51D4CBFFF07F50789D0603806EED2D0A9B5E8B7CC0959E57AA8088 -5F48BBD28B37BD51EAC7264D45CD2BB8B6137529B2B5DEDDD7A740458F045922 -D1A14E07A9E9FCC940D89EF56E274BF533927DB8276C3C0DE704CD8EE4010F39 -365AF1E3665CE873D8D1CCABC9C69A6BA8939F170B873994330F32963C330E9E -70E95D62A5C4D2D09AC4B8DC7C837D9FE7F5A0D4D082743D038D458D90740478 -2A04E7693C96DB4A91CE237B8ED9D9F07DD4FB4B701891DCF294052EB8263EAB -5FBF7689500DE29E1121A4460B725C793F71E79A58BEF6EFD29C6CA85702DCF4 -CD2435CA9A0CD4A1D81C15602B768249EFC229A2EFAD0BFC7D5A8BCDA1771DC2 -2641AAEE34E58BF6A236F62E2FF68B3D9E7C68FD5D104811925266AC67F16A32 -9B1EBC55089A05E3025EBD787EF14F4E053B456205C8CE2E24295401232C0AF1 -E01BB90B390E2DA8E42E624C32F3D68ECD59EAE9ED878D07889C7FA8C80E0D27 -527E9E0C57C12DC1B10508A039CEA74CA8BA027FD8DB0BC0356DDB161357C983 -3A144F697E1407791DE270911E25370499A0ECD912B9974490F2B66AB541C9F0 -02DF28DA53E7B3E21299192933DE13DB56210B6FFF3953D09440A8A043987724 -6555A448EF5A54023D8E6CB060F41BA6C3C8CBCCD856FAE2C86A1A0341D380BF -3236F1B526BF811976506A517AD5913B0681D45D284FA7EAAB535507CBE0420D -E457EE415EC91B8FA42F9AEA4E63ED29DA0BDA7A7824634309E57D721A422806 -EBA4D2DF543A0050108FA7C6104AE75ABD65EA7274C12CDCA7FCFA6C39F8014E -3FF49B8FDA5FF5956B72F581DC7CA6A860D2BE2C522ACDB1012E622D211700E6 -DD77FCC8AECC89A787D2F047F08594CCA2DC2658D2CEE3752854AE62F5AA846A -E022FBC13A94E4582755E7E28C98C65917977ED0BF60D527380DE7BD4A981920 -4232903D1046E59ED60A0EB5175F124E05EED0C1028764605EF8D650463F959D -A98C0439D4347F65E2DA71641D1607B3B609823FBD989B74E277D6A6E3901FDD -B1CDD7CC14D8F0E105122B5CC41B8448E34564BFCA8BB368C3340656DA94A18C -E269B1D8AC19F6E9104A9FFDE96B495DCE7EE44B478DCD91FA8BBE481752AFE1 -C945F42E33C1DBBA3DEAE3DA787E80614FF32021E610D82D53CFAFD806A32841 -490EA4045225A89C0844D551CD617E75D762DF942BE71B73C9BC7D6E7596CD28 -690A53E050C10BDA0A256DE427B91AC3143662E5B1BA0EC8577BE625E1C91678 -967B58EDD0B3ACEB9B0BF61F3AAFB126E7883E06F95274C132DA85A0963D55FB -2F0357333F1CDDA87F60EF7C569C54321AA37414A6FBF9F2E09F4B09622E80FB -9003B6A94501383D6351B5D0B98E9910AC0D77DCB9E92E6E6722C5CAA3B85577 -C43D864E582EE95316EFD5FB0CE0338CDFDB0A840B8001F2E389E84B28EDCC8F -339D746F4D13C3CEE2CE0B9EA5BD67C6968CC9CC68FA23C3EB26C51C6AA57191 -2E3A0F93EE560078DC5C17C7D452923BC2E1875D737ECD6D252D6C8078DF895F -BC64DA6216D34709430515C99D2F237981959EF41195EDB234E4CCB0DB55106F -846283F3682C69143374C934B18E415B85AF21B034B133014C5E4B354C3C7010 -CBABF55337F24C8189AF1AE29082A524867E51FEA3CD7C371BCC2A9B2EB7923F -3329D2AA32EC53D85811A55A6091BCAAE343B86A872827B29EFDB9471FCC8895 -4F6D8043A13362FF3269568B5D385EEA7512A166DA4296D07B7902BE3BF2CBE8 -0E88F4DE219D8E63421A2AB5B1A2CD89C7198747E96963BEC2954F92F7B755E0 -7EEA6298F997835A1622AE6113AF1C8BD1FF3788F224FFCF6960BFFDACFB5D15 -0D37E923CE1DB0F219BDB2C261D9D89933BB6E7585C8A86B985D34B1FD32C568 -C5948683C24E221F7469D23E6A907FE80D4F4938FAC4C32C1CAEEBF072E39BBA -B4356155CA600886A59AE06081DBF2C8A8BE80AD074F781B05B8D3D8714CAFFF -4265FDF92E48447DDDAE07D63829441132C68404C03690A220416E85EECD8B47 -BFADCACD42683E5988E902F4EA64441ECCAD6FF84453CB44E7ECC8579B928C4D -CE1DB8A52D9DE83A4E9F95850E47E63505AC81AD552D5C13F98B2128CD1391DF -071022C0D0524803EB652D6FCA6AA7D2BADEE9F60DD24531641DB5093E0B81F5 -C09A428A241111CD5B861F295352AD9112BA832448B924B65F8A07C10E9CA93D -6380A1B2E477AE278094155D3090EAAA07D3CC2FC06AEDA34013635DC3B2CF0D -2072B5EEB80D75CD80BD609075E2452FBFB3F3E5573A6FB4397A57169A5E80EE -5A45AF5B98D9C89F96A6011AEE28266257FBA4C5E58EFB767B772B8022F3D7B8 -80D9A6F4F9DEB89013D74BDCC23D250F621A0F06EF76437664B13C80EDA64937 -D469C3CA58DF29F1F0EFA3ED58D1DED9895BCDF59183B939FA839932922BBD8B -4B96C16F9F2FE7BDB4A838B8F9C52D9CA5A3735CBAA633880F132B03DD26DAEB -618E4B689B9A11D8612C47BA970B7B5ACB4A0198FD3EB7A62D92A026E6AE5246 -D9288F3371113050F0AA67159F162F6E62FB853EBC973AD4F2604F2205C53377 -B6061E2100D07B3A594266F06A61494B922E290AD42A930A32DA4FBDC3996B49 -DED27B8C5203F080F67BA5E890848ED2DFA053162CCB2E13BB62D798CED03B1D -ABF098419D9F97C2151C9A3AA0FD1865C291FA240E839065C8F3E8EF504CBFD3 -F0F7A39F57F6A097D02D399453027BD0AD6B5FB820EF4A889B11AE989A23BF39 -0D258BA55C5DD4C6D690037FC9BE99FD14469FF13EC32D32A033E32DDF6E357F -AB1A65C530258296E77ED1B8F056176AFC317A0401CAC7E56259FC96A9BF3C79 -683DEFB45F1C3BF305E5FCFF15FFD5D0DAED5AD258820F13675773A2FE23FFAF -44CF4324F7D6BB80584D760A261D4F1FF01B61B5008BD647C149B59A39C20590 -C32E6A8B321010CF98E0D3057ABA6076EFFAB23DB513627A150219F846FB7E13 -B3C2A2EF7CE6001A96CC12B7E81FE3A12751B0E4A5C3B1FD544514AE480730F3 -3DFE0181CBFE86EAA8175211B668BC26BA42A73C44105AD5BB07CD54770B1E74 -28C7264AB9C605B28C233BFBBF3C5402538A873E0F91ABDE05E82274C5AB3A96 -F2D3197A5C6ED9F3063984FFC2C35521559412B3313B35EE2D952D1795C43A86 -497B8FDB06633483A5547345C4DB951D8F9EA26C24DABC84998EDA8D8EF05225 -1B2C991D35F626C6CFFEEC6FCD50D742A4473B466F92B7C4E3347ABB231FDE4F -1797EA8D2B0C90F018AAF63D6AF9F268C7BD3394BF0EAEA8DBD686AEAA1F290A -955E1146BC80C4BBCF30AD1CDCD581708A8C27FBDFA9891A2009E283809095E2 -ED36E1ACC52853971DC7F8D234E5D42E88303CB5B7E8CE086230D3A66DB1A259 -194FFD10DAAAF25AEBE9D2E0699DED06188665A376B7B96D33C918B9678EBB28 -38816E68A84474ED9C727B809D91FCA850BC7959BFE888D6F30C3917ABCF6D5A -45C238B3EDAF9B42EAACA014F0E8E91549E3804619AE8AE31B66D8A444A1DB51 -9E40CB458450BE01FC8E7704D144C3A962A65466CF7614D94DAB6B9EB10E003F -0B16CC826F0716B8411500D7E867947E91BFCB998DF3BC331E66154059413D61 -6F8D59DDE334A3622CF268AB714E6A8417CD1BF09FC7BBFF072297DCF0AC04DC -5C1946935E8EBFB12A4E8931516CEC58D45832C8097BB070C7C51DD881DAE0C9 -8363C904A21CC85B20ED5DB3299DF802965EB5017F250CA5E8B3998FE535534E -05F3E270F718F6914C49AF45B3A75DF1E9CF0D58257DE2FA18FCF9192BB60FEE -581919489A666969768A1274CC4E4E6D644088C80F716435199F9D514B065EBA -B8FE1945F87636435606BA5D996663E7DC75C54313FCA84FBD13D70A8694A210 -170DBC5CA05D342C8742A2AE2477E5A5D04849501BD569ED5E70A68B9EFE8CC5 -DEC2EEE3DE8F29ACE6CA0741BBE9C4BB42B74037C85E93B6CF0AB818FA434448 -995834EF62C20CB180A489F1FFCE5A21F1DD47205ABEC91CDE6CC2A07FAC5D0C -B0488C9F7B3A3974BCD0AED976CB3F2FCBFF68A6093756BC24FCC6DD3D9A2F3C -EE881876A1EB8D9BA8462CB48BE2220381B86B1057A1A1B2A08EBC2FB8686BBA -21414FFE042C855A257FF7AF0DE86B8902224B90465A437618D4F17E051CD8DD -A08B7D89D6BBB4A0A299485D4D737FD4F9508A05B9C8EDE0724B79726A3C32F0 -D74B811F82510C706F3444FF1F2226DB0C9B1DB512A9EADBC823A83526DC9587 -42AC8E8A54634DEEE9AD8FFDC6497FCF217C997B05F9D2E991E7D9D61179012F -58248632D5836B087A6624DE90C3AC386640B11194D3C891BD314CDCB6AE79D5 -DCBE022D7FBDB13BD6A762ED8B65DEE202500E842E31DB6BE7D873245A75C231 -919DEC011621AE1D808861CF08E339E404F8ADD5CB1D4DA268C191D60F50BA06 -7E0D0273BE56CE0A53219B7C7FF9BEF980617BDA6F2C780175E712E634923995 -FBE9600E429DDA5F691B61BB35946E76FDE28F33F06740560D5E971A424076F8 -CDF10BDF3899BEB2BF28DE369235ED0DB57B27827179CB3E2FE8C7CD6233DDE1 -6625975D48C788C85285EB73B7A7B9DE131FBD245C9B306CDAD91D01839978D1 -2132F06C2BB59C8E38E416AD3A8937CC72632C4F79D905E3119B83E229F9A2C0 -BF6F4C0BB3E509D1FD88DEFF150E3D469CA20E9446ED75C6C44CC72DB23F945D -9832BA83A61D5C80222A23072B4664E9089CD0FCC6512129938FC52C6DC46593 -418D9DADF19D00226B1122EE81402007AFD06B39305E1B0481F5390EF21974FC -15D680EFD0AB7799187E6F5AEBF07013651DDA0EEC50F352AF50D08216A31159 -02E896FD2BA87D3FF13D46AB6136C92AB932A3828D6E40D6AAB2D42235275449 -B0EC8E5C6134985E9D21763974377D34530289FA0EF14EE891E1B221A698A8ED -791DB294B3489059A8996C160545AF6C2A556882AD42A034E686F21F187B448A -DCB631CBEA2F4F863F31D65D5DCDF357D0E7BD33FABC65310541AFC05860B5A9 -F6F51ADBCA7718A3F6E17DDAD5E0BEF0351267925EC591024860289B31B3071A -C9BCB9979DC7CF6DA2431FB9F4E73A4A6DA52F23A507510A86161763A4AD574C -A8D7EA3CCFDEEF7C4FB4203DB0D00079639402F8CE2C7706BC3134E1455794A5 -F4D506126F124BBDB84CC4E38BF56B0F9FC18463281559E8001B376563651F50 -E4F54D3BCD3C5ACFF157375E3BCE65EB9620A91E0B3AE413513AA885462A981E -BC33354C8DE722C19CF1CA72623000C7DFD3393F12658ED3CDCB2472DA045E4D -78EB129D89CB652E423341A6E539D3A12F0AFA3A379664C6D591DA458D0C93AC -507848ADE1CE0E237F8E44781929B013754392A707CFA3028609F1A3402925CC -15AE50403DF0B09ADC29AF5AB03D6FC8305E7DFC46781FD76FE6D95F3E2FFFC3 -5B0AAA73B30D870D8E8E8184411A418FF8AE4DE17DBA8CA746AF123A44944F62 -85D7E059CF3271B6088A374093C5D80197F1EC827A68BECE399345E10FE1C776 -858FB036C4AABDEACD9C5C347CB13E4EA5AD6894FE5A6B210838D0DF1F3FDCDB -7A1B82D07D42C84DBB695F70E104B13548D4CBE2FBBE128CED959774AA5F7A54 -3CBC6313BEDCB8B55429DC58BC51E3686BC9A8110D36B4625C5D9D7AB72D7C14 -312DBA59A29CFBA7EE804873A54FE2D1F5476818E2DCB1863CD3BA4892EFBE45 -C5C3DFF6254F491734BC982C0E5CD41C738DF9B2B462071C1F70021629BB7A9E -330F7325AD85E8005A90BC13BE6D6868846F74EC7002F6326160646844187DE3 -26D1C625681208B87BCD967749AADA6510105459CEF77F4080F026CE8EB36E1D -0C275361FD92225CB11CB327EE747D2397EF6E4DB62AF4708ADC95B9B0B0B3B1 -FEA8214506BC33C7E10C28AD9646CDC214F1F0ADBCAC3F9690905A7DAD1B2ABC -995787CFD83E255B07901D17B196334A40A45CC25D67D69A9D890881D4731680 -AB1C230DEE91D23EFC69BBD1859AEF38E9D907EB461ACC9B5F12503ADBB9B373 -7669BE875CD0BFF43F1B4AFA8FB233790BE91986E6056E913D6F29480A27CBC5 -F7D4621F794369AA8FF04EDF2884875C802B3D2598B747AC471DD88C2DD7DA5B -4AE78FAD1A699F0CC2BFCC4F492ABD0C784F53774923C96B8E8936624C9CA2A7 -5D98343D46C3D59F45D7FC059DC38668233DDD9EA40232BC9F8E549A362DB96A -432E2CE2498EFFCF491115ADD4DDA9E1113A8541C607C60C7B25E4C5DA72C4CC -08156379EE57D76138CADC149B25AC6C0B29B92D038B22B8EB4B4E69C7C405B4 -F8CE26E4214888DCCF18FD2F5FA3E20C2BA5E7259950522E5634C95D52F64C97 -392CC15FFB00C09346A6D20C9EDA00B5DD4793835BBA10BF35B373819058A94E -53B1ABDD7A28B31BB7E4A597053DC442FFBE6902478AF00BF74E07FE2AFAB59B -CDA5997B78E7C996C8A0669B3BA4520807F346BAF4FB3FAE58A1E52C6DA5DCF5 -1457800464DE6C876E392B266F9B93D97FD91A21EAB2F0F917750AF98CBFB7B5 -1977B2460F36979B866DE95D42A79A7D3B68E3FFBEE7169EDA27F479991DB6E2 -39B92868AE161B910549BA51212E4A8305E52CB4E900C71A654CE8251CD30C5F -C23B7857377FC16026DF41414B792F6E992CA6671FE6C3C9136D8983A33F47BB -D379D88E34DFEF2F0D02CB9B4E6C04D0C5B397BD7C52815E75A2E76343F88642 -BAFFF409D80A2213B5F48B37867731416D4CF497772732B4FC79BC7EFB2330E5 -40AEED28970A318DC93F778158DAF12747890D85DEF62BD2402844D29A5E5F6E -4F718E264EE9657D56C956AF3DE08C5D054F9FCD351233C35AD02DFF3163E42D -C401378EA1A955F551018C365686045B13F2C1A5708B3CCDF7E226554E2AD8B1 -E4DE2657209DDFD5689D93EB1C202206C73A586BC7ACDD21451788CF37D32829 -8C1CDCD8F0D359F20EBD5E13D0DD96C0924E53797638750D5303B517B75B6F45 -2BD533C1B35AEA97DDA239955596C1D3456C6A7E6E120001105E58DDB0F36861 -3FEF0587489B1F7562C9742CDC972340E98FAA2410C7EB42415E0053F1A79CD6 -91EDF9BE7F61F5069FEF3BDE1C95CB4C0216AA5BE28F8DF42F57EE97AE8FEDA2 -71CD120D8F04986D5AE5DF2B0BDBBA01AC08296A2B30940BC8006A5F38D6AA9B -72D9AE3690BBD89D9B1B924A92E9F98312CA994F369F71706A20CB72A820650C -2E3C077ABFF8BE9843ECEAC7286DB8F6404D2FB367ACC874740C5B3846EC7190 -42C48E182B94DCE1B8F69CEDFB60A3A7C7AC2CE49A15DCD6CF50EE16C411ECFB -7786A6E0D244D4BF394143BFA289495957DD69C9D40E6D57C00D798356835A53 -8A2DC6B46AAAF21BBE9A116EF4F2D3B9483D3B62A82840B2166152E7051C2040 -888F99445F1AA00AD94EAEB427EF533FD7BC59F63D873115AFF4451DAA4B931E -B6D05AA4F7001080F3FF5E4E1A660FF36D0FEB424CB46CE0D591C7E0135E3D69 -17262E35F7B7A8CA036CCA16DB8EB55A732341BA1C2B9C6B588D41898A0D1E30 -81C1B1C6B5DF9F7D1A8A201E0848718BC02ECDA3EBBBA61A7CD9A3ECF720582C -EED677E290F3CC54EB62B83E631BFFD22D4F03177787FEDB5B716B34F389ACB6 -B84863C46A71CE2C3387DAB6D9F35B4DC3DE3D279221BFBAAF730E549922CF48 -B6BBB2A01AD00DC047C2D2B867E339F64FFF63ABB3A2266D7FDDDB3624CDB196 -B52696801BBBDEFFB871479D5847737DAF7E98F8140D65172D39ADE3219B7E57 -219FD2CBAE039D263DD984765AB26E9E7F17B06ADD9AD578DF69AFC142D31DAC -6A43149D41E5E07EA2F367423AB179B9F913ACF1FEBCDCDA9C6BB6D14BFC3425 -176C2E34F15229E25B39DF215C36E75E6FCA07905C70A6A538FD8191A5E1D5B9 -21DE335877A562A62769EE2B8FF16DFBB1CAE6E1E53E78A9E0F7D9218295F409 -72AFC2CC9CCA4B6563373950824DC071BB92902866C827AA23BC2716D7C770A8 -9CAA5DD2251A0A1EFA4E95402FA16E1CBDE5E37A169B8917B8E0D94A9C47D225 -307B4A38C004F3F36F31901DF56A6FAF3658AECC09C8BA27F26A5A55314782A0 -32963C25291B990C57790092F05A203176282F16CAF9FAF89718F2DAEEFD3F52 -CC263F02CF771062B04E51A0673942479BFDDA13F04AF88B9B9DC85095C04AAB -707A308E46055FFBF41AB5CF9A43F8DE0048A8A7138D359AAEE262A45AF7DE87 -AE6D10BB6CEF580322A6593121AAEF71821C57B850BA883C2BD21FED4C28CBE1 -D6F3EAF89ECD58B1FFAD8C41225331DA8BFDED4FD80EA251AAAD2DE982246F3A -3D7800CE8C67612E63FCB2806AA68DAA7373BE7939895EAEEFB371DCBCFEA712 -238AD633A8FD2496ED249828F9A35F9A8347A6FB401B5B46968646F7B07FCFF8 -015A73A8832710ED1743FC6AACA74DBF4A8848131B9C83489B55B42A57C0817C -DBD12D3EB847A9D7AE76A6FECD5362C10B8BDBF6FCCE19166DA5BF005105068C -E0CE15C4790EE0CCE764B3235F1FBE9940369C5C6E1E38C25DC8167FB5655952 -9761B35C6D02048A5A89F090A08A0E91A871700A92A06CC93C225DB53B6FCAFA -8DEA22DE4351879222842783986A54B93068CFF579B6F0B3E67F595E603CE50D -7AEDE415CBD7E6791A5050214403234F7EAFC11E64F78CBF480EB261D8D0F9EA -60B61737C69ECB32C0C9165098087E5BD97155502102414227F07C8EA33F3CD0 -3C039DB00F3373114E4AE2766FE8B19A866220A68FA769A0613B080B700BC85E -313C0689DC09ECE994A1FD9E01E13FC7741E11B84398728D28924CB6B0216F51 -20A07984B0F4C20100DA456FAC82D9D1D13613F56CF0BCDD31EFC037F8F627F3 -123E5BB89E5639D58FA22BC426933C1FDC42E4817794B9108F3FE476EA72B0B8 -FBC1C7DD290D9BDC475DC01C8D0F5F191E38958B316E5A6493D3810BA0238235 -8AF308C1353A4D1F29874C6F8813EBACE49D044E0EB24A9B881F24AE3028DC7E -B574B271EE67FB9BFBF3562BA8BE7D0D3835499C0FFD6D9AE6520C6841676A89 -E5B4C7312A4835FA7BD974D164E9D9AB45D4554086E1658D7A3CBD17DD8FD091 -6DD2E2094AC2E4E79D7E2BD082E4710A126DE03D2F4A8EB4F8D8D16164A2825E -3230BB6E5A4F5BF8B4ACE7F6407321B07678DAF8721DD718ECEB3EEA32229007 -BC90E375D2AF6A4D0ED66B5EB0F5B017F4B8355B14B70F665DA551769AFF85B0 -F6D17FE85640D9F3BC8D0033B823E1D7F286ADAC61C85F87C8F4A021824D068C -47237508C739ED9E66056E1092A22956768FE73B590BEAF9B8DC96202372E369 -4392C1D73DF00B9255ECFB19C21C1AF844F7DBAD326DDD5D7F7B41C616E1FB7D -F2D113ABF9ADA76E08E6DF03A5173BC9F65B8873BAA3AE67D35893DB2437664B -F6C833A9289318F7806E67DCFFF38050EED9BE1FFB62EAC6773CB45CF0FF56DC -B4EB2DD8AF38C2B50849EF082DE092FE7E9F6B975965FA5E076FA1197946867E -AC588C255FDCE28DC0F7017058CA8CE21C656F39432115CDF619B0DB1F3DA652 -A342C73D6A8D3DE2D81382C0CA46C233DE0BFDFF0DC6FF4776FD60292D157134 -EE1849F22013259F75B93CBB98A488428C29F3168A0FDEE616CFA1BC088F6BF6 -98940C3D6297C684096C08A34493D5998A443C0A4E9EEC53100F7BE7CD8EABC4 -8234DEE6FB36A1028627A18A3A6376B185106669056BB9030D3EE29B86857903 -8E5FA2DF7300D72EC079F896E052407A8E35D52D921D9EC8C230A8888708270C -8975D96D7A9B5C9504342A3D3D8ABC0E4F8665C4D6236CE5474F1873D968BD2B -E894FC38FD94ED092DA881558B8C8238716136F31F301595FBBE990DA4306F2E -0E996D0F9FB20B67DD5BFAAF9BD909130F033414F473EFEDF7CBF271AD49D15E -570DFBDAF0D4E02738881C104B8218AF659DC9587A6DAEA42F98FA0A864BD1EE -ED493DD61BF4AE6B5EACB7DCA84C2EA02BD3EB3332D1A8E6AB68978B15ABB10D -497A0E3D6E9613E13B4EDC6DD8C95D035EA0D650B15A6D0FB89109E1399B4866 -73B857EF3BA5B44E87AC7AF2FFF4EE7E7D6417348094658BA6F5281E45943EB3 -E711CA4C9A4ADB161E71208C7A5102D09FBDE0921CA593CFC01C24EA1C5D0B6C -20519F42D3D169339A326D2C2308B6F0A463F9B32B2BC4929F5FE19AEF93666D -1E1862AF5E3C32535097A0BA56C4FCAF66E93D9641E25DAF92CA2BB0D9BC29FB -00C79F8A7316487C64222592DE750B72E5F7AE2B0B71642174C873DB02946505 -43A7B71D313B5092E2693051824A9737D75609D3E8D17CF493EB10BCCECD0F7B -06ED06F43508463788A69797457047679C5D69C15D36C31D2ADFC03B8F53D11A -D03A7C6E287BC789837EF12A1E58D6F280C3213DE36B0FDEF163B8F2C37A2525 -5A7028BD52F371778EBCF28A9096AF779C76874041CD6263466C4ACA1E1A632D -DE5E1D15AECC12604574E9AE20B6CA3C19D1E5A71B3BA4E82B18DB3F408305AA -0F0AD437478E7614F33FA67FFCDE9986DF688608220A22487916FF230CB8D3A8 -47289790D64E166BDC548AF527BC883D01C58C9FF21BE693E6FA502D8D2C13B8 -FB5A8EB2BAD804BD9AF48B424D9F299BFE3ABAFEF3F08A073C4FE42B76E6058C -523C0758040612837DD31C5EFA932A19C38709CFFB7C191C10A15FFDC1F91700 -F358DA7374CF485ECEAA8E54B6CFCA4090B3094B91C6D5CB10A8630DD0F7447D -99F689E44FBEAD84D251D35D42280A1ACE9644A44B45413FF6E0493EDB0A9A72 -F182B458B2F28C9C87075B6D37CB11945DE08DF975772D05EEAE97BDDBDE6F32 -9336D4038F0B064C26F6F2B742C6EEBC7872DA7B09B1337FD885E5E4F299F3F5 -88ECF739340592F863473278A4D5C817E9E139DDFB2717E731AAC7063D9C283F -5E9706FCD1F4DEC03767B93D2684A8C1D544B9B12DE2F503F2262017589CEE64 -550373CA2169FB1253DFA1B469595A61C58C26EE149D0AD2F49FBCEB27DE59E9 -0294A966399B35E17F0B37FAB2957E61695F7E5C2383A7FA74DE9DB3EF25C524 -876E67F2AAB48F725FC13C6F1DBCF60FF4D156440874B425A2F8FFCFF60CEE30 -733E662DA7A0E25EBFA5CB6958E694B5CC16EFAC612E81A2B04C09FBEA8EF355 -0919DE7DA66BFD36508FD6230569B240570E09A7ECFEA6BD28D6F13D8A2E076C -F65175C7187D0D580B368D3E8122D61AF7D15D638EB54B4B4A2905416C8C036E -C235CECA028C60124AA7822A4A21A7B6E783CAD48A36BD47ABEA43347C1762F1 -C071A54E5837AE4B2C4F5101426721F4F0D6A86FA01C036B122026B41F6B47A1 -C383B059558855DC5C7956AE377C929F8D0980F3852FFF885F2C2FDA7E33B623 -A860A2C6E2C97AEE4D405B1F8C385A445932DD8D617420C9D13B8D296731AF6A -D7D063544798C8E1BB78A7E2A0A86F514FCF06BB6EF4E490D9D526D75781ACA4 -B8D85110A10E01B8369EE4134FA8AF2D55934FE439EC91A1CBE137E95761F911 -ECE0FDAEC1C947C948D1E6FA6D23422BDA5033DC01EA9A7B82D4E7794F7F3DB4 -88E4984AD9D90870A5C7147454CDBBAC9F7B3C3E3C0906FCA0796D5A7F7B4341 -D43DFE6D8989C01A2F9B70B27E2C0482AE49C90BC96B4FFD286EFB7B7941875A -CF94784F51AA1862B59741EA2E507AAAC323F64422111D5CB3AB85293BEAAF0E -C2BC1474BD081CEB16B6C8CC4F90E2C94CAD66F34FEF6CB3F84AE5CEEE514496 -5BA33C5F78A0C9552A40A10C79ECFDB85D20D6C02F5E8ECC31B315EEA475C17E -FC651914493A2563E0A06F16B4A28AB64A906FEFD112EC0B9B3A3B7E45F93209 -7EEED7E0CF875375D443EDA415CEA6ED37AD9EDED86F5923E0213CA1A429E91D -5B266F14063107BF8490BABA8E68A67632858A7D03839F1AFAEDB8F02A9374EB -2215EADEBCB8682DC20251D64E97135249A0EC2FA9FC22341F72FDD2850520CE -45E2B2CEE4DA9458B771AFB829D6BA5224854D4FB7114122E1857D9F178DFD62 -ACD687049B5D9650B371FEC299A96772EAC2FD5CA9C5128E9FB489F828945D92 -33F4B50A0AEBA68E408A3E068A9C2F92D7A92BE9487A02E37A2DDA05847A4BE7 -73EED5B07B64F72B183BFCB31BF2673EF5774CADCE2EB4BD58A6051C5BABE387 -F0166CE179024FF39DB1EF11DD128F052655D0AEA1F7DB42C194D3D3E4A51921 -22AD7AF84A48B12DA443D0CF7B3BB35760EA3CF9FFB861CDA95F15790A6E0A9D -6F85EDAE6980F0A628D73F68BA387AD9326F804953443C2AD2ADCC810273858F -9C0B51BC9FF7D1654E2550BEAAE3986282115E3646A630F88956E62E3D646416 -3F2A802EFC60B547723C0AB0FD1A0E2DC6CC5AD71569841FDA59627AF7E4382C -E88FD3BF1A9D8F3378831B357192E379D8D313889A0FB00C470C86C7E463789F -D2CF696141BEDB834649C38D759016B86074DB5CDA1F3AB83B3A34C96768963C -86983D35679612CC2B8E9FC3AC3D857F8825F0BB9F40383241048605D3526437 -507AD1DD0AF39D47E62D0E190F2A9BE9E95607595F956238BBC14820712FAA02 -59E93BD5B84584BEF8517484D04976472E6559A4AF333A26F5D5CA91C73F32D3 -745DA3929763688EBA79224580D6BE105E257C166F91C7DE3612520402432AC5 -BAF5498D4F611E5B7262F95A619816BC40E8B5D756264D656C3F6CC58A07550D -3961E8572E3730F0A5DBBB415B29160ABABF1A0FD10A0C8F16CD48BE05F90E08 -8FC9138BA53FD3760EBC0F6D6CCF7148AB43B62425156067D97F77F6D5D95C06 -FE3CE52B34A1DA696B31906842A6E77127FAD80A6A9691239A9F4877AC668654 -E1BAA8223EACFB9E4F120BAD798865E85B4191CCEE9C40EA5D86161046D0C8D2 -BE4C9607DBFB934C1171A3A71EFAF63156C8C68C644D4F64C2B51B58FFF904C4 -F6E68EBBC0C4A8A6C468C2F030C0D5474C37782A6511206125A88D165FF8C63E -6E87046691C81E571F02BDDB8245FBB8187E9E6285B0AFE38A2177BC7B540813 -CE19E2017CC10BCE677A9A42C46324FE48B0FC5FA2034697258942827E9D5D9C -3E2ED569871E9076B073431BBA118FDA33FC180BFD558D4DA17A3813D206B0B7 -E62F666D68696D469E13E4FD628445D8BE278DD216CCF1930E2435EAE694FF49 -7C494DCF05837E5EAFC0B6B8E09720CFE065FECF38B3310B56C4D2724CD8D078 -DFA4D795073E90F96857566D43A622A61EAC381E20F262C660C90302CFC6D85F -BBCB3DB3D450587FA8C43F89F19DDCD4F244E9A98E1D0CBCE31B3EFE2A397724 -4B7AF5172C4E19B03D1B5990F4366334F4FFD8B019127B30F50799750AE97C13 -D4B9278EC1298DB073634B66B212A093F244BFA90FE1D8A99FC81C702642ABA7 -73647F04A2A89D6FD2EB560662016E7E6C634AFA4BC0B4024E45437A219593C7 -538FDA68BE395BD061A7D1D719FD571C8BAD0093928EB6829A7DFB9A798C2429 -443B8F00A56A3A812E0C7661B2FD15CBFCE40AC101ADC58C058B8DD2EFD32A59 -77AE2D1BAF4809B36FC428EF235819C59A8832A2C641B43BC25C6F887ACB28E7 -1E3C354B14AE57021284921424522DBE8BBC8AFCF428A8CBAC99039FDB738B33 -065BAED6EF1ACA3C13426AFE3A72B9782A5EB64150E1968B5F73FB68604349D5 -479B9DBE25BD3C7FB893D13A10A17FDADCC10FF7D4E4E7DE5D7FBDE6E4A83549 -8BFF55B352D9770E83B7EBB026B9E5E6BDAD237891EBA638E63D262F841D746C -4C8ED36FC973DBF35059CDB3E73CB30A5BCFDAD30C7178FCD1DAFD9A7E131C35 -B094C145CE3836CF18BDD0DFA344760A15AE2193CFC872FE3F2E7AF09E1CEC89 -2A67469F3CF738E980E5A03D7B6AAD6B70C668054990BB9B7F1D30A60E05E671 -F2A0A9F323702123595DA4818AF4E5C0DA1830E94095EA4EC36733F3B25AF6E1 -490A2772E25803805E55650B6FD03CE7E8F8565FE11EE50D0B040A62E5AF3D3D -85900BCC83A09CFEF3A2EAE5C4B87F9B423CBF7FA703AB8D91E851101B888FB4 -D0F0F31FC74EDBCBC1D40A2378DDC8A0EB9011EA5AA3484D6BA12D6B4FCDB6A2 -10497D262D136AF8DD0ECEE9EE9D41E94A7C35D53698A0E581244EF3A4B3EC6E -3C490AC4F3EBAD17F1A78D6DBB01343A3854887767021DC999514E99A18E07E8 -B40573D647BFA3E27527C1105EA52050B504D4C8BD5D6B02CC2C5334D7CC08B4 -73CC3EBB9A539711F08FE85F2C5773D83CC5C43C4C2B50F8B74B098950B71DE4 -5847A10929D37F8BAD2E3E31D930F6214CADE137CF8D76EE60C57FF82748A105 -0E00D412E6A82D76754124CACA25BCC478169E42B197294143544638F57EE932 -44BCA114BA1D46EA1540943AEA3904406548AFFC45F2678A12317B7518C3EC49 -6A76D6C86F3D44EEDE0317ECC5401EED98BE22EED756D35C67B45D9924F19904 -1BCE23B85A393E7B8D42E103CA6B60278F73399FF178F1F0B67F069C9BDADFD4 -43AB5A8D4ED31154B0FCAE04B7720907442CBA3564888ED7CD487A6F62759397 -42443511DDD40CA6343EE4BB4A63125A4CBBE3470F15146F50EBF1664DC5B6F0 -8AFB62C771997991A9FF8D3BC0E258FA4D8AD5BC20140DAEF3824CF78859BBC1 -1C10C23A2C433F4C2E86350651D5861E75FFBB16CB9039DBC5D6A5B37A81808E -1BF4A6C3D341722DDB79764507346C263A8EC13654352B6B8F054B1082BE652B -1330D7701AA7B370265B3F228E005578AD69E63ACA9944B5136177EF63DA4B3A -2DFB0281495331010183219263F47C39287B9F0CBA9D9BA8D199DBB482877063 -FE76E44665F05675E1B9E0063ED511CE3450472776302C90DB4DBE532FF0442E -8901F287E601A310C807DE2D0389FBD1E673029C3AEBBF692C189A104C7FD028 -5539F9BEA74D18F2E15813C4B7F836148B4B54BF1ACAC31C3955FD07F68B38D5 -2F0D5FCDE1F89841E35DB59336E58E5C074DB381AFBFB7D2865DA312A2AC8580 -6E308FAABBBD198B81AD0D1EEECD61EF8D4B05265EE9207EE1990CD1F5CF2B3A -00922727934841BF36A9D50A3C8ED089668E7138A1FBFF1EFBEBB0C994582726 -3E31E449D43A4756E87A8636BD09C79438CF73AA3F903F6F3CE72427C148E997 -860F5394F8DAA2A1F392A169E3037AA3516246DB8CE5FDACC863876145C3B2D7 -5BB3D46A325B5238E3256EA2863D388508A720976F154953694661B617C1636D -6B220B3DA2165E39C5B1AB48B522ACBA82B5DA5E7AD1EDA0B116B754D994622B -A75931E0774B46CB1224CA7C9921E2CB2A2D95C7E27D55AF75FDF72ED853E525 -EBFAE0B50FD667EC5059FEE1D8E7198C6DA130AF2EF7413C94340FF4075EE1F0 -543678B806A1B8F4DC920BB4DC568E50 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMBX12 -%!PS-AdobeFont-1.1: CMBX12 1.0 -%%CreationDate: 1991 Aug 20 16:34:54 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBX12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMBX12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 12 /fi put -dup 44 /comma put -dup 46 /period put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 58 /colon put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -readonly def -/FontBBox{-53 -251 1139 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712 -B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99 -AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26 -7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF -20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390 -B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D -68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809 -D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E -26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D -F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26 -77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299 -BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E -C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8 -30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5 -148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C -E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D -E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23 -337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598 -0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6 -472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E -A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26 -331942DA18ADF89C5E79B969611C123465054D82C1DB771E6506EE7EFA2BC0E1 -DDAF60DAFBE6E98F30970280A2B500EF3E9FA526BD478E1125461E1A4AC61B41 -D0FD917B2D891EDD84DD60DBDE3BEAD106058BAB10F882E4E143792C2EE4D13D -A5837253F8577B67D8A2F0936152AB0555EE029D0B406C99B2795C5B0B394EF6 -78946EC9ABC64118C3FB0C8BD6C4AD2B18C319E721561AAD9DF439EE057291C4 -6024B31D64D08E756BC2692C2372971247A706A58E7A6B20F00D474DF5150730 -5D786AEF9B56C84EC3823491CF0EAE567EB466FA0B26469FCA00692524BAEA17 -602051E98B67BC2AD63A1DF8F3CC41121106CC02C07D3D055758B3C33D3E50F9 -88675B2D6B3DD1789F1AE9AAEEF5D5BD3E99D9EDFF98A927D270EB8D136A1A2A -396E8B94DA9BAA7AF8243F6CBE38546A4212C37B752EE6099FAD5FC3D12729C7 -751F60EAE425B2E6804B9A7C392D2CC0CA07E7384DC4A5ADCD8911A3C09E4DC0 -9233E8A3F7BEA1428BBA8262517DA3801EA961E912D5DA81AB9560EF800919F1 -DEE9CC73EC9251754860B83A1D25EA364AD1315BC4943A3C5D920318BFF3A2D5 -27A0D8DFFD02AC3E2E6059A4CD98444B50AC5BE7B9D37DFDFBB38FF335CF5A9D -AF6AF8DE0E686B66810D28F7A79D5B398DCB74B4E363B0BFD1519FCB34982DA3 -077A4FD0B5A2686D8EEC5D5B29D07C40AE2812E33894AE7FEED8DF2AE9C1F796 -9F5FD59E1277982CCB73F1945E762260627B1C1964091C858FC0EA75F4DC81C0 -2872B4D5846F3BBB3A79B683940A568A1FD68799B226DF4BFA0B09E77210A4F1 -2E0932BAD3CAD2FB945ABEC86ACDABDCB758C39B5730890D7A472F39A813FC3A -598E2D767DCEA004056FDDAF4346573AF990F30B76E97EBB2FCC38FA116DFE95 -6D9B579467499AC2A7F659692CF63BFF859FA90F9584E70264304229C6577B07 -F9FABCDD314285F8B987FBAD04E4E61184F96F31B38627CC6D83743C0A561004 -888F002862FD99CA0F81864D180DDEC1B3893B93F6552E139E856C47CF7E995C -7C273CF00776925CF39A298229683D28DF7E9F21E93F8B25BD2A111916111809 -39014D096DA99B8100FD17A4BE9129D0181F515C8D43AC6F3FADC10979526FB9 -4369B250A522444E773942AB21B630F470F5D42E09037AAB0DA0478360A349E5 -3858CAAC76E58C6E55317C9D307E01965C244C4BD24E48446FD0DADD44B3D7C2 -AF2D92AF002AE1014429FCC090CF52DBFC36FFB5915C5215DC2F9DDCE48426DF -844DA4FB5DE5C9429B35039BFE218FBCF9ABA471790D604D0107FB65D7AA05FE -23C350C93FF02982AF2C8D387C9401F1AE5A826E9128B5814FA24DE537FF57C2 -38F12A50F8C42D53B2F0D95CEB47D11D802326135A3E3662A454F67CEE321BF9 -6FD841DE922B4C1E0BC2753B9F3F6F24FFBD4157ACDBADABD735E5B5626A1C49 -6DD59835F4A6275F66657413702203C4523E6B7D74D81E11B37F2FA86917EBB0 -EBF4A55103ACEC7E420A7D6052B2D38940119C34E2E3D3280960468E0AB10A40 -0758A98AFC872037C929CBCAC71F5A45CD9AEFD1CE854858353A0852D9F88129 -F0EE1EDCCB1268E35494DF962AE27EA6C0AD212C0C862EE355C5580057B2C4F0 -580FED0B2BD80716DDE4350B73877EE349E3A4A63EACF07013B0484F94A2F28B -54A3CCB83ACD34A0DB2D87624C7DABFA77362AB0CBC22D73C2566C164088C449 -01EDC05AF90DEFE189FAE81930CD6D203596074E73762490AB571C044DD3989A -66E0F2B9802F4EE4A3DBDCA3E4B27E331951F4F21AD36D05F4E83C895CBE9BC7 -CDD4AD272BC22B5340F962039F0DD0DF6DDAB20856AD48F1AB329282E81DD509 -813F4041189C99A3DD34B9E511CEF5A61642FFEF819364214545E20185D04776 -3A23B72A16BABC12AC355664EE9B6B04A5B721CA4639CA95023277A0340461A7 -6679A462B97926BF76C7F195131037C2DD154B9A0D3A98E866C8BDC869E82B08 -45CE67161B336B4CE0153F42BF005DDBE7004F9CB8EAA04EF844E469A99BCA93 -49C80C550BD7B2EC80BE4F55ABA0E33059288A36A01F8487F2A4F3A8CBEC994D -1723CF8ED8AF2139DB41284C778AE4DA881017C72C7C67DA310BEFBFAE4E52C7 -4EA68B8DADCD68FFD132DC14E90614609CDF571644F78FDA212F7F7A8C5E0F23 -D30E3AF51161915468A2ECB5F5F5C9E51762AC7F914383E9C49EEAF70A7ADBF2 -667E9E7BFB1F89FAB292417B1C22726B8F3A267EF227D38C9328168EEBD65968 -EC16AA12FEA77D3813F871B40BF7F9F39F8E8AF3470984DEDA9ADBC52F6F3C08 -4C8F80FF637CB5941A082C46275B3112F73BF17157E47C27E6D5328391AC81F5 -18CAF829EA5655A28BDE6F2E09190462D920B5883DF1CB187FDC9ABEE351581E -27D3FE8CD81BFF94CE534CA166252417EE05223D6B6960D473B021EB8700D45A -529E96BED6E2EA51D0A97CD953DA4E177DAAD914DA8A304D978D5C9375C88E15 -3E3BAEE87A6AB1DA10AAE3A36DBB5C3E3249FFDEA9187FB5B4E2C7435A444F78 -ECD6D7C8623835BDDB1B32C7B97DFE8B7C9D4BAC01F51484B96EA6BE7B8B6871 -50F91362EAF19C28B61A8CCC68241BFD8772253EA3931DCB92DF492D40C3015C -C5AB21B46E09C60D5447A6D0E2A0032DA3FB31FDE5871821DE1B6D811CF9D3EA -17537676A4F27A7CFAC79DECAA866DF0B06137011328E28524521BE97E125A48 -99A60C474644E0CA13FDFE368778DCAB7ACFE2940AF8DD4AE0AAE2B2278E0D6D -0B83C70693BBE2EB0D5CD3BB572561F830379358FA9A6D60C7C77B7B5EAB61E5 -274C635D699558B1C1B4E7243B1662797BBC1813F637E2189ED5B5C09E81686E -6E1E41350D7B14CD5F85A4753430C8DB3BF724673001D8B354036CC1A4A436F0 -C74F4F3E4071F995A1B394ED974051B8F2C24416DEA2E18EC82B910EE38790FD -0B31A1B01322DE131054286BD668B32460EC9D42D4626ED00BD81141EB313DE9 -8EB28228E04B1D4324E93DDE0FF6C52103AFE6B36107138B0EFE799D5643ACC6 -915877932A4E6D8FA5CE24253D981864A75ED97434B96000F6C1F13879609403 -A06C9F7E75259C21DB01E44EE1F3A48C4AD5D7A3A2C7E28259E31EBABEA74CD5 -B842343EE409B4AE792C5E23BD81A41F099BBD9775AE1401A1B221D97D3BF79A -DA2A64AA6E37839755D5CF4E931B3ECA258FF3DF46CF0753B2E1E713C4E6FADE -7843B4750DBE4ED9C8194295EC3DAB29BE7577ADF285FCCF89B66ECA83AD9359 -80E08CDE4C2EC8FC382BB233A6DD3BD103FC026B8536D6584B27C9DC63CD6419 -0DC194F54D61BEB16071FA5C90F95DC4C3F562591FF9A2A63A2C4650865982E7 -91BEBC25FDCC286F7676528F957D263D0427351CA785913D7A8A3E8D432809FC -4450AD63F85D6305A0342D283E125FB0B933CC9E43247ACD480B48D069E2E495 -E18B9545A11370A7F168E3AF9F5291CDDC42D5156D9DF2291AB356DA52D45F7E -291B08922F2A90E80AB0F8844B54DBBDBEBDE7932FF7434423657F72DF60BB46 -EC4A759F33FFE566D772AFF7344E64D9F0AE948CE3D304C7306491BF51B2C886 -23921CA1A60BC33A2F8BF231AA6DE06064B3ECC1C83002CCE73F2F5656FC1CD6 -2B4F76326C0FB690930F30284322A9969969D9F59985ABABBE4F6CAA0D2D0FC7 -12EC2F4387FE9ACBAC666B6DE8B56BB7FF39A9F5D20482A4BEE46E23A37E178C -588D0D06A8DCE84C8496A367385C1482BE700D5AF732559E4A4CAE5BC8151AAF -1927F61CDEE49058455A25968C08491140AA6D7D90C5D48BD580E8FCBCC2B4B8 -D9C29CC7186217FC02FED0388F55AA640793431B65E037EC302A19B3B33EDB6B -4E61D3E4541F0B9143FDAB7A3929DE1970ADE1DC1BC0883994DAE7908AE5561B -DDBE61E930AC2FBD643E087848073710F00239920D8E9AF7F8E8BAA5BF9B807E -40E72F81489FA67B449644D3D826417990CBBF93EC44F8DCD230F5A3D9984456 -8B03802C7B4B22DA23715EBC245FFAEA7B0E32627F9E71CC94C0C3045FE52B62 -5486471DA7BC5FEC56A1BA255F3AF867EC3265B3F4A63AB0271F95488E267C32 -112395F977FE1DA953507136DC59FF3ECFF1EA252FFB82CB1ACEC541F5CB2AC3 -FB35AE5A4971D5632341A16EEBD6D9F2EB5F453AC9C96238C8265D792EB16E58 -244559A6C23C20622D44F8FBE9DD731FEAD4A6BE66CBC9B95A5BFF59B0ECBB4B -E17EF6D3E423A8E49C96CB4F93EAD4DE2335AAB02AF12FC2A9BC2FC81CE526C2 -F64A473FE386DFEE4E233EFC588C5B3650A72C30D2AE2664BFC0CAD9D5BD6433 -BD67298B1B6C990D5CBE4FD20C1EDFA6839226E606D1F66FE59F3EB47E35C567 -B1E937F9061289E90BD151BBCE16C9ADBC8C65D09BD8E9F87C403A0D05FF3D90 -3015F7E89465244616BA1121951C092505BAD32172BC5516645B14D60409B2C4 -C94976B1DF3CCBC33C66FF4F002528B942E88E8D2FA4E1B098A1FAECCC33C591 -1EC4AC61596D00B65C6218273819E46BE457B9C4CBF6F1A778E16AC64050ECB0 -C65549AA2528D51CC11D92E9A8E9ABBDC4FA91651A661C855919594A235E6AC9 -E3EF824B79E3088D7378B5055D155BDA9D7B909552AACA888B43C22188F2030E -5E7E8A38174E0237C2690713AD73CCD5262D3D8D1237C42A1924E5370568279D -E9D5B05C39E009B491094AAF4E7EC89D04BC4A9A2892A47F612FE169CFB3677E -557AAC664BDDA6020C6D74FDB5DDA927B9112277D87C43DD5F82A5633693C2C4 -80B16A9F6CA63366D28BDE65AF9B6C6A3E035DA5792D61BF3198BE6E0C04D0EE -519E388BC07530011FBF532F7E580760449476AF8067710F9F222B1E71A8874A -A0A5C0E2E813288322698E5C5C8CC7493453555D7C332722DEBBD0FB3EAC6246 -93939BA42CD6905AD16F873B14968C340F6CED94E8E8B28C4DC3B31CA9BD1E4B -2DC161FD50A44CDA71A0693483F1A7B41FB6F5833D39F638F54D85EA0B187649 -38FACCC8CCEFC695C9C8BDB87713AB89726FB69844ECA220595E123A4BA1ED14 -13222737A3304CDDBB8424D306518C6FE3D3C2836C0C329E9223AF0BDBAB627C -4344A00A23787E5969664778171B11CA2DDC70EF7AE514765E87D20DFBE9F39A -E1CF8F43F8EB9AD584F6A9876981C3901DFB457B04796C36D6A261BDCE3F1BFD -7945CC3BFB731769051686F1F0A877FA8DF81D9E72B44F3DD953DBE3006822DE -680F834BD66F9A91F26AF44C93A6BECB1CBC43EB27061001BA9D0F4FD8992A1C -6E73FD209E793D43BDB645758A712B93D09237732AFB2E5CD6093821DD0B90F9 -AD613062AE97713B69D89DF13D9C482183491E0CC03448FE256B885A157F0905 -DDB5BB4EDF93C4841B87AA52002F48AF2E76EF3C9862B95A68F760C9FC84D7C1 -C5E44113F2DD335F4B275CC3E458B9AFCC95060A2006037E2BF6E3445CCA6573 -FD22ACEDD9ED69E8F502B1F2D0320639250C0F356ECC43A27CBF91C87F5299A0 -A6613BBCA99A1B2DE7C05DCD91EF68F8319D3147254F9690F84419DB8ABE8BAE -398CA709A4E779307536E46F9E0BFA44F99C296019C87261E2B31A99D888499E -87FD66622FEB5F10945ABFE7F92688C723EB0AD6676F6F0B492FBB2BE7071979 -1B3154BB18E9389670E417B0CEE5C4873E5AB870CF14AFB1A601F6679ECD0424 -DC64A495A7D93B659D2A265372E2017E4120580E65178F61FC4558DC9EE3318B -46CD4F6DD2BCE71811AD0616BBCEF04C8CB91A3513694C63C13AB227FB99E175 -BF7E4EE6B5C264D76929E24518E4650CF5FB25D07CB75FBB4A9EE9349AA2AE69 -CCD0B30D7A1248281C6A95B98792933B45F5D0431769031F2D7CC45BDDB7BDC0 -D69ACA7D8BB1B8A3A06A1E6DA6CA290D59409DFDE8D154E9063A3C33597070FC -5F7E46A281DCCC5B5F6F840651AEA70AC412BDCAEB549BB3F38035F8F8B3876E -0E5EF8BF0F76D6495054BD4EA05CCAD9B3C7D438DD6FD963410D4C0FB5C04E74 -EB96B9258C08CDF791617BED9400B36DEFFD20DF6926917DF01FCDA0332A6D66 -EF42326069F40549FD62383BC26643680ACFB63EB8602BCBC19C6914C36874C4 -FE9368E4ACAD858A877EDDD5C6FDDF24B1E7BED3E2EE4E6029E3E6A89F513EEB -B56D50D7D6F4BADBBD464CA5B55FA60586AC6FC72890B28F836FBD9B19677F81 -CC9FFCFCEBF20E1DE04A2EDC60AAD896E25780A52EE7C5937ED25E3E80677650 -7B0E50C9C1F7D5F01AD68ED1049C2C1E36533B0693C960E4F9881FC8137DF6CD -00E95B425D00BA7CBFBEB9D787DF8CAAEABDA5A8612EBC1DA63D695C584A18DB -C3BF2BFBA90F16926F5BE3E945689FA0CE072872AE3DD8A5F917BF41D15888C5 -6BA972EFE29014BCC6044AF174E7E1354EA0F2C320F8F26E4C092D517C8A2C30 -8F3482388843E60764F02FA1EC26BE8AE517EA4B0762D2338F505409E4E60AC7 -F78280A9AD3BD9988DDF47C4FB3D7BC4D33E4D6CEEDA601E7A1FC21BC4F40081 -830D6224C3D433B4F2F1D1D7A2D451AE49B0C410A3480B69ECEDEB6807DE9DCB -3C5A9B237C03DE62D5CE10C507919B65C34B8522E9C175EF24BE5258CA785AC1 -72907A9A5EB54022123FEFEF9B1080FEE0CC1FD338C833C5DDB5AEFFE2FE5B0D -A17B14D74D8BE761083A5045399A9D3F8FDCAB0D2F86083D5D6795F9F631A728 -25C5ACB2267C0086E194BA3F3554C0E94602FAF0783CA4AA63E7DB6978103D29 -0E7A4BB52E90034FA9019232C8FDDEE30905F69DFD6FDC78A0A473F5AE7CBF82 -936636D8C3E6C6E8AD80119A38B8F833EAC9CC41C2110DEB0C7DF59B57FE22F7 -634EA89533BE3A8A9899EF54E7E6BB72820C9FA9F1FA3DD7E229D2CF56290755 -7BB5B672FF1AEB47C0966AD1978EB09B99E93E01D70184F37F5D6168251C0A36 -3C913D292428B08CB5ABB142FEFA0EC7621CCE428D3578515CABF820148C0DE8 -B5A21FCBE30757EE2B6E9E8A15F0DE4C0D100320DCAF26D06E39635262F45A52 -8E3F27DFA8FDAD2BBAE2E16B30B415D791041B5DD1818353552AEF6519A868B6 -F1BFB416B242A372066BDA80A0D077AECDD024C0DF7A3E590C6F830AB58B8641 -DA426B0FECB45FA3FC7BCFEFFF124AF6A5AB3DB6850831914DE4CE174E844F18 -87C469F610B6EE45AF70E2FC50485FC2963AD372BB1FE75E850ED5103A982972 -EC88D242A1A44EE80DBD34EFD28ED1AB9BF11648EF0D1E5DBB22E4716FA64564 -5C91F9FD871D120B2EEA0AC34BBC208706F2C27F4CB8D1F293119A155992A427 -85C53050C0E9FEB765F2155CB9F44C7213D906DA6D9CECA44EAE0EC7980E3EC4 -974162E61FD00A9B41DAE5CFA46C45E3FF040F58CE2032E7949171448AF62492 -24A61827C0185B11F10219DA6D4B34AA9A5991F3C0C5E39B6B7F3EE82858AC38 -C5E03D76E3650E188C2B53933AA36415FE06F16F73FC7E9D97F936FBD24C1EB7 -400EB2128820FA3CE0B92B5A2ED74F7AB4ECEF67290FB8B1FC1A63F886C30A06 -571EFA15F713C5D7683973CDB4AA7C1B6D4DFF4BA9D4076545886BB4B66AE113 -3B1CF78EA710D5C33C4E33CD0348E60F15137602AA974626666D827A748ABD54 -07E8F3776F06BD34A074CB1B74FCD8076A90AF026D20A2151041BCBA74D9279B -C1FD9BB9274D30A1E6CF963E384F93708691C0FD24537B92BA2DD32404DE8F6E -D2DC16340DC311A3BE9065B57DC5A6A47D9751068869CBCAC02C580F657201B5 -FD574EE2D1872513BADEA46E926B04C24C8ABE0C6B1E6905D9B14B3EFAB1BB3F -808975E72FA7141AB2F31AF6555F99E3572D8E9D8C603E568D77EE0CD3F9926C -C22BE8FEA7E2E4934716E6EBB16844FD6D13EFD61D5E21716AEAF1C99A501312 -C512F39291FBC0B7F06DBE59B522F38EF4726FDF78EFCFB6DA81C0F0DC853CA6 -6FE5AF0D804C8E0606DA77D8304433878816AAC947D5D8FCE1DA0DA300A7D5AB -4DF253F6682832FEB0340E8489CD5C124026C6D67D3A9C73E79C800F6C327DCB -B8B249AA9523A9986EE5FBC8710066744A3C3C1CBAC61816332327B514B039C1 -7F27FCBE9A18E3C5D22DFB3AC1A957DA5A2B2558C75E0F581D3E8FB4145A71A3 -D930ADA614F631933C8075D097610249113F44B9DC1A40DF6A680FF5A144E955 -693523D7A73D88C6A297CC0746AC24FD8EE5AE98C89CDE15D269466319D6B37D -E375136E7B07E6F6E6C3AFCF3F1BAA43652BA42E49F8AAD5FFF36D23E9163423 -3770F602C407C7434E19092B0B612972F47A8604F46C56C5AF358A634CD3907A -A57020509D2380E56B7B112C1F4C5AAFE3A447A3E6C7E922604D9642C003C6E1 -F6DE327BADB1142FCF9B7B5993590AB6AE199EC5B021CF14EF85F816859A40C2 -F88CB2EFD9ED40283E1C0E0AEB3930BF33604149CC65A2220FAD2EE53DAE2C4D -BAD67336FC89F99AAC450215A318FC043BADA07A56DE65B8A81FC5DF0B61ACF6 -552E03A2DC3B301494E89A014C958349B438C6ED0A2771B13C29A376352035C3 -B257CF88AF797AB6ACFF0CCA4462DDC9B0EABD03CD5B05008BB3C552D457F81C -BAD15BE4C7CECB2E2AC71417857014C64A9CCA0BF157CF21125C6678B2A8DCA5 -B2D25F2554BB61FD02706AE513CC507C4DFFC2025C5B8BBDBD0F1F1195254F6F -DA941BF910E0CDF516445B09A4AAAB128C62F4BA4B9566FF29C5E563BE12DD2C -5301F4E66CE800C112BBF378E6F3ABBAC5D39333A1D51C17065796F8A410E4C9 -AC918B945235CF80C63C0FF32A58E635026C41A18838E1AEC97045998CC00CF6 -00B5AD09DA92B8C43306CEB793F2A38BE979449A3023B9E3D7B614F3D7DB0767 -F33C90719E820DB7B2AFD66A40846A82259D4148B7D92E9AC3B9AE22959745FA -D59836DEE8E3303F6FC95A513BF8F7C76D7EB70821013B2694FB2691B31503D2 -FBC9DE2E1E8BA66A2BD5A51C767E3AFC20BD22391BC9E6D53491C513B84E6A62 -50F3A04A5CCF1714CFDBDCC57D09CB45054B2555D9EC59E1834F8B415573FA46 -54190E4E727C4588820E9A71C139238D024952FF8394D6F8BD8485C58F9D367E -3B4260335BE6E8960D72547F75C9FB19F382A596468A838E8F92837D55422147 -E20D7EB823CFADD691D0012FADE67FD5A61E0B5626CD364C83E1969E09A3168A -730959CD3D3382B00B1C8B733DCA57FEBC6C8CEF8F5FD305914DA3469F77145E -8C75F76DBF30B05F14BB22039A62C825FB310ACCBD0574800FC330618521194B -3330AFFE37CF85674B78EBA968863EA661C9C0853B67192642198EE883E8CDE7 -819F372A3CFC4AC0474CE23FE91A2E54C334288DA4A7F900F8C461E6BF299962 -A20A44A4056805AAF1CCC6410711F68001C01CDFE9BE9C1FC841F48590942E8F -0BEE595BA803E2EB5B171E891E68F51A8168EB56971FC6E6DEF12389693DEA92 -B901D6E522E098B2713ECF54B901CB8484DC449D27F936ABB4DCCA0DDC259482 -5FEB3827DD27242A12C52B7D10A665B3ED7ABC10263EEFA28DE86DAB55F678A1 -9F80AFD47CFC1FA9CDF4B73E2B13A8684D706511695774F67C071403E2FF29C5 -EC429EC5F1AB071CFDE6E3662E6169904658B6860F4407EC06C7E2630FA9D04E -4501E4281249E1E17F04A3A2F1E3F59332B6F5D4B19F245EF43D5F7E278B20A9 -111D5E0861BCE94DC651389C1DB89CA3006BF570992F821C28BC8C970658387B -2F85204231B5ACEBAC1CC590E8EA9DD3A6604B49850F0D46FA4DF2DF0D018FB8 -A5919353FAE01491EBAA77DB74F10605FF7702D0D598E47DCB3F99E0E00A1EDE -7B1102AB66929D68C5426C581B53BE235D356B5BF9239BB6221D3088A9B38C98 -6937AF0BAD38B1318B7BD5AA659A2BE98E10BC456C3BA2AB26935F4A1F992363 -313379E8E0358C677B0BE5B7D23954FB05B649519CFB71A2B50AECE3FCD73B79 -30657E91A3604D29C4BF236A6231C7BB73A3F978F1D2DCDE948F341309CF6D5B -DFA5566AF291F0B2F3A7CE21D8C91B5151AD6A93E7F003805886D07AF2E4A6F7 -F01AFF27B73E7E629D61216E13131E648C46BC4ECE689EAC53DF65D168C1CD66 -26AD07FF78F4E5E5E0699DE2BD0512F97D8732E734B2CAE0CE2BAC2B443053AE -98955B6EECB7FC1F8101E53E35EFCF8FA439B225FFF2B7676529E574008F9650 -77E52080DF20FBFFE1057B46DED128BCA2F54F22B3D08D599CF42E4F1B302C4D -3F3EACBA2C2AE854E868C4D094BA6B1703AEBEB2A3A9479DA3F32D44178DB6E1 -829733CE03C99E4D5A168D364D23AAA31C91A0C4C7F133AA97BA99DD395B4304 -3DDC424BDF5C5E152896E47F32C6B0FA68E3D946FCEECF1CF08A99ACEFD8DA9D -73EDC5DF96187AC908D2714913634860D782B225487A3A10C8B554F3295D0221 -716ED9968594D800086E8473163852B40F8D202EBBD49401C8E86E01A0499064 -30FBBA59BCC42E9B2382C689725B80780C57112F1060850787FABCB3E4C94845 -560E5F42139A8A015BD311A362F09F7673A65BE8071DF9AF8988561B87943A02 -D481ED99A276B3FB4ABC5833A12124234C34395C1DD2DABDEBAFB661EDBFFF45 -1DECCD8A6507FF08D5CF94E9CECD6A8A858283210812FAF06FC40A672985ABAD -326263C49B09434A0DC3D014822456E0D7397513E552FD0B640AF4D94845B640 -E9A34CD6EAF3FA62BAAC7CBDD783F4D30904AEF1630A4BFA1DF7B0A02BB479BE -54E34D0460986D076A9F665657C16D5A44738037BE23448B3459EC5EA88CFBC3 -A034501D5DE223AD60CF1CF8BAB33F25E17927C72F941E3839CE2A0992937F2B -CD1987AB4B5AA20B328F0B887112FC03B49D86E8D456A5A1B4B51C47CE7955CF -E965E6872E65868E1E7CF79BC6D0B014DEA3DF5B7D425AAEA7066E9C3209B434 -1ED97364353C337EC00A09B2FAF670A03E53369EA4B7918291FBA39CE1980E65 -AA15C46BC702B4B62F44F6D90BAF54C04839C6A32ECC51BFF706A72DA5A6ECA1 -E406EA945B572B8626305D3F7086445C32F6052B80FE04C3D87B3329B34B20E3 -6D73FB023383B646671703F14B96F16DD7E40AA4679862764413357373A9C66F -0AE451369BF3B10AC4043A3557849AEFBBD4A3C67433C87C1AC45129B188682B -0656A79806436C195AF965617D7FBB03DD7B3EFD21B4B517FD6D7D9D87A43AF1 -EA5E1E1CF74FAB8607284497813011519D6BA9517DFAAD6FBFE984C1C6702E8D -11B38A9214F20141307125C21565E68506139B2DF3457AB87A55D1E7F042E7D9 -5DDC18E63BA012D1E3F676338DC5E0DF447F4AB47E8C1C33666442C06CA9A11C -5BBE0795806AD63CDC33BA5E9C51B6077A5BCD845FE4A0F3227CCE5475F7806B -EDC20AC123D34CE54384945D9CF694ECDE779FBAC502D0E1290EE53F5C5C0E5C -9B5C842578B503DB0339A38C4DC28E46DA1107CE592CBE3362F5ED8B8002042F -BBB87A7C5BD25AFDA7267FDE243A4D15F2AE330A7A39AED25A88FDF019239E37 -747DB435A7BA52D3FA118BF3FE4F0D0B52A894B556383C2ED16E22716EB8044D -8740AD6CB7FBAD446AB8397E3843238221C28E4DC6D5E627A9A847A69CFD7207 -783EDDF7E86859317BC792A79C8F8164DD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSL10 -%!PS-AdobeFont-1.1: CMSL10 1.0 -%%CreationDate: 1991 Aug 20 16:40:20 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSL10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -9.46 def -/isFixedPitch false def -end readonly def -/FontName /CMSL10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 11 /ff put -dup 12 /fi put -dup 42 /asterisk put -dup 44 /comma put -dup 49 /one put -dup 50 /two put -dup 65 /A put -dup 69 /E put -dup 72 /H put -dup 73 /I put -dup 78 /N put -dup 79 /O put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 89 /Y put -dup 91 /bracketleft put -dup 93 /bracketright put -dup 97 /a put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -readonly def -/FontBBox{-62 -250 1123 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142 -08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C -30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF -C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A -BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78 -5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D -43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1 -374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23 -DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4 -B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83 -63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B -89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A -5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2 -C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5 -7A5FD1B49560969BF5C44F3749370663A04776F749DDD7B50674D93254426C4B -EFE264BEE7810EC93784B7C01A7F29EFD92547E13A2C7851A2E709FBD5B87850 -4A44F08F56A542DBE072D2FBC58D9E6468E1AB858DC35240E30D31C7AC13D6C5 -7D2BB634BEE96FA0E10F842B11A789F72A333DD6DDCB1BC23227EBC406E50B40 -30AF0C48E6359AB0C46898CDAF1118E46BFF8B00F54EACBC2AC262AB898C42B9 -2E080C10DE923C18AC1BF8FBE2225CDA0DD6A2030D4BBC9F539D6B2359239A8C -F41DC6D36BBCD3B89945A85BBA233B855A3D77876A5418EE11DE2B1C501C8280 -73CB390855D0C3E7F0AA8DC1F52C72B1BE0D2DCC52F46B66A60E2F950D78795F -6B9A833593A53A9CEC303A695BE815C4FCC65EDFDD46555EDDFBC6BEB2926852 -B1049167B0704384E1B13914D3075CA894B46A02D787AC826FBDE001AFE9559A -51930A86C7EDF6C47D8ABADF5757E0F5612C5001C8D3326842D7DC41FF034E91 -AFD8875F790FB86E078CAE8B5B692E91D26E17911FAF2F14C89CDF6224F6BB1F -9D51F02E167163196D7F9EC9570982DA68DF56ECB84E40B75AEB2284FD51A06E -4366A3B321D37D320F5950BE6B5089B63CB2A3E10105FAB32BB5CC471DECA17E -3806F48AFABB3A64A252385913833C019268C09433178CD2C741F51EECFFC3B7 -72E76203B758D1900430162C35C03015D2041CFE0DFC1F38B8AFF83ED0CD2E03 -8CE7A2DD7037C168AA38223FF4B69CEBA7F9072CE8B1459B4CD8BACE2C0006ED -67616FFD9AE529642BF13E5E169444C2675C42549F0BBC849FAF7D96CFDFD0EC -CE7A5DF7F6C51AF5708B3DB2A72F8B94B3B4D86AD668D9E1FDE093686BDD6868 -5BAFF04BBFEED3CEFA61419AA6DB6842835E95AB10B233BBAEBB59DD3147BDBA -529E8AC184749496DF3D919DE658F876B5EA2D6FD89C680A64F1631E7CBB4A9E -F633DADBB1EC36EED304B37EBE1CF698E63B8328539AB6B16AD592E6DF5F26D5 -969C9A949EB3A6C2587F61FAA472E4DFE27F4FECC9B902A1B169EA8B60E66930 -0402A174D0FCF534BEFF21460E909D99255F8961691B95193430E0CF198F26B8 -63A83A3F47BAAB3AEF04E39D0432F0C13082D35918BAEA09C7FAA0E93FEDC258 -9EDB41E55D9EC83C30E7E0748FB941CF773000F56537A334AFB700DFEE7C610E -E1BABD99EB26682BD9DA825C75C49014399AD4F9E313D4BC5D260261C85F954E -A54741C03BD9E6C91004706EB74BE58FFD246EA736E843F1D3F38A5D98D1F8A4 -1E03620888E75EE26463D4B9AFDB914EA0DA8E332693F73417967F9642DD8FC8 -D6D41576E6A0444C0620E9AF2A546479F9AAA59D6C2C547DDAB0C41FBFC76A31 -E39FF23EC8CC50ACBDEDDEAEF048E3A925CC196D60EC5856CE453F4DEC63E8CD -0E954B2941E0DBCF9B57E8BCFD621E60D6D1ABB052028CB95076B9C04C645286 -5E0C554B7EACC4F614AAEE68D8376B2C1E30B664DA2C9F4F4EC403AD9C2FC246 -F96CF79AAAD7B2BDDBFDE889CA70F8CA0E16E344DE29B4A29F222B89BE1C54C8 -42405CA577AD975E5BBCD37BE8B8314429784B04B22D78C347BF0FAA47784612 -100741ED1446AE6D80BDA7C945C826C8117CEF0A3C3DB3E08C44402C2D9CF14F -2C68CB9B96051CE5488F10C50D4990342687DEF23982B111AA330AFFAA723300 -66A5A5C73FEE04F0BCE0EE7E3BAD08ACC64C169A72BF1A875A1E3E6F04D5C81B -E622C12FF806E1BAE08BAA507962682D42388CEDCD1DCA2B2A9ABA08AB19BA31 -E4B7E1ED8CB498C112A9B485C0638D7ADB6055B24E66D8D4BEECD5A4EDF394B9 -C51C5A54A5321A50C6F50ABD2AA1A253C066A53825A13B70A6212DC4BE41CD25 -00A0C79E4B634DAF012D9D95F78B462FEFFA290155F0B9AD2175A5A0B0A4643A -D6264A28D52A847F4BC2879F4FDF7BD32C4BB48EECD6DB385365EA115D9226EB -C4C8B5182A8ABCF811553D9A39F9BC8DE1E3EB556F5817AEF2126B605A4B015B -53C2BF69E1ED317AFC575141980456AAFDD30091815F08B9496D280E6D6CF4D0 -33DBADE7BA13AC91722A5B4BCCAD08A5CBD321BA281FEFDE7CCEF37B270F29F3 -1DBB4EDEC801002FB8667BFD54534E75881A8CF835CAFF03D95CD086340B14C1 -86449424907F224D50EB80CCD5C1AE32C5F3593148EFACE9ECE66536301BE18F -E6E0FCFF6CF346480930AF015E2B5CD6E5B0371D24DC4D79458F4B97E2403430 -D8A1D7132724E465612913EB780D416FEFC78233491AFFA33D39DDBFC0494B77 -B2D238CF4F3964D6DB0E71E108169BDFF17CB65E7FDF38F0693F1F8D3C154608 -FBCC89D5BCC050990C405653A2E29C5883C8EF5AA3BE37650ACBCF7A6E27A915 -1EDA0DE8171DA47FBDA0AEC8F9011439E88C2A601A76EA49A14E7CD30C7B3AB9 -9D051C105A367A41944E9B0115FD9FA5400F18D14E3F37B04AFE94F50AF7A964 -1F58C8E8AE5086ED8C94AC7536A6B3FDF7C07306EA8B7C37E3FE11F929887E3E -9C88BC265521CC644F664A7191C2BC51C09CBDB578D9439C291912405F42CDAB -8BC116611522CD2DD21BEADF45C93B7E62CCD87FDBBAE77AF779915E1FCDA9F2 -069AF4F137770F817B63BB44A28760F017ECD8C97980A214CAFC4E32266AB19E -45626434C4247B4B215409C94590A0FEC286074F997B458E7DA64A51E75E738E -669D08853B98AEE3136813AFF7A907CB5E2E4D4444DA17F8B3A63D5680DE9616 -B105C4B396A14046A196AA24B59A5186F3F9238EA8BA47F4715AFEE5EB5DFD07 -ACDFA5F8C9F34636E2AA548419AE15844C525F9C464036B322FBF73B8234B225 -7C7CE45BA27C971D62F8BBAF2911CAAF79B2834C0E4CCCE63F58647822B3C31E -70B53F25D4CAFED1CEBFE062B5B00EADADF20B3011BC057D9D8D51485B1FB174 -33661D731BC9054872CF4C4872849D90AFD2204E7C095D302BBD103FD89F25F0 -A42000DF3194AD1A5EF67B07FC717EAFBA9BBDA898CD317417E60F6EB5E2656C -92DC4E003FEEAB76EEBD8FA4C073A0E6E2F4DA8B3601AC0EC8216BC9ABE08773 -0C49EDEBE230A22C717A5D8CB85B21BC70EA97458E8CBD2F9C5D71666941DF8C -D11842D29FED3B07A7F8F443B686976D18124FF2047EDA675E2B666F29839E05 -535053F74A6AA8CD512530F53784A1821CCDB3DC540039353CA363671C1D696A -E24F86FC1761966341CD62FDF4C35E69B63117B9DD57F7523272CA31EB61F711 -7088506DFB618DF071E107278FBD1C55CF28F1FA563E65D7CE1AF3C89941EAF0 -B6606FEC9B52291D38D0C90BFBD92A8D87BE8E6FC26273B69E5DDF79E70750D8 -DDA4C123C9E2C55A1891DD32C0ECD45332D0BD55E31041ABF3E38EB800BCD51A -B6A3AC030C4A4F71949BDED99F89B4B79F2B793BFE196F6FFB4251ADAF78420F -B075B528C0065A42B25FD8D9BD861ECD0DFDEE641CFA4BE33ABDAAA3E840229C -5B841FD1F81ECE1352DE75BE19EBDCDBED06D64926325CAA2355BD19FF8AA895 -02D0BBCD021B20405AC6F951DBBADD2F35D40813376DD0FD133D8B8C6536428F -6D994EF518C84C2404846F2F20AEFFA435C169B4D49D5078527024CC3DD63E20 -D17ED3ECA36790B330A2BA6B880FF8F1514F2DA145CB2951E5A5D78648BFAD43 -A0EB8E46468927A65239B41C86524C7E5C747FAA682DBA7226C8EEB7F9E595BB -69E5B158BEF6F4A9E5FBA17B181669159361E08BEC85D8AF29BA2372939B1EC9 -4DFBCD30875DFD53207FCDBCD95A1B4F73194EC8736F07C9A50B38D784F3395C -446E1297110DE73C912C67855720F257CC60E30F7BD257C08C77200418A19CD6 -3B3AAF2054E1A411EF3EF7FEF997EB33C8EE6F197C8B2C876BCB113CEAF0BE95 -DAD6D4969BB9A3A9F7B527529CB4770A367325E732619DCE0EC17F64D1AD7439 -6FC0E701BAEC934E13C4C4514A0B8E5E607B344A8066D313D0DEA98E5EA4DF15 -6C31D2BA20B8F68E3CD47573D79D44249C45BDA475CC4EADCE9C8A447745C288 -73E544791B256DE85853B228817BF3234BC9715DC7E4042550F1F9A7409E90DD -A3D84B631CDA78A50AC1C3C9A45632FD78B3C2DAB79BEB134E6E1CB52F5C49F4 -7275BB4C962DB61342ABA3558A6C8E3499B3E7EE976F069D10399F8965F6E557 -1E59B2206DC1CB052552028615153E0E45B9F230242FE06D21A1AC5C780432D6 -1E1C058F7751C9908CF9FC85D58FEA01671C9E9059046B5DCFF8B434CA359995 -EB839B9EC905CFBD82AE8DD90E4A6F9FFF3B8F5E3CEA9BE6E525B5FE1E987B0F -9E7DFA55F685A92CAEE923604F86C6C2451B3EF7079EDE8B9BDF2BA78A17153D -7162F9C29E445F5CA7BEE5753C651AA72D17210D82ABFC46FA9ADD72162B577D -4256A767F652133A27220E2AE63AD1F6F2EA7BBDC605D26E510BDEB31E7BA36F -3CC3FB4E58F0053DA847AC21DEF08BE1707CF7A3A1F3C31747D803A9AE74D4EB -966469E8A53FB27E49558BBC0049D11D6BFE27B663A045FB02C6C8C0F46CC5DB -2F3A77C2D6B18B21B8C535225D7E3A7C7EF8B2D5B2263460928CB2E9422B0D47 -F115DB92E454D7CCDC32D067540C04BC37F7FBE758527BA6B76B5FA91F24972F -69F8C8F67BF2C75E8F671A2B9CFDE7E1362A3B9087ECCBC4FA2B10565D9F2FBE -070BCB381CFA8429A2099766CCF57F574E81581B248E6892679DF04F8B34C591 -499C1D0B3AD5171DB93F6481E8086E93BBD8C760EECFAE98D84110485D7CC0EF -854E9353AD3A3E32C63E8432163F5B3723AF4738C1CFFDDBBEF5B18ECBE36CBA -70F237522D5115A4FDA5FBCF9CD06D99AB64917CE5BF3D33DEC1D2953CEC4B08 -DF4E6E938F64AFBFCC1362228420088B57028063E72FCEDC9AE4D43EAE5C0CD8 -790BEB96C0D4FE43DEBEBAA1139808277E7EA873AB4E605CE9C69EF7C63E2905 -E0A43AF11DEE11D677B2EC6D3F68DAE948CC5C1408A26CCDC641273CD2EBF3A4 -F4E4DC3660FAD51A9DDB368F383B012314EBB4F030A1383092E79091EB2D25E7 -7BA8DEE101FDD268A159C0C46B01FC6200C31087A0BBDA4325AF70B2232745AB -BFF5023EE6CCCAD7443C6CC12DBEA5350B28A1D70812BE23342AA80C59FC81B7 -C931030DE9A322D9B1B1C14CFE4E85A094D33FE36D41E90183BAC0FA97C4F138 -02FEA1F510DDE414EDD1C9EFC47764726CCA3C2C73F484E5CF556BE6A0DC55B0 -A0E008009A193880CAB90D854BB1A0CE6EAFBFE6D1E3A4C4D900BC6099DDE867 -E96E02503DB66E02F7AE2A36FCD015BF58AE5EB115C1B80A9332A8748A52F8FC -B139E87AF5ADB045BB7B1A3FFAB4E90BC34002B2F6916EA804DFFFF1F65C4E97 -C4E144BB6EDC906039C71B44AA3DDF5BF5F072E5687B07096828D25065E78DCD -A39620EE567E59153DCF1D2FB690C156569165AFD93CAFC150EFB9BE4D272776 -1579D3ED0571464EC089B2FE2D655F4D260C370AF131CC53CD63542E362B9C90 -A2D0434EB6E3376C634CB203B796B4D5BEAB9B0983BB197F58A7F0CB3F52EF73 -B73964D460DD2589F392B19AD2FB9BBAE1C39D87553F624AED4EF5AF339F30A4 -EC40DB9A29D4A384B68DF458D35C2602165C2226997F86DD42D4A0068C03F4EE -A1807451C69EAACB81772BFDA7F46F16E7F7976D6A4FE8ED08D0F2BE13A1055C -015647C14154358BD58990C1F86AB962D80C91C92FE2720268B38073076274BC -DCA5B8B0ADF8851A54E12DA2EF3BA6AF7E9D83EEAE99FEBFA2CCC4A09343A455 -014C9306D155E8D8EAF9CEF6C6C6143E2FC385F5972485FF37B67249F2A56A0C -23FFC3C2F63976BC6E2455C36B4C1C09C976BB684A7EA770D34B348416EF27F6 -0D8F9194085FA4A554670DB1AA724413518419E1A017B347AFBC2F6FB5FB1539 -916D2ED293B818699A5443E88F10B383537BDA76C31E4A270193E557E7C45FBB -0B65AF75EA093E4F9E813B76CC48338205C7A931D7F00B15ED2C827624B5B9FD -35157F58EB85B0CE8A035200F6340506A62E6ADC61F5B5E1E9F26D9C2DC3D6C8 -4DCF6B37FA1BB6BA8D94DB0BB51DA77EC62E119B37DAFE27D8FC1373482EC73C -61A52BFF73D72299963CB4BA533117D8FF92AF9772109BDD1C31551DDA0EEFD0 -DDC0CA2A38F676777ACD4FA88AF947645967122D09C5B66D85CFD618822D8B44 -96589D6BB3F2CE00D39056AEB065751490FE39DCE3B1EB4453FBEEE0E5E79381 -F533EFDC302C1FC4DDAD947F0FA29C76EE524E66938B7A2D1EE060EC50ED9FFD -DE8C8DA759D0A5EEACE2957FFA717E13E02E7D6DDF6981D72451EFC9C9B5DA73 -05E5DC46F8912EA7780848CBD2E171FDDB96B2CF79B8DF58B66B940F63346458 -BC53113C2280702579109C583547FE9A2CE7A1F0E6C31FEFBC81856AE022C74B -1E89C024392DB8F2B28EEE5AD31371E7BE919ABFB7316F288719B0D98C6D66AF -37522A3933C3BE2D481500C67CAC9887E68312C93639BB0A382999D7BC1F7B16 -E94C4300DC17BA263715B7E57398F1EA872A27DB8BB07066B3ED04EFF0F2DCAA -4C7B2C8127AF8D1C2512959B0DBC59D1C704E320127A3617DFC764EE03BA99C9 -02DDD0378BFF1126C32F79CDA9538D5DA1C5E837F6CCE987C76F6DEA4C48F166 -72D6875FA01166DAAA78B4CD21D506E2CC10F8D01E1DA46DA50B9E27724024E2 -E8A860FC66A48FFF899DAA88CDBBE5122B773761C97F2912D9E56AA4B1B97B86 -890EF9749483BE4BC1B8AD2F72782D366F0288B589540B4D7BE39D818DF4E500 -D01ECB913D5D2B79E330012B1E4E704493A68255782CBF81F3A2A4FD53D22CDA -AFAC712132D0F906F1FCAAC5A7A8D2BE620FDC2194636ABAA93BCDAEF7E72E47 -7E262DE750184FE2BEA2D84454AD179862FD5E9618A9CE4DFBDC9DD1259056AC -36C99E4396D82B387D26D0CD3C290E33AE895E7E492ABC9BB6EBEEB6D0D75E12 -CDDBA67D5C17BD9F7F962F0E39D725C2C5EFE217BCF86F8526CF172FE8AEAD02 -A48AE32AD9E63EE640C6FB08E1B5AC6C3875758FFDB7AC571DA6CECB4EAD0C3C -80BB8F34B727449B0717A0E9CB26BD0550F1BA59AA70F5EECA1AC774C12D1DD0 -E4DE30B288FCCA04374230383ABC61B950E14B5209D4AD6E32E038AB2E22FAA8 -1209829A681E7430F7F8E7C9342284949FC4B944FDE91D9AF29CD6A31666ECCA -36AC9E997DA92AF7B623703E1ABD8A59451742901683F21BCA15A79D5A5D23F0 -86FB61F81DC1B405535F39431C54E53C16277F145EFE363BCB1EF1471A0B9D24 -E644C8F96B826F2D7697A008BA17705865D9BEBDDE7A8204393BC34086F82352 -DA9C0E4330502B84F33E3F53D7303CA62EF81789FAF1E5F53F2A9E5780C7851E -6B4A9BDA871188A1AF75BF5D8E1DC2E88FFAE726D4566B66DB9A020410B54162 -28F790576FE59251DF47187846B0D69DECD5844C6FDDE81021D9EAE38CF44040 -574058A2A706E8F21CF1AAC6119CA3CFCA07C8A0E5C436A2C4DB6B51F9C0D9B5 -1B123E6D71E4B26397A9095722D5FAC0DA055456A3B04D1862359CAFEBDD7944 -ABBA0567BB0219DF005AC268D23EF69F2490FC929AB405A887F6401F6705F982 -88D3E883ED94A659F267FEFE257EE6BDD9B261B0209D6B47343FDD562B2E74A6 -B2FCBEEF091C2224D043403C7975686FAC9A89B44E09FDA6D96B895392858BE8 -E2166425C35501A3EFD25DBC5C724AA5B4B7DCA2E0FAFC3EBF4F41DA68B403DB -3432BB7307556B6DBDB22A610C271BA11EE0B2FF584F6806188B1EBF20535A10 -132FC19333A4696FF2BDE87F46EDCCE72B0797C418DD8ADC2FBADBDFE2DAE374 -473249A1A65597383F7F7A85C048658747DF7AE294279D3B9F3C01D38DF21FED -539FB266197AF3D6EE8D9743C937F44E31B03718675F19B85E3BA604CDFBE1EA -888953EFF9CEE3DA56A40C795C0C13185DF2BCD958BC043165B998DC6BA2E088 -9665840B8FD4F10FA616D896E4863532BA3CD7B78FE429D70C13FC5AC40EF399 -555E340D8EDD2478108D798382CE2833106CB5EB2513414B064912B106217E5D -B59A6B5D6CC073886162799DC2AA421B54AD17E387E996A8EA9B1989DFDD640E -C84409A9882EE9A901614FC629348618A8A9840CFCFABC20E25BD2AB0CDFCB8D -10AED1A28EF5813BF43BCAFA2DE59A03678EFAEE38A5A1CB07F3EFD4FC1DA5D6 -C9AE2CC0975926374E1823B0A3426507E0EF1DD8E2BEA64B968CA191A1D5F997 -9BBCC83E20D07311964DE3EFA784E86863E618574B03B740B06F433B1F876D08 -A611B54C2922728CCDE265AA0E0EA4867361C65C6139E4D5FC776AE54DD8158A -5842478CC1A5F34D17F4830C6C6BDF8872CE2A2925D8D303A93DA22218F6D3C5 -7F4DDF93C2F530A542A9F2A26CA49F7AE51DADE8E7D069582858DABACC202814 -249D8EC2FF53F4D847CE2F87560C9E1F4AF60F9B64E18046A5F75E4E2375F7E1 -7593CF728C3BB9DA9D3855A5567BEC44D9510ACCC7AE16C6A5B3FF543A9F94E6 -606BAB6F087B824B336853A5CC7776ABDFE7101F9B6635B9276D1E5F2EBBB011 -279ED882E1AD9EA838EF929B4840DE697119E6E02FB176E6623BB7B64620B62D -6D565507B49AFB7BDAFE8CB8D8AD77F01E2C4706D7BF56FEB5E9A41B274853EA -FBCE362106C6CC4C9A16203F1CC874F603BF841261EDA92474D909804B30F8CA -07F68A8BA0578E4232E58B38C705806601CE06E7BB0B44AC7CE5BD54B1DB971A -A1359694CA68A561D9492795B9F5744823B24FFED1B787EDE15888130CA70B47 -77B02C7B177C36565474A99538264A56594B72B71968BB2DF8E5014098F0FCBC -4112BD4211CE5AABC84D63449D0C33232634F23684D08D2C965AC09C088FEF3A -9142653BEE405C3643D5A1194076F03C2D66EC8B5B2C8A93E6F255D6D2D4BBCD -9545AC6F134A19CDB4A2448E389275D751D7FA00E1DDE2147D6FE6DBBD3093C8 -480172A231F5E0AFFFF07480040959A2AC805CD768EDCFFEE26A019ED359B060 -E9E344DDAC7F7A4E8AE4E463FA54A37ACD5CE1C531C7BBF15A9D203BCF64C0FA -57DDA15326A40066E9071753405C4A69533A8120C39FC8CDCF7C0CEACA98AA52 -AF3810B6DCD1ABE505B9F45AE65E54622FBB10EE876C4EDB8816BC9C78E21181 -E8054CF6C9AB0DD250902EFFAF6416D6DF2AB4D586670720F58DD6EF5A1A4185 -E61FA66E6431FA553D6C8AC0C78FB94F2042C02B5BEE2F96B47C4F7D84973460 -A2D5EC835DE7C1DFB26C716B02E27C0409CFEC11E6F87776976EFDEC184D79F7 -6A4DCB3698BDECE982150072A8F6A243A6C67169A7B4DD06301383F2191F2A32 -2BA5706FF491472EFA11C60EB7D976D328B598119E5443D8C8E689D9929850B4 -479B875433F5A8B4EDAC69DE064D73D3542066752B09E3CD22DFF7F4AF080191 -2FC9DED253D1C605616C07C7A96A446B5EC9C60B29DCEAFC41254EDD45A2BDB5 -3424BC7B1F40AF026045629409C0D4919E77A499977C5725CC4E7AC107F81A0A -3120EC253D6FFD8F5F0E43878F4B417EE391C6E4240DD78E8717F8AD4B87F65E -1485539004AFC25E1CFA30712EDF1B63D27F04753C02DD5FD045E9FC53579B4C -2735783BDCEF0E3D48733B1B4F7DFA0ECF7EA2B5BFDDFAB66BA91A4236C60601 -C32BE7E2A17EF0415FD35C0A80C038FD700A6A459916930C9A5ECB406295CC69 -6D09D5A4677A6878F118E9FB4733977F3B2C7FB80A57E52EC29FF8CC89BDDB1A -183AB1AD0627E8A2D76A4CF0475E9DE81A2977F9E7DF13DD11362E1A7DEA02B7 -D2FD69B46DF664295E4930517B27ED6A65C017ECE1D189A2EBD913773A1F965F -7FC0CE03A6F117CE4C4716A5226669483D8252C000C605A3CD0E03A6009E4FEE -CAC3CD8DCB11393F5D88232051CA854C00D935F318BF740E457BFCBD89B70C96 -D3FCEE4C0309E607CFE57ABA84496EFAF6D05C075B57795AD15C9C6627603459 -7F3C3208BE41E83B3BBF776AB7409F29A5589CB20325B4FD3A7C3EA79C11E47B -1741522063701F1D5CEA7FA4CA0C7A3CE7190FFECB8EAD8DE7888246D5559083 -E060DC36F4F82C6DB3FF34D52A413B06B74ED712691C8434990E554F57F0AAC3 -ACFEDBEA804D83BA346B98A7AA92ED1B10E7A1530CD934A6CAE218A405CE8B3D -9755F7827A96954DB1F5447BEF21412334CD103FDACC48AE6866E6B0069BA0BA -16EE4588FA885307FF64D577280B2EBDDCE85192533BDB36C4F5653EB3B19F5E -D71F505115D92801CF27F4F3EB1E7B3B18F5757DB08593C614AE300542F87AF4 -D9EF2CD6B955F6860502EC2D64036FBE1F7B18772228BE7612074DCB67D1F45E -684FE5785BFBED4D86E891585897BB06C9EFF060D5E97F4C37F8367846181825 -3BFEAFBB9FFB24424BEA55E26C937CD4640C122880D03C8BFCC716030E1DD72D -3E78C647DD020F1C3E7EBD443721310083CD29990E349C44B9BE32B4A7825D0E -120D28BD708355F76C20DFBD8DE9FE24761B948EED734B37D073BE847357E81C -8A88FBDFF0AAEF65B52085E84C3936BB44A9F0557E7F801DA90E36EDC4B99597 -D3B2F51AD843AB021D0A9D471306F9AB534F4B1DF9DC3DD03DC82DAEDE4A4F19 -AACCA8C3302261BD558D6CFEC06CFBA970919CFF3EBF49F284B40961C09BFE06 -FB395BCEED75EACB8FB6E73AC87A1B54EDE8CA7A69F88335E95E3AD897156E48 -C84D9A3938164354984FA293DD530F115D2C54DF6E8C91090D0162371DC5FD7D -3BFA381F661DA4532FB4DD1041FB5FEAD1A37EF0D13E46B7862225D2EB773179 -735D1BB9257BE0E6A5110A090FC6899C246059DB9D4088D4EC0C975D62063C03 -B26C4C83C6003E6CBF6B938930807E4453B4C97806ABDB50D7DEADD7F9E21D16 -9FE1BB10A5EFA12CBD4C69C28D9E4CD157F02F385E42E5363E599EC3E75B6087 -DAEC53889D74BF02FB09CB60DD96A151A59E94085CA2207C5BDBB813AECB6CBE -5BA9C185C76A805BC785EFB7F54BA4C05CF623C784631C120CE1975347E2BDE4 -C91D733620CC237EC155214E64D27D3C2A5AC53DCEA5A98AAD715825CD7BBCC7 -DAF443C9E3B1712402C0FE9DDAF379617AD5B136B9BFB15F244886D233ABF295 -0ED4385F8D407EAC42E08BF7B1B1B2EAD691B71D42FE34E8FCB662F7 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMCSC10 -%!PS-AdobeFont-1.1: CMCSC10 1.0 -%%CreationDate: 1991 Aug 18 17:46:49 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMCSC10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMCSC10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 97 /a put -dup 99 /c put -dup 103 /g put -dup 105 /i put -dup 110 /n put -dup 115 /s put -dup 117 /u put -readonly def -/FontBBox{14 -250 1077 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337 -900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA -87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98 -076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518 -9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A -FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD -B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9 -CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30 -40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D -C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B -7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5 -FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC -81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D -5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90 -CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6877C1B3D2 -24030F377820DA58F4B95CFE645109F3F1B80DB5FACFD7D05AE2909EEFCF95AD -9CB286C8B6C075CA2267C101B736139863186C193E31085E7C9FD88EF8BBECE3 -933542C85309013325B4BBFE9A5B606780C8580ABDA2F5D0064EBFC23939B307 -08568C3B7F5F053BF367DEBA349FABB9F760C44D100BDEEFBB01F27BFC61F51B -C968C721E78497A7A3B90094FE11EEEC89D0D9E7AEB35D9A3FAC51F826300BB5 -84A4038A08FE7DEBA3FFED05C494AE0962114E9A90CBB87B40B7B669DEEF7D48 -6F0F21217F9911A842CF3882BC64670E58182A5D59B72EF73F62651CA3428BE8 -9389C4D4A3C77C7EE2DFFA8DE35FF4FE4609914E42CBED28EA59AB9A5A049F52 -8C30FC6673FA3B3F19FBC6A6CEB3D8ACF6B1427E9561C0EF108BB29CAC53BA6F -6102D4A599510D1DDE1D104812EE52010BED1DEFF3419DD223A26CB1A2B7260D -04989B2E8D900A82493EB68B883F32886BCCA8BFA961ADE4DE46F1CDAF2DEDF2 -4DF21403151EB890326BF9771B5491E45091877E550E3DEDBD5C97ECC6AC49A5 -522221DDE68940109257A1E6932F5514EBD5CDA3847B8EBCDB50D2987188FAB9 -F2F96B107B8307826A541B49B178189A17F7D8607F39FDE8A03D350A324DC684 -58DF63F288B4907F450060824D764D51EE69FE0D31053E37E031F03A1C58DAB0 -69A79DCD03DBE5DF2086BCF558F7B68158CB3E2F59E313FDADB26B81EF589991 -0F4C54D7F2209F812A27A75F586A62E59938C226368EA6F4C71A8C1EBE4FB084 -8EFE3E4672FB73DD50303970BF520125F49CA280D88E941C08FCD32A93EDA3C5 -70BA7A9CA5B4759BB64975E6F81F17033A85EEE16C34F48CB7DF5ED1195C7943 -7D38D99D7DDAB8D15C68BF7DB3712CBD9846C5C72B435DF91A90ECF37E33A10F -0C26ADBEE029FA2BD8ED27E3E4A8E76F8CD37EA0A65C16BBD2E7463F474DC9F6 -EBE92536B35598474B8FBB13CDB101DCBD04BC1295DD80369DE583BB6151E830 -21723CD7B5581BFD1631A8B8A7E69D06D4008D30EC7685426D614375B3F7CAD7 -F638ACB0E889EA91AC865BF31246CD8FC4CB99D64D6559637E1CA4FD935BF954 -90A3D8EAE892A1FDC20384CEB773242EEAC281ACF9907CC69B04D3DC36A2F8C2 -E6B26E6435B650A7843192E42687C1464252828830DBE7268BA089A131CA8F3F -CE1DB3B2309DA9764430E6013F59EF83AA83C4F335DA40280BD758F8F174882E -DA4F86EFAD370A8FCEE9BAC93C40745F78BCE1A0F82A3AC4AB93C589D48EA9C9 -60C030BE2C81689CA3964746154DA78A260693CFE0A3673D61EDD2D89DBB471E -2F2D730EB1ECC9F3FE5474CA0AA70F13003A6F6311AA396EA0707A2F799724CD -6172B351BA7A8A79BE939E5CBBAFFD704AF6B489C3CB7546924F72B02651D74B -83157155412798FDC5A1F0A8FAF5B477F2A631AFB3905FF4B600898594AE2A06 -12F833A915CB69DE6BB34698E416989B4FE55486BEA50ACAA9F913648A1C4AA0 -1115E2B254E8F29AF44110929D979C357A0034BA64B9174230D5AFAF270E86EC -91452CD3CF7DCA0A1813E9966B3F98373F28765754AC2E16BBC64F0B889E5CD8 -CB522EEF25E3E76739C20E3E767DA51276469AAEE0A11A92FD254CDC90B09175 -0C480A56C1479FD15F91B39F848F2B77786295A7276E76F7EAFE1019328DE9AB -C3A69A104D37039F98CB3042A8F53847B97E1D2BB76EBFC6241E5903D55FEB17 -436374CB85B27E2617EA745171C9F1D2A3A890490004B38F5BFEDA0B0883594A -464E46788B8A86E19904F108FD902E7B032F496E86B7F210E3CAD335CF4517C5 -69558F3C3593F3BA0D235CD5B7DDD0BA909EA6C635DB553D5AC1AF351111A37E -504A6652E21ECB309BD4B641D2470F2E0D03F7F34959C983FBCBCE64CDECECB2 -EF43850D1BED843DA6DD2B1A9282F88FEC210949B3B5737308EE15A6B6148697 -2A5F77FAA39B8141929A40F68D84C8297501C2DF95230F2C167BFC8708152387 -AAE0C24A1D9351 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI10 -%!PS-AdobeFont-1.1: CMMI10 1.100 -%%CreationDate: 1996 Jul 23 07:53:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 58 /period put -readonly def -/FontBBox{-32 -250 1048 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 -990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E -6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB -DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 -59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 -D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF -8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 -6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 -1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE -03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 -95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 -74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 -3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 -47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 -AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 -42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 -40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 -B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 -9560176676ABB71BBD0EE56B4CC492C0652750227CEC6CBEEE374709231B00CD -0DE83AFDE295B314F6C8B1FFD32251C1925D96A64D739FF1DA4926460B28B3DE -E949AA0BA3DDB16534FBA30C32092D5F712B5E8C8D5142F35AF2906E6C219D2C -7FD9A368C193E0EB9C7E25FF03C546B6ED993F964CEDB1B8537C617170787F37 -88D6F2AD02384B01067FE3F98257BAB958BB3BCD1001090A4502DA0638080EC6 -DB784CC8AC37CDC01B29BC481D6A05ADC6188785262358C1BF1D694BBF31C1F1 -AF117C1ACED44AAC6EB4B9A2511A6762DDE8FCCBA5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI12 -%!PS-AdobeFont-1.1: CMMI12 1.100 -%%CreationDate: 1996 Jul 27 08:57:55 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 58 /period put -readonly def -/FontBBox{-30 -250 1026 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 -5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC -4391C9DF440285B8FC159D0E98D4258FC57892DCC57F7903449E07914FBE9E67 -3C15C2153C061EB541F66C11E7EE77D5D77C0B11E1AC55101DA976CCACAB6993 -EED1406FBB7FF30EAC9E90B90B2AF4EC7C273CA32F11A5C1426FF641B4A2FB2F -4E68635C93DB835737567FAF8471CBC05078DCD4E40E25A2F4E5AF46C234CF59 -2A1CE8F39E1BA1B2A594355637E474167EAD4D97D51AF0A899B44387E1FD933A -323AFDA6BA740534A510B4705C0A15647AFBF3E53A82BF320DD96753639BE49C -2F79A1988863EF977B800C9DB5B42039C23EB86953713F730E03EA22FF7BB2C1 -D97D33FD77B1BDCC2A60B12CF7805CFC90C5B914C0F30A673DF9587F93E47CEA -5932DD1930560C4F0D97547BCD805D6D854455B13A4D7382A22F562D7C55041F -0FD294BDAA1834820F894265A667E5C97D95FF152531EF97258F56374502865D -A1E7C0C5FB7C6FB7D3C43FEB3431095A59FBF6F61CEC6D6DEE09F4EB0FD70D77 -2A8B0A4984C6120293F6B947944BE23259F6EB64303D627353163B6505FC8A60 -00681F7A3968B6CBB49E0420A691258F5E7B07B417157803FCBE9B9FB1F80FD8 -CA0DA1186446DD565542BCCC7D339A1EB34C7F49246E8D72E987EB477C6DB757 -99AF86CEBCD7605C487A00CD2CD093098182DC57B20D78ECE0BECF3A0BF88EBA -C866DB19F34BBBED6634AFC0F08D2AFB2A92578A6F8B4ADCD6594737FF6EED7D -5B536DA9E3E2CADB40DB7C600EA4D100D33C3B92B1CF857E012C4EB370BA8295 -55B50047CC8911C98FE1A7BA6CDEA82D34476286E710776823690AD333DD3A49 -335002F4680DBE1C21174BF016B0DF799B01EB9D6988479A8334BBA2F8DC7146 -BC0DAE9DE3A6453B181808E68A89E0C02DAC6264D002B422EBC1CF14F65D9888 -15EE6D514D3457F7F3C6A3D17EE1DA076F73ECC392D349174DA9E4680F29CE10 -0157E42CA35F5DBFF56BFC3AA07E61A78DBE882C5AB388220C19750D3643E7C8 -23D6673027CE568A4ACCE1D12B1D9E5A43507F4AF9BC873237F65A6B95078DD2 -378007CF0F0DE7CCEF760E19D6D1D7B412EC5D4972 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSY10 -%!PS-AdobeFont-1.1: CMSY10 1.0 -%%CreationDate: 1991 Aug 15 07:20:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSY10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.035 def -/isFixedPitch false def -end readonly def -/FontName /CMSY10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 13 /circlecopyrt put -readonly def -/FontBBox{-29 -960 1116 775}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 -7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 -A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 -E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A -221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A -27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF -5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 -0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 -DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A -71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 -4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C -515DB70A8D4F6146FE068DC1E5DE8BC5703711DA090312BA3FC00A08C453C609 -C627A8BFEF75B4DEFAF34B44B356A516B765AFCDD3F5475B1F928731D09D2170 -B97E40F12CCEDF4F6BB3756C4734F6E98D74B7E942A954B1BAAB83D4AD727FF6 -DF6DC50B2223BCB5568A73A112E4860AD490554E64E780073FF3399CB4688D33 -9E8829667CD6EAEF25E0C7D2D44F2BBFA40E999325F9561514844221B50BC8FC -4C7AD68CA7220D69125C2AF06849A3E068D18733276F0C0A6A2936D3C2C87CDE -59CD1AF148C44F85784A5DAD569F5FF53C061056C067CE29AEF1E3BD1FD8B0B8 -71A0A638CDAC6AEEDBD5337D4683C084BB60B1859E600F59CB4E19C5FC5C6327 -EC544A68134496A9BD0B87D83AF6FDA3CB62FBF0B54FACE1F0E6A2D84B467AFF -0F62DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -TeXDict begin 39139632 55387786 1000 300 300 (history.dvi) -@start /Fa 197[11 58[{}1 37.3599 /CMMI9 rf /Fb 134[20 -20 1[20 1[15 15 15 1[21 19 21 4[11 21 19 1[17 21 17 1[19 -13[21 10[29 14[19 19 19 19 19 3[19 49[{}24 37.3599 /CMR9 -rf /Fc 134[20 3[20 20 20 20 2[20 20 20 20 2[20 20 2[20 -3[20 97[{}13 37.3599 /CMSLTT10 rf /Fd 167[31 3[30 23 -2[28 1[31 38 26 1[21 1[31 33 27 1[32 30 67[{}13 41.511 -/CMR10 rf /Fe 130[20 20 20 20 20 20 20 20 20 20 20 20 -20 20 20 20 20 20 20 1[20 20 20 20 20 20 20 20 20 20 -20 1[20 20 20 1[20 2[20 20 20 20 20 1[20 1[20 1[20 2[20 -20 20 20 20 20 20 20 20 2[20 20 20 20 20 3[20 1[20 20 -20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -33[{}77 37.3599 /CMTT9 rf /Ff 214[18 18 40[{}2 45.4545 -/CMSS10 rf /Fg 133[26 26 26 26 26 26 26 26 26 26 26 26 -26 26 26 26 1[26 26 26 26 26 26 26 26 26 1[26 5[26 4[26 -26 26 2[26 26 4[26 26 2[26 3[26 22[26 42[{}37 49.8132 -/CMTT10 rf /Fh 134[24 24 24 1[24 24 24 24 2[24 24 1[24 -2[24 1[24 24 24 24 49[24 24 49[{}17 45.4545 /CMSLTT10 -rf /Fi 133[27 32 32 1[32 34 24 24 25 1[34 31 34 51 17 -2[17 34 31 19 28 34 27 34 30 9[63 3[34 5[58 37 2[23 48 -1[39 40 47 2[46 9[31 31 31 31 31 31 31 2[17 33[34 12[{}41 -54.5455 /CMBX12 rf /Fj 134[24 24 33 24 25 18 18 18 24 -25 23 25 38 13 2[13 25 23 14 20 25 20 1[23 3[13 1[13 -1[34 4[33 25 33 2[35 34 4[16 34 2[31 3[34 14[23 23 4[13 -1[23 29[25 27 11[{}40 45.4545 /CMSL10 rf /Fk 138[28 1[21 -4[28 4[14 1[29 3[27 1[28 97[{}7 45.4545 /CMCSC10 rf /Fl -197[13 58[{}1 45.4545 /CMMI10 rf /Fm 197[16 58[{}1 59.7758 -/CMMI12 rf /Fn 134[43 43 58 43 45 31 32 33 1[45 40 45 -67 22 2[22 45 40 25 37 45 36 45 39 10[61 62 56 3[55 1[63 -1[48 2[30 63 63 51 1[62 58 57 61 14[40 40 49[{}38 71.731 -/CMBX12 rf /Fo 242[45 13[{}1 45.4545 /CMSY10 rf /Fp 134[35 -35 49 35 37 26 27 27 1[37 34 37 56 19 2[19 37 34 21 31 -37 30 37 33 9[69 51 52 1[37 50 1[46 1[53 64 40 2[25 53 -53 42 44 52 49 48 51 6[19 4[34 34 34 34 34 34 1[19 1[19 -44[{}49 59.7758 /CMBX12 rf /Fq 129[24 24 24 24 24 24 -1[24 24 24 24 24 24 1[24 24 24 24 24 24 1[24 24 24 24 -24 24 24 24 24 1[24 24 24 24 24 1[24 3[24 24 24 24 1[24 -24 24 1[24 2[24 24 24 24 24 24 2[24 1[24 24 24 24 24 -24 7[24 24 24 24 24 24 1[24 24 24 24 1[24 24 24 24 24 -24 33[{}70 45.4545 /CMTT10 rf /Fr 131[45 23 20 24 24 -33 24 25 18 18 18 24 25 23 25 38 13 24 14 13 25 23 14 -20 25 20 25 23 13 2[13 23 13 28 34 34 47 34 34 33 25 -33 35 31 35 34 42 28 35 23 16 34 36 30 31 35 33 32 34 -5[13 13 23 23 23 23 23 23 23 23 23 23 23 13 15 13 2[18 -18 13 4[23 19[38 25 25 27 11[{}82 45.4545 /CMR10 rf /Fs -134[51 4[38 38 40 2[48 5[27 6[54 47 11[74 6[76 1[58 3[76 -76 71[{}13 86.0772 /CMBX12 rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 300dpi -TeXDict begin -%%PaperSize: A4 - end -%%EndSetup -%%Page: 1 1 -TeXDict begin 1 0 bop 75 659 a Fs(GNU)33 b(History)e(Library)p -75 709 1800 17 v 960 757 a Fr(Edition)14 b(6.2,)g(for)h -Fq(History)f(Library)g Fr(V)l(ersion)h(6.2.)1559 811 -y(Septem)o(b)q(er)h(2010)75 2467 y Fp(Chet)22 b(Ramey)-6 -b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75 -2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 -b(oundation)p 75 2570 1800 9 v eop end -%%Page: 2 2 -TeXDict begin 2 1 bop 75 1512 a Fr(This)16 b(do)q(cumen)o(t)g(describ)q -(es)g(the)g(GNU)g(History)f(library)f(\(v)o(ersion)h(6.2,)g(Septem)o(b) -q(er)i(6)e(2010\),)f(a)i(pro-)75 1567 y(gramming)10 b(to)q(ol)g(that)g -(pro)o(vides)h(a)g(consisten)o(t)f(user)i(in)o(terface)e(for)h -(recalling)f(lines)g(of)h(previously)g(t)o(yp)q(ed)75 -1621 y(input.)75 1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289 -1689 y Fo(\015)k Fr(1988{2011)e(F)l(ree)i(Soft)o(w)o(are)f(F)l -(oundation,)g(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f -(mak)o(e)h(and)g(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g(man)o -(ual)f(pro)o(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)g -(this)g(p)q(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f -(copies.)195 1878 y(P)o(ermission)i(is)h(gran)o(ted)g(to)g(cop)o(y)l(,) -h(distribute)f(and/or)g(mo)q(dify)g(this)g(do)q(cumen)o(t)h(under)195 -1933 y(the)h(terms)f(of)h(the)g(GNU)g(F)l(ree)g(Do)q(cumen)o(tation)f -(License,)i(V)l(ersion)f(1.3)f(or)g(an)o(y)h(later)195 -1988 y(v)o(ersion)13 b(published)h(b)o(y)g(the)g(F)l(ree)f(Soft)o(w)o -(are)g(F)l(oundation;)g(with)g(no)g(In)o(v)m(arian)o(t)h(Sections,)195 -2042 y(with)h(the)g(F)l(ron)o(t-Co)o(v)o(er)e(texts)i(b)q(eing)h(\\A)f -(GNU)g(Man)o(ual",)f(and)h(with)g(the)g(Bac)o(k-Co)o(v)o(er)195 -2097 y(T)l(exts)h(as)g(in)g(\(a\))f(b)q(elo)o(w.)23 b(A)16 -b(cop)o(y)g(of)g(the)g(license)g(is)g(included)h(in)f(the)g(section)g -(en)o(titled)195 2152 y(\\GNU)f(F)l(ree)g(Do)q(cumen)o(tation)f -(License".)195 2219 y(\(a\))g(The)h(FSF's)g(Bac)o(k-Co)o(v)o(er)f(T)l -(ext)h(is:)k(Y)l(ou)c(are)g(free)g(to)g(cop)o(y)g(and)g(mo)q(dify)g -(this)f(GNU)195 2274 y(man)o(ual.)19 b(Buying)c(copies)g(from)f(GNU)h -(Press)g(supp)q(orts)g(the)g(FSF)g(in)g(dev)o(eloping)f(GNU)195 -2329 y(and)h(promoting)f(soft)o(w)o(are)g(freedom.")75 -2451 y(Published)h(b)o(y)h(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l -(oundation)75 2506 y(59)h(T)l(emple)g(Place,)f(Suite)i(330,)75 -2560 y(Boston,)e(MA)h(02111-1307)75 2615 y(USA)p eop -end -%%Page: -1 3 -TeXDict begin -1 2 bop 1862 -58 a Fr(i)75 149 y Fn(T)-7 -b(able)28 b(of)e(Con)n(ten)n(ts)75 320 y Fp(1)67 b(Using)21 -b(History)h(In)n(teractiv)n(ely)12 b Fm(:)f(:)g(:)f(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fp(1)137 -389 y Fr(1.1)45 b(History)14 b(Expansion)f Fl(:)7 b(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)27 b Fr(1)200 444 y(1.1.1)43 b(Ev)o(en)o(t)15 -b(Designators)8 b Fl(:)d(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)22 b Fr(1)200 -499 y(1.1.2)43 b(W)l(ord)15 b(Designators)c Fl(:)6 b(:)h(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -25 b Fr(2)200 553 y(1.1.3)43 b(Mo)q(di\014ers)6 b Fl(:)h(:)g(:)h(:)f(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)20 b Fr(2)75 -675 y Fp(2)67 b(Programming)22 b(with)g(GNU)g(History)16 -b Fm(:)10 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)39 -b Fp(4)137 743 y Fr(2.1)45 b(In)o(tro)q(duction)15 b(to)f(History)5 -b Fl(:)h(:)h(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)h(:)f(:)g(:)19 b Fr(4)137 798 y(2.2)45 -b(History)14 b(Storage)d Fl(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)26 b Fr(4)137 853 y(2.3)45 b(History)14 b(F)l(unctions)c -Fl(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)24 b Fr(5)200 -907 y(2.3.1)43 b(Initializing)14 b(History)g(and)h(State)g(Managemen)o -(t)5 b Fl(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)19 b Fr(5)200 962 y(2.3.2)43 b(History)14 b(List)h(Managemen)o -(t)5 b Fl(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)20 b Fr(5)200 1017 y(2.3.3)43 b(Information)15 b(Ab)q(out)g(the)g -(History)f(List)7 b Fl(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)21 b Fr(6)200 -1072 y(2.3.4)43 b(Mo)o(ving)14 b(Around)i(the)f(History)f(List)8 -b Fl(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fr(6)200 -1127 y(2.3.5)43 b(Searc)o(hing)15 b(the)h(History)e(List)9 -b Fl(:)d(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 -b Fr(7)200 1181 y(2.3.6)43 b(Managing)14 b(the)i(History)e(File)7 -b Fl(:)f(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)21 -b Fr(7)200 1236 y(2.3.7)43 b(History)14 b(Expansion)5 -b Fl(:)i(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)h(:)f(:)g(:)19 b Fr(8)137 1291 y(2.4)45 -b(History)14 b(V)l(ariables)5 b Fl(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)19 b Fr(8)137 1346 y(2.5)45 b(History)14 b(Programming)f -(Example)7 b Fl(:)f(:)i(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -21 b Fr(10)75 1467 y Fp(App)r(endix)i(A)80 b(GNU)22 b(F)-6 -b(ree)23 b(Do)r(cumen)n(tation)e(License)223 1533 y Fm(:)10 -b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b -Fp(12)75 1668 y(App)r(endix)23 b(B)83 b(Concept)22 b(Index)12 -b Fm(:)f(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)35 b Fp(20)75 1803 y(App)r(endix)23 b(C)82 -b(F)-6 b(unction)24 b(and)f(V)-6 b(ariable)22 b(Index)17 -b Fm(:)11 b(:)f(:)g(:)40 b Fp(21)p eop end -%%Page: 1 4 -TeXDict begin 1 3 bop 75 -58 a Fr(Chapter)15 b(1:)k(Using)c(History)f -(In)o(teractiv)o(ely)1005 b(1)75 149 y Fn(1)41 b(Using)27 -b(History)h(In)n(teractiv)n(ely)75 276 y Fr(This)21 b(c)o(hapter)g -(describ)q(es)h(ho)o(w)f(to)f(use)i(the)f Fk(gnu)g Fr(History)f -(Library)h(in)o(teractiv)o(ely)l(,)g(from)f(a)h(user's)75 -330 y(standp)q(oin)o(t.)37 b(It)21 b(should)g(b)q(e)h(considered)f(a)g -(user's)g(guide.)37 b(F)l(or)21 b(information)e(on)i(using)g(the)g -Fk(gnu)75 385 y Fr(History)16 b(Library)h(in)h(y)o(our)f(o)o(wn)g -(programs,)f(see)i(Chapter)f(2)h([Programming)d(with)i(GNU)g(History],) -75 440 y(page)e(4.)75 561 y Fp(1.1)33 b(History)21 b(Expansion)75 -640 y Fr(The)i(History)e(library)h(pro)o(vides)g(a)g(history)g -(expansion)g(feature)g(that)g(is)h(similar)d(to)i(the)h(history)75 -695 y(expansion)f(pro)o(vided)h(b)o(y)f Fq(csh)p Fr(.)41 -b(This)22 b(section)g(describ)q(es)h(the)g(syn)o(tax)e(used)i(to)f -(manipulate)g(the)75 750 y(history)14 b(information.)137 -820 y(History)g(expansions)h(in)o(tro)q(duce)h(w)o(ords)e(from)g(the)i -(history)e(list)g(in)o(to)g(the)i(input)f(stream,)f(making)75 -875 y(it)g(easy)h(to)g(rep)q(eat)g(commands,)g(insert)g(the)g(argumen)o -(ts)f(to)h(a)g(previous)g(command)g(in)o(to)f(the)h(curren)o(t)75 -930 y(input)g(line,)g(or)f(\014x)i(errors)e(in)h(previous)g(commands)g -(quic)o(kly)l(.)137 1000 y(History)i(expansion)i(tak)o(es)e(place)h(in) -h(t)o(w)o(o)e(parts.)28 b(The)19 b(\014rst)f(is)f(to)h(determine)h -(whic)o(h)f(line)g(from)75 1055 y(the)j(history)e(list)h(should)h(b)q -(e)g(used)g(during)g(substitution.)35 b(The)21 b(second)g(is)f(to)g -(select)h(p)q(ortions)e(of)75 1110 y(that)c(line)g(for)f(inclusion)h -(in)o(to)f(the)i(curren)o(t)f(one.)20 b(The)c(line)e(selected)i(from)f -(the)g(history)f(is)h(called)g(the)75 1164 y Fj(ev)o(en)o(t)p -Fr(,)e(and)h(the)g(p)q(ortions)f(of)g(that)g(line)g(that)g(are)g(acted) -h(up)q(on)g(are)f(called)h Fj(w)o(ords)p Fr(.)k(V)l(arious)13 -b Fj(mo)q(di\014ers)75 1219 y Fr(are)j(a)o(v)m(ailable)f(to)h -(manipulate)g(the)g(selected)h(w)o(ords.)23 b(The)17 -b(line)f(is)g(brok)o(en)g(in)o(to)g(w)o(ords)f(in)i(the)f(same)75 -1274 y(fashion)11 b(that)f(Bash)i(do)q(es,)g(so)f(that)g(sev)o(eral)f -(w)o(ords)h(surrounded)h(b)o(y)f(quotes)h(are)f(considered)g(one)h(w)o -(ord.)75 1329 y(History)17 b(expansions)h(are)h(in)o(tro)q(duced)f(b)o -(y)g(the)h(app)q(earance)g(of)f(the)g(history)g(expansion)g(c)o -(haracter,)75 1384 y(whic)o(h)d(is)g(`)p Fq(!)p Fr(')f(b)o(y)h -(default.)75 1486 y Fi(1.1.1)30 b(Ev)n(en)n(t)21 b(Designators)75 -1560 y Fr(An)c(ev)o(en)o(t)f(designator)f(is)h(a)g(reference)h(to)f(a)g -(command)g(line)g(en)o(try)g(in)g(the)h(history)e(list.)23 -b(Unless)16 b(the)75 1614 y(reference)g(is)f(absolute,)f(ev)o(en)o(ts)h -(are)g(relativ)o(e)e(to)i(the)g(curren)o(t)g(p)q(osition)f(in)h(the)h -(history)e(list.)75 1699 y Fq(!)216 b Fr(Start)16 b(a)g(history)g -(substitution,)f(except)j(when)f(follo)o(w)o(ed)e(b)o(y)h(a)h(space,)g -(tab,)f(the)h(end)g(of)315 1753 y(the)e(line,)g(or)f(`)p -Fq(=)p Fr('.)75 1836 y Fq(!)p Fh(n)192 b Fr(Refer)16 -b(to)e(command)h(line)g Fj(n)p Fr(.)75 1919 y Fq(!-)p -Fh(n)168 b Fr(Refer)16 b(to)e(the)i(command)f Fj(n)g -Fr(lines)g(bac)o(k.)75 2002 y Fq(!!)192 b Fr(Refer)16 -b(to)e(the)i(previous)e(command.)20 b(This)15 b(is)g(a)g(synon)o(ym)g -(for)f(`)p Fq(!-1)p Fr('.)75 2084 y Fq(!)p Fh(string)72 -b Fr(Refer)13 b(to)f(the)h(most)e(recen)o(t)i(command)f(preceding)h -(the)g(curren)o(t)f(p)q(osition)g(in)g(the)h(history)315 -2139 y(list)h(starting)g(with)g Fj(string)t Fr(.)75 2222 -y Fq(!?)p Fh(string)5 b Fq([?])315 2277 y Fr(Refer)13 -b(to)f(the)h(most)e(recen)o(t)i(command)f(preceding)h(the)g(curren)o(t) -f(p)q(osition)g(in)g(the)h(history)315 2331 y(list)h(con)o(taining)h -Fj(string)t Fr(.)20 b(The)c(trailing)e(`)p Fq(?)p Fr(')g(ma)o(y)h(b)q -(e)h(omitted)f(if)g(the)h Fj(string)i Fr(is)e(follo)o(w)o(ed)315 -2386 y(immediately)e(b)o(y)h(a)g(newline.)75 2469 y Fq(^)p -Fh(string1)5 b Fq(^)p Fh(string2)g Fq(^)315 2524 y Fr(Quic)o(k)16 -b(Substitution.)k(Rep)q(eat)c(the)g(last)e(command,)h(replacing)g -Fj(string1)j Fr(with)d Fj(string2)t Fr(.)315 2578 y(Equiv)m(alen)o(t)g -(to)f Fq(!!:s/)p Fh(string1)5 b Fq(/)p Fh(string2)g Fq(/)p -Fr(.)75 2661 y Fq(!#)192 b Fr(The)15 b(en)o(tire)g(command)g(line)g(t)o -(yp)q(ed)h(so)e(far.)p eop end -%%Page: 2 5 -TeXDict begin 2 4 bop 75 -58 a Fr(Chapter)15 b(1:)k(Using)c(History)f -(In)o(teractiv)o(ely)1005 b(2)75 149 y Fi(1.1.2)30 b(W)-5 -b(ord)20 b(Designators)75 223 y Fr(W)l(ord)13 b(designators)g(are)g -(used)h(to)f(select)g(desired)h(w)o(ords)f(from)g(the)g(ev)o(en)o(t.)19 -b(A)14 b(`)p Fq(:)p Fr(')f(separates)g(the)g(ev)o(en)o(t)75 -278 y(sp)q(eci\014cation)18 b(from)g(the)g(w)o(ord)g(designator.)29 -b(It)18 b(ma)o(y)g(b)q(e)h(omitted)e(if)h(the)h(w)o(ord)e(designator)h -(b)q(egins)75 333 y(with)c(a)h(`)p Fq(^)p Fr(',)f(`)p -Fq($)p Fr(',)f(`)p Fq(*)p Fr(',)h(`)p Fq(-)p Fr(',)g(or)g(`)p -Fq(\045)p Fr('.)19 b(W)l(ords)14 b(are)h(n)o(um)o(b)q(ered)h(from)e -(the)h(b)q(eginning)g(of)f(the)h(line,)g(with)f(the)75 -387 y(\014rst)g(w)o(ord)g(b)q(eing)h(denoted)g(b)o(y)g(0)f(\(zero\).)19 -b(W)l(ords)14 b(are)h(inserted)f(in)o(to)g(the)h(curren)o(t)f(line)h -(separated)f(b)o(y)75 442 y(single)h(spaces.)137 513 -y(F)l(or)g(example,)75 599 y Fq(!!)192 b Fr(designates)17 -b(the)h(preceding)h(command.)28 b(When)18 b(y)o(ou)g(t)o(yp)q(e)g -(this,)g(the)g(preceding)g(com-)315 653 y(mand)d(is)g(rep)q(eated)h(in) -f(toto.)75 737 y Fq(!!:$)144 b Fr(designates)11 b(the)g(last)f(argumen) -o(t)g(of)h(the)g(preceding)h(command.)19 b(This)10 b(ma)o(y)h(b)q(e)h -(shortened)315 792 y(to)j Fq(!$)p Fr(.)75 875 y Fq(!fi:2)120 -b Fr(designates)14 b(the)h(second)g(argumen)o(t)f(of)g(the)h(most)f -(recen)o(t)g(command)h(starting)e(with)h(the)315 930 -y(letters)g Fq(fi)p Fr(.)137 1015 y(Here)i(are)f(the)g(w)o(ord)f -(designators:)75 1101 y Fq(0)h(\(zero\))57 b Fr(The)15 -b Fq(0)p Fr(th)g(w)o(ord.)20 b(F)l(or)14 b(man)o(y)h(applications,)e -(this)i(is)g(the)g(command)g(w)o(ord.)75 1184 y Fh(n)216 -b Fr(The)15 b Fj(n)p Fr(th)h(w)o(ord.)75 1268 y Fq(^)216 -b Fr(The)15 b(\014rst)g(argumen)o(t;)f(that)h(is,)f(w)o(ord)h(1.)75 -1351 y Fq($)216 b Fr(The)15 b(last)g(argumen)o(t.)75 -1435 y Fq(\045)216 b Fr(The)15 b(w)o(ord)g(matc)o(hed)g(b)o(y)g(the)g -(most)g(recen)o(t)g(`)p Fq(?)p Fh(string)5 b Fq(?)p Fr(')14 -b(searc)o(h.)75 1518 y Fh(x)5 b Fq(-)p Fh(y)163 b Fr(A)15 -b(range)g(of)g(w)o(ords;)f(`)p Fq(-)p Fh(y)5 b Fr(')14 -b(abbreviates)h(`)p Fq(0-)p Fh(y)5 b Fr('.)75 1602 y -Fq(*)216 b Fr(All)13 b(of)h(the)f(w)o(ords,)g(except)i(the)f -Fq(0)p Fr(th.)19 b(This)13 b(is)h(a)f(synon)o(ym)h(for)f(`)p -Fq(1-$)p Fr('.)18 b(It)c(is)f(not)h(an)g(error)315 1657 -y(to)g(use)h(`)p Fq(*)p Fr(')f(if)h(there)f(is)h(just)f(one)h(w)o(ord)f -(in)h(the)g(ev)o(en)o(t;)f(the)h(empt)o(y)g(string)f(is)g(returned)h -(in)315 1712 y(that)f(case.)75 1795 y Fh(x)5 b Fq(*)187 -b Fr(Abbreviates)15 b(`)p Fh(x)5 b Fq(-$)p Fr(')75 1879 -y Fh(x)g Fq(-)187 b Fr(Abbreviates)15 b(`)p Fh(x)5 b -Fq(-$)p Fr(')14 b(lik)o(e)g(`)p Fh(x)5 b Fq(*)p Fr(',)15 -b(but)g(omits)f(the)h(last)f(w)o(ord.)137 1964 y(If)j(a)g(w)o(ord)f -(designator)g(is)h(supplied)g(without)f(an)h(ev)o(en)o(t)f(sp)q -(eci\014cation,)h(the)g(previous)g(command)75 2019 y(is)e(used)g(as)g -(the)h(ev)o(en)o(t.)75 2122 y Fi(1.1.3)30 b(Mo)r(di\014ers)75 -2196 y Fr(After)14 b(the)g(optional)f(w)o(ord)h(designator,)f(y)o(ou)h -(can)g(add)h(a)f(sequence)h(of)f(one)g(or)g(more)g(of)g(the)g(follo)o -(wing)75 2250 y(mo)q(di\014ers,)h(eac)o(h)g(preceded)i(b)o(y)e(a)g(`)p -Fq(:)p Fr('.)75 2336 y Fq(h)216 b Fr(Remo)o(v)o(e)15 -b(a)g(trailing)e(pathname)i(comp)q(onen)o(t,)g(lea)o(ving)f(only)h(the) -g(head.)75 2419 y Fq(t)216 b Fr(Remo)o(v)o(e)15 b(all)f(leading)h -(pathname)g(comp)q(onen)o(ts,)g(lea)o(ving)f(the)h(tail.)75 -2503 y Fq(r)216 b Fr(Remo)o(v)o(e)15 b(a)g(trailing)e(su\016x)i(of)g -(the)g(form)g(`)p Fq(.)p Fh(suffix)5 b Fr(',)13 b(lea)o(ving)h(the)i -(basename.)75 2586 y Fq(e)216 b Fr(Remo)o(v)o(e)15 b(all)f(but)i(the)f -(trailing)e(su\016x.)75 2670 y Fq(p)216 b Fr(Prin)o(t)14 -b(the)h(new)h(command)f(but)g(do)g(not)g(execute)h(it.)p -eop end -%%Page: 3 6 -TeXDict begin 3 5 bop 75 -58 a Fr(Chapter)15 b(1:)k(Using)c(History)f -(In)o(teractiv)o(ely)1005 b(3)75 149 y Fq(s/)p Fh(old)5 -b Fq(/)p Fh(new)g Fq(/)315 204 y Fr(Substitute)16 b Fj(new)k -Fr(for)c(the)h(\014rst)e(o)q(ccurrence)j(of)e Fj(old)h -Fr(in)f(the)h(ev)o(en)o(t)f(line.)23 b(An)o(y)16 b(delimiter)315 -259 y(ma)o(y)c(b)q(e)h(used)g(in)f(place)g(of)g(`)p Fq(/)p -Fr('.)18 b(The)13 b(delimiter)e(ma)o(y)h(b)q(e)h(quoted)f(in)h -Fj(old)g Fr(and)g Fj(new)k Fr(with)11 b(a)315 314 y(single)i(bac)o -(kslash.)19 b(If)13 b(`)p Fq(&)p Fr(')g(app)q(ears)h(in)f -Fj(new)t Fr(,)h(it)f(is)g(replaced)h(b)o(y)f Fj(old)r -Fr(.)19 b(A)14 b(single)f(bac)o(kslash)315 369 y(will)j(quote)h(the)h -(`)p Fq(&)p Fr('.)25 b(The)17 b(\014nal)h(delimiter)e(is)h(optional)f -(if)g(it)h(is)g(the)g(last)f(c)o(haracter)h(on)315 423 -y(the)e(input)g(line.)75 503 y Fq(&)216 b Fr(Rep)q(eat)16 -b(the)f(previous)g(substitution.)75 583 y Fq(g)75 638 -y(a)216 b Fr(Cause)19 b(c)o(hanges)h(to)e(b)q(e)i(applied)f(o)o(v)o(er) -g(the)g(en)o(tire)g(ev)o(en)o(t)g(line.)32 b(Used)20 -b(in)f(conjunction)315 692 y(with)c(`)p Fq(s)p Fr(',)e(as)i(in)g -Fq(gs/)p Fh(old)5 b Fq(/)p Fh(new)g Fq(/)p Fr(,)14 b(or)h(with)f(`)p -Fq(&)p Fr('.)75 772 y Fq(G)216 b Fr(Apply)15 b(the)h(follo)o(wing)d(`)p -Fq(s)p Fr(')h(mo)q(di\014er)h(once)h(to)e(eac)o(h)h(w)o(ord)g(in)g(the) -g(ev)o(en)o(t.)p eop end -%%Page: 4 7 -TeXDict begin 4 6 bop 75 -58 a Fr(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(History)888 b(4)75 149 y Fn(2)41 b(Programming)29 -b(with)e(GNU)h(History)75 261 y Fr(This)21 b(c)o(hapter)f(describ)q(es) -i(ho)o(w)e(to)h(in)o(terface)f(programs)g(that)g(y)o(ou)h(write)f(with) -g(the)h Fk(gnu)g Fr(History)75 316 y(Library)l(.)i(It)17 -b(should)f(b)q(e)h(considered)g(a)f(tec)o(hnical)g(guide.)24 -b(F)l(or)15 b(information)g(on)h(the)h(in)o(teractiv)o(e)e(use)75 -371 y(of)g Fk(gnu)g Fr(History)l(,)f(see)h(Chapter)g(1)g([Using)f -(History)g(In)o(teractiv)o(ely],)g(page)h(1.)75 485 y -Fp(2.1)33 b(In)n(tro)r(duction)23 b(to)f(History)75 565 -y Fr(Man)o(y)15 b(programs)e(read)j(input)f(from)f(the)h(user)h(a)f -(line)g(at)f(a)h(time.)k(The)d Fk(gnu)f Fr(History)f(library)g(is)g -(able)75 620 y(to)g(k)o(eep)g(trac)o(k)g(of)g(those)g(lines,)g(asso)q -(ciate)f(arbitrary)g(data)h(with)f(eac)o(h)i(line,)f(and)g(utilize)g -(information)75 675 y(from)g(previous)h(lines)g(in)g(comp)q(osing)g -(new)g(ones.)137 741 y(The)f(programmer)f(using)g(the)h(History)f -(library)f(has)i(a)o(v)m(ailable)e(functions)i(for)f(remem)o(b)q(ering) -g(lines)75 796 y(on)d(a)g(history)g(list,)f(asso)q(ciating)g(arbitrary) -g(data)g(with)h(a)g(line,)h(remo)o(ving)e(lines)h(from)f(the)i(list,)f -(searc)o(hing)75 850 y(through)17 b(the)h(list)e(for)h(a)h(line)f(con)o -(taining)f(an)i(arbitrary)e(text)h(string,)g(and)h(referencing)g(an)o -(y)f(line)g(in)75 905 y(the)e(list)g(directly)l(.)20 -b(In)c(addition,)e(a)h(history)f Fj(expansion)h Fr(function)h(is)e(a)o -(v)m(ailable)g(whic)o(h)i(pro)o(vides)f(for)f(a)75 960 -y(consisten)o(t)g(user)i(in)o(terface)e(across)h(di\013eren)o(t)f -(programs.)137 1026 y(The)g(user)h(using)e(programs)g(written)g(with)g -(the)h(History)f(library)g(has)h(the)g(b)q(ene\014t)h(of)e(a)h -(consisten)o(t)75 1081 y(user)20 b(in)o(terface)e(with)h(a)g(set)h(of)f -(w)o(ell-kno)o(wn)f(commands)i(for)e(manipulating)h(the)g(text)g(of)g -(previous)75 1136 y(lines)13 b(and)h(using)g(that)f(text)g(in)h(new)g -(commands.)19 b(The)14 b(basic)g(history)e(manipulation)h(commands)g -(are)75 1191 y(similar)g(to)i(the)g(history)f(substitution)g(pro)o -(vided)h(b)o(y)h Fq(csh)p Fr(.)137 1257 y(If)f(the)g(programmer)f -(desires,)g(he)h(can)g(use)g(the)g(Readline)g(library)l(,)f(whic)o(h)g -(includes)i(some)e(history)75 1312 y(manipulation)g(b)o(y)h(default,)f -(and)i(has)f(the)g(added)h(adv)m(an)o(tage)f(of)f(command)h(line)g -(editing.)137 1378 y(Before)k(declaring)g(an)o(y)f(functions)h(using)g -(an)o(y)g(functionalit)o(y)e(the)i(History)f(library)g(pro)o(vides)g -(in)75 1433 y(other)c(co)q(de,)h(an)f(application)f(writer)g(should)i -(include)f(the)h(\014le)f Fq()e Fr(in)i(an)o(y)g -(\014le)75 1487 y(that)d(uses)h(the)h(History)d(library's)h(features.) -18 b(It)12 b(supplies)g(extern)g(declarations)f(for)g(all)g(of)h(the)g -(library's)75 1542 y(public)j(functions)g(and)h(v)m(ariables,)e(and)h -(declares)g(all)f(of)h(the)h(public)f(data)f(structures.)75 -1656 y Fp(2.2)33 b(History)21 b(Storage)75 1736 y Fr(The)15 -b(history)g(list)f(is)g(an)h(arra)o(y)f(of)h(history)f(en)o(tries.)20 -b(A)15 b(history)f(en)o(try)h(is)f(declared)i(as)f(follo)o(ws:)195 -1802 y Fq(typedef)23 b(void)g(*histdata_t;)195 1912 y(typedef)g(struct) -g(_hist_entry)f({)243 1967 y(char)h(*line;)243 2021 y(char)g -(*timestamp;)243 2076 y(histdata_t)f(data;)195 2131 y(})i(HIST_ENTRY;) -137 2197 y Fr(The)16 b(history)e(list)g(itself)g(migh)o(t)g(therefore)h -(b)q(e)h(declared)f(as)195 2264 y Fq(HIST_ENTRY)22 b -(**the_history_list;)137 2330 y Fr(The)16 b(state)e(of)h(the)g(History) -f(library)g(is)h(encapsulated)g(in)o(to)f(a)h(single)g(structure:)195 -2396 y Fq(/*)219 2451 y(*)24 b(A)f(structure)g(used)g(to)h(pass)f -(around)g(the)h(current)f(state)g(of)g(the)h(history.)219 -2506 y(*/)195 2560 y(typedef)f(struct)g(_hist_state)f({)243 -2615 y(HIST_ENTRY)g(**entries;)h(/*)g(Pointer)g(to)h(the)f(entries)g -(themselves.)g(*/)243 2670 y(int)g(offset;)262 b(/*)23 -b(The)h(location)f(pointer)f(within)h(this)h(array.)f(*/)p -eop end -%%Page: 5 8 -TeXDict begin 5 7 bop 75 -58 a Fr(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(History)888 b(5)243 149 y Fq(int)23 b(length;)262 -b(/*)23 b(Number)g(of)h(elements)f(within)g(this)g(array.)g(*/)243 -204 y(int)g(size;)310 b(/*)23 b(Number)g(of)h(slots)f(allocated)g(to)g -(this)h(array.)f(*/)243 259 y(int)g(flags;)195 314 y(})h -(HISTORY_STATE;)137 382 y Fr(If)16 b(the)f(\015ags)g(mem)o(b)q(er)g -(includes)h Fq(HS_STIFLED)p Fr(,)d(the)i(history)g(has)g(b)q(een)h -(sti\015ed.)75 500 y Fp(2.3)33 b(History)21 b(F)-6 b(unctions)75 -580 y Fr(This)17 b(section)f(describ)q(es)i(the)f(calling)f(sequence)i -(for)f(the)g(v)m(arious)g(functions)f(exp)q(orted)i(b)o(y)f(the)g -Fk(gnu)75 635 y Fr(History)d(library)l(.)75 735 y Fi(2.3.1)30 -b(Initializing)20 b(History)h(and)f(State)g(Managemen)n(t)75 -809 y Fr(This)11 b(section)f(describ)q(es)i(functions)f(used)g(to)g -(initialize)e(and)i(manage)f(the)i(state)e(of)g(the)h(History)f -(library)75 864 y(when)16 b(y)o(ou)f(w)o(an)o(t)f(to)g(use)i(the)f -(history)f(functions)h(in)g(y)o(our)g(program.)1675 958 -y([F)l(unction])-1801 b Fg(void)27 b(using_history)d -Ff(\()p Fj(v)o(oid)p Ff(\))195 1013 y Fr(Begin)c(a)g(session)f(in)h -(whic)o(h)g(the)g(history)f(functions)g(migh)o(t)g(b)q(e)i(used.)34 -b(This)20 b(initializes)e(the)195 1068 y(in)o(teractiv)o(e)c(v)m -(ariables.)1675 1162 y([F)l(unction])-1801 b Fg(HISTORY_STATE)28 -b(*)e(history_get_history_s)q(tate)g Ff(\()p Fj(v)o(oid)p -Ff(\))195 1217 y Fr(Return)16 b(a)f(structure)g(describing)g(the)g -(curren)o(t)g(state)f(of)h(the)g(input)h(history)l(.)1675 -1311 y([F)l(unction])-1801 b Fg(void)27 b(history_set_history_state)f -Ff(\()p Fj(HISTOR)l(Y)p 1109 1311 14 2 v 22 w(ST)l(A)l(TE)15 -b(*state)p Ff(\))195 1366 y Fr(Set)g(the)h(state)e(of)h(the)g(history)f -(list)g(according)h(to)f Fj(state)s Fr(.)75 1467 y Fi(2.3.2)30 -b(History)20 b(List)h(Managemen)n(t)75 1540 y Fr(These)16 -b(functions)g(manage)g(individual)f(en)o(tries)g(on)h(the)g(history)f -(list,)g(or)g(set)h(parameters)f(managing)75 1595 y(the)g(list)f -(itself.)1675 1690 y([F)l(unction])-1801 b Fg(void)27 -b(add_history)d Ff(\()p Fj(const)15 b(c)o(har)g(*string)p -Ff(\))195 1744 y Fr(Place)g Fj(string)i Fr(at)e(the)g(end)h(of)e(the)h -(history)f(list.)19 b(The)c(asso)q(ciated)f(data)h(\014eld)g(\(if)f(an) -o(y\))g(is)h(set)g(to)195 1799 y Fq(NULL)p Fr(.)1675 -1894 y([F)l(unction])-1801 b Fg(void)27 b(add_history_time)e -Ff(\()p Fj(const)15 b(c)o(har)f(*string)p Ff(\))195 1948 -y Fr(Change)h(the)g(time)g(stamp)g(asso)q(ciated)f(with)h(the)g(most)f -(recen)o(t)h(history)g(en)o(try)f(to)h Fj(string)t Fr(.)1675 -2043 y([F)l(unction])-1801 b Fg(HIST_ENTRY)28 b(*)e(remove_history)f -Ff(\()p Fj(in)o(t)14 b(whic)o(h)p Ff(\))195 2098 y Fr(Remo)o(v)o(e)23 -b(history)e(en)o(try)i(at)f(o\013set)g Fj(whic)o(h)g -Fr(from)g(the)h(history)l(.)42 b(The)23 b(remo)o(v)o(ed)f(elemen)o(t)g -(is)195 2152 y(returned)16 b(so)e(y)o(ou)h(can)h(free)f(the)g(line,)g -(data,)f(and)h(con)o(taining)f(structure.)1675 2247 y([F)l(unction]) --1801 b Fg(histdata_t)28 b(free_history_entry)d Ff(\()p -Fj(HIST)p 985 2247 V 20 w(ENTR)l(Y)16 b(*histen)o(t)p -Ff(\))195 2302 y Fr(F)l(ree)e(the)g(history)f(en)o(try)h -Fj(histen)o(t)g Fr(and)g(an)o(y)g(history)f(library)g(priv)m(ate)g -(data)h(asso)q(ciated)f(with)g(it.)195 2356 y(Returns)j(the)f -(application-sp)q(eci\014c)g(data)f(so)h(the)h(caller)e(can)h(disp)q -(ose)h(of)e(it.)1675 2451 y([F)l(unction])-1801 b Fg(HIST_ENTRY)28 -b(*)e(replace_history_entry)g Ff(\()p Fj(in)o(t)14 b(whic)o(h,)h(const) -g(c)o(har)f(*line,)283 2506 y(histdata)p 449 2506 V 18 -w(t)h(data)p Ff(\))195 2560 y Fr(Mak)o(e)e(the)h(history)f(en)o(try)g -(at)g(o\013set)g Fj(whic)o(h)h Fr(ha)o(v)o(e)f Fj(line)j -Fr(and)e Fj(data)p Fr(.)19 b(This)13 b(returns)h(the)g(old)f(en)o(try) -195 2615 y(so)18 b(the)h(caller)e(can)i(disp)q(ose)g(of)f(an)o(y)g -(application-sp)q(eci\014c)g(data.)30 b(In)19 b(the)g(case)f(of)g(an)h -(in)o(v)m(alid)195 2670 y Fj(whic)o(h)p Fr(,)c(a)g Fq(NULL)f -Fr(p)q(oin)o(ter)h(is)g(returned.)p eop end -%%Page: 6 9 -TeXDict begin 6 8 bop 75 -58 a Fr(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(History)888 b(6)1675 149 y([F)l(unction])-1801 -b Fg(void)27 b(clear_history)d Ff(\()p Fj(v)o(oid)p Ff(\))195 -204 y Fr(Clear)14 b(the)i(history)e(list)g(b)o(y)h(deleting)g(all)f -(the)h(en)o(tries.)1675 297 y([F)l(unction])-1801 b Fg(void)27 -b(stifle_history)e Ff(\()p Fj(in)o(t)14 b(max)p Ff(\))195 -352 y Fr(Sti\015e)h(the)g(history)g(list,)e(remem)o(b)q(ering)i(only)g -(the)g(last)f Fj(max)k Fr(en)o(tries.)1675 445 y([F)l(unction])-1801 -b Fg(int)27 b(unstifle_history)e Ff(\()p Fj(v)o(oid)p -Ff(\))195 500 y Fr(Stop)14 b(sti\015ing)e(the)i(history)l(.)19 -b(This)13 b(returns)g(the)h(previously-set)f(maxim)o(um)g(n)o(um)o(b)q -(er)h(of)f(history)195 555 y(en)o(tries)g(\(as)f(set)i(b)o(y)f -Fq(stifle_history\(\))p Fr(\).)k(The)c(v)m(alue)h(is)f(p)q(ositiv)o(e)f -(if)h(the)h(history)e(w)o(as)g(sti\015ed,)195 609 y(negativ)o(e)i(if)h -(it)f(w)o(asn't.)1675 702 y([F)l(unction])-1801 b Fg(int)27 -b(history_is_stifled)e Ff(\()p Fj(v)o(oid)p Ff(\))195 -757 y Fr(Returns)16 b(non-zero)f(if)g(the)g(history)f(is)h(sti\015ed,)g -(zero)g(if)f(it)h(is)g(not.)75 857 y Fi(2.3.3)30 b(Information)19 -b(Ab)r(out)i(the)f(History)h(List)75 931 y Fr(These)16 -b(functions)f(return)g(information)e(ab)q(out)i(the)g(en)o(tire)g -(history)f(list)g(or)h(individual)f(list)g(en)o(tries.)1675 -1024 y([F)l(unction])-1801 b Fg(HIST_ENTRY)28 b(**)e(history_list)f -Ff(\()p Fj(v)o(oid)p Ff(\))195 1078 y Fr(Return)16 b(a)f -Fq(NULL)f Fr(terminated)h(arra)o(y)f(of)h Fq(HIST_ENTRY)f(*)h -Fr(whic)o(h)g(is)f(the)i(curren)o(t)f(input)g(history)l(.)195 -1133 y(Elemen)o(t)g(0)g(of)f(this)h(list)f(is)h(the)g(b)q(eginning)g -(of)g(time.)k(If)d(there)f(is)g(no)g(history)l(,)f(return)h -Fq(NULL)p Fr(.)1675 1226 y([F)l(unction])-1801 b Fg(int)27 -b(where_history)d Ff(\()p Fj(v)o(oid)p Ff(\))195 1281 -y Fr(Returns)16 b(the)f(o\013set)f(of)h(the)g(curren)o(t)g(history)f -(elemen)o(t.)1675 1374 y([F)l(unction])-1801 b Fg(HIST_ENTRY)28 -b(*)e(current_history)f Ff(\()p Fj(v)o(oid)p Ff(\))195 -1429 y Fr(Return)13 b(the)g(history)e(en)o(try)h(at)g(the)g(curren)o(t) -h(p)q(osition,)e(as)h(determined)h(b)o(y)f Fq(where_history\(\))p -Fr(.)195 1484 y(If)j(there)h(is)e(no)i(en)o(try)e(there,)h(return)g(a)g -Fq(NULL)g Fr(p)q(oin)o(ter.)1675 1577 y([F)l(unction])-1801 -b Fg(HIST_ENTRY)28 b(*)e(history_get)e Ff(\()p Fj(in)o(t)14 -b(o\013set)p Ff(\))195 1631 y Fr(Return)21 b(the)g(history)f(en)o(try)g -(at)g(p)q(osition)g Fj(o\013set)q Fr(,)h(starting)e(from)h -Fq(history_base)f Fr(\(see)h(Sec-)195 1686 y(tion)15 -b(2.4)g([History)g(V)l(ariables],)f(page)i(8\).)22 b(If)16 -b(there)g(is)g(no)g(en)o(try)f(there,)h(or)g(if)f Fj(o\013set)h -Fr(is)g(greater)195 1741 y(than)f(the)g(history)f(length,)h(return)g(a) -g Fq(NULL)g Fr(p)q(oin)o(ter.)1675 1834 y([F)l(unction])-1801 -b Fg(time_t)27 b(history_get_time)e Ff(\()p Fj(HIST)p -828 1834 14 2 v 20 w(ENTR)l(Y)16 b(*en)o(try)p Ff(\))195 -1889 y Fr(Return)g(the)f(time)g(stamp)f(asso)q(ciated)h(with)f(the)h -(history)g(en)o(try)f Fj(en)o(try)t Fr(.)1675 1982 y([F)l(unction]) --1801 b Fg(int)27 b(history_total_bytes)e Ff(\()p Fj(v)o(oid)p -Ff(\))195 2037 y Fr(Return)14 b(the)g(n)o(um)o(b)q(er)g(of)g(b)o(ytes)f -(that)g(the)h(primary)f(history)g(en)o(tries)g(are)h(using.)19 -b(This)13 b(function)195 2091 y(returns)i(the)g(sum)h(of)e(the)i -(lengths)e(of)h(all)f(the)i(lines)e(in)h(the)h(history)l(.)75 -2191 y Fi(2.3.4)30 b(Mo)n(ving)21 b(Around)f(the)h(History)g(List)75 -2265 y Fr(These)16 b(functions)f(allo)o(w)e(the)i(curren)o(t)g(index)h -(in)o(to)e(the)h(history)f(list)g(to)h(b)q(e)h(set)f(or)f(c)o(hanged.) -1675 2358 y([F)l(unction])-1801 b Fg(int)27 b(history_set_pos)e -Ff(\()p Fj(in)o(t)14 b(p)q(os)p Ff(\))195 2413 y Fr(Set)k(the)h(curren) -o(t)f(history)f(o\013set)g(to)h Fj(p)q(os)r Fr(,)g(an)g(absolute)g -(index)g(in)o(to)f(the)i(list.)27 b(Returns)19 b(1)f(on)195 -2467 y(success,)d(0)g(if)g Fj(p)q(os)i Fr(is)e(less)g(than)g(zero)g(or) -g(greater)f(than)h(the)g(n)o(um)o(b)q(er)h(of)e(history)h(en)o(tries.) -1675 2560 y([F)l(unction])-1801 b Fg(HIST_ENTRY)28 b(*)e -(previous_history)f Ff(\()p Fj(v)o(oid)p Ff(\))195 2615 -y Fr(Bac)o(k)14 b(up)h(the)g(curren)o(t)f(history)f(o\013set)h(to)f -(the)i(previous)f(history)f(en)o(try)l(,)h(and)h(return)f(a)g(p)q(oin)o -(ter)195 2670 y(to)h(that)f(en)o(try)l(.)20 b(If)15 b(there)g(is)g(no)g -(previous)g(en)o(try)l(,)g(return)g(a)g Fq(NULL)g Fr(p)q(oin)o(ter.)p -eop end -%%Page: 7 10 -TeXDict begin 7 9 bop 75 -58 a Fr(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(History)888 b(7)1675 149 y([F)l(unction])-1801 -b Fg(HIST_ENTRY)28 b(*)e(next_history)f Ff(\()p Fj(v)o(oid)p -Ff(\))195 204 y Fr(Mo)o(v)o(e)17 b(the)h(curren)o(t)f(history)g -(o\013set)g(forw)o(ard)f(to)h(the)h(next)g(history)f(en)o(try)l(,)h -(and)g(return)f(the)h(a)195 259 y(p)q(oin)o(ter)d(to)f(that)h(en)o(try) -l(.)k(If)d(there)f(is)g(no)g(next)g(en)o(try)l(,)g(return)g(a)g -Fq(NULL)g Fr(p)q(oin)o(ter.)75 361 y Fi(2.3.5)30 b(Searc)n(hing)21 -b(the)f(History)h(List)75 434 y Fr(These)e(functions)e(allo)o(w)g -(searc)o(hing)g(of)h(the)g(history)g(list)e(for)i(en)o(tries)g(con)o -(taining)e(a)i(sp)q(eci\014c)h(string.)75 489 y(Searc)o(hing)13 -b(ma)o(y)h(b)q(e)g(p)q(erformed)g(b)q(oth)g(forw)o(ard)e(and)i(bac)o -(kw)o(ard)f(from)g(the)h(curren)o(t)g(history)e(p)q(osition.)75 -544 y(The)k(searc)o(h)f(ma)o(y)g(b)q(e)i Fj(anc)o(hored)p -Fr(,)e(meaning)g(that)g(the)h(string)f(m)o(ust)g(matc)o(h)g(at)g(the)h -(b)q(eginning)g(of)f(the)75 599 y(history)f(en)o(try)l(.)1675 -696 y([F)l(unction])-1801 b Fg(int)27 b(history_search)d -Ff(\()p Fj(const)15 b(c)o(har)g(*string,)e(in)o(t)i(direction)p -Ff(\))195 750 y Fr(Searc)o(h)f(the)g(history)g(for)f -Fj(string)t Fr(,)g(starting)f(at)i(the)g(curren)o(t)g(history)f -(o\013set.)19 b(If)14 b Fj(direction)g Fr(is)f(less)195 -805 y(than)20 b(0,)g(then)h(the)f(searc)o(h)f(is)h(through)g(previous)f -(en)o(tries,)i(otherwise)e(through)g(subsequen)o(t)195 -860 y(en)o(tries.)g(If)d Fj(string)i Fr(is)d(found,)g(then)g(the)h -(curren)o(t)f(history)f(index)h(is)g(set)g(to)g(that)f(history)g(en)o -(try)l(,)195 915 y(and)j(the)g(v)m(alue)g(returned)g(is)f(the)h -(o\013set)e(in)i(the)g(line)f(of)g(the)h(en)o(try)g(where)g -Fj(string)i Fr(w)o(as)d(found.)195 970 y(Otherwise,)f(nothing)f(is)h(c) -o(hanged,)g(and)h(a)e(-1)h(is)g(returned.)1675 1066 y([F)l(unction]) --1801 b Fg(int)27 b(history_search_prefix)f Ff(\()p Fj(const)14 -b(c)o(har)h(*string,)f(in)o(t)g(direction)p Ff(\))195 -1121 y Fr(Searc)o(h)20 b(the)g(history)f(for)h Fj(string)t -Fr(,)f(starting)g(at)g(the)h(curren)o(t)g(history)f(o\013set.)33 -b(The)21 b(searc)o(h)e(is)195 1176 y(anc)o(hored:)h(matc)o(hing)13 -b(lines)h(m)o(ust)g(b)q(egin)g(with)g Fj(string)t Fr(.)19 -b(If)14 b Fj(direction)g Fr(is)g(less)g(than)g(0,)g(then)h(the)195 -1231 y(searc)o(h)g(is)h(through)f(previous)g(en)o(tries,)g(otherwise)g -(through)g(subsequen)o(t)h(en)o(tries.)21 b(If)16 b Fj(string)i -Fr(is)195 1286 y(found,)f(then)g(the)f(curren)o(t)h(history)e(index)i -(is)f(set)g(to)g(that)g(en)o(try)l(,)g(and)h(the)f(return)h(v)m(alue)g -(is)f(0.)195 1340 y(Otherwise,)f(nothing)f(is)h(c)o(hanged,)g(and)h(a)e -(-1)h(is)g(returned.)1675 1437 y([F)l(unction])-1801 -b Fg(int)27 b(history_search_pos)e Ff(\()p Fj(const)15 -b(c)o(har)g(*string,)e(in)o(t)i(direction,)f(in)o(t)g(p)q(os)p -Ff(\))195 1492 y Fr(Searc)o(h)j(for)f Fj(string)k Fr(in)d(the)g -(history)f(list,)g(starting)f(at)i Fj(p)q(os)r Fr(,)g(an)g(absolute)f -(index)h(in)o(to)f(the)i(list.)195 1547 y(If)g Fj(direction)f -Fr(is)h(negativ)o(e,)f(the)h(searc)o(h)g(pro)q(ceeds)g(bac)o(kw)o(ard)f -(from)g Fj(p)q(os)r Fr(,)i(otherwise)e(forw)o(ard.)195 -1601 y(Returns)23 b(the)f(absolute)f(index)h(of)g(the)g(history)f -(elemen)o(t)h(where)g Fj(string)j Fr(w)o(as)c(found,)j(or)d(-1)195 -1656 y(otherwise.)75 1758 y Fi(2.3.6)30 b(Managing)20 -b(the)g(History)h(File)75 1832 y Fr(The)14 b(History)e(library)g(can)h -(read)g(the)h(history)e(from)h(and)g(write)f(it)h(to)g(a)g(\014le.)19 -b(This)13 b(section)g(do)q(cumen)o(ts)75 1886 y(the)i(functions)g(for)g -(managing)f(a)h(history)f(\014le.)1675 1983 y([F)l(unction])-1801 -b Fg(int)27 b(read_history)d Ff(\()p Fj(const)15 b(c)o(har)g -(*\014lename)p Ff(\))195 2038 y Fr(Add)g(the)g(con)o(ten)o(ts)f(of)h -Fj(\014lename)i Fr(to)d(the)h(history)f(list,)f(a)i(line)f(at)h(a)f -(time.)19 b(If)c Fj(\014lename)j Fr(is)c Fq(NULL)p Fr(,)195 -2093 y(then)i(read)f(from)f(`)p Fq(~/.history)p Fr('.)k(Returns)e(0)e -(if)h(successful,)g(or)g Fq(errno)f Fr(if)h(not.)1675 -2190 y([F)l(unction])-1801 b Fg(int)27 b(read_history_range)e -Ff(\()p Fj(const)15 b(c)o(har)g(*\014lename,)f(in)o(t)h(from,)f(in)o(t) -g(to)p Ff(\))195 2244 y Fr(Read)g(a)g(range)f(of)h(lines)f(from)g -Fj(\014lename)s Fr(,)g(adding)h(them)g(to)f(the)h(history)e(list.)18 -b(Start)13 b(reading)h(at)195 2299 y(line)f Fj(from)f -Fr(and)h(end)h(at)e Fj(to)r Fr(.)19 b(If)13 b Fj(from)f -Fr(is)h(zero,)g(start)f(at)g(the)h(b)q(eginning.)19 b(If)13 -b Fj(to)i Fr(is)e(less)f(than)h Fj(from)p Fr(,)195 2354 -y(then)i(read)g(un)o(til)g(the)g(end)g(of)g(the)g(\014le.)20 -b(If)15 b Fj(\014lename)j Fr(is)d Fq(NULL)p Fr(,)f(then)h(read)g(from)f -(`)p Fq(~/.history)p Fr('.)195 2409 y(Returns)i(0)f(if)f(successful,)h -(or)g Fq(errno)g Fr(if)f(not.)1675 2506 y([F)l(unction])-1801 -b Fg(int)27 b(write_history)d Ff(\()p Fj(const)15 b(c)o(har)g -(*\014lename)p Ff(\))195 2560 y Fr(W)l(rite)h(the)i(curren)o(t)f -(history)f(to)h Fj(\014lename)s Fr(,)g(o)o(v)o(erwriting)d -Fj(\014lename)20 b Fr(if)d(necessary)l(.)26 b(If)18 b -Fj(\014lename)195 2615 y Fr(is)e Fq(NULL)p Fr(,)f(then)h(write)g(the)g -(history)f(list)g(to)g(`)p Fq(~/.history)p Fr('.)21 b(Returns)c(0)e(on) -h(success,)h(or)f Fq(errno)195 2670 y Fr(on)f(a)g(read)g(or)g(write)f -(error.)p eop end -%%Page: 8 11 -TeXDict begin 8 10 bop 75 -58 a Fr(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(History)888 b(8)1675 149 y([F)l(unction])-1801 -b Fg(int)27 b(append_history)d Ff(\()p Fj(in)o(t)15 b(nelemen)o(ts,)f -(const)h(c)o(har)g(*\014lename)p Ff(\))195 204 y Fr(App)q(end)k(the)e -(last)f Fj(nelemen)o(ts)j Fr(of)e(the)g(history)f(list)g(to)h -Fj(\014lename)s Fr(.)25 b(If)17 b Fj(\014lename)j Fr(is)d -Fq(NULL)p Fr(,)g(then)195 259 y(app)q(end)f(to)f(`)p -Fq(~/.history)p Fr('.)j(Returns)d(0)g(on)g(success,)h(or)e -Fq(errno)h Fr(on)g(a)g(read)g(or)g(write)f(error.)1675 -352 y([F)l(unction])-1801 b Fg(int)27 b(history_truncate_file)f -Ff(\()p Fj(const)14 b(c)o(har)h(*\014lename,)g(in)o(t)f(nlines)p -Ff(\))195 407 y Fr(T)l(runcate)19 b(the)g(history)f(\014le)h -Fj(\014lename)s Fr(,)h(lea)o(ving)e(only)g(the)i(last)e -Fj(nlines)i Fr(lines.)31 b(If)20 b Fj(\014lename)h Fr(is)195 -462 y Fq(NULL)p Fr(,)14 b(then)i(`)p Fq(~/.history)p -Fr(')d(is)i(truncated.)k(Returns)d(0)f(on)g(success,)h(or)e -Fq(errno)h Fr(on)g(failure.)75 562 y Fi(2.3.7)30 b(History)20 -b(Expansion)75 635 y Fr(These)c(functions)f(implemen)o(t)f(history)g -(expansion.)1675 729 y([F)l(unction])-1801 b Fg(int)27 -b(history_expand)d Ff(\()p Fj(c)o(har)15 b(*string,)f(c)o(har)g -(**output)p Ff(\))195 783 y Fr(Expand)j Fj(string)t Fr(,)f(placing)g -(the)h(result)f(in)o(to)g Fj(output)q Fr(,)h(a)f(p)q(oin)o(ter)h(to)f -(a)h(string)e(\(see)i(Section)g(1.1)195 838 y([History)d(In)o -(teraction],)f(page)i(1\).)20 b(Returns:)195 919 y Fq(0)216 -b Fr(If)19 b(no)g(expansions)f(to)q(ok)g(place)h(\(or,)f(if)h(the)f -(only)h(c)o(hange)f(in)h(the)g(text)f(w)o(as)g(the)435 -974 y(remo)o(v)m(al)c(of)h(escap)q(e)h(c)o(haracters)e(preceding)h(the) -g(history)f(expansion)h(c)o(haracter\);)195 1054 y Fq(1)216 -b Fr(if)15 b(expansions)g(did)g(tak)o(e)f(place;)195 -1134 y Fq(-1)192 b Fr(if)15 b(there)g(w)o(as)f(an)h(error)g(in)g -(expansion;)195 1214 y Fq(2)216 b Fr(if)13 b(the)h(returned)g(line)g -(should)g(b)q(e)g(displa)o(y)o(ed,)f(but)h(not)f(executed,)i(as)e(with) -g(the)h Fq(:p)435 1269 y Fr(mo)q(di\014er)h(\(see)g(Section)g(1.1.3)f -([Mo)q(di\014ers],)g(page)h(2\).)195 1350 y(If)g(an)h(error)e(o)q -(curred)i(in)f(expansion,)f(then)i Fj(output)g Fr(con)o(tains)e(a)h -(descriptiv)o(e)g(error)f(message.)1675 1443 y([F)l(unction])-1801 -b Fg(char)27 b(*)f(get_history_event)f Ff(\()p Fj(const)15 -b(c)o(har)g(*string,)e(in)o(t)i(*cindex,)g(in)o(t)f(qc)o(har)p -Ff(\))195 1498 y Fr(Returns)23 b(the)g(text)f(of)g(the)g(history)g(ev)o -(en)o(t)g(b)q(eginning)h(at)f Fj(string)j Fq(+)d Fj(*cindex)s -Fr(.)43 b Fj(*cindex)25 b Fr(is)195 1552 y(mo)q(di\014ed)15 -b(to)f(p)q(oin)o(t)g(to)g(after)g(the)h(ev)o(en)o(t)f(sp)q(eci\014er.) -21 b(A)o(t)14 b(function)g(en)o(try)l(,)h Fj(cindex)j -Fr(p)q(oin)o(ts)c(to)g(the)195 1607 y(index)k(in)o(to)f -Fj(string)k Fr(where)d(the)g(history)f(ev)o(en)o(t)h(sp)q -(eci\014cation)f(b)q(egins.)29 b Fj(qc)o(har)21 b Fr(is)c(a)h(c)o -(haracter)195 1662 y(that)13 b(is)g(allo)o(w)o(ed)f(to)g(end)i(the)g -(ev)o(en)o(t)f(sp)q(eci\014cation)h(in)f(addition)f(to)h(the)h -(\\normal")e(terminating)195 1717 y(c)o(haracters.)1675 -1810 y([F)l(unction])-1801 b Fg(char)27 b(**)f(history_tokenize)f -Ff(\()p Fj(const)15 b(c)o(har)g(*string)p Ff(\))195 1865 -y Fr(Return)h(an)f(arra)o(y)f(of)h(tok)o(ens)f(parsed)i(out)f(of)f -Fj(string)t Fr(,)g(m)o(uc)o(h)h(as)g(the)g(shell)g(migh)o(t.)k(The)c -(tok)o(ens)195 1920 y(are)g(split)f(on)i(the)f(c)o(haracters)f(in)h -(the)h Fj(history)p 1004 1920 14 2 v 19 w(w)o(ord)p 1121 -1920 V 19 w(delimiters)g Fr(v)m(ariable,)e(and)i(shell)f(quoting)195 -1974 y(con)o(v)o(en)o(tions)f(are)h(ob)q(ey)o(ed.)1675 -2068 y([F)l(unction])-1801 b Fg(char)27 b(*)f(history_arg_extract)g -Ff(\()p Fj(in)o(t)14 b(\014rst,)g(in)o(t)h(last,)e(const)i(c)o(har)g -(*string)p Ff(\))195 2122 y Fr(Extract)k(a)h(string)f(segmen)o(t)h -(consisting)f(of)h(the)g Fj(\014rst)h Fr(through)f Fj(last)g -Fr(argumen)o(ts)f(presen)o(t)h(in)195 2177 y Fj(string)t -Fr(.)f(Argumen)o(ts)14 b(are)h(split)g(using)g Fq(history_tokenize)p -Fr(.)75 2294 y Fp(2.4)33 b(History)21 b(V)-6 b(ariables)75 -2374 y Fr(This)13 b(section)g(describ)q(es)h(the)g(externally-visible)e -(v)m(ariables)g(exp)q(orted)i(b)o(y)f(the)h Fk(gnu)f -Fr(History)g(Library)l(.)1685 2467 y([V)l(ariable])-1801 -b Fg(int)27 b(history_base)195 2522 y Fr(The)15 b(logical)f(o\013set)g -(of)h(the)g(\014rst)g(en)o(try)g(in)g(the)g(history)f(list.)1685 -2615 y([V)l(ariable])-1801 b Fg(int)27 b(history_length)195 -2670 y Fr(The)15 b(n)o(um)o(b)q(er)h(of)f(en)o(tries)f(curren)o(tly)h -(stored)g(in)g(the)g(history)f(list.)p eop end -%%Page: 9 12 -TeXDict begin 9 11 bop 75 -58 a Fr(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(History)888 b(9)1685 149 y([V)l(ariable])-1801 -b Fg(int)27 b(history_max_entries)195 204 y Fr(The)c(maxim)o(um)f(n)o -(um)o(b)q(er)h(of)g(history)f(en)o(tries.)42 b(This)23 -b(m)o(ust)f(b)q(e)i(c)o(hanged)f(using)g Fq(stifle_)195 -259 y(history\(\))p Fr(.)1685 371 y([V)l(ariable])-1801 -b Fg(int)27 b(history_write_timestamps)195 426 y Fr(If)c(non-zero,)h -(timestamps)d(are)h(written)f(to)h(the)g(history)f(\014le,)j(so)e(they) -g(can)h(b)q(e)g(preserv)o(ed)195 481 y(b)q(et)o(w)o(een)16 -b(sessions.)j(The)c(default)g(v)m(alue)g(is)g(0,)g(meaning)g(that)f -(timestamps)g(are)h(not)g(sa)o(v)o(ed.)195 558 y(The)21 -b(curren)o(t)g(timestamp)e(format)h(uses)h(the)f(v)m(alue)h(of)g -Fj(history)p 1350 558 14 2 v 19 w(commen)o(t)p 1550 558 -V 19 w(c)o(har)j Fr(to)c(delimit)195 613 y(timestamp)g(en)o(tries)g(in) -h(the)h(history)e(\014le.)38 b(If)21 b(that)f(v)m(ariable)h(do)q(es)g -(not)g(ha)o(v)o(e)g(a)g(v)m(alue)g(\(the)195 668 y(default\),)14 -b(timestamps)g(will)g(not)h(b)q(e)h(written.)1685 780 -y([V)l(ariable])-1801 b Fg(char)27 b(history_expansion_char)195 -835 y Fr(The)18 b(c)o(haracter)f(that)g(in)o(tro)q(duces)g(a)g(history) -g(ev)o(en)o(t.)27 b(The)18 b(default)f(is)g(`)p Fq(!)p -Fr('.)26 b(Setting)17 b(this)g(to)g(0)195 889 y(inhibits)d(history)h -(expansion.)1685 1002 y([V)l(ariable])-1801 b Fg(char)27 -b(history_subst_char)195 1056 y Fr(The)21 b(c)o(haracter)e(that)h(in)o -(v)o(ok)o(es)f(w)o(ord)h(substitution)f(if)h(found)g(at)g(the)h(start)e -(of)h(a)g(line.)35 b(The)195 1111 y(default)15 b(is)f(`)p -Fq(^)p Fr('.)1685 1223 y([V)l(ariable])-1801 b Fg(char)27 -b(history_comment_char)195 1278 y Fr(During)18 b(tok)o(enization,)g(if) -g(this)h(c)o(haracter)f(is)g(seen)i(as)e(the)h(\014rst)g(c)o(haracter)f -(of)g(a)h(w)o(ord,)g(then)195 1333 y(it)i(and)h(all)e(subsequen)o(t)j -(c)o(haracters)d(up)j(to)e(a)g(newline)g(are)h(ignored,)g(suppressing)g -(history)195 1388 y(expansion)15 b(for)g(the)g(remainder)g(of)g(the)g -(line.)k(This)c(is)g(disabled)g(b)o(y)g(default.)1685 -1500 y([V)l(ariable])-1801 b Fg(char)27 b(*)f(history_word_delimiters) -195 1555 y Fr(The)14 b(c)o(haracters)f(that)g(separate)g(tok)o(ens)h -(for)f Fq(history_tokenize\(\))p Fr(.)k(The)d(default)f(v)m(alue)h(is)f -Fq(")195 1610 y(\\t\\n\(\)<>;&|")p Fr(.)1685 1722 y([V)l(ariable])-1801 -b Fg(char)27 b(*)f(history_search_delimite)q(r_chars)195 -1777 y Fr(The)13 b(list)f(of)h(additional)e(c)o(haracters)h(whic)o(h)h -(can)h(delimit)d(a)i(history)f(searc)o(h)h(string,)f(in)h(addition)195 -1831 y(to)i(space,)g(T)l(AB,)g(`)p Fq(:)p Fr(')f(and)h(`)p -Fq(?)p Fr(')g(in)g(the)g(case)g(of)g(a)g(substring)f(searc)o(h.)20 -b(The)c(default)e(is)h(empt)o(y)l(.)1685 1944 y([V)l(ariable])-1801 -b Fg(char)27 b(*)f(history_no_expand_chars)195 1998 y -Fr(The)15 b(list)f(of)g(c)o(haracters)g(whic)o(h)h(inhibit)f(history)g -(expansion)h(if)f(found)i(immediately)d(follo)o(wing)195 -2053 y Fj(history)p 337 2053 V 19 w(expansion)p 552 2053 -V 20 w(c)o(har)s Fr(.)20 b(The)15 b(default)g(is)g(space,)g(tab,)f -(newline,)h(carriage)f(return,)h(and)g(`)p Fq(=)p Fr('.)1685 -2165 y([V)l(ariable])-1801 b Fg(int)27 b(history_quotes_inhibit_exp)q -(ansion)195 2220 y Fr(If)15 b(non-zero,)f(single-quoted)h(w)o(ords)e -(are)i(not)f(scanned)h(for)f(the)h(history)f(expansion)g(c)o(haracter.) -195 2275 y(The)h(default)g(v)m(alue)h(is)e(0.)1685 2387 -y([V)l(ariable])-1801 b Fg(rl_linebuf_func_t)29 b(*)d -(history_inhibit_expansi)q(on_func)q(tion)195 2442 y -Fr(This)16 b(should)h(b)q(e)g(set)g(to)f(the)g(address)h(of)f(a)h -(function)f(that)g(tak)o(es)g(t)o(w)o(o)f(argumen)o(ts:)22 -b(a)17 b Fq(char)d(*)195 2497 y Fr(\()p Fj(string)t Fr(\))d(and)j(an)f -Fq(int)g Fr(index)h(in)o(to)e(that)g(string)h(\()p Fj(i)r -Fr(\).)18 b(It)c(should)f(return)g(a)g(non-zero)h(v)m(alue)f(if)g(the) -195 2552 y(history)h(expansion)g(starting)f(at)h Fj(string[i])g -Fr(should)h(not)f(b)q(e)h(p)q(erformed;)g(zero)f(if)g(the)h(expansion) -195 2606 y(should)h(b)q(e)h(done.)22 b(It)16 b(is)g(in)o(tended)g(for)f -(use)i(b)o(y)f(applications)e(lik)o(e)h(Bash)h(that)g(use)g(the)g -(history)195 2661 y(expansion)f(c)o(haracter)g(for)f(additional)g(purp) -q(oses.)20 b(By)c(default,)e(this)h(v)m(ariable)f(is)h(set)g(to)f -Fq(NULL)p Fr(.)p eop end -%%Page: 10 13 -TeXDict begin 10 12 bop 75 -58 a Fr(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(History)866 b(10)75 149 y Fp(2.5)33 b(History)21 -b(Programming)h(Example)75 229 y Fr(The)15 b(follo)o(wing)e(program)h -(demonstrates)h(simple)g(use)g(of)g(the)g Fk(gnu)g Fr(History)f -(Library)l(.)195 316 y Fe(#include)j()195 -360 y(#include)g()195 -447 y(main)h(\(argc,)f(argv\))293 491 y(int)i(argc;)293 -534 y(char)f(**argv;)195 578 y({)234 621 y(char)g(line[1024])o(,)f(*t;) -234 665 y(int)i(len,)f(done)g(=)h(0;)234 752 y(line[0])e(=)i(0;)234 -839 y(using_hist)o(ory)d(\(\);)234 883 y(while)i(\(!done\))273 -927 y({)313 970 y(printf)f(\("history)o($)g("\);)313 -1014 y(fflush)g(\(stdout\);)313 1057 y(t)i(=)g(fgets)f(\(line,)f -(sizeof)g(\(line\))h(-)h(1,)g(stdin\);)313 1101 y(if)g(\(t)f(&&)h(*t\)) -352 1144 y({)391 1188 y(len)g(=)g(strlen)e(\(t\);)391 -1232 y(if)i(\(t[len)e(-)i(1])g(==)g('\\n'\))430 1275 -y(t[len)f(-)h(1])g(=)g('\\0';)352 1319 y(})313 1406 y(if)g(\(!t\))352 -1450 y(strcpy)e(\(line,)g("quit"\);)313 1537 y(if)i(\(line[0])o(\))352 -1580 y({)391 1624 y(char)f(*expansion)o(;)391 1667 y(int)h(result;)391 -1755 y(result)e(=)j(history_e)o(xp)o(and)c(\(line,)h(&expansion)o(\);) -391 1798 y(if)i(\(result\))430 1842 y(fprintf)e(\(stderr,)g -("\045s\\n",)g(expansion)o(\);)391 1929 y(if)i(\(result)e(<)i(0)g(||)g -(result)e(==)i(2\))430 1973 y({)470 2016 y(free)f(\(expansio)o(n\))o(;) -470 2060 y(continue)o(;)430 2103 y(})391 2191 y(add_histor)o(y)e -(\(expansion\))o(;)391 2234 y(strncpy)h(\(line,)g(expansion,)f(sizeof)h -(\(line\))h(-)h(1\);)391 2278 y(free)f(\(expansion)o(\);)352 -2321 y(})313 2408 y(if)h(\(strcmp)d(\(line,)i("quit"\))f(==)h(0\))352 -2452 y(done)g(=)h(1;)313 2496 y(else)f(if)h(\(strcmp)d(\(line,)i -("save"\))f(==)i(0\))352 2539 y(write_his)o(tor)o(y)d(\("history_f)o -(il)o(e"\))o(;)313 2583 y(else)i(if)h(\(strcmp)d(\(line,)i("read"\))f -(==)i(0\))352 2626 y(read_hist)o(ory)d(\("history)o(_fi)o(le)o("\);)313 -2670 y(else)i(if)h(\(strcmp)d(\(line,)i("list"\))f(==)i(0\))p -eop end -%%Page: 11 14 -TeXDict begin 11 13 bop 75 -58 a Fr(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(History)866 b(11)352 149 y Fe({)391 193 -y(register)17 b(HIST_ENTR)o(Y)f(**the_list;)391 237 y(register)h(int)h -(i;)391 324 y(the_list)f(=)i(history_l)o(ist)d(\(\);)391 -367 y(if)j(\(the_list)o(\))430 411 y(for)g(\(i)g(=)g(0;)g(the_list[)o -(i])o(;)e(i++\))470 455 y(printf)g(\("\045d:)h(\045s\\n",)f(i)i(+)g -(history_ba)o(se,)d(the_list[)o(i]-)o(>li)o(ne)o(\);)352 -498 y(})313 542 y(else)i(if)h(\(strncmp)d(\(line,)h("delete",)g(6\))h -(==)h(0\))352 585 y({)391 629 y(int)g(which;)391 672 -y(if)g(\(\(sscanf)d(\(line)i(+)h(6,)g("\045d",)f(&which\)\))e(==)j(1\)) -430 716 y({)470 760 y(HIST_ENT)o(RY)d(*entry)i(=)h(remove_hi)o(sto)o -(ry)d(\(which\);)470 803 y(if)i(\(!entry\))509 847 y(fprintf)f -(\(stderr,)f("No)j(such)f(entry)f(\045d\\n",)h(which\);)470 -890 y(else)509 934 y({)548 978 y(free)g(\(entry->li)o(ne)o(\);)548 -1021 y(free)g(\(entry\);)509 1065 y(})430 1108 y(})391 -1152 y(else)430 1196 y({)470 1239 y(fprintf)e(\(stderr,)h("non-numer)o -(ic)f(arg)i(given)g(to)h(`delete'\\n)o("\))o(;)430 1283 -y(})352 1326 y(})273 1370 y(})195 1413 y(})p eop end -%%Page: 12 15 -TeXDict begin 12 14 bop 75 -58 a Fr(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(12)75 149 -y Fn(App)r(endix)26 b(A)41 b(GNU)27 b(F)-7 b(ree)26 b(Do)r(cumen)n -(tation)j(License)679 251 y Fr(V)l(ersion)15 b(1.3,)f(3)h(No)o(v)o(em)o -(b)q(er)g(2008)195 318 y(Cop)o(yrigh)o(t)421 317 y(c)409 -318 y Fo(\015)g Fr(2000,)f(2001,)f(2002,)h(2007,)g(2008)g(F)l(ree)h -(Soft)o(w)o(are)f(F)l(oundation,)g(Inc.)195 373 y Fq(http://fsf.org/) -195 482 y Fr(Ev)o(ery)o(one)h(is)f(p)q(ermitted)h(to)g(cop)o(y)g(and)g -(distribute)g(v)o(erbatim)f(copies)195 537 y(of)h(this)f(license)i(do)q -(cumen)o(t,)f(but)g(c)o(hanging)g(it)f(is)h(not)g(allo)o(w)o(ed.)100 -603 y(0.)29 b(PREAMBLE)165 670 y(The)19 b(purp)q(ose)g(of)f(this)g -(License)i(is)e(to)g(mak)o(e)g(a)g(man)o(ual,)g(textb)q(o)q(ok,)h(or)f -(other)g(functional)g(and)165 725 y(useful)d(do)q(cumen)o(t)h -Fj(free)h Fr(in)e(the)g(sense)h(of)f(freedom:)k(to)c(assure)g(ev)o(ery) -o(one)f(the)i(e\013ectiv)o(e)e(freedom)165 780 y(to)h(cop)o(y)h(and)g -(redistribute)f(it,)f(with)h(or)g(without)g(mo)q(difying)g(it,)g -(either)g(commercially)f(or)i(non-)165 834 y(commercially)l(.)25 -b(Secondarily)l(,)17 b(this)g(License)h(preserv)o(es)f(for)g(the)g -(author)g(and)h(publisher)f(a)g(w)o(a)o(y)165 889 y(to)g(get)h(credit)g -(for)f(their)h(w)o(ork,)f(while)h(not)g(b)q(eing)g(considered)g(resp)q -(onsible)g(for)g(mo)q(di\014cations)165 944 y(made)d(b)o(y)g(others.) -165 1010 y(This)c(License)i(is)e(a)g(kind)h(of)f(\\cop)o(yleft",)f -(whic)o(h)i(means)f(that)g(deriv)m(ativ)o(e)g(w)o(orks)g(of)g(the)h(do) -q(cumen)o(t)165 1065 y(m)o(ust)k(themselv)o(es)h(b)q(e)h(free)e(in)h -(the)g(same)g(sense.)26 b(It)16 b(complemen)o(ts)h(the)g(GNU)g(General) -f(Public)165 1120 y(License,)g(whic)o(h)f(is)f(a)h(cop)o(yleft)g -(license)g(designed)g(for)g(free)g(soft)o(w)o(are.)165 -1187 y(W)l(e)g(ha)o(v)o(e)f(designed)h(this)g(License)g(in)g(order)f -(to)g(use)h(it)f(for)h(man)o(uals)e(for)h(free)h(soft)o(w)o(are,)e(b)q -(ecause)165 1241 y(free)21 b(soft)o(w)o(are)e(needs)j(free)f(do)q -(cumen)o(tation:)31 b(a)21 b(free)g(program)f(should)h(come)g(with)g -(man)o(uals)165 1296 y(pro)o(viding)13 b(the)i(same)f(freedoms)g(that)g -(the)g(soft)o(w)o(are)f(do)q(es.)20 b(But)14 b(this)g(License)h(is)f -(not)g(limited)g(to)165 1351 y(soft)o(w)o(are)g(man)o(uals;)g(it)g(can) -i(b)q(e)g(used)g(for)e(an)o(y)h(textual)g(w)o(ork,)f(regardless)g(of)h -(sub)s(ject)g(matter)f(or)165 1406 y(whether)i(it)f(is)g(published)h -(as)g(a)f(prin)o(ted)h(b)q(o)q(ok.)21 b(W)l(e)16 b(recommend)g(this)f -(License)i(principally)e(for)165 1461 y(w)o(orks)f(whose)h(purp)q(ose)h -(is)f(instruction)f(or)h(reference.)100 1527 y(1.)29 -b(APPLICABILITY)17 b(AND)e(DEFINITIONS)165 1594 y(This)20 -b(License)g(applies)g(to)f(an)o(y)h(man)o(ual)f(or)g(other)h(w)o(ork,)g -(in)g(an)o(y)f(medium,)i(that)e(con)o(tains)g(a)165 1648 -y(notice)h(placed)h(b)o(y)g(the)g(cop)o(yrigh)o(t)e(holder)i(sa)o(ying) -f(it)g(can)h(b)q(e)g(distributed)f(under)i(the)f(terms)165 -1703 y(of)d(this)g(License.)32 b(Suc)o(h)19 b(a)g(notice)f(gran)o(ts)f -(a)i(w)o(orld-wide,)f(ro)o(y)o(alt)o(y-free)f(license,)i(unlimited)f -(in)165 1758 y(duration,)23 b(to)f(use)h(that)f(w)o(ork)g(under)h(the)g -(conditions)f(stated)g(herein.)42 b(The)23 b(\\Do)q(cumen)o(t",)165 -1813 y(b)q(elo)o(w,)14 b(refers)g(to)f(an)o(y)h(suc)o(h)g(man)o(ual)g -(or)f(w)o(ork.)19 b(An)o(y)14 b(mem)o(b)q(er)h(of)e(the)i(public)f(is)g -(a)g(licensee,)g(and)165 1868 y(is)e(addressed)h(as)f(\\y)o(ou".)18 -b(Y)l(ou)13 b(accept)g(the)f(license)h(if)f(y)o(ou)g(cop)o(y)l(,)h(mo)q -(dify)f(or)g(distribute)f(the)i(w)o(ork)165 1922 y(in)i(a)g(w)o(a)o(y)f -(requiring)h(p)q(ermission)f(under)i(cop)o(yrigh)o(t)e(la)o(w.)165 -1989 y(A)j(\\Mo)q(di\014ed)g(V)l(ersion")f(of)g(the)h(Do)q(cumen)o(t)g -(means)g(an)o(y)f(w)o(ork)g(con)o(taining)g(the)h(Do)q(cumen)o(t)f(or) -165 2044 y(a)i(p)q(ortion)g(of)h(it,)f(either)h(copied)g(v)o(erbatim,)f -(or)g(with)g(mo)q(di\014cations)g(and/or)g(translated)g(in)o(to)165 -2099 y(another)d(language.)165 2165 y(A)e(\\Secondary)g(Section")g(is)f -(a)h(named)g(app)q(endix)h(or)e(a)h(fron)o(t-matter)e(section)h(of)h -(the)g(Do)q(cumen)o(t)165 2220 y(that)d(deals)g(exclusiv)o(ely)g(with)g -(the)h(relationship)e(of)i(the)f(publishers)h(or)f(authors)g(of)g(the)h -(Do)q(cumen)o(t)165 2275 y(to)18 b(the)h(Do)q(cumen)o(t's)f(o)o(v)o -(erall)f(sub)s(ject)h(\(or)g(to)g(related)g(matters\))f(and)i(con)o -(tains)f(nothing)g(that)165 2329 y(could)i(fall)f(directly)h(within)f -(that)g(o)o(v)o(erall)g(sub)s(ject.)34 b(\(Th)o(us,)21 -b(if)f(the)g(Do)q(cumen)o(t)g(is)g(in)g(part)f(a)165 -2384 y(textb)q(o)q(ok)12 b(of)f(mathematics,)g(a)g(Secondary)h(Section) -g(ma)o(y)f(not)h(explain)f(an)o(y)h(mathematics.\))17 -b(The)165 2439 y(relationship)12 b(could)i(b)q(e)g(a)g(matter)e(of)i -(historical)d(connection)j(with)f(the)h(sub)s(ject)f(or)h(with)f -(related)165 2494 y(matters,)k(or)g(of)g(legal,)g(commercial,)g -(philosophical,)g(ethical)g(or)g(p)q(olitical)f(p)q(osition)h -(regarding)165 2549 y(them.)165 2615 y(The)c(\\In)o(v)m(arian)o(t)f -(Sections")g(are)h(certain)f(Secondary)h(Sections)g(whose)g(titles)e -(are)i(designated,)f(as)165 2670 y(b)q(eing)i(those)f(of)g(In)o(v)m -(arian)o(t)f(Sections,)h(in)h(the)f(notice)g(that)f(sa)o(ys)h(that)g -(the)g(Do)q(cumen)o(t)g(is)g(released)p eop end -%%Page: 13 16 -TeXDict begin 13 15 bop 75 -58 a Fr(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(13)165 149 -y(under)15 b(this)e(License.)20 b(If)14 b(a)g(section)f(do)q(es)h(not)g -(\014t)f(the)h(ab)q(o)o(v)o(e)g(de\014nition)g(of)f(Secondary)h(then)g -(it)f(is)165 204 y(not)j(allo)o(w)o(ed)e(to)h(b)q(e)i(designated)f(as)f -(In)o(v)m(arian)o(t.)21 b(The)c(Do)q(cumen)o(t)e(ma)o(y)h(con)o(tain)f -(zero)h(In)o(v)m(arian)o(t)165 259 y(Sections.)j(If)12 -b(the)h(Do)q(cumen)o(t)f(do)q(es)h(not)f(iden)o(tify)f(an)o(y)h(In)o(v) -m(arian)o(t)g(Sections)g(then)h(there)f(are)g(none.)165 -334 y(The)19 b(\\Co)o(v)o(er)e(T)l(exts")g(are)h(certain)g(short)g -(passages)g(of)f(text)h(that)g(are)g(listed,)g(as)g(F)l(ron)o(t-Co)o(v) -o(er)165 389 y(T)l(exts)12 b(or)g(Bac)o(k-Co)o(v)o(er)g(T)l(exts,)g(in) -h(the)f(notice)g(that)g(sa)o(ys)g(that)g(the)g(Do)q(cumen)o(t)h(is)f -(released)g(under)165 444 y(this)g(License.)20 b(A)13 -b(F)l(ron)o(t-Co)o(v)o(er)e(T)l(ext)i(ma)o(y)f(b)q(e)i(at)e(most)g(5)h -(w)o(ords,)f(and)h(a)g(Bac)o(k-Co)o(v)o(er)f(T)l(ext)h(ma)o(y)165 -499 y(b)q(e)j(at)e(most)h(25)f(w)o(ords.)165 574 y(A)k(\\T)l(ransparen) -o(t")e(cop)o(y)i(of)f(the)h(Do)q(cumen)o(t)g(means)f(a)h(mac)o -(hine-readable)f(cop)o(y)l(,)h(represen)o(ted)165 629 -y(in)g(a)f(format)g(whose)g(sp)q(eci\014cation)h(is)g(a)o(v)m(ailable)e -(to)h(the)h(general)g(public,)g(that)f(is)g(suitable)h(for)165 -684 y(revising)d(the)h(do)q(cumen)o(t)g(straigh)o(tforw)o(ardly)d(with) -i(generic)h(text)f(editors)g(or)g(\(for)g(images)g(com-)165 -738 y(p)q(osed)d(of)g(pixels\))f(generic)h(pain)o(t)f(programs)g(or)g -(\(for)g(dra)o(wings\))g(some)g(widely)g(a)o(v)m(ailable)g(dra)o(wing) -165 793 y(editor,)j(and)g(that)g(is)g(suitable)g(for)g(input)g(to)g -(text)g(formatters)f(or)h(for)g(automatic)f(translation)g(to)165 -848 y(a)g(v)m(ariet)o(y)g(of)g(formats)f(suitable)g(for)h(input)h(to)e -(text)h(formatters.)18 b(A)13 b(cop)o(y)h(made)f(in)g(an)h(otherwise) -165 903 y(T)l(ransparen)o(t)k(\014le)h(format)e(whose)i(markup,)g(or)g -(absence)g(of)g(markup,)g(has)f(b)q(een)i(arranged)f(to)165 -958 y(th)o(w)o(art)12 b(or)g(discourage)h(subsequen)o(t)h(mo)q -(di\014cation)f(b)o(y)g(readers)g(is)g(not)g(T)l(ransparen)o(t.)18 -b(An)c(image)165 1012 y(format)i(is)h(not)f(T)l(ransparen)o(t)h(if)g -(used)g(for)g(an)o(y)g(substan)o(tial)e(amoun)o(t)i(of)f(text.)26 -b(A)17 b(cop)o(y)g(that)f(is)165 1067 y(not)f(\\T)l(ransparen)o(t")f -(is)h(called)f(\\Opaque".)165 1143 y(Examples)26 b(of)g(suitable)g -(formats)f(for)h(T)l(ransparen)o(t)g(copies)g(include)h(plain)f -Fk(asci)q(i)g Fr(without)165 1197 y(markup,)18 b(T)l(exinfo)g(input)g -(format,)f(LaT)879 1207 y(E)905 1197 y(X)h(input)g(format,)f -Fd(SGML)h Fr(or)f Fd(XML)i Fr(using)e(a)h(publicly)165 -1252 y(a)o(v)m(ailable)h Fd(DTD)p Fr(,)g(and)h(standard-conforming)f -(simple)g Fd(HTML)p Fr(,)h(P)o(ostScript)f(or)g Fd(PDF)i -Fr(designed)165 1307 y(for)e(h)o(uman)g(mo)q(di\014cation.)31 -b(Examples)19 b(of)f(transparen)o(t)h(image)f(formats)g(include)h -Fd(PNG)p Fr(,)g Fd(X)o(CF)165 1362 y Fr(and)i Fd(JPG)p -Fr(.)f(Opaque)h(formats)e(include)i(proprietary)e(formats)g(that)g(can) -i(b)q(e)g(read)f(and)h(edited)165 1417 y(only)26 b(b)o(y)h(proprietary) -f(w)o(ord)g(pro)q(cessors,)j Fd(SGML)d Fr(or)h Fd(XML)g -Fr(for)f(whic)o(h)g(the)h Fd(DTD)g Fr(and/or)165 1471 -y(pro)q(cessing)j(to)q(ols)g(are)g(not)g(generally)g(a)o(v)m(ailable,)i -(and)f(the)g(mac)o(hine-generated)f Fd(HTML)p Fr(,)165 -1526 y(P)o(ostScript)14 b(or)h Fd(PDF)g Fr(pro)q(duced)h(b)o(y)f(some)g -(w)o(ord)g(pro)q(cessors)g(for)f(output)h(purp)q(oses)h(only)l(.)165 -1601 y(The)h(\\Title)f(P)o(age")g(means,)i(for)e(a)h(prin)o(ted)g(b)q -(o)q(ok,)g(the)g(title)f(page)h(itself,)g(plus)g(suc)o(h)g(follo)o -(wing)165 1656 y(pages)d(as)f(are)h(needed)h(to)e(hold,)h(legibly)l(,)e -(the)i(material)e(this)i(License)g(requires)g(to)f(app)q(ear)h(in)g -(the)165 1711 y(title)e(page.)19 b(F)l(or)13 b(w)o(orks)f(in)h(formats) -f(whic)o(h)h(do)g(not)g(ha)o(v)o(e)g(an)o(y)g(title)f(page)h(as)g(suc)o -(h,)h(\\Title)e(P)o(age")165 1766 y(means)j(the)h(text)e(near)i(the)f -(most)g(prominen)o(t)f(app)q(earance)i(of)f(the)g(w)o(ork's)f(title,)g -(preceding)i(the)165 1821 y(b)q(eginning)f(of)g(the)g(b)q(o)q(dy)h(of)f -(the)g(text.)165 1896 y(The)j(\\publisher")e(means)i(an)o(y)f(p)q -(erson)g(or)g(en)o(tit)o(y)f(that)h(distributes)g(copies)g(of)g(the)g -(Do)q(cumen)o(t)165 1951 y(to)e(the)g(public.)165 2026 -y(A)g(section)f(\\En)o(titled)g(XYZ")g(means)h(a)g(named)g(subunit)g -(of)f(the)h(Do)q(cumen)o(t)g(whose)g(title)e(either)165 -2081 y(is)g(precisely)h(XYZ)g(or)f(con)o(tains)g(XYZ)h(in)g(paren)o -(theses)g(follo)o(wing)d(text)j(that)f(translates)f(XYZ)i(in)165 -2136 y(another)e(language.)18 b(\(Here)13 b(XYZ)f(stands)g(for)g(a)g -(sp)q(eci\014c)i(section)e(name)g(men)o(tioned)g(b)q(elo)o(w,)h(suc)o -(h)165 2191 y(as)h(\\Ac)o(kno)o(wledgemen)o(ts",)e(\\Dedications",)h -(\\Endorsemen)o(ts",)g(or)g(\\History".\))18 b(T)l(o)13 -b(\\Preserv)o(e)165 2245 y(the)k(Title")e(of)i(suc)o(h)g(a)f(section)h -(when)g(y)o(ou)f(mo)q(dify)h(the)g(Do)q(cumen)o(t)f(means)h(that)f(it)g -(remains)g(a)165 2300 y(section)f(\\En)o(titled)f(XYZ")g(according)h -(to)g(this)f(de\014nition.)165 2375 y(The)g(Do)q(cumen)o(t)g(ma)o(y)f -(include)h(W)l(arran)o(t)o(y)e(Disclaimers)g(next)i(to)g(the)g(notice)f -(whic)o(h)h(states)f(that)165 2430 y(this)j(License)i(applies)f(to)f -(the)h(Do)q(cumen)o(t.)25 b(These)17 b(W)l(arran)o(t)o(y)e(Disclaimers) -h(are)g(considered)i(to)165 2485 y(b)q(e)h(included)h(b)o(y)f -(reference)g(in)g(this)f(License,)i(but)f(only)f(as)h(regards)f -(disclaiming)f(w)o(arran)o(ties:)165 2540 y(an)o(y)h(other)g -(implication)f(that)h(these)g(W)l(arran)o(t)o(y)f(Disclaimers)g(ma)o(y) -g(ha)o(v)o(e)h(is)g(v)o(oid)g(and)h(has)f(no)165 2595 -y(e\013ect)d(on)g(the)g(meaning)g(of)g(this)g(License.)100 -2670 y(2.)29 b(VERBA)l(TIM)16 b(COPYING)p eop end -%%Page: 14 17 -TeXDict begin 14 16 bop 75 -58 a Fr(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(14)165 149 -y(Y)l(ou)19 b(ma)o(y)g(cop)o(y)f(and)i(distribute)e(the)h(Do)q(cumen)o -(t)g(in)g(an)o(y)g(medium,)g(either)g(commercially)e(or)165 -204 y(noncommercially)l(,)k(pro)o(vided)g(that)g(this)g(License,)i(the) -e(cop)o(yrigh)o(t)f(notices,)i(and)g(the)f(license)165 -259 y(notice)d(sa)o(ying)e(this)i(License)g(applies)g(to)f(the)h(Do)q -(cumen)o(t)g(are)f(repro)q(duced)i(in)f(all)f(copies,)h(and)165 -314 y(that)13 b(y)o(ou)g(add)g(no)g(other)g(conditions)g(whatso)q(ev)o -(er)f(to)h(those)g(of)g(this)g(License.)20 b(Y)l(ou)13 -b(ma)o(y)g(not)g(use)165 369 y(tec)o(hnical)j(measures)g(to)g(obstruct) -g(or)g(con)o(trol)f(the)h(reading)g(or)g(further)h(cop)o(ying)f(of)g -(the)g(copies)165 423 y(y)o(ou)c(mak)o(e)g(or)f(distribute.)19 -b(Ho)o(w)o(ev)o(er,)11 b(y)o(ou)h(ma)o(y)g(accept)g(comp)q(ensation)g -(in)g(exc)o(hange)h(for)e(copies.)165 478 y(If)16 b(y)o(ou)g -(distribute)f(a)h(large)f(enough)i(n)o(um)o(b)q(er)f(of)g(copies)g(y)o -(ou)g(m)o(ust)f(also)g(follo)o(w)g(the)h(conditions)165 -533 y(in)f(section)g(3.)165 600 y(Y)l(ou)c(ma)o(y)e(also)h(lend)g -(copies,)h(under)g(the)g(same)f(conditions)f(stated)h(ab)q(o)o(v)o(e,)h -(and)f(y)o(ou)g(ma)o(y)g(publicly)165 655 y(displa)o(y)k(copies.)100 -722 y(3.)29 b(COPYING)16 b(IN)f(QUANTITY)165 789 y(If)e(y)o(ou)f -(publish)h(prin)o(ted)f(copies)h(\(or)e(copies)i(in)f(media)h(that)e -(commonly)h(ha)o(v)o(e)g(prin)o(ted)h(co)o(v)o(ers\))e(of)165 -844 y(the)16 b(Do)q(cumen)o(t,)g(n)o(um)o(b)q(ering)f(more)h(than)g -(100,)e(and)i(the)g(Do)q(cumen)o(t's)g(license)g(notice)f(requires)165 -898 y(Co)o(v)o(er)h(T)l(exts,)h(y)o(ou)g(m)o(ust)g(enclose)g(the)g -(copies)g(in)g(co)o(v)o(ers)g(that)f(carry)l(,)h(clearly)f(and)i -(legibly)l(,)e(all)165 953 y(these)k(Co)o(v)o(er)e(T)l(exts:)29 -b(F)l(ron)o(t-Co)o(v)o(er)18 b(T)l(exts)h(on)g(the)h(fron)o(t)f(co)o(v) -o(er,)g(and)h(Bac)o(k-Co)o(v)o(er)f(T)l(exts)g(on)165 -1008 y(the)c(bac)o(k)f(co)o(v)o(er.)19 b(Both)14 b(co)o(v)o(ers)g(m)o -(ust)g(also)g(clearly)g(and)g(legibly)g(iden)o(tify)g(y)o(ou)g(as)g -(the)h(publisher)165 1063 y(of)i(these)g(copies.)26 b(The)17 -b(fron)o(t)f(co)o(v)o(er)h(m)o(ust)f(presen)o(t)i(the)f(full)f(title)g -(with)h(all)f(w)o(ords)g(of)h(the)g(title)165 1117 y(equally)e -(prominen)o(t)g(and)g(visible.)20 b(Y)l(ou)c(ma)o(y)e(add)i(other)f -(material)e(on)j(the)f(co)o(v)o(ers)g(in)g(addition.)165 -1172 y(Cop)o(ying)i(with)h(c)o(hanges)g(limited)f(to)g(the)h(co)o(v)o -(ers,)g(as)g(long)f(as)h(they)g(preserv)o(e)g(the)g(title)f(of)h(the) -165 1227 y(Do)q(cumen)o(t)g(and)h(satisfy)e(these)i(conditions,)f(can)h -(b)q(e)g(treated)f(as)h(v)o(erbatim)e(cop)o(ying)h(in)g(other)165 -1282 y(resp)q(ects.)165 1349 y(If)f(the)f(required)h(texts)e(for)h -(either)g(co)o(v)o(er)g(are)g(to)q(o)g(v)o(oluminous)f(to)h(\014t)g -(legibly)l(,)f(y)o(ou)h(should)h(put)165 1404 y(the)g(\014rst)f(ones)g -(listed)g(\(as)f(man)o(y)h(as)g(\014t)h(reasonably\))e(on)h(the)h -(actual)f(co)o(v)o(er,)f(and)i(con)o(tin)o(ue)f(the)165 -1458 y(rest)f(on)o(to)f(adjacen)o(t)h(pages.)165 1525 -y(If)f(y)o(ou)f(publish)h(or)f(distribute)f(Opaque)j(copies)e(of)g(the) -h(Do)q(cumen)o(t)f(n)o(um)o(b)q(ering)h(more)f(than)g(100,)165 -1580 y(y)o(ou)h(m)o(ust)f(either)h(include)g(a)g(mac)o(hine-readable)g -(T)l(ransparen)o(t)f(cop)o(y)h(along)f(with)g(eac)o(h)h(Opaque)165 -1635 y(cop)o(y)l(,)k(or)f(state)g(in)g(or)g(with)g(eac)o(h)g(Opaque)i -(cop)o(y)e(a)g(computer-net)o(w)o(ork)g(lo)q(cation)f(from)h(whic)o(h) -165 1690 y(the)12 b(general)g(net)o(w)o(ork-using)f(public)h(has)g -(access)g(to)g(do)o(wnload)f(using)h(public-standard)g(net)o(w)o(ork) -165 1745 y(proto)q(cols)18 b(a)h(complete)h(T)l(ransparen)o(t)e(cop)o -(y)i(of)f(the)g(Do)q(cumen)o(t,)h(free)g(of)f(added)h(material.)31 -b(If)165 1799 y(y)o(ou)19 b(use)h(the)f(latter)f(option,)i(y)o(ou)f(m)o -(ust)g(tak)o(e)f(reasonably)h(pruden)o(t)h(steps,)g(when)g(y)o(ou)f(b)q -(egin)165 1854 y(distribution)f(of)g(Opaque)i(copies)f(in)g(quan)o(tit) -o(y)l(,)g(to)f(ensure)i(that)e(this)h(T)l(ransparen)o(t)f(cop)o(y)h -(will)165 1909 y(remain)c(th)o(us)f(accessible)h(at)g(the)g(stated)g -(lo)q(cation)e(un)o(til)i(at)f(least)g(one)i(y)o(ear)e(after)g(the)i -(last)e(time)165 1964 y(y)o(ou)k(distribute)g(an)g(Opaque)h(cop)o(y)f -(\(directly)g(or)g(through)g(y)o(our)g(agen)o(ts)f(or)h(retailers\))f -(of)h(that)165 2019 y(edition)d(to)f(the)h(public.)165 -2086 y(It)i(is)g(requested,)h(but)f(not)g(required,)h(that)e(y)o(ou)h -(con)o(tact)g(the)g(authors)g(of)f(the)i(Do)q(cumen)o(t)f(w)o(ell)165 -2140 y(b)q(efore)e(redistributing)e(an)o(y)h(large)f(n)o(um)o(b)q(er)i -(of)e(copies,)h(to)g(giv)o(e)g(them)g(a)g(c)o(hance)h(to)e(pro)o(vide)h -(y)o(ou)165 2195 y(with)h(an)g(up)q(dated)h(v)o(ersion)e(of)h(the)g(Do) -q(cumen)o(t.)100 2262 y(4.)29 b(MODIFICA)l(TIONS)165 -2329 y(Y)l(ou)13 b(ma)o(y)f(cop)o(y)h(and)g(distribute)f(a)g(Mo)q -(di\014ed)h(V)l(ersion)g(of)f(the)h(Do)q(cumen)o(t)f(under)i(the)f -(conditions)165 2384 y(of)d(sections)g(2)g(and)h(3)f(ab)q(o)o(v)o(e,)h -(pro)o(vided)f(that)g(y)o(ou)g(release)g(the)h(Mo)q(di\014ed)g(V)l -(ersion)f(under)h(precisely)165 2439 y(this)j(License,)h(with)f(the)g -(Mo)q(di\014ed)h(V)l(ersion)f(\014lling)g(the)h(role)e(of)i(the)f(Do)q -(cumen)o(t,)g(th)o(us)h(licensing)165 2493 y(distribution)h(and)h(mo)q -(di\014cation)f(of)h(the)g(Mo)q(di\014ed)g(V)l(ersion)g(to)f(who)q(ev)o -(er)h(p)q(ossesses)h(a)e(cop)o(y)h(of)165 2548 y(it.)i(In)d(addition,)e -(y)o(ou)h(m)o(ust)f(do)h(these)h(things)f(in)g(the)g(Mo)q(di\014ed)g(V) -l(ersion:)178 2615 y(A.)30 b(Use)17 b(in)f(the)g(Title)f(P)o(age)h -(\(and)g(on)h(the)f(co)o(v)o(ers,)g(if)f(an)o(y\))h(a)g(title)f -(distinct)h(from)f(that)h(of)g(the)255 2670 y(Do)q(cumen)o(t,)h(and)g -(from)f(those)h(of)f(previous)h(v)o(ersions)f(\(whic)o(h)g(should,)h -(if)g(there)g(w)o(ere)f(an)o(y)l(,)p eop end -%%Page: 15 18 -TeXDict begin 15 17 bop 75 -58 a Fr(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(15)255 149 -y(b)q(e)16 b(listed)f(in)h(the)g(History)e(section)h(of)g(the)h(Do)q -(cumen)o(t\).)21 b(Y)l(ou)16 b(ma)o(y)f(use)h(the)g(same)f(title)f(as) -255 204 y(a)h(previous)g(v)o(ersion)f(if)h(the)g(original)e(publisher)j -(of)f(that)f(v)o(ersion)g(giv)o(es)h(p)q(ermission.)180 -273 y(B.)30 b(List)15 b(on)g(the)g(Title)g(P)o(age,)f(as)h(authors,)f -(one)h(or)g(more)g(p)q(ersons)g(or)g(en)o(tities)f(resp)q(onsible)i -(for)255 328 y(authorship)d(of)f(the)h(mo)q(di\014cations)f(in)h(the)g -(Mo)q(di\014ed)h(V)l(ersion,)f(together)f(with)g(at)h(least)f(\014v)o -(e)255 382 y(of)g(the)g(principal)f(authors)g(of)h(the)g(Do)q(cumen)o -(t)g(\(all)e(of)i(its)f(principal)g(authors,)h(if)f(it)g(has)h(few)o -(er)255 437 y(than)j(\014v)o(e\),)g(unless)g(they)g(release)g(y)o(ou)g -(from)f(this)h(requiremen)o(t.)180 506 y(C.)29 b(State)15 -b(on)g(the)h(Title)e(page)h(the)h(name)f(of)g(the)g(publisher)h(of)f -(the)g(Mo)q(di\014ed)h(V)l(ersion,)f(as)g(the)255 560 -y(publisher.)178 629 y(D.)29 b(Preserv)o(e)15 b(all)f(the)h(cop)o -(yrigh)o(t)f(notices)h(of)g(the)g(Do)q(cumen)o(t.)181 -697 y(E.)30 b(Add)16 b(an)g(appropriate)f(cop)o(yrigh)o(t)f(notice)h -(for)g(y)o(our)g(mo)q(di\014cations)g(adjacen)o(t)h(to)f(the)g(other) -255 752 y(cop)o(yrigh)o(t)f(notices.)183 821 y(F.)29 -b(Include,)15 b(immediately)e(after)g(the)h(cop)o(yrigh)o(t)e(notices,) -i(a)f(license)h(notice)g(giving)f(the)h(public)255 875 -y(p)q(ermission)e(to)f(use)i(the)f(Mo)q(di\014ed)h(V)l(ersion)f(under)h -(the)f(terms)g(of)f(this)h(License,)h(in)f(the)h(form)255 -930 y(sho)o(wn)i(in)g(the)g(Addendum)i(b)q(elo)o(w.)177 -999 y(G.)29 b(Preserv)o(e)11 b(in)g(that)g(license)g(notice)h(the)f -(full)g(lists)f(of)h(In)o(v)m(arian)o(t)g(Sections)g(and)g(required)h -(Co)o(v)o(er)255 1054 y(T)l(exts)j(giv)o(en)g(in)g(the)g(Do)q(cumen)o -(t's)g(license)g(notice.)178 1122 y(H.)30 b(Include)16 -b(an)f(unaltered)h(cop)o(y)f(of)f(this)h(License.)196 -1191 y(I.)30 b(Preserv)o(e)16 b(the)g(section)g(En)o(titled)f -(\\History",)f(Preserv)o(e)h(its)h(Title,)e(and)j(add)f(to)f(it)h(an)g -(item)255 1245 y(stating)d(at)g(least)g(the)h(title,)f(y)o(ear,)g(new)i -(authors,)e(and)h(publisher)g(of)g(the)g(Mo)q(di\014ed)g(V)l(ersion)255 -1300 y(as)h(giv)o(en)g(on)h(the)g(Title)e(P)o(age.)21 -b(If)16 b(there)g(is)f(no)h(section)f(En)o(titled)f(\\History")g(in)i -(the)g(Do)q(cu-)255 1355 y(men)o(t,)h(create)g(one)h(stating)e(the)h -(title,)g(y)o(ear,)g(authors,)g(and)g(publisher)h(of)f(the)g(Do)q -(cumen)o(t)255 1410 y(as)h(giv)o(en)f(on)h(its)f(Title)g(P)o(age,)h -(then)h(add)f(an)g(item)f(describing)h(the)g(Mo)q(di\014ed)g(V)l -(ersion)g(as)255 1465 y(stated)d(in)g(the)g(previous)g(sen)o(tence.)189 -1533 y(J.)30 b(Preserv)o(e)16 b(the)g(net)o(w)o(ork)f(lo)q(cation,)g -(if)h(an)o(y)l(,)g(giv)o(en)g(in)g(the)g(Do)q(cumen)o(t)g(for)g(public) -g(access)h(to)255 1588 y(a)e(T)l(ransparen)o(t)g(cop)o(y)h(of)f(the)g -(Do)q(cumen)o(t,)h(and)f(lik)o(ewise)g(the)g(net)o(w)o(ork)g(lo)q -(cations)f(giv)o(en)h(in)255 1643 y(the)h(Do)q(cumen)o(t)g(for)f -(previous)g(v)o(ersions)g(it)g(w)o(as)g(based)i(on.)k(These)c(ma)o(y)e -(b)q(e)h(placed)g(in)g(the)255 1697 y(\\History")11 b(section.)18 -b(Y)l(ou)13 b(ma)o(y)f(omit)f(a)h(net)o(w)o(ork)g(lo)q(cation)f(for)h -(a)g(w)o(ork)g(that)g(w)o(as)f(published)255 1752 y(at)17 -b(least)g(four)h(y)o(ears)f(b)q(efore)h(the)g(Do)q(cumen)o(t)g(itself,) -f(or)g(if)h(the)f(original)f(publisher)i(of)g(the)255 -1807 y(v)o(ersion)c(it)h(refers)g(to)f(giv)o(es)h(p)q(ermission.)177 -1875 y(K.)30 b(F)l(or)11 b(an)o(y)h(section)f(En)o(titled)g(\\Ac)o(kno) -o(wledgemen)o(ts")g(or)g(\\Dedications",)f(Preserv)o(e)i(the)g(Title) -255 1930 y(of)h(the)g(section,)g(and)g(preserv)o(e)h(in)f(the)g -(section)g(all)f(the)i(substance)f(and)h(tone)f(of)g(eac)o(h)g(of)g -(the)255 1985 y(con)o(tributor)h(ac)o(kno)o(wledgemen)o(ts)g(and/or)h -(dedications)f(giv)o(en)h(therein.)184 2054 y(L.)30 b(Preserv)o(e)17 -b(all)g(the)h(In)o(v)m(arian)o(t)f(Sections)g(of)h(the)f(Do)q(cumen)o -(t,)h(unaltered)g(in)f(their)h(text)f(and)255 2108 y(in)h(their)f -(titles.)27 b(Section)18 b(n)o(um)o(b)q(ers)g(or)g(the)g(equiv)m(alen)o -(t)f(are)h(not)g(considered)g(part)f(of)h(the)255 2163 -y(section)d(titles.)171 2232 y(M.)29 b(Delete)15 b(an)o(y)g(section)g -(En)o(titled)f(\\Endorsemen)o(ts".)20 b(Suc)o(h)c(a)f(section)g(ma)o(y) -f(not)h(b)q(e)h(included)255 2286 y(in)f(the)g(Mo)q(di\014ed)h(V)l -(ersion.)178 2355 y(N.)30 b(Do)14 b(not)f(retitle)g(an)o(y)h(existing)f -(section)h(to)g(b)q(e)g(En)o(titled)g(\\Endorsemen)o(ts")f(or)h(to)f -(con\015ict)h(in)255 2410 y(title)g(with)g(an)o(y)h(In)o(v)m(arian)o(t) -g(Section.)177 2478 y(O.)30 b(Preserv)o(e)15 b(an)o(y)g(W)l(arran)o(t)o -(y)e(Disclaimers.)165 2560 y(If)k(the)g(Mo)q(di\014ed)g(V)l(ersion)f -(includes)h(new)g(fron)o(t-matter)e(sections)h(or)g(app)q(endices)i -(that)e(qualify)165 2615 y(as)e(Secondary)g(Sections)g(and)g(con)o -(tain)f(no)h(material)e(copied)i(from)f(the)h(Do)q(cumen)o(t,)g(y)o(ou) -f(ma)o(y)h(at)165 2670 y(y)o(our)i(option)f(designate)h(some)g(or)f -(all)g(of)h(these)h(sections)e(as)h(in)o(v)m(arian)o(t.)22 -b(T)l(o)15 b(do)i(this,)e(add)h(their)p eop end -%%Page: 16 19 -TeXDict begin 16 18 bop 75 -58 a Fr(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(16)165 149 -y(titles)16 b(to)h(the)h(list)f(of)g(In)o(v)m(arian)o(t)g(Sections)h -(in)f(the)h(Mo)q(di\014ed)g(V)l(ersion's)f(license)h(notice.)27 -b(These)165 204 y(titles)14 b(m)o(ust)h(b)q(e)g(distinct)g(from)f(an)o -(y)h(other)g(section)g(titles.)165 275 y(Y)l(ou)21 b(ma)o(y)g(add)g(a)g -(section)g(En)o(titled)f(\\Endorsemen)o(ts",)h(pro)o(vided)g(it)g(con)o -(tains)f(nothing)h(but)165 330 y(endorsemen)o(ts)15 b(of)f(y)o(our)h -(Mo)q(di\014ed)g(V)l(ersion)f(b)o(y)h(v)m(arious)f(parties|for)g -(example,)h(statemen)o(ts)e(of)165 385 y(p)q(eer)h(review)f(or)h(that)e -(the)i(text)f(has)h(b)q(een)g(appro)o(v)o(ed)g(b)o(y)f(an)h -(organization)d(as)j(the)f(authoritativ)o(e)165 440 y(de\014nition)i -(of)g(a)g(standard.)165 511 y(Y)l(ou)f(ma)o(y)g(add)g(a)g(passage)g(of) -f(up)i(to)e(\014v)o(e)i(w)o(ords)e(as)h(a)g(F)l(ron)o(t-Co)o(v)o(er)e -(T)l(ext,)i(and)g(a)g(passage)g(of)f(up)165 566 y(to)g(25)g(w)o(ords)g -(as)g(a)g(Bac)o(k-Co)o(v)o(er)g(T)l(ext,)g(to)g(the)g(end)i(of)e(the)g -(list)g(of)g(Co)o(v)o(er)f(T)l(exts)i(in)f(the)h(Mo)q(di\014ed)165 -621 y(V)l(ersion.)28 b(Only)18 b(one)g(passage)f(of)h(F)l(ron)o(t-Co)o -(v)o(er)e(T)l(ext)i(and)g(one)g(of)f(Bac)o(k-Co)o(v)o(er)g(T)l(ext)h -(ma)o(y)f(b)q(e)165 675 y(added)d(b)o(y)g(\(or)f(through)g(arrangemen)o -(ts)g(made)h(b)o(y\))f(an)o(y)h(one)g(en)o(tit)o(y)l(.)k(If)c(the)g(Do) -q(cumen)o(t)g(already)165 730 y(includes)j(a)g(co)o(v)o(er)f(text)h -(for)f(the)h(same)g(co)o(v)o(er,)f(previously)g(added)i(b)o(y)f(y)o(ou) -g(or)f(b)o(y)h(arrangemen)o(t)165 785 y(made)h(b)o(y)f(the)h(same)f(en) -o(tit)o(y)g(y)o(ou)g(are)g(acting)g(on)g(b)q(ehalf)h(of,)g(y)o(ou)f(ma) -o(y)g(not)g(add)h(another;)g(but)165 840 y(y)o(ou)f(ma)o(y)f(replace)h -(the)g(old)g(one,)g(on)g(explicit)f(p)q(ermission)g(from)h(the)g -(previous)g(publisher)g(that)165 895 y(added)f(the)f(old)g(one.)165 -966 y(The)e(author\(s\))e(and)i(publisher\(s\))f(of)h(the)g(Do)q(cumen) -o(t)f(do)h(not)f(b)o(y)h(this)f(License)i(giv)o(e)e(p)q(ermission)165 -1021 y(to)j(use)g(their)g(names)g(for)f(publicit)o(y)h(for)f(or)h(to)f -(assert)h(or)f(imply)h(endorsemen)o(t)g(of)g(an)o(y)g(Mo)q(di\014ed)165 -1075 y(V)l(ersion.)100 1147 y(5.)29 b(COMBINING)16 b(DOCUMENTS)165 -1218 y(Y)l(ou)k(ma)o(y)e(com)o(bine)h(the)h(Do)q(cumen)o(t)f(with)g -(other)g(do)q(cumen)o(ts)g(released)h(under)g(this)f(License,)165 -1273 y(under)h(the)f(terms)g(de\014ned)h(in)f(section)g(4)f(ab)q(o)o(v) -o(e)h(for)g(mo)q(di\014ed)g(v)o(ersions,)g(pro)o(vided)g(that)f(y)o(ou) -165 1328 y(include)13 b(in)f(the)h(com)o(bination)f(all)f(of)h(the)h -(In)o(v)m(arian)o(t)f(Sections)h(of)f(all)f(of)i(the)f(original)f(do)q -(cumen)o(ts,)165 1382 y(unmo)q(di\014ed,)j(and)g(list)e(them)h(all)g -(as)g(In)o(v)m(arian)o(t)f(Sections)i(of)f(y)o(our)f(com)o(bined)i(w)o -(ork)e(in)h(its)g(license)165 1437 y(notice,)h(and)i(that)e(y)o(ou)h -(preserv)o(e)g(all)g(their)f(W)l(arran)o(t)o(y)g(Disclaimers.)165 -1508 y(The)h(com)o(bined)h(w)o(ork)e(need)i(only)e(con)o(tain)h(one)g -(cop)o(y)g(of)g(this)f(License,)i(and)f(m)o(ultiple)f(iden)o(tical)165 -1563 y(In)o(v)m(arian)o(t)i(Sections)g(ma)o(y)f(b)q(e)i(replaced)g -(with)e(a)h(single)g(cop)o(y)l(.)23 b(If)16 b(there)h(are)f(m)o -(ultiple)f(In)o(v)m(arian)o(t)165 1618 y(Sections)e(with)g(the)g(same)g -(name)h(but)f(di\013eren)o(t)g(con)o(ten)o(ts,)g(mak)o(e)g(the)g(title) -f(of)h(eac)o(h)h(suc)o(h)f(section)165 1673 y(unique)18 -b(b)o(y)e(adding)h(at)g(the)g(end)g(of)g(it,)f(in)h(paren)o(theses,)g -(the)g(name)g(of)g(the)g(original)e(author)h(or)165 1728 -y(publisher)d(of)f(that)g(section)g(if)g(kno)o(wn,)g(or)g(else)g(a)h -(unique)g(n)o(um)o(b)q(er.)19 b(Mak)o(e)12 b(the)g(same)h(adjustmen)o -(t)165 1782 y(to)f(the)g(section)g(titles)f(in)h(the)g(list)f(of)h(In)o -(v)m(arian)o(t)f(Sections)h(in)g(the)h(license)f(notice)g(of)g(the)g -(com)o(bined)165 1837 y(w)o(ork.)165 1908 y(In)21 b(the)g(com)o -(bination,)f(y)o(ou)h(m)o(ust)f(com)o(bine)g(an)o(y)g(sections)h(En)o -(titled)e(\\History")g(in)i(the)f(v)m(ari-)165 1963 y(ous)c(original)e -(do)q(cumen)o(ts,)i(forming)f(one)i(section)e(En)o(titled)g -(\\History";)g(lik)o(ewise)f(com)o(bine)i(an)o(y)165 -2018 y(sections)f(En)o(titled)g(\\Ac)o(kno)o(wledgemen)o(ts",)g(and)h -(an)o(y)f(sections)h(En)o(titled)e(\\Dedications".)21 -b(Y)l(ou)165 2073 y(m)o(ust)15 b(delete)g(all)f(sections)h(En)o(titled) -f(\\Endorsemen)o(ts.")100 2144 y(6.)29 b(COLLECTIONS)17 -b(OF)e(DOCUMENTS)165 2215 y(Y)l(ou)h(ma)o(y)f(mak)o(e)h(a)f(collection) -g(consisting)g(of)g(the)h(Do)q(cumen)o(t)g(and)g(other)g(do)q(cumen)o -(ts)g(released)165 2270 y(under)22 b(this)f(License,)i(and)e(replace)g -(the)g(individual)g(copies)g(of)g(this)f(License)i(in)f(the)g(v)m -(arious)165 2325 y(do)q(cumen)o(ts)h(with)e(a)h(single)g(cop)o(y)g -(that)f(is)h(included)h(in)f(the)g(collection,)h(pro)o(vided)f(that)f -(y)o(ou)165 2380 y(follo)o(w)d(the)h(rules)h(of)f(this)g(License)h(for) -f(v)o(erbatim)f(cop)o(ying)h(of)g(eac)o(h)h(of)f(the)h(do)q(cumen)o(ts) -g(in)f(all)165 2434 y(other)d(resp)q(ects.)165 2506 y(Y)l(ou)h(ma)o(y)f -(extract)g(a)g(single)g(do)q(cumen)o(t)h(from)f(suc)o(h)h(a)g -(collection,)e(and)i(distribute)f(it)g(individu-)165 -2560 y(ally)h(under)j(this)e(License,)h(pro)o(vided)f(y)o(ou)g(insert)g -(a)h(cop)o(y)f(of)g(this)g(License)h(in)o(to)f(the)g(extracted)165 -2615 y(do)q(cumen)o(t,)g(and)f(follo)o(w)e(this)i(License)h(in)f(all)g -(other)f(resp)q(ects)i(regarding)f(v)o(erbatim)f(cop)o(ying)g(of)165 -2670 y(that)f(do)q(cumen)o(t.)p eop end -%%Page: 17 20 -TeXDict begin 17 19 bop 75 -58 a Fr(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(17)100 149 -y(7.)29 b(A)o(GGREGA)l(TION)15 b(WITH)h(INDEPENDENT)e(W)o(ORKS)165 -221 y(A)g(compilation)e(of)i(the)g(Do)q(cumen)o(t)g(or)f(its)h(deriv)m -(ativ)o(es)f(with)g(other)h(separate)f(and)i(indep)q(enden)o(t)165 -275 y(do)q(cumen)o(ts)i(or)f(w)o(orks,)g(in)g(or)g(on)h(a)f(v)o(olume)g -(of)g(a)h(storage)e(or)h(distribution)g(medium,)g(is)g(called)165 -330 y(an)f(\\aggregate")e(if)h(the)i(cop)o(yrigh)o(t)d(resulting)h -(from)h(the)g(compilation)e(is)i(not)f(used)i(to)e(limit)g(the)165 -385 y(legal)e(righ)o(ts)g(of)h(the)g(compilation's)f(users)h(b)q(ey)o -(ond)h(what)f(the)g(individual)f(w)o(orks)h(p)q(ermit.)19 -b(When)165 440 y(the)g(Do)q(cumen)o(t)g(is)g(included)h(in)f(an)g -(aggregate,)f(this)h(License)h(do)q(es)g(not)e(apply)h(to)g(the)g -(other)165 495 y(w)o(orks)14 b(in)h(the)g(aggregate)f(whic)o(h)h(are)g -(not)g(themselv)o(es)g(deriv)m(ativ)o(e)f(w)o(orks)g(of)h(the)g(Do)q -(cumen)o(t.)165 566 y(If)d(the)f(Co)o(v)o(er)f(T)l(ext)i(requiremen)o -(t)f(of)g(section)g(3)g(is)g(applicable)f(to)h(these)h(copies)f(of)g -(the)g(Do)q(cumen)o(t,)165 621 y(then)h(if)e(the)i(Do)q(cumen)o(t)f(is) -f(less)h(than)g(one)h(half)e(of)h(the)g(en)o(tire)g(aggregate,)f(the)h -(Do)q(cumen)o(t's)g(Co)o(v)o(er)165 675 y(T)l(exts)i(ma)o(y)g(b)q(e)h -(placed)f(on)g(co)o(v)o(ers)g(that)f(brac)o(k)o(et)h(the)g(Do)q(cumen)o -(t)g(within)g(the)g(aggregate,)f(or)h(the)165 730 y(electronic)k(equiv) -m(alen)o(t)g(of)g(co)o(v)o(ers)g(if)g(the)h(Do)q(cumen)o(t)f(is)g(in)g -(electronic)g(form.)27 b(Otherwise)17 b(they)165 785 -y(m)o(ust)e(app)q(ear)g(on)g(prin)o(ted)g(co)o(v)o(ers)g(that)f(brac)o -(k)o(et)h(the)g(whole)g(aggregate.)100 856 y(8.)29 b(TRANSLA)l(TION)165 -928 y(T)l(ranslation)18 b(is)i(considered)g(a)g(kind)g(of)f(mo)q -(di\014cation,)h(so)g(y)o(ou)g(ma)o(y)f(distribute)g(translations)165 -982 y(of)j(the)g(Do)q(cumen)o(t)g(under)h(the)f(terms)g(of)g(section)f -(4.)41 b(Replacing)22 b(In)o(v)m(arian)o(t)g(Sections)g(with)165 -1037 y(translations)f(requires)h(sp)q(ecial)h(p)q(ermission)f(from)g -(their)g(cop)o(yrigh)o(t)f(holders,)j(but)f(y)o(ou)g(ma)o(y)165 -1092 y(include)13 b(translations)d(of)i(some)g(or)f(all)g(In)o(v)m -(arian)o(t)h(Sections)g(in)g(addition)g(to)f(the)h(original)f(v)o -(ersions)165 1147 y(of)k(these)h(In)o(v)m(arian)o(t)f(Sections.)22 -b(Y)l(ou)15 b(ma)o(y)g(include)i(a)e(translation)f(of)h(this)g -(License,)h(and)g(all)f(the)165 1201 y(license)21 b(notices)f(in)g(the) -h(Do)q(cumen)o(t,)g(and)g(an)o(y)f(W)l(arran)o(t)o(y)f(Disclaimers,)h -(pro)o(vided)g(that)g(y)o(ou)165 1256 y(also)f(include)h(the)g -(original)f(English)g(v)o(ersion)g(of)h(this)f(License)i(and)f(the)g -(original)e(v)o(ersions)h(of)165 1311 y(those)e(notices)f(and)i -(disclaimers.)24 b(In)18 b(case)f(of)f(a)h(disagreemen)o(t)f(b)q(et)o -(w)o(een)i(the)f(translation)e(and)165 1366 y(the)j(original)d(v)o -(ersion)i(of)g(this)g(License)i(or)e(a)g(notice)g(or)g(disclaimer,)g -(the)h(original)d(v)o(ersion)i(will)165 1421 y(prev)m(ail.)165 -1492 y(If)e(a)f(section)f(in)i(the)f(Do)q(cumen)o(t)g(is)g(En)o(titled) -f(\\Ac)o(kno)o(wledgemen)o(ts",)g(\\Dedications",)g(or)g(\\His-)165 -1547 y(tory",)f(the)h(requiremen)o(t)g(\(section)f(4\))h(to)f(Preserv)o -(e)h(its)g(Title)f(\(section)g(1\))h(will)f(t)o(ypically)f(require)165 -1601 y(c)o(hanging)k(the)g(actual)f(title.)100 1673 y(9.)29 -b(TERMINA)l(TION)165 1744 y(Y)l(ou)15 b(ma)o(y)f(not)h(cop)o(y)l(,)f -(mo)q(dify)l(,)h(sublicense,)g(or)f(distribute)g(the)h(Do)q(cumen)o(t)g -(except)h(as)e(expressly)165 1799 y(pro)o(vided)19 b(under)h(this)f -(License.)33 b(An)o(y)19 b(attempt)f(otherwise)h(to)f(cop)o(y)l(,)i(mo) -q(dify)l(,)g(sublicense,)g(or)165 1854 y(distribute)14 -b(it)h(is)g(v)o(oid,)f(and)h(will)f(automatically)f(terminate)h(y)o -(our)g(righ)o(ts)g(under)i(this)f(License.)165 1925 y(Ho)o(w)o(ev)o -(er,)g(if)h(y)o(ou)g(cease)g(all)f(violation)f(of)i(this)g(License,)h -(then)f(y)o(our)g(license)g(from)f(a)h(particular)165 -1980 y(cop)o(yrigh)o(t)h(holder)g(is)h(reinstated)f(\(a\))g(pro)o -(visionally)l(,)f(unless)i(and)g(un)o(til)f(the)h(cop)o(yrigh)o(t)e -(holder)165 2034 y(explicitly)j(and)i(\014nally)e(terminates)h(y)o(our) -f(license,)j(and)e(\(b\))g(p)q(ermanen)o(tly)l(,)h(if)f(the)g(cop)o -(yrigh)o(t)165 2089 y(holder)d(fails)f(to)h(notify)f(y)o(ou)h(of)g(the) -g(violation)e(b)o(y)i(some)g(reasonable)g(means)g(prior)f(to)h(60)f(da) -o(ys)165 2144 y(after)e(the)i(cessation.)165 2215 y(Moreo)o(v)o(er,)e -(y)o(our)h(license)h(from)f(a)g(particular)g(cop)o(yrigh)o(t)f(holder)i -(is)f(reinstated)g(p)q(ermanen)o(tly)g(if)165 2270 y(the)f(cop)o(yrigh) -o(t)f(holder)g(noti\014es)h(y)o(ou)f(of)h(the)g(violation)e(b)o(y)h -(some)h(reasonable)f(means,)h(this)f(is)h(the)165 2325 -y(\014rst)g(time)f(y)o(ou)g(ha)o(v)o(e)h(receiv)o(ed)g(notice)f(of)h -(violation)e(of)h(this)h(License)g(\(for)f(an)o(y)h(w)o(ork\))f(from)g -(that)165 2380 y(cop)o(yrigh)o(t)i(holder,)g(and)h(y)o(ou)g(cure)g(the) -g(violation)e(prior)i(to)f(30)g(da)o(ys)h(after)f(y)o(our)g(receipt)h -(of)g(the)165 2434 y(notice.)165 2506 y(T)l(ermination)d(of)g(y)o(our)g -(righ)o(ts)g(under)h(this)f(section)h(do)q(es)g(not)f(terminate)g(the)h -(licenses)f(of)h(parties)165 2560 y(who)19 b(ha)o(v)o(e)g(receiv)o(ed)g -(copies)g(or)f(righ)o(ts)g(from)g(y)o(ou)h(under)h(this)e(License.)33 -b(If)19 b(y)o(our)g(righ)o(ts)e(ha)o(v)o(e)165 2615 y(b)q(een)d -(terminated)e(and)i(not)e(p)q(ermanen)o(tly)h(reinstated,)f(receipt)h -(of)g(a)g(cop)o(y)g(of)f(some)h(or)f(all)g(of)h(the)165 -2670 y(same)i(material)e(do)q(es)j(not)f(giv)o(e)f(y)o(ou)h(an)o(y)g -(righ)o(ts)f(to)g(use)i(it.)p eop end -%%Page: 18 21 -TeXDict begin 18 20 bop 75 -58 a Fr(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(18)77 149 -y(10.)29 b(FUTURE)15 b(REVISIONS)j(OF)d(THIS)h(LICENSE)165 -217 y(The)21 b(F)l(ree)g(Soft)o(w)o(are)e(F)l(oundation)h(ma)o(y)g -(publish)h(new,)h(revised)f(v)o(ersions)f(of)g(the)h(GNU)g(F)l(ree)165 -271 y(Do)q(cumen)o(tation)15 b(License)i(from)e(time)g(to)h(time.)21 -b(Suc)o(h)c(new)f(v)o(ersions)g(will)e(b)q(e)j(similar)d(in)i(spirit) -165 326 y(to)h(the)g(presen)o(t)g(v)o(ersion,)g(but)g(ma)o(y)f -(di\013er)h(in)g(detail)f(to)h(address)g(new)g(problems)g(or)g -(concerns.)165 381 y(See)f Fq(http://www.gnu.org/copyle)o(ft/)p -Fr(.)165 448 y(Eac)o(h)f(v)o(ersion)e(of)i(the)g(License)g(is)f(giv)o -(en)g(a)h(distinguishing)e(v)o(ersion)h(n)o(um)o(b)q(er.)20 -b(If)15 b(the)g(Do)q(cumen)o(t)165 503 y(sp)q(eci\014es)23 -b(that)f(a)h(particular)e(n)o(um)o(b)q(ered)j(v)o(ersion)d(of)i(this)f -(License)h(\\or)f(an)o(y)g(later)g(v)o(ersion")165 558 -y(applies)16 b(to)f(it,)h(y)o(ou)g(ha)o(v)o(e)g(the)g(option)f(of)h -(follo)o(wing)e(the)i(terms)g(and)g(conditions)g(either)g(of)g(that)165 -613 y(sp)q(eci\014ed)k(v)o(ersion)e(or)h(of)f(an)o(y)h(later)f(v)o -(ersion)g(that)g(has)h(b)q(een)h(published)g(\(not)e(as)g(a)h(draft\))f -(b)o(y)165 667 y(the)e(F)l(ree)h(Soft)o(w)o(are)e(F)l(oundation.)22 -b(If)17 b(the)g(Do)q(cumen)o(t)f(do)q(es)g(not)g(sp)q(ecify)h(a)f(v)o -(ersion)g(n)o(um)o(b)q(er)g(of)165 722 y(this)h(License,)h(y)o(ou)f(ma) -o(y)f(c)o(ho)q(ose)i(an)o(y)e(v)o(ersion)h(ev)o(er)g(published)h(\(not) -e(as)h(a)g(draft\))f(b)o(y)i(the)f(F)l(ree)165 777 y(Soft)o(w)o(are)e -(F)l(oundation.)21 b(If)16 b(the)g(Do)q(cumen)o(t)g(sp)q(eci\014es)h -(that)e(a)h(pro)o(xy)f(can)h(decide)h(whic)o(h)f(future)165 -832 y(v)o(ersions)f(of)h(this)g(License)h(can)f(b)q(e)h(used,)g(that)f -(pro)o(xy's)f(public)h(statemen)o(t)g(of)g(acceptance)g(of)g(a)165 -887 y(v)o(ersion)e(p)q(ermanen)o(tly)h(authorizes)g(y)o(ou)g(to)f(c)o -(ho)q(ose)i(that)e(v)o(ersion)g(for)h(the)g(Do)q(cumen)o(t.)77 -954 y(11.)29 b(RELICENSING)165 1021 y(\\Massiv)o(e)17 -b(Multiauthor)g(Collab)q(oration)f(Site")i(\(or)g(\\MMC)g(Site"\))f -(means)i(an)o(y)f(W)l(orld)g(Wide)165 1076 y(W)l(eb)g(serv)o(er)g(that) -f(publishes)h(cop)o(yrigh)o(table)e(w)o(orks)h(and)h(also)f(pro)o -(vides)h(prominen)o(t)f(facilities)165 1131 y(for)c(an)o(yb)q(o)q(dy)h -(to)f(edit)h(those)f(w)o(orks.)19 b(A)14 b(public)f(wiki)g(that)g(an)o -(yb)q(o)q(dy)h(can)g(edit)g(is)f(an)h(example)f(of)165 -1186 y(suc)o(h)k(a)g(serv)o(er.)24 b(A)17 b(\\Massiv)o(e)e(Multiauthor) -g(Collab)q(oration")g(\(or)h(\\MMC"\))f(con)o(tained)h(in)h(the)165 -1240 y(site)e(means)g(an)o(y)g(set)g(of)f(cop)o(yrigh)o(table)g(w)o -(orks)g(th)o(us)h(published)h(on)f(the)g(MMC)g(site.)165 -1308 y(\\CC-BY-SA")j(means)f(the)h(Creativ)o(e)e(Commons)h(A)o -(ttribution-Share)f(Alik)o(e)h(3.0)g(license)g(pub-)165 -1362 y(lished)c(b)o(y)h(Creativ)o(e)e(Commons)g(Corp)q(oration,)g(a)h -(not-for-pro\014t)g(corp)q(oration)f(with)h(a)g(principal)165 -1417 y(place)g(of)f(business)i(in)f(San)g(F)l(rancisco,)f(California,)f -(as)h(w)o(ell)g(as)h(future)g(cop)o(yleft)f(v)o(ersions)g(of)h(that)165 -1472 y(license)i(published)h(b)o(y)f(that)g(same)f(organization.)165 -1539 y(\\Incorp)q(orate")h(means)g(to)g(publish)g(or)g(republish)g(a)g -(Do)q(cumen)o(t,)g(in)g(whole)g(or)g(in)g(part,)g(as)g(part)165 -1594 y(of)g(another)g(Do)q(cumen)o(t.)165 1661 y(An)e(MMC)g(is)f -(\\eligible)g(for)g(relicensing")h(if)f(it)h(is)f(licensed)i(under)g -(this)e(License,)i(and)f(if)g(all)f(w)o(orks)165 1716 -y(that)20 b(w)o(ere)h(\014rst)g(published)g(under)h(this)e(License)i -(somewhere)f(other)g(than)g(this)f(MMC,)g(and)165 1771 -y(subsequen)o(tly)e(incorp)q(orated)e(in)i(whole)f(or)g(in)g(part)g(in) -o(to)f(the)h(MMC,)f(\(1\))h(had)g(no)h(co)o(v)o(er)f(texts)165 -1826 y(or)e(in)o(v)m(arian)o(t)e(sections,)i(and)g(\(2\))f(w)o(ere)h -(th)o(us)g(incorp)q(orated)g(prior)f(to)h(No)o(v)o(em)o(b)q(er)g(1,)f -(2008.)165 1893 y(The)21 b(op)q(erator)e(of)h(an)g(MMC)f(Site)h(ma)o(y) -g(republish)h(an)f(MMC)f(con)o(tained)h(in)g(the)h(site)e(under)165 -1948 y(CC-BY-SA)d(on)f(the)g(same)g(site)f(at)h(an)o(y)f(time)h(b)q -(efore)g(August)g(1,)g(2009,)e(pro)o(vided)i(the)g(MMC)f(is)165 -2002 y(eligible)g(for)h(relicensing.)p eop end -%%Page: 19 22 -TeXDict begin 19 21 bop 75 -58 a Fr(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(19)75 149 -y Fp(ADDENDUM:)20 b(Ho)n(w)h(to)h(use)g(this)g(License)g(for)g(y)n(our) -h(do)r(cumen)n(ts)75 229 y Fr(T)l(o)17 b(use)h(this)e(License)i(in)g(a) -f(do)q(cumen)o(t)g(y)o(ou)g(ha)o(v)o(e)g(written,)g(include)g(a)g(cop)o -(y)g(of)g(the)h(License)g(in)f(the)75 284 y(do)q(cumen)o(t)f(and)f(put) -g(the)h(follo)o(wing)d(cop)o(yrigh)o(t)g(and)j(license)f(notices)g -(just)g(after)f(the)h(title)f(page:)234 340 y Fe(Copyright)i(\(C\))38 -b Fc(year)k(your)19 b(name)t Fe(.)234 384 y(Permission)d(is)j(granted)e -(to)i(copy,)e(distribute)f(and/or)h(modify)h(this)g(document)234 -427 y(under)g(the)g(terms)g(of)h(the)f(GNU)h(Free)f(Documenta)o(tio)o -(n)e(License,)h(Version)g(1.3)234 471 y(or)i(any)g(later)e(version)g -(published)f(by)j(the)g(Free)f(Software)e(Foundation)o(;)234 -514 y(with)i(no)h(Invariant)d(Sections,)g(no)j(Front-Cove)o(r)e(Texts,) -g(and)h(no)h(Back-Cover)234 558 y(Texts.)37 b(A)19 b(copy)f(of)h(the)g -(license)e(is)h(included)f(in)i(the)f(section)f(entitled)g(``GNU)234 -601 y(Free)h(Documentat)o(ion)e(License'')o(.)137 669 -y Fr(If)k(y)o(ou)g(ha)o(v)o(e)g(In)o(v)m(arian)o(t)f(Sections,)h(F)l -(ron)o(t-Co)o(v)o(er)f(T)l(exts)g(and)h(Bac)o(k-Co)o(v)o(er)f(T)l -(exts,)i(replace)f(the)75 724 y(\\with)s(.)10 b(.)g(.)5 -b(T)l(exts.")20 b(line)15 b(with)f(this:)273 780 y Fe(with)19 -b(the)f(Invariant)e(Sections)h(being)g Fc(list)h(their)g(titles)t -Fe(,)f(with)273 823 y(the)i(Front-Cov)o(er)d(Texts)i(being)g -Fc(list)t Fe(,)g(and)g(with)g(the)h(Back-Cove)o(r)d(Texts)273 -867 y(being)i Fc(list)t Fe(.)137 934 y Fr(If)g(y)o(ou)f(ha)o(v)o(e)h -(In)o(v)m(arian)o(t)f(Sections)g(without)g(Co)o(v)o(er)f(T)l(exts,)i -(or)f(some)g(other)g(com)o(bination)g(of)g(the)75 989 -y(three,)e(merge)g(those)g(t)o(w)o(o)f(alternativ)o(es)f(to)i(suit)f -(the)h(situation.)137 1056 y(If)d(y)o(our)g(do)q(cumen)o(t)g(con)o -(tains)f(non)o(trivial)f(examples)i(of)f(program)g(co)q(de,)i(w)o(e)f -(recommend)g(releasing)75 1111 y(these)22 b(examples)f(in)g(parallel)g -(under)h(y)o(our)f(c)o(hoice)g(of)g(free)h(soft)o(w)o(are)e(license,)i -(suc)o(h)g(as)g(the)f(GNU)75 1166 y(General)15 b(Public)g(License,)g -(to)g(p)q(ermit)g(their)f(use)i(in)f(free)g(soft)o(w)o(are.)p -eop end -%%Page: 20 23 -TeXDict begin 20 22 bop 75 -58 a Fr(App)q(endix)16 b(B:)f(Concept)h -(Index)1197 b(20)75 149 y Fn(App)r(endix)26 b(B)41 b(Concept)27 -b(Index)75 319 y Fp(A)75 377 y Fb(anc)o(hored)14 b(searc)o(h)s -Fa(:)7 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 -b Fb(7)75 494 y Fp(E)75 552 y Fb(ev)o(en)o(t)d(designators)c -Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 -b Fb(1)1012 319 y Fp(H)1012 426 y Fb(history)14 b(ev)o(en)o(ts)s -Fa(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)16 b Fb(1)1012 493 y(history)e(expansion)6 b Fa(:)i(:)e(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)19 b Fb(1)1012 561 y(History)13 -b(Searc)o(hing)5 b Fa(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)18 b Fb(7)p eop end -%%Page: 21 24 -TeXDict begin 21 23 bop 75 -58 a Fr(App)q(endix)16 b(C:)f(F)l(unction)g -(and)g(V)l(ariable)g(Index)918 b(21)75 149 y Fn(App)r(endix)26 -b(C)41 b(F)-7 b(unction)27 b(and)g(V)-7 b(ariable)28 -b(Index)75 319 y Fp(A)75 377 y Fe(add_histor)o(y)s Fa(:)s(:)6 -b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 -b Fb(5)75 421 y Fe(add_histor)o(y_)o(tim)o(e)5 b Fa(:)s(:)h(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(5)75 465 y Fe(append_his)o(to)o(ry) -8 b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 -b Fb(8)75 591 y Fp(C)75 649 y Fe(clear_hist)o(or)o(y)6 -b Fa(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 -b Fb(6)75 693 y Fe(current_hi)o(st)o(ory)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(6)75 819 y Fp(F)75 -878 y Fe(free_histo)o(ry)o(_en)o(tr)o(y)8 b Fa(:)f(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)24 b Fb(5)75 1004 y Fp(G)75 1062 y Fe(get_histor)o(y_)o -(eve)o(nt)s Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 -b Fb(8)75 1189 y Fp(H)75 1247 y Fe(history_ar)o(g_)o(ext)o(ra)o(ct)7 -b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(8)75 1291 -y Fe(history_ba)o(se)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)23 b Fb(8)75 1334 y Fe(history_co)o(mm)o(ent)o(_c)o -(har)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)21 b Fb(9)75 1378 -y Fe(history_ex)o(pa)o(nd)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)20 b Fb(8)75 1422 y Fe(history_ex)o(pa)o(nsi)o(on)o -(_ch)o(ar)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 b Fb(9)75 1465 -y Fe(history_ge)o(t)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(6)75 1509 y Fe(history_ge)o(t_)o -(his)o(to)o(ry_)o(sta)o(te)7 b Fa(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)23 b Fb(5)75 1553 -y Fe(history_ge)o(t_)o(tim)o(e)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)18 b Fb(6)75 1597 y Fe(history_in)o(hi)o(bit)o(_e)o -(xpa)o(nsi)o(on)o(_fu)o(nc)o(tio)o(n)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g -(:)g(:)21 b Fb(9)75 1640 y Fe(history_is)o(_s)o(tif)o(le)o(d)8 -b Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(6)75 -1684 y Fe(history_le)o(ng)o(th)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(8)75 1728 y Fe(history_li)o(st)7 -b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 -b Fb(6)75 1771 y Fe(history_ma)o(x_)o(ent)o(ri)o(es)7 -b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(9)75 1815 -y Fe(history_no)o(_e)o(xpa)o(nd)o(_ch)o(ars)t Fa(:)s(:)6 -b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)17 b Fb(9)75 1859 y Fe(history_qu)o(ot)o(es_)o(in)o(hib)o -(it_)o(ex)o(pan)o(si)o(on)7 b Fa(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)23 b Fb(9)75 1902 y Fe(history_se)o(ar)o(ch)8 b Fa(:)s(:)e(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(7)75 -1946 y Fe(history_se)o(ar)o(ch_)o(de)o(lim)o(ite)o(r_)o(cha)o(rs)t -Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)17 -b Fb(9)75 1990 y Fe(history_se)o(ar)o(ch_)o(po)o(s)8 -b Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(7)1012 -319 y Fe(history_sea)o(rc)o(h_p)o(re)o(fix)7 b Fa(:)s(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)21 b Fb(7)1012 363 y Fe(history_set)o(_h)o(ist)o(or)o(y_s)o(ta)o -(te)8 b Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)24 b Fb(5)1012 406 y Fe(history_set)o(_p)o(os)6 -b Fa(:)s(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 -b Fb(6)1012 450 y Fe(history_sub)o(st)o(_ch)o(ar)8 b -Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(9)1012 -494 y Fe(history_tok)o(en)o(ize)t Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)18 b Fb(8)1012 537 y Fe(history_tot)o(al)o(_by)o(te)o -(s)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(6)1012 -581 y Fe(history_tru)o(nc)o(ate)o(_f)o(ile)7 b Fa(:)s(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)21 b Fb(8)1012 624 y Fe(history_wor)o(d_)o(del)o(im)o(ite)o(rs)t -Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)18 b Fb(9)1012 668 y Fe(history_wri)o(te)o(_ti)o -(me)o(sta)o(mp)o(s)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(9)1012 -794 y Fp(N)1012 852 y Fe(next_histor)o(y)7 b Fa(:)f(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(7)1012 -978 y Fp(P)1012 1036 y Fe(previous_hi)o(st)o(ory)t Fa(:)t(:)6 -b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 b Fb(6)1012 -1162 y Fp(R)1012 1220 y Fe(read_histor)o(y)7 b Fa(:)f(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(7)1012 -1264 y Fe(read_histor)o(y_)o(ran)o(ge)8 b Fa(:)e(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)24 b Fb(7)1012 1307 y Fe(remove_hist)o(or)o(y)8 -b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)21 -b Fb(5)1012 1351 y Fe(replace_his)o(to)o(ry_)o(en)o(try)7 -b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(5)1012 1477 y Fp(S)1012 -1535 y Fe(stifle_hist)o(or)o(y)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(6)1012 1661 y Fp(U)1012 -1719 y Fe(unstifle_hi)o(st)o(ory)t Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)18 b Fb(6)1012 1762 y Fe(using_histo)o(ry)6 -b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 -b Fb(5)1012 1888 y Fp(W)1012 1946 y Fe(where_histo)o(ry)6 -b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 -b Fb(6)1012 1990 y Fe(write_histo)o(ry)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(7)p eop end -%%Trailer - -userdict /end-hook known{end-hook}if -%%EOF diff --git a/lib/readline/doc/history.tmp b/lib/readline/doc/history.tmp deleted file mode 100644 index 0e38eaf7c..000000000 --- a/lib/readline/doc/history.tmp +++ /dev/null @@ -1,26 +0,0 @@ - -This document describes the GNU History library -(version @value{VERSION}, @value{UPDATED}), -a programming tool that provides a consistent user interface for -recalling lines of previously typed input. - -Copyright @copyright{} 1988--2011 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -@quotation -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', -and with the Back-Cover Texts as in (a) below. A copy of the license is -included in the section entitled ``GNU Free Documentation License''. - -(a) The FSF's Back-Cover Text is: You are free to copy and modify -this GNU manual. Buying copies from GNU Press supports the FSF in -developing GNU and promoting software freedom.'' - -@end quotation -@endinput diff --git a/lib/readline/doc/history.toc b/lib/readline/doc/history.toc deleted file mode 100644 index 56b563cad..000000000 --- a/lib/readline/doc/history.toc +++ /dev/null @@ -1,21 +0,0 @@ -@numchapentry{Using History Interactively}{1}{Using History Interactively}{1} -@numsecentry{History Expansion}{1.1}{History Interaction}{1} -@numsubsecentry{Event Designators}{1.1.1}{Event Designators}{1} -@numsubsecentry{Word Designators}{1.1.2}{Word Designators}{2} -@numsubsecentry{Modifiers}{1.1.3}{Modifiers}{2} -@numchapentry{Programming with GNU History}{2}{Programming with GNU History}{4} -@numsecentry{Introduction to History}{2.1}{Introduction to History}{4} -@numsecentry{History Storage}{2.2}{History Storage}{4} -@numsecentry{History Functions}{2.3}{History Functions}{5} -@numsubsecentry{Initializing History and State Management}{2.3.1}{Initializing History and State Management}{5} -@numsubsecentry{History List Management}{2.3.2}{History List Management}{5} -@numsubsecentry{Information About the History List}{2.3.3}{Information About the History List}{6} -@numsubsecentry{Moving Around the History List}{2.3.4}{Moving Around the History List}{6} -@numsubsecentry{Searching the History List}{2.3.5}{Searching the History List}{7} -@numsubsecentry{Managing the History File}{2.3.6}{Managing the History File}{7} -@numsubsecentry{History Expansion}{2.3.7}{History Expansion}{8} -@numsecentry{History Variables}{2.4}{History Variables}{8} -@numsecentry{History Programming Example}{2.5}{History Programming Example}{10} -@appentry{GNU Free Documentation License}{A}{GNU Free Documentation License}{12} -@appentry{Concept Index}{B}{Concept Index}{20} -@appentry{Function and Variable Index}{C}{Function and Variable Index}{21} diff --git a/lib/readline/doc/history.tp b/lib/readline/doc/history.tp deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/history.vr b/lib/readline/doc/history.vr deleted file mode 100644 index cd7edb29d..000000000 --- a/lib/readline/doc/history.vr +++ /dev/null @@ -1,45 +0,0 @@ -\entry{using_history}{5}{\code {using_history}} -\entry{history_get_history_state}{5}{\code {history_get_history_state}} -\entry{history_set_history_state}{5}{\code {history_set_history_state}} -\entry{add_history}{5}{\code {add_history}} -\entry{add_history_time}{5}{\code {add_history_time}} -\entry{remove_history}{5}{\code {remove_history}} -\entry{free_history_entry}{5}{\code {free_history_entry}} -\entry{replace_history_entry}{5}{\code {replace_history_entry}} -\entry{clear_history}{6}{\code {clear_history}} -\entry{stifle_history}{6}{\code {stifle_history}} -\entry{unstifle_history}{6}{\code {unstifle_history}} -\entry{history_is_stifled}{6}{\code {history_is_stifled}} -\entry{history_list}{6}{\code {history_list}} -\entry{where_history}{6}{\code {where_history}} -\entry{current_history}{6}{\code {current_history}} -\entry{history_get}{6}{\code {history_get}} -\entry{history_get_time}{6}{\code {history_get_time}} -\entry{history_total_bytes}{6}{\code {history_total_bytes}} -\entry{history_set_pos}{6}{\code {history_set_pos}} -\entry{previous_history}{6}{\code {previous_history}} -\entry{next_history}{7}{\code {next_history}} -\entry{history_search}{7}{\code {history_search}} -\entry{history_search_prefix}{7}{\code {history_search_prefix}} -\entry{history_search_pos}{7}{\code {history_search_pos}} -\entry{read_history}{7}{\code {read_history}} -\entry{read_history_range}{7}{\code {read_history_range}} -\entry{write_history}{7}{\code {write_history}} -\entry{append_history}{8}{\code {append_history}} -\entry{history_truncate_file}{8}{\code {history_truncate_file}} -\entry{history_expand}{8}{\code {history_expand}} -\entry{get_history_event}{8}{\code {get_history_event}} -\entry{history_tokenize}{8}{\code {history_tokenize}} -\entry{history_arg_extract}{8}{\code {history_arg_extract}} -\entry{history_base}{8}{\code {history_base}} -\entry{history_length}{8}{\code {history_length}} -\entry{history_max_entries}{9}{\code {history_max_entries}} -\entry{history_write_timestamps}{9}{\code {history_write_timestamps}} -\entry{history_expansion_char}{9}{\code {history_expansion_char}} -\entry{history_subst_char}{9}{\code {history_subst_char}} -\entry{history_comment_char}{9}{\code {history_comment_char}} -\entry{history_word_delimiters}{9}{\code {history_word_delimiters}} -\entry{history_search_delimiter_chars}{9}{\code {history_search_delimiter_chars}} -\entry{history_no_expand_chars}{9}{\code {history_no_expand_chars}} -\entry{history_quotes_inhibit_expansion}{9}{\code {history_quotes_inhibit_expansion}} -\entry{history_inhibit_expansion_function}{9}{\code {history_inhibit_expansion_function}} diff --git a/lib/readline/doc/history.vrs b/lib/readline/doc/history.vrs deleted file mode 100644 index 4e517fd6e..000000000 --- a/lib/readline/doc/history.vrs +++ /dev/null @@ -1,56 +0,0 @@ -\initial {A} -\entry {\code {add_history}}{5} -\entry {\code {add_history_time}}{5} -\entry {\code {append_history}}{8} -\initial {C} -\entry {\code {clear_history}}{6} -\entry {\code {current_history}}{6} -\initial {F} -\entry {\code {free_history_entry}}{5} -\initial {G} -\entry {\code {get_history_event}}{8} -\initial {H} -\entry {\code {history_arg_extract}}{8} -\entry {\code {history_base}}{8} -\entry {\code {history_comment_char}}{9} -\entry {\code {history_expand}}{8} -\entry {\code {history_expansion_char}}{9} -\entry {\code {history_get}}{6} -\entry {\code {history_get_history_state}}{5} -\entry {\code {history_get_time}}{6} -\entry {\code {history_inhibit_expansion_function}}{9} -\entry {\code {history_is_stifled}}{6} -\entry {\code {history_length}}{8} -\entry {\code {history_list}}{6} -\entry {\code {history_max_entries}}{9} -\entry {\code {history_no_expand_chars}}{9} -\entry {\code {history_quotes_inhibit_expansion}}{9} -\entry {\code {history_search}}{7} -\entry {\code {history_search_delimiter_chars}}{9} -\entry {\code {history_search_pos}}{7} -\entry {\code {history_search_prefix}}{7} -\entry {\code {history_set_history_state}}{5} -\entry {\code {history_set_pos}}{6} -\entry {\code {history_subst_char}}{9} -\entry {\code {history_tokenize}}{8} -\entry {\code {history_total_bytes}}{6} -\entry {\code {history_truncate_file}}{8} -\entry {\code {history_word_delimiters}}{9} -\entry {\code {history_write_timestamps}}{9} -\initial {N} -\entry {\code {next_history}}{7} -\initial {P} -\entry {\code {previous_history}}{6} -\initial {R} -\entry {\code {read_history}}{7} -\entry {\code {read_history_range}}{7} -\entry {\code {remove_history}}{5} -\entry {\code {replace_history_entry}}{5} -\initial {S} -\entry {\code {stifle_history}}{6} -\initial {U} -\entry {\code {unstifle_history}}{6} -\entry {\code {using_history}}{5} -\initial {W} -\entry {\code {where_history}}{6} -\entry {\code {write_history}}{7} diff --git a/lib/readline/doc/hstech.texinfo b/lib/readline/doc/hstech.texinfo deleted file mode 100644 index 949444668..000000000 --- a/lib/readline/doc/hstech.texinfo +++ /dev/null @@ -1,550 +0,0 @@ -@ignore -This file documents the user interface to the GNU History library. - -Copyright (C) 1988-2002 Free Software Foundation, Inc. -Authored by Brian Fox and Chet Ramey. - -Permission is granted to make and distribute verbatim copies of this manual -provided the copyright notice and this permission notice are preserved on -all copies. - -Permission is granted to process this file through Tex and print the -results, provided the printed document carries copying permission notice -identical to this one except for the removal of this paragraph (this -paragraph not being relevant to the printed manual). - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided also that the -GNU Copyright statement is available to the distributee, and provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions. -@end ignore - -@node Programming with GNU History -@chapter Programming with GNU History - -This chapter describes how to interface programs that you write -with the @sc{gnu} History Library. -It should be considered a technical guide. -For information on the interactive use of @sc{gnu} History, @pxref{Using -History Interactively}. - -@menu -* Introduction to History:: What is the GNU History library for? -* History Storage:: How information is stored. -* History Functions:: Functions that you can use. -* History Variables:: Variables that control behaviour. -* History Programming Example:: Example of using the GNU History Library. -@end menu - -@node Introduction to History -@section Introduction to History - -Many programs read input from the user a line at a time. The @sc{gnu} -History library is able to keep track of those lines, associate arbitrary -data with each line, and utilize information from previous lines in -composing new ones. - -The programmer using the History library has available functions -for remembering lines on a history list, associating arbitrary data -with a line, removing lines from the list, searching through the list -for a line containing an arbitrary text string, and referencing any line -in the list directly. In addition, a history @dfn{expansion} function -is available which provides for a consistent user interface across -different programs. - -The user using programs written with the History library has the -benefit of a consistent user interface with a set of well-known -commands for manipulating the text of previous lines and using that text -in new commands. The basic history manipulation commands are similar to -the history substitution provided by @code{csh}. - -If the programmer desires, he can use the Readline library, which -includes some history manipulation by default, and has the added -advantage of command line editing. - -Before declaring any functions using any functionality the History -library provides in other code, an application writer should include -the file @code{} in any file that uses the -History library's features. It supplies extern declarations for all -of the library's public functions and variables, and declares all of -the public data structures. - -@node History Storage -@section History Storage - -The history list is an array of history entries. A history entry is -declared as follows: - -@example -typedef void *histdata_t; - -typedef struct _hist_entry @{ - char *line; - histdata_t data; -@} HIST_ENTRY; -@end example - -The history list itself might therefore be declared as - -@example -HIST_ENTRY **the_history_list; -@end example - -The state of the History library is encapsulated into a single structure: - -@example -/* - * A structure used to pass around the current state of the history. - */ -typedef struct _hist_state @{ - HIST_ENTRY **entries; /* Pointer to the entries themselves. */ - int offset; /* The location pointer within this array. */ - int length; /* Number of elements within this array. */ - int size; /* Number of slots allocated to this array. */ - int flags; -@} HISTORY_STATE; -@end example - -If the flags member includes @code{HS_STIFLED}, the history has been -stifled. - -@node History Functions -@section History Functions - -This section describes the calling sequence for the various functions -exported by the @sc{gnu} History library. - -@menu -* Initializing History and State Management:: Functions to call when you - want to use history in a - program. -* History List Management:: Functions used to manage the list - of history entries. -* Information About the History List:: Functions returning information about - the history list. -* Moving Around the History List:: Functions used to change the position - in the history list. -* Searching the History List:: Functions to search the history list - for entries containing a string. -* Managing the History File:: Functions that read and write a file - containing the history list. -* History Expansion:: Functions to perform csh-like history - expansion. -@end menu - -@node Initializing History and State Management -@subsection Initializing History and State Management - -This section describes functions used to initialize and manage -the state of the History library when you want to use the history -functions in your program. - -@deftypefun void using_history (void) -Begin a session in which the history functions might be used. This -initializes the interactive variables. -@end deftypefun - -@deftypefun {HISTORY_STATE *} history_get_history_state (void) -Return a structure describing the current state of the input history. -@end deftypefun - -@deftypefun void history_set_history_state (HISTORY_STATE *state) -Set the state of the history list according to @var{state}. -@end deftypefun - -@node History List Management -@subsection History List Management - -These functions manage individual entries on the history list, or set -parameters managing the list itself. - -@deftypefun void add_history (const char *string) -Place @var{string} at the end of the history list. The associated data -field (if any) is set to @code{NULL}. -@end deftypefun - -@deftypefun {HIST_ENTRY *} remove_history (int which) -Remove history entry at offset @var{which} from the history. The -removed element is returned so you can free the line, data, -and containing structure. -@end deftypefun - -@deftypefun {HIST_ENTRY *} replace_history_entry (int which, const char *line, histdata_t data) -Make the history entry at offset @var{which} have @var{line} and @var{data}. -This returns the old entry so you can dispose of the data. In the case -of an invalid @var{which}, a @code{NULL} pointer is returned. -@end deftypefun - -@deftypefun void clear_history (void) -Clear the history list by deleting all the entries. -@end deftypefun - -@deftypefun void stifle_history (int max) -Stifle the history list, remembering only the last @var{max} entries. -@end deftypefun - -@deftypefun int unstifle_history (void) -Stop stifling the history. This returns the previously-set -maximum number of history entries (as set by @code{stifle_history()}). -The value is positive if the history was -stifled, negative if it wasn't. -@end deftypefun - -@deftypefun int history_is_stifled (void) -Returns non-zero if the history is stifled, zero if it is not. -@end deftypefun - -@node Information About the History List -@subsection Information About the History List - -These functions return information about the entire history list or -individual list entries. - -@deftypefun {HIST_ENTRY **} history_list (void) -Return a @code{NULL} terminated array of @code{HIST_ENTRY *} which is the -current input history. Element 0 of this list is the beginning of time. -If there is no history, return @code{NULL}. -@end deftypefun - -@deftypefun int where_history (void) -Returns the offset of the current history element. -@end deftypefun - -@deftypefun {HIST_ENTRY *} current_history (void) -Return the history entry at the current position, as determined by -@code{where_history()}. If there is no entry there, return a @code{NULL} -pointer. -@end deftypefun - -@deftypefun {HIST_ENTRY *} history_get (int offset) -Return the history entry at position @var{offset}, starting from -@code{history_base} (@pxref{History Variables}). -If there is no entry there, or if @var{offset} -is greater than the history length, return a @code{NULL} pointer. -@end deftypefun - -@deftypefun int history_total_bytes (void) -Return the number of bytes that the primary history entries are using. -This function returns the sum of the lengths of all the lines in the -history. -@end deftypefun - -@node Moving Around the History List -@subsection Moving Around the History List - -These functions allow the current index into the history list to be -set or changed. - -@deftypefun int history_set_pos (int pos) -Set the current history offset to @var{pos}, an absolute index -into the list. -Returns 1 on success, 0 if @var{pos} is less than zero or greater -than the number of history entries. -@end deftypefun - -@deftypefun {HIST_ENTRY *} previous_history (void) -Back up the current history offset to the previous history entry, and -return a pointer to that entry. If there is no previous entry, return -a @code{NULL} pointer. -@end deftypefun - -@deftypefun {HIST_ENTRY *} next_history (void) -Move the current history offset forward to the next history entry, and -return the a pointer to that entry. If there is no next entry, return -a @code{NULL} pointer. -@end deftypefun - -@node Searching the History List -@subsection Searching the History List -@cindex History Searching - -These functions allow searching of the history list for entries containing -a specific string. Searching may be performed both forward and backward -from the current history position. The search may be @dfn{anchored}, -meaning that the string must match at the beginning of the history entry. -@cindex anchored search - -@deftypefun int history_search (const char *string, int direction) -Search the history for @var{string}, starting at the current history offset. -If @var{direction} is less than 0, then the search is through -previous entries, otherwise through subsequent entries. -If @var{string} is found, then -the current history index is set to that history entry, and the value -returned is the offset in the line of the entry where -@var{string} was found. Otherwise, nothing is changed, and a -1 is -returned. -@end deftypefun - -@deftypefun int history_search_prefix (const char *string, int direction) -Search the history for @var{string}, starting at the current history -offset. The search is anchored: matching lines must begin with -@var{string}. If @var{direction} is less than 0, then the search is -through previous entries, otherwise through subsequent entries. -If @var{string} is found, then the -current history index is set to that entry, and the return value is 0. -Otherwise, nothing is changed, and a -1 is returned. -@end deftypefun - -@deftypefun int history_search_pos (const char *string, int direction, int pos) -Search for @var{string} in the history list, starting at @var{pos}, an -absolute index into the list. If @var{direction} is negative, the search -proceeds backward from @var{pos}, otherwise forward. Returns the absolute -index of the history element where @var{string} was found, or -1 otherwise. -@end deftypefun - -@node Managing the History File -@subsection Managing the History File - -The History library can read the history from and write it to a file. -This section documents the functions for managing a history file. - -@deftypefun int read_history (const char *filename) -Add the contents of @var{filename} to the history list, a line at a time. -If @var{filename} is @code{NULL}, then read from @file{~/.history}. -Returns 0 if successful, or @code{errno} if not. -@end deftypefun - -@deftypefun int read_history_range (const char *filename, int from, int to) -Read a range of lines from @var{filename}, adding them to the history list. -Start reading at line @var{from} and end at @var{to}. -If @var{from} is zero, start at the beginning. If @var{to} is less than -@var{from}, then read until the end of the file. If @var{filename} is -@code{NULL}, then read from @file{~/.history}. Returns 0 if successful, -or @code{errno} if not. -@end deftypefun - -@deftypefun int write_history (const char *filename) -Write the current history to @var{filename}, overwriting @var{filename} -if necessary. -If @var{filename} is @code{NULL}, then write the history list to -@file{~/.history}. -Returns 0 on success, or @code{errno} on a read or write error. -@end deftypefun - -@deftypefun int append_history (int nelements, const char *filename) -Append the last @var{nelements} of the history list to @var{filename}. -If @var{filename} is @code{NULL}, then append to @file{~/.history}. -Returns 0 on success, or @code{errno} on a read or write error. -@end deftypefun - -@deftypefun int history_truncate_file (const char *filename, int nlines) -Truncate the history file @var{filename}, leaving only the last -@var{nlines} lines. -If @var{filename} is @code{NULL}, then @file{~/.history} is truncated. -Returns 0 on success, or @code{errno} on failure. -@end deftypefun - -@node History Expansion -@subsection History Expansion - -These functions implement history expansion. - -@deftypefun int history_expand (char *string, char **output) -Expand @var{string}, placing the result into @var{output}, a pointer -to a string (@pxref{History Interaction}). Returns: -@table @code -@item 0 -If no expansions took place (or, if the only change in -the text was the removal of escape characters preceding the history expansion -character); -@item 1 -if expansions did take place; -@item -1 -if there was an error in expansion; -@item 2 -if the returned line should be displayed, but not executed, -as with the @code{:p} modifier (@pxref{Modifiers}). -@end table - -If an error ocurred in expansion, then @var{output} contains a descriptive -error message. -@end deftypefun - -@deftypefun {char *} get_history_event (const char *string, int *cindex, int qchar) -Returns the text of the history event beginning at @var{string} + -@var{*cindex}. @var{*cindex} is modified to point to after the event -specifier. At function entry, @var{cindex} points to the index into -@var{string} where the history event specification begins. @var{qchar} -is a character that is allowed to end the event specification in addition -to the ``normal'' terminating characters. -@end deftypefun - -@deftypefun {char **} history_tokenize (const char *string) -Return an array of tokens parsed out of @var{string}, much as the -shell might. The tokens are split on the characters in the -@var{history_word_delimiters} variable, -and shell quoting conventions are obeyed. -@end deftypefun - -@deftypefun {char *} history_arg_extract (int first, int last, const char *string) -Extract a string segment consisting of the @var{first} through @var{last} -arguments present in @var{string}. Arguments are split using -@code{history_tokenize}. -@end deftypefun - -@node History Variables -@section History Variables - -This section describes the externally-visible variables exported by -the @sc{gnu} History Library. - -@deftypevar int history_base -The logical offset of the first entry in the history list. -@end deftypevar - -@deftypevar int history_length -The number of entries currently stored in the history list. -@end deftypevar - -@deftypevar int history_max_entries -The maximum number of history entries. This must be changed using -@code{stifle_history()}. -@end deftypevar - -@deftypevar char history_expansion_char -The character that introduces a history event. The default is @samp{!}. -Setting this to 0 inhibits history expansion. -@end deftypevar - -@deftypevar char history_subst_char -The character that invokes word substitution if found at the start of -a line. The default is @samp{^}. -@end deftypevar - -@deftypevar char history_comment_char -During tokenization, if this character is seen as the first character -of a word, then it and all subsequent characters up to a newline are -ignored, suppressing history expansion for the remainder of the line. -This is disabled by default. -@end deftypevar - -@deftypevar {char *} history_word_delimiters -The characters that separate tokens for @code{history_tokenize()}. -The default value is @code{" \t\n()<>;&|"}. -@end deftypevar - -@deftypevar {char *} history_no_expand_chars -The list of characters which inhibit history expansion if found immediately -following @var{history_expansion_char}. The default is space, tab, newline, -carriage return, and @samp{=}. -@end deftypevar - -@deftypevar {char *} history_search_delimiter_chars -The list of additional characters which can delimit a history search -string, in addition to space, TAB, @samp{:} and @samp{?} in the case of -a substring search. The default is empty. -@end deftypevar - -@deftypevar int history_quotes_inhibit_expansion -If non-zero, single-quoted words are not scanned for the history expansion -character. The default value is 0. -@end deftypevar - -@deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function -This should be set to the address of a function that takes two arguments: -a @code{char *} (@var{string}) -and an @code{int} index into that string (@var{i}). -It should return a non-zero value if the history expansion starting at -@var{string[i]} should not be performed; zero if the expansion should -be done. -It is intended for use by applications like Bash that use the history -expansion character for additional purposes. -By default, this variable is set to @code{NULL}. -@end deftypevar - -@node History Programming Example -@section History Programming Example - -The following program demonstrates simple use of the @sc{gnu} History Library. - -@smallexample -#include -#include - -main (argc, argv) - int argc; - char **argv; -@{ - char line[1024], *t; - int len, done = 0; - - line[0] = 0; - - using_history (); - while (!done) - @{ - printf ("history$ "); - fflush (stdout); - t = fgets (line, sizeof (line) - 1, stdin); - if (t && *t) - @{ - len = strlen (t); - if (t[len - 1] == '\n') - t[len - 1] = '\0'; - @} - - if (!t) - strcpy (line, "quit"); - - if (line[0]) - @{ - char *expansion; - int result; - - result = history_expand (line, &expansion); - if (result) - fprintf (stderr, "%s\n", expansion); - - if (result < 0 || result == 2) - @{ - free (expansion); - continue; - @} - - add_history (expansion); - strncpy (line, expansion, sizeof (line) - 1); - free (expansion); - @} - - if (strcmp (line, "quit") == 0) - done = 1; - else if (strcmp (line, "save") == 0) - write_history ("history_file"); - else if (strcmp (line, "read") == 0) - read_history ("history_file"); - else if (strcmp (line, "list") == 0) - @{ - register HIST_ENTRY **the_list; - register int i; - - the_list = history_list (); - if (the_list) - for (i = 0; the_list[i]; i++) - printf ("%d: %s\n", i + history_base, the_list[i]->line); - @} - else if (strncmp (line, "delete", 6) == 0) - @{ - int which; - if ((sscanf (line + 6, "%d", &which)) == 1) - @{ - HIST_ENTRY *entry = remove_history (which); - if (!entry) - fprintf (stderr, "No such entry %d\n", which); - else - @{ - free (entry->line); - free (entry); - @} - @} - else - @{ - fprintf (stderr, "non-numeric arg given to `delete'\n"); - @} - @} - @} -@} -@end smallexample diff --git a/lib/readline/doc/hsuser.texinfo b/lib/readline/doc/hsuser.texinfo deleted file mode 100644 index 418bfa8ef..000000000 --- a/lib/readline/doc/hsuser.texinfo +++ /dev/null @@ -1,437 +0,0 @@ -@ignore -This file documents the user interface to the GNU History library. - -Copyright (C) 1988-2002 Free Software Foundation, Inc. -Authored by Brian Fox and Chet Ramey. - -Permission is granted to make and distribute verbatim copies of this manual -provided the copyright notice and this permission notice are preserved on -all copies. - -Permission is granted to process this file through Tex and print the -results, provided the printed document carries copying permission notice -identical to this one except for the removal of this paragraph (this -paragraph not being relevant to the printed manual). - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided also that the -GNU Copyright statement is available to the distributee, and provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions. -@end ignore - -@node Using History Interactively -@chapter Using History Interactively - -@ifclear BashFeatures -@defcodeindex bt -@end ifclear - -@ifset BashFeatures -This chapter describes how to use the @sc{gnu} History Library -interactively, from a user's standpoint. -It should be considered a user's guide. -For information on using the @sc{gnu} History Library in other programs, -see the @sc{gnu} Readline Library Manual. -@end ifset -@ifclear BashFeatures -This chapter describes how to use the @sc{gnu} History Library interactively, -from a user's standpoint. It should be considered a user's guide. For -information on using the @sc{gnu} History Library in your own programs, -@pxref{Programming with GNU History}. -@end ifclear - -@ifset BashFeatures -@menu -* Bash History Facilities:: How Bash lets you manipulate your command - history. -* Bash History Builtins:: The Bash builtin commands that manipulate - the command history. -* History Interaction:: What it feels like using History as a user. -@end menu -@end ifset -@ifclear BashFeatures -@menu -* History Interaction:: What it feels like using History as a user. -@end menu -@end ifclear - -@ifset BashFeatures -@node Bash History Facilities -@section Bash History Facilities -@cindex command history -@cindex history list - -When the @option{-o history} option to the @code{set} builtin -is enabled (@pxref{The Set Builtin}), -the shell provides access to the @dfn{command history}, -the list of commands previously typed. -The value of the @env{HISTSIZE} shell variable is used as the -number of commands to save in a history list. -The text of the last @env{$HISTSIZE} -commands (default 500) is saved. -The shell stores each command in the history list prior to -parameter and variable expansion -but after history expansion is performed, subject to the -values of the shell variables -@env{HISTIGNORE} and @env{HISTCONTROL}. - -When the shell starts up, the history is initialized from the -file named by the @env{HISTFILE} variable (default @file{~/.bash_history}). -The file named by the value of @env{HISTFILE} is truncated, if -necessary, to contain no more than the number of lines specified by -the value of the @env{HISTFILESIZE} variable. -When an interactive shell exits, the last -@env{$HISTSIZE} lines are copied from the history list to the file -named by @env{$HISTFILE}. -If the @code{histappend} shell option is set (@pxref{Bash Builtins}), -the lines are appended to the history file, -otherwise the history file is overwritten. -If @env{HISTFILE} -is unset, or if the history file is unwritable, the history is -not saved. After saving the history, the history file is truncated -to contain no more than @env{$HISTFILESIZE} -lines. If @env{HISTFILESIZE} is not set, no truncation is performed. - -The builtin command @code{fc} may be used to list or edit and re-execute -a portion of the history list. -The @code{history} builtin may be used to display or modify the history -list and manipulate the history file. -When using command-line editing, search commands -are available in each editing mode that provide access to the -history list (@pxref{Commands For History}). - -The shell allows control over which commands are saved on the history -list. The @env{HISTCONTROL} and @env{HISTIGNORE} -variables may be set to cause the shell to save only a subset of the -commands entered. -The @code{cmdhist} -shell option, if enabled, causes the shell to attempt to save each -line of a multi-line command in the same history entry, adding -semicolons where necessary to preserve syntactic correctness. -The @code{lithist} -shell option causes the shell to save the command with embedded newlines -instead of semicolons. -The @code{shopt} builtin is used to set these options. -@xref{Bash Builtins}, for a description of @code{shopt}. - -@node Bash History Builtins -@section Bash History Builtins -@cindex history builtins - -Bash provides two builtin commands which manipulate the -history list and history file. - -@table @code - -@item fc -@btindex fc -@example -@code{fc [-e @var{ename}] [-nlr] [@var{first}] [@var{last}]} -@code{fc -s [@var{pat}=@var{rep}] [@var{command}]} -@end example - -Fix Command. In the first form, a range of commands from @var{first} to -@var{last} is selected from the history list. Both @var{first} and -@var{last} may be specified as a string (to locate the most recent -command beginning with that string) or as a number (an index into the -history list, where a negative number is used as an offset from the -current command number). If @var{last} is not specified it is set to -@var{first}. If @var{first} is not specified it is set to the previous -command for editing and @minus{}16 for listing. If the @option{-l} flag is -given, the commands are listed on standard output. The @option{-n} flag -suppresses the command numbers when listing. The @option{-r} flag -reverses the order of the listing. Otherwise, the editor given by -@var{ename} is invoked on a file containing those commands. If -@var{ename} is not given, the value of the following variable expansion -is used: @code{$@{FCEDIT:-$@{EDITOR:-vi@}@}}. This says to use the -value of the @env{FCEDIT} variable if set, or the value of the -@env{EDITOR} variable if that is set, or @code{vi} if neither is set. -When editing is complete, the edited commands are echoed and executed. - -In the second form, @var{command} is re-executed after each instance -of @var{pat} in the selected command is replaced by @var{rep}. - -A useful alias to use with the @code{fc} command is @code{r='fc -s'}, so -that typing @samp{r cc} runs the last command beginning with @code{cc} -and typing @samp{r} re-executes the last command (@pxref{Aliases}). - -@item history -@btindex history -@example -history [@var{n}] -history -c -history -d @var{offset} -history [-anrw] [@var{filename}] -history -ps @var{arg} -@end example - -With no options, display the history list with line numbers. -Lines prefixed with a @samp{*} have been modified. -An argument of @var{n} lists only the last @var{n} lines. -Options, if supplied, have the following meanings: - -@table @code -@item -c -Clear the history list. This may be combined -with the other options to replace the history list completely. - -@item -d @var{offset} -Delete the history entry at position @var{offset}. -@var{offset} should be specified as it appears when the history is -displayed. - -@item -a -Append the new -history lines (history lines entered since the beginning of the -current Bash session) to the history file. - -@item -n -Append the history lines not already read from the history file -to the current history list. These are lines appended to the history -file since the beginning of the current Bash session. - -@item -r -Read the current history file and append its contents to -the history list. - -@item -w -Write out the current history to the history file. - -@item -p -Perform history substitution on the @var{arg}s and display the result -on the standard output, without storing the results in the history list. - -@item -s -The @var{arg}s are added to the end of -the history list as a single entry. - -@end table - -When any of the @option{-w}, @option{-r}, @option{-a}, or @option{-n} options is -used, if @var{filename} -is given, then it is used as the history file. If not, then -the value of the @env{HISTFILE} variable is used. - -@end table -@end ifset - -@node History Interaction -@section History Expansion -@cindex history expansion - -The History library provides a history expansion feature that is similar -to the history expansion provided by @code{csh}. This section -describes the syntax used to manipulate the history information. - -History expansions introduce words from the history list into -the input stream, making it easy to repeat commands, insert the -arguments to a previous command into the current input line, or -fix errors in previous commands quickly. - -History expansion takes place in two parts. The first is to determine -which line from the history list should be used during substitution. -The second is to select portions of that line for inclusion into the -current one. The line selected from the history is called the -@dfn{event}, and the portions of that line that are acted upon are -called @dfn{words}. Various @dfn{modifiers} are available to manipulate -the selected words. The line is broken into words in the same fashion -that Bash does, so that several words -surrounded by quotes are considered one word. -History expansions are introduced by the appearance of the -history expansion character, which is @samp{!} by default. -@ifset BashFeatures -Only @samp{\} and @samp{'} may be used to escape the history expansion -character. -@end ifset - -@ifset BashFeatures -Several shell options settable with the @code{shopt} -builtin (@pxref{Bash Builtins}) may be used to tailor -the behavior of history expansion. If the -@code{histverify} shell option is enabled, and Readline -is being used, history substitutions are not immediately passed to -the shell parser. -Instead, the expanded line is reloaded into the Readline -editing buffer for further modification. -If Readline is being used, and the @code{histreedit} -shell option is enabled, a failed history expansion will be -reloaded into the Readline editing buffer for correction. -The @option{-p} option to the @code{history} builtin command -may be used to see what a history expansion will do before using it. -The @option{-s} option to the @code{history} builtin may be used to -add commands to the end of the history list without actually executing -them, so that they are available for subsequent recall. -This is most useful in conjunction with Readline. - -The shell allows control of the various characters used by the -history expansion mechanism with the @code{histchars} variable. -@end ifset - -@menu -* Event Designators:: How to specify which history line to use. -* Word Designators:: Specifying which words are of interest. -* Modifiers:: Modifying the results of substitution. -@end menu - -@node Event Designators -@subsection Event Designators -@cindex event designators - -An event designator is a reference to a command line entry in the -history list. -@cindex history events - -@table @asis - -@item @code{!} -Start a history substitution, except when followed by a space, tab, -the end of the line, @samp{=} or @samp{(}. - -@item @code{!@var{n}} -Refer to command line @var{n}. - -@item @code{!-@var{n}} -Refer to the command @var{n} lines back. - -@item @code{!!} -Refer to the previous command. This is a synonym for @samp{!-1}. - -@item @code{!@var{string}} -Refer to the most recent command starting with @var{string}. - -@item @code{!?@var{string}[?]} -Refer to the most recent command containing @var{string}. The trailing -@samp{?} may be omitted if the @var{string} is followed immediately by -a newline. - -@item @code{^@var{string1}^@var{string2}^} -Quick Substitution. Repeat the last command, replacing @var{string1} -with @var{string2}. Equivalent to -@code{!!:s/@var{string1}/@var{string2}/}. - -@item @code{!#} -The entire command line typed so far. - -@end table - -@node Word Designators -@subsection Word Designators - -Word designators are used to select desired words from the event. -A @samp{:} separates the event specification from the word designator. It -may be omitted if the word designator begins with a @samp{^}, @samp{$}, -@samp{*}, @samp{-}, or @samp{%}. Words are numbered from the beginning -of the line, with the first word being denoted by 0 (zero). Words are -inserted into the current line separated by single spaces. - -@need 0.75 -For example, - -@table @code -@item !! -designates the preceding command. When you type this, the preceding -command is repeated in toto. - -@item !!:$ -designates the last argument of the preceding command. This may be -shortened to @code{!$}. - -@item !fi:2 -designates the second argument of the most recent command starting with -the letters @code{fi}. -@end table - -@need 0.75 -Here are the word designators: - -@table @code - -@item 0 (zero) -The @code{0}th word. For many applications, this is the command word. - -@item @var{n} -The @var{n}th word. - -@item ^ -The first argument; that is, word 1. - -@item $ -The last argument. - -@item % -The word matched by the most recent @samp{?@var{string}?} search. - -@item @var{x}-@var{y} -A range of words; @samp{-@var{y}} abbreviates @samp{0-@var{y}}. - -@item * -All of the words, except the @code{0}th. This is a synonym for @samp{1-$}. -It is not an error to use @samp{*} if there is just one word in the event; -the empty string is returned in that case. - -@item @var{x}* -Abbreviates @samp{@var{x}-$} - -@item @var{x}- -Abbreviates @samp{@var{x}-$} like @samp{@var{x}*}, but omits the last word. - -@end table - -If a word designator is supplied without an event specification, the -previous command is used as the event. - -@node Modifiers -@subsection Modifiers - -After the optional word designator, you can add a sequence of one or more -of the following modifiers, each preceded by a @samp{:}. - -@table @code - -@item h -Remove a trailing pathname component, leaving only the head. - -@item t -Remove all leading pathname components, leaving the tail. - -@item r -Remove a trailing suffix of the form @samp{.@var{suffix}}, leaving -the basename. - -@item e -Remove all but the trailing suffix. - -@item p -Print the new command but do not execute it. - -@ifset BashFeatures -@item q -Quote the substituted words, escaping further substitutions. - -@item x -Quote the substituted words as with @samp{q}, -but break into words at spaces, tabs, and newlines. -@end ifset - -@item s/@var{old}/@var{new}/ -Substitute @var{new} for the first occurrence of @var{old} in the -event line. Any delimiter may be used in place of @samp{/}. -The delimiter may be quoted in @var{old} and @var{new} -with a single backslash. If @samp{&} appears in @var{new}, -it is replaced by @var{old}. A single backslash will quote -the @samp{&}. The final delimiter is optional if it is the last -character on the input line. - -@item & -Repeat the previous substitution. - -@item g -Cause changes to be applied over the entire event line. Used in -conjunction with @samp{s}, as in @code{gs/@var{old}/@var{new}/}, -or with @samp{&}. - -@end table diff --git a/lib/readline/doc/manvers.texinfo b/lib/readline/doc/manvers.texinfo deleted file mode 100644 index 1206cf0f2..000000000 --- a/lib/readline/doc/manvers.texinfo +++ /dev/null @@ -1,10 +0,0 @@ -@ignore -Copyright (C) 1988-2002 Free Software Foundation, Inc. -@end ignore - -@set EDITION 4.3 -@set VERSION 4.3 -@set UPDATED 2002 March 4 -@set UPDATE-MONTH March 2002 - -@set LASTCHANGE Mon Mar 4 12:00:16 EST 2002 diff --git a/lib/readline/doc/readline.3 b/lib/readline/doc/readline.3 deleted file mode 100644 index 06116511c..000000000 --- a/lib/readline/doc/readline.3 +++ /dev/null @@ -1,1427 +0,0 @@ -.\" -.\" MAN PAGE COMMENTS to -.\" -.\" Chet Ramey -.\" Information Network Services -.\" Case Western Reserve University -.\" chet@ins.CWRU.Edu -.\" -.\" Last Change: Thu Nov 15 21:02:20 EST 2012 -.\" -.TH READLINE 3 "2012 November 15" "GNU Readline 6.2" -.\" -.\" File Name macro. This used to be `.PN', for Path Name, -.\" but Sun doesn't seem to like that very much. -.\" -.de FN -\fI\|\\$1\|\fP -.. -.SH NAME -readline \- get a line from a user with editing -.SH SYNOPSIS -.LP -.nf -.ft B -#include -#include -#include -.ft -.fi -.LP -.nf -\fIchar *\fP -.br -\fBreadline\fP (\fIconst char *prompt\fP); -.fi -.SH COPYRIGHT -.if n Readline is Copyright (C) 1989\-2011 Free Software Foundation, Inc. -.if t Readline is Copyright \(co 1989\-2011 Free Software Foundation, Inc. -.SH DESCRIPTION -.LP -.B readline -will read a line from the terminal -and return it, using -.B prompt -as a prompt. If -.B prompt -is \fBNULL\fP or the empty string, no prompt is issued. -The line returned is allocated with -.IR malloc (3); -the caller must free it when finished. The line returned -has the final newline removed, so only the text of the line -remains. -.LP -.B readline -offers editing capabilities while the user is entering the -line. -By default, the line editing commands -are similar to those of emacs. -A vi\-style line editing interface is also available. -.LP -This manual page describes only the most basic use of \fBreadline\fP. -Much more functionality is available; see -\fIThe GNU Readline Library\fP and \fIThe GNU History Library\fP -for additional information. -.SH RETURN VALUE -.LP -.B readline -returns the text of the line read. A blank line -returns the empty string. If -.B EOF -is encountered while reading a line, and the line is empty, -.B NULL -is returned. If an -.B EOF -is read with a non\-empty line, it is -treated as a newline. -.SH NOTATION -.LP -An Emacs-style notation is used to denote -keystrokes. Control keys are denoted by C\-\fIkey\fR, e.g., C\-n -means Control\-N. Similarly, -.I meta -keys are denoted by M\-\fIkey\fR, so M\-x means Meta\-X. (On keyboards -without a -.I meta -key, M\-\fIx\fP means ESC \fIx\fP, i.e., press the Escape key -then the -.I x -key. This makes ESC the \fImeta prefix\fP. -The combination M\-C\-\fIx\fP means ESC\-Control\-\fIx\fP, -or press the Escape key -then hold the Control key while pressing the -.I x -key.) -.PP -Readline commands may be given numeric -.IR arguments , -which normally act as a repeat count. Sometimes, however, it is the -sign of the argument that is significant. Passing a negative argument -to a command that acts in the forward direction (e.g., \fBkill\-line\fP) -causes that command to act in a backward direction. Commands whose -behavior with arguments deviates from this are noted. -.PP -When a command is described as \fIkilling\fP text, the text -deleted is saved for possible future retrieval -(\fIyanking\fP). The killed text is saved in a -\fIkill ring\fP. Consecutive kills cause the text to be -accumulated into one unit, which can be yanked all at once. -Commands which do not kill text separate the chunks of text -on the kill ring. -.SH INITIALIZATION FILE -.LP -Readline is customized by putting commands in an initialization -file (the \fIinputrc\fP file). -The name of this file is taken from the value of the -.B INPUTRC -environment variable. If that variable is unset, the default is -.IR ~/.inputrc . -If that file does not exist or cannot be read, the ultimate default is -.IR /etc/inputrc . -When a program which uses the readline library starts up, the -init file is read, and the key bindings and variables are set. -There are only a few basic constructs allowed in the -readline init file. Blank lines are ignored. -Lines beginning with a \fB#\fP are comments. -Lines beginning with a \fB$\fP indicate conditional constructs. -Other lines denote key bindings and variable settings. -Each program using this library may add its own commands -and bindings. -.PP -For example, placing -.RS -.PP -M\-Control\-u: universal\-argument -.RE -or -.RS -C\-Meta\-u: universal\-argument -.RE -.sp -into the -.I inputrc -would make M\-C\-u execute the readline command -.IR universal\-argument . -.PP -The following symbolic character names are recognized while -processing key bindings: -.IR DEL , -.IR ESC , -.IR ESCAPE , -.IR LFD , -.IR NEWLINE , -.IR RET , -.IR RETURN , -.IR RUBOUT , -.IR SPACE , -.IR SPC , -and -.IR TAB . -.PP -In addition to command names, readline allows keys to be bound -to a string that is inserted when the key is pressed (a \fImacro\fP). -.PP -.SS Key Bindings -.PP -The syntax for controlling key bindings in the -.I inputrc -file is simple. All that is required is the name of the -command or the text of a macro and a key sequence to which -it should be bound. The name may be specified in one of two ways: -as a symbolic key name, possibly with \fIMeta\-\fP or \fIControl\-\fP -prefixes, or as a key sequence. -The name and key sequence are separated by a colon. There can be no -whitespace between the name and the colon. -.PP -When using the form \fBkeyname\fP:\^\fIfunction-name\fP or \fImacro\fP, -.I keyname -is the name of a key spelled out in English. For example: -.sp -.RS -Control\-u: universal\-argument -.br -Meta\-Rubout: backward\-kill\-word -.br -Control\-o: "> output" -.RE -.LP -In the above example, -.I C\-u -is bound to the function -.BR universal\-argument , -.I M-DEL -is bound to the function -.BR backward\-kill\-word , -and -.I C\-o -is bound to run the macro -expressed on the right hand side (that is, to insert the text -.if t \f(CW> output\fP -.if n ``> output'' -into the line). -.PP -In the second form, \fB"keyseq"\fP:\^\fIfunction\-name\fP or \fImacro\fP, -.B keyseq -differs from -.B keyname -above in that strings denoting -an entire key sequence may be specified by placing the sequence -within double quotes. Some GNU Emacs style key escapes can be -used, as in the following example, but the symbolic character names -are not recognized. -.sp -.RS -"\eC\-u": universal\-argument -.br -"\eC\-x\eC\-r": re\-read\-init\-file -.br -"\ee[11~": "Function Key 1" -.RE -.PP -In this example, -.I C-u -is again bound to the function -.BR universal\-argument . -.I "C-x C-r" -is bound to the function -.BR re\-read\-init\-file , -and -.I "ESC [ 1 1 ~" -is bound to insert the text -.if t \f(CWFunction Key 1\fP. -.if n ``Function Key 1''. -.PP -The full set of GNU Emacs style escape sequences available when specifying -key sequences is -.RS -.PD 0 -.TP -.B \eC\- -control prefix -.TP -.B \eM\- -meta prefix -.TP -.B \ee -an escape character -.TP -.B \e\e -backslash -.TP -.B \e" -literal ", a double quote -.TP -.B \e' -literal ', a single quote -.RE -.PD -.PP -In addition to the GNU Emacs style escape sequences, a second -set of backslash escapes is available: -.RS -.PD 0 -.TP -.B \ea -alert (bell) -.TP -.B \eb -backspace -.TP -.B \ed -delete -.TP -.B \ef -form feed -.TP -.B \en -newline -.TP -.B \er -carriage return -.TP -.B \et -horizontal tab -.TP -.B \ev -vertical tab -.TP -.B \e\fInnn\fP -the eight-bit character whose value is the octal value \fInnn\fP -(one to three digits) -.TP -.B \ex\fIHH\fP -the eight-bit character whose value is the hexadecimal value \fIHH\fP -(one or two hex digits) -.RE -.PD -.PP -When entering the text of a macro, single or double quotes should -be used to indicate a macro definition. Unquoted text -is assumed to be a function name. -In the macro body, the backslash escapes described above are expanded. -Backslash will quote any other character in the macro text, -including " and '. -.PP -.B Bash -allows the current readline key bindings to be displayed or modified -with the -.B bind -builtin command. The editing mode may be switched during interactive -use by using the -.B \-o -option to the -.B set -builtin command. Other programs using this library provide -similar mechanisms. The -.I inputrc -file may be edited and re-read if a program does not provide -any other means to incorporate new bindings. -.SS Variables -.PP -Readline has variables that can be used to further customize its -behavior. A variable may be set in the -.I inputrc -file with a statement of the form -.RS -.PP -\fBset\fP \fIvariable\-name\fP \fIvalue\fP -.RE -.PP -Except where noted, readline variables can take the values -.B On -or -.B Off -(without regard to case). -Unrecognized variable names are ignored. -When a variable value is read, empty or null values, "on" (case-insensitive), -and "1" are equivalent to \fBOn\fP. All other values are equivalent to -\fBOff\fP. -The variables and their default values are: -.PP -.PD 0 -.TP -.B bell\-style (audible) -Controls what happens when readline wants to ring the terminal bell. -If set to \fBnone\fP, readline never rings the bell. If set to -\fBvisible\fP, readline uses a visible bell if one is available. -If set to \fBaudible\fP, readline attempts to ring the terminal's bell. -.TP -.B bind\-tty\-special\-chars (On) -If set to \fBOn\fP, readline attempts to bind the control characters -treated specially by the kernel's terminal driver to their readline -equivalents. -.TP -.B colored\-stats (Off) -If set to \fBOn\fP, readline displays possible completions using different -colors to indicate their file type. -The color definitions are taken from the value of the \fBLS_COLORS\fP -environment variable. -.TP -.B comment\-begin (``#'') -The string that is inserted in \fBvi\fP mode when the -.B insert\-comment -command is executed. -This command is bound to -.B M\-# -in emacs mode and to -.B # -in vi command mode. -.TP -.B completion\-display\-width (-1) -The number of screen columns used to display possible matches -when performing completion. -The value is ignored if it is less than 0 or greater than the terminal -screen width. -A value of 0 will cause matches to be displayed one per line. -The default value is -1. -.TP -.B completion\-ignore\-case (Off) -If set to \fBOn\fP, readline performs filename matching and completion -in a case\-insensitive fashion. -.TP -.B completion\-map\-case (Off) -If set to \fBOn\fP, and \fBcompletion\-ignore\-case\fP is enabled, readline -treats hyphens (\fI\-\fP) and underscores (\fI_\fP) as equivalent when -performing case\-insensitive filename matching and completion. -.TP -.B completion\-prefix\-display\-length (0) -The length in characters of the common prefix of a list of possible -completions that is displayed without modification. When set to a -value greater than zero, common prefixes longer than this value are -replaced with an ellipsis when displaying possible completions. -.TP -.B completion\-query\-items (100) -This determines when the user is queried about viewing -the number of possible completions -generated by the \fBpossible\-completions\fP command. -It may be set to any integer value greater than or equal to -zero. If the number of possible completions is greater than -or equal to the value of this variable, the user is asked whether -or not he wishes to view them; otherwise they are simply listed -on the terminal. A negative value causes readline to never ask. -.TP -.B convert\-meta (On) -If set to \fBOn\fP, readline will convert characters with the -eighth bit set to an ASCII key sequence -by stripping the eighth bit and prefixing it with an -escape character (in effect, using escape as the \fImeta prefix\fP). -.TP -.B disable\-completion (Off) -If set to \fBOn\fP, readline will inhibit word completion. Completion -characters will be inserted into the line as if they had been -mapped to \fBself-insert\fP. -.TP -.B editing\-mode (emacs) -Controls whether readline begins with a set of key bindings similar -to \fIEmacs\fP or \fIvi\fP. -.B editing\-mode -can be set to either -.B emacs -or -.BR vi . -.TP -.B echo\-control\-characters (On) -When set to \fBOn\fP, on operating systems that indicate they support it, -readline echoes a character corresponding to a signal generated from the -keyboard. -.TP -.B enable\-keypad (Off) -When set to \fBOn\fP, readline will try to enable the application -keypad when it is called. Some systems need this to enable the -arrow keys. -.TP -.B enable\-meta\-key (On) -When set to \fBOn\fP, readline will try to enable any meta modifier -key the terminal claims to support when it is called. On many terminals, -the meta key is used to send eight-bit characters. -.TP -.B expand\-tilde (Off) -If set to \fBOn\fP, tilde expansion is performed when readline -attempts word completion. -.TP -.B history\-preserve\-point (Off) -If set to \fBOn\fP, the history code attempts to place point at the -same location on each history line retrieved with \fBprevious-history\fP -or \fBnext-history\fP. -.TP -.B history\-size (0) -Set the maximum number of history entries saved in the history list. -If set to zero, any existing history entries are deleted and no new entries -are saved. -If set to a value less than zero, the number of history entries is not -limited. -By default, the number of history entries is not limited. -.TP -.B horizontal\-scroll\-mode (Off) -When set to \fBOn\fP, makes readline use a single line for display, -scrolling the input horizontally on a single screen line when it -becomes longer than the screen width rather than wrapping to a new line. -.TP -.B input\-meta (Off) -If set to \fBOn\fP, readline will enable eight-bit input (that is, -it will not clear the eighth bit in the characters it reads), -regardless of what the terminal claims it can support. The name -.B meta\-flag -is a synonym for this variable. -.TP -.B isearch\-terminators (``C\-[ C\-J'') -The string of characters that should terminate an incremental -search without subsequently executing the character as a command. -If this variable has not been given a value, the characters -\fIESC\fP and \fIC\-J\fP will terminate an incremental search. -.TP -.B keymap (emacs) -Set the current readline keymap. The set of legal keymap names is -\fIemacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, -vi-command\fP, and -.IR vi-insert . -\fIvi\fP is equivalent to \fIvi-command\fP; \fIemacs\fP is -equivalent to \fIemacs-standard\fP. The default value is -.IR emacs . -The value of -.B editing\-mode -also affects the default keymap. -.TP -.B keyseq\-timeout (500) -Specifies the duration \fIreadline\fP will wait for a character when reading an -ambiguous key sequence (one that can form a complete key sequence using -the input read so far, or can take additional input to complete a longer -key sequence). -If no input is received within the timeout, \fIreadline\fP will use the shorter -but complete key sequence. -The value is specified in milliseconds, so a value of 1000 means that -\fIreadline\fP will wait one second for additional input. -If this variable is set to a value less than or equal to zero, or to a -non-numeric value, \fIreadline\fP will wait until another key is pressed to -decide which key sequence to complete. -.TP -.B mark\-directories (On) -If set to \fBOn\fP, completed directory names have a slash -appended. -.TP -.B mark\-modified\-lines (Off) -If set to \fBOn\fP, history lines that have been modified are displayed -with a preceding asterisk (\fB*\fP). -.TP -.B mark\-symlinked\-directories (Off) -If set to \fBOn\fP, completed names which are symbolic links to directories -have a slash appended (subject to the value of -\fBmark\-directories\fP). -.TP -.B match\-hidden\-files (On) -This variable, when set to \fBOn\fP, causes readline to match files whose -names begin with a `.' (hidden files) when performing filename -completion. -If set to \fBOff\fP, the leading `.' must be -supplied by the user in the filename to be completed. -.TP -.B menu\-complete\-display\-prefix (Off) -If set to \fBOn\fP, menu completion displays the common prefix of the -list of possible completions (which may be empty) before cycling through -the list. -.TP -.B output\-meta (Off) -If set to \fBOn\fP, readline will display characters with the -eighth bit set directly rather than as a meta-prefixed escape -sequence. -.TP -.B page\-completions (On) -If set to \fBOn\fP, readline uses an internal \fImore\fP-like pager -to display a screenful of possible completions at a time. -.TP -.B print\-completions\-horizontally (Off) -If set to \fBOn\fP, readline will display completions with matches -sorted horizontally in alphabetical order, rather than down the screen. -.TP -.B revert\-all\-at\-newline (Off) -If set to \fBOn\fP, readline will undo all changes to history lines -before returning when \fBaccept\-line\fP is executed. By default, -history lines may be modified and retain individual undo lists across -calls to \fBreadline\fP. -.TP -.B show\-all\-if\-ambiguous (Off) -This alters the default behavior of the completion functions. If -set to -.BR On , -words which have more than one possible completion cause the -matches to be listed immediately instead of ringing the bell. -.TP -.B show\-all\-if\-unmodified (Off) -This alters the default behavior of the completion functions in -a fashion similar to \fBshow\-all\-if\-ambiguous\fP. -If set to -.BR On , -words which have more than one possible completion without any -possible partial completion (the possible completions don't share -a common prefix) cause the matches to be listed immediately instead -of ringing the bell. -.TP -.B show\-mode\-in\-prompt (Off) -If set to \fBOn\fP, add a character to the beginning of the prompt -indicating the editing mode: emacs (@), vi command (:) or vi -insertion (+). -.TP -.B skip\-completed\-text (Off) -If set to \fBOn\fP, this alters the default completion behavior when -inserting a single match into the line. It's only active when -performing completion in the middle of a word. If enabled, readline -does not insert characters from the completion that match characters -after point in the word being completed, so portions of the word -following the cursor are not duplicated. -.TP -.B visible\-stats (Off) -If set to \fBOn\fP, a character denoting a file's type as reported -by \fIstat\fP(2) is appended to the filename when listing possible -completions. -.PD -.SS Conditional Constructs -.PP -Readline implements a facility similar in spirit to the conditional -compilation features of the C preprocessor which allows key -bindings and variable settings to be performed as the result -of tests. There are four parser directives used. -.IP \fB$if\fP -The -.B $if -construct allows bindings to be made based on the -editing mode, the terminal being used, or the application using -readline. The text of the test extends to the end of the line; -no characters are required to isolate it. -.RS -.IP \fBmode\fP -The \fBmode=\fP form of the \fB$if\fP directive is used to test -whether readline is in emacs or vi mode. -This may be used in conjunction -with the \fBset keymap\fP command, for instance, to set bindings in -the \fIemacs-standard\fP and \fIemacs-ctlx\fP keymaps only if -readline is starting out in emacs mode. -.IP \fBterm\fP -The \fBterm=\fP form may be used to include terminal-specific -key bindings, perhaps to bind the key sequences output by the -terminal's function keys. The word on the right side of the -.B = -is tested against the full name of the terminal and the portion -of the terminal name before the first \fB\-\fP. This allows -.I sun -to match both -.I sun -and -.IR sun\-cmd , -for instance. -.IP \fBapplication\fP -The \fBapplication\fP construct is used to include -application-specific settings. Each program using the readline -library sets the \fIapplication name\fP, and an initialization -file can test for a particular value. -This could be used to bind key sequences to functions useful for -a specific program. For instance, the following command adds a -key sequence that quotes the current or previous word in \fBbash\fP: -.sp 1 -.RS -.nf -\fB$if\fP Bash -# Quote the current or previous word -"\eC-xq": "\eeb\e"\eef\e"" -\fB$endif\fP -.fi -.RE -.RE -.IP \fB$endif\fP -This command, as seen in the previous example, terminates an -\fB$if\fP command. -.IP \fB$else\fP -Commands in this branch of the \fB$if\fP directive are executed if -the test fails. -.IP \fB$include\fP -This directive takes a single filename as an argument and reads commands -and bindings from that file. For example, the following directive -would read \fI/etc/inputrc\fP: -.sp 1 -.RS -.nf -\fB$include\fP \^ \fI/etc/inputrc\fP -.fi -.RE -.SH SEARCHING -.PP -Readline provides commands for searching through the command history -for lines containing a specified string. -There are two search modes: -.I incremental -and -.IR non-incremental . -.PP -Incremental searches begin before the user has finished typing the -search string. -As each character of the search string is typed, readline displays -the next entry from the history matching the string typed so far. -An incremental search requires only as many characters as needed to -find the desired history entry. -To search backward in the history for a particular string, type -\fBC\-r\fP. Typing \fBC\-s\fP searches forward through the history. -The characters present in the value of the \fBisearch-terminators\fP -variable are used to terminate an incremental search. -If that variable has not been assigned a value the \fIEscape\fP and -\fBC\-J\fP characters will terminate an incremental search. -\fBC\-G\fP will abort an incremental search and restore the original -line. -When the search is terminated, the history entry containing the -search string becomes the current line. -.PP -To find other matching entries in the history list, type \fBC\-s\fP or -\fBC\-r\fP as appropriate. -This will search backward or forward in the history for the next -line matching the search string typed so far. -Any other key sequence bound to a readline command will terminate -the search and execute that command. -For instance, a newline will terminate the search and accept -the line, thereby executing the command from the history list. -A movement command will terminate the search, make the last line found -the current line, and begin editing. -.PP -Non-incremental searches read the entire search string before starting -to search for matching history lines. The search string may be -typed by the user or be part of the contents of the current line. -.SH EDITING COMMANDS -.PP -The following is a list of the names of the commands and the default -key sequences to which they are bound. -Command names without an accompanying key sequence are unbound by default. -.PP -In the following descriptions, \fIpoint\fP refers to the current cursor -position, and \fImark\fP refers to a cursor position saved by the -\fBset\-mark\fP command. -The text between the point and mark is referred to as the \fIregion\fP. -.SS Commands for Moving -.PP -.PD 0 -.TP -.B beginning\-of\-line (C\-a) -Move to the start of the current line. -.TP -.B end\-of\-line (C\-e) -Move to the end of the line. -.TP -.B forward\-char (C\-f) -Move forward a character. -.TP -.B backward\-char (C\-b) -Move back a character. -.TP -.B forward\-word (M\-f) -Move forward to the end of the next word. Words are composed of -alphanumeric characters (letters and digits). -.TP -.B backward\-word (M\-b) -Move back to the start of the current or previous word. Words are -composed of alphanumeric characters (letters and digits). -.TP -.B clear\-screen (C\-l) -Clear the screen leaving the current line at the top of the screen. -With an argument, refresh the current line without clearing the -screen. -.TP -.B redraw\-current\-line -Refresh the current line. -.PD -.SS Commands for Manipulating the History -.PP -.PD 0 -.TP -.B accept\-line (Newline, Return) -Accept the line regardless of where the cursor is. -If this line is -non-empty, it may be added to the history list for future recall with -\fBadd_history()\fP. -If the line is a modified history line, the history line is restored to its original state. -.TP -.B previous\-history (C\-p) -Fetch the previous command from the history list, moving back in -the list. -.TP -.B next\-history (C\-n) -Fetch the next command from the history list, moving forward in the -list. -.TP -.B beginning\-of\-history (M\-<) -Move to the first line in the history. -.TP -.B end\-of\-history (M\->) -Move to the end of the input history, i.e., the line currently being -entered. -.TP -.B reverse\-search\-history (C\-r) -Search backward starting at the current line and moving `up' through -the history as necessary. This is an incremental search. -.TP -.B forward\-search\-history (C\-s) -Search forward starting at the current line and moving `down' through -the history as necessary. This is an incremental search. -.TP -.B non\-incremental\-reverse\-search\-history (M\-p) -Search backward through the history starting at the current line -using a non-incremental search for a string supplied by the user. -.TP -.B non\-incremental\-forward\-search\-history (M\-n) -Search forward through the history using a non-incremental search -for a string supplied by the user. -.TP -.B history\-search\-backward -Search backward through the history for the string of characters -between the start of the current line and the current cursor -position (the \fIpoint\fP). -The search string must match at the beginning of a history line. -This is a non-incremental search. -.TP -.B history\-search\-forward -Search forward through the history for the string of characters -between the start of the current line and the point. -The search string must match at the beginning of a history line. -This is a non-incremental search. -.TP -.B history\-substring\-search\-backward -Search backward through the history for the string of characters -between the start of the current line and the current cursor -position (the \fIpoint\fP). -The search string may match anywhere in a history line. -This is a non-incremental search. -.TP -.B history\-substring\-search\-forward -Search forward through the history for the string of characters -between the start of the current line and the point. -The search string may match anywhere in a history line. -This is a non-incremental search. -.TP -.B yank\-nth\-arg (M\-C\-y) -Insert the first argument to the previous command (usually -the second word on the previous line) at point. -With an argument -.IR n , -insert the \fIn\fPth word from the previous command (the words -in the previous command begin with word 0). A negative argument -inserts the \fIn\fPth word from the end of the previous command. -Once the argument \fIn\fP is computed, the argument is extracted -as if the "!\fIn\fP" history expansion had been specified. -.TP -.B -yank\-last\-arg (M\-.\^, M\-_\^) -Insert the last argument to the previous command (the last word of -the previous history entry). -With a numeric argument, behave exactly like \fByank\-nth\-arg\fP. -Successive calls to \fByank\-last\-arg\fP move back through the history -list, inserting the last word (or the word specified by the argument to -the first call) of each line in turn. -Any numeric argument supplied to these successive calls determines -the direction to move through the history. A negative argument switches -the direction through the history (back or forward). -The history expansion facilities are used to extract the last argument, -as if the "!$" history expansion had been specified. -.PD -.SS Commands for Changing Text -.PP -.PD 0 -.TP -.B delete\-char (C\-d) -Delete the character at point. If point is at the -beginning of the line, there are no characters in the line, and -the last character typed was not bound to \fBdelete\-char\fP, then return -.SM -.BR EOF . -.TP -.B backward\-delete\-char (Rubout) -Delete the character behind the cursor. When given a numeric argument, -save the deleted text on the kill ring. -.TP -.B forward\-backward\-delete\-char -Delete the character under the cursor, unless the cursor is at the -end of the line, in which case the character behind the cursor is -deleted. -.TP -.B quoted\-insert (C\-q, C\-v) -Add the next character that you type to the line verbatim. This is -how to insert characters like \fBC\-q\fP, for example. -.TP -.B tab\-insert (M-TAB) -Insert a tab character. -.TP -.B self\-insert (a,\ b,\ A,\ 1,\ !,\ ...) -Insert the character typed. -.TP -.B transpose\-chars (C\-t) -Drag the character before point forward over the character at point, -moving point forward as well. -If point is at the end of the line, then this transposes -the two characters before point. -Negative arguments have no effect. -.TP -.B transpose\-words (M\-t) -Drag the word before point past the word after point, -moving point over that word as well. -If point is at the end of the line, this transposes -the last two words on the line. -.TP -.B upcase\-word (M\-u) -Uppercase the current (or following) word. With a negative argument, -uppercase the previous word, but do not move point. -.TP -.B downcase\-word (M\-l) -Lowercase the current (or following) word. With a negative argument, -lowercase the previous word, but do not move point. -.TP -.B capitalize\-word (M\-c) -Capitalize the current (or following) word. With a negative argument, -capitalize the previous word, but do not move point. -.TP -.B overwrite\-mode -Toggle overwrite mode. With an explicit positive numeric argument, -switches to overwrite mode. With an explicit non-positive numeric -argument, switches to insert mode. This command affects only -\fBemacs\fP mode; \fBvi\fP mode does overwrite differently. -Each call to \fIreadline()\fP starts in insert mode. -In overwrite mode, characters bound to \fBself\-insert\fP replace -the text at point rather than pushing the text to the right. -Characters bound to \fBbackward\-delete\-char\fP replace the character -before point with a space. By default, this command is unbound. -.PD -.SS Killing and Yanking -.PP -.PD 0 -.TP -.B kill\-line (C\-k) -Kill the text from point to the end of the line. -.TP -.B backward\-kill\-line (C\-x Rubout) -Kill backward to the beginning of the line. -.TP -.B unix\-line\-discard (C\-u) -Kill backward from point to the beginning of the line. -The killed text is saved on the kill-ring. -.\" There is no real difference between this and backward-kill-line -.TP -.B kill\-whole\-line -Kill all characters on the current line, no matter where point is. -.TP -.B kill\-word (M\-d) -Kill from point the end of the current word, or if between -words, to the end of the next word. Word boundaries are the same as -those used by \fBforward\-word\fP. -.TP -.B backward\-kill\-word (M\-Rubout) -Kill the word behind point. -Word boundaries are the same as those used by \fBbackward\-word\fP. -.TP -.B unix\-word\-rubout (C\-w) -Kill the word behind point, using white space as a word boundary. -The killed text is saved on the kill-ring. -.TP -.B unix\-filename\-rubout -Kill the word behind point, using white space and the slash character -as the word boundaries. -The killed text is saved on the kill-ring. -.TP -.B delete\-horizontal\-space (M\-\e) -Delete all spaces and tabs around point. -.TP -.B kill\-region -Kill the text between the point and \fImark\fP (saved cursor position). -This text is referred to as the \fIregion\fP. -.TP -.B copy\-region\-as\-kill -Copy the text in the region to the kill buffer. -.TP -.B copy\-backward\-word -Copy the word before point to the kill buffer. -The word boundaries are the same as \fBbackward\-word\fP. -.TP -.B copy\-forward\-word -Copy the word following point to the kill buffer. -The word boundaries are the same as \fBforward\-word\fP. -.TP -.B yank (C\-y) -Yank the top of the kill ring into the buffer at point. -.TP -.B yank\-pop (M\-y) -Rotate the kill ring, and yank the new top. Only works following -.B yank -or -.BR yank\-pop . -.PD -.SS Numeric Arguments -.PP -.PD 0 -.TP -.B digit\-argument (M\-0, M\-1, ..., M\-\-) -Add this digit to the argument already accumulating, or start a new -argument. M\-\- starts a negative argument. -.TP -.B universal\-argument -This is another way to specify an argument. -If this command is followed by one or more digits, optionally with a -leading minus sign, those digits define the argument. -If the command is followed by digits, executing -.B universal\-argument -again ends the numeric argument, but is otherwise ignored. -As a special case, if this command is immediately followed by a -character that is neither a digit or minus sign, the argument count -for the next command is multiplied by four. -The argument count is initially one, so executing this function the -first time makes the argument count four, a second time makes the -argument count sixteen, and so on. -.PD -.SS Completing -.PP -.PD 0 -.TP -.B complete (TAB) -Attempt to perform completion on the text before point. -The actual completion performed is application-specific. -.BR Bash , -for instance, attempts completion treating the text as a variable -(if the text begins with \fB$\fP), username (if the text begins with -\fB~\fP), hostname (if the text begins with \fB@\fP), or -command (including aliases and functions) in turn. If none -of these produces a match, filename completion is attempted. -.BR Gdb , -on the other hand, -allows completion of program functions and variables, and -only attempts filename completion under certain circumstances. -.TP -.B possible\-completions (M\-?) -List the possible completions of the text before point. -When displaying completions, readline sets the number of columns used -for display to the value of \fBcompletion-display-width\fP, the value of -the environment variable -.SM -.BR COLUMNS , -or the screen width, in that order. -.TP -.B insert\-completions (M\-*) -Insert all completions of the text before point -that would have been generated by -\fBpossible\-completions\fP. -.TP -.B menu\-complete -Similar to \fBcomplete\fP, but replaces the word to be completed -with a single match from the list of possible completions. -Repeated execution of \fBmenu\-complete\fP steps through the list -of possible completions, inserting each match in turn. -At the end of the list of completions, the bell is rung -(subject to the setting of \fBbell\-style\fP) -and the original text is restored. -An argument of \fIn\fP moves \fIn\fP positions forward in the list -of matches; a negative argument may be used to move backward -through the list. -This command is intended to be bound to \fBTAB\fP, but is unbound -by default. -.TP -.B menu\-complete\-backward -Identical to \fBmenu\-complete\fP, but moves backward through the list -of possible completions, as if \fBmenu\-complete\fP had been given a -negative argument. This command is unbound by default. -.TP -.B delete\-char\-or\-list -Deletes the character under the cursor if not at the beginning or -end of the line (like \fBdelete-char\fP). -If at the end of the line, behaves identically to -\fBpossible-completions\fP. -.PD -.SS Keyboard Macros -.PP -.PD 0 -.TP -.B start\-kbd\-macro (C\-x (\^) -Begin saving the characters typed into the current keyboard macro. -.TP -.B end\-kbd\-macro (C\-x )\^) -Stop saving the characters typed into the current keyboard macro -and store the definition. -.TP -.B call\-last\-kbd\-macro (C\-x e) -Re-execute the last keyboard macro defined, by making the characters -in the macro appear as if typed at the keyboard. -.B print\-last\-kbd\-macro () -Print the last keyboard macro defined in a format suitable for the -\fIinputrc\fP file. -.PD -.SS Miscellaneous -.PP -.PD 0 -.TP -.B re\-read\-init\-file (C\-x C\-r) -Read in the contents of the \fIinputrc\fP file, and incorporate -any bindings or variable assignments found there. -.TP -.B abort (C\-g) -Abort the current editing command and -ring the terminal's bell (subject to the setting of -.BR bell\-style ). -.TP -.B do\-uppercase\-version (M\-a, M\-b, M\-\fIx\fP, ...) -If the metafied character \fIx\fP is lowercase, run the command -that is bound to the corresponding uppercase character. -.TP -.B prefix\-meta (ESC) -Metafy the next character typed. -.SM -.B ESC -.B f -is equivalent to -.BR Meta\-f . -.TP -.B undo (C\-_, C\-x C\-u) -Incremental undo, separately remembered for each line. -.TP -.B revert\-line (M\-r) -Undo all changes made to this line. This is like executing the -.B undo -command enough times to return the line to its initial state. -.TP -.B tilde\-expand (M\-&) -Perform tilde expansion on the current word. -.TP -.B set\-mark (C\-@, M\-) -Set the mark to the point. If a -numeric argument is supplied, the mark is set to that position. -.TP -.B exchange\-point\-and\-mark (C\-x C\-x) -Swap the point with the mark. The current cursor position is set to -the saved position, and the old cursor position is saved as the mark. -.TP -.B character\-search (C\-]) -A character is read and point is moved to the next occurrence of that -character. A negative count searches for previous occurrences. -.TP -.B character\-search\-backward (M\-C\-]) -A character is read and point is moved to the previous occurrence of that -character. A negative count searches for subsequent occurrences. -.TP -.B skip\-csi\-sequence -Read enough characters to consume a multi-key sequence such as those -defined for keys like Home and End. Such sequences begin with a -Control Sequence Indicator (CSI), usually ESC\-[. If this sequence is -bound to "\e[", keys producing such sequences will have no effect -unless explicitly bound to a readline command, instead of inserting -stray characters into the editing buffer. This is unbound by default, -but usually bound to ESC\-[. -.TP -.B insert\-comment (M\-#) -Without a numeric argument, the value of the readline -.B comment\-begin -variable is inserted at the beginning of the current line. -If a numeric argument is supplied, this command acts as a toggle: if -the characters at the beginning of the line do not match the value -of \fBcomment\-begin\fP, the value is inserted, otherwise -the characters in \fBcomment-begin\fP are deleted from the beginning of -the line. -In either case, the line is accepted as if a newline had been typed. -The default value of -.B comment\-begin -makes the current line a shell comment. -If a numeric argument causes the comment character to be removed, the line -will be executed by the shell. -.TP -.B dump\-functions -Print all of the functions and their key bindings to the -readline output stream. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an \fIinputrc\fP file. -.TP -.B dump\-variables -Print all of the settable variables and their values to the -readline output stream. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an \fIinputrc\fP file. -.TP -.B dump\-macros -Print all of the readline key sequences bound to macros and the -strings they output. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an \fIinputrc\fP file. -.TP -.B emacs\-editing\-mode (C\-e) -When in -.B vi -command mode, this causes a switch to -.B emacs -editing mode. -.TP -.B vi\-editing\-mode (M\-C\-j) -When in -.B emacs -editing mode, this causes a switch to -.B vi -editing mode. -.PD -.SH DEFAULT KEY BINDINGS -.LP -The following is a list of the default emacs and vi bindings. -Characters with the eighth bit set are written as M\-, and -are referred to as -.I metafied -characters. -The printable ASCII characters not mentioned in the list of emacs -standard bindings are bound to the -.B self\-insert -function, which just inserts the given character into the input line. -In vi insertion mode, all characters not specifically mentioned are -bound to -.BR self\-insert . -Characters assigned to signal generation by -.IR stty (1) -or the terminal driver, such as C-Z or C-C, -retain that function. -Upper and lower case metafied characters are bound to the same function in -the emacs mode meta keymap. -The remaining characters are unbound, which causes readline -to ring the bell (subject to the setting of the -.B bell\-style -variable). -.SS Emacs Mode -.RS +.6i -.nf -.ta 2.5i -.sp -Emacs Standard bindings -.sp -"C-@" set-mark -"C-A" beginning-of-line -"C-B" backward-char -"C-D" delete-char -"C-E" end-of-line -"C-F" forward-char -"C-G" abort -"C-H" backward-delete-char -"C-I" complete -"C-J" accept-line -"C-K" kill-line -"C-L" clear-screen -"C-M" accept-line -"C-N" next-history -"C-P" previous-history -"C-Q" quoted-insert -"C-R" reverse-search-history -"C-S" forward-search-history -"C-T" transpose-chars -"C-U" unix-line-discard -"C-V" quoted-insert -"C-W" unix-word-rubout -"C-Y" yank -"C-]" character-search -"C-_" undo -"\^ " to "/" self-insert -"0" to "9" self-insert -":" to "~" self-insert -"C-?" backward-delete-char -.PP -Emacs Meta bindings -.sp -"M-C-G" abort -"M-C-H" backward-kill-word -"M-C-I" tab-insert -"M-C-J" vi-editing-mode -"M-C-M" vi-editing-mode -"M-C-R" revert-line -"M-C-Y" yank-nth-arg -"M-C-[" complete -"M-C-]" character-search-backward -"M-space" set-mark -"M-#" insert-comment -"M-&" tilde-expand -"M-*" insert-completions -"M--" digit-argument -"M-." yank-last-arg -"M-0" digit-argument -"M-1" digit-argument -"M-2" digit-argument -"M-3" digit-argument -"M-4" digit-argument -"M-5" digit-argument -"M-6" digit-argument -"M-7" digit-argument -"M-8" digit-argument -"M-9" digit-argument -"M-<" beginning-of-history -"M-=" possible-completions -"M->" end-of-history -"M-?" possible-completions -"M-B" backward-word -"M-C" capitalize-word -"M-D" kill-word -"M-F" forward-word -"M-L" downcase-word -"M-N" non-incremental-forward-search-history -"M-P" non-incremental-reverse-search-history -"M-R" revert-line -"M-T" transpose-words -"M-U" upcase-word -"M-Y" yank-pop -"M-\e" delete-horizontal-space -"M-~" tilde-expand -"M-C-?" backward-kill-word -"M-_" yank-last-arg -.PP -Emacs Control-X bindings -.sp -"C-XC-G" abort -"C-XC-R" re-read-init-file -"C-XC-U" undo -"C-XC-X" exchange-point-and-mark -"C-X(" start-kbd-macro -"C-X)" end-kbd-macro -"C-XE" call-last-kbd-macro -"C-XC-?" backward-kill-line -.sp -.RE -.SS VI Mode bindings -.RS +.6i -.nf -.ta 2.5i -.sp -.PP -VI Insert Mode functions -.sp -"C-D" vi-eof-maybe -"C-H" backward-delete-char -"C-I" complete -"C-J" accept-line -"C-M" accept-line -"C-R" reverse-search-history -"C-S" forward-search-history -"C-T" transpose-chars -"C-U" unix-line-discard -"C-V" quoted-insert -"C-W" unix-word-rubout -"C-Y" yank -"C-[" vi-movement-mode -"C-_" undo -"\^ " to "~" self-insert -"C-?" backward-delete-char -.PP -VI Command Mode functions -.sp -"C-D" vi-eof-maybe -"C-E" emacs-editing-mode -"C-G" abort -"C-H" backward-char -"C-J" accept-line -"C-K" kill-line -"C-L" clear-screen -"C-M" accept-line -"C-N" next-history -"C-P" previous-history -"C-Q" quoted-insert -"C-R" reverse-search-history -"C-S" forward-search-history -"C-T" transpose-chars -"C-U" unix-line-discard -"C-V" quoted-insert -"C-W" unix-word-rubout -"C-Y" yank -"C-_" vi-undo -"\^ " forward-char -"#" insert-comment -"$" end-of-line -"%" vi-match -"&" vi-tilde-expand -"*" vi-complete -"+" next-history -"," vi-char-search -"-" previous-history -"." vi-redo -"/" vi-search -"0" beginning-of-line -"1" to "9" vi-arg-digit -";" vi-char-search -"=" vi-complete -"?" vi-search -"A" vi-append-eol -"B" vi-prev-word -"C" vi-change-to -"D" vi-delete-to -"E" vi-end-word -"F" vi-char-search -"G" vi-fetch-history -"I" vi-insert-beg -"N" vi-search-again -"P" vi-put -"R" vi-replace -"S" vi-subst -"T" vi-char-search -"U" revert-line -"W" vi-next-word -"X" backward-delete-char -"Y" vi-yank-to -"\e" vi-complete -"^" vi-first-print -"_" vi-yank-arg -"`" vi-goto-mark -"a" vi-append-mode -"b" vi-prev-word -"c" vi-change-to -"d" vi-delete-to -"e" vi-end-word -"f" vi-char-search -"h" backward-char -"i" vi-insertion-mode -"j" next-history -"k" prev-history -"l" forward-char -"m" vi-set-mark -"n" vi-search-again -"p" vi-put -"r" vi-change-char -"s" vi-subst -"t" vi-char-search -"u" vi-undo -"w" vi-next-word -"x" vi-delete -"y" vi-yank-to -"|" vi-column -"~" vi-change-case -.RE -.SH "SEE ALSO" -.PD 0 -.TP -\fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey -.TP -\fIThe Gnu History Library\fP, Brian Fox and Chet Ramey -.TP -\fIbash\fP(1) -.PD -.SH FILES -.PD 0 -.TP -.FN ~/.inputrc -Individual \fBreadline\fP initialization file -.PD -.SH AUTHORS -Brian Fox, Free Software Foundation -.br -bfox@gnu.org -.PP -Chet Ramey, Case Western Reserve University -.br -chet@ins.CWRU.Edu -.SH BUG REPORTS -If you find a bug in -.B readline, -you should report it. But first, you should -make sure that it really is a bug, and that it appears in the latest -version of the -.B readline -library that you have. -.PP -Once you have determined that a bug actually exists, mail a -bug report to \fIbug\-readline\fP@\fIgnu.org\fP. -If you have a fix, you are welcome to mail that -as well! Suggestions and `philosophical' bug reports may be mailed -to \fPbug-readline\fP@\fIgnu.org\fP or posted to the Usenet -newsgroup -.BR gnu.bash.bug . -.PP -Comments and bug reports concerning -this manual page should be directed to -.IR chet@ins.CWRU.Edu . -.SH BUGS -.PP -It's too big and too slow. diff --git a/lib/readline/doc/readline.dvi b/lib/readline/doc/readline.dvi deleted file mode 100644 index 93ea5107c..000000000 Binary files a/lib/readline/doc/readline.dvi and /dev/null differ diff --git a/lib/readline/doc/readline.html b/lib/readline/doc/readline.html deleted file mode 100644 index 9a0b14870..000000000 --- a/lib/readline/doc/readline.html +++ /dev/null @@ -1,7007 +0,0 @@ - - - - - -GNU Readline Library: - - - - - - - - - - - - - - - - - -
[Top][Contents][Index][ ? ]
-

GNU Readline Library

- -This document describes the GNU Readline Library, a utility which aids -in the consistency of user interface across discrete programs which -provide a command line interface. -

- -

- - - - - -
1. Command Line Editing  GNU Readline User's Manual.
2. Programming with GNU Readline  GNU Readline Programmer's Manual.
A. GNU Free Documentation License  License for copying this manual.
Concept Index  Index of concepts described in this manual.
Function and Variable Index  Index of externally visible functions - and variables.
-

- -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
- -

1. Command Line Editing

- -

- -This chapter describes the basic features of the GNU -command line editing interface. -

- -

- - - - - -
1.1 Introduction to Line Editing  Notation used in this text.
1.2 Readline Interaction  The minimum set of commands for editing a line.
1.3 Readline Init File  Customizing Readline from a user's view.
1.4 Bindable Readline Commands  A description of most of the Readline commands - available for binding
1.5 Readline vi Mode  A short description of how to make Readline - behave like the vi editor.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.1 Introduction to Line Editing

- -

- -The following paragraphs describe the notation used to represent -keystrokes. -

- -The text C-k is read as `Control-K' and describes the character -produced when the k key is pressed while the Control key -is depressed. -

- -The text M-k is read as `Meta-K' and describes the character -produced when the Meta key (if you have one) is depressed, and the k -key is pressed. -The Meta key is labeled ALT on many keyboards. -On keyboards with two keys labeled ALT (usually to either side of -the space bar), the ALT on the left side is generally set to -work as a Meta key. -The ALT key on the right may also be configured to work as a -Meta key or may be configured as some other modifier, such as a -Compose key for typing accented characters. -

- -If you do not have a Meta or ALT key, or another key working as -a Meta key, the identical keystroke can be generated by typing ESC -first, and then typing k. -Either process is known as metafying the k key. -

- -The text M-C-k is read as `Meta-Control-k' and describes the -character produced by metafying C-k. -

- -In addition, several keys have their own names. Specifically, -DEL, ESC, LFD, SPC, RET, and TAB all -stand for themselves when seen in this text, or in an init file -(see section 1.3 Readline Init File). -If your keyboard lacks a LFD key, typing C-j will -produce the desired character. -The RET key may be labeled Return or Enter on -some keyboards. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2 Readline Interaction

- -

- -Often during an interactive session you type in a long line of text, -only to notice that the first word on the line is misspelled. The -Readline library gives you a set of commands for manipulating the text -as you type it in, allowing you to just fix your typo, and not forcing -you to retype the majority of the line. Using these editing commands, -you move the cursor to the place that needs correction, and delete or -insert the text of the corrections. Then, when you are satisfied with -the line, you simply press RET. You do not have to be at the -end of the line to press RET; the entire line is accepted -regardless of the location of the cursor within the line. -

- -

- - - - - -
1.2.1 Readline Bare Essentials  The least you need to know about Readline.
1.2.2 Readline Movement Commands  Moving about the input line.
1.2.3 Readline Killing Commands  How to delete text, and how to get it back!
1.2.4 Readline Arguments  Giving numeric arguments to commands.
1.2.5 Searching for Commands in the History  Searching through previous lines.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2.1 Readline Bare Essentials

- -

- -In order to enter characters into the line, simply type them. The typed -character appears where the cursor was, and then the cursor moves one -space to the right. If you mistype a character, you can use your -erase character to back up and delete the mistyped character. -

- -Sometimes you may mistype a character, and -not notice the error until you have typed several other characters. In -that case, you can type C-b to move the cursor to the left, and then -correct your mistake. Afterwards, you can move the cursor to the right -with C-f. -

- -When you add text in the middle of a line, you will notice that characters -to the right of the cursor are `pushed over' to make room for the text -that you have inserted. Likewise, when you delete text behind the cursor, -characters to the right of the cursor are `pulled back' to fill in the -blank space created by the removal of the text. A list of the bare -essentials for editing the text of an input line follows. -

- -

-
C-b -
Move back one character. -
C-f -
Move forward one character. -
DEL or Backspace -
Delete the character to the left of the cursor. -
C-d -
Delete the character underneath the cursor. -
Printing characters -
Insert the character into the line at the cursor. -
C-_ or C-x C-u -
Undo the last editing command. You can undo all the way back to an -empty line. -
-

- -(Depending on your configuration, the Backspace key be set to -delete the character to the left of the cursor and the DEL key set -to delete the character underneath the cursor, like C-d, rather -than the character to the left of the cursor.) -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2.2 Readline Movement Commands

- -

- -The above table describes the most basic keystrokes that you need -in order to do editing of the input line. For your convenience, many -other commands have been added in addition to C-b, C-f, -C-d, and DEL. Here are some commands for moving more rapidly -about the line. -

- -

-
C-a -
Move to the start of the line. -
C-e -
Move to the end of the line. -
M-f -
Move forward a word, where a word is composed of letters and digits. -
M-b -
Move backward a word. -
C-l -
Clear the screen, reprinting the current line at the top. -
-

- -Notice how C-f moves forward a character, while M-f moves -forward a word. It is a loose convention that control keystrokes -operate on characters while meta keystrokes operate on words. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2.3 Readline Killing Commands

- -

- - - -

- -Killing text means to delete the text from the line, but to save -it away for later use, usually by yanking (re-inserting) -it back into the line. -(`Cut' and `paste' are more recent jargon for `kill' and `yank'.) -

- -If the description for a command says that it `kills' text, then you can -be sure that you can get the text back in a different (or the same) -place later. -

- -When you use a kill command, the text is saved in a kill-ring. -Any number of consecutive kills save all of the killed text together, so -that when you yank it back, you get it all. The kill -ring is not line specific; the text that you killed on a previously -typed line is available to be yanked back later, when you are typing -another line. - -

- -Here is the list of commands for killing text. -

- -

-
C-k -
Kill the text from the current cursor position to the end of the line. -

- -

M-d -
Kill from the cursor to the end of the current word, or, if between -words, to the end of the next word. -Word boundaries are the same as those used by M-f. -

- -

M-DEL -
Kill from the cursor the start of the current word, or, if between -words, to the start of the previous word. -Word boundaries are the same as those used by M-b. -

- -

C-w -
Kill from the cursor to the previous whitespace. This is different than -M-DEL because the word boundaries differ. -

- -

-

- -Here is how to yank the text back into the line. Yanking -means to copy the most-recently-killed text from the kill buffer. -

- -

-
C-y -
Yank the most recently killed text back into the buffer at the cursor. -

- -

M-y -
Rotate the kill-ring, and yank the new top. You can only do this if -the prior command is C-y or M-y. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2.4 Readline Arguments

- -

- -You can pass numeric arguments to Readline commands. Sometimes the -argument acts as a repeat count, other times it is the sign of the -argument that is significant. If you pass a negative argument to a -command which normally acts in a forward direction, that command will -act in a backward direction. For example, to kill text back to the -start of the line, you might type `M-- C-k'. -

- -The general way to pass numeric arguments to a command is to type meta -digits before the command. If the first `digit' typed is a minus -sign (`-'), then the sign of the argument will be negative. Once -you have typed one meta digit to get the argument started, you can type -the remainder of the digits, and then the command. For example, to give -the C-d command an argument of 10, you could type `M-1 0 C-d', -which will delete the next ten characters on the input line. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2.5 Searching for Commands in the History

- -

- -Readline provides commands for searching through the command history -for lines containing a specified string. -There are two search modes: incremental and non-incremental. -

- -Incremental searches begin before the user has finished typing the -search string. -As each character of the search string is typed, Readline displays -the next entry from the history matching the string typed so far. -An incremental search requires only as many characters as needed to -find the desired history entry. -To search backward in the history for a particular string, type -C-r. Typing C-s searches forward through the history. -The characters present in the value of the isearch-terminators variable -are used to terminate an incremental search. -If that variable has not been assigned a value, the ESC and -C-J characters will terminate an incremental search. -C-g will abort an incremental search and restore the original line. -When the search is terminated, the history entry containing the -search string becomes the current line. -

- -To find other matching entries in the history list, type C-r or -C-s as appropriate. -This will search backward or forward in the history for the next -entry matching the search string typed so far. -Any other key sequence bound to a Readline command will terminate -the search and execute that command. -For instance, a RET will terminate the search and accept -the line, thereby executing the command from the history list. -A movement command will terminate the search, make the last line found -the current line, and begin editing. -

- -Readline remembers the last incremental search string. If two -C-rs are typed without any intervening characters defining a new -search string, any remembered search string is used. -

- -Non-incremental searches read the entire search string before starting -to search for matching history lines. The search string may be -typed by the user or be part of the contents of the current line. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.3 Readline Init File

- -

- -Although the Readline library comes with a set of Emacs-like -keybindings installed by default, it is possible to use a different set -of keybindings. -Any user can customize programs that use Readline by putting -commands in an inputrc file, conventionally in his home directory. -The name of this -file is taken from the value of the environment variable INPUTRC. If -that variable is unset, the default is `~/.inputrc'. If that -file does not exist or cannot be read, the ultimate default is -`/etc/inputrc'. -

- -When a program which uses the Readline library starts up, the -init file is read, and the key bindings are set. -

- -In addition, the C-x C-r command re-reads this init file, thus -incorporating any changes that you might have made to it. -

- -

- -
1.3.1 Readline Init File Syntax  Syntax for the commands in the inputrc file.
- -
- - -
1.3.2 Conditional Init Constructs  Conditional key bindings in the inputrc file.
- -
- - -
1.3.3 Sample Init File  An example inputrc file.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.3.1 Readline Init File Syntax

- -

- -There are only a few basic constructs allowed in the -Readline init file. Blank lines are ignored. -Lines beginning with a `#' are comments. -Lines beginning with a `$' indicate conditional -constructs (see section 1.3.2 Conditional Init Constructs). Other lines -denote variable settings and key bindings. -

- -

-
Variable Settings -
You can modify the run-time behavior of Readline by -altering the values of variables in Readline -using the set command within the init file. -The syntax is simple: -

- -
 
set variable value
-

- -Here, for example, is how to -change from the default Emacs-like key binding to use -vi line editing commands: -

- -
 
set editing-mode vi
-

- -Variable names and values, where appropriate, are recognized without regard -to case. Unrecognized variable names are ignored. -

- -Boolean variables (those that can be set to on or off) are set to on if -the value is null or empty, on (case-insensitive), or 1. Any other -value results in the variable being set to off. -

- -A great deal of run-time behavior is changeable with the following -variables. -

- - -

- -
bell-style -
-Controls what happens when Readline wants to ring the terminal bell. -If set to `none', Readline never rings the bell. If set to -`visible', Readline uses a visible bell if one is available. -If set to `audible' (the default), Readline attempts to ring -the terminal's bell. -

- -

bind-tty-special-chars -
-If set to `on', Readline attempts to bind the control characters -treated specially by the kernel's terminal driver to their Readline -equivalents. -

- -

comment-begin -
-The string to insert at the beginning of the line when the -insert-comment command is executed. The default value -is "#". -

- -

completion-display-width -
-The number of screen columns used to display possible matches -when performing completion. -The value is ignored if it is less than 0 or greater than the terminal -screen width. -A value of 0 will cause matches to be displayed one per line. -The default value is -1. -

- -

completion-ignore-case -
-If set to `on', Readline performs filename matching and completion -in a case-insensitive fashion. -The default value is `off'. -

- -

completion-map-case -
-If set to `on', and completion-ignore-case is enabled, Readline -treats hyphens (`-') and underscores (`_') as equivalent when -performing case-insensitive filename matching and completion. -

- -

completion-prefix-display-length -
-The length in characters of the common prefix of a list of possible -completions that is displayed without modification. When set to a -value greater than zero, common prefixes longer than this value are -replaced with an ellipsis when displaying possible completions. -

- -

completion-query-items -
-The number of possible completions that determines when the user is -asked whether the list of possibilities should be displayed. -If the number of possible completions is greater than this value, -Readline will ask the user whether or not he wishes to view -them; otherwise, they are simply listed. -This variable must be set to an integer value greater than or equal to 0. -A negative value means Readline should never ask. -The default limit is 100. -

- -

convert-meta -
-If set to `on', Readline will convert characters with the -eighth bit set to an ASCII key sequence by stripping the eighth -bit and prefixing an ESC character, converting them to a -meta-prefixed key sequence. The default value is `on'. -

- -

disable-completion -
-If set to `On', Readline will inhibit word completion. -Completion characters will be inserted into the line as if they had -been mapped to self-insert. The default is `off'. -

- -

editing-mode -
-The editing-mode variable controls which default set of -key bindings is used. By default, Readline starts up in Emacs editing -mode, where the keystrokes are most similar to Emacs. This variable can be -set to either `emacs' or `vi'. -

- -

echo-control-characters -
When set to `on', on operating systems that indicate they support it, -readline echoes a character corresponding to a signal generated from the -keyboard. The default is `on'. -

- -

enable-keypad -
-When set to `on', Readline will try to enable the application -keypad when it is called. Some systems need this to enable the -arrow keys. The default is `off'. -

- -

enable-meta-key -
When set to `on', Readline will try to enable any meta modifier -key the terminal claims to support when it is called. On many terminals, -the meta key is used to send eight-bit characters. -The default is `on'. -

- -

expand-tilde -
-If set to `on', tilde expansion is performed when Readline -attempts word completion. The default is `off'. -

- -

history-preserve-point -
-If set to `on', the history code attempts to place the point (the -current cursor position) at the -same location on each history line retrieved with previous-history -or next-history. The default is `off'. -

- -

history-size -
-Set the maximum number of history entries saved in the history list. If -set to zero, the number of entries in the history list is not limited. -

- -

horizontal-scroll-mode -
-This variable can be set to either `on' or `off'. Setting it -to `on' means that the text of the lines being edited will scroll -horizontally on a single screen line when they are longer than the width -of the screen, instead of wrapping onto a new screen line. By default, -this variable is set to `off'. -

- -

input-meta -
- -If set to `on', Readline will enable eight-bit input (it -will not clear the eighth bit in the characters it reads), -regardless of what the terminal claims it can support. The -default value is `off'. The name meta-flag is a -synonym for this variable. -

- -

isearch-terminators -
-The string of characters that should terminate an incremental search without -subsequently executing the character as a command (see section 1.2.5 Searching for Commands in the History). -If this variable has not been given a value, the characters ESC and -C-J will terminate an incremental search. -

- -

keymap -
-Sets Readline's idea of the current keymap for key binding commands. -Acceptable keymap names are -emacs, -emacs-standard, -emacs-meta, -emacs-ctlx, -vi, -vi-move, -vi-command, and -vi-insert. -vi is equivalent to vi-command; emacs is -equivalent to emacs-standard. The default value is emacs. -The value of the editing-mode variable also affects the -default keymap. -

- -

mark-directories -
If set to `on', completed directory names have a slash -appended. The default is `on'. -

- -

mark-modified-lines -
-This variable, when set to `on', causes Readline to display an -asterisk (`*') at the start of history lines which have been modified. -This variable is `off' by default. -

- -

mark-symlinked-directories -
-If set to `on', completed names which are symbolic links -to directories have a slash appended (subject to the value of -mark-directories). -The default is `off'. -

- -

match-hidden-files -
-This variable, when set to `on', causes Readline to match files whose -names begin with a `.' (hidden files) when performing filename -completion. -If set to `off', the leading `.' must be -supplied by the user in the filename to be completed. -This variable is `on' by default. -

- -

menu-complete-display-prefix -
-If set to `on', menu completion displays the common prefix of the -list of possible completions (which may be empty) before cycling through -the list. The default is `off'. -

- -

output-meta -
-If set to `on', Readline will display characters with the -eighth bit set directly rather than as a meta-prefixed escape -sequence. The default is `off'. -

- -

page-completions -
-If set to `on', Readline uses an internal more-like pager -to display a screenful of possible completions at a time. -This variable is `on' by default. -

- -

print-completions-horizontally -
If set to `on', Readline will display completions with matches -sorted horizontally in alphabetical order, rather than down the screen. -The default is `off'. -

- -

revert-all-at-newline -
-If set to `on', Readline will undo all changes to history lines -before returning when accept-line is executed. By default, -history lines may be modified and retain individual undo lists across -calls to readline. The default is `off'. -

- -

show-all-if-ambiguous -
-This alters the default behavior of the completion functions. If -set to `on', -words which have more than one possible completion cause the -matches to be listed immediately instead of ringing the bell. -The default value is `off'. -

- -

show-all-if-unmodified -
-This alters the default behavior of the completion functions in -a fashion similar to show-all-if-ambiguous. -If set to `on', -words which have more than one possible completion without any -possible partial completion (the possible completions don't share -a common prefix) cause the matches to be listed immediately instead -of ringing the bell. -The default value is `off'. -

- -

skip-completed-text -
-If set to `on', this alters the default completion behavior when -inserting a single match into the line. It's only active when -performing completion in the middle of a word. If enabled, readline -does not insert characters from the completion that match characters -after point in the word being completed, so portions of the word -following the cursor are not duplicated. -For instance, if this is enabled, attempting completion when the cursor -is after the `e' in `Makefile' will result in `Makefile' -rather than `Makefilefile', assuming there is a single possible -completion. -The default value is `off'. -

- -

visible-stats -
-If set to `on', a character denoting a file's type -is appended to the filename when listing possible -completions. The default is `off'. -

- -

-

- -

Key Bindings -
The syntax for controlling key bindings in the init file is -simple. First you need to find the name of the command that you -want to change. The following sections contain tables of the command -name, the default keybinding, if any, and a short description of what -the command does. -

- -Once you know the name of the command, simply place on a line -in the init file the name of the key -you wish to bind the command to, a colon, and then the name of the -command. -There can be no space between the key name and the colon -- that will be -interpreted as part of the key name. -The name of the key can be expressed in different ways, depending on -what you find most comfortable. -

- -In addition to command names, readline allows keys to be bound -to a string that is inserted when the key is pressed (a macro). -

- -

-
keyname: function-name or macro -
keyname is the name of a key spelled out in English. For example: -
 
Control-u: universal-argument
-Meta-Rubout: backward-kill-word
-Control-o: "> output"
-

- -In the above example, C-u is bound to the function -universal-argument, -M-DEL is bound to the function backward-kill-word, and -C-o is bound to run the macro -expressed on the right hand side (that is, to insert the text -`> output' into the line). -

- -A number of symbolic character names are recognized while -processing this key binding syntax: -DEL, -ESC, -ESCAPE, -LFD, -NEWLINE, -RET, -RETURN, -RUBOUT, -SPACE, -SPC, -and -TAB. -

- -

"keyseq": function-name or macro -
keyseq differs from keyname above in that strings -denoting an entire key sequence can be specified, by placing -the key sequence in double quotes. Some GNU Emacs style key -escapes can be used, as in the following example, but the -special character names are not recognized. -

- -
 
"\C-u": universal-argument
-"\C-x\C-r": re-read-init-file
-"\e[11~": "Function Key 1"
-

- -In the above example, C-u is again bound to the function -universal-argument (just as it was in the first example), -`C-x C-r' is bound to the function re-read-init-file, -and `ESC [ 1 1 ~' is bound to insert -the text `Function Key 1'. -

- -

-

- -The following GNU Emacs style escape sequences are available when -specifying key sequences: -

- -

-
\C- -
control prefix -
\M- -
meta prefix -
\e -
an escape character -
\\ -
backslash -
\" -
", a double quotation mark -
\' -
', a single quote or apostrophe -
-

- -In addition to the GNU Emacs style escape sequences, a second -set of backslash escapes is available: -

- -

-
\a -
alert (bell) -
\b -
backspace -
\d -
delete -
\f -
form feed -
\n -
newline -
\r -
carriage return -
\t -
horizontal tab -
\v -
vertical tab -
\nnn -
the eight-bit character whose value is the octal value nnn -(one to three digits) -
\xHH -
the eight-bit character whose value is the hexadecimal value HH -(one or two hex digits) -
-

- -When entering the text of a macro, single or double quotes must -be used to indicate a macro definition. -Unquoted text is assumed to be a function name. -In the macro body, the backslash escapes described above are expanded. -Backslash will quote any other character in the macro text, -including `"' and `''. -For example, the following binding will make `C-x \' -insert a single `\' into the line: -
 
"\C-x\\": "\\"
-

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.3.2 Conditional Init Constructs

- -

- -Readline implements a facility similar in spirit to the conditional -compilation features of the C preprocessor which allows key -bindings and variable settings to be performed as the result -of tests. There are four parser directives used. -

- -

-
$if -
The $if construct allows bindings to be made based on the -editing mode, the terminal being used, or the application using -Readline. The text of the test extends to the end of the line; -no characters are required to isolate it. -

- -

-
mode -
The mode= form of the $if directive is used to test -whether Readline is in emacs or vi mode. -This may be used in conjunction -with the `set keymap' command, for instance, to set bindings in -the emacs-standard and emacs-ctlx keymaps only if -Readline is starting out in emacs mode. -

- -

term -
The term= form may be used to include terminal-specific -key bindings, perhaps to bind the key sequences output by the -terminal's function keys. The word on the right side of the -`=' is tested against both the full name of the terminal and -the portion of the terminal name before the first `-'. This -allows sun to match both sun and sun-cmd, -for instance. -

- -

application -
The application construct is used to include -application-specific settings. Each program using the Readline -library sets the application name, and you can test for -a particular value. -This could be used to bind key sequences to functions useful for -a specific program. For instance, the following command adds a -key sequence that quotes the current or previous word in Bash: -
 
$if Bash
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-$endif
-
-

- -

$endif -
This command, as seen in the previous example, terminates an -$if command. -

- -

$else -
Commands in this branch of the $if directive are executed if -the test fails. -

- -

$include -
This directive takes a single filename as an argument and reads commands -and bindings from that file. -For example, the following directive reads from `/etc/inputrc': -
 
$include /etc/inputrc
-
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.3.3 Sample Init File

- -

- -Here is an example of an inputrc file. This illustrates key -binding, variable assignment, and conditional syntax. -

- -
 
# This file controls the behaviour of line input editing for
-# programs that use the GNU Readline library.  Existing
-# programs include FTP, Bash, and GDB.
-#
-# You can re-read the inputrc file with C-x C-r.
-# Lines beginning with '#' are comments.
-#
-# First, include any systemwide bindings and variable
-# assignments from /etc/Inputrc
-$include /etc/Inputrc
-
-#
-# Set various bindings for emacs mode.
-
-set editing-mode emacs 
-
-$if mode=emacs
-
-Meta-Control-h:	backward-kill-word	Text after the function name is ignored
-
-#
-# Arrow keys in keypad mode
-#
-#"\M-OD":        backward-char
-#"\M-OC":        forward-char
-#"\M-OA":        previous-history
-#"\M-OB":        next-history
-#
-# Arrow keys in ANSI mode
-#
-"\M-[D":        backward-char
-"\M-[C":        forward-char
-"\M-[A":        previous-history
-"\M-[B":        next-history
-#
-# Arrow keys in 8 bit keypad mode
-#
-#"\M-\C-OD":       backward-char
-#"\M-\C-OC":       forward-char
-#"\M-\C-OA":       previous-history
-#"\M-\C-OB":       next-history
-#
-# Arrow keys in 8 bit ANSI mode
-#
-#"\M-\C-[D":       backward-char
-#"\M-\C-[C":       forward-char
-#"\M-\C-[A":       previous-history
-#"\M-\C-[B":       next-history
-
-C-q: quoted-insert
-
-$endif
-
-# An old-style binding.  This happens to be the default.
-TAB: complete
-
-# Macros that are convenient for shell interaction
-$if Bash
-# edit the path
-"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
-# prepare to type a quoted word --
-# insert open and close double quotes
-# and move to just after the open quote
-"\C-x\"": "\"\"\C-b"
-# insert a backslash (testing backslash escapes
-# in sequences and macros)
-"\C-x\\": "\\"
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-# Add a binding to refresh the line, which is unbound
-"\C-xr": redraw-current-line
-# Edit variable on current line.
-"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
-$endif
-
-# use a visible bell if one is available
-set bell-style visible
-
-# don't strip characters to 7 bits when reading
-set input-meta on
-
-# allow iso-latin1 characters to be inserted rather
-# than converted to prefix-meta sequences
-set convert-meta off
-
-# display characters with the eighth bit set directly
-# rather than as meta-prefixed characters
-set output-meta on
-
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
-set completion-query-items 150
-
-# For FTP
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4 Bindable Readline Commands

- -

- -

- - - - - - - - -
1.4.1 Commands For Moving  Moving about the line.
1.4.2 Commands For Manipulating The History  Getting at previous lines.
1.4.3 Commands For Changing Text  Commands for changing text.
1.4.4 Killing And Yanking  Commands for killing and yanking.
1.4.5 Specifying Numeric Arguments  Specifying numeric arguments, repeat counts.
1.4.6 Letting Readline Type For You  Getting Readline to do the typing for you.
1.4.7 Keyboard Macros  Saving and re-executing typed characters
1.4.8 Some Miscellaneous Commands  Other miscellaneous commands.
-

- -This section describes Readline commands that may be bound to key -sequences. -Command names without an accompanying key sequence are unbound by default. -

- -In the following descriptions, point refers to the current cursor -position, and mark refers to a cursor position saved by the -set-mark command. -The text between the point and mark is referred to as the region. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.1 Commands For Moving

- -
- -
beginning-of-line (C-a) -
-Move to the start of the current line. -

- - -

end-of-line (C-e) -
-Move to the end of the line. -

- - -

forward-char (C-f) -
-Move forward a character. -

- - -

backward-char (C-b) -
-Move back a character. -

- - -

forward-word (M-f) -
-Move forward to the end of the next word. -Words are composed of letters and digits. -

- - -

backward-word (M-b) -
-Move back to the start of the current or previous word. -Words are composed of letters and digits. -

- - -

clear-screen (C-l) -
-Clear the screen and redraw the current line, -leaving the current line at the top of the screen. -

- - -

redraw-current-line () -
-Refresh the current line. By default, this is unbound. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.2 Commands For Manipulating The History

- -

- -

- -
accept-line (Newline or Return) -
-Accept the line regardless of where the cursor is. -If this line is -non-empty, it may be added to the history list for future recall with -add_history(). -If this line is a modified history line, the history line is restored -to its original state. -

- - -

previous-history (C-p) -
-Move `back' through the history list, fetching the previous command. -

- - -

next-history (C-n) -
-Move `forward' through the history list, fetching the next command. -

- - -

beginning-of-history (M-<) -
-Move to the first line in the history. -

- - -

end-of-history (M->) -
-Move to the end of the input history, i.e., the line currently -being entered. -

- - -

reverse-search-history (C-r) -
-Search backward starting at the current line and moving `up' through -the history as necessary. This is an incremental search. -

- - -

forward-search-history (C-s) -
-Search forward starting at the current line and moving `down' through -the the history as necessary. This is an incremental search. -

- - -

non-incremental-reverse-search-history (M-p) -
-Search backward starting at the current line and moving `up' -through the history as necessary using a non-incremental search -for a string supplied by the user. -

- - -

non-incremental-forward-search-history (M-n) -
-Search forward starting at the current line and moving `down' -through the the history as necessary using a non-incremental search -for a string supplied by the user. -

- - -

history-search-forward () -
-Search forward through the history for the string of characters -between the start of the current line and the point. -This is a non-incremental search. -By default, this command is unbound. -

- - -

history-search-backward () -
-Search backward through the history for the string of characters -between the start of the current line and the point. This -is a non-incremental search. By default, this command is unbound. -

- - -

yank-nth-arg (M-C-y) -
-Insert the first argument to the previous command (usually -the second word on the previous line) at point. -With an argument n, -insert the nth word from the previous command (the words -in the previous command begin with word 0). A negative argument -inserts the nth word from the end of the previous command. -Once the argument n is computed, the argument is extracted -as if the `!n' history expansion had been specified. -

- - -

yank-last-arg (M-. or M-_) -
-Insert last argument to the previous command (the last word of the -previous history entry). -With a numeric argument, behave exactly like yank-nth-arg. -Successive calls to yank-last-arg move back through the history -list, inserting the last word (or the word specified by the argument to -the first call) of each line in turn. -Any numeric argument supplied to these successive calls determines -the direction to move through the history. A negative argument switches -the direction through the history (back or forward). -The history expansion facilities are used to extract the last argument, -as if the `!$' history expansion had been specified. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.3 Commands For Changing Text

- -

- -

- -
delete-char (C-d) -
-Delete the character at point. If point is at the -beginning of the line, there are no characters in the line, and -the last character typed was not bound to delete-char, then -return EOF. -

- - -

backward-delete-char (Rubout) -
-Delete the character behind the cursor. A numeric argument means -to kill the characters instead of deleting them. -

- - -

forward-backward-delete-char () -
-Delete the character under the cursor, unless the cursor is at the -end of the line, in which case the character behind the cursor is -deleted. By default, this is not bound to a key. -

- - -

quoted-insert (C-q or C-v) -
-Add the next character typed to the line verbatim. This is -how to insert key sequences like C-q, for example. -

- - -

tab-insert (M-TAB) -
-Insert a tab character. -

- - -

self-insert (a, b, A, 1, !, ...) -
-Insert yourself. -

- - -

transpose-chars (C-t) -
-Drag the character before the cursor forward over -the character at the cursor, moving the -cursor forward as well. If the insertion point -is at the end of the line, then this -transposes the last two characters of the line. -Negative arguments have no effect. -

- - -

transpose-words (M-t) -
-Drag the word before point past the word after point, -moving point past that word as well. -If the insertion point is at the end of the line, this transposes -the last two words on the line. -

- - -

upcase-word (M-u) -
-Uppercase the current (or following) word. With a negative argument, -uppercase the previous word, but do not move the cursor. -

- - -

downcase-word (M-l) -
-Lowercase the current (or following) word. With a negative argument, -lowercase the previous word, but do not move the cursor. -

- - -

capitalize-word (M-c) -
-Capitalize the current (or following) word. With a negative argument, -capitalize the previous word, but do not move the cursor. -

- - -

overwrite-mode () -
-Toggle overwrite mode. With an explicit positive numeric argument, -switches to overwrite mode. With an explicit non-positive numeric -argument, switches to insert mode. This command affects only -emacs mode; vi mode does overwrite differently. -Each call to readline() starts in insert mode. -

- -In overwrite mode, characters bound to self-insert replace -the text at point rather than pushing the text to the right. -Characters bound to backward-delete-char replace the character -before point with a space. -

- -By default, this command is unbound. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.4 Killing And Yanking

- -

- -

- - -
kill-line (C-k) -
-Kill the text from point to the end of the line. -

- - -

backward-kill-line (C-x Rubout) -
-Kill backward to the beginning of the line. -

- - -

unix-line-discard (C-u) -
-Kill backward from the cursor to the beginning of the current line. -

- - -

kill-whole-line () -
-Kill all characters on the current line, no matter where point is. -By default, this is unbound. -

- - -

kill-word (M-d) -
-Kill from point to the end of the current word, or if between -words, to the end of the next word. -Word boundaries are the same as forward-word. -

- - -

backward-kill-word (M-DEL) -
-Kill the word behind point. -Word boundaries are the same as backward-word. -

- - -

unix-word-rubout (C-w) -
-Kill the word behind point, using white space as a word boundary. -The killed text is saved on the kill-ring. -

- - -

unix-filename-rubout () -
-Kill the word behind point, using white space and the slash character -as the word boundaries. -The killed text is saved on the kill-ring. -

- - -

delete-horizontal-space () -
-Delete all spaces and tabs around point. By default, this is unbound. -

- - -

kill-region () -
-Kill the text in the current region. -By default, this command is unbound. -

- - -

copy-region-as-kill () -
-Copy the text in the region to the kill buffer, so it can be yanked -right away. By default, this command is unbound. -

- - -

copy-backward-word () -
-Copy the word before point to the kill buffer. -The word boundaries are the same as backward-word. -By default, this command is unbound. -

- - -

copy-forward-word () -
-Copy the word following point to the kill buffer. -The word boundaries are the same as forward-word. -By default, this command is unbound. -

- - -

yank (C-y) -
-Yank the top of the kill ring into the buffer at point. -

- - -

yank-pop (M-y) -
-Rotate the kill-ring, and yank the new top. You can only do this if -the prior command is yank or yank-pop. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.5 Specifying Numeric Arguments

- -
- - -
digit-argument (M-0, M-1, ... M--) -
-Add this digit to the argument already accumulating, or start a new -argument. M-- starts a negative argument. -

- - -

universal-argument () -
-This is another way to specify an argument. -If this command is followed by one or more digits, optionally with a -leading minus sign, those digits define the argument. -If the command is followed by digits, executing universal-argument -again ends the numeric argument, but is otherwise ignored. -As a special case, if this command is immediately followed by a -character that is neither a digit or minus sign, the argument count -for the next command is multiplied by four. -The argument count is initially one, so executing this function the -first time makes the argument count four, a second time makes the -argument count sixteen, and so on. -By default, this is not bound to a key. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.6 Letting Readline Type For You

- -

- -

- -
complete (TAB) -
-Attempt to perform completion on the text before point. -The actual completion performed is application-specific. -The default is filename completion. -

- - -

possible-completions (M-?) -
-List the possible completions of the text before point. -When displaying completions, Readline sets the number of columns used -for display to the value of completion-display-width, the value of -the environment variable COLUMNS, or the screen width, in that order. -

- - -

insert-completions (M-*) -
-Insert all completions of the text before point that would have -been generated by possible-completions. -

- - -

menu-complete () -
-Similar to complete, but replaces the word to be completed -with a single match from the list of possible completions. -Repeated execution of menu-complete steps through the list -of possible completions, inserting each match in turn. -At the end of the list of completions, the bell is rung -(subject to the setting of bell-style) -and the original text is restored. -An argument of n moves n positions forward in the list -of matches; a negative argument may be used to move backward -through the list. -This command is intended to be bound to TAB, but is unbound -by default. -

- - -

menu-complete-backward () -
-Identical to menu-complete, but moves backward through the list -of possible completions, as if menu-complete had been given a -negative argument. -

- - -

delete-char-or-list () -
-Deletes the character under the cursor if not at the beginning or -end of the line (like delete-char). -If at the end of the line, behaves identically to -possible-completions. -This command is unbound by default. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.7 Keyboard Macros

- -
- - -
start-kbd-macro (C-x () -
-Begin saving the characters typed into the current keyboard macro. -

- - -

end-kbd-macro (C-x )) -
-Stop saving the characters typed into the current keyboard macro -and save the definition. -

- - -

call-last-kbd-macro (C-x e) -
-Re-execute the last keyboard macro defined, by making the characters -in the macro appear as if typed at the keyboard. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.8 Some Miscellaneous Commands

- -
- - -
re-read-init-file (C-x C-r) -
-Read in the contents of the inputrc file, and incorporate -any bindings or variable assignments found there. -

- - -

abort (C-g) -
-Abort the current editing command and -ring the terminal's bell (subject to the setting of -bell-style). -

- - -

do-uppercase-version (M-a, M-b, M-x, ...) -
-If the metafied character x is lowercase, run the command -that is bound to the corresponding uppercase character. -

- - -

prefix-meta (ESC) -
-Metafy the next character typed. This is for keyboards -without a meta key. Typing `ESC f' is equivalent to typing -M-f. -

- - -

undo (C-_ or C-x C-u) -
-Incremental undo, separately remembered for each line. -

- - -

revert-line (M-r) -
-Undo all changes made to this line. This is like executing the undo -command enough times to get back to the beginning. -

- - -

tilde-expand (M-~) -
-Perform tilde expansion on the current word. -

- - -

set-mark (C-@) -
-Set the mark to the point. If a -numeric argument is supplied, the mark is set to that position. -

- - -

exchange-point-and-mark (C-x C-x) -
-Swap the point with the mark. The current cursor position is set to -the saved position, and the old cursor position is saved as the mark. -

- - -

character-search (C-]) -
-A character is read and point is moved to the next occurrence of that -character. A negative count searches for previous occurrences. -

- - -

character-search-backward (M-C-]) -
-A character is read and point is moved to the previous occurrence -of that character. A negative count searches for subsequent -occurrences. -

- - -

skip-csi-sequence () -
-Read enough characters to consume a multi-key sequence such as those -defined for keys like Home and End. Such sequences begin with a -Control Sequence Indicator (CSI), usually ESC-[. If this sequence is -bound to "\e[", keys producing such sequences will have no effect -unless explicitly bound to a readline command, instead of inserting -stray characters into the editing buffer. This is unbound by default, -but usually bound to ESC-[. -

- - -

insert-comment (M-#) -
-Without a numeric argument, the value of the comment-begin -variable is inserted at the beginning of the current line. -If a numeric argument is supplied, this command acts as a toggle: if -the characters at the beginning of the line do not match the value -of comment-begin, the value is inserted, otherwise -the characters in comment-begin are deleted from the beginning of -the line. -In either case, the line is accepted as if a newline had been typed. -

- - -

dump-functions () -
-Print all of the functions and their key bindings to the -Readline output stream. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an inputrc file. This command is unbound by default. -

- - -

dump-variables () -
-Print all of the settable variables and their values to the -Readline output stream. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an inputrc file. This command is unbound by default. -

- - -

dump-macros () -
-Print all of the Readline key sequences bound to macros and the -strings they output. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an inputrc file. This command is unbound by default. -

- - -

emacs-editing-mode (C-e) -
-When in vi command mode, this causes a switch to emacs -editing mode. -

- - -

vi-editing-mode (M-C-j) -
-When in emacs editing mode, this causes a switch to vi -editing mode. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.5 Readline vi Mode

- -

- -While the Readline library does not have a full set of vi -editing functions, it does contain enough to allow simple editing -of the line. The Readline vi mode behaves as specified in -the POSIX standard. -

- -In order to switch interactively between emacs and vi -editing modes, use the command M-C-j (bound to emacs-editing-mode -when in vi mode and to vi-editing-mode in emacs mode). -The Readline default is emacs mode. -

- -When you enter a line in vi mode, you are already placed in -`insertion' mode, as if you had typed an `i'. Pressing ESC -switches you into `command' mode, where you can edit the text of the -line with the standard vi movement keys, move to previous -history lines with `k' and subsequent lines with `j', and -so forth. -

- -This document describes the GNU Readline Library, a utility for aiding -in the consistency of user interface across discrete programs that need -to provide a command line interface. -

- -Copyright (C) 1988--2011 Free Software Foundation, Inc. -

- -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -pare preserved on all copies. -

- -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. -

- -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Foundation. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2. Programming with GNU Readline

- -

- -This chapter describes the interface between the GNU Readline Library and -other programs. If you are a programmer, and you wish to include the -features found in GNU Readline -such as completion, line editing, and interactive history manipulation -in your own programs, this section is for you. -

- -

- - - - - - -
2.1 Basic Behavior  Using the default behavior of Readline.
2.2 Custom Functions  Adding your own functions to Readline.
2.3 Readline Variables  Variables accessible to custom - functions.
2.4 Readline Convenience Functions  Functions which Readline supplies to - aid in writing your own custom - functions.
2.5 Readline Signal Handling  How Readline behaves when it receives signals.
2.6 Custom Completers  Supplanting or supplementing Readline's - completion functions.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.1 Basic Behavior

- -

- -Many programs provide a command line interface, such as mail, -ftp, and sh. For such programs, the default behaviour of -Readline is sufficient. This section describes how to use Readline in -the simplest way possible, perhaps to replace calls in your code to -gets() or fgets(). -

- - - -

- -The function readline() prints a prompt prompt -and then reads and returns a single line of text from the user. -If prompt is NULL or the empty string, no prompt is displayed. -The line readline returns is allocated with malloc(); -the caller should free() the line when it has finished with it. -The declaration for readline in ANSI C is -

- -
 
char *readline (const char *prompt);
-

- -So, one might say -
 
char *line = readline ("Enter a line: ");
-
in order to read a line of text from the user. -The line returned has the final newline removed, so only the -text remains. -

- -If readline encounters an EOF while reading the line, and the -line is empty at that point, then (char *)NULL is returned. -Otherwise, the line is ended just as if a newline had been typed. -

- -If you want the user to be able to get at the line later, (with -C-p for example), you must call add_history() to save the -line away in a history list of such lines. -

- -
 
add_history (line);
-

- -For full details on the GNU History Library, see the associated manual. -

- -It is preferable to avoid saving empty lines on the history list, since -users rarely have a burning need to reuse a blank line. Here is -a function which usefully replaces the standard gets() library -function, and has the advantage of no static buffer to overflow: -

- -
 
/* A static variable for holding the line. */
-static char *line_read = (char *)NULL;
-
-/* Read a string, and return a pointer to it.
-   Returns NULL on EOF. */
-char *
-rl_gets ()
-{
-  /* If the buffer has already been allocated,
-     return the memory to the free pool. */
-  if (line_read)
-    {
-      free (line_read);
-      line_read = (char *)NULL;
-    }
-
-  /* Get a line from the user. */
-  line_read = readline ("");
-
-  /* If the line has any text in it,
-     save it on the history. */
-  if (line_read && *line_read)
-    add_history (line_read);
-
-  return (line_read);
-}
-

- -This function gives the user the default behaviour of TAB -completion: completion on file names. If you do not want Readline to -complete on filenames, you can change the binding of the TAB key -with rl_bind_key(). -

- -
 
int rl_bind_key (int key, rl_command_func_t *function);
-

- -rl_bind_key() takes two arguments: key is the character that -you want to bind, and function is the address of the function to -call when key is pressed. Binding TAB to rl_insert() -makes TAB insert itself. -rl_bind_key() returns non-zero if key is not a valid -ASCII character code (between 0 and 255). -

- -Thus, to disable the default TAB behavior, the following suffices: -
 
rl_bind_key ('\t', rl_insert);
-

- -This code should be executed once at the start of your program; you -might write a function called initialize_readline() which -performs this and other desired initializations, such as installing -custom completers (see section 2.6 Custom Completers). -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.2 Custom Functions

- -

- -Readline provides many functions for manipulating the text of -the line, but it isn't possible to anticipate the needs of all -programs. This section describes the various functions and variables -defined within the Readline library which allow a user program to add -customized functionality to Readline. -

- -Before declaring any functions that customize Readline's behavior, or -using any functionality Readline provides in other code, an -application writer should include the file <readline/readline.h> -in any file that uses Readline's features. Since some of the definitions -in readline.h use the stdio library, the file -<stdio.h> should be included before readline.h. -

- -readline.h defines a C preprocessor variable that should -be treated as an integer, RL_READLINE_VERSION, which may -be used to conditionally compile application code depending on -the installed Readline version. The value is a hexadecimal -encoding of the major and minor version numbers of the library, -of the form 0xMMmm. MM is the two-digit major -version number; mm is the two-digit minor version number. -For Readline 4.2, for example, the value of -RL_READLINE_VERSION would be 0x0402. -

- -

- - -
2.2.1 Readline Typedefs  C declarations to make code readable.
2.2.2 Writing a New Function  Variables and calling conventions.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.2.1 Readline Typedefs

- -

- -For readabilty, we declare a number of new object types, all pointers -to functions. -

- -The reason for declaring these new types is to make it easier to write -code describing pointers to C functions with appropriately prototyped -arguments and return values. -

- -For instance, say we want to declare a variable func as a pointer -to a function which takes two int arguments and returns an -int (this is the type of all of the Readline bindable functions). -Instead of the classic C declaration -

- -int (*func)(); -

- -or the ANSI-C style declaration -

- -int (*func)(int, int); -

- -we may write -

- -rl_command_func_t *func; -

- -The full list of function pointer types available is -

- -

-
typedef int rl_command_func_t (int, int); -

- -

typedef char *rl_compentry_func_t (const char *, int); -

- -

typedef char **rl_completion_func_t (const char *, int, int); -

- -

typedef char *rl_quote_func_t (char *, int, char *); -

- -

typedef char *rl_dequote_func_t (char *, int); -

- -

typedef int rl_compignore_func_t (char **); -

- -

typedef void rl_compdisp_func_t (char **, int, int); -

- -

typedef int rl_hook_func_t (void); -

- -

typedef int rl_getc_func_t (FILE *); -

- -

typedef int rl_linebuf_func_t (char *, int); -

- -

typedef int rl_intfunc_t (int); -
#define rl_ivoidfunc_t rl_hook_func_t -
typedef int rl_icpfunc_t (char *); -
typedef int rl_icppfunc_t (char **); -

- -

typedef void rl_voidfunc_t (void); -
typedef void rl_vintfunc_t (int); -
typedef void rl_vcpfunc_t (char *); -
typedef void rl_vcppfunc_t (char **); -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.2.2 Writing a New Function

- -

- -In order to write new functions for Readline, you need to know the -calling conventions for keyboard-invoked functions, and the names of the -variables that describe the current state of the line read so far. -

- -The calling sequence for a command foo looks like -

- -
 
int foo (int count, int key)
-

- -where count is the numeric argument (or 1 if defaulted) and -key is the key that invoked this function. -

- -It is completely up to the function as to what should be done with the -numeric argument. Some functions use it as a repeat count, some -as a flag, and others to choose alternate behavior (refreshing the current -line as opposed to refreshing the screen, for example). Some choose to -ignore it. In general, if a -function uses the numeric argument as a repeat count, it should be able -to do something useful with both negative and positive arguments. -At the very least, it should be aware that it can be passed a -negative argument. -

- -A command function should return 0 if its action completes successfully, -and a non-zero value if some error occurs. -This is the convention obeyed by all of the builtin Readline bindable -command functions. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.3 Readline Variables

- -

- -These variables are available to function writers. -

- - -

-
Variable: char * rl_line_buffer -
This is the line gathered so far. You are welcome to modify the -contents of the line, but see 2.4.5 Allowing Undoing. The -function rl_extend_line_buffer is available to increase -the memory allocated to rl_line_buffer. -
-

- - -

-
Variable: int rl_point -
The offset of the current cursor position in rl_line_buffer -(the point). -
-

- - -

-
Variable: int rl_end -
The number of characters present in rl_line_buffer. When -rl_point is at the end of the line, rl_point and -rl_end are equal. -
-

- - -

-
Variable: int rl_mark -
The mark (saved position) in the current line. If set, the mark -and point define a region. -
-

- - -

-
Variable: int rl_done -
Setting this to a non-zero value causes Readline to return the current -line immediately. -
-

- - -

-
Variable: int rl_num_chars_to_read -
Setting this to a positive value before calling readline() causes -Readline to return after accepting that many characters, rather -than reading up to a character bound to accept-line. -
-

- - -

-
Variable: int rl_pending_input -
Setting this to a value makes it the next keystroke read. This is a -way to stuff a single character into the input stream. -
-

- - -

-
Variable: int rl_dispatching -
Set to a non-zero value if a function is being called from a key binding; -zero otherwise. Application functions can test this to discover whether -they were called directly or by Readline's dispatching mechanism. -
-

- - -

-
Variable: int rl_erase_empty_line -
Setting this to a non-zero value causes Readline to completely erase -the current line, including any prompt, any time a newline is typed as -the only character on an otherwise-empty line. The cursor is moved to -the beginning of the newly-blank line. -
-

- - -

-
Variable: char * rl_prompt -
The prompt Readline uses. This is set from the argument to -readline(), and should not be assigned to directly. -The rl_set_prompt() function (see section 2.4.6 Redisplay) may -be used to modify the prompt string after calling readline(). -
-

- - -

-
Variable: char * rl_display_prompt -
The string displayed as the prompt. This is usually identical to -rl_prompt, but may be changed temporarily by functions that -use the prompt string as a message area, such as incremental search. -
-

- - -

-
Variable: int rl_already_prompted -
If an application wishes to display the prompt itself, rather than have -Readline do it the first time readline() is called, it should set -this variable to a non-zero value after displaying the prompt. -The prompt must also be passed as the argument to readline() so -the redisplay functions can update the display properly. -The calling application is responsible for managing the value; Readline -never sets it. -
-

- - -

-
Variable: const char * rl_library_version -
The version number of this revision of the library. -
-

- - -

-
Variable: int rl_readline_version -
An integer encoding the current version of the library. The encoding is -of the form 0xMMmm, where MM is the two-digit major version -number, and mm is the two-digit minor version number. -For example, for Readline-4.2, rl_readline_version would have the -value 0x0402. -
-

- - -

-
Variable: int rl_gnu_readline_p -
Always set to 1, denoting that this is GNU readline rather than some -emulation. -
-

- - -

-
Variable: const char * rl_terminal_name -
The terminal type, used for initialization. If not set by the application, -Readline sets this to the value of the TERM environment variable -the first time it is called. -
-

- - -

-
Variable: const char * rl_readline_name -
This variable is set to a unique name by each application using Readline. -The value allows conditional parsing of the inputrc file -(see section 1.3.2 Conditional Init Constructs). -
-

- - -

-
Variable: FILE * rl_instream -
The stdio stream from which Readline reads input. -If NULL, Readline defaults to stdin. -
-

- - -

-
Variable: FILE * rl_outstream -
The stdio stream to which Readline performs output. -If NULL, Readline defaults to stdout. -
-

- - -

-
Variable: int rl_prefer_env_winsize -
If non-zero, Readline gives values found in the LINES and -COLUMNS environment variables greater precedence than values fetched -from the kernel when computing the screen dimensions. -
-

- - -

-
Variable: rl_command_func_t * rl_last_func -
The address of the last command function Readline executed. May be used to -test whether or not a function is being executed twice in succession, for -example. -
-

- - -

-
Variable: rl_hook_func_t * rl_startup_hook -
If non-zero, this is the address of a function to call just -before readline prints the first prompt. -
-

- - -

-
Variable: rl_hook_func_t * rl_pre_input_hook -
If non-zero, this is the address of a function to call after -the first prompt has been printed and just before readline -starts reading input characters. -
-

- - -

-
Variable: rl_hook_func_t * rl_event_hook -
If non-zero, this is the address of a function to call periodically -when Readline is waiting for terminal input. -By default, this will be called at most ten times a second if there -is no keyboard input. -
-

- - -

-
Variable: rl_getc_func_t * rl_getc_function -
If non-zero, Readline will call indirectly through this pointer -to get a character from the input stream. By default, it is set to -rl_getc, the default Readline character input function -(see section 2.4.8 Character Input). -
-

- - -

-
Variable: rl_voidfunc_t * rl_redisplay_function -
If non-zero, Readline will call indirectly through this pointer -to update the display with the current contents of the editing buffer. -By default, it is set to rl_redisplay, the default Readline -redisplay function (see section 2.4.6 Redisplay). -
-

- - -

-
Variable: rl_vintfunc_t * rl_prep_term_function -
If non-zero, Readline will call indirectly through this pointer -to initialize the terminal. The function takes a single argument, an -int flag that says whether or not to use eight-bit characters. -By default, this is set to rl_prep_terminal -(see section 2.4.9 Terminal Management). -
-

- - -

-
Variable: rl_voidfunc_t * rl_deprep_term_function -
If non-zero, Readline will call indirectly through this pointer -to reset the terminal. This function should undo the effects of -rl_prep_term_function. -By default, this is set to rl_deprep_terminal -(see section 2.4.9 Terminal Management). -
-

- - -

-
Variable: Keymap rl_executing_keymap -
This variable is set to the keymap (see section 2.4.2 Selecting a Keymap) in which the -currently executing readline function was found. -
-

- - -

-
Variable: Keymap rl_binding_keymap -
This variable is set to the keymap (see section 2.4.2 Selecting a Keymap) in which the -last key binding occurred. -
-

- - -

-
Variable: char * rl_executing_macro -
This variable is set to the text of any currently-executing macro. -
-

- - -

-
Variable: int rl_readline_state -
A variable with bit values that encapsulate the current Readline state. -A bit is set with the RL_SETSTATE macro, and unset with the -RL_UNSETSTATE macro. Use the RL_ISSTATE macro to test -whether a particular state bit is set. Current state bits include: -

- -

-
RL_STATE_NONE -
Readline has not yet been called, nor has it begun to intialize. -
RL_STATE_INITIALIZING -
Readline is initializing its internal data structures. -
RL_STATE_INITIALIZED -
Readline has completed its initialization. -
RL_STATE_TERMPREPPED -
Readline has modified the terminal modes to do its own input and redisplay. -
RL_STATE_READCMD -
Readline is reading a command from the keyboard. -
RL_STATE_METANEXT -
Readline is reading more input after reading the meta-prefix character. -
RL_STATE_DISPATCHING -
Readline is dispatching to a command. -
RL_STATE_MOREINPUT -
Readline is reading more input while executing an editing command. -
RL_STATE_ISEARCH -
Readline is performing an incremental history search. -
RL_STATE_NSEARCH -
Readline is performing a non-incremental history search. -
RL_STATE_SEARCH -
Readline is searching backward or forward through the history for a string. -
RL_STATE_NUMERICARG -
Readline is reading a numeric argument. -
RL_STATE_MACROINPUT -
Readline is currently getting its input from a previously-defined keyboard -macro. -
RL_STATE_MACRODEF -
Readline is currently reading characters defining a keyboard macro. -
RL_STATE_OVERWRITE -
Readline is in overwrite mode. -
RL_STATE_COMPLETING -
Readline is performing word completion. -
RL_STATE_SIGHANDLER -
Readline is currently executing the readline signal handler. -
RL_STATE_UNDOING -
Readline is performing an undo. -
RL_STATE_INPUTPENDING -
Readline has input pending due to a call to rl_execute_next(). -
RL_STATE_TTYCSAVED -
Readline has saved the values of the terminal's special characters. -
RL_STATE_CALLBACK -
Readline is currently using the alternate (callback) interface -(see section 2.4.12 Alternate Interface). -
RL_STATE_VIMOTION -
Readline is reading the argument to a vi-mode "motion" command. -
RL_STATE_MULTIKEY -
Readline is reading a multiple-keystroke command. -
RL_STATE_VICMDONCE -
Readline has entered vi command (movement) mode at least one time during -the current call to readline(). -
RL_STATE_DONE -
Readline has read a key sequence bound to accept-line -and is about to return the line to the caller. -
-

- -

-

- - -

-
Variable: int rl_explicit_arg -
Set to a non-zero value if an explicit numeric argument was specified by -the user. Only valid in a bindable command function. -
-

- - -

-
Variable: int rl_numeric_arg -
Set to the value of any numeric argument explicitly specified by the user -before executing the current Readline function. Only valid in a bindable -command function. -
-

- - -

-
Variable: int rl_editing_mode -
Set to a value denoting Readline's current editing mode. A value of -1 means Readline is currently in emacs mode; 0 -means that vi mode is active. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4 Readline Convenience Functions

- -

- -

- - - - - - - - - - - - - -
2.4.1 Naming a Function  How to give a function you write a name.
2.4.2 Selecting a Keymap  Making keymaps.
2.4.3 Binding Keys  Changing Keymaps.
2.4.4 Associating Function Names and Bindings  Translate function names to - key sequences.
2.4.5 Allowing Undoing  How to make your functions undoable.
2.4.6 Redisplay  Functions to control line display.
2.4.7 Modifying Text  Functions to modify rl_line_buffer.
2.4.8 Character Input  Functions to read keyboard input.
2.4.9 Terminal Management  Functions to manage terminal settings.
2.4.10 Utility Functions  Generally useful functions and hooks.
2.4.11 Miscellaneous Functions  Functions that don't fall into any category.
2.4.12 Alternate Interface  Using Readline in a `callback' fashion.
2.4.13 A Readline Example  An example Readline function.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.1 Naming a Function

- -

- -The user can dynamically change the bindings of keys while using -Readline. This is done by representing the function with a descriptive -name. The user is able to type the descriptive name when referring to -the function. Thus, in an init file, one might find -

- -
 
Meta-Rubout:	backward-kill-word
-

- -This binds the keystroke Meta-Rubout to the function -descriptively named backward-kill-word. You, as the -programmer, should bind the functions you write to descriptive names as -well. Readline provides a function for doing that: -

- - -

-
Function: int rl_add_defun (const char *name, rl_command_func_t *function, int key) -
Add name to the list of named functions. Make function be -the function that gets called. If key is not -1, then bind it to -function using rl_bind_key(). -
-

- -Using this function alone is sufficient for most applications. -It is the recommended way to add a few functions to the default -functions that Readline has built in. -If you need to do something other than adding a function to Readline, -you may need to use the underlying functions described below. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.2 Selecting a Keymap

- -

- -Key bindings take place on a keymap. The keymap is the -association between the keys that the user types and the functions that -get run. You can make your own keymaps, copy existing keymaps, and tell -Readline which keymap to use. -

- - -

-
Function: Keymap rl_make_bare_keymap (void) -
Returns a new, empty keymap. The space for the keymap is allocated with -malloc(); the caller should free it by calling -rl_free_keymap() when done. -
-

- - -

-
Function: Keymap rl_copy_keymap (Keymap map) -
Return a new keymap which is a copy of map. -
-

- - -

-
Function: Keymap rl_make_keymap (void) -
Return a new keymap with the printing characters bound to rl_insert, -the lowercase Meta characters bound to run their equivalents, and -the Meta digits bound to produce numeric arguments. -
-

- - -

-
Function: void rl_discard_keymap (Keymap keymap) -
Free the storage associated with the data in keymap. -The caller should free keymap. -
-

- - -

-
Function: void rl_free_keymap (Keymap keymap) -
Free all storage associated with keymap. This calls -rl_discard_keymap to free subordindate keymaps and macros. -
-

- -Readline has several internal keymaps. These functions allow you to -change which keymap is active. -

- - -

-
Function: Keymap rl_get_keymap (void) -
Returns the currently active keymap. -
-

- - -

-
Function: void rl_set_keymap (Keymap keymap) -
Makes keymap the currently active keymap. -
-

- - -

-
Function: Keymap rl_get_keymap_by_name (const char *name) -
Return the keymap matching name. name is one which would -be supplied in a set keymap inputrc line (see section 1.3 Readline Init File). -
-

- - -

-
Function: char * rl_get_keymap_name (Keymap keymap) -
Return the name matching keymap. name is one which would -be supplied in a set keymap inputrc line (see section 1.3 Readline Init File). -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.3 Binding Keys

- -

- -Key sequences are associate with functions through the keymap. -Readline has several internal keymaps: emacs_standard_keymap, -emacs_meta_keymap, emacs_ctlx_keymap, -vi_movement_keymap, and vi_insertion_keymap. -emacs_standard_keymap is the default, and the examples in -this manual assume that. -

- -Since readline() installs a set of default key bindings the first -time it is called, there is always the danger that a custom binding -installed before the first call to readline() will be overridden. -An alternate mechanism is to install custom key bindings in an -initialization function assigned to the rl_startup_hook variable -(see section 2.3 Readline Variables). -

- -These functions manage key bindings. -

- - -

-
Function: int rl_bind_key (int key, rl_command_func_t *function) -
Binds key to function in the currently active keymap. -Returns non-zero in the case of an invalid key. -
-

- - -

-
Function: int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map) -
Bind key to function in map. -Returns non-zero in the case of an invalid key. -
-

- - -

-
Function: int rl_bind_key_if_unbound (int key, rl_command_func_t *function) -
Binds key to function if it is not already bound in the -currently active keymap. -Returns non-zero in the case of an invalid key or if key is -already bound. -
-

- - -

-
Function: int rl_bind_key_if_unbound_in_map (int key, rl_command_func_t *function, Keymap map) -
Binds key to function if it is not already bound in map. -Returns non-zero in the case of an invalid key or if key is -already bound. -
-

- - -

-
Function: int rl_unbind_key (int key) -
Bind key to the null function in the currently active keymap. -Returns non-zero in case of error. -
-

- - -

-
Function: int rl_unbind_key_in_map (int key, Keymap map) -
Bind key to the null function in map. -Returns non-zero in case of error. -
-

- - -

-
Function: int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map) -
Unbind all keys that execute function in map. -
-

- - -

-
Function: int rl_unbind_command_in_map (const char *command, Keymap map) -
Unbind all keys that are bound to command in map. -
-

- - -

-
Function: int rl_bind_keyseq (const char *keyseq, rl_command_func_t *function) -
Bind the key sequence represented by the string keyseq to the function -function, beginning in the current keymap. -This makes new keymaps as necessary. -The return value is non-zero if keyseq is invalid. -
-

- - -

-
Function: int rl_bind_keyseq_in_map (const char *keyseq, rl_command_func_t *function, Keymap map) -
Bind the key sequence represented by the string keyseq to the function -function. This makes new keymaps as necessary. -Initial bindings are performed in map. -The return value is non-zero if keyseq is invalid. -
-

- - -

-
Function: int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map) -
Equivalent to rl_bind_keyseq_in_map. -
-

- - -

-
Function: int rl_bind_keyseq_if_unbound (const char *keyseq, rl_command_func_t *function) -
Binds keyseq to function if it is not already bound in the -currently active keymap. -Returns non-zero in the case of an invalid keyseq or if keyseq is -already bound. -
-

- - -

-
Function: int rl_bind_keyseq_if_unbound_in_map (const char *keyseq, rl_command_func_t *function, Keymap map) -
Binds keyseq to function if it is not already bound in map. -Returns non-zero in the case of an invalid keyseq or if keyseq is -already bound. -
-

- - -

-
Function: int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map) -
Bind the key sequence represented by the string keyseq to the arbitrary -pointer data. type says what kind of data is pointed to by -data; this can be a function (ISFUNC), a macro -(ISMACR), or a keymap (ISKMAP). This makes new keymaps as -necessary. The initial keymap in which to do bindings is map. -
-

- - -

-
Function: int rl_parse_and_bind (char *line) -
Parse line as if it had been read from the inputrc file and -perform any key bindings and variable assignments found -(see section 1.3 Readline Init File). -
-

- - -

-
Function: int rl_read_init_file (const char *filename) -
Read keybindings and variable assignments from filename -(see section 1.3 Readline Init File). -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.4 Associating Function Names and Bindings

- -

- -These functions allow you to find out what keys invoke named functions -and the functions invoked by a particular key sequence. You may also -associate a new function name with an arbitrary function. -

- - -

-
Function: rl_command_func_t * rl_named_function (const char *name) -
Return the function with name name. -
-

- - -

-
Function: rl_command_func_t * rl_function_of_keyseq (const char *keyseq, Keymap map, int *type) -
Return the function invoked by keyseq in keymap map. -If map is NULL, the current keymap is used. If type is -not NULL, the type of the object is returned in the int variable -it points to (one of ISFUNC, ISKMAP, or ISMACR). -
-

- - -

-
Function: char ** rl_invoking_keyseqs (rl_command_func_t *function) -
Return an array of strings representing the key sequences used to -invoke function in the current keymap. -
-

- - -

-
Function: char ** rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map) -
Return an array of strings representing the key sequences used to -invoke function in the keymap map. -
-

- - -

-
Function: void rl_function_dumper (int readable) -
Print the readline function names and the key sequences currently -bound to them to rl_outstream. If readable is non-zero, -the list is formatted in such a way that it can be made part of an -inputrc file and re-read. -
-

- - -

-
Function: void rl_list_funmap_names (void) -
Print the names of all bindable Readline functions to rl_outstream. -
-

- - -

-
Function: const char ** rl_funmap_names (void) -
Return a NULL terminated array of known function names. The array is -sorted. The array itself is allocated, but not the strings inside. You -should free the array, but not the pointers, using free or -rl_free when you are done. -
-

- - -

-
Function: int rl_add_funmap_entry (const char *name, rl_command_func_t *function) -
Add name to the list of bindable Readline command names, and make -function the function to be called when name is invoked. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.5 Allowing Undoing

- -

- -Supporting the undo command is a painless thing, and makes your -functions much more useful. It is certainly easy to try -something if you know you can undo it. -

- -If your function simply inserts text once, or deletes text once, and -uses rl_insert_text() or rl_delete_text() to do it, then -undoing is already done for you automatically. -

- -If you do multiple insertions or multiple deletions, or any combination -of these operations, you should group them together into one operation. -This is done with rl_begin_undo_group() and -rl_end_undo_group(). -

- -The types of events that can be undone are: -

- -
 
enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END }; 
-

- -Notice that UNDO_DELETE means to insert some text, and -UNDO_INSERT means to delete some text. That is, the undo code -tells what to undo, not how to undo it. UNDO_BEGIN and -UNDO_END are tags added by rl_begin_undo_group() and -rl_end_undo_group(). -

- - -

-
Function: int rl_begin_undo_group (void) -
Begins saving undo information in a group construct. The undo -information usually comes from calls to rl_insert_text() and -rl_delete_text(), but could be the result of calls to -rl_add_undo(). -
-

- - -

-
Function: int rl_end_undo_group (void) -
Closes the current undo group started with rl_begin_undo_group -(). There should be one call to rl_end_undo_group() -for each call to rl_begin_undo_group(). -
-

- - -

-
Function: void rl_add_undo (enum undo_code what, int start, int end, char *text) -
Remember how to undo an event (according to what). The affected -text runs from start to end, and encompasses text. -
-

- - -

-
Function: void rl_free_undo_list (void) -
Free the existing undo list. -
-

- - -

-
Function: int rl_do_undo (void) -
Undo the first thing on the undo list. Returns 0 if there was -nothing to undo, non-zero if something was undone. -
-

- -Finally, if you neither insert nor delete text, but directly modify the -existing text (e.g., change its case), call rl_modifying() -once, just before you modify the text. You must supply the indices of -the text range that you are going to modify. -

- - -

-
Function: int rl_modifying (int start, int end) -
Tell Readline to save the text between start and end as a -single undo unit. It is assumed that you will subsequently modify -that text. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.6 Redisplay

- -

- - -

-
Function: void rl_redisplay (void) -
Change what's displayed on the screen to reflect the current contents -of rl_line_buffer. -
-

- - -

-
Function: int rl_forced_update_display (void) -
Force the line to be updated and redisplayed, whether or not -Readline thinks the screen display is correct. -
-

- - -

-
Function: int rl_on_new_line (void) -
Tell the update functions that we have moved onto a new (empty) line, -usually after ouputting a newline. -
-

- - -

-
Function: int rl_on_new_line_with_prompt (void) -
Tell the update functions that we have moved onto a new line, with -rl_prompt already displayed. -This could be used by applications that want to output the prompt string -themselves, but still need Readline to know the prompt string length for -redisplay. -It should be used after setting rl_already_prompted. -
-

- - -

-
Function: int rl_reset_line_state (void) -
Reset the display state to a clean state and redisplay the current line -starting on a new line. -
-

- - -

-
Function: int rl_crlf (void) -
Move the cursor to the start of the next screen line. -
-

- - -

-
Function: int rl_show_char (int c) -
Display character c on rl_outstream. -If Readline has not been set to display meta characters directly, this -will convert meta characters to a meta-prefixed key sequence. -This is intended for use by applications which wish to do their own -redisplay. -
-

- - -

-
Function: int rl_message (const char *, ...) -
The arguments are a format string as would be supplied to printf, -possibly containing conversion specifications such as `%d', and -any additional arguments necessary to satisfy the conversion specifications. -The resulting string is displayed in the echo area. The echo area -is also used to display numeric arguments and search strings. -You should call rl_save_prompt to save the prompt information -before calling this function. -
-

- - -

-
Function: int rl_clear_message (void) -
Clear the message in the echo area. If the prompt was saved with a call to -rl_save_prompt before the last call to rl_message, -call rl_restore_prompt before calling this function. -
-

- - -

-
Function: void rl_save_prompt (void) -
Save the local Readline prompt display state in preparation for -displaying a new message in the message area with rl_message(). -
-

- - -

-
Function: void rl_restore_prompt (void) -
Restore the local Readline prompt display state saved by the most -recent call to rl_save_prompt. -if rl_save_prompt was called to save the prompt before a call -to rl_message, this function should be called before the -corresponding call to rl_clear_message. -
-

- - -

-
Function: int rl_expand_prompt (char *prompt) -
Expand any special character sequences in prompt and set up the -local Readline prompt redisplay variables. -This function is called by readline(). It may also be called to -expand the primary prompt if the rl_on_new_line_with_prompt() -function or rl_already_prompted variable is used. -It returns the number of visible characters on the last line of the -(possibly multi-line) prompt. -Applications may indicate that the prompt contains characters that take -up no physical screen space when displayed by bracketing a sequence of -such characters with the special markers RL_PROMPT_START_IGNORE -and RL_PROMPT_END_IGNORE (declared in `readline.h'. This may -be used to embed terminal-specific escape sequences in prompts. -
-

- - -

-
Function: int rl_set_prompt (const char *prompt) -
Make Readline use prompt for subsequent redisplay. This calls -rl_expand_prompt() to expand the prompt and sets rl_prompt -to the result. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.7 Modifying Text

- -

- - -

-
Function: int rl_insert_text (const char *text) -
Insert text into the line at the current cursor position. -Returns the number of characters inserted. -
-

- - -

-
Function: int rl_delete_text (int start, int end) -
Delete the text between start and end in the current line. -Returns the number of characters deleted. -
-

- - -

-
Function: char * rl_copy_text (int start, int end) -
Return a copy of the text between start and end in -the current line. -
-

- - -

-
Function: int rl_kill_text (int start, int end) -
Copy the text between start and end in the current line -to the kill ring, appending or prepending to the last kill if the -last command was a kill command. The text is deleted. -If start is less than end, -the text is appended, otherwise prepended. If the last command was -not a kill, a new kill ring slot is used. -
-

- - -

-
Function: int rl_push_macro_input (char *macro) -
Cause macro to be inserted into the line, as if it had been invoked -by a key bound to a macro. Not especially useful; use -rl_insert_text() instead. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.8 Character Input

- -

- - -

-
Function: int rl_read_key (void) -
Return the next character available from Readline's current input stream. -This handles input inserted into -the input stream via rl_pending_input (see section 2.3 Readline Variables) -and rl_stuff_char(), macros, and characters read from the keyboard. -While waiting for input, this function will call any function assigned to -the rl_event_hook variable. -
-

- - -

-
Function: int rl_getc (FILE *stream) -
Return the next character available from stream, which is assumed to -be the keyboard. -
-

- - -

-
Function: int rl_stuff_char (int c) -
Insert c into the Readline input stream. It will be "read" -before Readline attempts to read characters from the terminal with -rl_read_key(). Up to 512 characters may be pushed back. -rl_stuff_char returns 1 if the character was successfully inserted; -0 otherwise. -
-

- - -

-
Function: int rl_execute_next (int c) -
Make c be the next command to be executed when rl_read_key() -is called. This sets rl_pending_input. -
-

- - -

-
Function: int rl_clear_pending_input (void) -
Unset rl_pending_input, effectively negating the effect of any -previous call to rl_execute_next(). This works only if the -pending input has not already been read with rl_read_key(). -
-

- - -

-
Function: int rl_set_keyboard_input_timeout (int u) -
While waiting for keyboard input in rl_read_key(), Readline will -wait for u microseconds for input before calling any function -assigned to rl_event_hook. u must be greater than or equal -to zero (a zero-length timeout is equivalent to a poll). -The default waiting period is one-tenth of a second. -Returns the old timeout value. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.9 Terminal Management

- -

- - -

-
Function: void rl_prep_terminal (int meta_flag) -
Modify the terminal settings for Readline's use, so readline() -can read a single character at a time from the keyboard. -The meta_flag argument should be non-zero if Readline should -read eight-bit input. -
-

- - -

-
Function: void rl_deprep_terminal (void) -
Undo the effects of rl_prep_terminal(), leaving the terminal in -the state in which it was before the most recent call to -rl_prep_terminal(). -
-

- - -

-
Function: void rl_tty_set_default_bindings (Keymap kmap) -
Read the operating system's terminal editing characters (as would be -displayed by stty) to their Readline equivalents. -The bindings are performed in kmap. -
-

- - -

-
Function: void rl_tty_unset_default_bindings (Keymap kmap) -
Reset the bindings manipulated by rl_tty_set_default_bindings so -that the terminal editing characters are bound to rl_insert. -The bindings are performed in kmap. -
-

- - -

-
Function: int rl_reset_terminal (const char *terminal_name) -
Reinitialize Readline's idea of the terminal settings using -terminal_name as the terminal type (e.g., vt100). -If terminal_name is NULL, the value of the TERM -environment variable is used. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.10 Utility Functions

- -

- - -

-
Function: int rl_save_state (struct readline_state *sp) -
Save a snapshot of Readline's internal state to sp. -The contents of the readline_state structure are documented -in `readline.h'. -The caller is responsible for allocating the structure. -
-

- - -

-
Function: int rl_restore_state (struct readline_state *sp) -
Restore Readline's internal state to that stored in sp, which must -have been saved by a call to rl_save_state. -The contents of the readline_state structure are documented -in `readline.h'. -The caller is responsible for freeing the structure. -
-

- - -

-
Function: void rl_free (void *mem) -
Deallocate the memory pointed to by mem. mem must have been -allocated by malloc. -
-

- - -

-
Function: void rl_replace_line (const char *text, int clear_undo) -
Replace the contents of rl_line_buffer with text. -The point and mark are preserved, if possible. -If clear_undo is non-zero, the undo list associated with the -current line is cleared. -
-

- - -

-
Function: void rl_extend_line_buffer (int len) -
Ensure that rl_line_buffer has enough space to hold len -characters, possibly reallocating it if necessary. -
-

- - -

-
Function: int rl_initialize (void) -
Initialize or re-initialize Readline's internal state. -It's not strictly necessary to call this; readline() calls it before -reading any input. -
-

- - -

-
Function: int rl_ding (void) -
Ring the terminal bell, obeying the setting of bell-style. -
-

- - -

-
Function: int rl_alphabetic (int c) -
Return 1 if c is an alphabetic character. -
-

- - -

-
Function: void rl_display_match_list (char **matches, int len, int max) -
A convenience function for displaying a list of strings in -columnar format on Readline's output stream. matches is the list -of strings, in argv format, such as a list of completion matches. -len is the number of strings in matches, and max -is the length of the longest string in matches. This function uses -the setting of print-completions-horizontally to select how the -matches are displayed (see section 1.3.1 Readline Init File Syntax). -When displaying completions, this function sets the number of columns used -for display to the value of completion-display-width, the value of -the environment variable COLUMNS, or the screen width, in that order. -
-

- -The following are implemented as macros, defined in chardefs.h. -Applications should refrain from using them. -

- - -

-
Function: int _rl_uppercase_p (int c) -
Return 1 if c is an uppercase alphabetic character. -
-

- - -

-
Function: int _rl_lowercase_p (int c) -
Return 1 if c is a lowercase alphabetic character. -
-

- - -

-
Function: int _rl_digit_p (int c) -
Return 1 if c is a numeric character. -
-

- - -

-
Function: int _rl_to_upper (int c) -
If c is a lowercase alphabetic character, return the corresponding -uppercase character. -
-

- - -

-
Function: int _rl_to_lower (int c) -
If c is an uppercase alphabetic character, return the corresponding -lowercase character. -
-

- - -

-
Function: int _rl_digit_value (int c) -
If c is a number, return the value it represents. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.11 Miscellaneous Functions

- -

- - -

-
Function: int rl_macro_bind (const char *keyseq, const char *macro, Keymap map) -
Bind the key sequence keyseq to invoke the macro macro. -The binding is performed in map. When keyseq is invoked, the -macro will be inserted into the line. This function is deprecated; -use rl_generic_bind() instead. -
-

- - -

-
Function: void rl_macro_dumper (int readable) -
Print the key sequences bound to macros and their values, using -the current keymap, to rl_outstream. -If readable is non-zero, the list is formatted in such a way -that it can be made part of an inputrc file and re-read. -
-

- - -

-
Function: int rl_variable_bind (const char *variable, const char *value) -
Make the Readline variable variable have value. -This behaves as if the readline command -`set variable value' had been executed in an inputrc -file (see section 1.3.1 Readline Init File Syntax). -
-

- - -

-
Function: char * rl_variable_value (const char *variable) -
Return a string representing the value of the Readline variable variable. -For boolean variables, this string is either `on' or `off'. -
-

- - -

-
Function: void rl_variable_dumper (int readable) -
Print the readline variable names and their current values -to rl_outstream. -If readable is non-zero, the list is formatted in such a way -that it can be made part of an inputrc file and re-read. -
-

- - -

-
Function: int rl_set_paren_blink_timeout (int u) -
Set the time interval (in microseconds) that Readline waits when showing -a balancing character when blink-matching-paren has been enabled. -
-

- - -

-
Function: char * rl_get_termcap (const char *cap) -
Retrieve the string value of the termcap capability cap. -Readline fetches the termcap entry for the current terminal name and -uses those capabilities to move around the screen line and perform other -terminal-specific operations, like erasing a line. Readline does not -use all of a terminal's capabilities, and this function will return -values for only those capabilities Readline uses. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.12 Alternate Interface

- -

- -An alternate interface is available to plain readline(). Some -applications need to interleave keyboard I/O with file, device, or -window system I/O, typically by using a main loop to select() -on various file descriptors. To accomodate this need, readline can -also be invoked as a `callback' function from an event loop. There -are functions available to make this easy. -

- - -

-
Function: void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler) -
Set up the terminal for readline I/O and display the initial -expanded value of prompt. Save the value of lhandler to -use as a function to call when a complete line of input has been entered. -The function takes the text of the line as an argument. -
-

- - -

-
Function: void rl_callback_read_char (void) -
Whenever an application determines that keyboard input is available, it -should call rl_callback_read_char(), which will read the next -character from the current input source. -If that character completes the line, rl_callback_read_char will -invoke the lhandler function saved by rl_callback_handler_install -to process the line. -Before calling the lhandler function, the terminal settings are -reset to the values they had before calling -rl_callback_handler_install. -If the lhandler function returns, -the terminal settings are modified for Readline's use again. -EOF is indicated by calling lhandler with a -NULL line. -
-

- - -

-
Function: void rl_callback_handler_remove (void) -
Restore the terminal to its initial state and remove the line handler. -This may be called from within a callback as well as independently. -If the lhandler installed by rl_callback_handler_install -does not exit the program, either this function or the function referred -to by the value of rl_deprep_term_function should be called before -the program exits to reset the terminal settings. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.4.13 A Readline Example

- -

- -Here is a function which changes lowercase characters to their uppercase -equivalents, and uppercase characters to lowercase. If -this function was bound to `M-c', then typing `M-c' would -change the case of the character under point. Typing `M-1 0 M-c' -would change the case of the following 10 characters, leaving the cursor on -the last character changed. -

- -
 
/* Invert the case of the COUNT following characters. */
-int
-invert_case_line (count, key)
-     int count, key;
-{
-  register int start, end, i;
-
-  start = rl_point;
-
-  if (rl_point >= rl_end)
-    return (0);
-
-  if (count < 0)
-    {
-      direction = -1;
-      count = -count;
-    }
-  else
-    direction = 1;
-      
-  /* Find the end of the range to modify. */
-  end = start + (count * direction);
-
-  /* Force it to be within range. */
-  if (end > rl_end)
-    end = rl_end;
-  else if (end < 0)
-    end = 0;
-
-  if (start == end)
-    return (0);
-
-  if (start > end)
-    {
-      int temp = start;
-      start = end;
-      end = temp;
-    }
-
-  /* Tell readline that we are modifying the line,
-     so it will save the undo information. */
-  rl_modifying (start, end);
-
-  for (i = start; i != end; i++)
-    {
-      if (_rl_uppercase_p (rl_line_buffer[i]))
-        rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
-      else if (_rl_lowercase_p (rl_line_buffer[i]))
-        rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
-    }
-  /* Move point to on top of the last character changed. */
-  rl_point = (direction == 1) ? end - 1 : start;
-  return (0);
-}
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.5 Readline Signal Handling

- -

- -Signals are asynchronous events sent to a process by the Unix kernel, -sometimes on behalf of another process. They are intended to indicate -exceptional events, like a user pressing the interrupt key on his terminal, -or a network connection being broken. There is a class of signals that can -be sent to the process currently reading input from the keyboard. Since -Readline changes the terminal attributes when it is called, it needs to -perform special processing when such a signal is received in order to -restore the terminal to a sane state, or provide application writers with -functions to do so manually. -

- -Readline contains an internal signal handler that is installed for a -number of signals (SIGINT, SIGQUIT, SIGTERM, -SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU). -When one of these signals is received, the signal handler -will reset the terminal attributes to those that were in effect before -readline() was called, reset the signal handling to what it was -before readline() was called, and resend the signal to the calling -application. -If and when the calling application's signal handler returns, Readline -will reinitialize the terminal and continue to accept input. -When a SIGINT is received, the Readline signal handler performs -some additional work, which will cause any partially-entered line to be -aborted (see the description of rl_free_line_state() below). -

- -There is an additional Readline signal handler, for SIGWINCH, which -the kernel sends to a process whenever the terminal's size changes (for -example, if a user resizes an xterm). The Readline SIGWINCH -handler updates Readline's internal screen size information, and then calls -any SIGWINCH signal handler the calling application has installed. -Readline calls the application's SIGWINCH signal handler without -resetting the terminal to its original state. If the application's signal -handler does more than update its idea of the terminal size and return (for -example, a longjmp back to a main processing loop), it must -call rl_cleanup_after_signal() (described below), to restore the -terminal state. -

- -Readline provides two variables that allow application writers to -control whether or not it will catch certain signals and act on them -when they are received. It is important that applications change the -values of these variables only when calling readline(), not in -a signal handler, so Readline's internal signal state is not corrupted. -

- - -

-
Variable: int rl_catch_signals -
If this variable is non-zero, Readline will install signal handlers for -SIGINT, SIGQUIT, SIGTERM, SIGALRM, -SIGTSTP, SIGTTIN, and SIGTTOU. -

- -The default value of rl_catch_signals is 1. -

-

- - -

-
Variable: int rl_catch_sigwinch -
If this variable is non-zero, Readline will install a signal handler for -SIGWINCH. -

- -The default value of rl_catch_sigwinch is 1. -

-

- -If an application does not wish to have Readline catch any signals, or -to handle signals other than those Readline catches (SIGHUP, -for example), -Readline provides convenience functions to do the necessary terminal -and internal state cleanup upon receipt of a signal. -

- - -

-
Function: void rl_cleanup_after_signal (void) -
This function will reset the state of the terminal to what it was before -readline() was called, and remove the Readline signal handlers for -all signals, depending on the values of rl_catch_signals and -rl_catch_sigwinch. -
-

- - -

-
Function: void rl_free_line_state (void) -
This will free any partial state associated with the current input line -(undo information, any partial history entry, any partially-entered -keyboard macro, and any partially-entered numeric argument). This -should be called before rl_cleanup_after_signal(). The -Readline signal handler for SIGINT calls this to abort the -current input line. -
-

- - -

-
Function: void rl_reset_after_signal (void) -
This will reinitialize the terminal and reinstall any Readline signal -handlers, depending on the values of rl_catch_signals and -rl_catch_sigwinch. -
-

- -If an application does not wish Readline to catch SIGWINCH, it may -call rl_resize_terminal() or rl_set_screen_size() to force -Readline to update its idea of the terminal size when a SIGWINCH -is received. -

- - -

-
Function: void rl_echo_signal_char (int sig) -
If an application wishes to install its own signal handlers, but still -have readline display characters that generate signals, calling this -function with sig set to SIGINT, SIGQUIT, or -SIGTSTP will display the character generating that signal. -
-

- - -

-
Function: void rl_resize_terminal (void) -
Update Readline's internal screen size by reading values from the kernel. -
-

- - -

-
Function: void rl_set_screen_size (int rows, int cols) -
Set Readline's idea of the terminal size to rows rows and -cols columns. If either rows or columns is less than -or equal to 0, Readline's idea of that terminal dimension is unchanged. -
-

- -If an application does not want to install a SIGWINCH handler, but -is still interested in the screen dimensions, Readline's idea of the screen -size may be queried. -

- - -

-
Function: void rl_get_screen_size (int *rows, int *cols) -
Return Readline's idea of the terminal's size in the -variables pointed to by the arguments. -
-

- - -

-
Function: void rl_reset_screen_size (void) -
Cause Readline to reobtain the screen size and recalculate its dimensions. -
-

- -The following functions install and remove Readline's signal handlers. -

- - -

-
Function: int rl_set_signals (void) -
Install Readline's signal handler for SIGINT, SIGQUIT, -SIGTERM, SIGALRM, SIGTSTP, SIGTTIN, -SIGTTOU, and SIGWINCH, depending on the values of -rl_catch_signals and rl_catch_sigwinch. -
-

- - -

-
Function: int rl_clear_signals (void) -
Remove all of the Readline signal handlers installed by -rl_set_signals(). -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.6 Custom Completers

- -

- -Typically, a program that reads commands from the user has a way of -disambiguating commands and data. If your program is one of these, then -it can provide completion for commands, data, or both. -The following sections describe how your program and Readline -cooperate to provide this service. -

- -

- - - - -
2.6.1 How Completing Works  The logic used to do completion.
2.6.2 Completion Functions  Functions provided by Readline.
2.6.3 Completion Variables  Variables which control completion.
2.6.4 A Short Completion Example  An example of writing completer subroutines.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.6.1 How Completing Works

- -

- -In order to complete some text, the full list of possible completions -must be available. That is, it is not possible to accurately -expand a partial word without knowing all of the possible words -which make sense in that context. The Readline library provides -the user interface to completion, and two of the most common -completion functions: filename and username. For completing other types -of text, you must write your own completion function. This section -describes exactly what such functions must do, and provides an example. -

- -There are three major functions used to perform completion: -

- -

    -
  1. -The user-interface function rl_complete(). This function is -called with the same arguments as other bindable Readline functions: -count and invoking_key. -It isolates the word to be completed and calls -rl_completion_matches() to generate a list of possible completions. -It then either lists the possible completions, inserts the possible -completions, or actually performs the -completion, depending on which behavior is desired. -

    - -

  2. -The internal function rl_completion_matches() uses an -application-supplied generator function to generate the list of -possible matches, and then returns the array of these matches. -The caller should place the address of its generator function in -rl_completion_entry_function. -

    - -

  3. -The generator function is called repeatedly from -rl_completion_matches(), returning a string each time. The -arguments to the generator function are text and state. -text is the partial word to be completed. state is zero the -first time the function is called, allowing the generator to perform -any necessary initialization, and a positive non-zero integer for -each subsequent call. The generator function returns -(char *)NULL to inform rl_completion_matches() that there are -no more possibilities left. Usually the generator function computes the -list of possible completions when state is zero, and returns them -one at a time on subsequent calls. Each string the generator function -returns as a match must be allocated with malloc(); Readline -frees the strings when it has finished with them. -Such a generator function is referred to as an -application-specific completion function. -

    - -

-

- - -

-
Function: int rl_complete (int ignore, int invoking_key) -
Complete the word at or before point. You have supplied the function -that does the initial simple matching selection algorithm (see -rl_completion_matches()). The default is to do filename completion. -
-

- - -

-
Variable: rl_compentry_func_t * rl_completion_entry_function -
This is a pointer to the generator function for -rl_completion_matches(). -If the value of rl_completion_entry_function is -NULL then the default filename generator -function, rl_filename_completion_function(), is used. -An application-specific completion function is a function whose -address is assigned to rl_completion_entry_function and whose -return values are used to generate possible completions. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.6.2 Completion Functions

- -

- -Here is the complete list of callable completion functions present in -Readline. -

- - -

-
Function: int rl_complete_internal (int what_to_do) -
Complete the word at or before point. what_to_do says what to do -with the completion. A value of `?' means list the possible -completions. `TAB' means do standard completion. `*' means -insert all of the possible completions. `!' means to display -all of the possible completions, if there is more than one, as well as -performing partial completion. `@' is similar to `!', but -possible completions are not listed if the possible completions share -a common prefix. -
-

- - -

-
Function: int rl_complete (int ignore, int invoking_key) -
Complete the word at or before point. You have supplied the function -that does the initial simple matching selection algorithm (see -rl_completion_matches() and rl_completion_entry_function). -The default is to do filename -completion. This calls rl_complete_internal() with an -argument depending on invoking_key. -
-

- - -

-
Function: int rl_possible_completions (int count, int invoking_key) -
List the possible completions. See description of rl_complete -(). This calls rl_complete_internal() with an argument of -`?'. -
-

- - -

-
Function: int rl_insert_completions (int count, int invoking_key) -
Insert the list of possible completions into the line, deleting the -partially-completed word. See description of rl_complete(). -This calls rl_complete_internal() with an argument of `*'. -
-

- - -

-
Function: int rl_completion_mode (rl_command_func_t *cfunc) -
Returns the apppriate value to pass to rl_complete_internal() -depending on whether cfunc was called twice in succession and -the values of the show-all-if-ambiguous and -show-all-if-unmodified variables. -Application-specific completion functions may use this function to present -the same interface as rl_complete(). -
-

- - -

-
Function: char ** rl_completion_matches (const char *text, rl_compentry_func_t *entry_func) -
Returns an array of strings which is a list of completions for -text. If there are no completions, returns NULL. -The first entry in the returned array is the substitution for text. -The remaining entries are the possible completions. The array is -terminated with a NULL pointer. -

- -entry_func is a function of two args, and returns a -char *. The first argument is text. The second is a -state argument; it is zero on the first call, and non-zero on subsequent -calls. entry_func returns a NULL pointer to the caller -when there are no more matches. -

-

- - -

-
Function: char * rl_filename_completion_function (const char *text, int state) -
A generator function for filename completion in the general case. -text is a partial filename. -The Bash source is a useful reference for writing application-specific -completion functions (the Bash completion functions call this and other -Readline functions). -
-

- - -

-
Function: char * rl_username_completion_function (const char *text, int state) -
A completion generator for usernames. text contains a partial -username preceded by a random character (usually `~'). As with all -completion generators, state is zero on the first call and non-zero -for subsequent calls. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.6.3 Completion Variables

- -

- - -

-
Variable: rl_compentry_func_t * rl_completion_entry_function -
A pointer to the generator function for rl_completion_matches(). -NULL means to use rl_filename_completion_function(), -the default filename completer. -
-

- - -

-
Variable: rl_completion_func_t * rl_attempted_completion_function -
A pointer to an alternative function to create matches. -The function is called with text, start, and end. -start and end are indices in rl_line_buffer defining -the boundaries of text, which is a character string. -If this function exists and returns NULL, or if this variable is -set to NULL, then rl_complete() will call the value of -rl_completion_entry_function to generate matches, otherwise the -array of strings returned will be used. -If this function sets the rl_attempted_completion_over -variable to a non-zero value, Readline will not perform its default -completion even if this function returns no matches. -
-

- - -

-
Variable: rl_quote_func_t * rl_filename_quoting_function -
A pointer to a function that will quote a filename in an -application-specific fashion. This is called if filename completion is being -attempted and one of the characters in rl_filename_quote_characters -appears in a completed filename. The function is called with -text, match_type, and quote_pointer. The text -is the filename to be quoted. The match_type is either -SINGLE_MATCH, if there is only one completion match, or -MULT_MATCH. Some functions use this to decide whether or not to -insert a closing quote character. The quote_pointer is a pointer -to any opening quote character the user typed. Some functions choose -to reset this character. -
-

- - -

-
Variable: rl_dequote_func_t * rl_filename_dequoting_function -
A pointer to a function that will remove application-specific quoting -characters from a filename before completion is attempted, so those -characters do not interfere with matching the text against names in -the filesystem. It is called with text, the text of the word -to be dequoted, and quote_char, which is the quoting character -that delimits the filename (usually `'' or `"'). If -quote_char is zero, the filename was not in an embedded string. -
-

- - -

-
Variable: rl_linebuf_func_t * rl_char_is_quoted_p -
A pointer to a function to call that determines whether or not a specific -character in the line buffer is quoted, according to whatever quoting -mechanism the program calling Readline uses. The function is called with -two arguments: text, the text of the line, and index, the -index of the character in the line. It is used to decide whether a -character found in rl_completer_word_break_characters should be -used to break words for the completer. -
-

- - -

-
Variable: rl_compignore_func_t * rl_ignore_some_completions_function -
This function, if defined, is called by the completer when real filename -completion is done, after all the matching names have been generated. -It is passed a NULL terminated array of matches. -The first element (matches[0]) is the -maximal substring common to all matches. This function can -re-arrange the list of matches as required, but each element deleted -from the array must be freed. -
-

- - -

-
Variable: rl_icppfunc_t * rl_directory_completion_hook -
This function, if defined, is allowed to modify the directory portion -of filenames Readline completes. -It could be used to expand symbolic links or shell variables in pathnames. -It is called with the address of a string (the current directory name) as an -argument, and may modify that string. -If the string is replaced with a new string, the old value should be freed. -Any modified directory name should have a trailing slash. -The modified value will be used as part of the completion, replacing -the directory portion of the pathname the user typed. -At the least, even if no other expansion is performed, this function should -remove any quote characters from the directory name, because its result will -be passed directly to opendir(). -The directory completion hook returns an integer that should be non-zero if -the function modifies its directory argument. -The function should not modify the directory argument if it returns 0. -
-

- - -

-
Variable: rl_dequote_func_t * rl_filename_rewrite_hook -
If non-zero, this is the address of a function called when reading -directory entries from the filesystem for completion and comparing -them to the partial word to be completed. The function should -perform any necesary application or system-specific conversion on -the filename, such as converting between character sets or converting -from a filesystem format to a character input format. -The function takes two arguments: fname, the filename to be converted, -and fnlen, its length in bytes. -It must either return its first argument (if no conversion takes place) -or the converted filename in newly-allocated memory. The converted -form is used to compare against the word to be completed, and, if it -matches, is added to the list of matches. Readline will free the -allocated string. -
-

- - -

-
Variable: rl_compdisp_func_t * rl_completion_display_matches_hook -
If non-zero, then this is the address of a function to call when -completing a word would normally display the list of possible matches. -This function is called in lieu of Readline displaying the list. -It takes three arguments: -(char **matches, int num_matches, int max_length) -where matches is the array of matching strings, -num_matches is the number of strings in that array, and -max_length is the length of the longest string in that array. -Readline provides a convenience function, rl_display_match_list, -that takes care of doing the display to Readline's output stream. That -function may be called from this hook. -
-

- - -

-
Variable: const char * rl_basic_word_break_characters -
The basic list of characters that signal a break between words for the -completer routine. The default value of this variable is the characters -which break words for completion in Bash: -" \t\n\"\\'`@$><=;|&{(". -
-

- - -

-
Variable: const char * rl_basic_quote_characters -
A list of quote characters which can cause a word break. -
-

- - -

-
Variable: const char * rl_completer_word_break_characters -
The list of characters that signal a break between words for -rl_complete_internal(). The default list is the value of -rl_basic_word_break_characters. -
-

- - -

-
Variable: rl_cpvfunc_t * rl_completion_word_break_hook -
If non-zero, this is the address of a function to call when Readline is -deciding where to separate words for word completion. It should return -a character string like rl_completer_word_break_characters to be -used to perform the current completion. The function may choose to set -rl_completer_word_break_characters itself. If the function -returns NULL, rl_completer_word_break_characters is used. -
-

- - -

-
Variable: const char * rl_completer_quote_characters -
A list of characters which can be used to quote a substring of the line. -Completion occurs on the entire substring, and within the substring -rl_completer_word_break_characters are treated as any other character, -unless they also appear within this list. -
-

- - -

-
Variable: const char * rl_filename_quote_characters -
A list of characters that cause a filename to be quoted by the completer -when they appear in a completed filename. The default is the null string. -
-

- - -

-
Variable: const char * rl_special_prefixes -
The list of characters that are word break characters, but should be -left in text when it is passed to the completion function. -Programs can use this to help determine what kind of completing to do. -For instance, Bash sets this variable to "$@" so that it can complete -shell variables and hostnames. -
-

- - -

-
Variable: int rl_completion_query_items -
Up to this many items will be displayed in response to a -possible-completions call. After that, readline asks the user if she is sure -she wants to see them all. The default value is 100. A negative value -indicates that Readline should never ask the user. -
-

- - -

-
Variable: int rl_completion_append_character -
When a single completion alternative matches at the end of the command -line, this character is appended to the inserted completion text. The -default is a space character (` '). Setting this to the null -character (`\0') prevents anything being appended automatically. -This can be changed in application-specific completion functions to -provide the "most sensible word separator character" according to -an application-specific command line syntax specification. -
-

- - -

-
Variable: int rl_completion_suppress_append -
If non-zero, rl_completion_append_character is not appended to -matches at the end of the command line, as described above. -It is set to 0 before any application-specific completion function -is called, and may only be changed within such a function. -
-

- - -

-
Variable: int rl_completion_quote_character -
When Readline is completing quoted text, as delimited by one of the -characters in rl_completer_quote_characters, it sets this variable -to the quoting character found. -This is set before any application-specific completion function is called. -
-

- - -

-
Variable: int rl_completion_suppress_quote -
If non-zero, Readline does not append a matching quote character when -performing completion on a quoted string. -It is set to 0 before any application-specific completion function -is called, and may only be changed within such a function. -
-

- - -

-
Variable: int rl_completion_found_quote -
When Readline is completing quoted text, it sets this variable -to a non-zero value if the word being completed contains or is delimited -by any quoting characters, including backslashes. -This is set before any application-specific completion function is called. -
-

- - -

-
Variable: int rl_completion_mark_symlink_dirs -
If non-zero, a slash will be appended to completed filenames that are -symbolic links to directory names, subject to the value of the -user-settable mark-directories variable. -This variable exists so that application-specific completion functions -can override the user's global preference (set via the -mark-symlinked-directories Readline variable) if appropriate. -This variable is set to the user's preference before any -application-specific completion function is called, so unless that -function modifies the value, the user's preferences are honored. -
-

- - -

-
Variable: int rl_ignore_completion_duplicates -
If non-zero, then duplicates in the matches are removed. -The default is 1. -
-

- - -

-
Variable: int rl_filename_completion_desired -
Non-zero means that the results of the matches are to be treated as -filenames. This is always zero when completion is attempted, -and can only be changed -within an application-specific completion function. If it is set to a -non-zero value by such a function, directory names have a slash appended -and Readline attempts to quote completed filenames if they contain any -characters in rl_filename_quote_characters and -rl_filename_quoting_desired is set to a non-zero value. -
-

- - -

-
Variable: int rl_filename_quoting_desired -
Non-zero means that the results of the matches are to be quoted using -double quotes (or an application-specific quoting mechanism) if the -completed filename contains any characters in -rl_filename_quote_chars. This is always non-zero -when completion is attempted, and can only be changed within an -application-specific completion function. -The quoting is effected via a call to the function pointed to -by rl_filename_quoting_function. -
-

- - -

-
Variable: int rl_attempted_completion_over -
If an application-specific completion function assigned to -rl_attempted_completion_function sets this variable to a non-zero -value, Readline will not perform its default filename completion even -if the application's completion function returns no matches. -It should be set only by an application's completion function. -
-

- - -

-
Variable: int rl_sort_completion_matches -
If an application sets this variable to 0, Readline will not sort the -list of completions (which implies that it cannot remove any duplicate -completions). The default value is 1, which means that Readline will -sort the completions and, depending on the value of -rl_ignore_completion_duplicates, will attempt to remove duplicate -matches. -
-

- - -

-
Variable: int rl_completion_type -
Set to a character describing the type of completion Readline is currently -attempting; see the description of rl_complete_internal() -(see section 2.6.2 Completion Functions) for the list of characters. -This is set to the appropriate value before any application-specific -completion function is called, allowing such functions to present -the same interface as rl_complete(). -
-

- - -

-
Variable: int rl_completion_invoking_key -
Set to the final character in the key sequence that invoked one of the -completion functions that call rl_complete_internal(). This is -set to the appropriate value before any application-specific completion -function is called. -
-

- - -

-
Variable: int rl_inhibit_completion -
If this variable is non-zero, completion is inhibited. The completion -character will be inserted as any other bound to self-insert. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

2.6.4 A Short Completion Example

- -

- -Here is a small application demonstrating the use of the GNU Readline -library. It is called fileman, and the source code resides in -`examples/fileman.c'. This sample application provides -completion of command names, line editing features, and access to the -history list. -

- -
 
/* fileman.c -- A tiny application which demonstrates how to use the
-   GNU Readline library.  This application interactively allows users
-   to manipulate files and their modes. */
-
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#include <sys/types.h>
-#ifdef HAVE_SYS_FILE_H
-#  include <sys/file.h>
-#endif
-#include <sys/stat.h>
-
-#ifdef HAVE_UNISTD_H
-#  include <unistd.h>
-#endif
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <errno.h>
-
-#if defined (HAVE_STRING_H)
-#  include <string.h>
-#else /* !HAVE_STRING_H */
-#  include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-#endif
-
-#include <time.h>
-
-#include <readline/readline.h>
-#include <readline/history.h>
-
-extern char *xmalloc PARAMS((size_t));
-
-/* The names of functions that actually do the manipulation. */
-int com_list PARAMS((char *));
-int com_view PARAMS((char *));
-int com_rename PARAMS((char *));
-int com_stat PARAMS((char *));
-int com_pwd PARAMS((char *));
-int com_delete PARAMS((char *));
-int com_help PARAMS((char *));
-int com_cd PARAMS((char *));
-int com_quit PARAMS((char *));
-
-/* A structure which contains information on the commands this program
-   can understand. */
-
-typedef struct {
-  char *name;			/* User printable name of the function. */
-  rl_icpfunc_t *func;		/* Function to call to do the job. */
-  char *doc;			/* Documentation for this function.  */
-} COMMAND;
-
-COMMAND commands[] = {
-  { "cd", com_cd, "Change to directory DIR" },
-  { "delete", com_delete, "Delete FILE" },
-  { "help", com_help, "Display this text" },
-  { "?", com_help, "Synonym for `help'" },
-  { "list", com_list, "List files in DIR" },
-  { "ls", com_list, "Synonym for `list'" },
-  { "pwd", com_pwd, "Print the current working directory" },
-  { "quit", com_quit, "Quit using Fileman" },
-  { "rename", com_rename, "Rename FILE to NEWNAME" },
-  { "stat", com_stat, "Print out statistics on FILE" },
-  { "view", com_view, "View the contents of FILE" },
-  { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL }
-};
-
-/* Forward declarations. */
-char *stripwhite ();
-COMMAND *find_command ();
-
-/* The name of this program, as taken from argv[0]. */
-char *progname;
-
-/* When non-zero, this global means the user is done using this program. */
-int done;
-
-char *
-dupstr (s)
-     char *s;
-{
-  char *r;
-
-  r = xmalloc (strlen (s) + 1);
-  strcpy (r, s);
-  return (r);
-}
-
-main (argc, argv)
-     int argc;
-     char **argv;
-{
-  char *line, *s;
-
-  progname = argv[0];
-
-  initialize_readline ();	/* Bind our completer. */
-
-  /* Loop reading and executing lines until the user quits. */
-  for ( ; done == 0; )
-    {
-      line = readline ("FileMan: ");
-
-      if (!line)
-        break;
-
-      /* Remove leading and trailing whitespace from the line.
-         Then, if there is anything left, add it to the history list
-         and execute it. */
-      s = stripwhite (line);
-
-      if (*s)
-        {
-          add_history (s);
-          execute_line (s);
-        }
-
-      free (line);
-    }
-  exit (0);
-}
-
-/* Execute a command line. */
-int
-execute_line (line)
-     char *line;
-{
-  register int i;
-  COMMAND *command;
-  char *word;
-
-  /* Isolate the command word. */
-  i = 0;
-  while (line[i] && whitespace (line[i]))
-    i++;
-  word = line + i;
-
-  while (line[i] && !whitespace (line[i]))
-    i++;
-
-  if (line[i])
-    line[i++] = '\0';
-
-  command = find_command (word);
-
-  if (!command)
-    {
-      fprintf (stderr, "%s: No such command for FileMan.\n", word);
-      return (-1);
-    }
-
-  /* Get argument to command, if any. */
-  while (whitespace (line[i]))
-    i++;
-
-  word = line + i;
-
-  /* Call the function. */
-  return ((*(command->func)) (word));
-}
-
-/* Look up NAME as the name of a command, and return a pointer to that
-   command.  Return a NULL pointer if NAME isn't a command name. */
-COMMAND *
-find_command (name)
-     char *name;
-{
-  register int i;
-
-  for (i = 0; commands[i].name; i++)
-    if (strcmp (name, commands[i].name) == 0)
-      return (&commands[i]);
-
-  return ((COMMAND *)NULL);
-}
-
-/* Strip whitespace from the start and end of STRING.  Return a pointer
-   into STRING. */
-char *
-stripwhite (string)
-     char *string;
-{
-  register char *s, *t;
-
-  for (s = string; whitespace (*s); s++)
-    ;
-    
-  if (*s == 0)
-    return (s);
-
-  t = s + strlen (s) - 1;
-  while (t > s && whitespace (*t))
-    t--;
-  *++t = '\0';
-
-  return s;
-}
-
-/* **************************************************************** */
-/*                                                                  */
-/*                  Interface to Readline Completion                */
-/*                                                                  */
-/* **************************************************************** */
-
-char *command_generator PARAMS((const char *, int));
-char **fileman_completion PARAMS((const char *, int, int));
-
-/* Tell the GNU Readline library how to complete.  We want to try to complete
-   on command names if this is the first word in the line, or on filenames
-   if not. */
-initialize_readline ()
-{
-  /* Allow conditional parsing of the ~/.inputrc file. */
-  rl_readline_name = "FileMan";
-
-  /* Tell the completer that we want a crack first. */
-  rl_attempted_completion_function = fileman_completion;
-}
-
-/* Attempt to complete on the contents of TEXT.  START and END bound the
-   region of rl_line_buffer that contains the word to complete.  TEXT is
-   the word to complete.  We can use the entire contents of rl_line_buffer
-   in case we want to do some simple parsing.  Return the array of matches,
-   or NULL if there aren't any. */
-char **
-fileman_completion (text, start, end)
-     const char *text;
-     int start, end;
-{
-  char **matches;
-
-  matches = (char **)NULL;
-
-  /* If this word is at the start of the line, then it is a command
-     to complete.  Otherwise it is the name of a file in the current
-     directory. */
-  if (start == 0)
-    matches = rl_completion_matches (text, command_generator);
-
-  return (matches);
-}
-
-/* Generator function for command completion.  STATE lets us know whether
-   to start from scratch; without any state (i.e. STATE == 0), then we
-   start at the top of the list. */
-char *
-command_generator (text, state)
-     const char *text;
-     int state;
-{
-  static int list_index, len;
-  char *name;
-
-  /* If this is a new word to complete, initialize now.  This includes
-     saving the length of TEXT for efficiency, and initializing the index
-     variable to 0. */
-  if (!state)
-    {
-      list_index = 0;
-      len = strlen (text);
-    }
-
-  /* Return the next name which partially matches from the command list. */
-  while (name = commands[list_index].name)
-    {
-      list_index++;
-
-      if (strncmp (name, text, len) == 0)
-        return (dupstr(name));
-    }
-
-  /* If no names matched, then return NULL. */
-  return ((char *)NULL);
-}
-
-/* **************************************************************** */
-/*                                                                  */
-/*                       FileMan Commands                           */
-/*                                                                  */
-/* **************************************************************** */
-
-/* String to pass to system ().  This is for the LIST, VIEW and RENAME
-   commands. */
-static char syscom[1024];
-
-/* List the file(s) named in arg. */
-com_list (arg)
-     char *arg;
-{
-  if (!arg)
-    arg = "";
-
-  sprintf (syscom, "ls -FClg %s", arg);
-  return (system (syscom));
-}
-
-com_view (arg)
-     char *arg;
-{
-  if (!valid_argument ("view", arg))
-    return 1;
-
-#if defined (__MSDOS__)
-  /* more.com doesn't grok slashes in pathnames */
-  sprintf (syscom, "less %s", arg);
-#else
-  sprintf (syscom, "more %s", arg);
-#endif
-  return (system (syscom));
-}
-
-com_rename (arg)
-     char *arg;
-{
-  too_dangerous ("rename");
-  return (1);
-}
-
-com_stat (arg)
-     char *arg;
-{
-  struct stat finfo;
-
-  if (!valid_argument ("stat", arg))
-    return (1);
-
-  if (stat (arg, &finfo) == -1)
-    {
-      perror (arg);
-      return (1);
-    }
-
-  printf ("Statistics for `%s':\n", arg);
-
-  printf ("%s has %d link%s, and is %d byte%s in length.\n",
-	  arg,
-          finfo.st_nlink,
-          (finfo.st_nlink == 1) ? "" : "s",
-          finfo.st_size,
-          (finfo.st_size == 1) ? "" : "s");
-  printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
-  printf ("      Last access at: %s", ctime (&finfo.st_atime));
-  printf ("    Last modified at: %s", ctime (&finfo.st_mtime));
-  return (0);
-}
-
-com_delete (arg)
-     char *arg;
-{
-  too_dangerous ("delete");
-  return (1);
-}
-
-/* Print out help for ARG, or for all of the commands if ARG is
-   not present. */
-com_help (arg)
-     char *arg;
-{
-  register int i;
-  int printed = 0;
-
-  for (i = 0; commands[i].name; i++)
-    {
-      if (!*arg || (strcmp (arg, commands[i].name) == 0))
-        {
-          printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
-          printed++;
-        }
-    }
-
-  if (!printed)
-    {
-      printf ("No commands match `%s'.  Possibilties are:\n", arg);
-
-      for (i = 0; commands[i].name; i++)
-        {
-          /* Print in six columns. */
-          if (printed == 6)
-            {
-              printed = 0;
-              printf ("\n");
-            }
-
-          printf ("%s\t", commands[i].name);
-          printed++;
-        }
-
-      if (printed)
-        printf ("\n");
-    }
-  return (0);
-}
-
-/* Change to the directory ARG. */
-com_cd (arg)
-     char *arg;
-{
-  if (chdir (arg) == -1)
-    {
-      perror (arg);
-      return 1;
-    }
-
-  com_pwd ("");
-  return (0);
-}
-
-/* Print out the current working directory. */
-com_pwd (ignore)
-     char *ignore;
-{
-  char dir[1024], *s;
-
-  s = getcwd (dir, sizeof(dir) - 1);
-  if (s == 0)
-    {
-      printf ("Error getting pwd: %s\n", dir);
-      return 1;
-    }
-
-  printf ("Current directory is %s\n", dir);
-  return 0;
-}
-
-/* The user wishes to quit using this program.  Just set DONE non-zero. */
-com_quit (arg)
-     char *arg;
-{
-  done = 1;
-  return (0);
-}
-
-/* Function which tells you that you can't do this. */
-too_dangerous (caller)
-     char *caller;
-{
-  fprintf (stderr,
-           "%s: Too dangerous for me to distribute.  Write it yourself.\n",
-           caller);
-}
-
-/* Return non-zero if ARG is a valid argument for CALLER, else print
-   an error message and return zero. */
-int
-valid_argument (caller, arg)
-     char *caller, *arg;
-{
-  if (!arg || !*arg)
-    {
-      fprintf (stderr, "%s: Argument required.\n", caller);
-      return (0);
-    }
-
-  return (1);
-}
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

A. GNU Free Documentation License

- -

- -

- Version 1.3, 3 November 2008 -
-

- -
 
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-http://fsf.org/
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-

- -

    -
  1. -PREAMBLE -

    - -The purpose of this License is to make a manual, textbook, or other -functional and useful document free in the sense of freedom: to -assure everyone the effective freedom to copy and redistribute it, -with or without modifying it, either commercially or noncommercially. -Secondarily, this License preserves for the author and publisher a way -to get credit for their work, while not being considered responsible -for modifications made by others. -

    - -This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. -

    - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. -

    - -

  2. -APPLICABILITY AND DEFINITIONS -

    - -This License applies to any manual or other work, in any medium, that -contains a notice placed by the copyright holder saying it can be -distributed under the terms of this License. Such a notice grants a -world-wide, royalty-free license, unlimited in duration, to use that -work under the conditions stated herein. The "Document", below, -refers to any such manual or work. Any member of the public is a -licensee, and is addressed as "you". You accept the license if you -copy, modify or distribute the work in a way requiring permission -under copyright law. -

    - -A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. -

    - -A "Secondary Section" is a named appendix or a front-matter section -of the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall -subject (or to related matters) and contains nothing that could fall -directly within that overall subject. (Thus, if the Document is in -part a textbook of mathematics, a Secondary Section may not explain -any mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. -

    - -The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. If a -section does not fit the above definition of Secondary then it is not -allowed to be designated as Invariant. The Document may contain zero -Invariant Sections. If the Document does not identify any Invariant -Sections then there are none. -

    - -The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. A Front-Cover Text may -be at most 5 words, and a Back-Cover Text may be at most 25 words. -

    - -A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, that is suitable for revising the document -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup, or absence of markup, has been arranged to thwart -or discourage subsequent modification by readers is not Transparent. -An image format is not Transparent if used for any substantial amount -of text. A copy that is not "Transparent" is called "Opaque". -

    - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input -format, SGML or XML using a publicly available -DTD, and standard-conforming simple HTML, -PostScript or PDF designed for human modification. Examples -of transparent image formats include PNG, XCF and -JPG. Opaque formats include proprietary formats that can be -read and edited only by proprietary word processors, SGML or -XML for which the DTD and/or processing tools are -not generally available, and the machine-generated HTML, -PostScript or PDF produced by some word processors for -output purposes only. -

    - -The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, "Title Page" means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. -

    - -The "publisher" means any person or entity that distributes copies -of the Document to the public. -

    - -A section "Entitled XYZ" means a named subunit of the Document whose -title either is precisely XYZ or contains XYZ in parentheses following -text that translates XYZ in another language. (Here XYZ stands for a -specific section name mentioned below, such as "Acknowledgements", -"Dedications", "Endorsements", or "History".) To "Preserve the Title" -of such a section when you modify the Document means that it remains a -section "Entitled XYZ" according to this definition. -

    - -The Document may include Warranty Disclaimers next to the notice which -states that this License applies to the Document. These Warranty -Disclaimers are considered to be included by reference in this -License, but only as regards disclaiming warranties: any other -implication that these Warranty Disclaimers may have is void and has -no effect on the meaning of this License. -

    - -

  3. -VERBATIM COPYING -

    - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. -

    - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. -

    - -

  4. -COPYING IN QUANTITY -

    - -If you publish printed copies (or copies in media that commonly have -printed covers) of the Document, numbering more than 100, and the -Document's license notice requires Cover Texts, you must enclose the -copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. -

    - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. -

    - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a computer-network location from which the general network-using -public has access to download using public-standard network protocols -a complete Transparent copy of the Document, free of added material. -If you use the latter option, you must take reasonably prudent steps, -when you begin distribution of Opaque copies in quantity, to ensure -that this Transparent copy will remain thus accessible at the stated -location until at least one year after the last time you distribute an -Opaque copy (directly or through your agents or retailers) of that -edition to the public. -

    - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. -

    - -

  5. -MODIFICATIONS -

    - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: -

    - -

      -
    1. -Use in the Title Page (and on the covers, if any) a title distinct -from that of the Document, and from those of previous versions -(which should, if there were any, be listed in the History section -of the Document). You may use the same title as a previous version -if the original publisher of that version gives permission. -

      - -

    2. -List on the Title Page, as authors, one or more persons or entities -responsible for authorship of the modifications in the Modified -Version, together with at least five of the principal authors of the -Document (all of its principal authors, if it has fewer than five), -unless they release you from this requirement. -

      - -

    3. -State on the Title page the name of the publisher of the -Modified Version, as the publisher. -

      - -

    4. -Preserve all the copyright notices of the Document. -

      - -

    5. -Add an appropriate copyright notice for your modifications -adjacent to the other copyright notices. -

      - -

    6. -Include, immediately after the copyright notices, a license notice -giving the public permission to use the Modified Version under the -terms of this License, in the form shown in the Addendum below. -

      - -

    7. -Preserve in that license notice the full lists of Invariant Sections -and required Cover Texts given in the Document's license notice. -

      - -

    8. -Include an unaltered copy of this License. -

      - -

    9. -Preserve the section Entitled "History", Preserve its Title, and add -to it an item stating at least the title, year, new authors, and -publisher of the Modified Version as given on the Title Page. If -there is no section Entitled "History" in the Document, create one -stating the title, year, authors, and publisher of the Document as -given on its Title Page, then add an item describing the Modified -Version as stated in the previous sentence. -

      - -

    10. -Preserve the network location, if any, given in the Document for -public access to a Transparent copy of the Document, and likewise -the network locations given in the Document for previous versions -it was based on. These may be placed in the "History" section. -You may omit a network location for a work that was published at -least four years before the Document itself, or if the original -publisher of the version it refers to gives permission. -

      - -

    11. -For any section Entitled "Acknowledgements" or "Dedications", Preserve -the Title of the section, and preserve in the section all the -substance and tone of each of the contributor acknowledgements and/or -dedications given therein. -

      - -

    12. -Preserve all the Invariant Sections of the Document, -unaltered in their text and in their titles. Section numbers -or the equivalent are not considered part of the section titles. -

      - -

    13. -Delete any section Entitled "Endorsements". Such a section -may not be included in the Modified Version. -

      - -

    14. -Do not retitle any existing section to be Entitled "Endorsements" or -to conflict in title with any Invariant Section. -

      - -

    15. -Preserve any Warranty Disclaimers. -
    -

    - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. -

    - -You may add a section Entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties--for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. -

    - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. -

    - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. -

    - -

  6. -COMBINING DOCUMENTS -

    - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice, and that you preserve all their Warranty Disclaimers. -

    - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. -

    - -In the combination, you must combine any sections Entitled "History" -in the various original documents, forming one section Entitled -"History"; likewise combine any sections Entitled "Acknowledgements", -and any sections Entitled "Dedications". You must delete all -sections Entitled "Endorsements." -

    - -

  7. -COLLECTIONS OF DOCUMENTS -

    - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. -

    - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. -

    - -

  8. -AGGREGATION WITH INDEPENDENT WORKS -

    - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, is called an "aggregate" if the copyright -resulting from the compilation is not used to limit the legal rights -of the compilation's users beyond what the individual works permit. -When the Document is included in an aggregate, this License does not -apply to the other works in the aggregate which are not themselves -derivative works of the Document. -

    - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one half of -the entire aggregate, the Document's Cover Texts may be placed on -covers that bracket the Document within the aggregate, or the -electronic equivalent of covers if the Document is in electronic form. -Otherwise they must appear on printed covers that bracket the whole -aggregate. -

    - -

  9. -TRANSLATION -

    - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License, and all the license notices in the -Document, and any Warranty Disclaimers, provided that you also include -the original English version of this License and the original versions -of those notices and disclaimers. In case of a disagreement between -the translation and the original version of this License or a notice -or disclaimer, the original version will prevail. -

    - -If a section in the Document is Entitled "Acknowledgements", -"Dedications", or "History", the requirement (section 4) to Preserve -its Title (section 1) will typically require changing the actual -title. -

    - -

  10. -TERMINATION -

    - -You may not copy, modify, sublicense, or distribute the Document -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense, or distribute it is void, and -will automatically terminate your rights under this License. -

    - -However, if you cease all violation of this License, then your license -from a particular copyright holder is reinstated (a) provisionally, -unless and until the copyright holder explicitly and finally -terminates your license, and (b) permanently, if the copyright holder -fails to notify you of the violation by some reasonable means prior to -60 days after the cessation. -

    - -Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. -

    - -Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, receipt of a copy of some or all of the same material does -not give you any rights to use it. -

    - -

  11. -FUTURE REVISIONS OF THIS LICENSE -

    - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -http://www.gnu.org/copyleft/. -

    - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. If the Document -specifies that a proxy can decide which future versions of this -License can be used, that proxy's public statement of acceptance of a -version permanently authorizes you to choose that version for the -Document. -

    - -

  12. -RELICENSING -

    - -"Massive Multiauthor Collaboration Site" (or "MMC Site") means any -World Wide Web server that publishes copyrightable works and also -provides prominent facilities for anybody to edit those works. A -public wiki that anybody can edit is an example of such a server. A -"Massive Multiauthor Collaboration" (or "MMC") contained in the -site means any set of copyrightable works thus published on the MMC -site. -

    - -"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 -license published by Creative Commons Corporation, a not-for-profit -corporation with a principal place of business in San Francisco, -California, as well as future copyleft versions of that license -published by that same organization. -

    - -"Incorporate" means to publish or republish a Document, in whole or -in part, as part of another Document. -

    - -An MMC is "eligible for relicensing" if it is licensed under this -License, and if all works that were first published under this License -somewhere other than this MMC, and subsequently incorporated in whole -or in part into the MMC, (1) had no cover texts or invariant sections, -and (2) were thus incorporated prior to November 1, 2008. -

    - -The operator of an MMC Site may republish an MMC contained in the site -under CC-BY-SA on the same site at any time before August 1, 2009, -provided the MMC is eligible for relicensing. -

    - -

-

- - -

ADDENDUM: How to use this License for your documents

- -

- -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: -

- -
 
  Copyright (C)  year  your name.
-  Permission is granted to copy, distribute and/or modify this document
-  under the terms of the GNU Free Documentation License, Version 1.3
-  or any later version published by the Free Software Foundation;
-  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-  Texts.  A copy of the license is included in the section entitled ``GNU
-  Free Documentation License''.
-

- -If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the "with...Texts." line with this: -

- -
 
    with the Invariant Sections being list their titles, with
-    the Front-Cover Texts being list, and with the Back-Cover Texts
-    being list.
-

- -If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. -

- -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

Concept Index

- -
Jump to:   A -   -C -   -E -   -I -   -K -   -N -   -R -   -V -   -Y -   -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Index Entry Section

A
application-specific completion functions2.6 Custom Completers

C
command editing1.2.1 Readline Bare Essentials

E
editing command lines1.2.1 Readline Bare Essentials

I
initialization file, readline1.3 Readline Init File
interaction, readline1.2 Readline Interaction

K
kill ring1.2.3 Readline Killing Commands
killing text1.2.3 Readline Killing Commands

N
notation, readline1.2.1 Readline Bare Essentials

R
readline, function2.1 Basic Behavior

V
variables, readline1.3.1 Readline Init File Syntax

Y
yanking text1.2.3 Readline Killing Commands

Jump to:   A -   -C -   -E -   -I -   -K -   -N -   -R -   -V -   -Y -   -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

Function and Variable Index

- -
Jump to:   _ -   -
-A -   -B -   -C -   -D -   -E -   -F -   -H -   -I -   -K -   -M -   -N -   -O -   -P -   -Q -   -R -   -S -   -T -   -U -   -V -   -Y -   -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Index Entry Section

_
_rl_digit_p2.4.10 Utility Functions
_rl_digit_value2.4.10 Utility Functions
_rl_lowercase_p2.4.10 Utility Functions
_rl_to_lower2.4.10 Utility Functions
_rl_to_upper2.4.10 Utility Functions
_rl_uppercase_p2.4.10 Utility Functions

A
abort (C-g)1.4.8 Some Miscellaneous Commands
abort (C-g)1.4.8 Some Miscellaneous Commands
accept-line (Newline or Return)1.4.2 Commands For Manipulating The History
accept-line (Newline or Return)1.4.2 Commands For Manipulating The History

B
backward-char (C-b)1.4.1 Commands For Moving
backward-char (C-b)1.4.1 Commands For Moving
backward-delete-char (Rubout)1.4.3 Commands For Changing Text
backward-delete-char (Rubout)1.4.3 Commands For Changing Text
backward-kill-line (C-x Rubout)1.4.4 Killing And Yanking
backward-kill-line (C-x Rubout)1.4.4 Killing And Yanking
backward-kill-word (M-DEL)1.4.4 Killing And Yanking
backward-kill-word (M-DEL)1.4.4 Killing And Yanking
backward-word (M-b)1.4.1 Commands For Moving
backward-word (M-b)1.4.1 Commands For Moving
beginning-of-history (M-&#60;)1.4.2 Commands For Manipulating The History
beginning-of-history (M-&#60;)1.4.2 Commands For Manipulating The History
beginning-of-line (C-a)1.4.1 Commands For Moving
beginning-of-line (C-a)1.4.1 Commands For Moving
bell-style1.3.1 Readline Init File Syntax
bind-tty-special-chars1.3.1 Readline Init File Syntax

C
call-last-kbd-macro (C-x e)1.4.7 Keyboard Macros
call-last-kbd-macro (C-x e)1.4.7 Keyboard Macros
capitalize-word (M-c)1.4.3 Commands For Changing Text
capitalize-word (M-c)1.4.3 Commands For Changing Text
character-search (C-])1.4.8 Some Miscellaneous Commands
character-search (C-])1.4.8 Some Miscellaneous Commands
character-search-backward (M-C-])1.4.8 Some Miscellaneous Commands
character-search-backward (M-C-])1.4.8 Some Miscellaneous Commands
clear-screen (C-l)1.4.1 Commands For Moving
clear-screen (C-l)1.4.1 Commands For Moving
comment-begin1.3.1 Readline Init File Syntax
complete (TAB)1.4.6 Letting Readline Type For You
complete (TAB)1.4.6 Letting Readline Type For You
completion-display-width1.3.1 Readline Init File Syntax
completion-ignore-case1.3.1 Readline Init File Syntax
completion-map-case1.3.1 Readline Init File Syntax
completion-prefix-display-length1.3.1 Readline Init File Syntax
completion-query-items1.3.1 Readline Init File Syntax
convert-meta1.3.1 Readline Init File Syntax
copy-backward-word ()1.4.4 Killing And Yanking
copy-backward-word ()1.4.4 Killing And Yanking
copy-forward-word ()1.4.4 Killing And Yanking
copy-forward-word ()1.4.4 Killing And Yanking
copy-region-as-kill ()1.4.4 Killing And Yanking
copy-region-as-kill ()1.4.4 Killing And Yanking

D
delete-char (C-d)1.4.3 Commands For Changing Text
delete-char (C-d)1.4.3 Commands For Changing Text
delete-char-or-list ()1.4.6 Letting Readline Type For You
delete-char-or-list ()1.4.6 Letting Readline Type For You
delete-horizontal-space ()1.4.4 Killing And Yanking
delete-horizontal-space ()1.4.4 Killing And Yanking
digit-argument (M-0, M-1, <small>...</small> M--)1.4.5 Specifying Numeric Arguments
digit-argument (M-0, M-1, <small>...</small> M--)1.4.5 Specifying Numeric Arguments
disable-completion1.3.1 Readline Init File Syntax
do-uppercase-version (M-a, M-b, M-x, <small>...</small>)1.4.8 Some Miscellaneous Commands
do-uppercase-version (M-a, M-b, M-x, <small>...</small>)1.4.8 Some Miscellaneous Commands
downcase-word (M-l)1.4.3 Commands For Changing Text
downcase-word (M-l)1.4.3 Commands For Changing Text
dump-functions ()1.4.8 Some Miscellaneous Commands
dump-functions ()1.4.8 Some Miscellaneous Commands
dump-macros ()1.4.8 Some Miscellaneous Commands
dump-macros ()1.4.8 Some Miscellaneous Commands
dump-variables ()1.4.8 Some Miscellaneous Commands
dump-variables ()1.4.8 Some Miscellaneous Commands

E
editing-mode1.3.1 Readline Init File Syntax
emacs-editing-mode (C-e)1.4.8 Some Miscellaneous Commands
emacs-editing-mode (C-e)1.4.8 Some Miscellaneous Commands
enable-keypad1.3.1 Readline Init File Syntax
end-kbd-macro (C-x ))1.4.7 Keyboard Macros
end-kbd-macro (C-x ))1.4.7 Keyboard Macros
end-of-history (M-&#62;)1.4.2 Commands For Manipulating The History
end-of-history (M-&#62;)1.4.2 Commands For Manipulating The History
end-of-line (C-e)1.4.1 Commands For Moving
end-of-line (C-e)1.4.1 Commands For Moving
exchange-point-and-mark (C-x C-x)1.4.8 Some Miscellaneous Commands
exchange-point-and-mark (C-x C-x)1.4.8 Some Miscellaneous Commands
expand-tilde1.3.1 Readline Init File Syntax

F
forward-backward-delete-char ()1.4.3 Commands For Changing Text
forward-backward-delete-char ()1.4.3 Commands For Changing Text
forward-char (C-f)1.4.1 Commands For Moving
forward-char (C-f)1.4.1 Commands For Moving
forward-search-history (C-s)1.4.2 Commands For Manipulating The History
forward-search-history (C-s)1.4.2 Commands For Manipulating The History
forward-word (M-f)1.4.1 Commands For Moving
forward-word (M-f)1.4.1 Commands For Moving

H
history-preserve-point1.3.1 Readline Init File Syntax
history-search-backward ()1.4.2 Commands For Manipulating The History
history-search-backward ()1.4.2 Commands For Manipulating The History
history-search-forward ()1.4.2 Commands For Manipulating The History
history-search-forward ()1.4.2 Commands For Manipulating The History
history-size1.3.1 Readline Init File Syntax
horizontal-scroll-mode1.3.1 Readline Init File Syntax

I
input-meta1.3.1 Readline Init File Syntax
insert-comment (M-#)1.4.8 Some Miscellaneous Commands
insert-comment (M-#)1.4.8 Some Miscellaneous Commands
insert-completions (M-*)1.4.6 Letting Readline Type For You
insert-completions (M-*)1.4.6 Letting Readline Type For You
isearch-terminators1.3.1 Readline Init File Syntax

K
keymap1.3.1 Readline Init File Syntax
kill-line (C-k)1.4.4 Killing And Yanking
kill-line (C-k)1.4.4 Killing And Yanking
kill-region ()1.4.4 Killing And Yanking
kill-region ()1.4.4 Killing And Yanking
kill-whole-line ()1.4.4 Killing And Yanking
kill-whole-line ()1.4.4 Killing And Yanking
kill-word (M-d)1.4.4 Killing And Yanking
kill-word (M-d)1.4.4 Killing And Yanking

M
mark-modified-lines1.3.1 Readline Init File Syntax
mark-symlinked-directories1.3.1 Readline Init File Syntax
match-hidden-files1.3.1 Readline Init File Syntax
menu-complete ()1.4.6 Letting Readline Type For You
menu-complete ()1.4.6 Letting Readline Type For You
menu-complete-backward ()1.4.6 Letting Readline Type For You
menu-complete-backward ()1.4.6 Letting Readline Type For You
menu-complete-display-prefix1.3.1 Readline Init File Syntax
meta-flag1.3.1 Readline Init File Syntax

N
next-history (C-n)1.4.2 Commands For Manipulating The History
next-history (C-n)1.4.2 Commands For Manipulating The History
non-incremental-forward-search-history (M-n)1.4.2 Commands For Manipulating The History
non-incremental-forward-search-history (M-n)1.4.2 Commands For Manipulating The History
non-incremental-reverse-search-history (M-p)1.4.2 Commands For Manipulating The History
non-incremental-reverse-search-history (M-p)1.4.2 Commands For Manipulating The History

O
output-meta1.3.1 Readline Init File Syntax
overwrite-mode ()1.4.3 Commands For Changing Text
overwrite-mode ()1.4.3 Commands For Changing Text

P
page-completions1.3.1 Readline Init File Syntax
possible-completions (M-?)1.4.6 Letting Readline Type For You
possible-completions (M-?)1.4.6 Letting Readline Type For You
prefix-meta (ESC)1.4.8 Some Miscellaneous Commands
prefix-meta (ESC)1.4.8 Some Miscellaneous Commands
previous-history (C-p)1.4.2 Commands For Manipulating The History
previous-history (C-p)1.4.2 Commands For Manipulating The History

Q
quoted-insert (C-q or C-v)1.4.3 Commands For Changing Text
quoted-insert (C-q or C-v)1.4.3 Commands For Changing Text

R
re-read-init-file (C-x C-r)1.4.8 Some Miscellaneous Commands
re-read-init-file (C-x C-r)1.4.8 Some Miscellaneous Commands
readline2.1 Basic Behavior
redraw-current-line ()1.4.1 Commands For Moving
redraw-current-line ()1.4.1 Commands For Moving
reverse-search-history (C-r)1.4.2 Commands For Manipulating The History
reverse-search-history (C-r)1.4.2 Commands For Manipulating The History
revert-all-at-newline1.3.1 Readline Init File Syntax
revert-line (M-r)1.4.8 Some Miscellaneous Commands
revert-line (M-r)1.4.8 Some Miscellaneous Commands
rl_add_defun2.4.1 Naming a Function
rl_add_funmap_entry2.4.4 Associating Function Names and Bindings
rl_add_undo2.4.5 Allowing Undoing
rl_alphabetic2.4.10 Utility Functions
rl_already_prompted2.3 Readline Variables
rl_attempted_completion_function2.6.3 Completion Variables
rl_attempted_completion_over2.6.3 Completion Variables
rl_basic_quote_characters2.6.3 Completion Variables
rl_basic_word_break_characters2.6.3 Completion Variables
rl_begin_undo_group2.4.5 Allowing Undoing
rl_bind_key2.4.3 Binding Keys
rl_bind_key_if_unbound2.4.3 Binding Keys
rl_bind_key_if_unbound_in_map2.4.3 Binding Keys
rl_bind_key_in_map2.4.3 Binding Keys
rl_bind_keyseq2.4.3 Binding Keys
rl_bind_keyseq_if_unbound2.4.3 Binding Keys
rl_bind_keyseq_if_unbound_in_map2.4.3 Binding Keys
rl_bind_keyseq_in_map2.4.3 Binding Keys
rl_binding_keymap2.3 Readline Variables
rl_callback_handler_install2.4.12 Alternate Interface
rl_callback_handler_remove2.4.12 Alternate Interface
rl_callback_read_char2.4.12 Alternate Interface
rl_catch_signals2.5 Readline Signal Handling
rl_catch_sigwinch2.5 Readline Signal Handling
rl_char_is_quoted_p2.6.3 Completion Variables
rl_cleanup_after_signal2.5 Readline Signal Handling
rl_clear_message2.4.6 Redisplay
rl_clear_pending_input2.4.8 Character Input
rl_clear_signals2.5 Readline Signal Handling
rl_complete2.6.1 How Completing Works
rl_complete2.6.2 Completion Functions
rl_complete_internal2.6.2 Completion Functions
rl_completer_quote_characters2.6.3 Completion Variables
rl_completer_word_break_characters2.6.3 Completion Variables
rl_completion_append_character2.6.3 Completion Variables
rl_completion_display_matches_hook2.6.3 Completion Variables
rl_completion_entry_function2.6.1 How Completing Works
rl_completion_entry_function2.6.3 Completion Variables
rl_completion_found_quote2.6.3 Completion Variables
rl_completion_invoking_key2.6.3 Completion Variables
rl_completion_mark_symlink_dirs2.6.3 Completion Variables
rl_completion_matches2.6.2 Completion Functions
rl_completion_mode2.6.2 Completion Functions
rl_completion_query_items2.6.3 Completion Variables
rl_completion_quote_character2.6.3 Completion Variables
rl_completion_suppress_append2.6.3 Completion Variables
rl_completion_suppress_quote2.6.3 Completion Variables
rl_completion_type2.6.3 Completion Variables
rl_completion_word_break_hook2.6.3 Completion Variables
rl_copy_keymap2.4.2 Selecting a Keymap
rl_copy_text2.4.7 Modifying Text
rl_crlf2.4.6 Redisplay
rl_delete_text2.4.7 Modifying Text
rl_deprep_term_function2.3 Readline Variables
rl_deprep_terminal2.4.9 Terminal Management
rl_ding2.4.10 Utility Functions
rl_directory_completion_hook2.6.3 Completion Variables
rl_discard_keymap2.4.2 Selecting a Keymap
rl_dispatching2.3 Readline Variables
rl_display_match_list2.4.10 Utility Functions
rl_display_prompt2.3 Readline Variables
rl_do_undo2.4.5 Allowing Undoing
rl_done2.3 Readline Variables
rl_echo_signal_char2.5 Readline Signal Handling
rl_editing_mode2.3 Readline Variables
rl_end2.3 Readline Variables
rl_end_undo_group2.4.5 Allowing Undoing
rl_erase_empty_line2.3 Readline Variables
rl_event_hook2.3 Readline Variables
rl_execute_next2.4.8 Character Input
rl_executing_keymap2.3 Readline Variables
rl_executing_macro2.3 Readline Variables
rl_expand_prompt2.4.6 Redisplay
rl_explicit_arg2.3 Readline Variables
rl_extend_line_buffer2.4.10 Utility Functions
rl_filename_completion_desired2.6.3 Completion Variables
rl_filename_completion_function2.6.2 Completion Functions
rl_filename_dequoting_function2.6.3 Completion Variables
rl_filename_quote_characters2.6.3 Completion Variables
rl_filename_quoting_desired2.6.3 Completion Variables
rl_filename_quoting_function2.6.3 Completion Variables
rl_filename_rewrite_hook2.6.3 Completion Variables
rl_forced_update_display2.4.6 Redisplay
rl_free2.4.10 Utility Functions
rl_free_keymap2.4.2 Selecting a Keymap
rl_free_line_state2.5 Readline Signal Handling
rl_free_undo_list2.4.5 Allowing Undoing
rl_function_dumper2.4.4 Associating Function Names and Bindings
rl_function_of_keyseq2.4.4 Associating Function Names and Bindings
rl_funmap_names2.4.4 Associating Function Names and Bindings
rl_generic_bind2.4.3 Binding Keys
rl_get_keymap2.4.2 Selecting a Keymap
rl_get_keymap_by_name2.4.2 Selecting a Keymap
rl_get_keymap_name2.4.2 Selecting a Keymap
rl_get_screen_size2.5 Readline Signal Handling
rl_get_termcap2.4.11 Miscellaneous Functions
rl_getc2.4.8 Character Input
rl_getc_function2.3 Readline Variables
rl_gnu_readline_p2.3 Readline Variables
rl_ignore_completion_duplicates2.6.3 Completion Variables
rl_ignore_some_completions_function2.6.3 Completion Variables
rl_inhibit_completion2.6.3 Completion Variables
rl_initialize2.4.10 Utility Functions
rl_insert_completions2.6.2 Completion Functions
rl_insert_text2.4.7 Modifying Text
rl_instream2.3 Readline Variables
rl_invoking_keyseqs2.4.4 Associating Function Names and Bindings
rl_invoking_keyseqs_in_map2.4.4 Associating Function Names and Bindings
rl_kill_text2.4.7 Modifying Text
rl_last_func2.3 Readline Variables
rl_library_version2.3 Readline Variables
rl_line_buffer2.3 Readline Variables
rl_list_funmap_names2.4.4 Associating Function Names and Bindings
rl_macro_bind2.4.11 Miscellaneous Functions
rl_macro_dumper2.4.11 Miscellaneous Functions
rl_make_bare_keymap2.4.2 Selecting a Keymap
rl_make_keymap2.4.2 Selecting a Keymap
rl_mark2.3 Readline Variables
rl_message2.4.6 Redisplay
rl_modifying2.4.5 Allowing Undoing
rl_named_function2.4.4 Associating Function Names and Bindings
rl_num_chars_to_read2.3 Readline Variables
rl_numeric_arg2.3 Readline Variables
rl_on_new_line2.4.6 Redisplay
rl_on_new_line_with_prompt2.4.6 Redisplay
rl_outstream2.3 Readline Variables
rl_parse_and_bind2.4.3 Binding Keys
rl_pending_input2.3 Readline Variables
rl_point2.3 Readline Variables
rl_possible_completions2.6.2 Completion Functions
rl_pre_input_hook2.3 Readline Variables
rl_prefer_env_winsize2.3 Readline Variables
rl_prep_term_function2.3 Readline Variables
rl_prep_terminal2.4.9 Terminal Management
rl_prompt2.3 Readline Variables
rl_push_macro_input2.4.7 Modifying Text
rl_read_init_file2.4.3 Binding Keys
rl_read_key2.4.8 Character Input
rl_readline_name2.3 Readline Variables
rl_readline_state2.3 Readline Variables
rl_readline_version2.3 Readline Variables
rl_redisplay2.4.6 Redisplay
rl_redisplay_function2.3 Readline Variables
rl_replace_line2.4.10 Utility Functions
rl_reset_after_signal2.5 Readline Signal Handling
rl_reset_line_state2.4.6 Redisplay
rl_reset_screen_size2.5 Readline Signal Handling
rl_reset_terminal2.4.9 Terminal Management
rl_resize_terminal2.5 Readline Signal Handling
rl_restore_prompt2.4.6 Redisplay
rl_restore_state2.4.10 Utility Functions
rl_save_prompt2.4.6 Redisplay
rl_save_state2.4.10 Utility Functions
rl_set_key2.4.3 Binding Keys
rl_set_keyboard_input_timeout2.4.8 Character Input
rl_set_keymap2.4.2 Selecting a Keymap
rl_set_paren_blink_timeout2.4.11 Miscellaneous Functions
rl_set_prompt2.4.6 Redisplay
rl_set_screen_size2.5 Readline Signal Handling
rl_set_signals2.5 Readline Signal Handling
rl_show_char2.4.6 Redisplay
rl_sort_completion_matches2.6.3 Completion Variables
rl_special_prefixes2.6.3 Completion Variables
rl_startup_hook2.3 Readline Variables
rl_stuff_char2.4.8 Character Input
rl_terminal_name2.3 Readline Variables
rl_tty_set_default_bindings2.4.9 Terminal Management
rl_tty_unset_default_bindings2.4.9 Terminal Management
rl_unbind_command_in_map2.4.3 Binding Keys
rl_unbind_function_in_map2.4.3 Binding Keys
rl_unbind_key2.4.3 Binding Keys
rl_unbind_key_in_map2.4.3 Binding Keys
rl_username_completion_function2.6.2 Completion Functions
rl_variable_bind2.4.11 Miscellaneous Functions
rl_variable_dumper2.4.11 Miscellaneous Functions
rl_variable_value2.4.11 Miscellaneous Functions

S
self-insert (a, b, A, 1, !, <small>...</small>)1.4.3 Commands For Changing Text
self-insert (a, b, A, 1, !, <small>...</small>)1.4.3 Commands For Changing Text
set-mark (C-@)1.4.8 Some Miscellaneous Commands
set-mark (C-@)1.4.8 Some Miscellaneous Commands
show-all-if-ambiguous1.3.1 Readline Init File Syntax
show-all-if-unmodified1.3.1 Readline Init File Syntax
skip-completed-text1.3.1 Readline Init File Syntax
skip-csi-sequence ()1.4.8 Some Miscellaneous Commands
skip-csi-sequence ()1.4.8 Some Miscellaneous Commands
start-kbd-macro (C-x ()1.4.7 Keyboard Macros
start-kbd-macro (C-x ()1.4.7 Keyboard Macros

T
tab-insert (M-TAB)1.4.3 Commands For Changing Text
tab-insert (M-TAB)1.4.3 Commands For Changing Text
tilde-expand (M-~)1.4.8 Some Miscellaneous Commands
tilde-expand (M-~)1.4.8 Some Miscellaneous Commands
transpose-chars (C-t)1.4.3 Commands For Changing Text
transpose-chars (C-t)1.4.3 Commands For Changing Text
transpose-words (M-t)1.4.3 Commands For Changing Text
transpose-words (M-t)1.4.3 Commands For Changing Text

U
undo (C-_ or C-x C-u)1.4.8 Some Miscellaneous Commands
undo (C-_ or C-x C-u)1.4.8 Some Miscellaneous Commands
universal-argument ()1.4.5 Specifying Numeric Arguments
universal-argument ()1.4.5 Specifying Numeric Arguments
unix-filename-rubout ()1.4.4 Killing And Yanking
unix-filename-rubout ()1.4.4 Killing And Yanking
unix-line-discard (C-u)1.4.4 Killing And Yanking
unix-line-discard (C-u)1.4.4 Killing And Yanking
unix-word-rubout (C-w)1.4.4 Killing And Yanking
unix-word-rubout (C-w)1.4.4 Killing And Yanking
upcase-word (M-u)1.4.3 Commands For Changing Text
upcase-word (M-u)1.4.3 Commands For Changing Text

V
vi-editing-mode (M-C-j)1.4.8 Some Miscellaneous Commands
vi-editing-mode (M-C-j)1.4.8 Some Miscellaneous Commands
visible-stats1.3.1 Readline Init File Syntax

Y
yank (C-y)1.4.4 Killing And Yanking
yank (C-y)1.4.4 Killing And Yanking
yank-last-arg (M-. or M-_)1.4.2 Commands For Manipulating The History
yank-last-arg (M-. or M-_)1.4.2 Commands For Manipulating The History
yank-nth-arg (M-C-y)1.4.2 Commands For Manipulating The History
yank-nth-arg (M-C-y)1.4.2 Commands For Manipulating The History
yank-pop (M-y)1.4.4 Killing And Yanking
yank-pop (M-y)1.4.4 Killing And Yanking

Jump to:   _ -   -
-A -   -B -   -C -   -D -   -E -   -F -   -H -   -I -   -K -   -M -   -N -   -O -   -P -   -Q -   -R -   -S -   -T -   -U -   -V -   -Y -   -

- -


- - - - - - -
[Top][Contents][Index][ ? ]
-

Table of Contents

- -
- - - - - - -
[Top][Contents][Index][ ? ]
-

Short Table of Contents

-
-1. Command Line Editing -
-2. Programming with GNU Readline -
-A. GNU Free Documentation License -
-Concept Index -
-Function and Variable Index -
- -
-
- - - - - - -
[Top][Contents][Index][ ? ]
-

About this document

-This document was generated by Chet Ramey on February, 8 2011 -using texi2html -

-The buttons in the navigation panels have the following meaning: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Button Name Go to From 1.2.3 go to
- [ < ] -Back - -previous section in reading order - -1.2.2 -
- [ > ] -Forward - -next section in reading order - -1.2.4 -
- [ << ] -FastBack - -previous or up-and-previous section - -1.1 -
- [ Up ] -Up - -up section - -1.2 -
- [ >> ] -FastForward - -next or up-and-next section - -1.3 -
- [Top] -Top - -cover (top) of document - -   -
- [Contents] -Contents - -table of contents - -   -
- [Index] -Index - -concept index - -   -
- [ ? ] -About - -this page - -   -
-

-where the Example assumes that the current position -is at Subsubsection One-Two-Three of a document of -the following structure: -
    -
  • 1. Section One
  • -
      -
    • 1.1 Subsection One-One
    • -
        -
      • ...
      • -
      -
    • 1.2 Subsection One-Two
    • -
        -
      • 1.2.1 Subsubsection One-Two-One -
      • 1.2.2 Subsubsection One-Two-Two -
      • 1.2.3 Subsubsection One-Two-Three     -<== Current Position -
      • 1.2.4 Subsubsection One-Two-Four -
      -
    • 1.3 Subsection One-Three
    • -
        -
      • ...
      • -
      -
    • 1.4 Subsection One-Four
    • -
    -
- -
-
- -This document was generated -by Chet Ramey on February, 8 2011 -using texi2html - - - diff --git a/lib/readline/doc/readline.info b/lib/readline/doc/readline.info deleted file mode 100644 index 11c63711e..000000000 --- a/lib/readline/doc/readline.info +++ /dev/null @@ -1,4676 +0,0 @@ -This is readline.info, produced by makeinfo version 4.13 from -./rlman.texi. - -This manual describes the GNU Readline Library (version 6.2, September -6 2010), a library which aids in the consistency of user interface -across discrete programs which provide a command line interface. - - Copyright (C) 1988-2011 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.3 or any later version published by the Free Software - Foundation; with no Invariant Sections, with the Front-Cover texts - being "A GNU Manual", and with the Back-Cover Texts as in (a) - below. A copy of the license is included in the section entitled - "GNU Free Documentation License". - - (a) The FSF's Back-Cover Text is: You are free to copy and modify - this GNU manual. Buying copies from GNU Press supports the FSF in - developing GNU and promoting software freedom." - - -INFO-DIR-SECTION Libraries -START-INFO-DIR-ENTRY -* Readline: (readline). The GNU readline library API. -END-INFO-DIR-ENTRY - - -File: readline.info, Node: Top, Next: Command Line Editing, Up: (dir) - -GNU Readline Library -******************** - -This document describes the GNU Readline Library, a utility which aids -in the consistency of user interface across discrete programs which -provide a command line interface. - -* Menu: - -* Command Line Editing:: GNU Readline User's Manual. -* Programming with GNU Readline:: GNU Readline Programmer's Manual. -* GNU Free Documentation License:: License for copying this manual. -* Concept Index:: Index of concepts described in this manual. -* Function and Variable Index:: Index of externally visible functions - and variables. - - -File: readline.info, Node: Command Line Editing, Next: Programming with GNU Readline, Prev: Top, Up: Top - -1 Command Line Editing -********************** - -This chapter describes the basic features of the GNU command line -editing interface. - -* Menu: - -* Introduction and Notation:: Notation used in this text. -* Readline Interaction:: The minimum set of commands for editing a line. -* Readline Init File:: Customizing Readline from a user's view. -* Bindable Readline Commands:: A description of most of the Readline commands - available for binding -* Readline vi Mode:: A short description of how to make Readline - behave like the vi editor. - - -File: readline.info, Node: Introduction and Notation, Next: Readline Interaction, Up: Command Line Editing - -1.1 Introduction to Line Editing -================================ - -The following paragraphs describe the notation used to represent -keystrokes. - - The text `C-k' is read as `Control-K' and describes the character -produced when the key is pressed while the Control key is depressed. - - The text `M-k' is read as `Meta-K' and describes the character -produced when the Meta key (if you have one) is depressed, and the -key is pressed. The Meta key is labeled on many keyboards. On -keyboards with two keys labeled (usually to either side of the -space bar), the on the left side is generally set to work as a -Meta key. The key on the right may also be configured to work as -a Meta key or may be configured as some other modifier, such as a -Compose key for typing accented characters. - - If you do not have a Meta or key, or another key working as a -Meta key, the identical keystroke can be generated by typing -_first_, and then typing . Either process is known as "metafying" -the key. - - The text `M-C-k' is read as `Meta-Control-k' and describes the -character produced by "metafying" `C-k'. - - In addition, several keys have their own names. Specifically, -, , , , , and all stand for themselves -when seen in this text, or in an init file (*note Readline Init File::). -If your keyboard lacks a key, typing will produce the -desired character. The key may be labeled or on -some keyboards. - - -File: readline.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing - -1.2 Readline Interaction -======================== - -Often during an interactive session you type in a long line of text, -only to notice that the first word on the line is misspelled. The -Readline library gives you a set of commands for manipulating the text -as you type it in, allowing you to just fix your typo, and not forcing -you to retype the majority of the line. Using these editing commands, -you move the cursor to the place that needs correction, and delete or -insert the text of the corrections. Then, when you are satisfied with -the line, you simply press . You do not have to be at the end of -the line to press ; the entire line is accepted regardless of the -location of the cursor within the line. - -* Menu: - -* Readline Bare Essentials:: The least you need to know about Readline. -* Readline Movement Commands:: Moving about the input line. -* Readline Killing Commands:: How to delete text, and how to get it back! -* Readline Arguments:: Giving numeric arguments to commands. -* Searching:: Searching through previous lines. - - -File: readline.info, Node: Readline Bare Essentials, Next: Readline Movement Commands, Up: Readline Interaction - -1.2.1 Readline Bare Essentials ------------------------------- - -In order to enter characters into the line, simply type them. The typed -character appears where the cursor was, and then the cursor moves one -space to the right. If you mistype a character, you can use your erase -character to back up and delete the mistyped character. - - Sometimes you may mistype a character, and not notice the error -until you have typed several other characters. In that case, you can -type `C-b' to move the cursor to the left, and then correct your -mistake. Afterwards, you can move the cursor to the right with `C-f'. - - When you add text in the middle of a line, you will notice that -characters to the right of the cursor are `pushed over' to make room -for the text that you have inserted. Likewise, when you delete text -behind the cursor, characters to the right of the cursor are `pulled -back' to fill in the blank space created by the removal of the text. A -list of the bare essentials for editing the text of an input line -follows. - -`C-b' - Move back one character. - -`C-f' - Move forward one character. - - or - Delete the character to the left of the cursor. - -`C-d' - Delete the character underneath the cursor. - -Printing characters - Insert the character into the line at the cursor. - -`C-_' or `C-x C-u' - Undo the last editing command. You can undo all the way back to an - empty line. - -(Depending on your configuration, the key be set to delete -the character to the left of the cursor and the key set to delete -the character underneath the cursor, like `C-d', rather than the -character to the left of the cursor.) - - -File: readline.info, Node: Readline Movement Commands, Next: Readline Killing Commands, Prev: Readline Bare Essentials, Up: Readline Interaction - -1.2.2 Readline Movement Commands --------------------------------- - -The above table describes the most basic keystrokes that you need in -order to do editing of the input line. For your convenience, many -other commands have been added in addition to `C-b', `C-f', `C-d', and -. Here are some commands for moving more rapidly about the line. - -`C-a' - Move to the start of the line. - -`C-e' - Move to the end of the line. - -`M-f' - Move forward a word, where a word is composed of letters and - digits. - -`M-b' - Move backward a word. - -`C-l' - Clear the screen, reprinting the current line at the top. - - Notice how `C-f' moves forward a character, while `M-f' moves -forward a word. It is a loose convention that control keystrokes -operate on characters while meta keystrokes operate on words. - - -File: readline.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction - -1.2.3 Readline Killing Commands -------------------------------- - -"Killing" text means to delete the text from the line, but to save it -away for later use, usually by "yanking" (re-inserting) it back into -the line. (`Cut' and `paste' are more recent jargon for `kill' and -`yank'.) - - If the description for a command says that it `kills' text, then you -can be sure that you can get the text back in a different (or the same) -place later. - - When you use a kill command, the text is saved in a "kill-ring". -Any number of consecutive kills save all of the killed text together, so -that when you yank it back, you get it all. The kill ring is not line -specific; the text that you killed on a previously typed line is -available to be yanked back later, when you are typing another line. - - Here is the list of commands for killing text. - -`C-k' - Kill the text from the current cursor position to the end of the - line. - -`M-d' - Kill from the cursor to the end of the current word, or, if between - words, to the end of the next word. Word boundaries are the same - as those used by `M-f'. - -`M-' - Kill from the cursor the start of the current word, or, if between - words, to the start of the previous word. Word boundaries are the - same as those used by `M-b'. - -`C-w' - Kill from the cursor to the previous whitespace. This is - different than `M-' because the word boundaries differ. - - - Here is how to "yank" the text back into the line. Yanking means to -copy the most-recently-killed text from the kill buffer. - -`C-y' - Yank the most recently killed text back into the buffer at the - cursor. - -`M-y' - Rotate the kill-ring, and yank the new top. You can only do this - if the prior command is `C-y' or `M-y'. - - -File: readline.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction - -1.2.4 Readline Arguments ------------------------- - -You can pass numeric arguments to Readline commands. Sometimes the -argument acts as a repeat count, other times it is the sign of the -argument that is significant. If you pass a negative argument to a -command which normally acts in a forward direction, that command will -act in a backward direction. For example, to kill text back to the -start of the line, you might type `M-- C-k'. - - The general way to pass numeric arguments to a command is to type -meta digits before the command. If the first `digit' typed is a minus -sign (`-'), then the sign of the argument will be negative. Once you -have typed one meta digit to get the argument started, you can type the -remainder of the digits, and then the command. For example, to give -the `C-d' command an argument of 10, you could type `M-1 0 C-d', which -will delete the next ten characters on the input line. - - -File: readline.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction - -1.2.5 Searching for Commands in the History -------------------------------------------- - -Readline provides commands for searching through the command history -for lines containing a specified string. There are two search modes: -"incremental" and "non-incremental". - - Incremental searches begin before the user has finished typing the -search string. As each character of the search string is typed, -Readline displays the next entry from the history matching the string -typed so far. An incremental search requires only as many characters -as needed to find the desired history entry. To search backward in the -history for a particular string, type `C-r'. Typing `C-s' searches -forward through the history. The characters present in the value of -the `isearch-terminators' variable are used to terminate an incremental -search. If that variable has not been assigned a value, the and -`C-J' characters will terminate an incremental search. `C-g' will -abort an incremental search and restore the original line. When the -search is terminated, the history entry containing the search string -becomes the current line. - - To find other matching entries in the history list, type `C-r' or -`C-s' as appropriate. This will search backward or forward in the -history for the next entry matching the search string typed so far. -Any other key sequence bound to a Readline command will terminate the -search and execute that command. For instance, a will terminate -the search and accept the line, thereby executing the command from the -history list. A movement command will terminate the search, make the -last line found the current line, and begin editing. - - Readline remembers the last incremental search string. If two -`C-r's are typed without any intervening characters defining a new -search string, any remembered search string is used. - - Non-incremental searches read the entire search string before -starting to search for matching history lines. The search string may be -typed by the user or be part of the contents of the current line. - - -File: readline.info, Node: Readline Init File, Next: Bindable Readline Commands, Prev: Readline Interaction, Up: Command Line Editing - -1.3 Readline Init File -====================== - -Although the Readline library comes with a set of Emacs-like -keybindings installed by default, it is possible to use a different set -of keybindings. Any user can customize programs that use Readline by -putting commands in an "inputrc" file, conventionally in his home -directory. The name of this file is taken from the value of the -environment variable `INPUTRC'. If that variable is unset, the default -is `~/.inputrc'. If that file does not exist or cannot be read, the -ultimate default is `/etc/inputrc'. - - When a program which uses the Readline library starts up, the init -file is read, and the key bindings are set. - - In addition, the `C-x C-r' command re-reads this init file, thus -incorporating any changes that you might have made to it. - -* Menu: - -* Readline Init File Syntax:: Syntax for the commands in the inputrc file. - -* Conditional Init Constructs:: Conditional key bindings in the inputrc file. - -* Sample Init File:: An example inputrc file. - - -File: readline.info, Node: Readline Init File Syntax, Next: Conditional Init Constructs, Up: Readline Init File - -1.3.1 Readline Init File Syntax -------------------------------- - -There are only a few basic constructs allowed in the Readline init -file. Blank lines are ignored. Lines beginning with a `#' are -comments. Lines beginning with a `$' indicate conditional constructs -(*note Conditional Init Constructs::). Other lines denote variable -settings and key bindings. - -Variable Settings - You can modify the run-time behavior of Readline by altering the - values of variables in Readline using the `set' command within the - init file. The syntax is simple: - - set VARIABLE VALUE - - Here, for example, is how to change from the default Emacs-like - key binding to use `vi' line editing commands: - - set editing-mode vi - - Variable names and values, where appropriate, are recognized - without regard to case. Unrecognized variable names are ignored. - - Boolean variables (those that can be set to on or off) are set to - on if the value is null or empty, ON (case-insensitive), or 1. - Any other value results in the variable being set to off. - - A great deal of run-time behavior is changeable with the following - variables. - - `bell-style' - Controls what happens when Readline wants to ring the - terminal bell. If set to `none', Readline never rings the - bell. If set to `visible', Readline uses a visible bell if - one is available. If set to `audible' (the default), - Readline attempts to ring the terminal's bell. - - `bind-tty-special-chars' - If set to `on', Readline attempts to bind the control - characters treated specially by the kernel's terminal driver - to their Readline equivalents. - - `comment-begin' - The string to insert at the beginning of the line when the - `insert-comment' command is executed. The default value is - `"#"'. - - `completion-display-width' - The number of screen columns used to display possible matches - when performing completion. The value is ignored if it is - less than 0 or greater than the terminal screen width. A - value of 0 will cause matches to be displayed one per line. - The default value is -1. - - `completion-ignore-case' - If set to `on', Readline performs filename matching and - completion in a case-insensitive fashion. The default value - is `off'. - - `completion-map-case' - If set to `on', and COMPLETION-IGNORE-CASE is enabled, - Readline treats hyphens (`-') and underscores (`_') as - equivalent when performing case-insensitive filename matching - and completion. - - `completion-prefix-display-length' - The length in characters of the common prefix of a list of - possible completions that is displayed without modification. - When set to a value greater than zero, common prefixes longer - than this value are replaced with an ellipsis when displaying - possible completions. - - `completion-query-items' - The number of possible completions that determines when the - user is asked whether the list of possibilities should be - displayed. If the number of possible completions is greater - than this value, Readline will ask the user whether or not he - wishes to view them; otherwise, they are simply listed. This - variable must be set to an integer value greater than or - equal to 0. A negative value means Readline should never ask. - The default limit is `100'. - - `convert-meta' - If set to `on', Readline will convert characters with the - eighth bit set to an ASCII key sequence by stripping the - eighth bit and prefixing an character, converting them - to a meta-prefixed key sequence. The default value is `on'. - - `disable-completion' - If set to `On', Readline will inhibit word completion. - Completion characters will be inserted into the line as if - they had been mapped to `self-insert'. The default is `off'. - - `editing-mode' - The `editing-mode' variable controls which default set of key - bindings is used. By default, Readline starts up in Emacs - editing mode, where the keystrokes are most similar to Emacs. - This variable can be set to either `emacs' or `vi'. - - `echo-control-characters' - When set to `on', on operating systems that indicate they - support it, readline echoes a character corresponding to a - signal generated from the keyboard. The default is `on'. - - `enable-keypad' - When set to `on', Readline will try to enable the application - keypad when it is called. Some systems need this to enable - the arrow keys. The default is `off'. - - `enable-meta-key' - When set to `on', Readline will try to enable any meta - modifier key the terminal claims to support when it is - called. On many terminals, the meta key is used to send - eight-bit characters. The default is `on'. - - `expand-tilde' - If set to `on', tilde expansion is performed when Readline - attempts word completion. The default is `off'. - - `history-preserve-point' - If set to `on', the history code attempts to place the point - (the current cursor position) at the same location on each - history line retrieved with `previous-history' or - `next-history'. The default is `off'. - - `history-size' - Set the maximum number of history entries saved in the - history list. If set to zero, the number of entries in the - history list is not limited. - - `horizontal-scroll-mode' - This variable can be set to either `on' or `off'. Setting it - to `on' means that the text of the lines being edited will - scroll horizontally on a single screen line when they are - longer than the width of the screen, instead of wrapping onto - a new screen line. By default, this variable is set to `off'. - - `input-meta' - If set to `on', Readline will enable eight-bit input (it will - not clear the eighth bit in the characters it reads), - regardless of what the terminal claims it can support. The - default value is `off'. The name `meta-flag' is a synonym - for this variable. - - `isearch-terminators' - The string of characters that should terminate an incremental - search without subsequently executing the character as a - command (*note Searching::). If this variable has not been - given a value, the characters and `C-J' will terminate - an incremental search. - - `keymap' - Sets Readline's idea of the current keymap for key binding - commands. Acceptable `keymap' names are `emacs', - `emacs-standard', `emacs-meta', `emacs-ctlx', `vi', `vi-move', - `vi-command', and `vi-insert'. `vi' is equivalent to - `vi-command'; `emacs' is equivalent to `emacs-standard'. The - default value is `emacs'. The value of the `editing-mode' - variable also affects the default keymap. - - `mark-directories' - If set to `on', completed directory names have a slash - appended. The default is `on'. - - `mark-modified-lines' - This variable, when set to `on', causes Readline to display an - asterisk (`*') at the start of history lines which have been - modified. This variable is `off' by default. - - `mark-symlinked-directories' - If set to `on', completed names which are symbolic links to - directories have a slash appended (subject to the value of - `mark-directories'). The default is `off'. - - `match-hidden-files' - This variable, when set to `on', causes Readline to match - files whose names begin with a `.' (hidden files) when - performing filename completion. If set to `off', the leading - `.' must be supplied by the user in the filename to be - completed. This variable is `on' by default. - - `menu-complete-display-prefix' - If set to `on', menu completion displays the common prefix of - the list of possible completions (which may be empty) before - cycling through the list. The default is `off'. - - `output-meta' - If set to `on', Readline will display characters with the - eighth bit set directly rather than as a meta-prefixed escape - sequence. The default is `off'. - - `page-completions' - If set to `on', Readline uses an internal `more'-like pager - to display a screenful of possible completions at a time. - This variable is `on' by default. - - `print-completions-horizontally' - If set to `on', Readline will display completions with matches - sorted horizontally in alphabetical order, rather than down - the screen. The default is `off'. - - `revert-all-at-newline' - If set to `on', Readline will undo all changes to history - lines before returning when `accept-line' is executed. By - default, history lines may be modified and retain individual - undo lists across calls to `readline'. The default is `off'. - - `show-all-if-ambiguous' - This alters the default behavior of the completion functions. - If set to `on', words which have more than one possible - completion cause the matches to be listed immediately instead - of ringing the bell. The default value is `off'. - - `show-all-if-unmodified' - This alters the default behavior of the completion functions - in a fashion similar to SHOW-ALL-IF-AMBIGUOUS. If set to - `on', words which have more than one possible completion - without any possible partial completion (the possible - completions don't share a common prefix) cause the matches to - be listed immediately instead of ringing the bell. The - default value is `off'. - - `skip-completed-text' - If set to `on', this alters the default completion behavior - when inserting a single match into the line. It's only - active when performing completion in the middle of a word. - If enabled, readline does not insert characters from the - completion that match characters after point in the word - being completed, so portions of the word following the cursor - are not duplicated. For instance, if this is enabled, - attempting completion when the cursor is after the `e' in - `Makefile' will result in `Makefile' rather than - `Makefilefile', assuming there is a single possible - completion. The default value is `off'. - - `visible-stats' - If set to `on', a character denoting a file's type is - appended to the filename when listing possible completions. - The default is `off'. - - -Key Bindings - The syntax for controlling key bindings in the init file is - simple. First you need to find the name of the command that you - want to change. The following sections contain tables of the - command name, the default keybinding, if any, and a short - description of what the command does. - - Once you know the name of the command, simply place on a line in - the init file the name of the key you wish to bind the command to, - a colon, and then the name of the command. There can be no space - between the key name and the colon - that will be interpreted as - part of the key name. The name of the key can be expressed in - different ways, depending on what you find most comfortable. - - In addition to command names, readline allows keys to be bound to - a string that is inserted when the key is pressed (a MACRO). - - KEYNAME: FUNCTION-NAME or MACRO - KEYNAME is the name of a key spelled out in English. For - example: - Control-u: universal-argument - Meta-Rubout: backward-kill-word - Control-o: "> output" - - In the above example, `C-u' is bound to the function - `universal-argument', `M-DEL' is bound to the function - `backward-kill-word', and `C-o' is bound to run the macro - expressed on the right hand side (that is, to insert the text - `> output' into the line). - - A number of symbolic character names are recognized while - processing this key binding syntax: DEL, ESC, ESCAPE, LFD, - NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB. - - "KEYSEQ": FUNCTION-NAME or MACRO - KEYSEQ differs from KEYNAME above in that strings denoting an - entire key sequence can be specified, by placing the key - sequence in double quotes. Some GNU Emacs style key escapes - can be used, as in the following example, but the special - character names are not recognized. - - "\C-u": universal-argument - "\C-x\C-r": re-read-init-file - "\e[11~": "Function Key 1" - - In the above example, `C-u' is again bound to the function - `universal-argument' (just as it was in the first example), - `C-x C-r' is bound to the function `re-read-init-file', and - ` <[> <1> <1> <~>' is bound to insert the text `Function - Key 1'. - - - The following GNU Emacs style escape sequences are available when - specifying key sequences: - - `\C-' - control prefix - - `\M-' - meta prefix - - `\e' - an escape character - - `\\' - backslash - - `\"' - <">, a double quotation mark - - `\'' - <'>, a single quote or apostrophe - - In addition to the GNU Emacs style escape sequences, a second set - of backslash escapes is available: - - `\a' - alert (bell) - - `\b' - backspace - - `\d' - delete - - `\f' - form feed - - `\n' - newline - - `\r' - carriage return - - `\t' - horizontal tab - - `\v' - vertical tab - - `\NNN' - the eight-bit character whose value is the octal value NNN - (one to three digits) - - `\xHH' - the eight-bit character whose value is the hexadecimal value - HH (one or two hex digits) - - When entering the text of a macro, single or double quotes must be - used to indicate a macro definition. Unquoted text is assumed to - be a function name. In the macro body, the backslash escapes - described above are expanded. Backslash will quote any other - character in the macro text, including `"' and `''. For example, - the following binding will make `C-x \' insert a single `\' into - the line: - "\C-x\\": "\\" - - - -File: readline.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File - -1.3.2 Conditional Init Constructs ---------------------------------- - -Readline implements a facility similar in spirit to the conditional -compilation features of the C preprocessor which allows key bindings -and variable settings to be performed as the result of tests. There -are four parser directives used. - -`$if' - The `$if' construct allows bindings to be made based on the - editing mode, the terminal being used, or the application using - Readline. The text of the test extends to the end of the line; no - characters are required to isolate it. - - `mode' - The `mode=' form of the `$if' directive is used to test - whether Readline is in `emacs' or `vi' mode. This may be - used in conjunction with the `set keymap' command, for - instance, to set bindings in the `emacs-standard' and - `emacs-ctlx' keymaps only if Readline is starting out in - `emacs' mode. - - `term' - The `term=' form may be used to include terminal-specific key - bindings, perhaps to bind the key sequences output by the - terminal's function keys. The word on the right side of the - `=' is tested against both the full name of the terminal and - the portion of the terminal name before the first `-'. This - allows `sun' to match both `sun' and `sun-cmd', for instance. - - `application' - The APPLICATION construct is used to include - application-specific settings. Each program using the - Readline library sets the APPLICATION NAME, and you can test - for a particular value. This could be used to bind key - sequences to functions useful for a specific program. For - instance, the following command adds a key sequence that - quotes the current or previous word in Bash: - $if Bash - # Quote the current or previous word - "\C-xq": "\eb\"\ef\"" - $endif - -`$endif' - This command, as seen in the previous example, terminates an `$if' - command. - -`$else' - Commands in this branch of the `$if' directive are executed if the - test fails. - -`$include' - This directive takes a single filename as an argument and reads - commands and bindings from that file. For example, the following - directive reads from `/etc/inputrc': - $include /etc/inputrc - - -File: readline.info, Node: Sample Init File, Prev: Conditional Init Constructs, Up: Readline Init File - -1.3.3 Sample Init File ----------------------- - -Here is an example of an INPUTRC file. This illustrates key binding, -variable assignment, and conditional syntax. - - - # This file controls the behaviour of line input editing for - # programs that use the GNU Readline library. Existing - # programs include FTP, Bash, and GDB. - # - # You can re-read the inputrc file with C-x C-r. - # Lines beginning with '#' are comments. - # - # First, include any systemwide bindings and variable - # assignments from /etc/Inputrc - $include /etc/Inputrc - - # - # Set various bindings for emacs mode. - - set editing-mode emacs - - $if mode=emacs - - Meta-Control-h: backward-kill-word Text after the function name is ignored - - # - # Arrow keys in keypad mode - # - #"\M-OD": backward-char - #"\M-OC": forward-char - #"\M-OA": previous-history - #"\M-OB": next-history - # - # Arrow keys in ANSI mode - # - "\M-[D": backward-char - "\M-[C": forward-char - "\M-[A": previous-history - "\M-[B": next-history - # - # Arrow keys in 8 bit keypad mode - # - #"\M-\C-OD": backward-char - #"\M-\C-OC": forward-char - #"\M-\C-OA": previous-history - #"\M-\C-OB": next-history - # - # Arrow keys in 8 bit ANSI mode - # - #"\M-\C-[D": backward-char - #"\M-\C-[C": forward-char - #"\M-\C-[A": previous-history - #"\M-\C-[B": next-history - - C-q: quoted-insert - - $endif - - # An old-style binding. This happens to be the default. - TAB: complete - - # Macros that are convenient for shell interaction - $if Bash - # edit the path - "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f" - # prepare to type a quoted word -- - # insert open and close double quotes - # and move to just after the open quote - "\C-x\"": "\"\"\C-b" - # insert a backslash (testing backslash escapes - # in sequences and macros) - "\C-x\\": "\\" - # Quote the current or previous word - "\C-xq": "\eb\"\ef\"" - # Add a binding to refresh the line, which is unbound - "\C-xr": redraw-current-line - # Edit variable on current line. - "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y=" - $endif - - # use a visible bell if one is available - set bell-style visible - - # don't strip characters to 7 bits when reading - set input-meta on - - # allow iso-latin1 characters to be inserted rather - # than converted to prefix-meta sequences - set convert-meta off - - # display characters with the eighth bit set directly - # rather than as meta-prefixed characters - set output-meta on - - # if there are more than 150 possible completions for - # a word, ask the user if he wants to see all of them - set completion-query-items 150 - - # For FTP - $if Ftp - "\C-xg": "get \M-?" - "\C-xt": "put \M-?" - "\M-.": yank-last-arg - $endif - - -File: readline.info, Node: Bindable Readline Commands, Next: Readline vi Mode, Prev: Readline Init File, Up: Command Line Editing - -1.4 Bindable Readline Commands -============================== - -* Menu: - -* Commands For Moving:: Moving about the line. -* Commands For History:: Getting at previous lines. -* Commands For Text:: Commands for changing text. -* Commands For Killing:: Commands for killing and yanking. -* Numeric Arguments:: Specifying numeric arguments, repeat counts. -* Commands For Completion:: Getting Readline to do the typing for you. -* Keyboard Macros:: Saving and re-executing typed characters -* Miscellaneous Commands:: Other miscellaneous commands. - - This section describes Readline commands that may be bound to key -sequences. Command names without an accompanying key sequence are -unbound by default. - - In the following descriptions, "point" refers to the current cursor -position, and "mark" refers to a cursor position saved by the -`set-mark' command. The text between the point and mark is referred to -as the "region". - - -File: readline.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands - -1.4.1 Commands For Moving -------------------------- - -`beginning-of-line (C-a)' - Move to the start of the current line. - -`end-of-line (C-e)' - Move to the end of the line. - -`forward-char (C-f)' - Move forward a character. - -`backward-char (C-b)' - Move back a character. - -`forward-word (M-f)' - Move forward to the end of the next word. Words are composed of - letters and digits. - -`backward-word (M-b)' - Move back to the start of the current or previous word. Words are - composed of letters and digits. - -`clear-screen (C-l)' - Clear the screen and redraw the current line, leaving the current - line at the top of the screen. - -`redraw-current-line ()' - Refresh the current line. By default, this is unbound. - - - -File: readline.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands - -1.4.2 Commands For Manipulating The History -------------------------------------------- - -`accept-line (Newline or Return)' - Accept the line regardless of where the cursor is. If this line is - non-empty, it may be added to the history list for future recall - with `add_history()'. If this line is a modified history line, - the history line is restored to its original state. - -`previous-history (C-p)' - Move `back' through the history list, fetching the previous - command. - -`next-history (C-n)' - Move `forward' through the history list, fetching the next command. - -`beginning-of-history (M-<)' - Move to the first line in the history. - -`end-of-history (M->)' - Move to the end of the input history, i.e., the line currently - being entered. - -`reverse-search-history (C-r)' - Search backward starting at the current line and moving `up' - through the history as necessary. This is an incremental search. - -`forward-search-history (C-s)' - Search forward starting at the current line and moving `down' - through the the history as necessary. This is an incremental - search. - -`non-incremental-reverse-search-history (M-p)' - Search backward starting at the current line and moving `up' - through the history as necessary using a non-incremental search - for a string supplied by the user. - -`non-incremental-forward-search-history (M-n)' - Search forward starting at the current line and moving `down' - through the the history as necessary using a non-incremental search - for a string supplied by the user. - -`history-search-forward ()' - Search forward through the history for the string of characters - between the start of the current line and the point. This is a - non-incremental search. By default, this command is unbound. - -`history-search-backward ()' - Search backward through the history for the string of characters - between the start of the current line and the point. This is a - non-incremental search. By default, this command is unbound. - -`yank-nth-arg (M-C-y)' - Insert the first argument to the previous command (usually the - second word on the previous line) at point. With an argument N, - insert the Nth word from the previous command (the words in the - previous command begin with word 0). A negative argument inserts - the Nth word from the end of the previous command. Once the - argument N is computed, the argument is extracted as if the `!N' - history expansion had been specified. - -`yank-last-arg (M-. or M-_)' - Insert last argument to the previous command (the last word of the - previous history entry). With a numeric argument, behave exactly - like `yank-nth-arg'. Successive calls to `yank-last-arg' move - back through the history list, inserting the last word (or the - word specified by the argument to the first call) of each line in - turn. Any numeric argument supplied to these successive calls - determines the direction to move through the history. A negative - argument switches the direction through the history (back or - forward). The history expansion facilities are used to extract - the last argument, as if the `!$' history expansion had been - specified. - - - -File: readline.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands - -1.4.3 Commands For Changing Text --------------------------------- - -`delete-char (C-d)' - Delete the character at point. If point is at the beginning of - the line, there are no characters in the line, and the last - character typed was not bound to `delete-char', then return EOF. - -`backward-delete-char (Rubout)' - Delete the character behind the cursor. A numeric argument means - to kill the characters instead of deleting them. - -`forward-backward-delete-char ()' - Delete the character under the cursor, unless the cursor is at the - end of the line, in which case the character behind the cursor is - deleted. By default, this is not bound to a key. - -`quoted-insert (C-q or C-v)' - Add the next character typed to the line verbatim. This is how to - insert key sequences like `C-q', for example. - -`tab-insert (M-)' - Insert a tab character. - -`self-insert (a, b, A, 1, !, ...)' - Insert yourself. - -`transpose-chars (C-t)' - Drag the character before the cursor forward over the character at - the cursor, moving the cursor forward as well. If the insertion - point is at the end of the line, then this transposes the last two - characters of the line. Negative arguments have no effect. - -`transpose-words (M-t)' - Drag the word before point past the word after point, moving point - past that word as well. If the insertion point is at the end of - the line, this transposes the last two words on the line. - -`upcase-word (M-u)' - Uppercase the current (or following) word. With a negative - argument, uppercase the previous word, but do not move the cursor. - -`downcase-word (M-l)' - Lowercase the current (or following) word. With a negative - argument, lowercase the previous word, but do not move the cursor. - -`capitalize-word (M-c)' - Capitalize the current (or following) word. With a negative - argument, capitalize the previous word, but do not move the cursor. - -`overwrite-mode ()' - Toggle overwrite mode. With an explicit positive numeric argument, - switches to overwrite mode. With an explicit non-positive numeric - argument, switches to insert mode. This command affects only - `emacs' mode; `vi' mode does overwrite differently. Each call to - `readline()' starts in insert mode. - - In overwrite mode, characters bound to `self-insert' replace the - text at point rather than pushing the text to the right. - Characters bound to `backward-delete-char' replace the character - before point with a space. - - By default, this command is unbound. - - - -File: readline.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands - -1.4.4 Killing And Yanking -------------------------- - -`kill-line (C-k)' - Kill the text from point to the end of the line. - -`backward-kill-line (C-x Rubout)' - Kill backward to the beginning of the line. - -`unix-line-discard (C-u)' - Kill backward from the cursor to the beginning of the current line. - -`kill-whole-line ()' - Kill all characters on the current line, no matter where point is. - By default, this is unbound. - -`kill-word (M-d)' - Kill from point to the end of the current word, or if between - words, to the end of the next word. Word boundaries are the same - as `forward-word'. - -`backward-kill-word (M-)' - Kill the word behind point. Word boundaries are the same as - `backward-word'. - -`unix-word-rubout (C-w)' - Kill the word behind point, using white space as a word boundary. - The killed text is saved on the kill-ring. - -`unix-filename-rubout ()' - Kill the word behind point, using white space and the slash - character as the word boundaries. The killed text is saved on the - kill-ring. - -`delete-horizontal-space ()' - Delete all spaces and tabs around point. By default, this is - unbound. - -`kill-region ()' - Kill the text in the current region. By default, this command is - unbound. - -`copy-region-as-kill ()' - Copy the text in the region to the kill buffer, so it can be yanked - right away. By default, this command is unbound. - -`copy-backward-word ()' - Copy the word before point to the kill buffer. The word - boundaries are the same as `backward-word'. By default, this - command is unbound. - -`copy-forward-word ()' - Copy the word following point to the kill buffer. The word - boundaries are the same as `forward-word'. By default, this - command is unbound. - -`yank (C-y)' - Yank the top of the kill ring into the buffer at point. - -`yank-pop (M-y)' - Rotate the kill-ring, and yank the new top. You can only do this - if the prior command is `yank' or `yank-pop'. - - -File: readline.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands - -1.4.5 Specifying Numeric Arguments ----------------------------------- - -`digit-argument (M-0, M-1, ... M--)' - Add this digit to the argument already accumulating, or start a new - argument. `M--' starts a negative argument. - -`universal-argument ()' - This is another way to specify an argument. If this command is - followed by one or more digits, optionally with a leading minus - sign, those digits define the argument. If the command is - followed by digits, executing `universal-argument' again ends the - numeric argument, but is otherwise ignored. As a special case, if - this command is immediately followed by a character that is - neither a digit or minus sign, the argument count for the next - command is multiplied by four. The argument count is initially - one, so executing this function the first time makes the argument - count four, a second time makes the argument count sixteen, and so - on. By default, this is not bound to a key. - - -File: readline.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands - -1.4.6 Letting Readline Type For You ------------------------------------ - -`complete ()' - Attempt to perform completion on the text before point. The - actual completion performed is application-specific. The default - is filename completion. - -`possible-completions (M-?)' - List the possible completions of the text before point. When - displaying completions, Readline sets the number of columns used - for display to the value of `completion-display-width', the value - of the environment variable `COLUMNS', or the screen width, in - that order. - -`insert-completions (M-*)' - Insert all completions of the text before point that would have - been generated by `possible-completions'. - -`menu-complete ()' - Similar to `complete', but replaces the word to be completed with - a single match from the list of possible completions. Repeated - execution of `menu-complete' steps through the list of possible - completions, inserting each match in turn. At the end of the list - of completions, the bell is rung (subject to the setting of - `bell-style') and the original text is restored. An argument of N - moves N positions forward in the list of matches; a negative - argument may be used to move backward through the list. This - command is intended to be bound to , but is unbound by - default. - -`menu-complete-backward ()' - Identical to `menu-complete', but moves backward through the list - of possible completions, as if `menu-complete' had been given a - negative argument. - -`delete-char-or-list ()' - Deletes the character under the cursor if not at the beginning or - end of the line (like `delete-char'). If at the end of the line, - behaves identically to `possible-completions'. This command is - unbound by default. - - - -File: readline.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands - -1.4.7 Keyboard Macros ---------------------- - -`start-kbd-macro (C-x ()' - Begin saving the characters typed into the current keyboard macro. - -`end-kbd-macro (C-x ))' - Stop saving the characters typed into the current keyboard macro - and save the definition. - -`call-last-kbd-macro (C-x e)' - Re-execute the last keyboard macro defined, by making the - characters in the macro appear as if typed at the keyboard. - - - -File: readline.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands - -1.4.8 Some Miscellaneous Commands ---------------------------------- - -`re-read-init-file (C-x C-r)' - Read in the contents of the INPUTRC file, and incorporate any - bindings or variable assignments found there. - -`abort (C-g)' - Abort the current editing command and ring the terminal's bell - (subject to the setting of `bell-style'). - -`do-uppercase-version (M-a, M-b, M-X, ...)' - If the metafied character X is lowercase, run the command that is - bound to the corresponding uppercase character. - -`prefix-meta ()' - Metafy the next character typed. This is for keyboards without a - meta key. Typing ` f' is equivalent to typing `M-f'. - -`undo (C-_ or C-x C-u)' - Incremental undo, separately remembered for each line. - -`revert-line (M-r)' - Undo all changes made to this line. This is like executing the - `undo' command enough times to get back to the beginning. - -`tilde-expand (M-~)' - Perform tilde expansion on the current word. - -`set-mark (C-@)' - Set the mark to the point. If a numeric argument is supplied, the - mark is set to that position. - -`exchange-point-and-mark (C-x C-x)' - Swap the point with the mark. The current cursor position is set - to the saved position, and the old cursor position is saved as the - mark. - -`character-search (C-])' - A character is read and point is moved to the next occurrence of - that character. A negative count searches for previous - occurrences. - -`character-search-backward (M-C-])' - A character is read and point is moved to the previous occurrence - of that character. A negative count searches for subsequent - occurrences. - -`skip-csi-sequence ()' - Read enough characters to consume a multi-key sequence such as - those defined for keys like Home and End. Such sequences begin - with a Control Sequence Indicator (CSI), usually ESC-[. If this - sequence is bound to "\e[", keys producing such sequences will - have no effect unless explicitly bound to a readline command, - instead of inserting stray characters into the editing buffer. - This is unbound by default, but usually bound to ESC-[. - -`insert-comment (M-#)' - Without a numeric argument, the value of the `comment-begin' - variable is inserted at the beginning of the current line. If a - numeric argument is supplied, this command acts as a toggle: if - the characters at the beginning of the line do not match the value - of `comment-begin', the value is inserted, otherwise the - characters in `comment-begin' are deleted from the beginning of - the line. In either case, the line is accepted as if a newline - had been typed. - -`dump-functions ()' - Print all of the functions and their key bindings to the Readline - output stream. If a numeric argument is supplied, the output is - formatted in such a way that it can be made part of an INPUTRC - file. This command is unbound by default. - -`dump-variables ()' - Print all of the settable variables and their values to the - Readline output stream. If a numeric argument is supplied, the - output is formatted in such a way that it can be made part of an - INPUTRC file. This command is unbound by default. - -`dump-macros ()' - Print all of the Readline key sequences bound to macros and the - strings they output. If a numeric argument is supplied, the - output is formatted in such a way that it can be made part of an - INPUTRC file. This command is unbound by default. - -`emacs-editing-mode (C-e)' - When in `vi' command mode, this causes a switch to `emacs' editing - mode. - -`vi-editing-mode (M-C-j)' - When in `emacs' editing mode, this causes a switch to `vi' editing - mode. - - - -File: readline.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing - -1.5 Readline vi Mode -==================== - -While the Readline library does not have a full set of `vi' editing -functions, it does contain enough to allow simple editing of the line. -The Readline `vi' mode behaves as specified in the POSIX standard. - - In order to switch interactively between `emacs' and `vi' editing -modes, use the command `M-C-j' (bound to emacs-editing-mode when in -`vi' mode and to vi-editing-mode in `emacs' mode). The Readline -default is `emacs' mode. - - When you enter a line in `vi' mode, you are already placed in -`insertion' mode, as if you had typed an `i'. Pressing switches -you into `command' mode, where you can edit the text of the line with -the standard `vi' movement keys, move to previous history lines with -`k' and subsequent lines with `j', and so forth. - - This document describes the GNU Readline Library, a utility for -aiding in the consistency of user interface across discrete programs -that need to provide a command line interface. - - Copyright (C) 1988-2011 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice pare -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: readline.info, Node: Programming with GNU Readline, Next: GNU Free Documentation License, Prev: Command Line Editing, Up: Top - -2 Programming with GNU Readline -******************************* - -This chapter describes the interface between the GNU Readline Library -and other programs. If you are a programmer, and you wish to include -the features found in GNU Readline such as completion, line editing, -and interactive history manipulation in your own programs, this section -is for you. - -* Menu: - -* Basic Behavior:: Using the default behavior of Readline. -* Custom Functions:: Adding your own functions to Readline. -* Readline Variables:: Variables accessible to custom - functions. -* Readline Convenience Functions:: Functions which Readline supplies to - aid in writing your own custom - functions. -* Readline Signal Handling:: How Readline behaves when it receives signals. -* Custom Completers:: Supplanting or supplementing Readline's - completion functions. - - -File: readline.info, Node: Basic Behavior, Next: Custom Functions, Up: Programming with GNU Readline - -2.1 Basic Behavior -================== - -Many programs provide a command line interface, such as `mail', `ftp', -and `sh'. For such programs, the default behaviour of Readline is -sufficient. This section describes how to use Readline in the simplest -way possible, perhaps to replace calls in your code to `gets()' or -`fgets()'. - - The function `readline()' prints a prompt PROMPT and then reads and -returns a single line of text from the user. If PROMPT is `NULL' or -the empty string, no prompt is displayed. The line `readline' returns -is allocated with `malloc()'; the caller should `free()' the line when -it has finished with it. The declaration for `readline' in ANSI C is - - `char *readline (const char *PROMPT);' - -So, one might say - `char *line = readline ("Enter a line: ");' - in order to read a line of text from the user. The line returned -has the final newline removed, so only the text remains. - - If `readline' encounters an `EOF' while reading the line, and the -line is empty at that point, then `(char *)NULL' is returned. -Otherwise, the line is ended just as if a newline had been typed. - - If you want the user to be able to get at the line later, (with - for example), you must call `add_history()' to save the line away -in a "history" list of such lines. - - `add_history (line)'; - -For full details on the GNU History Library, see the associated manual. - - It is preferable to avoid saving empty lines on the history list, -since users rarely have a burning need to reuse a blank line. Here is -a function which usefully replaces the standard `gets()' library -function, and has the advantage of no static buffer to overflow: - - /* A static variable for holding the line. */ - static char *line_read = (char *)NULL; - - /* Read a string, and return a pointer to it. - Returns NULL on EOF. */ - char * - rl_gets () - { - /* If the buffer has already been allocated, - return the memory to the free pool. */ - if (line_read) - { - free (line_read); - line_read = (char *)NULL; - } - - /* Get a line from the user. */ - line_read = readline (""); - - /* If the line has any text in it, - save it on the history. */ - if (line_read && *line_read) - add_history (line_read); - - return (line_read); - } - - This function gives the user the default behaviour of -completion: completion on file names. If you do not want Readline to -complete on filenames, you can change the binding of the key with -`rl_bind_key()'. - - `int rl_bind_key (int KEY, rl_command_func_t *FUNCTION);' - - `rl_bind_key()' takes two arguments: KEY is the character that you -want to bind, and FUNCTION is the address of the function to call when -KEY is pressed. Binding to `rl_insert()' makes insert -itself. `rl_bind_key()' returns non-zero if KEY is not a valid ASCII -character code (between 0 and 255). - - Thus, to disable the default behavior, the following suffices: - `rl_bind_key ('\t', rl_insert);' - - This code should be executed once at the start of your program; you -might write a function called `initialize_readline()' which performs -this and other desired initializations, such as installing custom -completers (*note Custom Completers::). - - -File: readline.info, Node: Custom Functions, Next: Readline Variables, Prev: Basic Behavior, Up: Programming with GNU Readline - -2.2 Custom Functions -==================== - -Readline provides many functions for manipulating the text of the line, -but it isn't possible to anticipate the needs of all programs. This -section describes the various functions and variables defined within -the Readline library which allow a user program to add customized -functionality to Readline. - - Before declaring any functions that customize Readline's behavior, or -using any functionality Readline provides in other code, an application -writer should include the file `' in any file that -uses Readline's features. Since some of the definitions in -`readline.h' use the `stdio' library, the file `' should be -included before `readline.h'. - - `readline.h' defines a C preprocessor variable that should be -treated as an integer, `RL_READLINE_VERSION', which may be used to -conditionally compile application code depending on the installed -Readline version. The value is a hexadecimal encoding of the major and -minor version numbers of the library, of the form 0xMMMM. MM is the -two-digit major version number; MM is the two-digit minor version -number. For Readline 4.2, for example, the value of -`RL_READLINE_VERSION' would be `0x0402'. - -* Menu: - -* Readline Typedefs:: C declarations to make code readable. -* Function Writing:: Variables and calling conventions. - - -File: readline.info, Node: Readline Typedefs, Next: Function Writing, Up: Custom Functions - -2.2.1 Readline Typedefs ------------------------ - -For readabilty, we declare a number of new object types, all pointers -to functions. - - The reason for declaring these new types is to make it easier to -write code describing pointers to C functions with appropriately -prototyped arguments and return values. - - For instance, say we want to declare a variable FUNC as a pointer to -a function which takes two `int' arguments and returns an `int' (this -is the type of all of the Readline bindable functions). Instead of the -classic C declaration - - `int (*func)();' - -or the ANSI-C style declaration - - `int (*func)(int, int);' - -we may write - - `rl_command_func_t *func;' - - The full list of function pointer types available is - -`typedef int rl_command_func_t (int, int);' - -`typedef char *rl_compentry_func_t (const char *, int);' - -`typedef char **rl_completion_func_t (const char *, int, int);' - -`typedef char *rl_quote_func_t (char *, int, char *);' - -`typedef char *rl_dequote_func_t (char *, int);' - -`typedef int rl_compignore_func_t (char **);' - -`typedef void rl_compdisp_func_t (char **, int, int);' - -`typedef int rl_hook_func_t (void);' - -`typedef int rl_getc_func_t (FILE *);' - -`typedef int rl_linebuf_func_t (char *, int);' - -`typedef int rl_intfunc_t (int);' - -`#define rl_ivoidfunc_t rl_hook_func_t' - -`typedef int rl_icpfunc_t (char *);' - -`typedef int rl_icppfunc_t (char **);' - -`typedef void rl_voidfunc_t (void);' - -`typedef void rl_vintfunc_t (int);' - -`typedef void rl_vcpfunc_t (char *);' - -`typedef void rl_vcppfunc_t (char **);' - - -File: readline.info, Node: Function Writing, Prev: Readline Typedefs, Up: Custom Functions - -2.2.2 Writing a New Function ----------------------------- - -In order to write new functions for Readline, you need to know the -calling conventions for keyboard-invoked functions, and the names of the -variables that describe the current state of the line read so far. - - The calling sequence for a command `foo' looks like - - `int foo (int count, int key)' - -where COUNT is the numeric argument (or 1 if defaulted) and KEY is the -key that invoked this function. - - It is completely up to the function as to what should be done with -the numeric argument. Some functions use it as a repeat count, some as -a flag, and others to choose alternate behavior (refreshing the current -line as opposed to refreshing the screen, for example). Some choose to -ignore it. In general, if a function uses the numeric argument as a -repeat count, it should be able to do something useful with both -negative and positive arguments. At the very least, it should be aware -that it can be passed a negative argument. - - A command function should return 0 if its action completes -successfully, and a non-zero value if some error occurs. This is the -convention obeyed by all of the builtin Readline bindable command -functions. - - -File: readline.info, Node: Readline Variables, Next: Readline Convenience Functions, Prev: Custom Functions, Up: Programming with GNU Readline - -2.3 Readline Variables -====================== - -These variables are available to function writers. - - -- Variable: char * rl_line_buffer - This is the line gathered so far. You are welcome to modify the - contents of the line, but see *note Allowing Undoing::. The - function `rl_extend_line_buffer' is available to increase the - memory allocated to `rl_line_buffer'. - - -- Variable: int rl_point - The offset of the current cursor position in `rl_line_buffer' (the - _point_). - - -- Variable: int rl_end - The number of characters present in `rl_line_buffer'. When - `rl_point' is at the end of the line, `rl_point' and `rl_end' are - equal. - - -- Variable: int rl_mark - The MARK (saved position) in the current line. If set, the mark - and point define a _region_. - - -- Variable: int rl_done - Setting this to a non-zero value causes Readline to return the - current line immediately. - - -- Variable: int rl_num_chars_to_read - Setting this to a positive value before calling `readline()' causes - Readline to return after accepting that many characters, rather - than reading up to a character bound to `accept-line'. - - -- Variable: int rl_pending_input - Setting this to a value makes it the next keystroke read. This is - a way to stuff a single character into the input stream. - - -- Variable: int rl_dispatching - Set to a non-zero value if a function is being called from a key - binding; zero otherwise. Application functions can test this to - discover whether they were called directly or by Readline's - dispatching mechanism. - - -- Variable: int rl_erase_empty_line - Setting this to a non-zero value causes Readline to completely - erase the current line, including any prompt, any time a newline - is typed as the only character on an otherwise-empty line. The - cursor is moved to the beginning of the newly-blank line. - - -- Variable: char * rl_prompt - The prompt Readline uses. This is set from the argument to - `readline()', and should not be assigned to directly. The - `rl_set_prompt()' function (*note Redisplay::) may be used to - modify the prompt string after calling `readline()'. - - -- Variable: char * rl_display_prompt - The string displayed as the prompt. This is usually identical to - RL_PROMPT, but may be changed temporarily by functions that use - the prompt string as a message area, such as incremental search. - - -- Variable: int rl_already_prompted - If an application wishes to display the prompt itself, rather than - have Readline do it the first time `readline()' is called, it - should set this variable to a non-zero value after displaying the - prompt. The prompt must also be passed as the argument to - `readline()' so the redisplay functions can update the display - properly. The calling application is responsible for managing the - value; Readline never sets it. - - -- Variable: const char * rl_library_version - The version number of this revision of the library. - - -- Variable: int rl_readline_version - An integer encoding the current version of the library. The - encoding is of the form 0xMMMM, where MM is the two-digit major - version number, and MM is the two-digit minor version number. For - example, for Readline-4.2, `rl_readline_version' would have the - value 0x0402. - - -- Variable: int rl_gnu_readline_p - Always set to 1, denoting that this is GNU readline rather than - some emulation. - - -- Variable: const char * rl_terminal_name - The terminal type, used for initialization. If not set by the - application, Readline sets this to the value of the `TERM' - environment variable the first time it is called. - - -- Variable: const char * rl_readline_name - This variable is set to a unique name by each application using - Readline. The value allows conditional parsing of the inputrc file - (*note Conditional Init Constructs::). - - -- Variable: FILE * rl_instream - The stdio stream from which Readline reads input. If `NULL', - Readline defaults to STDIN. - - -- Variable: FILE * rl_outstream - The stdio stream to which Readline performs output. If `NULL', - Readline defaults to STDOUT. - - -- Variable: int rl_prefer_env_winsize - If non-zero, Readline gives values found in the `LINES' and - `COLUMNS' environment variables greater precedence than values - fetched from the kernel when computing the screen dimensions. - - -- Variable: rl_command_func_t * rl_last_func - The address of the last command function Readline executed. May - be used to test whether or not a function is being executed twice - in succession, for example. - - -- Variable: rl_hook_func_t * rl_startup_hook - If non-zero, this is the address of a function to call just before - `readline' prints the first prompt. - - -- Variable: rl_hook_func_t * rl_pre_input_hook - If non-zero, this is the address of a function to call after the - first prompt has been printed and just before `readline' starts - reading input characters. - - -- Variable: rl_hook_func_t * rl_event_hook - If non-zero, this is the address of a function to call periodically - when Readline is waiting for terminal input. By default, this - will be called at most ten times a second if there is no keyboard - input. - - -- Variable: rl_getc_func_t * rl_getc_function - If non-zero, Readline will call indirectly through this pointer to - get a character from the input stream. By default, it is set to - `rl_getc', the default Readline character input function (*note - Character Input::). - - -- Variable: rl_voidfunc_t * rl_redisplay_function - If non-zero, Readline will call indirectly through this pointer to - update the display with the current contents of the editing buffer. - By default, it is set to `rl_redisplay', the default Readline - redisplay function (*note Redisplay::). - - -- Variable: rl_vintfunc_t * rl_prep_term_function - If non-zero, Readline will call indirectly through this pointer to - initialize the terminal. The function takes a single argument, an - `int' flag that says whether or not to use eight-bit characters. - By default, this is set to `rl_prep_terminal' (*note Terminal - Management::). - - -- Variable: rl_voidfunc_t * rl_deprep_term_function - If non-zero, Readline will call indirectly through this pointer to - reset the terminal. This function should undo the effects of - `rl_prep_term_function'. By default, this is set to - `rl_deprep_terminal' (*note Terminal Management::). - - -- Variable: Keymap rl_executing_keymap - This variable is set to the keymap (*note Keymaps::) in which the - currently executing readline function was found. - - -- Variable: Keymap rl_binding_keymap - This variable is set to the keymap (*note Keymaps::) in which the - last key binding occurred. - - -- Variable: char * rl_executing_macro - This variable is set to the text of any currently-executing macro. - - -- Variable: int rl_readline_state - A variable with bit values that encapsulate the current Readline - state. A bit is set with the `RL_SETSTATE' macro, and unset with - the `RL_UNSETSTATE' macro. Use the `RL_ISSTATE' macro to test - whether a particular state bit is set. Current state bits include: - - `RL_STATE_NONE' - Readline has not yet been called, nor has it begun to - intialize. - - `RL_STATE_INITIALIZING' - Readline is initializing its internal data structures. - - `RL_STATE_INITIALIZED' - Readline has completed its initialization. - - `RL_STATE_TERMPREPPED' - Readline has modified the terminal modes to do its own input - and redisplay. - - `RL_STATE_READCMD' - Readline is reading a command from the keyboard. - - `RL_STATE_METANEXT' - Readline is reading more input after reading the meta-prefix - character. - - `RL_STATE_DISPATCHING' - Readline is dispatching to a command. - - `RL_STATE_MOREINPUT' - Readline is reading more input while executing an editing - command. - - `RL_STATE_ISEARCH' - Readline is performing an incremental history search. - - `RL_STATE_NSEARCH' - Readline is performing a non-incremental history search. - - `RL_STATE_SEARCH' - Readline is searching backward or forward through the history - for a string. - - `RL_STATE_NUMERICARG' - Readline is reading a numeric argument. - - `RL_STATE_MACROINPUT' - Readline is currently getting its input from a - previously-defined keyboard macro. - - `RL_STATE_MACRODEF' - Readline is currently reading characters defining a keyboard - macro. - - `RL_STATE_OVERWRITE' - Readline is in overwrite mode. - - `RL_STATE_COMPLETING' - Readline is performing word completion. - - `RL_STATE_SIGHANDLER' - Readline is currently executing the readline signal handler. - - `RL_STATE_UNDOING' - Readline is performing an undo. - - `RL_STATE_INPUTPENDING' - Readline has input pending due to a call to - `rl_execute_next()'. - - `RL_STATE_TTYCSAVED' - Readline has saved the values of the terminal's special - characters. - - `RL_STATE_CALLBACK' - Readline is currently using the alternate (callback) interface - (*note Alternate Interface::). - - `RL_STATE_VIMOTION' - Readline is reading the argument to a vi-mode "motion" - command. - - `RL_STATE_MULTIKEY' - Readline is reading a multiple-keystroke command. - - `RL_STATE_VICMDONCE' - Readline has entered vi command (movement) mode at least one - time during the current call to `readline()'. - - `RL_STATE_DONE' - Readline has read a key sequence bound to `accept-line' and - is about to return the line to the caller. - - - -- Variable: int rl_explicit_arg - Set to a non-zero value if an explicit numeric argument was - specified by the user. Only valid in a bindable command function. - - -- Variable: int rl_numeric_arg - Set to the value of any numeric argument explicitly specified by - the user before executing the current Readline function. Only - valid in a bindable command function. - - -- Variable: int rl_editing_mode - Set to a value denoting Readline's current editing mode. A value - of 1 means Readline is currently in emacs mode; 0 means that vi - mode is active. - - -File: readline.info, Node: Readline Convenience Functions, Next: Readline Signal Handling, Prev: Readline Variables, Up: Programming with GNU Readline - -2.4 Readline Convenience Functions -================================== - -* Menu: - -* Function Naming:: How to give a function you write a name. -* Keymaps:: Making keymaps. -* Binding Keys:: Changing Keymaps. -* Associating Function Names and Bindings:: Translate function names to - key sequences. -* Allowing Undoing:: How to make your functions undoable. -* Redisplay:: Functions to control line display. -* Modifying Text:: Functions to modify `rl_line_buffer'. -* Character Input:: Functions to read keyboard input. -* Terminal Management:: Functions to manage terminal settings. -* Utility Functions:: Generally useful functions and hooks. -* Miscellaneous Functions:: Functions that don't fall into any category. -* Alternate Interface:: Using Readline in a `callback' fashion. -* A Readline Example:: An example Readline function. - - -File: readline.info, Node: Function Naming, Next: Keymaps, Up: Readline Convenience Functions - -2.4.1 Naming a Function ------------------------ - -The user can dynamically change the bindings of keys while using -Readline. This is done by representing the function with a descriptive -name. The user is able to type the descriptive name when referring to -the function. Thus, in an init file, one might find - - Meta-Rubout: backward-kill-word - - This binds the keystroke to the function -_descriptively_ named `backward-kill-word'. You, as the programmer, -should bind the functions you write to descriptive names as well. -Readline provides a function for doing that: - - -- Function: int rl_add_defun (const char *name, rl_command_func_t - *function, int key) - Add NAME to the list of named functions. Make FUNCTION be the - function that gets called. If KEY is not -1, then bind it to - FUNCTION using `rl_bind_key()'. - - Using this function alone is sufficient for most applications. It -is the recommended way to add a few functions to the default functions -that Readline has built in. If you need to do something other than -adding a function to Readline, you may need to use the underlying -functions described below. - - -File: readline.info, Node: Keymaps, Next: Binding Keys, Prev: Function Naming, Up: Readline Convenience Functions - -2.4.2 Selecting a Keymap ------------------------- - -Key bindings take place on a "keymap". The keymap is the association -between the keys that the user types and the functions that get run. -You can make your own keymaps, copy existing keymaps, and tell Readline -which keymap to use. - - -- Function: Keymap rl_make_bare_keymap (void) - Returns a new, empty keymap. The space for the keymap is - allocated with `malloc()'; the caller should free it by calling - `rl_free_keymap()' when done. - - -- Function: Keymap rl_copy_keymap (Keymap map) - Return a new keymap which is a copy of MAP. - - -- Function: Keymap rl_make_keymap (void) - Return a new keymap with the printing characters bound to - rl_insert, the lowercase Meta characters bound to run their - equivalents, and the Meta digits bound to produce numeric - arguments. - - -- Function: void rl_discard_keymap (Keymap keymap) - Free the storage associated with the data in KEYMAP. The caller - should free KEYMAP. - - -- Function: void rl_free_keymap (Keymap keymap) - Free all storage associated with KEYMAP. This calls - `rl_discard_keymap' to free subordindate keymaps and macros. - - Readline has several internal keymaps. These functions allow you to -change which keymap is active. - - -- Function: Keymap rl_get_keymap (void) - Returns the currently active keymap. - - -- Function: void rl_set_keymap (Keymap keymap) - Makes KEYMAP the currently active keymap. - - -- Function: Keymap rl_get_keymap_by_name (const char *name) - Return the keymap matching NAME. NAME is one which would be - supplied in a `set keymap' inputrc line (*note Readline Init - File::). - - -- Function: char * rl_get_keymap_name (Keymap keymap) - Return the name matching KEYMAP. NAME is one which would be - supplied in a `set keymap' inputrc line (*note Readline Init - File::). - - -File: readline.info, Node: Binding Keys, Next: Associating Function Names and Bindings, Prev: Keymaps, Up: Readline Convenience Functions - -2.4.3 Binding Keys ------------------- - -Key sequences are associate with functions through the keymap. -Readline has several internal keymaps: `emacs_standard_keymap', -`emacs_meta_keymap', `emacs_ctlx_keymap', `vi_movement_keymap', and -`vi_insertion_keymap'. `emacs_standard_keymap' is the default, and the -examples in this manual assume that. - - Since `readline()' installs a set of default key bindings the first -time it is called, there is always the danger that a custom binding -installed before the first call to `readline()' will be overridden. An -alternate mechanism is to install custom key bindings in an -initialization function assigned to the `rl_startup_hook' variable -(*note Readline Variables::). - - These functions manage key bindings. - - -- Function: int rl_bind_key (int key, rl_command_func_t *function) - Binds KEY to FUNCTION in the currently active keymap. Returns - non-zero in the case of an invalid KEY. - - -- Function: int rl_bind_key_in_map (int key, rl_command_func_t - *function, Keymap map) - Bind KEY to FUNCTION in MAP. Returns non-zero in the case of an - invalid KEY. - - -- Function: int rl_bind_key_if_unbound (int key, rl_command_func_t - *function) - Binds KEY to FUNCTION if it is not already bound in the currently - active keymap. Returns non-zero in the case of an invalid KEY or - if KEY is already bound. - - -- Function: int rl_bind_key_if_unbound_in_map (int key, - rl_command_func_t *function, Keymap map) - Binds KEY to FUNCTION if it is not already bound in MAP. Returns - non-zero in the case of an invalid KEY or if KEY is already bound. - - -- Function: int rl_unbind_key (int key) - Bind KEY to the null function in the currently active keymap. - Returns non-zero in case of error. - - -- Function: int rl_unbind_key_in_map (int key, Keymap map) - Bind KEY to the null function in MAP. Returns non-zero in case of - error. - - -- Function: int rl_unbind_function_in_map (rl_command_func_t - *function, Keymap map) - Unbind all keys that execute FUNCTION in MAP. - - -- Function: int rl_unbind_command_in_map (const char *command, Keymap - map) - Unbind all keys that are bound to COMMAND in MAP. - - -- Function: int rl_bind_keyseq (const char *keyseq, rl_command_func_t - *function) - Bind the key sequence represented by the string KEYSEQ to the - function FUNCTION, beginning in the current keymap. This makes - new keymaps as necessary. The return value is non-zero if KEYSEQ - is invalid. - - -- Function: int rl_bind_keyseq_in_map (const char *keyseq, - rl_command_func_t *function, Keymap map) - Bind the key sequence represented by the string KEYSEQ to the - function FUNCTION. This makes new keymaps as necessary. Initial - bindings are performed in MAP. The return value is non-zero if - KEYSEQ is invalid. - - -- Function: int rl_set_key (const char *keyseq, rl_command_func_t - *function, Keymap map) - Equivalent to `rl_bind_keyseq_in_map'. - - -- Function: int rl_bind_keyseq_if_unbound (const char *keyseq, - rl_command_func_t *function) - Binds KEYSEQ to FUNCTION if it is not already bound in the - currently active keymap. Returns non-zero in the case of an - invalid KEYSEQ or if KEYSEQ is already bound. - - -- Function: int rl_bind_keyseq_if_unbound_in_map (const char *keyseq, - rl_command_func_t *function, Keymap map) - Binds KEYSEQ to FUNCTION if it is not already bound in MAP. - Returns non-zero in the case of an invalid KEYSEQ or if KEYSEQ is - already bound. - - -- Function: int rl_generic_bind (int type, const char *keyseq, char - *data, Keymap map) - Bind the key sequence represented by the string KEYSEQ to the - arbitrary pointer DATA. TYPE says what kind of data is pointed to - by DATA; this can be a function (`ISFUNC'), a macro (`ISMACR'), or - a keymap (`ISKMAP'). This makes new keymaps as necessary. The - initial keymap in which to do bindings is MAP. - - -- Function: int rl_parse_and_bind (char *line) - Parse LINE as if it had been read from the `inputrc' file and - perform any key bindings and variable assignments found (*note - Readline Init File::). - - -- Function: int rl_read_init_file (const char *filename) - Read keybindings and variable assignments from FILENAME (*note - Readline Init File::). - - -File: readline.info, Node: Associating Function Names and Bindings, Next: Allowing Undoing, Prev: Binding Keys, Up: Readline Convenience Functions - -2.4.4 Associating Function Names and Bindings ---------------------------------------------- - -These functions allow you to find out what keys invoke named functions -and the functions invoked by a particular key sequence. You may also -associate a new function name with an arbitrary function. - - -- Function: rl_command_func_t * rl_named_function (const char *name) - Return the function with name NAME. - - -- Function: rl_command_func_t * rl_function_of_keyseq (const char - *keyseq, Keymap map, int *type) - Return the function invoked by KEYSEQ in keymap MAP. If MAP is - `NULL', the current keymap is used. If TYPE is not `NULL', the - type of the object is returned in the `int' variable it points to - (one of `ISFUNC', `ISKMAP', or `ISMACR'). - - -- Function: char ** rl_invoking_keyseqs (rl_command_func_t *function) - Return an array of strings representing the key sequences used to - invoke FUNCTION in the current keymap. - - -- Function: char ** rl_invoking_keyseqs_in_map (rl_command_func_t - *function, Keymap map) - Return an array of strings representing the key sequences used to - invoke FUNCTION in the keymap MAP. - - -- Function: void rl_function_dumper (int readable) - Print the readline function names and the key sequences currently - bound to them to `rl_outstream'. If READABLE is non-zero, the - list is formatted in such a way that it can be made part of an - `inputrc' file and re-read. - - -- Function: void rl_list_funmap_names (void) - Print the names of all bindable Readline functions to - `rl_outstream'. - - -- Function: const char ** rl_funmap_names (void) - Return a NULL terminated array of known function names. The array - is sorted. The array itself is allocated, but not the strings - inside. You should free the array, but not the pointers, using - `free' or `rl_free' when you are done. - - -- Function: int rl_add_funmap_entry (const char *name, - rl_command_func_t *function) - Add NAME to the list of bindable Readline command names, and make - FUNCTION the function to be called when NAME is invoked. - - -File: readline.info, Node: Allowing Undoing, Next: Redisplay, Prev: Associating Function Names and Bindings, Up: Readline Convenience Functions - -2.4.5 Allowing Undoing ----------------------- - -Supporting the undo command is a painless thing, and makes your -functions much more useful. It is certainly easy to try something if -you know you can undo it. - - If your function simply inserts text once, or deletes text once, and -uses `rl_insert_text()' or `rl_delete_text()' to do it, then undoing is -already done for you automatically. - - If you do multiple insertions or multiple deletions, or any -combination of these operations, you should group them together into -one operation. This is done with `rl_begin_undo_group()' and -`rl_end_undo_group()'. - - The types of events that can be undone are: - - enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END }; - - Notice that `UNDO_DELETE' means to insert some text, and -`UNDO_INSERT' means to delete some text. That is, the undo code tells -what to undo, not how to undo it. `UNDO_BEGIN' and `UNDO_END' are tags -added by `rl_begin_undo_group()' and `rl_end_undo_group()'. - - -- Function: int rl_begin_undo_group (void) - Begins saving undo information in a group construct. The undo - information usually comes from calls to `rl_insert_text()' and - `rl_delete_text()', but could be the result of calls to - `rl_add_undo()'. - - -- Function: int rl_end_undo_group (void) - Closes the current undo group started with `rl_begin_undo_group - ()'. There should be one call to `rl_end_undo_group()' for each - call to `rl_begin_undo_group()'. - - -- Function: void rl_add_undo (enum undo_code what, int start, int - end, char *text) - Remember how to undo an event (according to WHAT). The affected - text runs from START to END, and encompasses TEXT. - - -- Function: void rl_free_undo_list (void) - Free the existing undo list. - - -- Function: int rl_do_undo (void) - Undo the first thing on the undo list. Returns `0' if there was - nothing to undo, non-zero if something was undone. - - Finally, if you neither insert nor delete text, but directly modify -the existing text (e.g., change its case), call `rl_modifying()' once, -just before you modify the text. You must supply the indices of the -text range that you are going to modify. - - -- Function: int rl_modifying (int start, int end) - Tell Readline to save the text between START and END as a single - undo unit. It is assumed that you will subsequently modify that - text. - - -File: readline.info, Node: Redisplay, Next: Modifying Text, Prev: Allowing Undoing, Up: Readline Convenience Functions - -2.4.6 Redisplay ---------------- - - -- Function: void rl_redisplay (void) - Change what's displayed on the screen to reflect the current - contents of `rl_line_buffer'. - - -- Function: int rl_forced_update_display (void) - Force the line to be updated and redisplayed, whether or not - Readline thinks the screen display is correct. - - -- Function: int rl_on_new_line (void) - Tell the update functions that we have moved onto a new (empty) - line, usually after ouputting a newline. - - -- Function: int rl_on_new_line_with_prompt (void) - Tell the update functions that we have moved onto a new line, with - RL_PROMPT already displayed. This could be used by applications - that want to output the prompt string themselves, but still need - Readline to know the prompt string length for redisplay. It - should be used after setting RL_ALREADY_PROMPTED. - - -- Function: int rl_reset_line_state (void) - Reset the display state to a clean state and redisplay the current - line starting on a new line. - - -- Function: int rl_crlf (void) - Move the cursor to the start of the next screen line. - - -- Function: int rl_show_char (int c) - Display character C on `rl_outstream'. If Readline has not been - set to display meta characters directly, this will convert meta - characters to a meta-prefixed key sequence. This is intended for - use by applications which wish to do their own redisplay. - - -- Function: int rl_message (const char *, ...) - The arguments are a format string as would be supplied to `printf', - possibly containing conversion specifications such as `%d', and - any additional arguments necessary to satisfy the conversion - specifications. The resulting string is displayed in the "echo - area". The echo area is also used to display numeric arguments - and search strings. You should call `rl_save_prompt' to save the - prompt information before calling this function. - - -- Function: int rl_clear_message (void) - Clear the message in the echo area. If the prompt was saved with - a call to `rl_save_prompt' before the last call to `rl_message', - call `rl_restore_prompt' before calling this function. - - -- Function: void rl_save_prompt (void) - Save the local Readline prompt display state in preparation for - displaying a new message in the message area with `rl_message()'. - - -- Function: void rl_restore_prompt (void) - Restore the local Readline prompt display state saved by the most - recent call to `rl_save_prompt'. if `rl_save_prompt' was called - to save the prompt before a call to `rl_message', this function - should be called before the corresponding call to - `rl_clear_message'. - - -- Function: int rl_expand_prompt (char *prompt) - Expand any special character sequences in PROMPT and set up the - local Readline prompt redisplay variables. This function is - called by `readline()'. It may also be called to expand the - primary prompt if the `rl_on_new_line_with_prompt()' function or - `rl_already_prompted' variable is used. It returns the number of - visible characters on the last line of the (possibly multi-line) - prompt. Applications may indicate that the prompt contains - characters that take up no physical screen space when displayed by - bracketing a sequence of such characters with the special markers - `RL_PROMPT_START_IGNORE' and `RL_PROMPT_END_IGNORE' (declared in - `readline.h'. This may be used to embed terminal-specific escape - sequences in prompts. - - -- Function: int rl_set_prompt (const char *prompt) - Make Readline use PROMPT for subsequent redisplay. This calls - `rl_expand_prompt()' to expand the prompt and sets `rl_prompt' to - the result. - - -File: readline.info, Node: Modifying Text, Next: Character Input, Prev: Redisplay, Up: Readline Convenience Functions - -2.4.7 Modifying Text --------------------- - - -- Function: int rl_insert_text (const char *text) - Insert TEXT into the line at the current cursor position. Returns - the number of characters inserted. - - -- Function: int rl_delete_text (int start, int end) - Delete the text between START and END in the current line. - Returns the number of characters deleted. - - -- Function: char * rl_copy_text (int start, int end) - Return a copy of the text between START and END in the current - line. - - -- Function: int rl_kill_text (int start, int end) - Copy the text between START and END in the current line to the - kill ring, appending or prepending to the last kill if the last - command was a kill command. The text is deleted. If START is - less than END, the text is appended, otherwise prepended. If the - last command was not a kill, a new kill ring slot is used. - - -- Function: int rl_push_macro_input (char *macro) - Cause MACRO to be inserted into the line, as if it had been invoked - by a key bound to a macro. Not especially useful; use - `rl_insert_text()' instead. - - -File: readline.info, Node: Character Input, Next: Terminal Management, Prev: Modifying Text, Up: Readline Convenience Functions - -2.4.8 Character Input ---------------------- - - -- Function: int rl_read_key (void) - Return the next character available from Readline's current input - stream. This handles input inserted into the input stream via - RL_PENDING_INPUT (*note Readline Variables::) and - `rl_stuff_char()', macros, and characters read from the keyboard. - While waiting for input, this function will call any function - assigned to the `rl_event_hook' variable. - - -- Function: int rl_getc (FILE *stream) - Return the next character available from STREAM, which is assumed - to be the keyboard. - - -- Function: int rl_stuff_char (int c) - Insert C into the Readline input stream. It will be "read" before - Readline attempts to read characters from the terminal with - `rl_read_key()'. Up to 512 characters may be pushed back. - `rl_stuff_char' returns 1 if the character was successfully - inserted; 0 otherwise. - - -- Function: int rl_execute_next (int c) - Make C be the next command to be executed when `rl_read_key()' is - called. This sets RL_PENDING_INPUT. - - -- Function: int rl_clear_pending_input (void) - Unset RL_PENDING_INPUT, effectively negating the effect of any - previous call to `rl_execute_next()'. This works only if the - pending input has not already been read with `rl_read_key()'. - - -- Function: int rl_set_keyboard_input_timeout (int u) - While waiting for keyboard input in `rl_read_key()', Readline will - wait for U microseconds for input before calling any function - assigned to `rl_event_hook'. U must be greater than or equal to - zero (a zero-length timeout is equivalent to a poll). The default - waiting period is one-tenth of a second. Returns the old timeout - value. - - -File: readline.info, Node: Terminal Management, Next: Utility Functions, Prev: Character Input, Up: Readline Convenience Functions - -2.4.9 Terminal Management -------------------------- - - -- Function: void rl_prep_terminal (int meta_flag) - Modify the terminal settings for Readline's use, so `readline()' - can read a single character at a time from the keyboard. The - META_FLAG argument should be non-zero if Readline should read - eight-bit input. - - -- Function: void rl_deprep_terminal (void) - Undo the effects of `rl_prep_terminal()', leaving the terminal in - the state in which it was before the most recent call to - `rl_prep_terminal()'. - - -- Function: void rl_tty_set_default_bindings (Keymap kmap) - Read the operating system's terminal editing characters (as would - be displayed by `stty') to their Readline equivalents. The - bindings are performed in KMAP. - - -- Function: void rl_tty_unset_default_bindings (Keymap kmap) - Reset the bindings manipulated by `rl_tty_set_default_bindings' so - that the terminal editing characters are bound to `rl_insert'. - The bindings are performed in KMAP. - - -- Function: int rl_reset_terminal (const char *terminal_name) - Reinitialize Readline's idea of the terminal settings using - TERMINAL_NAME as the terminal type (e.g., `vt100'). If - TERMINAL_NAME is `NULL', the value of the `TERM' environment - variable is used. - - -File: readline.info, Node: Utility Functions, Next: Miscellaneous Functions, Prev: Terminal Management, Up: Readline Convenience Functions - -2.4.10 Utility Functions ------------------------- - - -- Function: int rl_save_state (struct readline_state *sp) - Save a snapshot of Readline's internal state to SP. The contents - of the READLINE_STATE structure are documented in `readline.h'. - The caller is responsible for allocating the structure. - - -- Function: int rl_restore_state (struct readline_state *sp) - Restore Readline's internal state to that stored in SP, which must - have been saved by a call to `rl_save_state'. The contents of the - READLINE_STATE structure are documented in `readline.h'. The - caller is responsible for freeing the structure. - - -- Function: void rl_free (void *mem) - Deallocate the memory pointed to by MEM. MEM must have been - allocated by `malloc'. - - -- Function: void rl_replace_line (const char *text, int clear_undo) - Replace the contents of `rl_line_buffer' with TEXT. The point and - mark are preserved, if possible. If CLEAR_UNDO is non-zero, the - undo list associated with the current line is cleared. - - -- Function: void rl_extend_line_buffer (int len) - Ensure that `rl_line_buffer' has enough space to hold LEN - characters, possibly reallocating it if necessary. - - -- Function: int rl_initialize (void) - Initialize or re-initialize Readline's internal state. It's not - strictly necessary to call this; `readline()' calls it before - reading any input. - - -- Function: int rl_ding (void) - Ring the terminal bell, obeying the setting of `bell-style'. - - -- Function: int rl_alphabetic (int c) - Return 1 if C is an alphabetic character. - - -- Function: void rl_display_match_list (char **matches, int len, int - max) - A convenience function for displaying a list of strings in - columnar format on Readline's output stream. `matches' is the list - of strings, in argv format, such as a list of completion matches. - `len' is the number of strings in `matches', and `max' is the - length of the longest string in `matches'. This function uses the - setting of `print-completions-horizontally' to select how the - matches are displayed (*note Readline Init File Syntax::). When - displaying completions, this function sets the number of columns - used for display to the value of `completion-display-width', the - value of the environment variable `COLUMNS', or the screen width, - in that order. - - The following are implemented as macros, defined in `chardefs.h'. -Applications should refrain from using them. - - -- Function: int _rl_uppercase_p (int c) - Return 1 if C is an uppercase alphabetic character. - - -- Function: int _rl_lowercase_p (int c) - Return 1 if C is a lowercase alphabetic character. - - -- Function: int _rl_digit_p (int c) - Return 1 if C is a numeric character. - - -- Function: int _rl_to_upper (int c) - If C is a lowercase alphabetic character, return the corresponding - uppercase character. - - -- Function: int _rl_to_lower (int c) - If C is an uppercase alphabetic character, return the corresponding - lowercase character. - - -- Function: int _rl_digit_value (int c) - If C is a number, return the value it represents. - - -File: readline.info, Node: Miscellaneous Functions, Next: Alternate Interface, Prev: Utility Functions, Up: Readline Convenience Functions - -2.4.11 Miscellaneous Functions ------------------------------- - - -- Function: int rl_macro_bind (const char *keyseq, const char *macro, - Keymap map) - Bind the key sequence KEYSEQ to invoke the macro MACRO. The - binding is performed in MAP. When KEYSEQ is invoked, the MACRO - will be inserted into the line. This function is deprecated; use - `rl_generic_bind()' instead. - - -- Function: void rl_macro_dumper (int readable) - Print the key sequences bound to macros and their values, using - the current keymap, to `rl_outstream'. If READABLE is non-zero, - the list is formatted in such a way that it can be made part of an - `inputrc' file and re-read. - - -- Function: int rl_variable_bind (const char *variable, const char - *value) - Make the Readline variable VARIABLE have VALUE. This behaves as - if the readline command `set VARIABLE VALUE' had been executed in - an `inputrc' file (*note Readline Init File Syntax::). - - -- Function: char * rl_variable_value (const char *variable) - Return a string representing the value of the Readline variable - VARIABLE. For boolean variables, this string is either `on' or - `off'. - - -- Function: void rl_variable_dumper (int readable) - Print the readline variable names and their current values to - `rl_outstream'. If READABLE is non-zero, the list is formatted in - such a way that it can be made part of an `inputrc' file and - re-read. - - -- Function: int rl_set_paren_blink_timeout (int u) - Set the time interval (in microseconds) that Readline waits when - showing a balancing character when `blink-matching-paren' has been - enabled. - - -- Function: char * rl_get_termcap (const char *cap) - Retrieve the string value of the termcap capability CAP. Readline - fetches the termcap entry for the current terminal name and uses - those capabilities to move around the screen line and perform other - terminal-specific operations, like erasing a line. Readline does - not use all of a terminal's capabilities, and this function will - return values for only those capabilities Readline uses. - - -File: readline.info, Node: Alternate Interface, Next: A Readline Example, Prev: Miscellaneous Functions, Up: Readline Convenience Functions - -2.4.12 Alternate Interface --------------------------- - -An alternate interface is available to plain `readline()'. Some -applications need to interleave keyboard I/O with file, device, or -window system I/O, typically by using a main loop to `select()' on -various file descriptors. To accomodate this need, readline can also -be invoked as a `callback' function from an event loop. There are -functions available to make this easy. - - -- Function: void rl_callback_handler_install (const char *prompt, - rl_vcpfunc_t *lhandler) - Set up the terminal for readline I/O and display the initial - expanded value of PROMPT. Save the value of LHANDLER to use as a - function to call when a complete line of input has been entered. - The function takes the text of the line as an argument. - - -- Function: void rl_callback_read_char (void) - Whenever an application determines that keyboard input is - available, it should call `rl_callback_read_char()', which will - read the next character from the current input source. If that - character completes the line, `rl_callback_read_char' will invoke - the LHANDLER function saved by `rl_callback_handler_install' to - process the line. Before calling the LHANDLER function, the - terminal settings are reset to the values they had before calling - `rl_callback_handler_install'. If the LHANDLER function returns, - the terminal settings are modified for Readline's use again. - `EOF' is indicated by calling LHANDLER with a `NULL' line. - - -- Function: void rl_callback_handler_remove (void) - Restore the terminal to its initial state and remove the line - handler. This may be called from within a callback as well as - independently. If the LHANDLER installed by - `rl_callback_handler_install' does not exit the program, either - this function or the function referred to by the value of - `rl_deprep_term_function' should be called before the program - exits to reset the terminal settings. - - -File: readline.info, Node: A Readline Example, Prev: Alternate Interface, Up: Readline Convenience Functions - -2.4.13 A Readline Example -------------------------- - -Here is a function which changes lowercase characters to their uppercase -equivalents, and uppercase characters to lowercase. If this function -was bound to `M-c', then typing `M-c' would change the case of the -character under point. Typing `M-1 0 M-c' would change the case of the -following 10 characters, leaving the cursor on the last character -changed. - - /* Invert the case of the COUNT following characters. */ - int - invert_case_line (count, key) - int count, key; - { - register int start, end, i; - - start = rl_point; - - if (rl_point >= rl_end) - return (0); - - if (count < 0) - { - direction = -1; - count = -count; - } - else - direction = 1; - - /* Find the end of the range to modify. */ - end = start + (count * direction); - - /* Force it to be within range. */ - if (end > rl_end) - end = rl_end; - else if (end < 0) - end = 0; - - if (start == end) - return (0); - - if (start > end) - { - int temp = start; - start = end; - end = temp; - } - - /* Tell readline that we are modifying the line, - so it will save the undo information. */ - rl_modifying (start, end); - - for (i = start; i != end; i++) - { - if (_rl_uppercase_p (rl_line_buffer[i])) - rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]); - else if (_rl_lowercase_p (rl_line_buffer[i])) - rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]); - } - /* Move point to on top of the last character changed. */ - rl_point = (direction == 1) ? end - 1 : start; - return (0); - } - - -File: readline.info, Node: Readline Signal Handling, Next: Custom Completers, Prev: Readline Convenience Functions, Up: Programming with GNU Readline - -2.5 Readline Signal Handling -============================ - -Signals are asynchronous events sent to a process by the Unix kernel, -sometimes on behalf of another process. They are intended to indicate -exceptional events, like a user pressing the interrupt key on his -terminal, or a network connection being broken. There is a class of -signals that can be sent to the process currently reading input from -the keyboard. Since Readline changes the terminal attributes when it -is called, it needs to perform special processing when such a signal is -received in order to restore the terminal to a sane state, or provide -application writers with functions to do so manually. - - Readline contains an internal signal handler that is installed for a -number of signals (`SIGINT', `SIGQUIT', `SIGTERM', `SIGALRM', -`SIGTSTP', `SIGTTIN', and `SIGTTOU'). When one of these signals is -received, the signal handler will reset the terminal attributes to -those that were in effect before `readline()' was called, reset the -signal handling to what it was before `readline()' was called, and -resend the signal to the calling application. If and when the calling -application's signal handler returns, Readline will reinitialize the -terminal and continue to accept input. When a `SIGINT' is received, -the Readline signal handler performs some additional work, which will -cause any partially-entered line to be aborted (see the description of -`rl_free_line_state()' below). - - There is an additional Readline signal handler, for `SIGWINCH', which -the kernel sends to a process whenever the terminal's size changes (for -example, if a user resizes an `xterm'). The Readline `SIGWINCH' -handler updates Readline's internal screen size information, and then -calls any `SIGWINCH' signal handler the calling application has -installed. Readline calls the application's `SIGWINCH' signal handler -without resetting the terminal to its original state. If the -application's signal handler does more than update its idea of the -terminal size and return (for example, a `longjmp' back to a main -processing loop), it _must_ call `rl_cleanup_after_signal()' (described -below), to restore the terminal state. - - Readline provides two variables that allow application writers to -control whether or not it will catch certain signals and act on them -when they are received. It is important that applications change the -values of these variables only when calling `readline()', not in a -signal handler, so Readline's internal signal state is not corrupted. - - -- Variable: int rl_catch_signals - If this variable is non-zero, Readline will install signal - handlers for `SIGINT', `SIGQUIT', `SIGTERM', `SIGALRM', `SIGTSTP', - `SIGTTIN', and `SIGTTOU'. - - The default value of `rl_catch_signals' is 1. - - -- Variable: int rl_catch_sigwinch - If this variable is non-zero, Readline will install a signal - handler for `SIGWINCH'. - - The default value of `rl_catch_sigwinch' is 1. - - If an application does not wish to have Readline catch any signals, -or to handle signals other than those Readline catches (`SIGHUP', for -example), Readline provides convenience functions to do the necessary -terminal and internal state cleanup upon receipt of a signal. - - -- Function: void rl_cleanup_after_signal (void) - This function will reset the state of the terminal to what it was - before `readline()' was called, and remove the Readline signal - handlers for all signals, depending on the values of - `rl_catch_signals' and `rl_catch_sigwinch'. - - -- Function: void rl_free_line_state (void) - This will free any partial state associated with the current input - line (undo information, any partial history entry, any - partially-entered keyboard macro, and any partially-entered - numeric argument). This should be called before - `rl_cleanup_after_signal()'. The Readline signal handler for - `SIGINT' calls this to abort the current input line. - - -- Function: void rl_reset_after_signal (void) - This will reinitialize the terminal and reinstall any Readline - signal handlers, depending on the values of `rl_catch_signals' and - `rl_catch_sigwinch'. - - If an application does not wish Readline to catch `SIGWINCH', it may -call `rl_resize_terminal()' or `rl_set_screen_size()' to force Readline -to update its idea of the terminal size when a `SIGWINCH' is received. - - -- Function: void rl_echo_signal_char (int sig) - If an application wishes to install its own signal handlers, but - still have readline display characters that generate signals, - calling this function with SIG set to `SIGINT', `SIGQUIT', or - `SIGTSTP' will display the character generating that signal. - - -- Function: void rl_resize_terminal (void) - Update Readline's internal screen size by reading values from the - kernel. - - -- Function: void rl_set_screen_size (int rows, int cols) - Set Readline's idea of the terminal size to ROWS rows and COLS - columns. If either ROWS or COLUMNS is less than or equal to 0, - Readline's idea of that terminal dimension is unchanged. - - If an application does not want to install a `SIGWINCH' handler, but -is still interested in the screen dimensions, Readline's idea of the -screen size may be queried. - - -- Function: void rl_get_screen_size (int *rows, int *cols) - Return Readline's idea of the terminal's size in the variables - pointed to by the arguments. - - -- Function: void rl_reset_screen_size (void) - Cause Readline to reobtain the screen size and recalculate its - dimensions. - - The following functions install and remove Readline's signal -handlers. - - -- Function: int rl_set_signals (void) - Install Readline's signal handler for `SIGINT', `SIGQUIT', - `SIGTERM', `SIGALRM', `SIGTSTP', `SIGTTIN', `SIGTTOU', and - `SIGWINCH', depending on the values of `rl_catch_signals' and - `rl_catch_sigwinch'. - - -- Function: int rl_clear_signals (void) - Remove all of the Readline signal handlers installed by - `rl_set_signals()'. - - -File: readline.info, Node: Custom Completers, Prev: Readline Signal Handling, Up: Programming with GNU Readline - -2.6 Custom Completers -===================== - -Typically, a program that reads commands from the user has a way of -disambiguating commands and data. If your program is one of these, then -it can provide completion for commands, data, or both. The following -sections describe how your program and Readline cooperate to provide -this service. - -* Menu: - -* How Completing Works:: The logic used to do completion. -* Completion Functions:: Functions provided by Readline. -* Completion Variables:: Variables which control completion. -* A Short Completion Example:: An example of writing completer subroutines. - - -File: readline.info, Node: How Completing Works, Next: Completion Functions, Up: Custom Completers - -2.6.1 How Completing Works --------------------------- - -In order to complete some text, the full list of possible completions -must be available. That is, it is not possible to accurately expand a -partial word without knowing all of the possible words which make sense -in that context. The Readline library provides the user interface to -completion, and two of the most common completion functions: filename -and username. For completing other types of text, you must write your -own completion function. This section describes exactly what such -functions must do, and provides an example. - - There are three major functions used to perform completion: - - 1. The user-interface function `rl_complete()'. This function is - called with the same arguments as other bindable Readline - functions: COUNT and INVOKING_KEY. It isolates the word to be - completed and calls `rl_completion_matches()' to generate a list - of possible completions. It then either lists the possible - completions, inserts the possible completions, or actually - performs the completion, depending on which behavior is desired. - - 2. The internal function `rl_completion_matches()' uses an - application-supplied "generator" function to generate the list of - possible matches, and then returns the array of these matches. - The caller should place the address of its generator function in - `rl_completion_entry_function'. - - 3. The generator function is called repeatedly from - `rl_completion_matches()', returning a string each time. The - arguments to the generator function are TEXT and STATE. TEXT is - the partial word to be completed. STATE is zero the first time - the function is called, allowing the generator to perform any - necessary initialization, and a positive non-zero integer for each - subsequent call. The generator function returns `(char *)NULL' to - inform `rl_completion_matches()' that there are no more - possibilities left. Usually the generator function computes the - list of possible completions when STATE is zero, and returns them - one at a time on subsequent calls. Each string the generator - function returns as a match must be allocated with `malloc()'; - Readline frees the strings when it has finished with them. Such a - generator function is referred to as an "application-specific - completion function". - - - -- Function: int rl_complete (int ignore, int invoking_key) - Complete the word at or before point. You have supplied the - function that does the initial simple matching selection algorithm - (see `rl_completion_matches()'). The default is to do filename - completion. - - -- Variable: rl_compentry_func_t * rl_completion_entry_function - This is a pointer to the generator function for - `rl_completion_matches()'. If the value of - `rl_completion_entry_function' is `NULL' then the default filename - generator function, `rl_filename_completion_function()', is used. - An "application-specific completion function" is a function whose - address is assigned to `rl_completion_entry_function' and whose - return values are used to generate possible completions. - - -File: readline.info, Node: Completion Functions, Next: Completion Variables, Prev: How Completing Works, Up: Custom Completers - -2.6.2 Completion Functions --------------------------- - -Here is the complete list of callable completion functions present in -Readline. - - -- Function: int rl_complete_internal (int what_to_do) - Complete the word at or before point. WHAT_TO_DO says what to do - with the completion. A value of `?' means list the possible - completions. `TAB' means do standard completion. `*' means - insert all of the possible completions. `!' means to display all - of the possible completions, if there is more than one, as well as - performing partial completion. `@' is similar to `!', but - possible completions are not listed if the possible completions - share a common prefix. - - -- Function: int rl_complete (int ignore, int invoking_key) - Complete the word at or before point. You have supplied the - function that does the initial simple matching selection algorithm - (see `rl_completion_matches()' and `rl_completion_entry_function'). - The default is to do filename completion. This calls - `rl_complete_internal()' with an argument depending on - INVOKING_KEY. - - -- Function: int rl_possible_completions (int count, int invoking_key) - List the possible completions. See description of `rl_complete - ()'. This calls `rl_complete_internal()' with an argument of `?'. - - -- Function: int rl_insert_completions (int count, int invoking_key) - Insert the list of possible completions into the line, deleting the - partially-completed word. See description of `rl_complete()'. - This calls `rl_complete_internal()' with an argument of `*'. - - -- Function: int rl_completion_mode (rl_command_func_t *cfunc) - Returns the apppriate value to pass to `rl_complete_internal()' - depending on whether CFUNC was called twice in succession and the - values of the `show-all-if-ambiguous' and `show-all-if-unmodified' - variables. Application-specific completion functions may use this - function to present the same interface as `rl_complete()'. - - -- Function: char ** rl_completion_matches (const char *text, - rl_compentry_func_t *entry_func) - Returns an array of strings which is a list of completions for - TEXT. If there are no completions, returns `NULL'. The first - entry in the returned array is the substitution for TEXT. The - remaining entries are the possible completions. The array is - terminated with a `NULL' pointer. - - ENTRY_FUNC is a function of two args, and returns a `char *'. The - first argument is TEXT. The second is a state argument; it is - zero on the first call, and non-zero on subsequent calls. - ENTRY_FUNC returns a `NULL' pointer to the caller when there are - no more matches. - - -- Function: char * rl_filename_completion_function (const char *text, - int state) - A generator function for filename completion in the general case. - TEXT is a partial filename. The Bash source is a useful reference - for writing application-specific completion functions (the Bash - completion functions call this and other Readline functions). - - -- Function: char * rl_username_completion_function (const char *text, - int state) - A completion generator for usernames. TEXT contains a partial - username preceded by a random character (usually `~'). As with all - completion generators, STATE is zero on the first call and non-zero - for subsequent calls. - - -File: readline.info, Node: Completion Variables, Next: A Short Completion Example, Prev: Completion Functions, Up: Custom Completers - -2.6.3 Completion Variables --------------------------- - - -- Variable: rl_compentry_func_t * rl_completion_entry_function - A pointer to the generator function for `rl_completion_matches()'. - `NULL' means to use `rl_filename_completion_function()', the - default filename completer. - - -- Variable: rl_completion_func_t * rl_attempted_completion_function - A pointer to an alternative function to create matches. The - function is called with TEXT, START, and END. START and END are - indices in `rl_line_buffer' defining the boundaries of TEXT, which - is a character string. If this function exists and returns - `NULL', or if this variable is set to `NULL', then `rl_complete()' - will call the value of `rl_completion_entry_function' to generate - matches, otherwise the array of strings returned will be used. If - this function sets the `rl_attempted_completion_over' variable to - a non-zero value, Readline will not perform its default completion - even if this function returns no matches. - - -- Variable: rl_quote_func_t * rl_filename_quoting_function - A pointer to a function that will quote a filename in an - application-specific fashion. This is called if filename - completion is being attempted and one of the characters in - `rl_filename_quote_characters' appears in a completed filename. - The function is called with TEXT, MATCH_TYPE, and QUOTE_POINTER. - The TEXT is the filename to be quoted. The MATCH_TYPE is either - `SINGLE_MATCH', if there is only one completion match, or - `MULT_MATCH'. Some functions use this to decide whether or not to - insert a closing quote character. The QUOTE_POINTER is a pointer - to any opening quote character the user typed. Some functions - choose to reset this character. - - -- Variable: rl_dequote_func_t * rl_filename_dequoting_function - A pointer to a function that will remove application-specific - quoting characters from a filename before completion is attempted, - so those characters do not interfere with matching the text - against names in the filesystem. It is called with TEXT, the text - of the word to be dequoted, and QUOTE_CHAR, which is the quoting - character that delimits the filename (usually `'' or `"'). If - QUOTE_CHAR is zero, the filename was not in an embedded string. - - -- Variable: rl_linebuf_func_t * rl_char_is_quoted_p - A pointer to a function to call that determines whether or not a - specific character in the line buffer is quoted, according to - whatever quoting mechanism the program calling Readline uses. The - function is called with two arguments: TEXT, the text of the line, - and INDEX, the index of the character in the line. It is used to - decide whether a character found in - `rl_completer_word_break_characters' should be used to break words - for the completer. - - -- Variable: rl_compignore_func_t * rl_ignore_some_completions_function - This function, if defined, is called by the completer when real - filename completion is done, after all the matching names have - been generated. It is passed a `NULL' terminated array of matches. - The first element (`matches[0]') is the maximal substring common - to all matches. This function can re-arrange the list of matches - as required, but each element deleted from the array must be freed. - - -- Variable: rl_icppfunc_t * rl_directory_completion_hook - This function, if defined, is allowed to modify the directory - portion of filenames Readline completes. It could be used to - expand symbolic links or shell variables in pathnames. It is - called with the address of a string (the current directory name) - as an argument, and may modify that string. If the string is - replaced with a new string, the old value should be freed. Any - modified directory name should have a trailing slash. The - modified value will be used as part of the completion, replacing - the directory portion of the pathname the user typed. At the - least, even if no other expansion is performed, this function - should remove any quote characters from the directory name, - because its result will be passed directly to `opendir()'. The - directory completion hook returns an integer that should be - non-zero if the function modifies its directory argument. The - function should not modify the directory argument if it returns 0. - - -- Variable: rl_dequote_func_t * rl_filename_rewrite_hook - If non-zero, this is the address of a function called when reading - directory entries from the filesystem for completion and comparing - them to the partial word to be completed. The function should - perform any necesary application or system-specific conversion on - the filename, such as converting between character sets or - converting from a filesystem format to a character input format. - The function takes two arguments: FNAME, the filename to be - converted, and FNLEN, its length in bytes. It must either return - its first argument (if no conversion takes place) or the converted - filename in newly-allocated memory. The converted form is used to - compare against the word to be completed, and, if it matches, is - added to the list of matches. Readline will free the allocated - string. - - -- Variable: rl_compdisp_func_t * rl_completion_display_matches_hook - If non-zero, then this is the address of a function to call when - completing a word would normally display the list of possible - matches. This function is called in lieu of Readline displaying - the list. It takes three arguments: (`char **'MATCHES, `int' - NUM_MATCHES, `int' MAX_LENGTH) where MATCHES is the array of - matching strings, NUM_MATCHES is the number of strings in that - array, and MAX_LENGTH is the length of the longest string in that - array. Readline provides a convenience function, - `rl_display_match_list', that takes care of doing the display to - Readline's output stream. That function may be called from this - hook. - - -- Variable: const char * rl_basic_word_break_characters - The basic list of characters that signal a break between words for - the completer routine. The default value of this variable is the - characters which break words for completion in Bash: `" - \t\n\"\\'`@$><=;|&{("'. - - -- Variable: const char * rl_basic_quote_characters - A list of quote characters which can cause a word break. - - -- Variable: const char * rl_completer_word_break_characters - The list of characters that signal a break between words for - `rl_complete_internal()'. The default list is the value of - `rl_basic_word_break_characters'. - - -- Variable: rl_cpvfunc_t * rl_completion_word_break_hook - If non-zero, this is the address of a function to call when - Readline is deciding where to separate words for word completion. - It should return a character string like - `rl_completer_word_break_characters' to be used to perform the - current completion. The function may choose to set - `rl_completer_word_break_characters' itself. If the function - returns `NULL', `rl_completer_word_break_characters' is used. - - -- Variable: const char * rl_completer_quote_characters - A list of characters which can be used to quote a substring of the - line. Completion occurs on the entire substring, and within the - substring `rl_completer_word_break_characters' are treated as any - other character, unless they also appear within this list. - - -- Variable: const char * rl_filename_quote_characters - A list of characters that cause a filename to be quoted by the - completer when they appear in a completed filename. The default - is the null string. - - -- Variable: const char * rl_special_prefixes - The list of characters that are word break characters, but should - be left in TEXT when it is passed to the completion function. - Programs can use this to help determine what kind of completing to - do. For instance, Bash sets this variable to "$@" so that it can - complete shell variables and hostnames. - - -- Variable: int rl_completion_query_items - Up to this many items will be displayed in response to a - possible-completions call. After that, readline asks the user if - she is sure she wants to see them all. The default value is 100. - A negative value indicates that Readline should never ask the user. - - -- Variable: int rl_completion_append_character - When a single completion alternative matches at the end of the - command line, this character is appended to the inserted - completion text. The default is a space character (` '). Setting - this to the null character (`\0') prevents anything being appended - automatically. This can be changed in application-specific - completion functions to provide the "most sensible word separator - character" according to an application-specific command line - syntax specification. - - -- Variable: int rl_completion_suppress_append - If non-zero, RL_COMPLETION_APPEND_CHARACTER is not appended to - matches at the end of the command line, as described above. It is - set to 0 before any application-specific completion function is - called, and may only be changed within such a function. - - -- Variable: int rl_completion_quote_character - When Readline is completing quoted text, as delimited by one of the - characters in RL_COMPLETER_QUOTE_CHARACTERS, it sets this variable - to the quoting character found. This is set before any - application-specific completion function is called. - - -- Variable: int rl_completion_suppress_quote - If non-zero, Readline does not append a matching quote character - when performing completion on a quoted string. It is set to 0 - before any application-specific completion function is called, and - may only be changed within such a function. - - -- Variable: int rl_completion_found_quote - When Readline is completing quoted text, it sets this variable to - a non-zero value if the word being completed contains or is - delimited by any quoting characters, including backslashes. This - is set before any application-specific completion function is - called. - - -- Variable: int rl_completion_mark_symlink_dirs - If non-zero, a slash will be appended to completed filenames that - are symbolic links to directory names, subject to the value of the - user-settable MARK-DIRECTORIES variable. This variable exists so - that application-specific completion functions can override the - user's global preference (set via the MARK-SYMLINKED-DIRECTORIES - Readline variable) if appropriate. This variable is set to the - user's preference before any application-specific completion - function is called, so unless that function modifies the value, - the user's preferences are honored. - - -- Variable: int rl_ignore_completion_duplicates - If non-zero, then duplicates in the matches are removed. The - default is 1. - - -- Variable: int rl_filename_completion_desired - Non-zero means that the results of the matches are to be treated as - filenames. This is _always_ zero when completion is attempted, - and can only be changed within an application-specific completion - function. If it is set to a non-zero value by such a function, - directory names have a slash appended and Readline attempts to - quote completed filenames if they contain any characters in - `rl_filename_quote_characters' and `rl_filename_quoting_desired' - is set to a non-zero value. - - -- Variable: int rl_filename_quoting_desired - Non-zero means that the results of the matches are to be quoted - using double quotes (or an application-specific quoting mechanism) - if the completed filename contains any characters in - `rl_filename_quote_chars'. This is _always_ non-zero when - completion is attempted, and can only be changed within an - application-specific completion function. The quoting is effected - via a call to the function pointed to by - `rl_filename_quoting_function'. - - -- Variable: int rl_attempted_completion_over - If an application-specific completion function assigned to - `rl_attempted_completion_function' sets this variable to a non-zero - value, Readline will not perform its default filename completion - even if the application's completion function returns no matches. - It should be set only by an application's completion function. - - -- Variable: int rl_sort_completion_matches - If an application sets this variable to 0, Readline will not sort - the list of completions (which implies that it cannot remove any - duplicate completions). The default value is 1, which means that - Readline will sort the completions and, depending on the value of - `rl_ignore_completion_duplicates', will attempt to remove duplicate - matches. - - -- Variable: int rl_completion_type - Set to a character describing the type of completion Readline is - currently attempting; see the description of - `rl_complete_internal()' (*note Completion Functions::) for the - list of characters. This is set to the appropriate value before - any application-specific completion function is called, allowing - such functions to present the same interface as `rl_complete()'. - - -- Variable: int rl_completion_invoking_key - Set to the final character in the key sequence that invoked one of - the completion functions that call `rl_complete_internal()'. This - is set to the appropriate value before any application-specific - completion function is called. - - -- Variable: int rl_inhibit_completion - If this variable is non-zero, completion is inhibited. The - completion character will be inserted as any other bound to - `self-insert'. - - -File: readline.info, Node: A Short Completion Example, Prev: Completion Variables, Up: Custom Completers - -2.6.4 A Short Completion Example --------------------------------- - -Here is a small application demonstrating the use of the GNU Readline -library. It is called `fileman', and the source code resides in -`examples/fileman.c'. This sample application provides completion of -command names, line editing features, and access to the history list. - - /* fileman.c -- A tiny application which demonstrates how to use the - GNU Readline library. This application interactively allows users - to manipulate files and their modes. */ - - #ifdef HAVE_CONFIG_H - # include - #endif - - #include - #ifdef HAVE_SYS_FILE_H - # include - #endif - #include - - #ifdef HAVE_UNISTD_H - # include - #endif - - #include - #include - #include - - #if defined (HAVE_STRING_H) - # include - #else /* !HAVE_STRING_H */ - # include - #endif /* !HAVE_STRING_H */ - - #ifdef HAVE_STDLIB_H - # include - #endif - - #include - - #include - #include - - extern char *xmalloc PARAMS((size_t)); - - /* The names of functions that actually do the manipulation. */ - int com_list PARAMS((char *)); - int com_view PARAMS((char *)); - int com_rename PARAMS((char *)); - int com_stat PARAMS((char *)); - int com_pwd PARAMS((char *)); - int com_delete PARAMS((char *)); - int com_help PARAMS((char *)); - int com_cd PARAMS((char *)); - int com_quit PARAMS((char *)); - - /* A structure which contains information on the commands this program - can understand. */ - - typedef struct { - char *name; /* User printable name of the function. */ - rl_icpfunc_t *func; /* Function to call to do the job. */ - char *doc; /* Documentation for this function. */ - } COMMAND; - - COMMAND commands[] = { - { "cd", com_cd, "Change to directory DIR" }, - { "delete", com_delete, "Delete FILE" }, - { "help", com_help, "Display this text" }, - { "?", com_help, "Synonym for `help'" }, - { "list", com_list, "List files in DIR" }, - { "ls", com_list, "Synonym for `list'" }, - { "pwd", com_pwd, "Print the current working directory" }, - { "quit", com_quit, "Quit using Fileman" }, - { "rename", com_rename, "Rename FILE to NEWNAME" }, - { "stat", com_stat, "Print out statistics on FILE" }, - { "view", com_view, "View the contents of FILE" }, - { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL } - }; - - /* Forward declarations. */ - char *stripwhite (); - COMMAND *find_command (); - - /* The name of this program, as taken from argv[0]. */ - char *progname; - - /* When non-zero, this global means the user is done using this program. */ - int done; - - char * - dupstr (s) - char *s; - { - char *r; - - r = xmalloc (strlen (s) + 1); - strcpy (r, s); - return (r); - } - - main (argc, argv) - int argc; - char **argv; - { - char *line, *s; - - progname = argv[0]; - - initialize_readline (); /* Bind our completer. */ - - /* Loop reading and executing lines until the user quits. */ - for ( ; done == 0; ) - { - line = readline ("FileMan: "); - - if (!line) - break; - - /* Remove leading and trailing whitespace from the line. - Then, if there is anything left, add it to the history list - and execute it. */ - s = stripwhite (line); - - if (*s) - { - add_history (s); - execute_line (s); - } - - free (line); - } - exit (0); - } - - /* Execute a command line. */ - int - execute_line (line) - char *line; - { - register int i; - COMMAND *command; - char *word; - - /* Isolate the command word. */ - i = 0; - while (line[i] && whitespace (line[i])) - i++; - word = line + i; - - while (line[i] && !whitespace (line[i])) - i++; - - if (line[i]) - line[i++] = '\0'; - - command = find_command (word); - - if (!command) - { - fprintf (stderr, "%s: No such command for FileMan.\n", word); - return (-1); - } - - /* Get argument to command, if any. */ - while (whitespace (line[i])) - i++; - - word = line + i; - - /* Call the function. */ - return ((*(command->func)) (word)); - } - - /* Look up NAME as the name of a command, and return a pointer to that - command. Return a NULL pointer if NAME isn't a command name. */ - COMMAND * - find_command (name) - char *name; - { - register int i; - - for (i = 0; commands[i].name; i++) - if (strcmp (name, commands[i].name) == 0) - return (&commands[i]); - - return ((COMMAND *)NULL); - } - - /* Strip whitespace from the start and end of STRING. Return a pointer - into STRING. */ - char * - stripwhite (string) - char *string; - { - register char *s, *t; - - for (s = string; whitespace (*s); s++) - ; - - if (*s == 0) - return (s); - - t = s + strlen (s) - 1; - while (t > s && whitespace (*t)) - t--; - *++t = '\0'; - - return s; - } - - /* **************************************************************** */ - /* */ - /* Interface to Readline Completion */ - /* */ - /* **************************************************************** */ - - char *command_generator PARAMS((const char *, int)); - char **fileman_completion PARAMS((const char *, int, int)); - - /* Tell the GNU Readline library how to complete. We want to try to complete - on command names if this is the first word in the line, or on filenames - if not. */ - initialize_readline () - { - /* Allow conditional parsing of the ~/.inputrc file. */ - rl_readline_name = "FileMan"; - - /* Tell the completer that we want a crack first. */ - rl_attempted_completion_function = fileman_completion; - } - - /* Attempt to complete on the contents of TEXT. START and END bound the - region of rl_line_buffer that contains the word to complete. TEXT is - the word to complete. We can use the entire contents of rl_line_buffer - in case we want to do some simple parsing. Return the array of matches, - or NULL if there aren't any. */ - char ** - fileman_completion (text, start, end) - const char *text; - int start, end; - { - char **matches; - - matches = (char **)NULL; - - /* If this word is at the start of the line, then it is a command - to complete. Otherwise it is the name of a file in the current - directory. */ - if (start == 0) - matches = rl_completion_matches (text, command_generator); - - return (matches); - } - - /* Generator function for command completion. STATE lets us know whether - to start from scratch; without any state (i.e. STATE == 0), then we - start at the top of the list. */ - char * - command_generator (text, state) - const char *text; - int state; - { - static int list_index, len; - char *name; - - /* If this is a new word to complete, initialize now. This includes - saving the length of TEXT for efficiency, and initializing the index - variable to 0. */ - if (!state) - { - list_index = 0; - len = strlen (text); - } - - /* Return the next name which partially matches from the command list. */ - while (name = commands[list_index].name) - { - list_index++; - - if (strncmp (name, text, len) == 0) - return (dupstr(name)); - } - - /* If no names matched, then return NULL. */ - return ((char *)NULL); - } - - /* **************************************************************** */ - /* */ - /* FileMan Commands */ - /* */ - /* **************************************************************** */ - - /* String to pass to system (). This is for the LIST, VIEW and RENAME - commands. */ - static char syscom[1024]; - - /* List the file(s) named in arg. */ - com_list (arg) - char *arg; - { - if (!arg) - arg = ""; - - sprintf (syscom, "ls -FClg %s", arg); - return (system (syscom)); - } - - com_view (arg) - char *arg; - { - if (!valid_argument ("view", arg)) - return 1; - - #if defined (__MSDOS__) - /* more.com doesn't grok slashes in pathnames */ - sprintf (syscom, "less %s", arg); - #else - sprintf (syscom, "more %s", arg); - #endif - return (system (syscom)); - } - - com_rename (arg) - char *arg; - { - too_dangerous ("rename"); - return (1); - } - - com_stat (arg) - char *arg; - { - struct stat finfo; - - if (!valid_argument ("stat", arg)) - return (1); - - if (stat (arg, &finfo) == -1) - { - perror (arg); - return (1); - } - - printf ("Statistics for `%s':\n", arg); - - printf ("%s has %d link%s, and is %d byte%s in length.\n", - arg, - finfo.st_nlink, - (finfo.st_nlink == 1) ? "" : "s", - finfo.st_size, - (finfo.st_size == 1) ? "" : "s"); - printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime)); - printf (" Last access at: %s", ctime (&finfo.st_atime)); - printf (" Last modified at: %s", ctime (&finfo.st_mtime)); - return (0); - } - - com_delete (arg) - char *arg; - { - too_dangerous ("delete"); - return (1); - } - - /* Print out help for ARG, or for all of the commands if ARG is - not present. */ - com_help (arg) - char *arg; - { - register int i; - int printed = 0; - - for (i = 0; commands[i].name; i++) - { - if (!*arg || (strcmp (arg, commands[i].name) == 0)) - { - printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc); - printed++; - } - } - - if (!printed) - { - printf ("No commands match `%s'. Possibilties are:\n", arg); - - for (i = 0; commands[i].name; i++) - { - /* Print in six columns. */ - if (printed == 6) - { - printed = 0; - printf ("\n"); - } - - printf ("%s\t", commands[i].name); - printed++; - } - - if (printed) - printf ("\n"); - } - return (0); - } - - /* Change to the directory ARG. */ - com_cd (arg) - char *arg; - { - if (chdir (arg) == -1) - { - perror (arg); - return 1; - } - - com_pwd (""); - return (0); - } - - /* Print out the current working directory. */ - com_pwd (ignore) - char *ignore; - { - char dir[1024], *s; - - s = getcwd (dir, sizeof(dir) - 1); - if (s == 0) - { - printf ("Error getting pwd: %s\n", dir); - return 1; - } - - printf ("Current directory is %s\n", dir); - return 0; - } - - /* The user wishes to quit using this program. Just set DONE non-zero. */ - com_quit (arg) - char *arg; - { - done = 1; - return (0); - } - - /* Function which tells you that you can't do this. */ - too_dangerous (caller) - char *caller; - { - fprintf (stderr, - "%s: Too dangerous for me to distribute. Write it yourself.\n", - caller); - } - - /* Return non-zero if ARG is a valid argument for CALLER, else print - an error message and return zero. */ - int - valid_argument (caller, arg) - char *caller, *arg; - { - if (!arg || !*arg) - { - fprintf (stderr, "%s: Argument required.\n", caller); - return (0); - } - - return (1); - } - - -File: readline.info, Node: GNU Free Documentation License, Next: Concept Index, Prev: Programming with GNU Readline, Up: Top - -Appendix A GNU Free Documentation License -***************************************** - - Version 1.3, 3 November 2008 - - Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. - `http://fsf.org/' - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other - functional and useful document "free" in the sense of freedom: to - assure everyone the effective freedom to copy and redistribute it, - with or without modifying it, either commercially or - noncommercially. Secondarily, this License preserves for the - author and publisher a way to get credit for their work, while not - being considered responsible for modifications made by others. - - This License is a kind of "copyleft", which means that derivative - works of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft - license designed for free software. - - We have designed this License in order to use it for manuals for - free software, because free software needs free documentation: a - free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to - software manuals; it can be used for any textual work, regardless - of subject matter or whether it is published as a printed book. - We recommend this License principally for works whose purpose is - instruction or reference. - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work, in any medium, - that contains a notice placed by the copyright holder saying it - can be distributed under the terms of this License. Such a notice - grants a world-wide, royalty-free license, unlimited in duration, - to use that work under the conditions stated herein. The - "Document", below, refers to any such manual or work. Any member - of the public is a licensee, and is addressed as "you". You - accept the license if you copy, modify or distribute the work in a - way requiring permission under copyright law. - - A "Modified Version" of the Document means any work containing the - Document or a portion of it, either copied verbatim, or with - modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter section - of the Document that deals exclusively with the relationship of the - publishers or authors of the Document to the Document's overall - subject (or to related matters) and contains nothing that could - fall directly within that overall subject. (Thus, if the Document - is in part a textbook of mathematics, a Secondary Section may not - explain any mathematics.) The relationship could be a matter of - historical connection with the subject or with related matters, or - of legal, commercial, philosophical, ethical or political position - regarding them. - - The "Invariant Sections" are certain Secondary Sections whose - titles are designated, as being those of Invariant Sections, in - the notice that says that the Document is released under this - License. If a section does not fit the above definition of - Secondary then it is not allowed to be designated as Invariant. - The Document may contain zero Invariant Sections. If the Document - does not identify any Invariant Sections then there are none. - - The "Cover Texts" are certain short passages of text that are - listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License. A - Front-Cover Text may be at most 5 words, and a Back-Cover Text may - be at most 25 words. - - A "Transparent" copy of the Document means a machine-readable copy, - represented in a format whose specification is available to the - general public, that is suitable for revising the document - straightforwardly with generic text editors or (for images - composed of pixels) generic paint programs or (for drawings) some - widely available drawing editor, and that is suitable for input to - text formatters or for automatic translation to a variety of - formats suitable for input to text formatters. A copy made in an - otherwise Transparent file format whose markup, or absence of - markup, has been arranged to thwart or discourage subsequent - modification by readers is not Transparent. An image format is - not Transparent if used for any substantial amount of text. A - copy that is not "Transparent" is called "Opaque". - - Examples of suitable formats for Transparent copies include plain - ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and - standard-conforming simple HTML, PostScript or PDF designed for - human modification. Examples of transparent image formats include - PNG, XCF and JPG. Opaque formats include proprietary formats that - can be read and edited only by proprietary word processors, SGML or - XML for which the DTD and/or processing tools are not generally - available, and the machine-generated HTML, PostScript or PDF - produced by some word processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, - plus such following pages as are needed to hold, legibly, the - material this License requires to appear in the title page. For - works in formats which do not have any title page as such, "Title - Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text. - - The "publisher" means any person or entity that distributes copies - of the Document to the public. - - A section "Entitled XYZ" means a named subunit of the Document - whose title either is precisely XYZ or contains XYZ in parentheses - following text that translates XYZ in another language. (Here XYZ - stands for a specific section name mentioned below, such as - "Acknowledgements", "Dedications", "Endorsements", or "History".) - To "Preserve the Title" of such a section when you modify the - Document means that it remains a section "Entitled XYZ" according - to this definition. - - The Document may include Warranty Disclaimers next to the notice - which states that this License applies to the Document. These - Warranty Disclaimers are considered to be included by reference in - this License, but only as regards disclaiming warranties: any other - implication that these Warranty Disclaimers may have is void and - has no effect on the meaning of this License. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either - commercially or noncommercially, provided that this License, the - copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that you - add no other conditions whatsoever to those of this License. You - may not use technical measures to obstruct or control the reading - or further copying of the copies you make or distribute. However, - you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow - the conditions in section 3. - - You may also lend copies, under the same conditions stated above, - and you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies (or copies in media that commonly - have printed covers) of the Document, numbering more than 100, and - the Document's license notice requires Cover Texts, you must - enclose the copies in covers that carry, clearly and legibly, all - these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The - front cover must present the full title with all words of the - title equally prominent and visible. You may add other material - on the covers in addition. Copying with changes limited to the - covers, as long as they preserve the title of the Document and - satisfy these conditions, can be treated as verbatim copying in - other respects. - - If the required texts for either cover are too voluminous to fit - legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto - adjacent pages. - - If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a - machine-readable Transparent copy along with each Opaque copy, or - state in or with each Opaque copy a computer-network location from - which the general network-using public has access to download - using public-standard network protocols a complete Transparent - copy of the Document, free of added material. If you use the - latter option, you must take reasonably prudent steps, when you - begin distribution of Opaque copies in quantity, to ensure that - this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you - distribute an Opaque copy (directly or through your agents or - retailers) of that edition to the public. - - It is requested, but not required, that you contact the authors of - the Document well before redistributing any large number of - copies, to give them a chance to provide you with an updated - version of the Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document - under the conditions of sections 2 and 3 above, provided that you - release the Modified Version under precisely this License, with - the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version to - whoever possesses a copy of it. In addition, you must do these - things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title - distinct from that of the Document, and from those of - previous versions (which should, if there were any, be listed - in the History section of the Document). You may use the - same title as a previous version if the original publisher of - that version gives permission. - - B. List on the Title Page, as authors, one or more persons or - entities responsible for authorship of the modifications in - the Modified Version, together with at least five of the - principal authors of the Document (all of its principal - authors, if it has fewer than five), unless they release you - from this requirement. - - C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. - - D. Preserve all the copyright notices of the Document. - - E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - - F. Include, immediately after the copyright notices, a license - notice giving the public permission to use the Modified - Version under the terms of this License, in the form shown in - the Addendum below. - - G. Preserve in that license notice the full lists of Invariant - Sections and required Cover Texts given in the Document's - license notice. - - H. Include an unaltered copy of this License. - - I. Preserve the section Entitled "History", Preserve its Title, - and add to it an item stating at least the title, year, new - authors, and publisher of the Modified Version as given on - the Title Page. If there is no section Entitled "History" in - the Document, create one stating the title, year, authors, - and publisher of the Document as given on its Title Page, - then add an item describing the Modified Version as stated in - the previous sentence. - - J. Preserve the network location, if any, given in the Document - for public access to a Transparent copy of the Document, and - likewise the network locations given in the Document for - previous versions it was based on. These may be placed in - the "History" section. You may omit a network location for a - work that was published at least four years before the - Document itself, or if the original publisher of the version - it refers to gives permission. - - K. For any section Entitled "Acknowledgements" or "Dedications", - Preserve the Title of the section, and preserve in the - section all the substance and tone of each of the contributor - acknowledgements and/or dedications given therein. - - L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section - titles. - - M. Delete any section Entitled "Endorsements". Such a section - may not be included in the Modified Version. - - N. Do not retitle any existing section to be Entitled - "Endorsements" or to conflict in title with any Invariant - Section. - - O. Preserve any Warranty Disclaimers. - - If the Modified Version includes new front-matter sections or - appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option - designate some or all of these sections as invariant. To do this, - add their titles to the list of Invariant Sections in the Modified - Version's license notice. These titles must be distinct from any - other section titles. - - You may add a section Entitled "Endorsements", provided it contains - nothing but endorsements of your Modified Version by various - parties--for example, statements of peer review or that the text - has been approved by an organization as the authoritative - definition of a standard. - - You may add a passage of up to five words as a Front-Cover Text, - and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one - passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. If the - Document already includes a cover text for the same cover, - previously added by you or by arrangement made by the same entity - you are acting on behalf of, you may not add another; but you may - replace the old one, on explicit permission from the previous - publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this - License give permission to use their names for publicity for or to - assert or imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under - this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination - all of the Invariant Sections of all of the original documents, - unmodified, and list them all as Invariant Sections of your - combined work in its license notice, and that you preserve all - their Warranty Disclaimers. - - The combined work need only contain one copy of this License, and - multiple identical Invariant Sections may be replaced with a single - copy. If there are multiple Invariant Sections with the same name - but different contents, make the title of each such section unique - by adding at the end of it, in parentheses, the name of the - original author or publisher of that section if known, or else a - unique number. Make the same adjustment to the section titles in - the list of Invariant Sections in the license notice of the - combined work. - - In the combination, you must combine any sections Entitled - "History" in the various original documents, forming one section - Entitled "History"; likewise combine any sections Entitled - "Acknowledgements", and any sections Entitled "Dedications". You - must delete all sections Entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other - documents released under this License, and replace the individual - copies of this License in the various documents with a single copy - that is included in the collection, provided that you follow the - rules of this License for verbatim copying of each of the - documents in all other respects. - - You may extract a single document from such a collection, and - distribute it individually under this License, provided you insert - a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume of - a storage or distribution medium, is called an "aggregate" if the - copyright resulting from the compilation is not used to limit the - legal rights of the compilation's users beyond what the individual - works permit. When the Document is included in an aggregate, this - License does not apply to the other works in the aggregate which - are not themselves derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these - copies of the Document, then if the Document is less than one half - of the entire aggregate, the Document's Cover Texts may be placed - on covers that bracket the Document within the aggregate, or the - electronic equivalent of covers if the Document is in electronic - form. Otherwise they must appear on printed covers that bracket - the whole aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section - 4. Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include a - translation of this License, and all the license notices in the - Document, and any Warranty Disclaimers, provided that you also - include the original English version of this License and the - original versions of those notices and disclaimers. In case of a - disagreement between the translation and the original version of - this License or a notice or disclaimer, the original version will - prevail. - - If a section in the Document is Entitled "Acknowledgements", - "Dedications", or "History", the requirement (section 4) to - Preserve its Title (section 1) will typically require changing the - actual title. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document - except as expressly provided under this License. Any attempt - otherwise to copy, modify, sublicense, or distribute it is void, - and will automatically terminate your rights under this License. - - However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly - and finally terminates your license, and (b) permanently, if the - copyright holder fails to notify you of the violation by some - reasonable means prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from - that copyright holder, and you cure the violation prior to 30 days - after your receipt of the notice. - - Termination of your rights under this section does not terminate - the licenses of parties who have received copies or rights from - you under this License. If your rights have been terminated and - not permanently reinstated, receipt of a copy of some or all of - the same material does not give you any rights to use it. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of - the GNU Free Documentation License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. See - `http://www.gnu.org/copyleft/'. - - Each version of the License is given a distinguishing version - number. If the Document specifies that a particular numbered - version of this License "or any later version" applies to it, you - have the option of following the terms and conditions either of - that specified version or of any later version that has been - published (not as a draft) by the Free Software Foundation. If - the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation. If the Document specifies that a proxy - can decide which future versions of this License can be used, that - proxy's public statement of acceptance of a version permanently - authorizes you to choose that version for the Document. - - 11. RELICENSING - - "Massive Multiauthor Collaboration Site" (or "MMC Site") means any - World Wide Web server that publishes copyrightable works and also - provides prominent facilities for anybody to edit those works. A - public wiki that anybody can edit is an example of such a server. - A "Massive Multiauthor Collaboration" (or "MMC") contained in the - site means any set of copyrightable works thus published on the MMC - site. - - "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 - license published by Creative Commons Corporation, a not-for-profit - corporation with a principal place of business in San Francisco, - California, as well as future copyleft versions of that license - published by that same organization. - - "Incorporate" means to publish or republish a Document, in whole or - in part, as part of another Document. - - An MMC is "eligible for relicensing" if it is licensed under this - License, and if all works that were first published under this - License somewhere other than this MMC, and subsequently - incorporated in whole or in part into the MMC, (1) had no cover - texts or invariant sections, and (2) were thus incorporated prior - to November 1, 2008. - - The operator of an MMC Site may republish an MMC contained in the - site under CC-BY-SA on the same site at any time before August 1, - 2009, provided the MMC is eligible for relicensing. - - -ADDENDUM: How to use this License for your documents -==================================================== - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (C) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.3 - or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover - Texts. A copy of the license is included in the section entitled ``GNU - Free Documentation License''. - - If you have Invariant Sections, Front-Cover Texts and Back-Cover -Texts, replace the "with...Texts." line with this: - - with the Invariant Sections being LIST THEIR TITLES, with - the Front-Cover Texts being LIST, and with the Back-Cover Texts - being LIST. - - If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - -File: readline.info, Node: Concept Index, Next: Function and Variable Index, Prev: GNU Free Documentation License, Up: Top - -Concept Index -************* - -[index] -* Menu: - -* application-specific completion functions: Custom Completers. - (line 6) -* command editing: Readline Bare Essentials. - (line 6) -* editing command lines: Readline Bare Essentials. - (line 6) -* initialization file, readline: Readline Init File. (line 6) -* interaction, readline: Readline Interaction. (line 6) -* kill ring: Readline Killing Commands. - (line 19) -* killing text: Readline Killing Commands. - (line 6) -* notation, readline: Readline Bare Essentials. - (line 6) -* readline, function: Basic Behavior. (line 12) -* variables, readline: Readline Init File Syntax. - (line 34) -* yanking text: Readline Killing Commands. - (line 6) - - -File: readline.info, Node: Function and Variable Index, Prev: Concept Index, Up: Top - -Function and Variable Index -*************************** - -[index] -* Menu: - -* _rl_digit_p: Utility Functions. (line 65) -* _rl_digit_value: Utility Functions. (line 76) -* _rl_lowercase_p: Utility Functions. (line 62) -* _rl_to_lower: Utility Functions. (line 72) -* _rl_to_upper: Utility Functions. (line 68) -* _rl_uppercase_p: Utility Functions. (line 59) -* abort (C-g): Miscellaneous Commands. - (line 10) -* accept-line (Newline or Return): Commands For History. - (line 6) -* backward-char (C-b): Commands For Moving. (line 15) -* backward-delete-char (Rubout): Commands For Text. (line 11) -* backward-kill-line (C-x Rubout): Commands For Killing. - (line 9) -* backward-kill-word (M-): Commands For Killing. - (line 24) -* backward-word (M-b): Commands For Moving. (line 22) -* beginning-of-history (M-<): Commands For History. - (line 19) -* beginning-of-line (C-a): Commands For Moving. (line 6) -* bell-style: Readline Init File Syntax. - (line 35) -* bind-tty-special-chars: Readline Init File Syntax. - (line 42) -* call-last-kbd-macro (C-x e): Keyboard Macros. (line 13) -* capitalize-word (M-c): Commands For Text. (line 49) -* character-search (C-]): Miscellaneous Commands. - (line 41) -* character-search-backward (M-C-]): Miscellaneous Commands. - (line 46) -* clear-screen (C-l): Commands For Moving. (line 26) -* comment-begin: Readline Init File Syntax. - (line 47) -* complete (): Commands For Completion. - (line 6) -* completion-display-width: Readline Init File Syntax. - (line 52) -* completion-ignore-case: Readline Init File Syntax. - (line 59) -* completion-map-case: Readline Init File Syntax. - (line 64) -* completion-prefix-display-length: Readline Init File Syntax. - (line 70) -* completion-query-items: Readline Init File Syntax. - (line 77) -* convert-meta: Readline Init File Syntax. - (line 87) -* copy-backward-word (): Commands For Killing. - (line 49) -* copy-forward-word (): Commands For Killing. - (line 54) -* copy-region-as-kill (): Commands For Killing. - (line 45) -* delete-char (C-d): Commands For Text. (line 6) -* delete-char-or-list (): Commands For Completion. - (line 39) -* delete-horizontal-space (): Commands For Killing. - (line 37) -* digit-argument (M-0, M-1, ... M--): Numeric Arguments. (line 6) -* disable-completion: Readline Init File Syntax. - (line 93) -* do-uppercase-version (M-a, M-b, M-X, ...): Miscellaneous Commands. - (line 14) -* downcase-word (M-l): Commands For Text. (line 45) -* dump-functions (): Miscellaneous Commands. - (line 70) -* dump-macros (): Miscellaneous Commands. - (line 82) -* dump-variables (): Miscellaneous Commands. - (line 76) -* editing-mode: Readline Init File Syntax. - (line 98) -* enable-keypad: Readline Init File Syntax. - (line 109) -* end-kbd-macro (C-x )): Keyboard Macros. (line 9) -* end-of-history (M->): Commands For History. - (line 22) -* end-of-line (C-e): Commands For Moving. (line 9) -* exchange-point-and-mark (C-x C-x): Miscellaneous Commands. - (line 36) -* expand-tilde: Readline Init File Syntax. - (line 120) -* forward-backward-delete-char (): Commands For Text. (line 15) -* forward-char (C-f): Commands For Moving. (line 12) -* forward-search-history (C-s): Commands For History. - (line 30) -* forward-word (M-f): Commands For Moving. (line 18) -* history-preserve-point: Readline Init File Syntax. - (line 124) -* history-search-backward (): Commands For History. - (line 50) -* history-search-forward (): Commands For History. - (line 45) -* history-size: Readline Init File Syntax. - (line 130) -* horizontal-scroll-mode: Readline Init File Syntax. - (line 135) -* input-meta: Readline Init File Syntax. - (line 142) -* insert-comment (M-#): Miscellaneous Commands. - (line 60) -* insert-completions (M-*): Commands For Completion. - (line 18) -* isearch-terminators: Readline Init File Syntax. - (line 149) -* keymap: Readline Init File Syntax. - (line 156) -* kill-line (C-k): Commands For Killing. - (line 6) -* kill-region (): Commands For Killing. - (line 41) -* kill-whole-line (): Commands For Killing. - (line 15) -* kill-word (M-d): Commands For Killing. - (line 19) -* mark-modified-lines: Readline Init File Syntax. - (line 169) -* mark-symlinked-directories: Readline Init File Syntax. - (line 174) -* match-hidden-files: Readline Init File Syntax. - (line 179) -* menu-complete (): Commands For Completion. - (line 22) -* menu-complete-backward (): Commands For Completion. - (line 34) -* menu-complete-display-prefix: Readline Init File Syntax. - (line 186) -* meta-flag: Readline Init File Syntax. - (line 142) -* next-history (C-n): Commands For History. - (line 16) -* non-incremental-forward-search-history (M-n): Commands For History. - (line 40) -* non-incremental-reverse-search-history (M-p): Commands For History. - (line 35) -* output-meta: Readline Init File Syntax. - (line 191) -* overwrite-mode (): Commands For Text. (line 53) -* page-completions: Readline Init File Syntax. - (line 196) -* possible-completions (M-?): Commands For Completion. - (line 11) -* prefix-meta (): Miscellaneous Commands. - (line 18) -* previous-history (C-p): Commands For History. - (line 12) -* quoted-insert (C-q or C-v): Commands For Text. (line 20) -* re-read-init-file (C-x C-r): Miscellaneous Commands. - (line 6) -* readline: Basic Behavior. (line 12) -* redraw-current-line (): Commands For Moving. (line 30) -* reverse-search-history (C-r): Commands For History. - (line 26) -* revert-all-at-newline: Readline Init File Syntax. - (line 206) -* revert-line (M-r): Miscellaneous Commands. - (line 25) -* rl_add_defun: Function Naming. (line 20) -* rl_add_funmap_entry: Associating Function Names and Bindings. - (line 47) -* rl_add_undo: Allowing Undoing. (line 41) -* rl_alphabetic: Utility Functions. (line 39) -* rl_already_prompted: Readline Variables. (line 64) -* rl_attempted_completion_function: Completion Variables. - (line 12) -* rl_attempted_completion_over: Completion Variables. - (line 226) -* rl_basic_quote_characters: Completion Variables. - (line 115) -* rl_basic_word_break_characters: Completion Variables. - (line 109) -* rl_begin_undo_group: Allowing Undoing. (line 29) -* rl_bind_key: Binding Keys. (line 22) -* rl_bind_key_if_unbound: Binding Keys. (line 32) -* rl_bind_key_if_unbound_in_map: Binding Keys. (line 38) -* rl_bind_key_in_map: Binding Keys. (line 27) -* rl_bind_keyseq: Binding Keys. (line 59) -* rl_bind_keyseq_if_unbound: Binding Keys. (line 77) -* rl_bind_keyseq_if_unbound_in_map: Binding Keys. (line 83) -* rl_bind_keyseq_in_map: Binding Keys. (line 66) -* rl_binding_keymap: Readline Variables. (line 159) -* rl_callback_handler_install: Alternate Interface. (line 15) -* rl_callback_handler_remove: Alternate Interface. (line 33) -* rl_callback_read_char: Alternate Interface. (line 21) -* rl_catch_signals: Readline Signal Handling. - (line 48) -* rl_catch_sigwinch: Readline Signal Handling. - (line 55) -* rl_char_is_quoted_p: Completion Variables. - (line 46) -* rl_cleanup_after_signal: Readline Signal Handling. - (line 66) -* rl_clear_message: Redisplay. (line 48) -* rl_clear_pending_input: Character Input. (line 30) -* rl_clear_signals: Readline Signal Handling. - (line 125) -* rl_complete <1>: Completion Functions. - (line 20) -* rl_complete: How Completing Works. - (line 49) -* rl_complete_internal: Completion Functions. - (line 10) -* rl_completer_quote_characters: Completion Variables. - (line 132) -* rl_completer_word_break_characters: Completion Variables. - (line 118) -* rl_completion_append_character: Completion Variables. - (line 156) -* rl_completion_display_matches_hook: Completion Variables. - (line 96) -* rl_completion_entry_function <1>: How Completing Works. - (line 55) -* rl_completion_entry_function: Completion Variables. - (line 7) -* rl_completion_found_quote: Completion Variables. - (line 184) -* rl_completion_invoking_key: Completion Variables. - (line 249) -* rl_completion_mark_symlink_dirs: Completion Variables. - (line 191) -* rl_completion_matches: Completion Functions. - (line 45) -* rl_completion_mode: Completion Functions. - (line 37) -* rl_completion_query_items: Completion Variables. - (line 150) -* rl_completion_quote_character: Completion Variables. - (line 172) -* rl_completion_suppress_append: Completion Variables. - (line 166) -* rl_completion_suppress_quote: Completion Variables. - (line 178) -* rl_completion_type: Completion Variables. - (line 241) -* rl_completion_word_break_hook: Completion Variables. - (line 123) -* rl_copy_keymap: Keymaps. (line 17) -* rl_copy_text: Modifying Text. (line 15) -* rl_crlf: Redisplay. (line 30) -* rl_delete_text: Modifying Text. (line 11) -* rl_deprep_term_function: Readline Variables. (line 149) -* rl_deprep_terminal: Terminal Management. (line 13) -* rl_ding: Utility Functions. (line 36) -* rl_directory_completion_hook: Completion Variables. - (line 64) -* rl_discard_keymap: Keymaps. (line 26) -* rl_dispatching: Readline Variables. (line 41) -* rl_display_match_list: Utility Functions. (line 43) -* rl_display_prompt: Readline Variables. (line 59) -* rl_do_undo: Allowing Undoing. (line 48) -* rl_done: Readline Variables. (line 28) -* rl_echo_signal_char: Readline Signal Handling. - (line 89) -* rl_editing_mode: Readline Variables. (line 270) -* rl_end: Readline Variables. (line 19) -* rl_end_undo_group: Allowing Undoing. (line 35) -* rl_erase_empty_line: Readline Variables. (line 47) -* rl_event_hook: Readline Variables. (line 124) -* rl_execute_next: Character Input. (line 26) -* rl_executing_keymap: Readline Variables. (line 155) -* rl_executing_macro: Readline Variables. (line 163) -* rl_expand_prompt: Redisplay. (line 64) -* rl_explicit_arg: Readline Variables. (line 261) -* rl_extend_line_buffer: Utility Functions. (line 27) -* rl_filename_completion_desired: Completion Variables. - (line 206) -* rl_filename_completion_function: Completion Functions. - (line 59) -* rl_filename_dequoting_function: Completion Variables. - (line 37) -* rl_filename_quote_characters: Completion Variables. - (line 138) -* rl_filename_quoting_desired: Completion Variables. - (line 216) -* rl_filename_quoting_function: Completion Variables. - (line 24) -* rl_filename_rewrite_hook: Completion Variables. - (line 81) -* rl_forced_update_display: Redisplay. (line 11) -* rl_free: Utility Functions. (line 18) -* rl_free_keymap: Keymaps. (line 30) -* rl_free_line_state: Readline Signal Handling. - (line 72) -* rl_free_undo_list: Allowing Undoing. (line 45) -* rl_function_dumper: Associating Function Names and Bindings. - (line 30) -* rl_function_of_keyseq: Associating Function Names and Bindings. - (line 15) -* rl_funmap_names: Associating Function Names and Bindings. - (line 40) -* rl_generic_bind: Binding Keys. (line 89) -* rl_get_keymap: Keymaps. (line 37) -* rl_get_keymap_by_name: Keymaps. (line 43) -* rl_get_keymap_name: Keymaps. (line 48) -* rl_get_screen_size: Readline Signal Handling. - (line 108) -* rl_get_termcap: Miscellaneous Functions. - (line 42) -* rl_getc: Character Input. (line 15) -* rl_getc_function: Readline Variables. (line 130) -* rl_gnu_readline_p: Readline Variables. (line 83) -* rl_ignore_completion_duplicates: Completion Variables. - (line 202) -* rl_ignore_some_completions_function: Completion Variables. - (line 56) -* rl_inhibit_completion: Completion Variables. - (line 255) -* rl_initialize: Utility Functions. (line 31) -* rl_insert_completions: Completion Functions. - (line 32) -* rl_insert_text: Modifying Text. (line 7) -* rl_instream: Readline Variables. (line 97) -* rl_invoking_keyseqs: Associating Function Names and Bindings. - (line 21) -* rl_invoking_keyseqs_in_map: Associating Function Names and Bindings. - (line 26) -* rl_kill_text: Modifying Text. (line 19) -* rl_last_func: Readline Variables. (line 110) -* rl_library_version: Readline Variables. (line 73) -* rl_line_buffer: Readline Variables. (line 9) -* rl_list_funmap_names: Associating Function Names and Bindings. - (line 36) -* rl_macro_bind: Miscellaneous Functions. - (line 8) -* rl_macro_dumper: Miscellaneous Functions. - (line 14) -* rl_make_bare_keymap: Keymaps. (line 12) -* rl_make_keymap: Keymaps. (line 20) -* rl_mark: Readline Variables. (line 24) -* rl_message: Redisplay. (line 39) -* rl_modifying: Allowing Undoing. (line 57) -* rl_named_function: Associating Function Names and Bindings. - (line 11) -* rl_num_chars_to_read: Readline Variables. (line 32) -* rl_numeric_arg: Readline Variables. (line 265) -* rl_on_new_line: Redisplay. (line 15) -* rl_on_new_line_with_prompt: Redisplay. (line 19) -* rl_outstream: Readline Variables. (line 101) -* rl_parse_and_bind: Binding Keys. (line 96) -* rl_pending_input: Readline Variables. (line 37) -* rl_point: Readline Variables. (line 15) -* rl_possible_completions: Completion Functions. - (line 28) -* rl_pre_input_hook: Readline Variables. (line 119) -* rl_prefer_env_winsize: Readline Variables. (line 105) -* rl_prep_term_function: Readline Variables. (line 142) -* rl_prep_terminal: Terminal Management. (line 7) -* rl_prompt: Readline Variables. (line 53) -* rl_push_macro_input: Modifying Text. (line 26) -* rl_read_init_file: Binding Keys. (line 101) -* rl_read_key: Character Input. (line 7) -* rl_readline_name: Readline Variables. (line 92) -* rl_readline_state: Readline Variables. (line 166) -* rl_readline_version: Readline Variables. (line 76) -* rl_redisplay: Redisplay. (line 7) -* rl_redisplay_function: Readline Variables. (line 136) -* rl_replace_line: Utility Functions. (line 22) -* rl_reset_after_signal: Readline Signal Handling. - (line 80) -* rl_reset_line_state: Redisplay. (line 26) -* rl_reset_screen_size: Readline Signal Handling. - (line 112) -* rl_reset_terminal: Terminal Management. (line 28) -* rl_resize_terminal: Readline Signal Handling. - (line 95) -* rl_restore_prompt: Redisplay. (line 57) -* rl_restore_state: Utility Functions. (line 12) -* rl_save_prompt: Redisplay. (line 53) -* rl_save_state: Utility Functions. (line 7) -* rl_set_key: Binding Keys. (line 73) -* rl_set_keyboard_input_timeout: Character Input. (line 35) -* rl_set_keymap: Keymaps. (line 40) -* rl_set_paren_blink_timeout: Miscellaneous Functions. - (line 37) -* rl_set_prompt: Redisplay. (line 78) -* rl_set_screen_size: Readline Signal Handling. - (line 99) -* rl_set_signals: Readline Signal Handling. - (line 119) -* rl_show_char: Redisplay. (line 33) -* rl_sort_completion_matches: Completion Variables. - (line 233) -* rl_special_prefixes: Completion Variables. - (line 143) -* rl_startup_hook: Readline Variables. (line 115) -* rl_stuff_char: Character Input. (line 19) -* rl_terminal_name: Readline Variables. (line 87) -* rl_tty_set_default_bindings: Terminal Management. (line 18) -* rl_tty_unset_default_bindings: Terminal Management. (line 23) -* rl_unbind_command_in_map: Binding Keys. (line 55) -* rl_unbind_function_in_map: Binding Keys. (line 51) -* rl_unbind_key: Binding Keys. (line 42) -* rl_unbind_key_in_map: Binding Keys. (line 46) -* rl_username_completion_function: Completion Functions. - (line 66) -* rl_variable_bind: Miscellaneous Functions. - (line 21) -* rl_variable_dumper: Miscellaneous Functions. - (line 31) -* rl_variable_value: Miscellaneous Functions. - (line 26) -* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 27) -* set-mark (C-@): Miscellaneous Commands. - (line 32) -* show-all-if-ambiguous: Readline Init File Syntax. - (line 212) -* show-all-if-unmodified: Readline Init File Syntax. - (line 218) -* skip-completed-text: Readline Init File Syntax. - (line 227) -* skip-csi-sequence (): Miscellaneous Commands. - (line 51) -* start-kbd-macro (C-x (): Keyboard Macros. (line 6) -* transpose-chars (C-t): Commands For Text. (line 30) -* transpose-words (M-t): Commands For Text. (line 36) -* undo (C-_ or C-x C-u): Miscellaneous Commands. - (line 22) -* universal-argument (): Numeric Arguments. (line 10) -* unix-filename-rubout (): Commands For Killing. - (line 32) -* unix-line-discard (C-u): Commands For Killing. - (line 12) -* unix-word-rubout (C-w): Commands For Killing. - (line 28) -* upcase-word (M-u): Commands For Text. (line 41) -* visible-stats: Readline Init File Syntax. - (line 240) -* yank (C-y): Commands For Killing. - (line 59) -* yank-last-arg (M-. or M-_): Commands For History. - (line 64) -* yank-nth-arg (M-C-y): Commands For History. - (line 55) -* yank-pop (M-y): Commands For Killing. - (line 62) - - - -Tag Table: -Node: Top1286 -Node: Command Line Editing1943 -Node: Introduction and Notation2595 -Node: Readline Interaction4218 -Node: Readline Bare Essentials5410 -Node: Readline Movement Commands7200 -Node: Readline Killing Commands8166 -Node: Readline Arguments10087 -Node: Searching11132 -Node: Readline Init File13284 -Node: Readline Init File Syntax14438 -Node: Conditional Init Constructs29499 -Node: Sample Init File32033 -Node: Bindable Readline Commands35151 -Node: Commands For Moving36209 -Node: Commands For History37071 -Node: Commands For Text40476 -Node: Commands For Killing43203 -Node: Numeric Arguments45346 -Node: Commands For Completion46486 -Node: Keyboard Macros48456 -Node: Miscellaneous Commands49028 -Node: Readline vi Mode52885 -Node: Programming with GNU Readline54702 -Node: Basic Behavior55688 -Node: Custom Functions59105 -Node: Readline Typedefs60589 -Node: Function Writing62228 -Node: Readline Variables63535 -Node: Readline Convenience Functions74201 -Node: Function Naming75191 -Node: Keymaps76453 -Node: Binding Keys78446 -Node: Associating Function Names and Bindings82993 -Node: Allowing Undoing85278 -Node: Redisplay87828 -Node: Modifying Text91728 -Node: Character Input92974 -Node: Terminal Management94872 -Node: Utility Functions96308 -Node: Miscellaneous Functions99636 -Node: Alternate Interface101933 -Node: A Readline Example104092 -Node: Readline Signal Handling105995 -Node: Custom Completers112183 -Node: How Completing Works112903 -Node: Completion Functions116217 -Node: Completion Variables119789 -Node: A Short Completion Example133902 -Node: GNU Free Documentation License146681 -Node: Concept Index171874 -Node: Function and Variable Index173395 - -End Tag Table diff --git a/lib/readline/doc/readline.ps b/lib/readline/doc/readline.ps deleted file mode 100644 index 59d1d77df..000000000 --- a/lib/readline/doc/readline.ps +++ /dev/null @@ -1,8962 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software -%%Title: readline.dvi -%%Pages: 74 -%%PageOrder: Ascend -%%BoundingBox: 0 0 595 842 -%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSY10 CMMI12 CMMI10 CMCSC10 -%%+ CMSLTT10 CMTI10 CMSL10 CMSS10 CMTT9 CMR9 CMMI9 -%%DocumentPaperSizes: a4 -%%EndComments -%DVIPSWebPage: (www.radicaleye.com) -%DVIPSCommandLine: dvips -D 300 -o readline.ps readline.dvi -%DVIPSParameters: dpi=300 -%DVIPSSource: TeX output 2011.02.08:1110 -%%BeginProcSet: tex.pro 0 0 -%! -/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S -N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 -mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 -0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ -landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize -mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ -matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round -exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ -statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] -N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin -/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array -/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 -array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N -df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A -definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get -}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} -B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr -1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S -/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy -setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask -restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn -/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put -}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ -bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A -mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ -SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ -userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X -1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 -index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N -/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ -/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) -(LaserWriter 16/600)]{A length product length le{A length product exch 0 -exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse -end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask -grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} -imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round -exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto -fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p -delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} -B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ -p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S -rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end - -%%EndProcSet -%%BeginProcSet: texps.pro 0 0 -%! -TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 -index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll -exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 -ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ -pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get -div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type -/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end -definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup -sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll -mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ -exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} -forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def -end - -%%EndProcSet -%%BeginFont: CMMI9 -%!PS-AdobeFont-1.1: CMMI9 1.100 -%%CreationDate: 1996 Jul 23 07:53:55 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 58 /period put -readonly def -/FontBBox{-29 -250 1075 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E394A533A081C36D6F5CA5FED4F9AC9ADE41E04F9FC52E758C9F45A92BED935 -86F9CFDB57732045913A6422AD4206418610C81D882EE493DE9523CC1BFE1505 -DD1390B19BC1947A01B93BC668BE9B2A0E69A968554239B88C00AF9FBDF09CCD -67D3B2094C11A04762FE8CC1E91D020A28B3C122D24BEAACF82313F4604F2FEF -6E176D730A879BE45DD0D4996EF0247AEB1CA0AB08FF374D99F06D47B36F9554 -FAD9A2D3CE451B7791C3709D8A1DDDEFBD840C1B42AB824D5A0DFF0E0F15B0B7 -22AEEB877FF489581DA6FA8DA64944555101EB16F7AB0B717E148B7B98D8DBFD -730C52937E226545CF8DC3E07C5BA30739BAFCD0F2B44275A6D503F582C0FB4F -449963D0AD2FAFDE33BA3D77BCA9D1DF878DDAFCA2E22CC4BACD542B282164C7 -97C2BDE318AF9D501CA21F6E662E7AAB75A5F24D2C182E598D175D44E88AB19A -E7CD59584F95B389183EE21B525BF52A3F23C0FE5383A5565A19361D716F508C -AAB78411CA5A4D27552CC1C435760D5A89D535B71C593E755C616661363308DA -A683F54ED0C23FB2C225A008392B0B719F66F11A946A090B7C00B662A3C69599 -B4ECB0CC70C85C4BBBF207E0026F6C7A19F2ACFB7A60804FC98A4BFFD7BFFF2B -9529E6D9D4238002BBC255BC62959D6F3381FE06E0621B879D5FE5B541D45A1E -759A6E7DC32B1D1632368D09A97039DF255B6492B1B2B7E2C1434E8306ECA7D3 -5A79B6D614B4979F10988BC76ED53A5F45315CD7DA216221F842FD0F3E050DD2 -BAC23C984D506D8F7D614BCB6B244F5F41321549BB0BD041FBF3053307168680 -3435E9C9445A59A7C666418C4F2512C32058B1CE1EA46C7839C6E372F6CC60AE -2CF46DD2F130B532DE8ECD42D9204500E413799E298CF6426F28D23BB7216BEA -1A618B3ECC61B44DDEF0BB22D640B47C09AC0DF378CE68FC9CD88BDAE9ED89CB -431A5CF9C3E9528FEE7A9936C2B1CF7B38DD2B95773F0EA0051607BE1B0B3588 -A8B907A5EF011B4622C5093A7B107DD1EED6FEE9536DECF1CC96E65373D0F433 -30AE3C094654ABF4698C07F8C74E71D023DFD242EE83B1306786124DD8C6BFA7 -801E66CB944BE7EBCB3FE803EC97067AF7AFC8A4E9AC9D11 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMR9 -%!PS-AdobeFont-1.1: CMR9 1.0 -%%CreationDate: 1991 Aug 20 16:39:59 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 12 /fi put -dup 13 /fl put -dup 44 /comma put -dup 45 /hyphen put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -readonly def -/FontBBox{-39 -250 1036 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 -87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F -D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 -92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835 -3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203 -046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E -C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A -A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2 -A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D -731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B -09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1 -49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B -5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B -54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C -C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F -11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC -D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A -109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40 -3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343 -C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7A6E4BCA12E4 -2086286F43226A1549A4FF7492ABD07FBB1EEFDDDDCFD29D8325E262E7C6C0AA -34F6E5E90471F431033742F5BD7B8DFF2F7735FF03526A4B3E7C550BC02BF138 -20EF5BF1805053B714B2D3DEED7015C9AA55F6D4E5671A52177E916107DC1C24 -1A6B08D4D0E553312240DE0B15FCBC1D7BEBED0A277CB194A725042EBADF8C40 -926F53297C0AEE217D9626B555CF3CA2CA2286067C562C5639F2C8D36248F32F -32ECCAE20F5253B14C7A8827C4FCEAC97EA5DAFAD169BD757F6B155EB9D55A65 -002FBF723D774680C5CCD9C22C9912E6BDB205CE0EF255821381A430FB331DF2 -78C42E7445A31C581668B3C8F8F3E9A1AB5C5C8A4DA9865548AAFE4F3D4DD2C9 -68678E4DE398B1774F5EFE662300A1D4AE3DF645FD3BBFCD580E539DD785D970 -1FCE87953CB69D0AE861AF38EB47E578339D91B4C2D748F9705F425512FD576B -9EB3780E9CA494C3D2A88A7F1AE1B96762C34910CFFAB0C5F79ADC3E1B943A72 -A7A9DEF158FF05D81BA4E887665E21147692C6E7F4FC7B0323F519986C2510D1 -1A83196AC7139C56B1DEB3B8A3B33B39531A1DA923191BCC0354FC1012CD78E7 -1A7623989D6A2F46B8C716FDE84759D112DF59D9F5425668D287941F68A095EF -502FF94B4035BB46EAFD5245470E43243B3A6F4F4B30631EAB6FF3D54F1B8C54 -543211DE7404943720568AB7FF3A987636652EE54D45E593A522B6769E6A9B92 -FA8F84E357DE173E75FC9DF297FD52838EB3BDFDFF32FBFBE41350FB4247E69D -2A418989DE2C49B5ACE3ABD2E8784A0A54F0A0987922E0A418E5263794D67A2D -E74F20DCA22DBC738B16F72F45FE4D51F08447C33EE1F96D27C83F27EB606D19 -E169F2AD7A3F5345F1605E0F96F4DBA8CCFCBC57CC7A1AE6B60D00A33E13CBC3 -F82AB4802F2A6B4ACF7D19FB13CE8729884B182EDAE5D21E3085070E4868CE8C -05F96210555561E8F1A863D44E0CBE8E05FA6BE955C48EA8960151F684768C33 -324E61AE682CCA56EC7551034C3E30C057AB889E5E5E0B45C2D0082CC5F4EFCB -6D74A25B1E03716049FE975275FB46343DEFDED630443CC0932C1090F782F415 -3315E6F1709D376505A2400C95C4723B9C32BF192C1D46D6B707A5E8323AD2C7 -E62A300DB09EB298AEF9CC7EFB2D8BDDF6CBA4F57496570B5093D7E730FFB8B9 -8600824CFBD9879B9D6F6E4940AD760C8A9314ACC7FC31C1A74B919604B3DA83 -A943E6A767ABAB506DD2639F1D56D4F1A636A2CA59A79E1B45E811D5EB82DEA9 -135909E9420DB37753EF8B837934164F3545D0D240F5DDC6B38CEA134920B715 -BE6B928B524549C599CD71A60A2A549FC1B2EA68E2761A67F3D39F93F72CDE68 -D11E9258CE8D584C47789878BA3C28E92803D22CFB945166D42E3A627833031B -596EAF89BB06C015463CCFD72807FBFD8A3BDE14CC9FB2DC060A199443B31A85 -C857F30FEA63F01EDA8DA77C41CC332A515D3976A70F716C6E3A16B60CD5F4A6 -26D66E7BD366673DD50FFB463CBD3A5537DD30733C10195386D834AF7EB7789B -92C5971D8C0DF87E1E78018946B1A7D0D4D00BF2BE76639E082C622DDA59852E -01265974B74F8AEEEBD2E208206EFC2629551F3BDF5DEB6C490506036F0E2354 -EB88BDA624E9959E7BC24D6BDC9B1FDCC0FCD4CC82BC1FA903BEC21435C9250B -FACE0ABBD0E2ACC2ABC1183747DA7FC8EDD7F77CFDCE552F825791644CCF89BB -E50CE355F904CD40519CAFD8BEE25732C7C4CA01AD3EA6E9B9A6578354DC7756 -47D1DA4BEBBF0A38B65E6AAB280FEDC6EE7F403A33E26215166F6CF56491EFC3 -240947A96B5FC1C126F86AC56B2B7C28F5FDB2883652F07CDA4E643700F3E62C -AFA3BBED17CAFC04B376BA790406A6F3355871225FD45308DDA791323FFA45E5 -8DCA81C190500F57D666BA1AF5F465592F74EE121856DAC0446FD75905224797 -B6950AF2654398ABEA5CA909F573AB9BC6355DFB6402CED3600415D441A5F613 -D6CC7AF15DB7ECCD4101FD0DFCEDD751D53742086F56D76D59FF56BF0FE08D36 -EB2E0006FF7CDAD219D8A117BB0971DF61CC2EBAE13F3C61DCD732C0A1B5982E -FA9A82EA390A8ECEE8853100232DA6BB55797BE431DF34E87ABABB4E4EA5AEFA -A3D9096B9DE073104ADF5CA8E840D1F8D7D18B9FA9201D222E40E78EE179A297 -66A60A2F4C54053A48C56B7FE47D78B883EEA6BF369407B337C518C4A8521A36 -C3C7462EBF3D967683971100C64EFACA8972A8DC248EE257A0AF3F7F85DC30D5 -276315A876A830602D216B28DCF9E621F3764DB847601C133D004C531E8FF45C -E584754FDC89C1B1FCE30063EC10089C0CB315CA1EEEABF35F1CC26EF3961496 -702F49796643B3E9370599B5A8EFB3828A75383FD733C17D708DD20DAC686BBC -D210C8CB4A42935B60F1470659C41B62B629E381023D212BF79D29FAA4076393 -A3023F9B8D5D558114A7AF42FE9E45D8A91ECA11CE628E616C50105EE11BF8D6 -D03991B9F9C2C4FCE0FB746030A2EA802EB8998E94D4F0AC5E22274CD945800A -B3D82952F9790B7B86A6D3A24500A1B85733138D938F0501476D5520C336CD35 -DF710C8A6F6E9E92545188FA8AF49F9271F8AEC220FC54BD789AEE8A62634D3D -4CF6DA3D5ED42C3AC12992568EAF3EB5D9213AD587D29CA3DA7E6E208F5CFEEF -9040815071DA33F016EB8258C3813AAE3BF169486A02E8C43404F194AD7A1BC3 -2A46825183FFE5082699D7556E2F4A59DD0ED835B9C5EC8F942C0A703CEDB0F9 -C77068BA68AD0697D0C3C86F33C9AC9FD4ED4851AA3033B211218AC92F2A744D -2AA17C2DAC259F88171F7ED8BB1979D07673E16F5CA7A18E4CE78BB22476C2D5 -D08F78429A2433DEC7D7CD2D2391E30D4E8D9006C0755BAEA95FE903ACC4BD0F -9D9922837D3FEEE28BFE34018470D8C91D4EA968ECA1B93AEF9402B1054067D4 -3DA1DB14B96B96E9884CCF9B461273CDC224D5D79AD15FF57CBE9560F9F67A02 -4FCB320805E9C261BEC5EAF37B76F1A684B39B9911669E1772DEABF1FF131244 -C2A60413854F84CDBB2CA0D93241D2900161CAC9E9BFEE211102D9F5A18F383C -73F3627599589A3F0F2DFA4DE7AF33D6AC26AC0019F6C7E132B7724A8D4AD068 -64F81D26912089399AF5ED009375DB4DD51B8B274EB51EB6970A8F389946CE92 -390EB30FDC302380B9A18144E09EEB604001426CE1363A4946C015901E28BEAA -9B8026BF9D1225D741AEA87AC73C2A906A1CE906935C7273FB5B0D22832F6C99 -E6F698234DF5C3050DF46A51FD39BD43C6F9EBF83C76201152C797258FF01930 -6D47F15EFFA39887ED307174D7A0A1D198C93624A681F5F248096D8739B8B048 -9835310371E03AD967C6F81898956C53B00F891CD2BBC5EDCEA494694BACE089 -4E1338305A2F0B1475E87112270128312E8945F623B2893DA5D71AD9146773B5 -E23852F205214CEA0DAB998D6B61D47B531CA74D927C67405AA67A5A4CBD4B06 -07ABFE4E39139705739BFB944B0B1854306D385A368C8EB8A4AB820BFCA2D13D -C41FDE331CEECA12E55A92FE15E82A942EB17F2323AE76D70C0B58FED17E9EC9 -23A31F79DD1C0B8143A769A17BD7B9DA623B6A85EF5E04B2C37AEE7AE7D4F3EF -89C13761A40D0A684B97BD00D86AAFCB9D61D676702CDE89C703229B0B983DA1 -84474B233805DA7458F31D2B388C19AE2A5D55E7E2C021DCE2568124B9C65318 -7D2419852A7C3E782E65577C7A5B7EDE359520410022885395630A83A75ACA3E -487D878EDD0150D49F4AE2BE404736DAEC3FD3F399767E9442EF7712BBC4B465 -09723E1451DAA8BED3FDFC5A18B1520C43D2E9BE9AE51F805589305E6927F294 -DFC5439C09C9AD1B416F753656B197E3222DE448E3921DB5B669E10B78AD4A74 -54F879A1C6502528EA7FA622E3532786720EAC1FFE950AB23D232D30BBA0BBB7 -35108A8249D117096D478501F0F44951A19B9EE2E622D458D4E11BBC89668E07 -ED1F6528A487C1C11BEE5D4347602BF89904EA443C21BD9BEEEEE235AF511BE9 -0D5E9EDC91A61CE4936846D33BF3C865BDA00A6F71A5CA7F689F2903117245C7 -6DA1D0B9719C0907DC323CC7B23085C69CEF7D978919E7CD59E8778B71EF84CB -809FDEC2FDB6041C4E3E4BD1DDBF0DEF5904F9C7E8B13F7DCC108C6DBEC54A98 -1A857C3D6409006F2A7C0C6C6630D22902FC369632710BE765AF27F47137D52A -0E4DB396B8E52CE5D17176F5EB924CC12AE87870525FB6CE8284FE29869BD98D -F0F34EE2E85A0C83CB3ED6F8832729CB2905CD68D1B3CE93FE74594FDB08D75A -D099CA9AE015F396B5D6C4E0D35DDF566179B8CF5793C0D93D2C16A9B7F4E4AF -BB65316C8EFCEE6BFA0CAAF915CB43726F31BEED9A49CEBB22869C79DF80C7E6 -1D17CE31A53FAC643E0AC03FE5C7081CE023877A3C214A028E2596E3D3685268 -D85850A4ADB867D2C4BFB589B1F5247E317D4A1AFABFB17DFA0E76335AE25128 -4D89BBAEB1C05F2734AA78530482CAD30AF5448E0D8A0C19B5830FAD63F73118 -2E9BA785477AFC727D200E393612869DB66C6253C5F13F27FC1855E315D73FA6 -2A42FFBA17CA52934DFC4FC7C548A0C751E9E18F8AE45BBE25E68D5B95E0BF60 -82C28426DC6E1842A1FF6E2D2803E3732EAC874FDCC92C00FE3462A60DD51EF9 -304DF3135CB0865C96AD62E2D2947F9E04ABF144916083C61BED35C9A6DF7CF0 -6FF9B3C98AE848785BA4561ADF24C27292601E11990A2E88774FEC8D46A5D813 -AA4965778CA603D09054C38278CC1D749628C1FFB59D5236F313988AA64EFE0D -5B002D463124844922A10D3CD7810A847085B67A9813A24A225F5AAA4F4C66A8 -B26AAC57A279E2D6E6C7DA723DB118A183B782BB667329EDFD901585773705DA -E855515DC19227349EDD8B770C8371408EBA91BA4E64CA6E37085CC6BB05E773 -DD1046147BD67FC57BD4E748EAE63EA66895EC0D6CFB75E7F7A81B08D1E5CADC -79C04E9DE88611BA3B063D865C56D9AFA136DC2263634104CB3DD1D0C2053B53 -B010C058015B8726A20291C464981FEA208CA36023E1A5E7312E0D0EF6BD8C54 -ADFB488F2C81B265F0359A4F8356C6C8BA82CDA17FF91AEC7D9A3FA88F85B995 -698FC4024C6E8B12EA1189257B38E3814D50DE90BEB69808A6FFA2AC0CEE48DD -53E04D7B2442F2BBA36683BE5B6C50D55E1E5FB8EC804E126252DBE720C13790 -CBB8BC864156CB75F0BF923500F503E7E49838E4BEB76C594A9275E7D28CF9BF -2B48389285325E979FBFE0E35E1DA7FC23E122DD4D6344A3A7709F422B60520C -F6000B24045BBFE30D3E5EB35BEB48E26AAC37040D490851F1017E6F41E37135 -6A76F41BD27834CF3691C60F48AA508E8B276B2741941E4DB35CF42FC74A81CE -57429351B4EF9B429DDC4206948FE10F6D4AAD93C89C0A31E72A10D81F1A3B32 -8B08CD379B6126A607D1DC52C75786B6E76CD788FE7B0350E5D272159F70592C -7BB387B87117B59F14C4171FBFDC6CADEBAB572B8109F916D8CA5F71D00223FE -09B3D6709FB136D9CF4473629DB98FF10DC4EFEC5F0D22A717B098EB38928A53 -B457B5F90DA732EA3613A5AC30A91E220DB4DBEDF6B0B4C6F05774B994BBCE90 -1DC703882BE03FFFA973D6A27E26F2CE02FCF68FB64EFBC2FC453DC009985AF3 -28A924F5AFE61D8FA24484979104CE7267C71D018531521C205A692B2341A716 -8DB082AB32B9575193A0EE526119280A3F8C7CAEBA58E2AACD83F6B12F159B4F -21A5953FA0F061BBFDB1360D9453D1F8A9DDD2ABB031A3968AA9A97A5D7C497A -7F0D57FE59E319E06D77114E87803D8699C5C29E454DD168623F29D0FA61D832 -98738F6856A9B294233EF363DE84749AAD95212F3B350698D07B4068E1F21C63 -3B3917E6F79FBD02A3D9399AB18AAFF22B076C0D2F677B684476CA079F881C3A -D71D6903A75CB9931C78AFDAADF5B75B44A52E0025F406314E8DCF1CBE6B3165 -AAB0AEC77592BCC95C8858EFD33A945923ED8EEBCD7005129E7AF3CBFADF28D7 -C9CD1702D5F1E3518C695E831D2D3DFFEC6897968E4A4599E912BBD958EB12C7 -25DABD18A816CFAAFDDC8D0A88802636BD2CC81587B19E91BD99712E41CE0ACF -1C1745430054851077985E5FEF38A73272C56BE0DDD2F9B3973FE06F62DEA8E7 -B6CC46558B784D0BB5162F143B3959AEB720E6AC3F122E8383066B914D391541 -75C2D47E07C4DF14FD75E96F19788374A6CF218472ACA936078B9C245F40C812 -30D351323881A7CC553F0B9DF5E0E90753D41582A1A1F6E932BCA3853DB1A6D5 -07E4DBA91CD26EFAEB573A0C2D8EC879BD271F3619AEF841B4BB26EEB85A3C86 -AB33D5E94C594197134730A2061AEAF90E4E5A4FEBDECBEDA77588B8F0C02644 -B5DF17DAD9048C85EB0DCCBDE45C6B0BFE690C687C2BFDA900A484DA948D008C -CD087DF0CB9F74E3DDD27D12E4C970BD55D097AE007652DD43F74D3B63C0B619 -72F16998E182B9C113B921CBD7B831DCF5379B43662FA0971778ADE6636192F9 -24BE11982CC12FC087D4F607F078E2CA350A4EEA3F6E2EDD2B2D37987E722A2A -5C6794CC7FB91427DC38260D92CFB5E3C64B5460FC139BA88F9DEC183B3F4882 -B3EA91214CF6439DFF4E3AC48CE710B077FFC1A7FAFC9DB7459D3B2797BD0B7A -3E7B8DEBB09446D8ABAE4084F2FFC778BF697EBEDC69E16B5D4C962F260A69F1 -9F524442AE727481FFFF7048C0342059B4DC66C4CD7BB6200584CAD626E0D9CD -35F49DA71F619CFF33307EB0AA5D70A223B0E8854D2F492CC361C1147DE55BF3 -305A979D58165F76C2F819BA05ACF43FBBC480D290B1675974890D80CAACA7EC -3FF458B84D5DD9BC5FC978A701210042F3509E90DA4A6D72D133D89C4B191AF3 -C62E4B8D8BF959264070968B5FC00825E37FD55E9D6C83159B9171FA817B3914 -C0AB790C8CE44D481479844EED6D7E53296E2A3F4BB248F367A8F1659F2B7767 -3D05D34970CFB4579CCB0556839FC219CE80BF84FF513641E0F8F3E1FE62E59C -8B3E6AE389C797DC9CEA8E4CB22EE0E78451FE1D483134BCE93B21BC437B7B25 -FA471CEC4C6F340A4F9E754FFB94EA84C14C14B36D262CB28E91C2FB7A266C43 -3E81DF368494A4B4FC6AA8722A721F8E51D2E2DFD756336584F54F9989899BB7 -87BCE093C93147F25681D54670B6C06E06D4A9F9685FDF3C65DA8F35E0900F8D -2E378A4D9A859EFA76FD51083BAADDBAC5855693ED96C6321455FF3D59823CCB -1F667157BE14D5659AB14B331A6BEF7AAEF669AF32EBFF3C7070DB76D37C275D -3D133FFF1253AA87F2B0450507B281255BBC656B227756B0AF0F7792C501DF74 -42D67EDF5B472DB0BBFEA8D103B260321BC82E6C480FFFD5511CBFD5E044B1E9 -CAB664A8242A55F109499E68A6319E100A9E9DA66C56AA2E184B582E3DB64DF2 -A7C7349C0A66D976A30FA1DF84779B97ADE6F8692B8D787EDD1CE7DA30D785DC -65A0230BF3572F51D04E8E9FACE145CFC192F259AEF0F7D6B00F9CF9E72663B9 -B544E91823F68ED8C2A3C9A7B8806F4B77D28AE9E1DAA61BB1B9DD35BC4A7B4C -DCF4E4DEDA2DF1747AB0C14DB94C9067EBB9804C611771146CC2CDD9414F236F -BA04EFC0A021911D61A9BEB0F7A3E7981F8F7C5A8B43DF0FEF8B1FEEEB7AC364 -54F380BFE58A6DDB682BD01F0297AD66B20AC36D813124F5F97CA6DA3C083227 -074DB0905E63C2E7BDB30838F33ED57784F31C03CD70D33485E51002AE058ACE -152B9AF44BA46CE0936E5AF784029A8E1060173F6B57D3C59B8869641011ED3F -297C4BFE1E5555D0735CCA584CA9245D11E6A0AA15BF2064DB54E75A35F68CFE -6CCBE1F15377CF92FED2413E5F07B0D37DCEFF3FC27CE3A826F4D80058491AF7 -ACC42727CF992E00180C7DE3D290143062821B6F00F5000B31D9D70E2F246616 -A2CFA0179E76A5096FED5DA570926BBD220491F76EF5357DE263FD486101C889 -B997394C4FD4762D73DC3BCA70BE7784D422C11995E5D3E0F07E58FA33BAE3BC -5D65A0946DDC0EBCA88B55E38BDD3EB5D6DFAD6EC45A77D253FCDDE226557DAF -955946431B2E98E3C2C3AC76CCA1C0743631CEBD664B61AF619FD2ED5F3BC188 -ED79F70D78CF0220E87B0163590374DE6C5E7626B3AAF09DE2BC8D183D027109 -431913F590CDFA526840EF6339E75453ACB6E15B15F5AD61C067E3801C676800 -ADD9EE8A87A0B1A529857292029615BA892D355C5A7B1943A8DE6D23D6BCFC6F -ECCC844E64A2D1EE033083C6BB342FAA63B946CC446F2CBBE4F091952B4F55EB -305BD2E0DA668B027B1E5B18A5E272540E646E72ACD0430474AC0A8D9C869D63 -0DB6F7E3301A2DFD5E21DD938DD2D18CD9B361E2D73B224F9FCB9708FBCE673F -98F416CAFBEF721F8707ECFC5AC86648F247DA52C1971AA82B16B4946FA84C94 -B9103697B4A167BFB3B4ACEE5A1C747480DD3A346FCB36C93AF64928A7B36754 -AC3E92486DF3875A25E303BEC4F0410465F95B34EC6C729A5C503722154C8B64 -EA7C4B3ED6A3DA526C66D76689D81C15FA92F4E1993CE17E1D0B37A41977774E -102F689FEEF2D7FEC3210E6FBE9FD4F1B8EFEACB80004B382D1AF9C278584212 -D17C4E3CA1F1610C384A200D7AC738E60E114BB42F9534A72B7173AA9DFBA66E -28AA1295D58EE1DED0FA92DC68F0933F5406C7C7CBB06FEDBD92B326122FF632 -0F35F511AF93E40C12576341EBEA9BA16AFD66270002603EBCB6572E5DB500C3 -B9B36DA394DC9B2DAFAD14D96A558B5E3562D796046BC27761B31C4A160CB75F -3E5690B50111649D794A5ACC9BDBB851F5D64A460462B9171386DBEE21411224 -F68DBA86CE60D425C41F08B3233F1C2F7178F5173D4F3B6456678AA00521E509 -F88DF6766DBD6819775415AEC22DBF2AEB8CBD23960B34C5E62ABB85E3A7EE6B -48AFB4F6A8082C5DFECE69E88A85B2589DA7AF5F478A88FB8F1208A02E456B47 -6F1390AA44A34996FF8C3EE66B0454378130F7387110D189FE1AC22E610AA270 -CF5D41FB9D02F2A8835EA35CA404CB9A519A310B1B22B23DE56EECA74BC6C040 -356F29195B898788246B2E4D2BD332441DC719775D0D8D488169FA3089 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSLTT10 -%!PS-AdobeFont-1.1: CMSLTT10 1.0 -%%CreationDate: 1991 Aug 20 16:41:43 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSLTT10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -9.46 def -/isFixedPitch true def -end readonly def -/FontName /CMSLTT10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 39 /quoteright put -dup 45 /hyphen put -dup 48 /zero put -dup 49 /one put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 72 /H put -dup 74 /J put -dup 76 /L put -dup 77 /M put -dup 92 /backslash put -dup 95 /underscore put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -readonly def -/FontBBox{-20 -233 617 696}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0528A405DF15F03DB1C3DA8B850431F8 -0E5F73DAC973450D1ED0530313057E971FC7E7CA88E61DA6DB9A5CD61F0F76CB -4DE9105D0627B8DDF51A655098229920CF429CDAFC3F7788C95E7AB30E84F840 -8CED52E98DB4CFF161D2E62B0D28CB8B0AC82E7A8D2C007953BAFB3056D66079 -8064956E257D31C13509FB81A250D9E875C77A4E91CC49E9FB3C0718B2F691D4 -B4A64F351F4DD68133DED7629B0D96E5124584A16FD2AC7A3EB244A934FF059F -ED7297B0505F3C2994AD66A3CA5D2728B034DE94B64A8AFAF341601BD4DB5858 -C9950A8BB9C598B8960609F48116ABA8C007190AF0ED335EB5BF61BA6871FA5F -EAB5A26AEB5C7C352EB80799CEB983F19EEFA801093F62086AADD0B80BB6580F -2CF61B1390FA56DFA1A0B61C58DEF96BA767A8A37EA44730783C600706606C60 -4EE74EA99B7C0F8E2525C8847F3D31907C3C483EFA98F6C416B6B2C343DE6370 -52FAE423008D086A76A1FFB327CC7FD84B1C66B203A4F41582F4599A82F8362D -38108452EACCC937FFC4F3ABBFE3628DF51367DA6BA3F6826FC6522D6AC5E8EA -00BAD300FFB6DEDAB93237704202BACD030AA824B1E97C0AFE17FCE8C75F4FA0 -B8A74329A6CF1788C7EB34DA7307411E9AD7ED8D6582884456E06E033B4FFE7D -CD4DD8B06AD01340CCCFBC382C18CA451E4C886B01D082FF8CC5793F4727C3DF -B52B4F1A242F31D1EB79D1E39A1D4FD13D6C5E2A42AD4B4D1CC4EE7BA0E5F80F -802E5AB57EA15F4DE44D82AC408AA86D4BF58EF967FBC6497BBC7F017C0598AE -32CF865DFFF0FC7FF9E6DCE9B5F2F4C7491AC674F46E8E7660452CE0A77C1EE8 -00DE382ABED85350033F8ECB97398E4E0A75D4877A107F6A909D0C76D14F9A96 -8A6CFDE3FD9D79B6FD82693A9F354BD2ECF30C6D99F7AC522F8D6C93EA214F7B -3D0ED77F042ACDE9414264C0698E86398562E2C640DEBBA0734AB4C3ACE3907D -CC79E6B2C6C3C3F9B01526E8CD98237D4A9B403FF8CE3132222FA60C196A19BC -A2393AE6935C0F8B67FC1D1A12AA74695EFC77DAFA2804E0EBCAE77E4B5CE103 -A0164B7AF6593E58028A8A8A5AF4F5EC5F7376330432566F458AA2661A6AD0AC -B713047E21FAA80F81C5DE30E1358773FC039A6263DACBF89878169A5B6EE0A5 -BE02F5DE8802912F04D373F16B2E4627D54705ECCDF1A43DE29C3BA73077BCF3 -148E0FE06A4DB51F925170861C43F58168AE85CD478CED8E811821DB638BCFEC -A9FBD9312B6958E3A3DBCEBBE2CF78B52D963A8CD0013428CF3BB3C8BE792496 -D4C6933B070E5492C789A97B7E3864801AF824C4417BC42BB5E0AB897E139CE9 -86D59B189E90F7B5FAE69B67D5A4C797C7335E3A3CC84C92DC98B165077E48DB -34F90A551B4CF387D06A08A637635E2C758227956B880C27E6A6048D5A75F22E -ECCE6D87EFD432983D76E5266950DAA186B89EE41798EC19030105A364B88351 -4CB78AB2AF4BF4E379AC857261D1648BE32B080DC760B01EC9270FFD779E9074 -041A04A3FC130DF2B7B8289BE512DFFE93A62B77529E490C9017808F1B1E9FDC -21E7CC5BE564C03AE602FECC60B2BFD0CD3ABB895B4AC3E3620DA7260603B6DC -A918321A58B20114133FEB1AA7845E8ACD966FDA6A0D76232FA4D0E3ACB16725 -070D6A1AD1C12C4FD19CD64037D8A12A750ADE1E589B38C70A1E4CB163E20BA2 -0FFC466D1452D5561C23677E706A588DDE184EEE001A78D5C833DBD34E2F5828 -E89006EAA304848F2D932C5F52E7F546E18CDD77AEE1D3FCC1A1CF5DE08A4FC0 -0AEFB3FBC66C2053B559BCD562A11FB06722BBED6581D9394EB3F36A0CA220E8 -5D09B80CF21A02E44AB75FCECEFE41E2D1A44435936AA7812B4453F4E31AD6D6 -F6160A2EC199F5AA36D64EE247B072BC58E5F9C7D95390E45BC894D7037D861F -791D339387CDD95EF7283EC409B669E10E949B7C659CA1CC582EEEF4F38CE080 -B2432908B82EAD945FCC67B5D7579A1BB2D5EB3F05F7D32BE415F1BB43566F03 -B9C2B3CB2A3F518F30353F81BB517B90C2278B8ED8BC671370D9ED56D36E00CE -F2C5B1F7DB19BD3140BB2D7EC7D5E3DDA246B660510F93290F5FBF491F4DFF6B -F5428976D5A0D7013CAE6528B070667BF297C45716593781324820C6F8B4AA7D -134BFD082129C91A8E10D8EE59B8C6B55956AF59172F07602EF541470894E46A -A540FE3595DC7B250636D25A5BAFE9107ADBEEB453D4A09C62638674B8F841F0 -C3CB1E3656C7FE9518E318DD13C37B1E7BB57A10695F92C61800A82D9F365BCA -4C0D1C810E3196CE403E16F71E310E3E658D7CC5FE8515322456B252C4C5E56D -807A2E058291BA6EAAD224D49773528EF813556F539CCC84432CA61338C81E99 -88AA24401042751288CB72B695DB05D16AF6FB10924E2D5D9E4397A7107F5EB7 -DBE7DA4EB66C2A9C67A021E6CB0DC31C58A76BC8876379DEA4B6BFED86225990 -99101A9F14EF5B0EF55BD4A54B570D5037C627BE1EB66B20B7FDB7D38A3BCD90 -FB5803DE8B3CB8ACD1D004D26D277469A1359C9B7ECCAF475348DF4B5094F8B7 -9C0B573D161B0C4439694FC196C475B40B051F1E8A64DAC8E7A2C18411E6D7C9 -7E950F1EA4AF91CAFC554A22A840C1873E68DEAB9120D7D9BA8F702F174CBFC9 -04DD6A0567753E97CE5E7795960B4EAFAF76037E54ACC8B9D91A06020E0C0AAD -DE9D2B3408948697A3D7C8F05D27072F470EDCFEDCC1DC099910622E84C0462B -31392B98F29CF0FB1923D480A5AF8616EAB11DE1B2497F7BF6AB449AFF5C6BE6 -AD22AD624BF84A8D59187D26F7CEC076451AD78DF28AEEDF41DEBCD54AB2E747 -3303A61D1A86CA6DE7CC12F2C8B97F77FEAB8D275060A746726F20E9E5068FFC -34CAF97F3F4C41FCCD5F71D333C4EE913986E4157E37A4CCF8B1953E1CB23C52 -36A9BE44AE0349BBA1114920DDA315BD99455E3FF4399A645A7ADB43184BB615 -3A24D5138C09632124085CEB005DE1E00CBFC15C5A041ACBF1B7FEA933E687E6 -77FA85BB40D82E80C96186C9CF295674025F58FA1E43BBADDCE1C60AC4F0E017 -611762CD7CBDAF43659078BF62DDD7D249BC9C5FCDEB06D708AE56DE87490681 -E5191DB36D26A1237A2A150DB03ABCFB0EE1A887ABB92B42FDF25D02A0CD2371 -0A2B5844810A74AEB45836EC19EDD6090B5BC95C258FFDE3E6FD616B942C65F6 -3C35D8123E06D064F4E3CB3B98E38B882836DDBF3752AB1EEF2B731508791E22 -0A67A82EB13058865C6842F61EB43FCB26F0D4AB2B8FC8753B1C6CBD134D8C3B -030386CF236891C74F756F357BDEC0DE483026CA64FFF573C1AA438FC35C43AC -C7501D0E052B43545B562D80192C53F8C5261954BF4429C353AF469B67B6BFAD -37E10BD6430500C6BF756AE206600555417853DD51CEFBEFD0D30A6DB02A008C -1605208250E41485EE0CDE7F0D710D4B846FFC34D31469FB141A04BE8CE53C27 -0DA139C0418F6A331CE817609E80742AC8BF3A20FF11B514B3237E43F1764987 -E6B4C0C7BAF99915F62DAE4C22F59D3CA0CDC6E754D33DFAF9D34028BC2B0EB9 -8CB5556000D1CE986F60C84D0B6E3F4F55ADF2E417358F1B14B542D8A96EFC53 -C3F3F91DAE932AD3DA9C849BA0791C01EEEA3B967A78329083338D1A0B278D8C -CEAD5B6F8017451F34CB458091405E1415E9621A577D6F61A76E1FC781385CCC -0A317E9E794CD972272E988DCF793570C9D4076DAE9BE50EF63A11B7EFD03E3F -96FEA00E65F069CDD157728A1C98AC0A9377197D4BCC157308D09F149AB70838 -C66313272D00504E80FD0839B3A3F126CFAC3B820991F94C497B27B38D058B4A -116E628F7B978C1F253872706B40A7E475F3078992B01336DCB013ACE31F5D1F -2029B4F8A2321A9DEDDD10F2E14A38818637E8C559580529B999E84E07CD0666 -3323D757D75C9DF6A125E3F631D9F6AF5D0C0D2B7C454840282D19BA23764BCF -5842369A69D847DF013B765C2893F80E68A9D9D59A634CFD9E85B90B6F7F09A7 -5D609AC8C9E8820F2F84B72122B081825C116CFDFC3E5D6078A715F35E06811A -4BA7E74DA0B2A24CFC50D6DE7FD0DE5764B53B7A7B33368283615F118E709D65 -EDDCFD8816372B5148590E0AC8C17FEA93205F4AEC06DAD89BBCC28B48F6C702 -119BD3C79D038C3F2B80D60DC61E0C60D872614813DD54B63E8B08623507E92F -962E535C61A2EA234A63C607FABAC496CF03CF226C6C8052753030A0EF740E7F -466BA4A34B072D58F3E560AFB843C5232997976F3C3D4ABCDCA237E43B05AB73 -5BD65C6559DAC970E7F34D4C170F7E34BEB204CD651370588CE4F2F17A0E7131 -6364A265194B7C313257DD83467B21D84E9EDEF5CEBD45EBFFBD912EFD373FB1 -5409ABB0D4B06FBE08577459A14636A374943DC6D4CEA0AB33DD1154FE79BABE -7F5D1D92EA7ED7E6D261C3B2569E83B5E9CCB1717B79959876F16FB720ADCA50 -05A33A47F1668E05A7ADF6E52B38D9D5016923EB55ECDAA72A7D9504635C0352 -76F899CB8DFB42BB5DF808A6499E52C230D5FB8E9E3924C2474D417826D282F4 -8B61112FC39B574AF8DCAF572E89720F539528E20DABDD87EE0ADF78664E94AD -00B3867BEED6C9488036959AAD14CB301B29F19165776DF911A01A6A53414751 -68E4E401C9B3C2B04C9A3066EA0C3553E8F4BFC3F05C73FDF55EAC3213E82E00 -C50DDF2165E51677CD949D27B09DBB30376FA05D2FF3856253F2BAA7907F2EA8 -95FA61D8A042C8179BF834DDE7F67CF386A0D79FBAE5E859887942C6C482785C -E1FBF3F97C666D82FE260D6A8FBD72CA43D731BD4B4301C48249B1E7C31C1765 -D6F7F9C8B59E47D72D7DDED87351E0F007938BFD73C2324BE5BFBC746AF529EF -3259DBC9D83B5025185FD75E0D040203398D1739115F6096AB8DC8A0AB539C17 -755D5927081BAD8FAA7AC021FD028A5C823E373795C2A892DC5750C575D60792 -5BAFC4DD83596D8A182293D630985459BAB559314F27EFDB7E186DBE0E7081EC -A8BBF0F30EE9A8B53DE47C9F2057139937D8B7787BB3107C40002264E6E3C0C3 -E77CF0B68F27E7A0A5CD8AE9A2CBDF98ED4A12E9D1C0DDA8287738A12A607F88 -15B1A64BCFA685C23075619E196EAA4B38517BE37CBC6464369245FAF3D32F90 -A6F8A450B66FA94FC6639D580A1AE8582EB307ABE2396C1093EDBC229BFDD87F -9C5F49F51DB41D671BF836DB70047938A36CF124A5869255D06F3AC0E3435DFA -FB5DADA29C76216637F0E5EF0696BE5833CE0AAD72FE1F8BA860277E70278C6B -32386C1BA505A7BB808BEFE2D75E6D159D58B85F093BDECE344765F388DB0F08 -6D072C265A32944C0A965C10E7BA869881D547A636AF586E1B69F05E9610C411 -EA313749E4584A9C386E789D0BF4EEBEACB2A01CD195A5C6876758C8B2C21E4A -6C68DF63313CE32C033CEE9327B9FCEBA1CB91D302D1E5068DD6189EA38B2C62 -1CBAFAB46F8BF3034A0255FBB0904B4B1B4FB0CC2DF2D412B28E8BDE816F1329 -55635B7E6F7123DAE06E6608CE8EBD46345279E47EF1853B027CE583D1194EF6 -19599F6ECADE298B64CB9FD733CA7DA837DEABC198E750603A02F61874204942 -4D0991E030498B4083C8F81B8B9BD549F6FD0E4C378880FD9968590C13748553 -7E0A624AD408E0D2DBBF2B0566B337CB51BC414598BDCB19F9D84416DEC43110 -A8A899E01D48648D26D92C2F8B784A23BA3436F6403AE29EBCCB05F8F3172FB4 -0408E457400C113233CF054A2EAB612B7F6BD7A92486E69BD12280C5A7251E20 -E103668F48886BF4761830DB9BBA52325F8C3100B923EDEAD4B3CE7494912E58 -4720BFD6B649D64E3015A42FA5A6284A5A4DC3838B58337C8B35CE7D47C39913 -EA706C468E46DDAAF4A5A749FCB5889FD59F90FFDCDB44E5839EA3E49575799B -75A13CB1A17923751326D75A2ED1D2CDAC394084314FF697D408A86D08EB8494 -B526EFAB125865D892431DE80C0EF53E6FFBDDE9F130575976037A35C7853DD6 -5126F779A344E96E6381813950594C1233337459217666A989B5F1718A6BE0AC -19A3B476950B5C9360073C3F2D3D0EEA52CE85743BC348C38AB89B51AA00B899 -217E5008EDE0576E826365DEDDAE40E4A4A69138029D0E59727CCCD3905056DA -DC8FA349C60224B63516186143F07EFE361921C05D9492A6E24234C026A34BD3 -B64D03901979BADECD929276848B4479B51006B8D1171F7C5D0F8DA027043C86 -D44AF5AE35E350F4B11DCD92DDFFC8326E99E764978F965706AC58DC6C0D2F36 -994CCD448AC3CBCC42268B94E16FA9C1387FDC6F45CDE9F58FFA74F27A4A98FA -EA3F2A17E1D2012AA78F906B88EE01694736BC4D184EEF4FB8140E5FAF64150D -E50E8E06F7B9BE125A0FCF24648366CA7A7BBF0E11E6A2DB5825637368DAC5D2 -766A0E15B3BF3CA0838518512DD4697373BB8A95BBB46B39A4659B318EF66F23 -5D068815099898174E95229A7141FD1EAF4D765037BB86FE633EF02BC2A1405A -A01AA2D5CD89628A1B0CD2C5AF088441E52BA7E1BC6A7F09E3A47F6F3B97AAA4 -A41D3EF15211B21CFFC872A40C1182A4CAD0FA5F08CED4BA7D87E5068535349B -8056D253E7A3E5494F07DB46B403E02AC3A43BCD45634DBA2C47C14B1A2E4E0D -22A0092E68F1E320BD63941F4BE8B912B62C2B8D681B29288330F4CAEA024FF4 -3A1809AAA6263656C45146D5A01E2E13A5AFFAF2607891988FB0170595E23A3F -B9714047F54033BA60BE76EDCDBA5C595795440712E64F106452B470D5A9CFC8 -A2C604BB415890FF7AA3126C3CE1D30C3E58ECE4AA04307DAB193702DDAD0686 -788A8B9F8F6F0D2119DB3D4E339C052B314202834F478B8914FB9302037FD84B -B25674DA46B5C9D2A4885BEA519831D2DC406C3C3753251F2BBAC75E1170750F -C54426090DB373AD6EA90AD73C6E80CBBD01F0C56F98C09FF2A162930651AB45 -E8A4CBFC8B1BC29522AF269C5E182130F5DF6822270359151948EFB4C33A2687 -5954407A1EE96F245ADF9E93F972ABC5E1B1457A030F047CFCEC02A3D8228011 -ECC2CB0E0C7AE4B01AA342C6596BD0F85A45E7BE4455D41FC15539D07F710636 -537A8BE0EC50B6A1FDD90B599A08B7824FC65559E3B6FED676A41542BD58A09A -42388D7661D3422CB86F13CF6239BB56EA0B1DAA5542ADD316EE76B01F98E0EF -29A828461020DF0FF643E546EE04CB0032C06AAE533C20720F888295ACFD52D0 -5AD152CD7D0922F911F613354344622BF800B0FA2AF3324E898B39F953818950 -B7587AFDF91F16EF57E46E46F07E14E89326737DFD1CDC0E11E9DB2FEBCD147B -8257B4C2D23DF86AC129BA1655FE6AC212F2080BE6FBC1BFF9BEA8D8E121040E -2AF9500B926072BA9BB474A8CB55E727A9FFFB2C835CB3E7981B904E9EFAF4DE -9F8CA5D338E31FD2535E5CA9A59002123CF08C621D185C102077AB80AF6244E6 -49D22C2ADD353C3F906DE952CEE101A9D08F1D9853EF8EE282506A53FDE5F64F -2FF433CA6E60819B7945A4DBF21534E35039853600CEF1A9FB53B99F074F909B -5164499BB87652A71C6A55FABB3238C1C04AC3D27393D3214D84A6A37B714E7F -B28256E05FEEA5F7E86CA04CE4BCC5479F40FD797CB5BB6C0C817808C0834EEC -63F1D78F0FE712D1EC6F001B395D21656834D6220D77393DE89CDEDDABCF3D59 -7B1703B8884ED56CECE93AC713239D5D814093C2DF4025884D36535994CE1DEC -CB64B51AF63B434F7A18A6FB644F49089EB3161B46F6EEC430B73DE10EAB0ED2 -70736D0B6F3DCA3B96EB036C21E0E9441CC7B4BAD4D1B3B34027D0475C482A4C -6AD17670E16B1D87078AB94D2C04F99CBB4C88E5F29327884BD673BDD841E8EE -B3A2E544B7882F589F9912D86828E0C39519932FDE205EDA6CC03904B253BC90 -2AD98C29F109D815BE900AB44C7BA1D6349313E03F9A9549FDB06A6C65DD2798 -EA07440AACD59AE91FBF7EF10E82EF3FB80E10CC515A992811CA5BCAE7A80EDE -30BDE900F0F49D8F47911274AC3FD41A5D83092FCC98B057BEF66030F9BF5773 -664AA821536B3D033C144CA1DB7CD7EE37965958093253061277A197449A80E8 -AED1C47D8BB3BF0560E24432F6A9FFCA3C468AB309C54F920C30FECF049BC75C -EA7415390EC30468A96C615F7529B5E2D96BA2313D48033C73162275AE4F3831 -8EB29A2FF205037EA4B6DDD1AE017ABF2DA3E4C6B8215FA1052120D7F2DA8BBF -81928CD22F10AC0B1DE254CF5443DE81F68EE6C19995ABB4F8716998C9AF78EF -DC1BE13139C6C9C595CC526974B1E0E4F6B4D552C6FB637D91D850E104939287 -888ADD077B7C05818AF7C70015292F2E968D4214BC5DD87767EDA36249E8C4CF -145E0C8CA3DAE43DB6EDA10ACCDE03608EBB63C2B39D6DC07DE2E5879A052DD7 -84E826A3E22E0B1155272196F4E7CC825259DF70FF0599D91599A8D61DCC4F02 -BA6A6BF9228EA07B8828CE3D5EE43340CA2497B058552A3ACCF499DFF3A8B9B9 -0448CBE07E0BB7389B3ABB578566E781A89AE8A2908823D2B5127EA0282E0E2B -E9BFDFFC7D529613F3E0D063EFE3D71F71A099F2AAD50BF776A2F0E544E13B7D -82E0BE0296556A3F76BA81751352E2D82DD0CCB4F577D7838E34B452B5C79B58 -A09592C169459BEBA283D98756960CE37A239769BCA22660A20418B1A298B0D8 -7755FE810321506D35FCE70E901966FE77816823E4D4B9C6503C90D6F31C6379 -2A4852AA61DC63F3593D66508A9EFB8F1432448F2FD45647271731E2886C4C74 -9EF477B9AE5363897243C931D34E3CE5BF7902F27B93FA5CCFF5D853A28A08BA -B17E3DDAA648F373F4EDDAE1DF25C80BEA3989C2A8D71A4B4B4E8A3C55904E56 -83C98EBB5EC3015647E59A24457B390E3311AC62A67DEBD25C7809F8B11DDF44 -77C7AC9A7080A2F138B214FFDD090D187DB668ADCDA7C2A5ADE94A4692C596B0 -42F4E7A90567544BAF65B302BBFDB55B442B624CF128876330CC2FB394E51EFB -8B0C596BDD60C03F16A6CDD89434110D7ED758F1519F1E8CF0989AB652939204 -17F40D3D7016399612610B56788C6D9257A54C9BF8C7943A6DB9B6990C0BF988 -FF38C97892288C509B71BB8DD20A69B8EB0BDBE05F8450F657B7D2173670E42C -AD48F174E44AD17C66B96DFBB9871AFC5E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMR10 -%!PS-AdobeFont-1.1: CMR10 1.00B -%%CreationDate: 1992 Feb 19 19:54:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 14 /ffi put -dup 34 /quotedblright put -dup 36 /dollar put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -readonly def -/FontBBox{-251 -250 1009 969}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 -87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F -D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 -92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C -295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 -409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C -4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF -2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E -0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E -B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 -24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B -43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF -D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 -5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC -96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 -7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 -0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 -B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D -AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 -97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 -FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 -20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4 -0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD -F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20 -3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122 -A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379 -5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA77428025D4059BA -2988AC2E3D7246BAAAFB89745F0E38580546045527C8779A254DB08DCC6FB9B9 -0E172209FBE3857AF495A7F2B34BC893D942C145C2204CFCD6A5C69FEFC25B60 -E412CB2BEAE7F7FAD03AF46344F6A7D483BBB1E896BF16B0F4C363799DF23CE2 -E8127996DE841B6F9D8A9E56BD799B6A938582988AF87151BB8D3AEA85C49857 -DD862B5E10D9F33D57795D656FB616BC9B8397B3612131A2B0F472656700958F -739A548F7C3A348698AF9F6F9821D7A9FD4131781ACBF7EAB885A3AC254DBF94 -02FA697941A0F97F048861788BEACC20DE829764413CA58F9D045A6B38BCD6E6 -E4827247EDF1171F64E3B041A69B244308DC07F66643FCD7D5FD37F36EC4CB5F -957D4ADAF91850A3B1A765E0E580EDC77556593D1B2E1C22685268469298688A -45C474C9D0472D019CE1E83F25182D084AD85A49C502E8D679C227DA8E32045F -8055D1622C478F8FDA342685F858DE3F53F1CEA0D70BF3FE09037D981E9E7FFB -BC3F896535D0DCF53F4C85A1DA5D0B632484D1F25460E3EB38E251D2AA17817E -F3B25A2A49C0AEDE0B89E277F52CBF744EF0243C409FD71FB0C574640CF11599 -117A4F42F27D8D282D34485AD116F7E753A8DEBFDF7C552A1179C02B7A37782B -743D0DF85C15A333BE9EE82C13DBC9CB007DEB5900954AD9309902E08B3D5BB4 -E8414211B971CE8B9F05A61C15F400D9297745F606C6419E8A8A9ADCBDC39243 -617EFABFDCF9F836D14411BD72EE19D0BDE89234BF7D52E7A68ECC952FB74FE3 -33E1A87DA39AEEE9E90406E2B1CF3799C63E9BA858D54F38918B814C0DF0B696 -839C820C26FB473ACC5C08E2056457A74123A398806EECDB427BB183F5458105 -2B66D7E1FC3529025D3243A045625E9DD9417FA089B3C7C394D2B65C0367FF73 -79F17ADEC6B5D27A5D3D3E244A0839E38267ACF07B2D994C2B4E7F30A416EEE2 -D1688F167D1641A72A795B1F4DA3350F75AD6D546AA118B5F8A5085F5794E6E5 -28256CD31D250D8328C9620B8ACAB03E4A33DB4595E959F4D0FB1C8CE85A710E -22F1940067C036A7DCED7EA48F1EB81AC4735FB26A249A32AC2E3E7636B32D31 -7D76FBEBA106D6C67C94A3BD4256B786B71C6EF8D191CA90CAD8D2EEAD42C6DD -8BB4BEA7DAD4ECB6E002F3B71C2955A5A401E34D55F755BED68178C270109BAB -FA0AD848347EB977325530B27180661A59447D7DB55A62D65309DE24B6638986 -1D3A539BD37E74C2C00DFED3336B5C6B28D915AB7188FFBCE3ADB3CB903944DF -1BA5923A1C053D4682BB8616F44E81E18DB2B58298F4B1A6289CA993DF3E7C73 -B00DEA3A9B747FEEBC4A11E5B9B8B05CA2709B8AA935A42159D3DE399544F5AF -AC1CC00F6CB94AB69856078C9A2EB2046BB9055CDD6A0622112F7D3710143F1C -20CD8DAB4109CD47BC00EBCB88314081C1D6C43132412F261CE0262FA28DB7A3 -C7D8534BCBE1A60488EA230DC558B73C72AE87539A9D7E28C2BE05FC05F58DDD -87117C0B5235B1486088B8368C80ECE70DC07A0493C32B571F6D6E5F3C7556B8 -79DD18A0C09C644C1B0A57E09CBF8247A97FBDA9442DF87C99CB00F959FE4925 -8FE8B3EA62A6C99396CEECAFDB091CBFAA0EA6F25BE1F34B1B8EF507D2347A7B -866CE28452F7ADBB56F4696567032BD289B3439D6CB90A602223E00B43CD2585 -4D598BE43C0161BEAD813870FCA3E377A588C3D24667846301D1BEB056315636 -1304E2CB595B5297018C0ECD1BA4F8F1EA81B4FF88126295CD676D96756FB9FA -C97CD2A8574EAEBB0A869C527E0828940C613B9D45894E4667172D841C94410B -FCC5083CF850AEB2EF92BDBA8DBA361AE95B267FB5F90D5EF8B16B2A83568D5F -50BD20AC88DE25DDFDAAB7B2F7662DB99E20989C7D12DE04057FCD2DEEC770D6 -535680D13ACB557EE7AF8DEBABC3088908943E6E3655C3C00ED022B276FFA5FA -E6E4ABB96A214908EA899EC925E67E86413840A67B3FF86957586B5E06909036 -B9987C5BA21E46DE7919B382CFC4740ECC794A6577BE33CCB94E2E4BB3F28BBF -AAC6E68DD9B01A59A7F3B964F53F41CB9BE94CD44027868F079324B44C595200 -0E375B069FC085DAD5B678ACBBFCCE8916C4266B572D89C0A7B6A26F1D329EA7 -63CDD44F37932CDC9C89C724AD52BF91CA68209471F26C10AA18CBCD1288460F -9EA9BA85084A5F34451044B81559DBA03F03292638C28A704C553CB25312C568 -A06C9F5A764BA025FD48883244E88F1A31ACAE83432C2B837D034CC960EDE3C4 -2234FFFB8132473C8A750A41770EC46F9B2CA7FDD937A2C8CBF5DDD6162EEE0B -36C53BDC0D2D7F6D38DC2F502755B0D25B0BD1858A9B16BA69549B5CA4673F0C -32C5F1BA97E1C124374037E0B8EE94706B3B2AEB9CEBFF69E4F107BABED996B2 -EA92B4D94AA267E626953550633A74099022786C172A323DF9D903A0DF6CE486 -38AB2B0CA07D5EEF34BDE2DB5F539BEDB569F60005A3317EA6B1560C22606B8E -AED6F84526090E626FBF48846E49714EA80C90FF66F82F36F3151B580DAFFFA2 -668B4952CAA66C6F10A341118E0D58B8CE34367BDAEA79645E27059FF2A43D2A -435ED248345B6305316D1DAC5F75787D8E72D0D8C3145C0A1E45B201382EB716 -D06C5E8BA78B6F32B13F80E7EB6909D2B7ECD1420BA2B2A88C0C3154F3091065 -16A79C898C1682A98FC2A11A2B8D4536D74E6E228E5474090D42CBFE3BAA8029 -4564F468EE59B2E2BF8B2429634898F21C31812394AE3EC0CA8CFD5D5E818F4F -344FF40488F06A48E9879E42F131DE378A8A733C6016BBDCA24B10B385BA73D3 -DF4770685FC7B9720D196A9FFF978C10977D37D98F11A3255486C8F8C3F67225 -4AA8884C88A3194EC1AFD2DA57258E30B057490A10AEA001017F06C83255C0AB -13AE04B86FEEECC7F04A593282501423D319CC3FFAC3691DE723F71A6138EDBA -F1373C651464A05906A2F370B0862F5E5CAA5C9570B7D5F9DB24FFE4A6C6B98C -539FFD61F24487B2AF446467B1A3CA16E9BB2384972372C90DD930B8DAEC0FEA -7C2692F029EA687E29EADEA6AE95F030A8DC599C8727F5CC41FFF86EC7E2D04E -E1498E0AB0D2719E08956A68FE7E92EBC6945771DDC13689CB68D39EAF73CB2B -DC8BAECFD1F721BC66D89342D650699C3364A2D0B35F58E4CDF2209512224472 -8920B0079AA5355990733CBCB8A372E1EA02B9DA4107F619968075F33BD123CB -870D0DF6B22E6DB70F1328532A05BD7A624CB7488034E94F3622F97636CB1330 -FE3336665F27AF77FBCF01A786143F0AA892E1B2CDDAEF2E0F33E56F179CBC8A -72973C643CF217828D892C818CECE72D0E89329C6A9159BF17D10BD3BB4A1154 -997ABD8127118AA79BD792292B6B9689D989258CA9F57A75C4C9CEADC338DF07 -13081B667C8D86DEEE5BDCC47FF96E2AA5B37C365585747EB3B664F08CC7ADAD -B42D1B54096C60AD15596D7DC585316A36598A349E89242274B5171A1DE841CC -30A5BE43B0ADB71C3DDA25650BFF704B452831FB06A7DB0D60D24436BFE23CC5 -AA68BFEE0897140B248E4A9BE7AAE37B98A54CC1D3F81164943B66250D55E554 -55A688BB9E3077FF8D11D1BE1C3FF99DA01EB206AC5AB1D394854DF5CD417084 -82BF6D1DAF88698A69DC196FA9A3285AAFFC3441CB4297A48DFC86B29490F2F4 -B514AE8F3D4C0EF920791371BBDD1B6369C38A90A2D2AC06B25781630847D6D0 -87B469CAC111778CEF26FA3233A85044965F3862C83F63CA2565B9644EC15B77 -BD2BA08CD8AC3DF1E5CC53CCE496172A18627384CD54595E3BE1E7D1B9751C86 -D6AD3EDCC725EA4B09BF3B92ED658356A3424F1B0D07B6E11B8E1D4823F5B0C8 -F3EA4BFA3DF77AED89D464D29BB2326ED2DEB73E327AC8B2C99B73DB70ACEB0B -D0FD854CEFBC72FB9C906B4DB9EA35BA8018C623987C834B63E8C800A30BD551 -011F6E05EE76C26ED2F335E32BD4C866A57BA7AE89ACEB1066E795F122E1BBCD -5768F2DEC922EFF8B1778F4FFB7BF1B6253F632F8D98648B81018D2FD4876974 -8C818E01ABFB557C8553B98A512241000B9DF64C1F5784343314B7B3CA04E506 -BBC612628AEE13DA23B3242AAC3B05244D3711121D5C9AFA8EBABD2074DD3658 -0F46D501A2CB11A370EA7E38E3682A31F5C47836E9CECAFB1BEC80DE889E99BD -8F4DB78DBA5AC5D764EA99237738FEAAF199DDA7236D22B07D22A8F6ED023E44 -1828588397D723FB557CD35C7C5C87BB64E4A7F88B03FAF135ED0F185F7AFA4A -F498B226D6D843EFECFD9029122B15065A4D04B509A8B633E46AD3D15D4F9EB1 -AA41E4694AC4DE0613B027E35C32935B5F0A9C21F5F60B9DFB5FAD619A35AF19 -20C0A1B2490E8E3BDACF27F37680BB32489D21F91603D4BC5FE69862A1A05F10 -4C11FE5744676C4794CC0B7F1AC1DC9861A247234FB986A0A4BC5F8F6A3183FE -3A6FF5ED1D32A711906031CFF6802B5455CF208787AE3A35B1D437C64E5A3283 -A1B87F31D6B6AC634579FC3145035BC5F0B454CD9280BA3509B890D45AC7EC54 -F8FCDA7E5F8AB9F8201621417E17FFD8CB7BF55A6D9B21F95C403AC0112A94D4 -B7BAD823A1E9A5FEA956B08ABF303A917B69C8BAD87E685DEBA72E62AB132F46 -521CBA0C7A96A833AFDB396E0FEB85D3EC605A4EF6026C0A6CCADA56A26A8FDE -18C61D26C93DC6E15F1B5E789567E833E79CB85580CB50A68AC93D9C2454861B -487A833774E205A73A2932D0043759D5978921BB5B499BBEC5AC6F505EDE86C2 -8B8DAB630F36128B53BDA72CD82A3810E94C6947C9FB148574FD25E8629CBEF1 -2AAA7DD33D1A83C0235AF9F8FA00822AEF0A6E9DC7FA79B3872CAC39957D746E -3F05C8EA69F0BBD0D96DA2ACA93E73FDECCA8B35D6CD52C464C1A51EDFAA83A0 -54C236F0064B7268C7DF4BC1F97606D48D6C8739AA2CE28CFF1B4986B4CE8A60 -D8DA6C67A6887CCC3A0A2790FF5FA00120D15C26E8D938D524F355FF8212A689 -D34269669DF03F1BACCFE834425972EEAB399EE578407F9550B93D65E63E3707 -CDA159B5AF4B68ED52D389CC6915CF7B0C737514EAB05C947AF32D67CC36D782 -C9F73B32CDF11D2CE33E8C3DAC12AD070D0CE9EB3C209D0830C0665DB9F61C35 -FF976057485A32A5A41E7205BCED4E2B9D2011AE3FA90ADFF6E3C58144293A55 -E25C6A98BA2113DAFB861F0C3544A15F5CC20496FBC58F1FA2088BC67334006E -2AE3755CF0791FE82E8620A5BF3B487F37DBA3ABE1709DF21745CA7D7CDC0AF4 -F33FCF3672EF5ACB540CD7931FD18F815422B2A193C9AE34E626020F9AC0C36D -4D5AC1137C75F10B42E2499DE914703C682806C9E1D158217C68329CE401234B -462F92A35F20858F5FAFAE3062C57ECEB930B762880A982A8DCB7D010383A156 -547310C8BDEEDF6313650A2FD71856131E24F1299C8033CF49DA9BFD013F64D7 -2B571F6C2E0A84FE62F060298C654E068F0B8BA453D5F94BC89D3B5053721731 -AF5CCFED84B7F6CEC60FA31F84644CEFA02DC2323CADB246E64DE08D9BE4FAEA -59D1652DFE1A09C41479C3CDB577942334F8C57545BD883E0AD172CEFE546C21 -5B9F63E32980B1E57B0EDD66674C9D919F6E323DA0A0CB8788F031BD533615B1 -D27320ABD6A1147E3200322DB2D8700B3F1F8B19E3C5B67842E84469D997B702 -0D8DE8894F5422DF2B9244C20186597587D3852F34ECB21E5244EA9C8596F0D8 -6E4D7353C7F6ABCAC499D7E34CA7E7789A54D712AE69DE15F767F045E637DDDB -CAEFE413AF652D849D58D52DE084956D177AB7E3A9146B8A56BA23CB3F734298 -88C66B7C2B084EF219FA08BC87443FD9D86BBA351427631D368F514C7DAD7329 -DDCDCE8311971D746FE79322097E7F676740389F17B11587086942024918CCBE -80A60A78D96F3CBB59CB81BF5D8028475316D96E12248867A3F23A859F8AB547 -B1F06C1ACFED4AB83378932A253B8FF8AD5F44BB4EC7A7F025BBAA179C81DBA2 -049053EDA32AC126C4F222B5FBB1119C7BE3F4BE0E9A3161CBC5F4842E6BD743 -11903130004FF705BDDC0EE6C1D97396904B295596A226FECFD665AE0A6F7EE3 -FD51F370008D1697035CCE907243038E0B0487A6DD63F1ECDABCE1A71193FFBC -6DFBF1726156A4E9710C0D272A7A351F8FA0C2785BCFD0BDCF1B4250675B512F -997677E512B29D85313FAB6F7FD26B402E1C4B2E270E264422D1375B93EA138C -171557C70A07C8B330E0C0602949C60B9D921B33E906ED3858966A640367C505 -2E3D254C1C0C63B3F831C9D2AF2B2FA6FE8B663F94B72A7FFD63712A2C4422B6 -6E3524B5AA8D2EB9C7733BBF2662B64B3428EBFE956CBD500DC71A4F4CDE8896 -2EAA65771273D823E8687E2FED6A26D7DB98DDBFB57670278897D2AD553D6AAF -6F1117C4F894AAD44F53348A763289BFEB2E9DF66DB921E402279FE17634E0DA -576F0323E1F849DBB1E7E56D0303DD2C81EBBC192B5F8C13A5F5028D64DF153D -C7E4C2A59A3E369D44F346BBD79A4AE4930E3249C1FD5CC8B4FC6C753ECA9326 -797F25BEE6BC66E125AFD247A2CC2F61A47F03DB682F67382B2E83312D1D239F -39D8BD6C3256FDD8D424046A289D17984ADAE316FA39B743B12419DCC3C8582C -EF6BE8C6E7A091F1EF76C6090C15A7742C5F66F66A69DE863256574491B422DA -93F4B0B13E69B03D1A92840D80B39C96A535C2AEAFB579B9051CCC67E32103F6 -21EADDFEF9CEE1980D3F86DB452B61200C9805EDBD219E812F22AD612B436E28 -D86956797AE0FBBE0A0DEDE4340B51D2CEB5127FF7C14C85AC55C55A1A9412B0 -1471CDF9FE7D52A5A069669A9C500FABD920863628E541893B2692B9D40CF391 -69C797742BEB239A6FF37CBEECF5ACC960011BE1CD35241BF35431F902EE41FB -5E89FD3C7FD3E7CE970CEF9A3BA9DB4F10945568813D4566F5939A7CF94CF2B0 -97E9D335CAAB09BBDED1D462EA787E5FD11A63B17D75882E379B490C5B2B4440 -FCCE6CD6EC2F4C21D5443E6269734EAF0A61520285791FAB0B421D5CEB2CB165 -286278D3F21045ABFCA81CD9E50A733CE516E1F4C494FF072C50FFCE2D746CD0 -0D28F9EB6CB77425D0F4188760F61C46101F21215BB89FE5FB9684F2E9BADF1D -8078D29B3160EF63A74A19E17202270928654B95413DA00FF89548F30C8A2146 -8082CFAF97B44733C420572188F01731535A0F5609CE44AB565563B15212E835 -10E5EBA20E3B1635B8E08D85E8D282D51AF0C5D8B4526EB0D43325370644445E -087E067A1EBE6E9C5A69D8F2D32E2960FA2B26B582A4D2D9AA1CC49408E88CCC -19C63FEC3256F43F55CE38B3F2D7902A4978918AA2D9D23EE839BF2A901F0649 -856041B1F62612DD6FBBFBD1D3645ECEBCA6587080C6DE11DA4CC9F8E08758B4 -37D559BA464A49A3AEA6373DAD44C615496C71C41080F4357FF2ED23608BB448 -FF983C196501096A58EC0C0FFC9BFE36C735118DFA981C69365EC6E543BABAEF -0515AAA6E8E34711747D586A6CAAE1D3D0F2EE85DAE124D93A6EDB408D9FC825 -7943607554B3CBF71A9843A76A69D7533865BE78F7BA15316360CEC333F0326E -EDF8B884A60A0E02401A2A1E3C18C89580C030AAB8B94438214A96EFBA9554F8 -2AAAA5C653E94FE70BC18F998BCD6713AE8A087E37097C36E06C1E929278F668 -4E6B169E30196E373D89CDB6BDA65989AC54ABA2678ECC7EDE24AD6263BB0301 -012E31B2361D62F8E08528558CBE40A37939F09069F82095379C56C31EF2984E -78BBA233E706B9575A245E527CCD6EC11075A3FD2623B49E2A68EEB68030AE43 -1D7AE54192A39C52BBA92FAEC3899FF0ED859B0051537F998743B6C5F2DC99AD -FDBC65E51D3E82B70CEC3EF1C3645ADF893C3C5F3D25D51CE54CEAA463F8BF8D -EDC3CDD0422C12FB34C87305CD11F0005B4AEA3E9AAA000546E4383C7B8629A2 -3372E0E857C5A9F564E6FBCE49407740873A109A2B8FC581171B6965DD349786 -E547781395D8F3E42E99BC556A41773DB2BA8AA0918081E4983B9F8B43A15544 -8D15BCF336E93F8CFCE6E79940A52F9B7067C2C8688F20F842B2D0BC02DB70A5 -3074D0CA85BBD01D6D91B2722CC15C866448C91ADAF9EB2D2A52F08B39808E43 -2A492AEFD45480EBB07C4182CD6DAA9C26A561B83E381594A1AA0364C4464AA6 -20621994D2B64D09B7F460C2D6A7C264D89E4415A9E54A53CC8331A3D358BD14 -4894EBA4DD7AE1B836E2C9246DBB0800805683A11DBE420BA989837D86A1A600 -8B669C7A7283BB9313F045A08602B7F98F78A059CB086B5991F761CADE8AEB86 -5039C35C2FD564C0D8CF404A5F32D7C532716169EEB6D08C8CE5BB357E4CDCB1 -5FCEC35440433719FC19DEA55B1662309EC85EB47B323CE2EBA56D17E0A88175 -B2FD7B59B37F7D48FACD52A7DA80BC296E62D60D6C5F251554138DDC4975E308 -2F9673033F0A255FE037F16CE58A3EF652D3DDE2AE7FD39AA20E88FB0A7B4598 -02E993D6550EE854A5D9ABB3B15BE396E3FC2DEE919D354166BC1A2519E0F2C0 -228998A7243FFDAE507841771E4A88B610F1D390F7898CCAE418C8CC15A4B3A0 -9B74E01AC32BCBAA020C99B6856952158F866E0AC66F171C3A3265E713094F71 -BED491A2ABFA737A0EC17DB262A73EBAB9F8F9E96DC7C5764B92D15F5C967CB3 -C846C147DF1568A68BE099D8E38B5A9FEDFC66CE2AD3BBAAFD72AA51D6C08A32 -AD54AE75530267728A9EA3244E8C8CF67C5A28F67068CB4CF90FB76F280930F1 -893C952DC2A7ADE38C692BD19FFF63383308FC2873CF241C1C3D1ECEF6B98CC7 -287D9F5F0C61033CAFA9739D9941AC833A194E67CD1B9CA1FB4A02F0A53A814B -565CFDD9CDA06303ADB599D6CE17A7F6A81C13040FB7D6E98AEC4BE9F88F3B29 -FFA880E8CF8CB6F4FA009C4354337A43DD077D40C993A9AF66D2B524CEE5FC0A -BDF03740A45C0CAD814E869D435C61A964D0644E93C6F228B205ECDE4EE59D67 -C35647FAE9617877DB23272A9D777262A1DDCBB7CDCFD2D6136FF69C000F9B29 -DA30B2A654C27C564F113FFB52CE2F6618EA1C8102FF9D93B0AA2C936CAED8CB -1A9F2FA71930351D74240F88DE47423EAD67D66C20C8DE2ED00C94642C25630D -4A60B8DA5362D00F3399C6796EE25BB88325E11045FB6E00B72706257BDDA2E2 -76C77F6E0030906D646D759447343EE6CDCF9A61CF30C1392BE54A0F5951AA69 -461E856C4A2921C859E03E13AAA1D6F563D5F62A66065F36ADA9A08A697F53E0 -249DB7965E9312F46A18F6016684708F397989B1C291F63C491B48A8B1A51E8A -2C1DB13DB081B75784ECFFA1735A0DA6D443D7BBBF38B16874B57891E3C28A04 -C21978532D806CAD99C9CB00777FC2B9582CA68D285D0488B5724B9EF603D4A5 -4DC01291C0AAE941219EB99398C6051357DF7138324625A4C244A3B127BA85E3 -08C8272EC75E848D984E38F151E9C0D46D1BAE4648F7391B59BA76038391F306 -3E8E72B0B557913A38CD6042D2ECFA192A5124B9F58C887726C72C5518D3CD90 -B24196C04E0D05A6B590E067B17103BB36AC830CA181BAA072B137A344B7570C -7EAA3272A774A58E049F71DC9DF45CD22B1452A26BE34A5179221A01FC5536DF -BBB94E93BA9EC169BE596336768AA8C9A72C258B8A8CE7C511DD923193D886E7 -F6C33E5FD68032A5A4459955FFE76A8D5726AFDECF42818BE43F03D2B4B8958A -38D94568751E5468A1322EBF924C7B587D732486DF8E309CB7FE20F64C6A371D -D62BF5A33B49DD267AE4C3F638A76BE6DF49B693D40D8AE1E9F0C0B0606C84E2 -A6868B4F700A6DA1ECD097C96704B17DB76621FF4876149E6B2FFA89D38D8F3C -1026401F2CB949DE9313115E6626B26082B1AD94D0C1F8E7B907B3676FFEC9E2 -E31FAC5504207CA741486734336521C2F9BC91AF257472E4762966AC19A6E89A -87644A22CBC9FECECD919E513209FF439E2E7F24AA80B4D3C940021C23D7A921 -1B6E544E43FA00C4540C73EB0F3B8F352BAAE6CAA924C1F09C6EF7DCBF4BB88D -0BFEC67C79B6334A4A0E6099A460B57FBB845831ABD0E83BF0F92491ADDE5526 -E036C58BDF78FE25C55B9580F6D02F2C2F7D77399DB7CB4B8B8E037538D2BA64 -BE2BE4697B87366CFAB5A92932465689775FBD9F87AED9B53303DBC13C0C13CD -B549FF2D8C8C6C9082CCBB9B6DABFEBE53A85297555389E5A08E47F27F62EA1F -11915A06C9A1E82C37E4AC72B009B0CBEF25FE046FF9FF20D50DFFA97AD9856B -B51EEFB3DE0472EAB91CB0B51ECF29EA2025422B31C811C3E449416B8916C2B8 -63E9E4A80F9EC738B81A2A32BF196875BF8F52010B1DEEA25BC2719EFFEEA0D3 -A3AB794058EE49333468A3CF5D13336431ED14CEFB1A2D067AB3D2DE942D9DC9 -C0B5CFCBE9D9A4B53D9B2B19E28F5416F5DE29E73156516683F169BEC75C5344 -D953C9640552267E6CE554C418773F06BC8CD88084C60F8D7F37523922B4D49B -ADCC93A64D0C92973527A810F6B0239E5525A6BC6AEFABBC8FDF0B7E1B368A52 -3620DEEC31E00D6CD5F02E1625A571A6129DC18333B395D4680CF6F69CC6D359 -4C444307FB45B09509E36E0905C7B2CED23D9B48FF65F31EDFBD2073F718FC34 -99FB4A68B4225D12A42FBB14D7A3FE9D2CE7DC8925E6BBCC4EB53632EA3432D7 -BBB17498259DC19AF7E6CA3F124A7B39BE4C9768FB49748F5CCAA3D1940E0A49 -136B3F49025B2C3D09AC6598844D9D113297A68027AFBB1D8341FEC07FF6CE10 -28358FDBA753264E7865B5B311532DC8D16E6E1747E53D96E996B9F27D9CFE93 -460158DDB6708485029D6F31729805DA1F445C629D5A7048F06D8BBBC6BB69D6 -FB7BE6BF7FC02EC0B33462CF5C756F35AA56886688B05F6A417B8BCA35886256 -8EE314686DB5BD49E631AC220C299A8C5D6ABB974C45643CBC589EB2D0DF48D7 -F59EEF1FEC4CCBEBA797DF168D1D08EC7467E7C35F421BB6BEA0E9C4846A84C1 -70FEBABA787CC46391393A0B99EF0CFC33730140696B0DE9C57E90231310FAD9 -D67462F55A56D9666EC08AC424E940CAEAD58503911C4D80FD59CDD5182ED504 -656628B1851818197DEACC842E943D5A2B75B5934E8AED3E67529FB51E625A14 -4D91B077A53FD8C69C930C677497A36A6A578A639EFBDE481EBCB80536C9CB96 -0A2E54A15F6940F4FECC203A440AB47439C9FDA12A9D78B74325ADF44010BF40 -6A5FB9C012E07A557A60326983A0802424CEA244DDBF66CDDF918B30618F348A -8C5086F7A7BB1A86C7B4826323802701A584D17C6E19AB720CD13D02E8EBCE16 -4A87BEA7C6B76D05D49CDBE8549640FFE6124D2852A00A46768FEFDD2DD5B60C -3AA80C3839A86B4EFB035B65E1236F6DA58BBE2A9445311E8714C82310E6A0D2 -E926A3D18AC3E7A8F8A61AAE5ADE10E43116C105653E3A03E895BB2F7477A0AA -F1E481B4F1B3BC9DB099E60681EF3B0476D6E84DF5ADDA588E8320B4899D2D40 -F8CEA36C2039AE832C87644E2A3EC19AC8FECDD575364238524BF5F76ACB02EF -094278DAC561F700ACE728478FBB8E0C192795AF982216E2A4A3488D6A4BF06B -AFB8F4EE78DA4FD96437A45C1E1F49E83D6E85390F8FF9B8E487AFA6184FA430 -2A3E13C59C88E3FC8ED9102D485FCCA463197A32821988D1C0A7A86620655DC3 -DFEEDD33B3A1F55CD5599A58D0F4A390B69137D947897DC448A8255A2521EFCE -2CA896955E05BEA3480166F9FF82F1B145DCB56B6872449335275533C38336F5 -4C49F40D0FB04222D14E0AC8057580118B1EB1DD43A8BF334763BBA198D851AD -47F4499A2922816D2F0AC1956B4410E617201C82FDD7761C1A0C8AD025FCB1DA -9A0722266E22C438C10275CC2BFFDBE726084F9CBAD1CA9ECFA072EB5A317EA5 -2A8E39F8794209B978DDF404FAFD22831F3F53356401FFB85334D339426CCFFE -0F869606955F20FA055EE560B4744730EEA18CBBDC134644F124B714FD43653B -C0879B820871B8809020301A71D37A44252491555D9B6278A9070C088C0A80D2 -BC753160E83AF282F3DC077CDF610A18A1A83D4920EB6E2A2B73E40BA112F78C -A18A26ACD11A5D4E12C67A631D4928EFB809640F64571E5605AD4BFD3D00FFCF -FFE4FF9FFF1A63002175D401D4BBD218F40B4C56766A4FBB93741F9D2B746F78 -B062CF36E60973FD3D52810750C06C73CC376F5291442A4EEF4B2842B6317CB7 -E1AE735793AA5CD2F927E4DAD0470D0A6612E8C0557245213B0DC87DF4B9CD12 -60A6FB3955E007041838B667417524FED98D5EE035C212C8377A6E2393D86DCA -BD5092520A83CBFB978D2EEC4847BE9D4365714A5F36B343F87F1DBB1E2759ED -78EAA5491A4EEFB8FE1FBD10112294959C42FA664442335E521CA7D7E7BDA468 -AE36FFEDA896738CDB3054025485FA28A071C96A003DF5A940261ECCE471616C -A5B0223E7F435A096B90FF8ED7D88FADF050BC4C4C1FA51D4D389BC36E9D5D70 -9C38800E0CA38D1A045586E46563D855E4E6A8482BDEC35617411F8E046FB838 -1F745325CEF7AF2EF0D7F912A34BA6CE8676944A3B12212CE7AD55539FD9179C -D8BE8CA39C9EEC948BCCCF2ECCC8F10DD4C8E99A5922BD9A56191C4900063DCC -C3BED41EF16BD2BC1891D87E5DD05AF7C25D7E92B1BB87D53817643B621BB21B -EA839B295433042A7E0CE294C031A4C460F05D16B46430445717EAC72766909F -9008EF1F3F8404DD56B1B1F90A06D99859A1C45F7510B9E7C6929BF9E54053BF -95B4911454183A5F2734C2CC7622ECFD0664B77640C416A1DA10F13BA0238C25 -DF6752C9B793F8FFA012C6E8E2AC81DDD9E402F42DC4CD6F290BFF4B9C633E1E -52397F385B895FA3DC7471F3EB97244EFEAFB11BA92C994CFB511D7532304836 -151A4087F1CEE38AB690E1DE2354FA2A7059F42982D0CFD01BE3A320FB078F2D -7947E9A5C973DFE340D0A742170386831314BDE9D67134451FDE80E093C53F37 -F0FD8CEF42FA08555757888839D9DAF23A735243EBB372A5C3230B1CC2F3B5C1 -C8C19CB3C3E9B1A42D0B314E778F7B3F24C8D61375FA725B40F561C6619D025E -899BAFD602833506BBC5B6EC86A932F46338E7E26EDA743CC51D8E4B3944D186 -7EFEF666F9AE87E395FB9DDE9A936AB87B90771BE94B784B7584D71827874DEE -03B55096CDD953D93FC0FCD7E878A11EB46A10CCCE040A90B375995C5FCBBB27 -5D0745BF763C61DCBF193651A3E36A4112F823B5607F418AC8C41B51221F9E6F -0E9DC72ABCAC248BD8D83949A24D33DFEAA363508C263FF9B222347DA08B99F0 -2173065BB9240A61135E38D461736B04BE918BA150DC90043306056B657D6CA7 -FC27151322B0F132D91C0BD0B9483A6A26D84882095E20127541BC1D93B72AE0 -8A68A5DEFB35E50B37ACB926DD8DB96B910BB6F315FDBAE48531574B9ACBB438 -D1ADA41812A752E9876AB76B31CDE8EFDDB0DE7AF97238A9DA0846EAD39DB2AB -30EB7D7F61DB0876FD294E5E09916F0C79417108B30597932BF1C81DCF5CE0BD -2D65C84441D6354A9C8647D740C1B450E5DD3237EF9BBC793F1148155C0F950A -405BFE9BE30D9EF9F8812279F71B30949F8640E9D0E5B6CD133153B2866E7F35 -78795EDF42FAC47913A9083E7069C4D4E6B0642F55FB481E7004DEA3C3C86177 -A103AFC8FF966BB958BC5EAE139870EC202D1BAC713AF4E3F2FB9594D60E83F0 -8638980BDB2FD061C867E748420E45AFE685D27A2767D31E272B43EC2DDA5424 -AC17EB9D1C7CE94DA05F741F0F635361325F227EC2DEEB5A3EF3AF4FF03F5FFF -349A9571CA07A944C3974706C1E1A2A433F76149A1E33322E05335787A99C9A3 -98EBC8894218611339E7F065F13C02CF110ECED530FF12350140A7BC7BC810C8 -F17E870225D6DA162362C5587A4A13F52E9F92E31D0DC959DA76A3095661D000 -25A9EB458084039E445529C5A08E3C66FE115D2FE1CAD9CF27315D440FD45C76 -464970D0438E3C1E5F9CE9A9ADA95C5584532C7998063FC7E4E4DD3248148EAC -10DD976E786084D5CD51D263AA0B7B5F0C31C1A127E03CA8AAA424C6D31106D9 -5788B85D5B2D4557615AF4B1CE34CB66F61AB005C5968756539C44690C3B93E9 -0629165F9377A1B449E2D07356E10DA88338F5B16EC8DAEA544ADED4B3EDD716 -550D9103F3F97E86181B8379D37E53FDA0557BA5EA231B90655957080E0E6DC6 -114D07BA1C9D1BACD0EF6F7997BF73482B194824A1EE1A39A6050213FDB4C820 -FE4BDE84724041C6F51287B7AF2E7A19558AB32EE2DABA726577787D5A136434 -427EF025B3D99F7B916F17AC1382994BD9DF6FD023D2AA72437FD509F55D5EA9 -189108B7934E0B0CEA9E956A000C5E23732E45BD1762961EFF36F7389BA1BF85 -312959449D0751E198C9C34E1081CD049759573217FB73F6A7B0348533F2D942 -9CF18688587980A65F512906C42593767D8A08F81C62E42CF85B92366E0DDE12 -0B04CD253800423151CCF040354A70EBF850C23013A48ACAFC816C4C002D0BAA -0BCD2869368C497129DFA21813D2689F3EDBDA0956F822751B125CA6ACED9525 -51F85272D896B6A12EB9FB8579DF5FCE686804E3D4BCE113B5FD83478861553D -75E11E30471EC3A76C5DA24F5BDA4C5A8B72E93DFA470B7E49CE1F960FD3F10F -3E0E32BEBBB09244F091ACFD721B806D00593A925F97DAFC22C86BB5B0D4648B -1BD0C32F5EEB7A3CD106C00015CC89B0D2677C7B4F2D3D818B40336B24D3B7B6 -77D03EAE4775C93326F7EE747CBD71FB65A2A2EAC5F1D03A5999C5689B099127 -61A2F058BD984FA3D2785622909A03EDE1A209ED6BB56237887479A782C75A54 -BC20ED5EB4E2BEAD28641E95237D2FE51C70AC77BE31246C92D4A3175EE3FE6C -02612C7134DA79EAC6522DC1B52AD97132FF53EAE224C2DE9BB37E79464F08E1 -7340C8A79B87B439A484AAC56037E30DD391961E99B1BD4034BF50D00C1657E9 -8FCF4C2DD03612021175360A582CEFC4A7D12642EB33567A389EFBE03712DEF1 -00E971320F62E803F0775767620F37B34692C313FB9C0958E00597E1953F79F0 -F32186D202AF03829D2062335B64DE098D4ECBDED19516A3F4DC88D1799D0FFD -F24B2C0E899D45756733EE27A1FCC99BEF10C462E9F9B062E9BFC16E75459B76 -06D84FE9C552AF42B0B3EC237785B3CB5075ECB9DE28817B55C85AAEC0C94C4B -DA282188747A4CF8D63A50B9923CD27DB14D3BC523F41728A2D90ACF46355944 -991DACE13425D8DC18BA74B9F61923E45C978DC8B2D50939947CB4B33596D6D8 -5AB3DD0BD8E4CC3CB8D14590F900354CC46858D09C4BFA8142CDE33F8B75F349 -F535CF80B6DB8E64E6DADDF520D9E29D957BF1E298027BD5D0C4171DB575EA96 -1AECF1C3DEA0950BE26E739FBFB2BE59B86E188816CD44B7ECA980C1E44AA079 -AC2E7BD3C6FF65D9779B60ED34BCB38CCF793BFCF59B84A89A8C719C40EB0A23 -A91CCF0C21CE3DF3985E13C2EB9F89D6B7CE6923077D5E27260B55BC9FAE73B7 -C7EDE7676F922A8366154FAC92C7455863A45C4F4BF140776935BA4583CB1EC7 -1486197EDDFA9E46DCE6A28C992B10DA89C4FB8CF80CD39AC536C1D41C6753E3 -692F8E76928B5D4F2E86D30F7B3954BD6301ABB58CED13884C284C53D7A734BC -46A9502745970B12A16058695801EDDFF1E65F7242CC61F6C4163A67DB236F17 -704CF79727413904319002AA4D81BFDDF64EFAD2DC47FB896BCBC5FF19FCA3ED -B2321FF9F8504241CC25C1922DBB23CD6AFA25DDCFD473AC617F1333CFB469F1 -A343455681B59829DFFBCE8406D374059A724C7124FEBEE05F9BF3206254A931 -0D276555A890E38C69BB578DC8D7511E5F82A15E8E4BECD06D47F6E3AFD854C0 -B968F0923B0D7A3672BF7CDA1DA9CD9FEE74D70A2CCAD4055062E3AD8685FFC0 -B5BDDB530C857C3C826981C0F2F91574DE71274A4E404A1D73020F4B50376EFC -748EEA93D6E1E2DB1144347180ED372D2727E2DBB8E9334778AB1C4E67993D28 -5EA56E402DC2A8B87D017778ACB9585D9C73780CAD7CE94B6BB727BB93366612 -8DC1B3830E7E95EC7EC2D539FE7E73E55633CADBC630F6B7DC36D77ED47B2958 -0B263DB67F07E16A040DC602CA362233C947B95F63F16239F0CA977F1A99F9A6 -B36F831B7D8AA5BD29DC4E26DB4DDB04508C53EA8041AF99D33899327C353C96 -A765BBFE74CFDD198E2FD0D9B9F3F76F2A8178A530919CB701F51DE0BECF3BFA -B6A10EA4DB04DA17C04B2A932E937CCB268F5F427485C217D284CF602C9091E3 -6977BB4ECD4CA46905E79C6E847C0B7FE0A84F0DD43F7EECD10CC502F95293FC -078348DBDAC9DAF6338E1F9D7DD289F52E1021E27851CC45AA0047F2FE07B5C7 -A6F0F8BB5E26BA7FFFB21082351804662F9C476E9D721E8A5BC81F2E5CA81F45 -4FC091EC171438E64ECE1899865F483D6015792450AE1186640D1E3C328B915E -2893621345A8EAEF8A017CCA2D2608C5823A23FC7575397C3646476E8D26BDD2 -8C51C4CEF109EDB677017739A53CFA6A509AC5152077EA5ECD7A176578B6BFC4 -ABABBD0C484F31B293EE6FE8E68A281EECA6198A8BC6CAD2EA4EE2C49390AF4C -6A710275742AFCA4E2A1DBE04123C080FAC65EB8C6AC86388FBFFAC8EEC49BAC -464C4E1AA0DCB37AA6503E364FC954BEC84C9552300DC9495DDDEC35795EF8AF -50D2C0CA0F238B3FA1CBBA9F9CBE1F621C710F73B7D456073082BCB28170407C -FC3007F52CB71E08A85621B22B4DF750D011175E0A29B4FEBC1D8625E713D050 -31325515679F4A0D6EF17529A37C0BBC3F8F2F7AA0A6F57977941AB4133DA64D -1AEBE4C7FABCDC25854BA5583678FFB54956AAE6D94F3E06D5C0F27B1DCF2421 -1C74FD8D4F0A5824DABE0346804CDD2D96BED494EE8B9D99F133F325D8CDF0EF -431AB25D5025BA7A7E8B329AD2F89A53C3855AF9CD54275E030C3051632E5CC0 -994AFBD2A15772BAAFAF46FA10543A2B0AAC06163802D7F748C0EA0DA9072E54 -19E4BE682E9CDBA0B0D7E9F60A90C6C8491A6F30A5D310050DBCF613CC297D4B -66974DACBFAB4377A753A16FE6394542A275D14197D422CF91FF360E8A63E8B0 -2E746082582E2448F6CAD56E488DBC0F40FCBCBB993A787E70BC9D8E24176B61 -FF2984A3855F02787C6C3DB41752B63FE0B7B090FC6D21763E96F2AC80B8994C -FC3DD8AD32562184A3FA34CB6C0C73CB587529E35E72337A1AD22970995051DE -2D10E84A14340589B08FA907F5A3570F98713316F633228AC0BBEC6789BED276 -6E2E1597D0C8C22705A729622749A30BDD267F7BF3CC116F7F888A4F4AFCD688 -63AE5A71F1E2F5EEFA3B100B19D6A893BE519DC5DAA215B143F807296187E4A2 -F52FC1F4448B0F4529E2156CE980293422994E484EA3F21C9FF7A56BB005A4C2 -F073DF6552D40E5DCB7A419C620C9127C451EBC2E341CB0649A503FA0E1B38D6 -2BAD504BEEEC35C13F6CB0659E719FF18C523B882EBD74D43D769E1F8A30354F -8B790EAA99668110FE86806BDB239796E9F55A75D110D000C72AB2A430241713 -FD770F84793CD7BC488B8BBD59DA1BE3AAABC83F5E699F2A9D4870C2130502A1 -7CC2368B92CF0D52CB70446A3F634582E2E3D320CFC4353A748C1F1D91C7E4B5 -5ACA209EA88800AB7293FD1E8064B10C1A5829535E26D3C55AF6AD9B4ACE497B -FAB377677F34D002BCDF35C0BBB7DA7833638683788748A16D075E344CE8FF95 -C09C6DCFCCBDB48EC084126BCF94EBDB1856940C67BBB69B8825E91A98F699EF -2E378557776C9788E2A80ABAFE3E7E3BB6C0F32FA770597E37F271C50C10A9B2 -F90C8D80F4BD9F4C1098A306CE886C127946D3DB39C82F31F1CB1B1451FF6D9D -A519AA74E1C7C4797F5E3EB440105C51ACFF85734924C0576E826B210C501232 -456601B688A3EA9494A8F391E1A0BFB7668BF6D0E1B82A47E91BC893E13EA0BC -F8B7BA17D586DEFE3F7C2C72909106A651908325E055DE4F4E5B266D71716474 -56D5010FDC4012A2D659234BA355366C4E737FDFC04B7BECE1C1E16A7158FB27 -21AB8752DBCF8EF4AD11D185D7CE3BD84CD520553F0EE3FFA0AB3D773978A425 -F6C1B4EEE27F127C469005AFE5E07ACF2E438CCA628A77D90C9EAF7072733357 -CCF508A46C831FB96D0033FECE34E85023015A3AAA5E373A790DEB5D743EADBD -7D249F543389FB089F4ECCAEDC4B75034AAF5DF41AB2DB047BE7C9500D34C60D -7F38EC93219FA9C8A96523B981103196DB4D45031BAA1CF5018F3ABA08A547AD -02E77C769762C162C7931A91CED9B33EE6C3BF4E59FF8EFE17A952FF3EAD46A9 -FDB74FFB0FB988DCEFA31ADB3F2A78E7C51BB09504DBBF1D53D96676E5843D8E -DB50E2C89E2FA58295694AC71D7DC610756278F387A7809C8CD27152672314BE -E287E774C2949A13B03BCEBA7A9A1A0B927AC46D8FF136C5B305EC65609F6162 -39908934CA61A225513E658F6B42F15A3621A45191F5437EBECAC64914548C8A -6750FA2C9CC0E3BC40E01A21E3C4BA1707915D34CB78C96F0BCB7E2B10892E71 -174268D0234CFFCD5E60BD7955A151226F4987B67A69D9313CDB1ED0F9F34958 -33F7D16834BB40A6EEC4A5E24F57067FB59FB8D8C9AADFDBD3A897D8C91770CD -D4820C1AE39A2D1AEC8B457DD856F81B3E698CF1FC5191CF60B1A80CC3230B63 -59C1384BD01EA86208DE000C9D3857B3243C95D6B6BA5BC693C539F7F6423205 -1F0FC68EB360DA674569C20FB993449096394328BB9229F93F45ECF5E11371B9 -63C233E1661C8451A3D1E076D243F6E887C82E49E00E2847CC33858370D560A4 -6742B1F48C2EE6D561A6D43BE796A09976E0D69A4A6C346AB895264C96092511 -7527320E9EA8A73250607B09BBE48D3952998435F36FE4D1CF667BC28ABCCD69 -FEE40049B09F1F39B64F3BE92C1EAC9C4661EBC403A69A9180FA83D1D5E590E0 -647AD00FE509B0E9FEB752F85726783978CE98B4AFAD649D9623F41419F9923A -A11729723270E0847AA464AEF74FBC743D8D805322360364E7751743552A0AFF -CCEB847942D9689E9659D15A3D795AEC8782C6EBCE6760E687F87095FCDDEA8B -C4D8FCE65634148638A8DE5797BF21266AD94E363F58DB84561B74CDD8D5FAB3 -59A521598B34720C54C0AFC5B1A415B7E929D6EDCEE9205DAAB716379C29289F -2C1AA7EE0776B1C6B6AFCDED4C6ED7EDFF1AA20523EC52F8332C2C0ABBAC1A2B -DE91AE501079F2A4ECAE93FB93082B1A241AA79C1F7907F8EB3BD528A2353FBE -749B89A4FD00C8C9472446EE4B6F04F5073EA7C2854835FFBA548920108192AC -8CC658B87F249321015CA481B2A5F19156F63C5F7C285E18456D0CF0E1ECABCA -C9702A3DC3911A3B179C837D4849DFEF463B9648AA2CEE8C7B7304B551296AA5 -4E73AFFD0D86AFBBAAEB71082E250627D70CAF3D246867A3676ED1BBBE99F6FD -32BCA350821E0925E99235BE60C72D8270769DBE50CA12BE348D5145598EB0F6 -2EFC2EAFB348EC74C1F9025DEF33772AB3A41D6F8DDE6CC6746701CF75C86B43 -3F9224B633E510BAB613F6EC46A685D32C1C474F3509FC63268C4DF841B9B38E -9CB08A26518FFD1A402D43C079C5603589D578DE2E8225A160625B6A484460CE -5C445FDC1D3A58A982D205C370D86195D988E277F92937BBC9FF72851B0694B4 -D484FE0755962D2C4D81DA0F1F36973CD69765482A7DF0F5E701A3C5045C97FC -09B5DEC1E35BDF033C02B7155B72851ED7A6BFDE12196DB43AFEDADACD52B93D -E6F247F438A11DBF4A6D6CD59834865EF349F87DBB7EBBC5503492F5BAEA9615 -32AB4D318C6D1BB372FB14CFCB4268EF69128DE3FA99379609DF7099E459B557 -E7CFA0A293121A700CCC679D815F0883CFAF64B603C9E588488904267AD3EE3B -9A8F6BED8EF48582F4A420AAE9CC3E0A61EB8D10C816C3091074E3B6345FF4DC -37E1C1597DA71581A9920E9858DAB295178521766178F2141851EF5E455CE390 -4CD16782A04606397A6B4D13303918255700FFC68D83420E3F37437C073DBE9F -C80EC3F7D915376410FC4961F37D73D13268B7E93C8B4F29880B535D14DE1205 -615CCB9BCDB0164F2D9C3E9515BF00C5D4E164A6B495E6A80EA01D3D6226BABE -762982E7B5B74799A15819EDEDFB01B444BA30899AF2498DF31B1198C9115C88 -720C6BFFE2E0F33944274AB36CDEC08D18D00AD8AAB0037680DA8525AD9EBA6D -8847EEEF0F689C466DB5CA6382B52F56FCF8490F2A931B3A71 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMTT9 -%!PS-AdobeFont-1.1: CMTT9 1.0 -%%CreationDate: 1991 Aug 20 16:46:24 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTT9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -end readonly def -/FontName /CMTT9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 33 /exclam put -dup 34 /quotedbl put -dup 35 /numbersign put -dup 37 /percent put -dup 38 /ampersand put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 54 /six put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /less put -dup 61 /equal put -dup 62 /greater put -dup 63 /question put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 91 /bracketleft put -dup 92 /backslash put -dup 93 /bracketright put -dup 95 /underscore put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /braceleft put -dup 124 /bar put -dup 125 /braceright put -dup 126 /asciitilde put -readonly def -/FontBBox{-6 -233 542 698}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E -2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279 -650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35 -F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A -D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E -F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1 -4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A -438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD -BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B -A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641 -AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74 -D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB -CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A -082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980 -9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0 -4BA1EBFAFDBEC531EA1210365091671CE3C86A6D4BC591C37DCC02570042575A -9D24252D6E01A8603753934D7EA5CAC1BE4E5AD2BA047DE8F3983B23A8A1511F -B08D373B69E5076CE4300137B8805EBCC0AAB89BBB312A77835795E3C069322D -42C893A30AD739E2BDD299679B158F7493764F2321E3965141B5ED1C6F4765ED -F46D391A646B30C90002B1C461AEE79E5F094CACCA656CEA3DB921CC5205F328 -A2C69F817061D6C60B121EEE844CA5008F23DF07284565BBEF0CE7F1CF6FEF28 -F076C9A548815E85D9217BB252D3891CEE88E98C74015AD579DAB8A8F3CE74B4 -E054D34D0C8CBD8CD31B76ED594A67C314D947D71132A546EFF9F0A1D5C9EF00 -1935D169FDC0597ED3C84AC306B76F096C76CF2415ED28833BA187E53992D4CF -7989F353CEA37B66136E61631E21C0C94A66DD92E36A668D781331758FCEF642 -0BB4EFC8FB6B340077270EF871B3FA6181714DF7B1C4F31E0A878E8A80F17303 -08125D405932EF6347F2076FAEAD5AD3B6BFD37FBDA386349E86AC43FDC075FE -2F723D59ACA1827B7411FAAFDD192B067D9ADC43837A4AFAA44A9B9977F38A40 -B455394BB37FD42F864D87FC6354472FD07ABCCDB8ADB91920F4499E9FF9CED2 -7BC068A35B1E8F42C1D713435484F507D07BD88FCDC2AD786357212007D929AC -91739C997CF60059723035D8118760650266DE84D67BBFFC8F9160A6047E1872 -543B2E6314994D0EC2239A0B392E4E063B59935CB1D746CAB6A0CEAD5C607BFB -2B8D8BE15CABC61545AE4B0ABF52D5D6D4E79676D54319CF5C372B1620FEE9A9 -ED112E8EB0C9926D241005CA3E0713D7C404A4E36BF2CD40ED1BD929C502977E -5519DE3613A4BE33C2202BD51A2931D1B8DF61D0FE4D579E6F0AFE9F8BCE6B81 -620605D3B24BB4E759D444ADE5D414C358E01BD56077326338059D3E072DFC6B -A73042A5079C5D208C68919BCCB94D915B85FDCFA99307121D906A6644B1E985 -7BC0B72B5AA099B6FE5F136CA1D3858A24B67287A286F3A33A14BE5CC6F58AE3 -BAA95A683081195371180499A2DE681E8953092BC24A9491AC8C12135D697161 -9594262B9062AF226ECA469B31E6D983B52CCD2A3052778B124C897419757544 -95F0A7BB2CEA697A5591108D7C19C0AAD06F64A87F5582E0D48587D39701B3E7 -D9DC742E6C7326E030335E0617736614AE8EBA185F40263E79798C73924DDC32 -19CF344BE4EB06576343FE3E443E2CDBDE0EA7835C0D2D1151B4793C27A1B1C5 -E1AE0233C7A19CC23FA2CD07A3D73B7DB2EF96104D94B2F62DD3FB7277351A9A -52A0778A3C83656B338D3F8951BC5A9BA28002BCF4C4815F119C001F6D656924 -FBED0CD9A28A0A49E200A3683F91A705B6847EBA41E47B65AB0905F91F908157 -0172210E075CB7EAED23A3F51147394606C02F9667A5DD977C4AAA8BD09C9294 -72C2428BD937C93EC6BE3E67DCF4928A2A96115EA1A98D6B06658493C2370E6E -088E8B181E6542974FF1C51ECD7FB084932A9931B33C7ED6DD22C036829979D6 -760B78C1F08BAC053C883BFAE5B90FF2C1DD429AD5613D9EFDB35501069B651E -969E59CD89B214F252D6E704FA00601F2ACC744AD9B38717C0BC0DF1E6C6DE99 -069E1E16FDF9CB81D9EEB02D27AEF5DC382BFD68689EBF58F644C0A3341F0529 -9DC677EB851B300E80519FFBCE90300F2D74198F9A4615C55DFFB10540066F5B -DE4597687BA06A7056467B5B2261ECCAA224BDA8B26FC76939AAEEF3D9F19909 -A639FD5FFC9B7EEA77FB99359A55F776D7AEA05AF8F2A58F3D8D683A75C46D8A -14984758C7DDAC37182186FDA630FA43754CF09E518E7760E073A39220C423B9 -AEA6962C84B7EE1389CB8ACDDA116A15A28D48F630685888C05D40A5E2FC1D5B -A1CA6CB880CC2A3D12E68BECD474AB71B601F84047B8F653DCAB5D752D118A15 -05B46BEFAF68B6575E2C24D26DBAC139A29A218042407609D1DC5382C116A77F -B793FC657596D3BE2FF0A30E64488A8749A6051209AB4C9D723442E1F16E66B2 -EF043314E1DF470B2087E9733337B61438E9E730EF61917F094E067457E52DBC -3CB73A61F5599D3F80BC3A30EE2AED6725574804BE163BDA713BC2E16E8A1A65 -293D12C2191AE91FAC7E94A6C0BFFB3F0870DA9EC1F21A9E69654B72886FB22B -6E603A7F31F327CF361B89E1C88FEB1BF3E537DCC0E82E4FE3CE976FEBFF885C -3070D236A7CBB2BDF557C51A5F28AC6CD527508AD903481254A7737FBA4A0800 -D9A54A384C9E5979020A9609D6190E0C24C4D092C7D0B09370AFA5EE3C372ED1 -C3936F20543165F5D70AA0D4CFE2017239954E617907FD9C72AA9C2FD4C94279 -46DBC2FCF2788F62EA5C8E6B16ED355C14C5DCED3A04E276E22268F7D80DB574 -932937B1DB44D2AAF4B8CBED21BD3DCF7C620B115ACA9BF698AAC602BD0BEB65 -25890BCDB375DDA7C8807E43E534B849C21FCB75BF960ABBAD8561902C242DFC -B2D3AA455524985FAE0CBBC9839BA84D77B3EC5B38D378F4C203AA48BBBB9757 -809648484684C95DF804ED2D29F672E4895BE54B821FD25B6C57EFD164DB0E5C -7D178E57DE47D2376AACB150C60D986AA7C3B23392B7A3C7C8D89F86C98BBF80 -4CB51559D210251588340AA851DA3176CCFA61F8AF643A6E52E4109F059EFABA -3973E580FBFBD2E75B73D7FF70C13D1394E187EFA4AF831B5A6876B3748A1CFC -2F642F3829F5699C0DCB3CA99B2FC34176C6FAA943813CAA6A52CB170E87A1F0 -E02DF9C1243E7B4955B4380B6D8800E832E2F799FF72F2C0A3A373F21C43207B -68A816147A46D8B4070E96EECE7AB0FC949D0400EBF6232EA7CC9A81BDB0F7B0 -886D5A1316A9636D779748A7D8E70B36A3AB65967C3258621100E0D6675376B9 -974959879BF814EDE2E764C84077561C357D9B427C3689243BB73C1B49D69B1A -39379E3E0C57C9ED1D8DCA2C2EDD70652020773518B16AF171A14C77720EE361 -B3E79BA06B7B4182A2148356F0D7038E6CE2545E13142C93D3F20F430A927F96 -4902B1A00579EAD4B2EFB6E7BFD074D41A013624A088412D9E961509F1E0D60C -BDAF336DF7FE2240A21A1C16FB2E112A550BB4700A61918AC6A21FBAF2EA2ADC -828F356BC995BCE890CF78D8F0071DBBC47600589A65AB58D5F3ED6F0EFE2C09 -F8182026A24F645830A19B5A14C4DE5337ABECE46CE37EB86D21C6B7944F8C65 -BBB716DFCFB8E7B3885B85D376A69E5EE7A8F7029F6C89E4C442517F66DE9353 -BBE7C67FED5D1BF039960B1169BCB617A99526E7920BBFDCA33E11D279CD8AA6 -A7889AF9C8AA7ACD334E3AE2A4E48C33F44BCC96F3D78143BEAEF0EC9FA357BA -83153E31EC162FB03998063DDE15DA5F51B261CBFC82690C0D4BEFCFAA5FCFFC -E138EBEE9F4DA0CE076805D2FFD37586F1F45E7DFB68349C4173BC7996794EED -EC2673224C40D2E0FFF9707F479745EA603BF93F6A99EFE10C7F449098DFE0E4 -0089BC6533A317F51A4BC0EAD3314DA8CAD24188DF1C6570C6E6DF36FA45ECC1 -39DDF72BE39B4A5ECA23D5E09DD856C10F0D3F25D78F8478D57669085B1D8124 -37C0E20DFF027B15614458F86E1BA3C655448F2FC6AFBDF333568F3704149C63 -E394A7F98322B15FFC5DA905ACCE397BD928054E48ABC3DA121B0A182555A109 -F014E0734D5AAF5858048F49F0B324DC77E060417B54F3A7060DE4475774C5FC -77E7F583918AFB6E7C6E5AF0FF6708EA61ACF225DC79FB5B19AD288B4E2174E4 -A480A30FAB2617A62FA296825CF53C8EBEED170F11EFD6D4917770D273604800 -F384DB40581569C5041992F4EFF39079E8925294D26DFA83B091457E1E8B8B26 -3BC281683D4C19E29701661EE43DB860177E24FE50572FF9B44186165ADCE2EB -FCC16E4D41DA9B0495133941815AD4D559F070B3E05AADC78D01CE604B260AEC -6508DEFC3661719C04EA4F348B21BDD60CDA9EA543BCE78C2B4C85E870DB0B13 -2FA544ACABC56E8ADDA9CBE7FD8FA934C9AE1E0E998402A2CA6EF950A722F550 -6817C340EEAF4AB987C0AEF640BB2B739F5B21A96ACA55DD1DFC43F8CF9D1899 -FDCA0A5D55D2C9F4CF0F738C1D60A216E5ABE76451FD310CE60E485512139FE1 -DAABE87F8619669746C80D3306B8B6BE040F8C15ED2A69191180F3C887C847FA -F3DD9FECE9207774CA07602D32096844F681AD05B79A59EE082B9D70558E9B0D -9C9CDB807773E6EC3EB9BC15100628F961500082D34F2037851BB50546EB32A9 -E2ACE8E919B3A4B0CDC3B772B4670E3D8A23AA5CB70B8887D43C937BDA694362 -630F09DD0D5D759FC52D6464657CB8694E67B021DECF63394ABA00FC5294B482 -E7986938C5A302B41370FAB777A167E19F2615EEEA0B4334C5B644AFEC30FD84 -C61FC154A0442DE42606F4F86BFFBB296FD58EA4C61A266913A052F64E389B39 -00ACF232A472E72DFA9F75DEDC442D9D7BE5FC1E029E6448113EDD17E8F21A0E -C13680609691B776763A537A85F87E4B0AED171C24151F72D63A5DE9A4407FC1 -FDD0FB731C8D37664BC51E050936D73920ACE8F3489470C75732A55C5147302B -1033634FC4BFA63E857E8FCA328E9B7F05D0C0B52627F01AADCD3472281E0872 -F970229A6A64457F49A9BAD409B2FB60B683472212BBB0D65421F72CF3F1C4C5 -3085DB6D43BD7101985C6AED5F847C95EE7C3BC5F25CED1F90BD73A572CA2870 -3207ECA293318FFDAEB6E62B00BF3BF8A74134819BCF8C7ED7F381B3483D150D -BEB0604C226B03E4DE88D7C58EC8C4DB6BF785E03E0381922D29E6AA35979AC4 -0DEBCACC1748EED7BDC1188F32C833D10544CE363D8BA4C1BAEDCB8533BC3C87 -C13A72E1B196E4FF17E364F4161416D54E3E4C81A9F195D0FD825525D5F9EF69 -723E889D8C82E3E22078A8E430B2940329E917728A91D41D834A0B8A6AB146DE -080B33DD7D54BA206BD577952573EABD08BB0028F76DAFD32E5645A0020A71E2 -3503F599EB37E59502A3D87D16BB530007B7A5A01883BBD7755AE618DBA3AF0E -BDC0013822545D40D40ACC23DF07BDBB0AFFAD46FFAA0082AEC302A2A540A30E -DC3DA64D8681E01F744C06E7BD019711CE1AA9C34D60F8CEE96793C3477131AE -672C0FA34AAD8BC6FF10B2D986506E07E0B93CE8AF15BB6F88C2E0F7525F5275 -6279AB8036BD871B0569E924AB1EF44496ECDA2456258128A8875F9C7379A65B -A6E3B1B1B4F7D839E31E682FB9AF51D0F5E16C8C8DDAE9373AFEAE392FFAB643 -8B779858DCFC4D6C917ACD3B5DA3E3BCB41C5F489925D45398709BB202082527 -2CE1113EE58B9ABBE345E1E0B81326A0B5F6D8673F8D916A10D49E17E6A9EE6B -A49DEE9CE9341D60BDCFE7C5E23F2ACE74E2410C8D7AA08B8C87934B7E25A293 -2C009BCF429D4E5855AC07C8BE039BE1C43D88EFC374C5D1D4DD0897CC12C4D6 -832E832670B3AC8810A742D19F2753E07C3FCD214BFD159E68EC7C70777F2623 -FB5A5A493B76C0557970D7D61776B9B10A62CABBFF26AD4BD31FD8B7C7339509 -6AD519595E5D9453EF513F9C8D081D9CDE9BA95864439DBB51215A3750B4BD6B -8224D95966A2A7DE8643A3A4BB25B6D36C4D13832C3596C141B9687C783B42A5 -53393CDAA387B6E5BBD02F8A0EDC987AB79972AA7459833058891202CCB89B55 -8C02A10B0E4B543BBB0940791E72A75AE7F88F74FF4C4F22B0F130D97E38D815 -9CA982109A3D84B7ECB8704F7C553FB8BC64BC61565E48BCBB6F6A2CCC1F5067 -32217F7610347DF4849B4712E02D06908673117D7CC67598DD3B7EEE5C9028C7 -A6E32BD23E40AC3B5CA11E251BC9BBA74A37B4C6E1140555258C09DF0384F318 -8005E822A6801271634B6682938A4265737359B176A9AC91F38C4CC0BBE42205 -9C7896B48BCCA264B690491FF320917C8435649EDE509019E0D346DE9B241C31 -05D5401B68D63395F453D3EFC344948A37859ECF58BFC6B5834D2AE39DDBCB00 -56F9BE5115B8972A8AE8626234CE7505956BD6BF328F4AA09F2FD5B04A6B9273 -536DD8DE5166569A60ADCF27797C39B19DCCA6C928DC8A27C778D57405D77B57 -79A36660CB92D8E0215225F7D0B46DACF80CCBBD1020245B7C728D7F581C5412 -97191889A4199ABE2A0D261F86E5C1004378153AB6DAF5948D7CC2C0D4356B62 -86BCE32439DFDD30F5BAB2DCAF3855E6BB025737CE3FFEB1B2124AA5BE3084C2 -BCF2BC8C54212B75F5E741B66E49D36E51109007076B446C65A112181B42E721 -FF95011DBA1ED7C3349C889A4F6A55C21878647AE8B3615A87D3619057E14471 -04B5D5552CB886808BBC66B2CC86D7C040104A984F3B4E7B28A85FA0E04D83E6 -16877535A40F14FA5E2661D7209212D57B271F009CBB11F4C5096057A940C68D -A2A5D5F2FFE3ADD8AC4B56D73FDF49A8F8C8E253971B74F5F97C9397B6273D92 -1A684C24845A9988D993D26FDD816463B8DC021381FE041E8B39FE1756FD9ACD -93EAF3BD313EFE4334BAC1D5C0BAC7CD96B54CDAC088761FC4A712693AD9E27C -B80042A35B024508831EF37789426A50F7729887A6136623FC72C79EFF02AF92 -C16EEA04C8BDED4E36F7168A6663943677F201B42C6FEABA4451E656F125A768 -71B87E37395283DA33EFBC32EC3CF594F2855934501511D0407F0927D6AD83EF -EE8ACC2218706BBC1EF73DE12A30012DB5AB7585A1111DF2F806A1454C0E027F -7F8A1A20C11F63D5D819E0880D0E0D5FA865CAA0A6AD24705F484CBBE6112CFC -798587925A0B7A7DF5D0A6040B86EB87AC0D70A5B59A109A3BF7EC528E585CB7 -32403F77C45DA7A4734810421F50C25C72FF0F8414F5335789CB749E4D20D251 -2924278C9D4E3ABF5F266A56BECE755E5318C0B37F7F058CE78573914BCFD5D4 -6B147AE4E632C737C9F399F3415914DD3C57C05C697CA13DEF0696402444382E -42257875079560216373E8D049C53D40CDC962D910F62A1D31AD6BE38675D993 -1CC639034FCCB16F47BC2646F9AB7C9A0EC6A6F8C5CF7C5CE4F48907B3734A94 -66E1538A7CCA5A25962D3718DAD9413D4A83FC1D771ADA62BBA18B61E5C316AC -5A5FD60E465957FB57356D489B75BECAD72BE7D8B00E698C638C8559505052FE -BAAAC08FFC1401C6220BD743C1DE9BDD4394EC43301B1286E309E82064C9109D -86EDD1B9463464DD9802CDF87F2C69BDC36FD716070106836B1F094395A237FD -708CF182D7AA177F8035BF20112A89BFB7C91782794BABA06AE5EAE132A409D5 -5495ACD3CC44115FEE36AC1795E5FFB697D5FFDE200CAE0D9F05AA17C290CEE8 -50D4C49C9D454C5B0478E34594C670D68D07AFC5F43DA79BE491AEA1E9580198 -6D1866D7C18D3724BB1E816138866C7365CEE09A417E22DE299410FA84903F08 -930044BD6190BAF3EAB5E6EAF5B9D1ACCD1E0E815842912B294B0AC8D005A107 -699A8D4EA623166AA426DBBE2C40CC591E079DBC45FFF20601D117CA0A350F63 -BC78A120D41C128945530D42C2EF749883C3398605C2FAADE077185E5C00397E -06C2A11F14652CE4C4EB0D2F2D03574FB8B2ACC245F8A574DD8179ADFDC0E33E -CD6485343FDA2B9B93A78A7E5A66E2F124CF7FDA4E7E1ED950CC26252B75F48A -245E6276D3B2B57846E33BE57F199E5E8F2CC4FFC5C8AC892380A74A34370773 -D5545F0866CCB2ADDFFA0DB418FA6603242743E57A6B3865C91D1D2E58C90368 -1D1FDF0EA982DE83FB982AEBEF6B9C6C892A84E31B8F01E789F13D3897594C50 -3CA25239865731A70449CB6F5FB17E27671156D9B5CDEFF26CACDB53A6FDBDC6 -94D182A742DE0A6BA0A94A97285FABBB33978BCA5CACCDA547B5E2B94CF5888E -F1FE5B08E538E181BEA643F837F2C8ECF2F037AE2E3BC799736B872356ED8540 -08132496E96093F6E54D81C839110668811AD8EB85FCCFE57BDA05B3BB36C49D -493B8FBDEEED0A75EA7725F47C88877D3203463EECA12DD006FB114ED670CC01 -5B833EA5B7A2653F6EDE65BB4E4814462CF57D6DA21FCB31AB047B44AE237520 -A0985C465901BFC451154B1EBEBEA93A52426A431EEB4E5B67F09CFBED73847C -5DF607D9B0F652E99D385AE147EB9A4CBC1BA1F8FC0D9BD0950FBB53A0E125EC -5D309660F53D33CBE34F9A8DAB9B6ACC925FA8D5E44D4A925E832230A2E2AED9 -70BF7D0E5F72FFF045730EE23559EDF57276C359D7F4FEA17169C003D8913B18 -ECAD8580AE3216DA2C272665B7E884F1A324A42C3B7198AEB0CA29CC507F436A -0E2F3C844CDDB13A7F08BC02EECE4654B65EA5260C79E6D765BA727C67A05F2C -E859BFF7257A98E7417C6028C65162050D75BCD3204C134033F1F0238979E3BD -16CC87AC37891FBF6CDFEA5F597C580DF2B97F40B30F1C0C3BE5BFE17F50E9BE -649A7176012DE190C87A9A121E0D6FFF8AF785A9296F870CAC751D6AB615142B -F0906CA484D5C6C5FFAA3AB1172121115DC0D6320050D821E127842FDC76E794 -BD15784EF5BA1F9744A5C7E5F5B1C13C8F6A589CE09E34E84E32BE17E8F0A7DB -0EC8A2DF7B42875183FD7203C3648F71CE2E922A523C4992FCF2B3B006EFD0F0 -80C915358A2840CAC25EE98C63066F544867C5DA5D0B38972A30407040210E1C -6521116F8934A475CFEC2EF86FBC3B6D4E505859FAD7EE1C146ADF6AD5BD4153 -9A74388B6E82534EEF4D974959E1817C79F5ADF22EB9FD06B8FD1F3AA33AF4AB -EA293D18517B8E3BB1B188FA33216D2287C8B3B76BB1E1F0B57CEBBC7BC4A33B -241FDC73F1462AE72C85F106C8DCD6258F98522D7F679770931D8571D1ABE54D -4D7D7769C2DC95F8D76C00E43752C9B9EB6728CC52FAD9F0F970039C806001F1 -1F7B6913ED4DA7DC3354C8AA50396ADF00244F235947497731EEC97B62CEC45A -314626A50BA9A651A2DFB2CCB98E267B4B99C4444BBE65B685AF3F75E3EE1823 -3F342FDA1D96D4436C250B2CEC024297689BA42EC47976147E5249DF44D211D2 -A115101B84AC60D85C6F4E0B0FFE40718828EBE248D3528F576A7B09327BEBF2 -75F1C0CA1493627C8CA4CCC318B4DDDE39D19DDE3A3512F37975D6607D13E890 -46B2FC2C190D6BD0FDD3DB46E0828E6FE14B0D4D05004A39742BB0C739771A79 -30FB99D67E3ED9C6D5945CB68CC07445F2814BFEA35E6EC66503F72BDE2FC89C -5AB15BB82D3621AACFB83229AD75D7BABAE812DA050256DBEA32811132BBD3AE -30705DAD3CC04FB369577D6C6A47234D64FB4B65EFE732507D634C104A6D7ED5 -011925FCED5E9B0209C1A6FC7E2241B5AC0137C9B02958DC49BF1ABEB4510EEF -9CE5F52B8DADDDD7E2DC8239883D8E464E1485CF91F86EBA1F05C63EA0DB7D70 -5845A5CD291C4A7DFCFA0485F322E6F6169370B901BDA83074E03E3A7DEF6A51 -D747A4CA0DA80780E5C7750FAB43DCF65825CAF4F1384E732A82B41B7BC10D1A -4DF2D164ECBB5A412A2F661AA9EA5A830B9B9FFA9BA28F7C77B4B44630582D76 -21729619FBE1855B765AAC1D1FC9F210015761110204A1DD1454BC2083E0C0B5 -302ACC80661F07A4E7A383D4504765F1BBA6453656EF433B057745CD4B3188E7 -80B1D64743A3D8D4C833DFDF1F7BE62DCA2E8F19B2E6B42B5824D9DCE4D25169 -B1ECD48AA770DF10B8CDAF0C052B74FA492C8F1F32B8F6653AB71E89C6AC861A -17FC1C2521C3F13D51C8F3E8A194ECEB65D6E378DF77CA59261D89C22F447ABF -F32B364C3317B10D7D4BB125ED13D2652628BB000C93FC0858927502959A08DA -7D7DED2FB05F67DC4C8FD57FF0557DFB41B3B64B70E6CD4CC2BB1A93A9871C95 -8AECE589604D2728AC560357447712D6122A07A718A120192A05C60ACD76AE12 -A770F2BA949E7AEBDABB82DF856FC1B083D94A4F33E59133FC5852C372B3643C -9C9FBCEC3842BE87407FFBCC197CEED5288EC521F8A9FAFFEE7E621ED6F7C4D2 -018B324E40D9DA379D44EA69CCAC6F6AC4B60496E1516EBEA89C3C71154769D5 -2D2DA6E22735EDAA07836CA0D80C75E746A5E10352C7EE38B7194AA011DE3CE4 -B0413B424160BEA8D036BBABB5F6605AB502A8E025ED1DB50854EB564A7F2EBB -20A7D53E060CA39C4DE5031CB1B559F693F8DBDA03621F8F6082C8A23FC06609 -686E9D71059660B2CDD0D87E76EF4F72868347621992CE997D5BCFFD098369EA -D5D393857D30B13A570FA6C7DC6EC565DB0CA5CF839B7F775D14AD508C52C5BE -68CD329DD680503B8E76153A134414DF249A260C80D420E6F58FE267D10C3075 -5BA504D55FADCB03FB567111B64C5A307047607042D3BE73070A6C41A2D5F430 -A02548F6722C56FD30A0A6D29380AAB46B0A3F0CAFA020D5CA4DAFF00B73A08C -568A14A89BC0DD190355AD8F346A5388EE11B5E814C087DF6BA4F2A2A3857706 -0A5DBE5A2FE2E5EF391238BDD884EDF8DA3161988BAD084968492F750BF85D97 -88901D90F27413763D1902690CA542CAB1A11FD7FC392365B20DECFC51642389 -F2E82AE2B0815F2E6D642AC005F9D919D27FA43164D322F44A1FF72811EA9E91 -CBEC140B38E52320B3C2A3E99E12E10CE5B416CD56AB3602595297FC4CB848B9 -8945B09267554B9810986AB04EE880C31B33DD65241ADFF147AD5FB644E98775 -6CCD3DCF3791960CCF51C263C36BD3CD0DE61A0FA8700F94117F8307FA253427 -E64AB799D6CE27239FE3BED969134A380458D4869F9A3D23DD026B21222ED323 -BF0C653347B5D80A1DB74D36CC658EF7DF7049E43E109E9FA712CAF4BF60B32D -E82833CD3B0A264043E27F8A4BD73658FF982D2B7DC1813732714C8F3E07020D -4D729A492CFE3E9F1F4BBC73F5075B25DA735CDAABB9929DFA59CAF06FB32A6B -0DBE4039E516EAFA6D4211397F55CBA368286AF6533707AE9C7FA9C92B3980F2 -6D535BFD1ABDAD8F05B41280069A5ABC2C10E6071891E433C372F736A4F82DBF -A442724B8CA4D1AB913B61CB402BF3638124FCBEED4775219ED8FFE18F26FA11 -46996E807D8F0878537A5E0B202F483ADDEC049817341890CA0515BA9B50EAC0 -D9CF13366E88F2729552BCE9188866A87E084CCC6BE773EC0DB26EF7C84687EA -CB90DFD88A492C7A8A495018375B4FFE2D8A1D2BCAE6BBB4239EF32990ABD96B -9D1FFE94585FAD705AF2C7C5D09F2410536B7BC0F693D2C90BD10E6D1F21F0EA -61B449C48AF9D8DF6B8C40CF3BF5D7AE960ADEE9031B281745FD7E0F2A1C2067 -8BB23277FE5812392A125282235B1CA921BC6D8626994432EA40224D1BBF90C4 -AF80AE41EFA1F501CF0AE7C8CC1AD3EA097F6512E19B1977313B2132300CE351 -14A1B7CF795537B74D83202ABC1F30E246439CDC6853E0E16AA67DE68F91104D -C857A19FD19266774A862AC4EFC6B8012E3734599BF62A2A10987D8E66A12EB9 -0181C1AA5029214BA6C1CE72932E156297EE549BDFE0E400EEBD5AD3E30FA623 -9BD16275D2C673DD757D458FC58814703E0A310658CB3492BC286E8BCEA52119 -4D2DBF77AD22E9E6653DC9B5ABAE4F1699B0118C9328DED651229B82F9C2E674 -8039384372131D1F9C6D3C552ED0E55E88ECC96BFF158D0E13E5BC5C2B893943 -4EB62EB18C0060496641E9CEE93B02E7E5FC55717912E69C015F689EAF43994C -5564E5A4BA753C26315BB868BFD63D9FDC6366679ED1E867FF3527B9A108C907 -FEB1E5BE95D81A49CB46A927F47AEBAD027D728F4869488F3C2EB32A91BEEEC2 -57C0FC84416812685BC269B819650C63D7E89A7B400655A7B9937D57E1B3D66E -CEBB750F0B0EC52CB33C32672980674F983E8314C49D634C541015D18A602B9E -3716039734F351A43C35486F6AE7E4F5E3EF509359AF01F32CE9992AB4AF5876 -24FC19965F574FDAC74535F0D24D5993DD90BE1B308F4D5C9EBF21A0F094FCB1 -0D583DD7B3C56D9D2A5C620E8B993838E73A85C6783AD86ED94A29AEFA298CDF -633CCFB27D5BF4F84F709B5801051BC0088ECA63E6D02D4EC74C2CDABAE14713 -4E6D6FFE4B4F152D14AA973ECE9B09DF78D4BE6B5FB62B1876B1AE7D7F94F61A -D82296959CE171CDE1F5CEEC8DE98A8DB770C428373202AD265DBC8DA00AF665 -15057EAC78B3CAFCE9409D1675D729EAF2C7200FA1B20B372C223DA8C6ACF2BB -2AF4D61985A52DCA98AB61055DCE71CD5C51A5B7AFC46763FE243F1895F8F915 -CE65F0F6833316F5B8294A9790B8F9DEA0F7B2BEB452CED4662B4CDC816261B3 -FB1FCFB4D6A2336EB40408ACE3514509AE32208BBCD952F54AF37DEAA18F44A2 -77AEFD2E07027EFC96B9A22B30FE1D05AD72A617B2C51BA0B3E37F91548AD129 -0A1674D8F8E36D190690E922D3E5D4A11F4A8C1534281EDF1E8AE1D4E7D3DF52 -9A7D82B0D6E73A6A2204561967132AD8150C71A83889EF70744D19C8D2A50989 -1AA29A536DF571345ACA92F4C0767D0AC410561E401FC8E4586A15BB59EF78C8 -307CAF4461BFCE1E5A42DB8505EC1E6E235CC7286966008FE81D8AD2E426E78E -3E9B87BB29B224148F8425AA1B8EBCAFC7070A950920D5F81E498204B5068AD2 -317F664F717AE214FEF8C91DA5F834E7527362B9691B0939A917CAB856831BA7 -AF3268CB4364E8D2826BA3EAD0718EF3E96ECFCF5DE78DC519547EA0ACE1C2A4 -81CD9E1B5613742DB05BBBFD2ABE366A10FD8D90218D738BB34C83A1E4CFBEC5 -D4F8497FAAB97730B21AFB5830D926F2AD6EC81913418DFCAF52393CCE81D23C -E44A38E63AA13F0B05625BE4D681EFFBCBA426B188D722EEF511F5F710988231 -7C89CA1D041C877951BD3666F39CF1E60AFD70237C94DCE0AD24C9A8E3E0E55C -DEAA44D7A654B0DC255B6D1CCDB66B495705334B509879AB4CCBD9F388DEFEF6 -C135B0875658508E2CEF5AB1B1B67EDD2D9B2D8DAF3279B13D088A1A8E9BD07E -9E3E08CEFA9EC5647AA804D126ABE371F5BFE161A7705A4EAC1F41057D0F2036 -B7001AFE5601544C76385797136B91E24364D630AA76DCE510555A0F2F9C3C1F -21AB51814B579459EF58FA80853642BD9B5C61316A44BBBE61C5924D6E2D5E80 -923558A516092C344820B2FDA303695788847B85F382C9AC7356A19B8645F449 -80B5B0A28B148D3B9FF349A97F43FDB668045D055C6F58C3921A8A3FC3DE40B7 -06EEC36786201502FE29A5C31C926E372D0139D2957C7583CF44D2FABF004DA2 -5B613B628210876D18DCA2A9DE7B391027451052B2A09C4153BA2455467BF428 -0DD26997F39C20F41DB43DEFC5880A9FC2987F6E70614403DAABB926ABEEFCB0 -36E2F7B53B9E0AFD3B17944413D3BF32423D4985E540358EBD3CF30B2258E593 -F4154FDB13A2459F51CF66E30973D066ED04C9A184884AC896224C7E8FECC19C -36F83B76826342A517FCDEF4E311B8677C3C3725B048779A498824D9C59952F9 -5D3C35A9C1F46CA02D096152C3AC5B909EB015AA346B72AF75F1DA75052280A6 -9972EE1E02B403D8FA54E303E2795EE7CF99F47949AC1BA8EC0758431E254BD9 -142AD913FABEFC32B5869812F13768D9DB84A92B5C7FF5E36DA2E75121053294 -A32350523F7B1DFFCF898CBA2C6D5963101F5072FA3A22B4B1DFC952160DF160 -77E432EBE4D3789DCC63C6DD72FD93F676E12E0B21ECB97E2D3017103B98D354 -A7272639DDF42E8260DD82A1FEBC06658575B3AC3CB95C51C7725CC878EE4CFE -2D22057854CB47750ED829F15AA969B129A159188CA695DECA2A7416FD750656 -6E38F5CFE680480C8E35FA71CA8879679C5F257BA9708E48ED5ECB8B7C01FC88 -411E872B7F77DFD7CEE57F08811B89DD7671F76BBFB15573074119CF723359EE -3B1C3B2098F3C096EFDE8DDCD1F216333AD4746D953727FFF976125BD1B4C887 -79D9432C118F5D401B427A3CDE48CC5DA66AD31270AF198330E55F75B6D4144C -EFE163FE0025D5BE51D31C881913DCA8A0E7642A1C052A427CCDB71D0D5026C5 -F0DB66B54EE0281A4EE924FC5C803B8D86969793D0CD6D8E359A7FE2391CBDBE -CA9D350217AE564AEAD14139A46C74A780E45BB11986160B42545247A0205F53 -A4EAE8A5C5C39C4C0EBD18715CA92BF4D9AEAE8870C90B9AD239ED31E291C0D5 -DA1B46F9D15B3D0AD0B83281AC2D9C742824BD66B1435AD7EAD5FECEBB47BC6F -354C4271653238ACFE8C3732C575FD574AE3710BEB0EE8A177AB06E715306A3F -6F3FFE555A2D1FE8832CE1F7E34F2D9D25F6CB04002E382E134D9E2714401A03 -8BA326501CD838F7CB060A568C339131F0239DF4CAF57B0F70FEF6E18B229CB6 -7E6B90D2EFE57C053763CF058D472CFA3480CC83F8754DDD38DB5779E0A10020 -4E1D8DB91FB515A5F62353F35333FE72FF99677B51073A7C62854A1A4F6447F4 -6A3D422DAFBDEA495979480E19744FA0176034AABE57E98540A60990F7CD0B31 -0F49891566AED89BC704950DBE56C594F89607F7189B690AD41E36E8EB3F62D2 -5F4AB75E8B5A4AD772654957C02510A7332DF9E0FEE697BF5D3B0A027FC222C5 -774121ECF991C3B55755AF3F448C1605A75DD7955794BD090490BE50A6628995 -1C2F50B25F50347739AAEE9709D2295B8542008C4C6C7F42EC7F1006E50C42AC -9A6DFEBDFE541798C9FBF291DE1EBC14407349300A1266184D165BA45B1895F4 -B659CF40733DB9C6169085DC61D96BEFF0291572557BB39B205970F98EAD6E8E -F3CC19E1DD13547AD53678815EFDA7977BE7928E28ABECFDB71A762ED37B6D3A -9FCC95659715C47317885001DD00261D3AD0E62AB66BE5879427B578F155BF43 -7FB452A8997B4C032170B4AC96B1503C16877FCD5141F0CD1F2C0A265755C548 -FAB6C2B9AFBB90405781AFEFAAB65A172DDF50EC77DB40BCF2C3499B34C44E07 -8E56763B50FFB88985249DC698CC7A338B297DB6FEBC7016B580BC019E18EE78 -F2243FE7B78722F158AACE4B7CBF3F631CD38A49934FD79862B78882381C2CA7 -B52B19877F148B24E336A1105C26CF30AB1091552C997CF4C58F8E3C784448BE -20CEAE23DF2353DE4126E2A541AACFB51871150ECE62F031CA1F6C62D744AB72 -9374B112537F04B3C8B8836724BE1623F5FB11EB83BFB86CDAC9C2D1A6BA4DDE -5B8A0D52D04FB27A50AEDEC8D2ADE5C92869C1714180021DC255EC9293C553F2 -6D0EBDC24351CC3CA028E632236F5F33E659F8666CF0E991B210985EC7BD45D2 -652A601686699EDE09404A423BA6269580394F8C416D924FE5553EACD0580478 -981D4BA194288402277F5EB318C5607570C1C13D7C05B094E996C6B204532541 -58804F66117E1BAFA3FC190641E5E973685F1199E93BA30B2E21E5E55BA9AA1B -8B23A4EEC8E48F3BF1DB8D2A7D2605C08668B155F7ECAFCEBEBBBAD52BD81D3D -6AA3DA75C1070CE27A115FF4CA9A53AE9BEE0BE1688526D5300A853D8E1BB518 -FD612A88DB8C1373F33E0327A5F96A6A949A1A1057F7D10ECEAA6A30737FD126 -8DA97AD95733503C77DC89565C339410019F51910A7A387D9294933B70F4B995 -2C85427E083438743D4B121E184A294CF8B68F60441E89B2769218F1AB2FE409 -127494C22BA1B86A19617C8BE730B10839A73965EC81EA26410821C88E1AF123 -DF47BE758A311E9DB30713C58EB11CB21228C37F8124BAA72B4A257FC7A3BE2F -5DE92314C63D6C29EF43679AE1A6AA2592A8B8F4D261C3913B28C15860A48C61 -FB6082B4CEAF34D8DD48C5477C9C8FB7BE56223157819D5C4FD194AC7DD12CBA -CF445BDB1CEBA5521A71CC528B8E9A03B6D7E8484B033858C27185EAB563D12D -68E5781E3C32A751A3BDC8AA61E2D12A30EBB63B0E65D0C094EBA423CA4F93E3 -4295EA088659ADFCF8D4C04E1DA8662AC56AFB1DABF0F02A4202FAB2834BE0AA -57C78548AFE9CEB728B466673B8281412C3543A74249CF3BE96290741D34C73F -0C8A0BDDE88A751B6C92EE0727A149C4E4897C32464A04F4A9850034802B5B61 -106771D35A0F38A8CCE154ECC6316765A978DB5FBBC40364ED3019277501B797 -B3A82E1A24D0C93B275F62BB22CB13A0870C63E5C17DA91D72A70AE8D8A9263B -F4B11E811DB061322330995DAE4BE9CC77FB8D52EFC409382786DAE1C5FBD89B -976E2C2B2A7EF03994220A47412072DB4B6744A3AF3C8BB7DA94A302A122D2B9 -69603F4996EA7A90F365DE594E09D54B156B5BC62108199052482EFBA2B9509B -80B98030C8A598DF3DD137A980965B6AD38BB36E90468724D3BEBC97470422DE -62D043A0682D30DF47CA36917EE1166E48C178D9EEFC9E5109B0889B3ED61E36 -8FE08EFE67A24856A8E298DE721AA064F68BF38D8FED193A93950DF9D83CE52A -4C70BADEB5626DCC240C798A57E365897DB847E8A1141D2B4A7B34D726D6D9E4 -D56B5D4312D5AC01293A55362A6A7AE6E3221CDE683ABE93D54C8E0421999CBE -982FFCD77D88A7A54874D9E1B3802295683215A15B34F0E6646EF35698253F92 -C9BD94E6CD758647558A130A7F415C32DE5ACF3E829E432FEF4400C177C96C2A -6E43AB236B9E4EBFE4579B08B02FEBA3660406FD3157E1B61634F066FEB313EE -10567E0E52F0445CE2A072A3D4E083DBD64DA04A1EBB2B0D6D131E85FAEB529B -740879214E838CEE99F5E1368B2DC1938A97D9326758B481FCF4C97BDAB3EF68 -25F79B7C6C5CB408BE2BB366D484B258656E3C070D7880BDC1136303A72E2459 -878E53FFD9BB034A84111A2859FF255244E202F05AC5EBA37F8B352A592E14BD -7913DA80C69A0CA65F25BB70783BC3AE556167556B4C5E382F0B84462EE0A51C -1C25042F6893E1D1EAFA8E71953AC764C7473D906E5CD33BAC2A1D0D594B5B51 -446884767B53AC97229DC035CC5A02FAC222AF9D9D4F2F5B0A5530AA6C5FE06D -999D45751D06754600BEE6A778B77CCFD4E00573A1CF1B8169BE1A281FBADE26 -11EDDE9ADC6E0898235D656E6DD0F8966B43622F6AC7904DF39359EE0F3FF7E6 -BFDCCC2480ED79BB17E43D5BB79D0654AD92A5F3DEB90C8AAF2008F8263EDF33 -FAD8329E487A7F31BA46C3F3DD6220153131B305EFD23C10908728A86FA57F22 -47C7A224F7A0E0776BB8A4FF7E2159E7DC61785970FA25ABEB7B11C100E49175 -2EE8346B59150535375D99588830D943FB79CC7D076246EACA26055990D7C8D6 -BB8928AF10FB92F769F2F85DB4280D8F7B39ECDA06C8E18FDF5B6ED0C1E5299A -0C219BC1118AFA68A020D8514835CE357A090DCD39741CBA75BE62ABDE92E2CF -88CD97318B616EF0D6B11A21502354FC9E69A1D4BADA349A6D3D79798B694B2E -8C44A6C31B8348EE672D092B061529EE178739133BF57C766BC3F49B6AE7C62B -781B240959F3275802518F210685EA431490994BCB0CA2ECAECA38F24EE26AF3 -0A4C54E8270196C452F504F9F9213C5B0224F6A0AE1C690338CF83937300C96C -77D4241CB4C0F852E0ADB5AE3E8A456A5B749652621531E5976DBA5BE091A3D9 -6BA18D0F277086B0D773556F6DF40271C8038B3CEE459794AB12FE3A6037C850 -C9C4F1CD1618B53F7A4976BF426288C7D2A41180EB090C9421E8BED372E8EE3F -C4D4C5ACE2590766FBF42B79ABAEE8AA572820C4 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSS10 -%!PS-AdobeFont-1.1: CMSS10 1.0 -%%CreationDate: 1991 Aug 20 17:33:34 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSS10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMSS10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 40 /parenleft put -dup 41 /parenright put -readonly def -/FontBBox{-61 -250 999 759}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9 -D198C03874B5E6F8FBF4922065A92BC3E66D05DE53971CB1424510E892442858 -D69CE1F76E4DA76C87C763A4B2FE36321E54B1328C9155B8ED6361855A151723 -3386AEA3D042B8D89C8C0E9A33E5DF3B466F7BB8C2C8A4ED4CDAFF55FC6D3EE6 -0AF2CEBFC1AC3A6E6692F8BB81F82D86BAE85016AD62FCB05467082C2E5AD348 -44D1439C2B59F65590E57CA0DE481A7A34E79931B1513C4C30156170409A4BB8 -46D412D1DAF88AD30722F12DBCA1CCC6B4BCC28D06B0D29149DDEC520C8FBA13 -6B82E2E1790F00B216282FF122EF0D47B70A1B29514DDF7C0435ED238C14BDF5 -6DA243117FBEF7398F97EB95597707ED63C6797EBA1B46EA19ABB1DABDA171B3 -16CD500F5D64CBFBE4F9CBC3E66A34427D3C4D0C432710289381F9BFD91B4FF4 -1E3A896C3EEA2F3105C218877D6C0C6B763760FA364D00065E1CAE9DCB5676ED -286A9ED0D1C946DCA6A2A670EE0936FB4706CC62E234CFEED34AA615C48D2872 -A087F30990C85E64BA68F3D5C117123467DB411C9F2D6F6858CC70C1E352C477 -713097321B4C4FD4C5CDE305415F998E7245908EEDE6E056A736EA77BD8C639C -3A79FFD0B74B3D28F0494A115F2841CF8A8827AB5608F96FD8998A5F40FB3DFE -3AA0C7696DE4E1D18DC0D6E84B943175FC38FFC42A9C0CBB13A908978C98BFE5 -034F88480F32B9DEB2FD228FF6CB0B89B045AB02020C82E3F5716DC640613185 -9F597CE262729BC52132F43922B9E28BB71A30AC8709634561B22D13C4FAFE0A -12C4451969226B220038AD8DDA990A4E2CAD53DBEAB698898BBD3046234EB4EA -901287E71CB41296C431383AB85F18882F65BE36923F6C0FD6FADAC5B42FDB68 -64C06E047434FA7A659EF7F3D1AA8E547939FBF9C2ED7AC829F03CA59AFFBFA5 -A7AD2E0FC7BBE619961AE1785D09444B333993199FFED007382B54DDAEBE21E0 -1E75E0AB6D309DBE53BC7BB9F95D342F51798574D70B95021FA40163A86BE6C9 -342536A5730837C522D5314B1289D9B7E4EDD108BE7F35A20AB2A16608F6F007 -6DDD702A5A9BA1325CE2C1CD020DF677872135CF04F4E4F1E9AA6B494E2BC22F -107C331A7E80718B030A1103804D144802E3B03EF7CB083BCCDEAC7B43F1B4F5 -C1BF6016741B741CF7E12B4BF95221A72CC9F4657264771AA69C73DA1DA29102 -65D01A0E61F3024E672AFCCBE13CD0B7F54AE1418B72E357A0BABB4D03073B1D -F4EB54F899AD4A41A9F94DC200880A0DB99D67235A2451B25F710C29A882865B -A922E56E9FC16756014FA5CBDB1C32750BD6835A70EB715CEA19A8872041905E -8C660BACDCA26C8247D6B3C10FA5DC240E433E479AC6AFCF57CF96697FF46BE6 -44748E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMTT10 -%!PS-AdobeFont-1.1: CMTT10 1.00B -%%CreationDate: 1992 Apr 26 10:42:42 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTT10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -end readonly def -/FontName /CMTT10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 33 /exclam put -dup 34 /quotedbl put -dup 35 /numbersign put -dup 36 /dollar put -dup 37 /percent put -dup 38 /ampersand put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 52 /four put -dup 53 /five put -dup 55 /seven put -dup 56 /eight put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /less put -dup 61 /equal put -dup 62 /greater put -dup 63 /question put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /backslash put -dup 93 /bracketright put -dup 95 /underscore put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /braceleft put -dup 124 /bar put -dup 125 /braceright put -dup 126 /asciitilde put -readonly def -/FontBBox{-4 -235 731 800}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19 -38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF -D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204 -EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727 -A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593 -F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714 -4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA -6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E -A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B -E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F -1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438 -452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF -8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369 -5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA -DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9 -BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19 -741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79 -E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712 -E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7 -D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE -C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA -726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227 -CEBEF0C9440DC034DAD9C19FB27A350233112B0A339366B7373CE058456E0E1F -139936F6CC9B50441C2F5994977426AD7DC8C717E737F8C201EA55AD94908336 -FFE9568C0E6EF3202D8CD7B7A6CC203EC601F9A7E2A4395ABA3406503DECAC56 -B03219CEBD0E465EA0F635F26D984F5942E4FB186AB874F3E74CC2F2E378BD83 -57CD1B63C9DE9963587B7457D56024D95645ADE0D95DEA748A6ECC6809C2A7E8 -6A568F83BFB184B31349A771DD72ED3FFE8D16E3138EC49EC6D7524E611331C6 -DB2E16059C9A12512C7208E3B30F04273E20BAF41EF8C96BA4B17F31572BDD15 -3FB7D15CE31684D721083208D7698A31D07160927C9A7CF8B7EBE81A83C0BD46 -9CA06245FDA37F0F2DF7948A20D121660A73E079F4ABDD8F90367BDBBA323957 -062438FF3B28A3880380CDC76A055096D30FABA4AECAF238ABC2513F089A6C4D -67EA0050A34F5DBE5FE32D9E75E67F4C87AD8115DBFC00124DB4D3F4CB62CA02 -59BFE46E90DE9ED306D6CDC51005C233BD39F41B264E2892AD23E8F93C8C61A0 -B5C5CC1021411DAB515039DCAC06E1FAEFA259E6AB07135CBB345E90E2BD64AE -37B9A46934BEB383D3AB1787A2656FCCEA6467ECC2582807E7DED181C53829A7 -1818C3FB17567D81D1A833E0559798D06163781D7895C31B1D81CC439AD51CA0 -5E33E96253064B684F3261EF86AA8452B32E9C5907153BBD692BF8BD4AC45E3D -7161488C716CEFAA695877B03781F64840D49C9C1BCE9D5E759BF1812712F2EE -054A34F2153AD6C953E795B6F40AFAB115C5FCDD1864A85C1AEF5DAF40337068 -08730BA7AC580213881F8AF1F76FC830EC76BE4CE6E090A1F91618595AB6D1FB -A885D04A4E73C9C7A923D813275810DD2B2A3AB4FAE4BDA24FC170A4BCF46E05 -572529A19B09E5ADEAADD071EAC20C5DA884C7D414F5AC5206E87E53989B7378 -BADCEEC6FCDD4B4EA03EA994FDF6A80A2E232B1A007B7554471FC1DA24901896 -9CA84283A02FA1D9176026BC1529147F19D07521A4997B70258FFC03821EED0C -D44BC9C2E67C3CD9971954C58BF1775D61115B75E26AFCC3B7CE6E5ECB8CCDFB -640DE440334737D63F539385F83BBF603B631AB2F750DBAE707F5D008591A05E -9D532C165FA35B580D690138463047F77F10FD4FDC8F724367545C0F5B6AF978 -B6AFA49624EC2AEBCB2D19E9652CC74B66289E42A8FC4A694F13626C3CA05926 -C1369F80FF1114F0EB03CFA40C37B2327992DD0CC598F10BD9D1483080CF33C1 -02DE0CA7BC38424C3438B4CDBEE66793A2480A15BF47F2FC621E66CC563F5052 -491ECDD9C38BE1966161403BC22BA41CB3FF9E90A70A99205ECC558C928F2FE6 -5EA5203977100FD3ABE953E7E5BA57AE0700E33A0ECB6FC6953C9029B25D61C5 -F57323AEA10B43D5A46C6F248F021E096E02AD7EB00923B0229336369EC82FE1 -F1C198456B9982956549CC441B859501FAA0CE507A8B131F10BC99B060B8113C -2DB536DE8485DF33F1BDF4FCD571098CC6FC6B2A828D8478991B354B2309E31D -0DAE3E8FAA0189B3C1E8208FC4C31FBF64689BF81BE39FFC2E680246BCFE4448 -8FFF4C7522CC12B622EE7982E0F52863B97965AC2CB74444618C691975D758E5 -53878C44180D2BCAC4CDFF06D1F109FF858198CD225C7F9BCE564D861394730B -9A47876CDAA300EBAA793BDD2881D6D0A66D3727C871D97F199FAF1CA45425BF -5B4A161F8C1408A20FFAEAD31141B18ADE6D229F57CE29E92DF9FD553274CDE4 -28E94100A930CD8F41F9BF6285743EC5DFC9BADB196021E045BA231B0DFFC8E7 -3EB7B7BC8F641CF337FE57D17BCD02C4980FF1A649EE62D2445C28033355500F -B460C58BF63DE130BA82909404613348149F01DA396AF06195B4F42D402F22A3 -708DAB87F85EA515B743CB94D464F1C980F0BEC03EC7E34911F288459B59B672 -9474C93CB8A8A016ED52201F4E43830FF8ECFD652924BDA223DA5E2B2D6C057E -C8E558872D762C0EA343657A627FEB5F492114D38ECA96B14AACAA7EDD85B562 -EA087D768A96507C1E814574B08442C49EA2AF4DD67C322C3D8DD4686632067F -01E7E62E8486C163A39C28F7070318FE91167D148265BBAE808916900F0B45FC -C106F3CB047BE800BF442A75BCFEB94E7DC7E317845097A30F1D2686439BE077 -741A968F3D4C5927030192D52CF2536D4F7489323EAB74EFADEAE1FE3F887925 -8E106352FA0ED99EBC97D693D287AD29E57FD1AA6A9EC121041636311364FCDF -045E969FFB7761D0EDED38DB4477DA4CEB05758B314CA631E704AEA1827B3A3B -8CF8B4785147426AC7F85D15760C964305EC631B21F6280E31DED8549F100B89 -918D6A48BCA74FE4EF45A6E4F9B694C2324B1E700256B84B7DDA3C18EF854626 -DC54291003BB1108B99C1E730C8E562830E12A561F1C292B1EBF809EBC2558DB -71F8949C9B435513BF01AB86D7A7989287D028AC882A98B56EEBC95582D054D8 -21BBD6D4AE1483616321E1C148699B82B3343C2D63BAC0BD2910E0EE97ABE442 -0EE6003D124D45E4CE75C995BF7A75AABC96B9617EDD5ED91C69FA3928F93325 -D7E354E81F8F63E25AFBA8044D95FE560D74DF51FD00F8803E5C257D380A3CE9 -6F2824EE3C538B1CCD59B4BE7DA742200FCFAD187722EECDF8FFCB59C8306AA0 -FEE3C0689093FFF1FD393D24F1B1A6F0A5CC523AB1DC5A34C768B6FDE57F756A -DEEFB6ACC7DC990C0EA07872B9364D2D024B2D56DFB4103242184E0DFA8E2A24 -A6C5F4DDFB1A3F86A508DC15AE85B1C5A8416175B5F1FF33B4CB70FFA6701D5D -D3EE3294391DB669C03DAC462C501555E031AA6E7F221DAA99999E87B2C345CB -2350D7F62242635E55D926FECAF4CFD3B55266BC86722AB631771BFDE91AB7D1 -B55C8651BDCA3BBE77D49E26E8A7B56478068613FB132521C4C800CA93A93CC2 -601D4869ABF79EAEC353363F6A8E7005831B925323D7370B1EDA9CB91626E452 -35E961B3DCEFFA27D8D0092DD911951D4EC48F9BCBF4F19E6DFF6831B5755BF3 -A593FA1314455C1923E8A8DEABC87A93CB4CD22E1CACA7C4A4F6172F7DA6B6A6 -D07E45DA2FCF16C67D730EC221E3E3217CB907756C5783DB363E775598FF8342 -70EB36BD2307E359A7A10DB2FDA8BA18264B7C7159FD6B1C568DCBC67FE75AB1 -A1751BDB4246A135AF6646044E7EA3BE868DC2B2643395129034B14DF42F4B77 -D513EDA2E438DBAEB147CA6F41256048DC034680E91CC5B6B800FA42F0857911 -82790F473119BF368D5A49257D66C665563406265A47661D560329BC4CAEC9E0 -775695224BDD347A896E0A41163D548B8DD7018DF368E3E6FE364DDAAC020B88 -20A6C218CF0D40B300B166B3125D81BCF6C04F43EC7F1C1E3522C7D119473F03 -266547389DAAB843F9AD52D94F12BD620763FD8C13B0C43B29E40373CC86E9A7 -D83F222E5B2448BFB419B3BA7ED209B30485C78F7E0C6C48212B8418B14FC2BD -F4C928C7699F67D6CCA3DA7462D3744280578250E7E6728781DFF9CE34B5403B -07030E9C4B2E69D4309823DE0CE13EE758834416F9DD6F90B8DDECA1C7603DBF -62058D4E768DC18AB628815C30F59CADA4D5BDE8B40F1A59C3CAE107D1696823 -C3AE4393AD8BD1C5AE24AEB00D2D2CE88762D31AB2B1A1D462037F2F1B3B48DB -57298490CF0C4EF23C342152265F86E3A0BA147E3700DC3E889475548A24C577 -D11399C971DC4CB8C122066D20B1FD862CCC440C6D9F9C0D91267CEBC252C67B -A6C7E545DDE69BBA4F5407ED30A8EE165E05E78FFD7632AB5641D76A41C6AF36 -1497E6A3A7D86C4C0D3B4916F044CEBEFF2EB0514F4CF9FB967CA2C1E3676A96 -D30B2CADFF05C328B68914FB584EA5F41A66AE4BCC94D9A0E3006F82A9B90EF1 -00D1519240D0A1E0810B0B061841A49143FD0EC4B14BE095EFF5BF06F2BF4226 -0635EE011E3F05E80838EF86B6F1F183F578873813A6AEA87428BED4A3AAC9E3 -5DD0FE857FC76936B979D12973A5823E75E0A8731AD914B666D8DAE2C8199E56 -0E236D47F36549AEAC1A74951D43A453ADD5154A937EC9CDCAF9D3728406596B -6EA7C1AE4CB09854B52523D6788BAB7AB1CE4389A811E4E8451E3695AC9D336D -B51E9E493E65628FBFD51D6DA8227AD05BF2C4A15076A51A3B83D9975018BBF2 -B3CB2EBC72B9E577C740CC64854635C7637DA157F697EE3EE1FB4E5657CA602A -842AC29523B20BFCB1850C5B329DFC307A17498FF4C0D1050E4A0B72B1B7063D -9E651B9C33C732DEEA4B858E8CBD2B7F507A42323F0F625AB5322DC866E06197 -C3F761F22576CD6C228FF69E54BB1D9B054C6B8BE3C60430A69C2609A32EDEB1 -BC2B1AD00BE0D32E32A66D19E590BC8FE6245782387EAB2E2C55660A3DDF63C2 -A18EEBDA448A6CA3E3AFE4E562A7AA0DA87C31DBC83F208E7D8382E64082A4C3 -EEFD83068DE6DA96F90E3553BD664314FAC4A6BCCA6E520A5D0D9BB4511389B4 -E3E3ACA3F51D47B62F11D8B80A7C75299196F525F9582F33B295CCFCEED4A27A -601CD8052C9BAE30A11BCFF10E426498D23A0E0584C0D171DFA3D52696A1B866 -10413FA62745A826988BFFF1D543271A4DF7AE242A7BCFE154FECCB63247E5B0 -12F45E0DABE15654E160747A4882CEDF036AF7F3A69F11904B8D4E7FB7CD5801 -3A407C9281685669EDECCF91BA3B25AB55AC8E7AD12C9D26839DC9F698C1A854 -2CF430F2B625D3E629D865A013369573A36B89D6A76133E667F952923C387660 -E2B8BB1B09CD385A33CE8DE5208A7A9B404B845DCF9B1872AFB734DCB5E72BF6 -655FBE94E54E6994C4D5FA652D7CAFB00DFFC85475DFD7D8CA078581985DB551 -531482FBBED61652E862F84CAC42C4D786F274DEA28CB8058EE64CB3DBA19940 -8E9ADF1306E971AC8ED60F42268548D16339DCCF0FCB2A52D70241D531469CDD -F306E350EEBC4610B237B93E9D4385D1414B30812C41FB899A5D16ADF8DC4081 -1F207C8CAAE4D39B99E9386C5AAADBDE232E8B751811C971126DF8229D802153 -5DB62D286DADFC847D98AAB73B159F61F6F1BBA9D4E18C71D982436294178EDB -9D3E2C3394F824B1A67B381224AC2B126DC07F9D1FB1FEB55E4E1698130584E6 -EC789847090AC359A465C33889FD6770BE79EAB44A489BE86DC210C61167CACF -328BCC50EDED458A10EC0C0EC907A808B902B92ACABE442C8D17503980929F06 -0EF04CEB2828302E9EAEA75B43A142A791508D1C3576B0F0584AF2064BDE04D5 -4B2A98DD648974BB712F4D4FA0C3E3F247355709CA187F2E22808847E5BFC0C5 -A2D2F6B53340A943379D26BF95AD0E771FDEE47E88299FBA70EEEA09B5CAE91F -3920F5E3DF158B31E60971DAED8211FE21CB82609B581A20DD60D738C186A8F2 -AD2F826A9031831BD1B510A11BE5C61D683922957A8D909773AE1EC6CA3E615C -21AC4ACDC6FABCC1DE0007D16F137B2698D92C312D5913D35BB703A678425D42 -E4E4923C3D6B844682219916B33163CE6D87EFD43ECCEF7BEDD597401FA75A70 -A3D902BF4D8716FF47E5D7B1587ADF4EE2F8718BD6EE9A3FA58460E875AD7E78 -45C2F49981B3E4DDAF2A0E5463BD845A2B7F65A4A7F58B78194AE04F58FE53E1 -6F8029DBFF18E1B52BDA098793EF741C1E4A705A158E47FEF0B7F7DEFB9C9C3B -1A0B82DF66E71AD34E0F0A0AEF314E6040902ABA0822A44B2040156EC942A78B -60E26257686A1C15873986DE3BCFED2A5AED392F9470991040D5147951C84D34 -715E767FC6D1BD855C6FFFFC9B8E0F21303AC01D15E21024CD2936D8BB054E54 -11303C2A225999ACE40F838B36DBC92791AD97112408409FDE74D7CE35B206FF -29C9FB23F71D5D65B2E8961A006B04B81836430E0FF3986EF0DFAAF222DEE50D -D39EF1CD8AEDCC1E7BCDE93D0BEADBDA95781F67E5AD523DCD2404B89ADB12C2 -54519D2627D577B7BCCB6E9D8A2DC4AB0C9F2FF27EFC6BF14F0E187860719120 -A9F604B57AB0473B695038883A6138727F1E093C1DC8848EE2B6B7AB3375E2C2 -4F9666D60D376AF5EC01F409FD3EEE13B0C67A31DC55A2C3C0C9E7B6AD07FFBB -1D91E809AA64890EEDBF695D161FC4F51EB72514E575DBDEFEA70867508B1E19 -8DA5D6FA85F0B1E544D4A3A2F430CCCD13077D9E46DF94AED300DC90F196AEFA -212E5D45C17285E2D13A44E524243A668A23A6C97BC7B6F68321CD4837618CA0 -3D1FBF8EC7C61EE2569A16357D23011C2273B7224C03BB5D1D1767D04B11AED4 -9B0F2157E84576AB864EFF097A6171529E0E6ADB1F42139C91C4CEFA543C06BF -C5D1B3DDA23822234BF0E898D46CBD9A316101E411389856CA6504AB7C1DF7A3 -8602E41303C4E967EEB54D56BEAF159BE060557C9DD0116D88D6B2430DFAF48C -DE6868A6D74A2DE94052E1B44F0CAA0B88469B0E4E778250EA1F121ADD0D0899 -7C88B17A3E719643F9E1E18F781DDA306190BC8725156AA13DE6B589C55B4218 -6E03A3E33B7C31156859DA3070035BBD6B7FC2FBE3DCB9E946895B633754FD2E -CB0919F53655C852FC66C25C83511FE4D11BBA1948EC094FE024234B43FA4161 -D6D7B6917C423D80FEEFD12B32C50F45C46643DBEB2756BB3639ADDB4A628FBF -A08381FDA81E9004DE04644BAC33AC06CC46DEA3B61785F3F7AB20EB09AD90BF -5C522512C09AF7B9B64D2FCB88D297C9113302D601778F4A40502208BDFB6237 -0A58517F03F4EB24ACAEBACFED72DB99C6F09B1A9B52C072A5B4573A0A327A90 -98A10BAB75124A00B8CE0AEEF29A6EB6423B02BE542D9CF5C1C2583AB23B949E -E7F60F643EE1DE8F9EF5A4EE1851970565CC391B1849BFD1CD5CC99E949E3C69 -986292D09396DB57FE068AF5E1FB61A7C2B8C6044EDDF17F8C5B2DB9ADAD93FE -38618487018274733019813027AB1C43D778F02EB94B09FCA7F3E21C566CCF63 -3172A02827FA8056D59E26C74EEFB7B651EDE7C74EF43D205941A58DE5F5ABC1 -0DAB2E0AD8617CA26CA9902DF93AFD42C4DF308D8DECEADB384A913358B0F279 -766F18E6F9C94EAF754C74F2180C61417899EE7C01B52E5EE873AA1EFFCC0DD2 -B58D93E68C4AA4111E7964E82FF7D18A67A14FD181AEE2E12C400E6BE3DAD5F1 -33B0DFD95227F3BAB381813D9E76BE7266A13A7B0DF06BEF237B40B5DC81B5D7 -C601FDFD07965FBA6A51D65DEA26CC0652F149BA86BD366AB2A510CD5DE9B163 -7601EB4273B0703D5ADA2126FA5472CD4FCEE99AF2A7AFB79810433DC93D025A -9CDA1E3D431FA18BBEAB333A510083A1F76A718723D43635826B51868CC0C85E -F16A2A7AF39FA6693A605A65DF42851C444F61CA38E073412AC89E7324997AD0 -2B709EFE96F05B0FC60C4A3C804AF6D2A6C0EEF850728CA7DD5419DF8BF1C324 -4DF2DB944A683FECDA2B29AB564FE6F659037FC499F1D6FB7A6374C5C336C8C7 -4591354CB1E6AF135261AA3222FA156E6128F3EADD591030F59B3D1F0619B506 -498CC2EFA72C35E88EF37DCBC6CEDF837C522E88A5652F947C5407D8FBAF2448 -EAA1F4C03A8A0C173946415FC06B4604F77952C5913E4263B741CD9B1512912B -0CF9D89F82133719BF9D48C7127BDFAB0B2801134127C23F84F8AC313E23F91E -2D357B97A35985B1815E50B645B60A837D530E8AC939EFFD5B336659BECA5F2D -F45CAAAF2BFC57BECAA1A80156CBB1D82FE32639981412B4798501A1404F8458 -0FB53F483971A364D4E4390EA18575885E29ED8C391827AFAD7126C1A7A43E9E -2998941601EA863F89ED0CD76DE298D594D167DD4C11C161D54C804E8AFD78A6 -6C5A1AFC0C939DFF1659C4853CEED6F1BBD689465EAFAA059AA41CF4226C7691 -71854745CE754500AEF5C77F1DBA47C84C62DDB4F8FBD127C29483189EE00F67 -19F601A4C0A61BE1ED927F76A8EB787D7EE62E292CD2AFB1D4396A5338AA16A5 -463B0C8CBE73FE4BBCD4517A4385A77971457C554FBD6DEBF75F696DEEA34C2F -92C01471638D82ECAAF13DFB18896EB5E3D52A5F10E22CEE6542F7DA10E58D89 -CEE3ABADE7721C75B83CDF45EBDCDD258154628DFDF883410DDF7792EF5BF4F2 -27F56501B7910D6D39AD509A4F3163D783E941AAE24579B3AEC898F21DDA9016 -FEB7D49022E004AB49558C877C3133754BE99A3C81177D6517B0668189B55581 -49AA091B3D6E3F1933236F546F4652D464447C44309510BABA869E219EE32BD2 -3E40A733C45A71C79B2116A36A71BD75EFFEA12614AF6E4F8B3329D407D951FC -2EAE537C9EE872EEED792D89FB56C5F0840F804DD18C1256434E58FDB0F15735 -B6EB98363E14CE4EFA0AD8A863018B924F4B4A709D2F7ECFD2C2BECCD2775390 -8EF8029AE33676EFFC5E283CC3376051EBF50EAAC53EA76BE589043E6862FC68 -D7367F06955C799FC4FD98FA4318C8B8A3874B84CF03AA2FDF381AE8D0FB2231 -FBCC5A144BE7D4F9A1449F9C2409E712F3DD107DDB167695843FABFE8EC31DD4 -A660AD9E7B05BDC4122034776412FDE112C1858F79994E3D5000513EA9F8BB94 -7E58D1BDBF9CB797585E16D6BED350A5AF0C999E409D20487DFD21D881699C93 -461F925B7930FC6867372B0D6F7BDA3BB19D8455194961D9A888F27B7ED3B1BB -32AC650E3510EB4A563BACB079210D3B787D153EA12400590A01871C5F7A29B3 -036105A1513ED6DBECE39E7A46C9B47968C083A01C1DA428D5966811F5AB756F -96548832B6EFEDA43C534F4CE9A2F3760750C4341C7A4407D69C90ED68932F02 -49DFA7393011EBB581997FE9FB9AA12A43C15DB1C0211D5A4CE3C1FF8E28FA0D -4A5FE81501EF0ED2E1E2E014B613A56DF164E427AC960FF73391B054FCEB8AE3 -94545520941B8257E08286037A7AB7633E6AC7E37645455A7173A51FB9EA9115 -888A5FD0D419CB90A7D0D6F64B57B76FD74179F8A1A162F0B9D543BF53BDFEBA -3B4ABB7BF27FC1030C6D1A188C595BE9D59F9CA8F3C43678762F6B01408471DA -D7AE01D940A59B7A50D9C0143C0744CB90FADC94A7710450BE6437062D48E8F1 -A34326E9C68CDE3B7E6185E793C0AF505DF186BECEB66667EE0CA04B006ACF8A -0CA407EA918AA7FDCC40D851DC56A2701E646695DBE56EA4193200D98126307F -3FA547ABB75EEF2B33EDEF1371D7C068BB1297CD9536BA228C52F85F2372F3F0 -3C80234C9F6871D0B76687312516EFD1731F9748A14DA6978C86219CA674B267 -DFCAD0FD7BCEF477E0EDA4EFC48161C43D557C732052C5E62AED8C0B00D54A11 -FA51CA87415563603D7CAA21E29C84501DA0777B154F5DE943701E02B811366D -05F520C9E4D53865A3060A9739CB6F6B997BD52A705BEA845DE404392F4DDCB0 -783DD19069033E1D3E095C4804202214A7E2D19A134D1307E5A121BFB04715B3 -5B989751F514B6EE5763D3A8FC64BA558C71E26834144E088FFAD3B183600D60 -A5FCEAD02C1418593B8F1E0DE6FBF324BDF262024F7117CA742260942588093D -C08185A90F23B185B5F95767424C537DFDEAD50CC7FE3B8AE3F5108873C9C7B5 -8CA586AEF7B7F6DDE202FC22740954A10F6AE3E8266CEC7002B9F2DDBCF64CCB -33EA716C6E1B7C0FDC9A8B697393C7FBFABA175FAE04618259614B035EE13E7B -471ECB2ADDC4AFD3ED49FADEE0CC434375A0EDF967011361466A900CBED0E761 -5C9E3D79CC8C844D423ECAF271FFA00B43D3887B9C8860593930D17DB4C20D2A -1E23B070B3C902FC1BC1A88D98B4EC513F38CDF7311717790E1B90B411DCFEC7 -6F238FFC87D1DE418640779C6618854E8DE423A48AD87791633A000DF0BDD49E -F664C20CB025F17ABFC8F606754AF229638C6C0D211C0AD3AA8AC3C9DD5D624E -103854DDA2A834C347E6F242947BF06EB5DBF0D3066E24B8F7880238F72D0F0A -88A4B5A4DB11FEDDBA112D89C755B3759B187F4E12DB3D90CAFEFD91DA9A160A -39A7749BD2E7DF4946457260C6D895347D074CEC06CD3E442DF682B32A9C4753 -CBE4E0F6BDCF150945268A7FE5C0BED753FD298381B34EA0829B2B94DC38007B -B72D0FCFCA0CDF5846190A24036EDEC853AC17BC40FB9BA2F62E96581607C1A2 -B68D50F3F186D48887A5E8204DF84D7EDE2E619B66D2D2AFF968F453D8E585AF -2B2FA4FAD81094530172426CDF5CA0F876502287DD1080047E31D18D67704D31 -07F0BA091DD050E4660FD5DE4912AB5D2A530035ADDA20AE61DCB7B30981309C -3B6BB005EF8729AB0452697BEDDA5DE5AD7D54A1D1454DF0134203E618D02A10 -ED115131B03939E01F741A8502B88BAB4D82C670C76E7F4E8592D5D6A74D81D4 -9E8F3EB18622BE1165050D90C8681283D2476D6404E0B7197429D0F81F1C846E -0FF2EBDBBFCC289D692608F4D82DFEE8AB1D2644195AB3E433C264E991F6E1B2 -E2B21DDBEB4E46E03537B4C3595050E65CB525E082D690240E19768AF062F89A -2970A5C9CAEE6955937196192FCE3D42106B20AC488463B28F5B028B809529B7 -0B164044789AB45CE8FB40D70127B1F3867A1ED544CF8C8CF2E24BB6E1A514C3 -E25E327E51972FBF7E0813FEE52010E48944682FA348A67306E0166BB3069925 -C670F6954E85615EA2758DACE93EE89A43FD0BF53DC7E3BC68966B475C00AD65 -73A9778723FBC930452393FDE06823A5933CD35703C9A327AC36644105AF9277 -A0CA9A3DFC4BD348D001680125321712BA71B16C38A5128985927FB23869EECC -893DD2688367980E7F98E8BD83110464E38EA770B88303AA1DD3F2D1D65A41A6 -EC6BCB3290B82486031D3DCBECD1E6A2C428225F56B6DD66668DEA84CE146CFB -9958AFAF934A5FDCCCCE7B99CC8002C27DE55D867F1B9158121D04D763D9A3BC -D0D8D87AECBEDBC250A2ECFC6F42E58A8BF069DDE94A4A162A6F76A6790EDABA -E564B286BF200D33D9FE6774DA9BD91A1AC4E0906CC8EED350A232FB35C084C9 -3C521EACF914383169C274A83F4EB79F5A0D10E63CB8338366E3273FF831B05C -B37840C7BCCD97B54A954C2542B5DFA9688F2735D993F7ED2F369B6BC37F8B78 -519AB0BA4C936C16C41724AB96F5941D4C6CB6431509CEE02073115C00FCD01F -6F4B76C2F997BF2B9F09C53613766A94E1B466F9D434B73B35173DDA365EEB4F -5B48E85C9CC0A50767FB61D7FD3C6CFE2DE088FF06E1A5DFDCA921A09D73013E -8E9087559F081324576ABB53AEE66FBC9D248EA4DC6ED1BB821235C6A1777319 -FDE6FCDEDC54763C3F822E500D0D557E934631AF88E10BCCC06179708E2B3A99 -0172B0AB69E47849BA8067EA14C184F01CD5400964BC603DF20DDBC055936BBD -E6527DAC9B198DCA9C418AD21FDA370D2141D70CBC8D15276C21273F9E1B93FE -812BBEE4B0D72ADB4B593DCE83865CA3F5ECD20EE28225B729A6800E8FACAA6D -3C64CE11492B491D15C068B37DA58360F9A7F9B9B65A508848E12B83F7DB7FD6 -772033A989B34E46955D2F4C0630494302CD9AD4247DCAE3EB91F67D9544E88D -8FE84ECACA113ABA1D8555FFE1ABD0F431FF157C8595F4397FCCCB80D5B2B17A -0C601D43026FB9ED0E9E9C46CB870672C1324D7283BD28E9693842269669F57B -2EA2D0DC1A8757CF6C583A3235311BCD01539AC00ACE6ADA5EDB20306C469ED9 -73A7DC687570AA2837D3877AD51E17E0A649078E73895ED7A5550E1650A34B33 -72C2EF569CDB2242AB91129175F578BA0134635A03C04F684F7982CDA57C9E90 -4B333E4962ACA9E2686FBBCC0FC2606A514E683AD8351D9795326091339DBC1C -D5B547E449096CA2A71D13DE28B967257F1F0731E1A4ADBFBD6DF74D6DFFA5BC -08C4C2AE615ECD20D52BD8EF537DA2E0FEE314F1D60928A87EFC7A42C4B167FD -537F9256E03CD8D2EEB07AC438E55C33FDBE2FE4438F6F8B29ED01D23BE33F0C -465B0FBD1B55041D16BD5ECB92204B4F614024190EF4B87C6D03EAC1EB863005 -D3AFE487D1686A4A356252745101FDFF3F85C162AFF34B2063E6B2DB7749653A -D3EADDE7C1FDA2F246CB3154737E277509925ED8DD86210C94B64BC7B8C4A037 -9F4C147CCFF8C2C1C431E1E8E5EFD8D49AD10E416A2DA4F45092FD499E4025BD -93588050EE9907A530BE3FF8BD9A4BE19526AB3CCA10F70E702E90C72BEAFC15 -C66774473AF87569AF99B516CD67F2F6D26DC6DB5508AF6286AE547BC63F95C9 -DA6190EC85F3D8605DD1A7A42C7C7B60DD3BFB8E84FE0F584D8A986BF0EDFD3B -33B6C953C8E69DA03A5D0C5DCFC66D800388B2E4473F68F52CA474FB8F1E4D1C -F7F5119CFEDE6F45B2C6BA1E0B82DEC953A26F1104EA8C6EED38B065B02EE952 -4D7CD7FAC772D6AF3862D8FDCF7BEEC514795BF37C14D4A502EA7E10699E2B99 -0EC296F769EA6C20078265D25617B1225C7D7EEDA1A10062216EB83EBAAA8CCC -A1C750FAAF6F44246436DB8C2CA7C3010ECF6FE9A66BA6AF6400618D170DD44F -E231343E2368632C89C738DF38F618DD9774B75EE2B146690EE6726E6462613F -2A6F47522F1843F126BE21A8FF4FA0D9E6AB154ECF0FFA138E036C57D49ED1DF -517D36CA6171E5C4A26027787F2DE873B6438C55B7CFA023CBB5360B60C84496 -130968C3DFD4F16608D310458725E904300D304B660F5D6962592C7073B2C9E0 -513F8F6D25AFFD7E743A710302CD5F12AECB08ABC02E650371A5B23C18FE024C -9827FD131A14E622E7E3F1C2DD0531CC6B91AC9E259E78463314ACA0BC7DD2E9 -B2EC250B3BD48075040FABBC5C87F5EE51B5CBE1E167DC4E151E902403A59F12 -C4E4BD1A31E95E430EB6C214EAB8F6825EDB0ECF123AE0B980C4361A2EFD55C4 -74925A2592AE2195B0267E828F7ECF7B9F674D0D3D4D2A9FE7E03AFE8214C82E -B97F69E4ABD689257F3987F84B31AFE10133A6A86610D497EDEB680145F0D62B -647998A8DA295A5EDB43000C63EB9106BD35C280BBDB84D478EB316E506BE0B7 -1823AE8E409652AC05D96ABB02E8815640B33BFF08793D23A2797847C7793573 -BE9A0AE34ABCBB712BA86BC2B3D614D77CDE77DAD8D41A59C29FE2138BE18717 -60F23F275BEAEA736E1237232B4F5C9171E49C5214F841ACE919411FD651D4EE -D0E49C79E175E2AC19B0690D7F7091665EA3DA20DE5A559D1481EC058B5521F5 -D26A8B10966B6EA55E7B23CF0333D7EE20919C9168A50EF7AF4D4E57D9E5C698 -3A0626D67575BE6CBF0618C12A169F9CA62F3273C4E790DECF8590274D7D7C20 -BED651E2C65107CFE57AA16DB17F45F7F178F8B63EA3E9969FB3D6A376A416A4 -14F809F02F8B9A5331A6A1279B19C9D4CA9D9987B8FC1AD3CEF0797F53B70F25 -CBC85BFFD3AD3F1D460DBBB2CC644109668790DD2B5AB7301F37F19FD1AD0A52 -C6920EA73858AB10EF369E5ACCB35A61051ACB6586B3B5435FB7A8CE51C16EE6 -A9DE7CFB1B7C6695DEB484A8D4A723E83B573B0399AB442A1E57793F9D6AC73D -B8DEC23105D56BEA2424E91B9DA5CAB114BDC3636F0CB34C60BF1B0DBC9174A6 -A8EEB5F832D3B44BB7593250A6ED065309DEDFD9A1B3E57E10CD1C651877151D -B086E2D82959C3BB999C11110C2D61CB8278AC65B013F6A48D501417AC494D51 -E75F579246F4449D4D7B83612A4E80F65845B8766E95EA5129F49BD80CDD2E96 -60CE7A6EB6DFF8E9E94A77A0126892D661AD2FA3D587B7260ABF3A8449A43E9D -1582D0D12DE3E35F3AF68BC48935487A6C8AFF614012FFE86E48DA54DD62B510 -BBCD311AAF2472B2882B0E1A8E4A0B37DCFF968A7F293B529EAEBDFF5861E56B -FA1009DF759867512F68CFD8F01A7122CE07AD3F409F809E3B6A6FC0C5244229 -9199342EDB58E0D35B6519443411794978DB0BBD28E736491B0F04EBE14B2C1C -3BF6EC7CBF1411BA50AAB52088B88997355417A7049F389C770F1D33DCB3CED6 -0ACEB141033F237611D473191C1C54467391EF4BEB3A64241583A603F3C79B7C -2F0B75DCE77C4C88A1AC382503FE2F6421A3CC5824DC16AD7537BCBA4DB1EC4B -F336F77352683BE1546356CCC9702F24DCE6D1F84AC55DC7BF562B6605A36115 -6F9D6ABA30A043C99C1A0194879AE635B4AEE1C0F0D515018F45F9EC58DD76A6 -EA0DD8EE108EE353D8CB3AE7A6E4C2391E24F4607A688E283ACF52199E20902D -F8EB7960666C8552BFD487F6BB348DC50189B03F0F959743183B92DABDE7A8BA -E1DE007CDA5802D6B2F00553B927D9B787630441C04593344EE7BD12DD085A64 -8FB62FB4836C5AA2B1AC7400A00C038E55DE2FB9AD92FEF7EBCD8F11378450E2 -83673F87DE599C80786B0E0BA22356CF30E9D2E16E5D27FABD579D71D399AB7D -4485299038F6813CF8C5063CE55172E3989562DB517522BEA73A4FCBEECF85D8 -AE4A4F9CF3324EDCA9EC981DA2264FFF7284A15E3A30DDB7E347072193D0BA4A -08A127B89F591E2702A7D4D6F95556140AA417CF5CC62D69F9457E0215AE019B -1A8970E87074B208719B4DCEF7679D12D771DE2A01E723391D59DF7BD0A7326F -B5695926DC92E40C177389E289200909E425D1CD28D1A19E1B1E4E41682A82C2 -7FDABF1AE57DEAFE7C395886E06524AD96E214725129A3ADF8D515FF3CF78CFA -EF84B53620D5FFD99B1EA3F28DBABCA650B046C320A028426C44D2AE3953A9D9 -46EFD717B838F2E3FD8FAEAB40F2128F46410F1431440F60326A1198889CCDF9 -C2F9DD3D119A9132541FF09116A8C30C6E8CFFD9AA3EE31E00288566F07DC598 -D7234FDFA8F8B068E1062998F8EB6B4751CF1D4FACF98CED6581FFB46990A524 -B382A1D65C66D131BDC936A1A1834E3CE36525D63BED86416B7B7F1D24564D25 -A60990FDD9E9FB1C1BBE5FFF5DAD9D8525AAD7B823B00EECC9373D671FBA7B8A -5166B2B4B72A93373FA9063DE4B22D7A6D1859EEB440634DB57990ACEA84D507 -69409DBF24C5A96ECEC2DFE715643FDB87703A4B42EB6D3ED5D5FC117199E324 -FA36C00AE07A6A772F6DDB48BC19F6255FA3583BF967ACD54991A78A5E3BD803 -C442C3E8438813F8E4D040FF5F287FE9D9D450F5420AFD1BDB7006A1C2965562 -D8B8BB8A8DB9E8016E69C25B6FEB864CBAC9B1635F78E57A0167E4FBC3269286 -A829BABF548377EDD4A7A7809219941BCF62160DE5EB11A6C3F73F22EEEFAD6D -79349CA6E83DE5F014989BA7801172B7DCE74B1CBA05563434352D8CCA8DE220 -3FE92EEE6DBE5D0F15E1E4A4ADEF7BEF05DD0F5A066373B47C98CDA85509F685 -BB0A9EE13E239C34BAFA19DF1253BA3E03FBC1FC85D5387878EF5EE62B77D254 -5D7468FB55B9D5EFE11BE32F7E7FE83A8D60B15480674FEC54CE1DB50D05C58A -3C3DBA96784AFE89468FE881C7D5E569A6387EB96A2E6C0293FCCB29FD5E3022 -6C4DABDB07C4D2B211A6C7AEB61E6151FBA636EF6403BA6C7B8BB793C5F4F7D9 -62AD6160B6705BB536C7C4C6B6049ECAC5DD72814370EF535444C611CAA0DF1C -CE66A641A30EE8B3B8703410E55970FF5DD77E5B3932355EC6269102D7D9CEE7 -D3E78B00DB3C002CCC5A5447A3568669EBA5133D5682AFBF5589AF5E5833F539 -D767B8BADE673D65B88C8297428CB077E68FECDD2387C58D7C3EB9E545CED26E -A1D7370F2F4DADFBD9722031A72FA1D3E8F564378D08D5D9B05DC16D1E2C187B -C5D20ADA34B3FAB982743B3070977EA4A9CEC000C46CB79BD3E84F30D1A2D334 -6B0771A66033FCA6813F22300E643E33B130939236AA4019AF8641D0D5974AF1 -88D18EC8B25EE465FAEF3E7690391E33FA8EBF2B43A7622894356303D6E7CEB6 -FC2FF5050E1A2D21D61AE6D1F5641EC7689846BA4B7EA87A20D309EFE78C9DE8 -A10251FFB6A4E0269F7A37F566A826B1FA2C55A243769546A2BB9D4CDCF4A543 -029BFC4425E79307F1A3EBF4D5B8EA261CC4C0320E2449A381E9D8E4BA7C7F6D -340FBC8B3C50B0E59A61E9782DCCD9BBD23D3FA9C54230C5E1CE3D0A235F33EE -7D8EF251D33EB218D57BCA368487B0B6F7D5792CEF0B885F71DAED5BBB17BEFD -17DEB3C15BE0F452534DD61094C298FA9B5CFA0E96D091A2589D0F69C85F8BDA -59936C67A80AF924CBA0765706672940476C91C76FAEEFE48467FF8198468BF9 -238E2926377C2CC141CFA2B4FEAC7117FF081EF0FD3B2B48028D57EA49B448E7 -902D0690096EE6C83231FD32653432A231943718F6BB9DB10C534730BC8CF192 -02973DBD125618EF21BA17142C8DA4099A6B530F36F9C782436927BB03B9A761 -77D0ABCD53BF2398562C623260043B3E7D041B5C2A244DAAF6B57245C6A977CF -C5A34693D558DFEB02ACC7C08393E21AE88C22E3C228A2FC4B000A14664F586A -FAF41B2DE959CC3F58FFEBDBCB3D8CECC85660F8F6628643AC63EBE17C02A6D5 -BB3965D42559D47EEF9A98A3DDD12193A445D678E53E55A8FC95A96F3FE1F0BB -825A0A4F158F54097880ED2DABBBF7B6DB3FAAFD59E981FAE49B79406B813E91 -DAA2AB3195A5A0CD655516A92157BD59164840B4F4A7D266B9474BA220A48599 -1C2B1DDD7BDFBD99327D677E45698F80353D43A9BADF034824473765F0EA2F10 -44B98499FC974CB913C4B64E1269E6B5BC912B34D0B89FA37879A63B93A91256 -553416F94A8B00EE325F328631787E37C9DF3AA9D7C2041DC58425FAA5DA0CCA -BE2971E437FE146D557ABD238F8CA06C5E2966815CB4B7E1DA75A5AB83617E0A -AA0DD4F5BFB79225F7D083B6380EF342D6AFCE6B18FBB40EEBC845D20632385E -8063551716EDF22F257487DF1904618ADE7487F6708FAB208A911399351F71A1 -FBBE41602512D92CBA6CEE36043093FAAD2688BB0409D71B6B09C61982EDFFC7 -1BAA404D3ED854ECBFED7E9D4FCA1DF74F5BF05A1417E973C308CB805B4336A9 -2ECEB6CC76908C93D627C557B3BD77018F96DEF4145A9DDCDDE08E47F80626C2 -489C7042DF12A37C574FEE56DB542AED908C22600F22D467B8F50F4C4809015E -EBE96D4A6288A07BEF0D73690D7FCB45995F0701D0DF507675F59FDA3DD997ED -C349ADDB576A6F2FE117CD42978CF975246390610DF22AB9BEE4BC8124FDF869 -0D33C973FB6242981DD07E21EA24F0C4656EF450BE15FAF83BC9B5A5C38C2D68 -99412B858E80CE9ED73E513C8A169F9490C94FD74C837D338A2F627E481F09F0 -89B319F6076A70A0AF1ED9E4E8C6C9C0C697374BE102466C5870E7564C692899 -9A0FAC9A82C038FBFEBB2912E8E335FFED0AA2788856144EC2E147714075988B -FBE652847CC46ACA47F77EA672BA21D6B1815071B85ADF862DB0F26928761F55 -92B610D5524839CACFB89A0C1C3A50063710BF3F85E48748352ED45907122625 -3D1270F4548E6893D1B25F6D0C1384DC91F6400B0AEC3BF07F634716844689E4 -EBF65C1BE2A5B31B111BEC0AD90E4D571F67C0F28A57878D2B93AA616FD1E969 -1DCDA4FD3004CEFB0536057B412318E69D9E589B852E41AB1D79C88A214631EF -6F407003F1E303C6492BA95F475F139E9A508134E39FFA501C01F5979A062085 -E07149AAC966E190DF1C10D6C197F7D90F388AE154B401102B7155B48B5E812B -BB035E4BF85504F0F6D73F12F1871B986DB5037FF1A07BFA91010C69F7DE4D04 -5568FD6DC581C20485C58DC87296AE14D94DD4EFCB90FC49D59B3A24FD5134AE -228F9D6B522B9D698D82B01A2598991D427324AD1418811A30039325134A3991 -1900B9F104CCE14A6FE8060192A9BD2272390DA86710FA38968F84A0EEB722BA -647850892C21E446C52CB44D65CE6ABAF963EF7E4373FC84B8C1C024E21D3EA3 -B9EBDD9A7C55A6F759807BFD086C78CF5B522449B1610F3BD0590C97B17B26B5 -4EED5D1395D9BFE60ED37EF4B00CB48BA1A904C4137433067EB2AEAF35030874 -D0C061F2C83B8A4283ADB386201192832E4C3C5A47031D6AF00CC267F7DE8449 -73CE55232992AE3E71131A18B348EA7D0118857000CECC69B80BAC3EF6508999 -27CBFCC211314D256E112BBAFE8BE0063F85764E2FCBA821CAFB9DEE8EEF9B21 -7B7F361B8F817576F09B9A8A33CDDDE20CD30E5D07BF072553CD55FE164112FA -CEE7AF710FB84812E334ACBF603E21A3A1B78AB470B232041D75E041DDAAAF26 -3F3D9267E9DD307AF620E16B50064D8F5C8F1E917C8608405DE1EB8B1AD1FE90 -6EFB0F29A9540F9A0FFDF4810CE7CEF183A6AE3DDF193ED3C6DF3DFCCF989C64 -37248688B532CF9B91750A86768DB6741E2DB3312FED357B174AA9318DD6A78D -25456E6D80B32495FAE60E5AFE0AC1A05D1D8FDAD6288CC6CBD3EF14B3B87058 -454841B2B5D37DE3ED4E5F0FC4E684836EDD69BDBEAF3C4AC483666715FF6075 -98313AF84619C2C9AEDDD0D20EF2CF95C56F5A910C628DC242FF71BEF79732C4 -93B3897BE143B1C74942F124F194EC904BF92B677FAFCB0A85C3900A75B1F0D5 -CEC1F977AC17C7EC394718CDD08AB218211A5C702FD4246E5737959F527847C4 -C1730B0AAC3E28DF726DEF7BA051EAF425E442493C7A616AC70E9658C95D417B -29E655827D9630AF834C87EE85419F4AD1D6F618493D3C610F1409A8FFE3E5C8 -43642A161300E6C90151CD21EE11DA13C7925B7D5B44C59AF3565D89C7D9594A -66C411A848E067424A23B13EC03FCB090A15791CE346376241809E3851388F9E -BB90C488DB50AA60ABAC64CB67DAE8F374F2C90CFD3D8B2F2CCD41740EAE2349 -2167952F63D005C9F1F09E6DAA22077F7998CA1209633A1F719F2EED5FB3122A -52F67D1CF0FDF42324A6C86EECDD300EBFD9494430BE5B462D70349BB64C2508 -F0D7FCA414462DD4F3CDD0C531F385179B316B7B043404DC4067D450F81366F3 -9D3BFDA706859CEB1DEE3E62C453344BB48D69D093B7B15B71FBC503E2414316 -ECEBD9F7E25C20F06F22469902954AF3B2A128F76C0B7CB6357A5D8402EDAB0C -F5D5288D07CB484B69BB687608F51611ED3AC3780D11AC3AFA9E804EF56D8089 -64ED8A5F0589267D8330F17580BA3E35517EC2C692A66965BC089777DAA7C8E8 -9D419BC85C6DEAD167196761928B28C212B4B88A83096ECB68B84EBE98D97C85 -293B8CB1021DD541EAC2DAE1087D6464A74CDC165479940C9425D636619B1BE7 -967F7259D1A536B2D83EDB38E473311E1FD0C02A31EF851F3AD001482AEC0D9F -D507F00DA975A2EC33F5DED8D6DD551257E20930EA0497E40C692CD76EFD6012 -2FBA02244EE7D0C540D98DB6B33AC5472AD9E653C1EA35FB2CA5A7309061E28A -096617B9F6A34A017A42D2A13C7AEE8D875A94CFDAEA73E1EC32B2F4F0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMBX12 -%!PS-AdobeFont-1.1: CMBX12 1.0 -%%CreationDate: 1991 Aug 20 16:34:54 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBX12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMBX12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 44 /comma put -dup 46 /period put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 89 /Y put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -readonly def -/FontBBox{-53 -251 1139 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712 -B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99 -AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26 -7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF -20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390 -B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D -68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809 -D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E -26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D -F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26 -77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299 -BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E -C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8 -30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5 -148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C -E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D -E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23 -337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598 -0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6 -472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E -A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26 -30F19E1BCE69BC499D860F9B17E6A78469F652E469E22DF3BBBCC803F7483463 -96F1C811AF62FC36891457BD3A5B988F62177864939C23E86BEB50B9FD0D186A -1C14795945646D82AA97F66F6050F81D9279AC6CBB908C7E1F96E082B31DC1CE -66777F3D7C18637E94FFFD28171E19E178CF932B38A8C1681877DCA0CC4BBA17 -250D9C00BCA8F753A4D3CCF503528B0CA11871F2F0E1F400FA9AA5894128D07F -CC739AA7B0A8A3B872647E1BCC9F015E007F208CECB08EE15C91ADF0F06094CF -A1A6ECDF5BAB53B67395C422F009C511570CE39F739F4C5187386037AEC9BAF3 -434368015408A4317115A1A8D296CF477E67C0A49614602F4B9C9007B2C78024 -E33584D32B6A1D226044CA57336FAA01585F3BA39D9616780FD6C124B63F19E2 -F20EBCFD23222358D8229B701B2703280E0B86E4771AE2C5017A3BF22A545246 -8D6BC985C2220034A34E0CA85BACDA735A9ADB3D3981E04B9AAB9E11A959AFF7 -0AC9B7C54AB816E2CF48178CCAC839D1216AF26D93547F242069F877ABA93E19 -45B75BC79A45D12E23B40D1D28074AB7D20597B517E0AC38860D1D0048661999 -4A424F6983DA23E0E6DC06D6F7EFFA87C88EAD1AAE2BC85574596B913279BCAE -B535042306ADE5EE2AEB1FA1B833D56EE907B1FD6838369000023CA728DB364F -6C2012E4C2614E0C662F88E2FD02B32499CAF6918DC050BAD957D7B727927B10 -24F98C9B780E6FBED86B63795719FF60F0EB582D4A5E9CDA6FE05D7FFB0625E1 -FB94151065C607914FFC72D372399283A48B6AA96421974F5AFC60E28BD25D48 -B28BCF78428B21EB03A00C878246EF8BA2A2EE7DB6AFCA47EC9A02EDBC55D2B7 -929A0B178491A4C483699AF945ACB840525647C9E7F55E11BDB76E2A6E3C2828 -FFBB5DB375F4E15293B494868FF31B07860BEADFF66311130A0BD51D976287DC -201EB34FD81BA3274938CE0A3C68324BC9FB70C00910D7C34D507B529EAFC6CD -24CA11385CBAC30928F4E088960C773020720312A7CCD60EA5F822E12855BEE3 -7A734C12C8956A373AA7658C809E4FDC280E3936D422FC50ACE01A66C73A4636 -BFBA5F940E08F3CA382B540FC795D6ED2D57190BFAB1430CE08F39020B29BF2E -B1399B2D3292AA99F892520F88C5A0FF9B479ED45721EB772BC18D4DA9CB02EA -54BDDECF4249FBA0184EEE9990EA902613B5F6D55D5B010D19188B0B36DAEB75 -922A7AE22ED53A34AC47FAD7E72374D47F349943FBDA4731D2E1CF30BC103F4F -575A03E46F37EBAFE903C74D81D8D3F241516021862D9E203CFC1280572E0C50 -359D4E87B2976C7F35334F4744FC78E15DD7979F29308148494C2A42A2FEE1CE -FBF756BA8683B7AB065FB07F666896832A5C83A2B85EE546FCAC2DD870FFDDCD -19890A5FD9D88FBA6AE267FC8F1664270F3BA6B990BE056AC79E55762990CBCB -D8D60EF5A747623D719C6A76414BDBBE4549D31C15EE2DD02D452ADDD22E64F8 -CD13525C274456A216AA919EB8B6CC3692D9128A76B03566CA33C1B0C5E3158A -0722E8236156F1B51302BD02C97D4C00DC60B298E2731485F3EAEEB50A4D7135 -72DB3DE87ACFCE1E40C8602A6C2E00D6F3C7CD712D214A53BB8EA0B445BBCF1A -412AFDA97AD44DA2DFD293420DE95B0B88584B2CC79AEA82685006BE5C6C783F -9957D4B1F77E2932741E056F3FA78033BCB92FDBA00B2E498FBF1000DE6D9DAE -299CD854743A82032DD62F04F4BFA9C5CD84D22F2CF7013C2CB6AC249D67AB12 -3396C3B333A5CBE9A97E4F07BE0DB2C71AE4EF79DF3DE952D7E473C5AB2EE898 -4968FF37D409DADF2432B774B5A0BA55AADA100D27C96102BCEDF0440CFABE41 -19D49D6BA5A8A887EE02068CB1788FA378CB0BCA436847E0925C2F883A980158 -694D66927C117212493015BCAE200249B7758DC98D849B7AEB32C78B2F1577D1 -1D91912C0522AF14F75DA48A197229C2BE08B6F8F52A839AB507C8CA524FCF24 -C91DCE6C53D784D15E691CDA18EB40BE0A7C3B24BCB99F36F7E8F77C45EF87A1 -A0932AB194A0D5E8DE4C567C6E86EB3E734F89EC1E4C485D81B90D505FDEE463 -B4EB9DCE53CDCDC19F4F99033DB2ABF9698FD153FB68576A25FD188B98CE1BB5 -B7FD420849C0835A54391C28A169F57EFB53AB29B0E9DBE776E37C04A6D6BD91 -20FCD689532059A98B4477107E868A123B273128F7E747C0F0724811DF029AA5 -22C2082D557EB8CE9DF349450C4446B4B1DEA70CC1B146AFECA06A1859D212F2 -BDAF41ED546BD1057F6F6AFF46FEE60FE8380E8899F71735D2C8D7EB9653B027 -68321432B37050229B6815A8C4A1EBFE19A76109EE29800B88E6C528054A17B7 -395CF482AE62445478D6F41C0E7B8F78313DF1DBED339E389875A8E883867921 -1AB53CA0A3980594830B13200073F966F005D1B1402877CA4A46485318A1B863 -24464445E264EBDD3567E9273FF01016EC1CDC142FD9DBF980F099509F330305 -3B138C51170BCE3D59072ABA6C241048612434271419A80DFDD1BA156A8AD54B -39E45FE64F1B558A712D93C46D729A1F8B364CBECA67A618FA1337247C08D0CB -9B0A418C729668147DEA47BBDE342C2E0E29A83631077DF34C861EDC9E80EFEA -75BE3040125BCC60D4FB69CDB78C25ADA72F2D104CAB8D3FBAAB5E8931A7B8FB -6EB41252542F302C11D3DCBA66345EFD816D9623BE2019AC332577E1CE8E6A8B -3DA487BC54B82EA9876961A4968E772603F37936C5ECB4C14625DC3E36E4BE99 -E692EFD3AD7B0814DA32B13D6C64FCE750F80E5985E708E54C7A545429496894 -6451BB8608F12DEFBD585ED62A2452377DD91AE560D14E54C9A449FABBD16F26 -AAD76026066CD8F5677BC18FE9F9BF89344D90B454B7A7FF20A3EF058816ECAC -D49486263BB4AC87ABBDF43D8BE4A09F0DEF416C95AD8DA91E187A5528390F9F -FE96D0CEC53022F1DD7C565ADCCBAD63B1105CF11DAEA2D2A9D827171CDE1B90 -0A71D9C2C782B74884C9605DAF063F99759079E3A821196781C756614E400149 -A6199699F5F2AA97859FC36699F86504D58BA77D14810424C2A3FD79247F3DE2 -1EE6CE0011250433EC504A3146827949468227E75687BB81EE40F4EDC2803F71 -CCE3BB5F60FB0E121253C3385543B6AF741BFD67158D2F38227A29C3ABA429A3 -33BC564E8867C1FBB058ED6EEC8FD0D835AAF442103348751C7AD941D1B16566 -761ED69AFCEB4B213CC9A75A1C01260B545654EFDE7042C8E7ABD0508F43D4E8 -B50E6E799A5CC8507E814EBA958EC2DD9655CBD18B018F284658C4C8299532AA -48EA747019D9DB74DAF848CB76192C0125C7A51695E8DCB73C4BAD826A83FC9D -AB177685DDF5CE3A7DCA21B02FBC6DD7B52B6C086B0C06AA24919A38845FB295 -1EA169C8D17210C14E712CD90099334C9EF449FCE214CF640FF39CA1DA2120FF -CF5A9F387B3E0C7EE4904DBA33444A668316DCAC18B85C98826F5FCA5CAB12A5 -9F75424521CAF417B326F8975E6574E5C9E55EE2772FE20AEC65C4CB692A2425 -9A29F75EDF9B31C2503C6A7E79A17B957EB19D4E5E666C83AEA92A8DBDB033EF -1628486E2BFCAC1C9E32676488BA13B3001F6AA2EA03747A3EA5D220A5F33B29 -4AC5AD623B0C9A4D0C4C6D41F89E3FC325747170BCB0803A7D988627CDACDEEB -0D9DFE8AC357C07F6B60E90C5DA3ACF868F145237D1710895C4859A319FEE038 -D7FCC9D56620607F5392D1998C6BB1B2ED2BF4F9B5BB6F80AB0CC5A535D52BE3 -A996A70D581CE43C365EEE168ADAD963D0B2892F56FDECFA8664737A5CC0595D -3D135410CE5CB4B094746D5CD8C3355C4BF77F9D5375334A119833995EBF757F -EAEC6ECAD4A62B90917006A1AE4632D758D437DB443D6D7661434C9A8813BB1A -80C5389D2210F4BFA057DA7900FDF6B60212B5747E586FB865E2FF4260B2E3D8 -0C78E003F3FD527925BCA22DFB87EC7DB2188309D8DF6C6424048D99C0CD7F18 -478740413A816B92D6A38AF0025FC79B4A8D35E2B3FF5BED4523B21E9CE49350 -AB42D25A5B42B1A49D5A468C38635E91AA1B6C835C18D5B2506533B4E77EC0D1 -CEEE1D66569498F6482BEAC3FD818EA2B3191A3A67212EB41D8C725F52937F99 -06D33486272E82A3C9B5A5457D0219A3CFFCA0F18D246AE6506915E055F2E1BE -8678389745B28EDC2DB006A0AA5A4C6483B24DDC0F3A38EED7CF30FA00B81CD5 -56757EA8C44164F2BDE071226598D6246C8A0CF972AF52331D0D2A192C98A320 -01435C77CA0B61256EE98D373A3A8F2B41622A6BCD5AEFEB9004B90F8A9558C5 -D4EF6B36912E854014AB35841B99F6E1AC11F09F536134DE90865F721DF86DA0 -D13B6BA2146D75696B2C2DE21F4ABAC37B3C0CA96BDBAE8334E2FA6E38F75866 -FF7ED0F64D5896CC294032AB86E5C328A6B06C2225A617F39CCE8B69AFD5B041 -9B1F9FF00401D7F0C9189B79B0C2B700945EEEBCAA38A9E202CD5B68469542DE -E9EA782D7C494CC6B411D614867B498B2C2729D65D6087C3D17956227B02345A -FD3E8653A3D4A9CE1FBC46C7E8690C803B4556A80F05674CE27069D24563DA46 -7D2C4219D242453D06650A9522A3184246937CBF4EA2A188C6B2A71E29E0CFB2 -934B93550B451AE9847F96AE18647C09C927C4AC12846180DBABF3F145FE073E -45C129D663E21A1F1F1F6755F6FECD1C1F7061939722D403BC2F2E856BBC25DA -F069F39A441C837FDDD2563B3A370EF73F0835D34DA86CE65162917E84C76201 -0A5F2854830822FAA545FC0A0F77E62A79545FDCAE728FCCDF2B720C0AF9A9C1 -2FB5878E9831D42FC9A56D41904B1551DB2E7410EE055948CDB8B9625C6DC618 -F8282896C1C258608234A372CF031E5660949250072025B7EC4E535899EA8BD8 -D1CE98A870C159964CEBC0ECEA5DEBBAC1CAF86A398D9C84A076ED630991501C -141AE2DED1688C1F1389ADC40B025407BAE7EF3AA847EEBC61DF58A6C3FC8F2A -D9FC820DCF1DB3CD2FD32A46BE1B98D87F3D291C8229DD9169E370BB10706B0A -606D45D65E3F9A4D5CA23DBF23972668A0D0FAD4D485AFF44AE284B91EA6BB13 -108B9E0AA5C0CE5EE80D9A6D10114ADAF14AC05569B7CA7F7A8444D75D504700 -89E7DE515BB66E320816BB61DF65D9B6DBCDF5BFEB475EB6BC93661D39BFABF2 -B542CB9E5F38AB3271CAEC60AFDE8FF533DAD806B61C17A985FA5CD8E537D941 -020D2CF7CAD6389AD73578558B49795CA5D2831FDEA1BB0BC181AC848EDD5FBF -E9A052FCD5BCFB883C704D80D9CA06C7D147645742EC0A601F66A5D198A7B6D1 -7851CF5D65E96E4D801D87FD271D079A59AA5E96E345053FA3CF427A80D78A5A -D5007F12ACEAA2F21E612AC2ADD7B35941EAEC728CE7BF64809270D09D469BC0 -422C3760D1D6FFAA75B0F36A1961278A5E63406E4AAED935320C68A3E5515C5C -226488F98CAC3B04F016A03E343A9835EE8E373A6B49C685F1B02798436BB098 -DF854825EA14526B337630DFC27914F374DE9A915D77369DDD88FEAC626B0183 -EECE378BD9B0FF448EAA2B656A20102641B181433CAEB6D6A0A30A8346E710B6 -B9E2C6103103CD25CBC8195C02DDB8A6E4216F24FEC5E0F8092D9B74F7945F58 -C8BBEDE1F6993592E723AD0F343B2B118098F64D52BC5726B253BCC4EE3526C2 -49D22E2AE02CC44F11C2DF0F3AB0AE48BA03795C1ED3D5E10B1158690D402C43 -FF3DB585DBF3EB9EAA8083DE62B198E2D81D9CCF4CFD13D5F5DCCC1A07F6D94A -E3E11DB551CC1124229C84F311EAD1EA54B30918A44CE0CB565C29C099ABCED3 -25EE19B9B1775C25E2BCC0D580275F4E526571B074CD8531C66A6302FED3EFE6 -C516427341082633AF21777A02140C90779B33CA0D31FB4D8A79474454AF949E -855C5E1D1D9510B2759A9DF9626A2DA26B6DCF05E68ABB11B5321D9299F3D8C3 -91588707B63CDFD33FE34BECACA899612072830172F1481702541322416E3F55 -BFD2BBFDD9A4322E27576748EA043E4092603BC4B79019674A29378AE9A35A82 -42405650D62A13DBDE6BDD55A831685DE31F9C20AB76AE2337E1E7CC6B0FB44C -FC396190083575E186BACB52932AA11624D830A58AFBB2670E39242F8609BA50 -BCB062991C4A193C09466F4FF2AC09F1E7C094F502E664F129500F2B93ACC2CE -B916D080C6DE142E496526F0C9A5804688896D31895D0C0ABB7A0AE4918D3481 -5360C8CD618960A8F014B0AD55575C50B901C5A57AEF996230642A5C8DA0944A -76ECDEC0730E6EFC7FADD09D9095FB540F377D460D159CCFD7059B0A34F738DF -012B7CD8BA63A47263423A9A70C14BF72386746772CA8954C5BD1F1FC4C77115 -FD47E72638FFA322F399D7123BA9DB28022589735875F058DC05521309DE8B01 -27387F330C5489B1752B789561FAB8C92ADF7778068BC27E25C245539AD11B15 -017A7AFD7BFAD63D0DC400B369194B8D9E4D298D548FC1968A0063A7EB8FE1EF -71AE77F99B78F6529CF9415E886C565EC305BEADEC0AB65DEABAC40DCD5E2430 -36315F52C005A9802DC49944A423F1828513EB381F24B0FEFFB99FB53FB86A4D -DBFD7B5994FE736820AEB30AB5832ED56048A846A1388D3BA69C68180E017170 -CD6EDF246A127BD8D8D24664171024ED9E1A99279DB6B5FC91E4248EDB7EF45D -5A9A851EDED58F11D586EA07F9D32D80BFF6112B4395916FBB5DC06BA0896492 -D9C770F973522E6CB5CCC92A08CA1F9067F7ED0A35CE4103EF73C3BEEE22F2EF -B3445433295AFC30D464929C0607FCD7495F9A6C0F5727CD8844BC3EAE436046 -B8D484DE4B8BCE607904DBE5D01924A86E18F73C5D530BBDFE7DEEA30ECF1C80 -D10614F7713CEA36DCA8AB9DD488C57E4D0E846B48433DE35205B57506175570 -F8A0740F6B654B7C3B744C5D030827DD29952CD579BAC27E25AD67D946F707F1 -EC44D9AA1FA6F99BBC9F473FE5191C7A918951F66AB09A9AE6980DBE3CB1742A -9D95175D440778A3F9CB5B5C9A0AFDA59EFB9EFA6883C836D562E2629C9202A1 -0C12FB0B7CD4313B89FC47202D9A9131BAA40082CBD9F3B0757853D79FBB63DC -4230097FD151C9620F5238C8A3900D3F4D0A4E9DFACBE9CEAA5042A8DA1C9838 -554C754D1F947DA0F13861F71919A886935409EABDE5BDF80AB586AD80FDFAC3 -259A58CA5B2164FE4E8BB441C76DFAE412F9D8F6A0791D654C8846415B8F50EE -2B51DDE94C594C35B200F6394727F6AACAB7BCA7089728C4D43D08D92085E899 -4D49B867A20D4D988269E5BE9075B8598815B98A33F71EF1DC57A16F1F8A6A21 -5EFCFCB8D5D6EA63BD71AA812A06B65178BA861B49D228B0562CB643CC272FD5 -5B75D91C52B23F5119AE56700D9316162537A4B11004DD2B36CD5BEEF7CF5007 -1321A5A8FE603B12EB3AA6874E2ACB44FF89228BED8B457E1E671DB262FB3999 -F21754172CD06E250734DD0B037D39BC7F95B59F706D96B3438FBD36F8096AE1 -CEF0C6B206FD1FC09A267F05C2FCAD9D48B7ED79C5274ABB901EBC710C56CB51 -29314F4FBEEA48BF0C63582C5071627BE63F1A8997D45DDF0777F983629FDF43 -1C88D91790B1ADD40007131D9EBFD2775CCC7DB5F43E6549E6DEA92FD93A6E62 -5F19742A969B6DF6835E58FDBA0ACA7561DDA911B8872C5F7649CC798CAE3BAB -D34BE5B8FBC192CD49DBDF869865C89CD13D5E1DEEB078CA83B54115E398B027 -F02F20A2FA1598CE55D6261D71F91B8250C8C2F2774E21C623AB8558E6BE220F -5CF0D43E6F48ABB5E7AE213266ECAB04810CE30BF85EE98D8145427EC8CFF5E9 -86E1BF142EB41D8C7276DE545605BF8104806355303409CAF619EAF139DF67A0 -7F768B867066C95F429DFDF448465B94979CAB16A0DA2B116A4F42968EEFAC43 -C89E9A4B2C9C4EAFFDD84FA4C3A997D042389392AD291133A42152ECEB35D361 -7FEDF25957674492074C77EE5DFBF544DEBCC883C292390C9DDF991B0287D8F6 -D3D070EC59023AEC64BEEF14F870339B83AE10DFFC49AE74AEB45ECAE8AC2E34 -243D7520D4845D89FFA6B594D8AB95DAEA65868E4C6FA56616233269F4DD0A94 -FBCDE3B1BE6D7A98F62E6E58208CF6B524B9B826757A5E443A07FDDB057C550F -D3992B9E464E6EE833CC53086F03F990C82B36E9A1810B24560DB09814C855DC -2CDCE238364E42B9382BEE77D9C29BC8606E9A514C0EA0C83884764F6E034E20 -9BC152C2F10F0C867CA4CC98D0D0769FC254D8DBA38215F6CC85F3767104126B -2CE70A4D40C8F8CE5895FACAF369FD9BCD27441EAB29EA0427FB06F42F8DD689 -11533849A08759376E87AC341AEE5FB95CB3152B2BDFE9CB046E012AA3389B15 -EAFBADF9C8869E53B009964B02239BB7B9DB3AE01D0F5B33DF315520A733745F -904BB8B003624B3B8511D67BECD37DED77F0237C0D51B72A7F7F92EEE9A04BFA -9EFC02EF4699C2EC0F4699CA60381C4F2A39351AEE2772AFEDACC90D92333F89 -54D65F161351FB24368068A78C527BCF188204033CB08065A892828F43C05A2C -2648F9A979733190786A03D47A727FDFE8EDBA3F49255BC3795E373CE2A933B5 -2A72E2F670977F4986156487B4974BDB948E452E2DB429D3D2FB8266F7B36626 -1CC210760CFEC9D23C9621ABE14FC18AD7C9FDAD031D56CE72EB7982B653B8F0 -D991F9B5A0946AD308355EDFBB2A3F62FC8B57B4FF2F66FB35647381E545972B -8099A7DB9CED093055CE1A414062458D701ACA675362598AD0ED73944EA9DAFD -6E3043B91DC39077C7758439BE71CABC2C16B59303B49FA4C02B5A5844A01367 -0B8068FA9B4CB58C5F24FF462AF013F8EEED386DC5E5C0CE30E5908E722E40FF -860C02C080E14282980C09C5307B63806D01E6A61A37D39DC2446470D7D90E45 -2E3CBF1847BF4BF8D7845AEE4AF1CE34978577FAE2A71D501F97C85BE49C1583 -A07B590256324105AC3601D061149ECFD87E1FA726089A2C19D1A4B2B273FC8B -0FBA9E23F63E1766E5FB216877FFEAB2473D023BD1F793F6D7561850BA060C43 -7342682C622E0203BE175097AC69CF9324A87BABCE6FDB4AF08E27C3D8E7D65F -DB19F68B3335B3EC2F5E8EE1462C52AACCB0A9898205855ED815A42830675F9D -457479A33BA6A034F3BBAF66799EAD3A152624C3F50279264C8CF38A66DF5FD9 -97F9EAB52B7A280667B42983D65DFE44144BA34FB1BEEC5FE1B7E3D201038C47 -88A5DAE0E719C8E4B3D2988BF536F2C94962BCACB12A8A28CA12487B709585CE -A36F7C289BDAFC52E9374B05989D2B409ADAD6F18149BEC1DDD16C8FF5B18BB5 -4AEBD7FBF9C62174979665D2BA7914ECBE3D0DFDE3FC2AA6FF7F88A37240A353 -D3EBD858B0D1FF939F40449BA58D592B85F2C6217279FB62B484C2C4EB0B6B5A -D35FD070653A16443D51D291C4A9200AAB185A28EED382C91E307A3B4AA1AF26 -EF0E6837730BA40038B336863431D30525DF8AAFB6FDC92C0E98E5528956D4CB -330DE95CB79542670A8C89A813C356255A263FDDDBBC543AC5D7B2CFD1AE25F0 -D6A01465EACF69BA84AEDB6F0154AA25AEBD7927D636CEF416494AC8E5340424 -4CD0AC43C5C03598CB6BD8049B34B2641060DBB0E3FCB5AC60BE229F355D94C4 -225FEA17641AA23AEE655FF569F90E24C8CF27082E4E7AAD634F281612F87705 -A15B7C05BE8330AA970EB82B01DB4AF18B3117BFB53860B40B370A98EE513E4F -2E6108BA508172CEB8BCD22CE4FE5188D2C7DE76862A3F78747DDEE3A617336C -BB7D3EE52D46ECB52DC057E82B6704A2F1A0C3115AE8E7D2D8B31517DE586AD7 -DB72A4BEDF2D22F883F70DF03593CAC92EBABC5AFCCDE1A78509E024C6AAF558 -C45C7F1A4AAA246778F967ADAAC21699B3C2F7F53CCD424642892C3173F61703 -BCA47E653C62458309689785EF8EE2922E80634449F0D5F7A8D70FF8561E30DD -CC464AA3F3760E7ACD1988BB44770F258EC07172DFEFC95AFE45B7143F61BA47 -EFE05472C43A1240E4ECA51664614FB9E46C08CB00B3BEB9A1979E7CCD6E198B -40D5D6FF8435ED0234FDBC6786B0EED8646EB3F49B68D2F4E238A3A5FB509FFD -0C18D7370C768192A66770F77F254F3D6CE99865EE852437775E2ECF6A070D06 -629D8CD6349D0E40738DFE2B2322F8E9B53A40B6FF442230071FE3C8F1CB165B -5AC61446AF6DDCBAF235AF8C3E5897B295F5C898871FC7676EE5536F23D948CD -730F67D658DCE8BA321DE88BFC5B2D5AFB76D04CB7BDF3142E1CDBE22218DB9D -A2187DB6C2BA28F8B1E56E4FBDA64A73CC93FD301DE2ED8661D61D21A54B258D -664D91305B62BC03F9FBAD1C9B09643DBEB374950E8BDECD2840E3B48A2B0045 -85FF594BB6AFCFB94BC4F82AA8B81073E9A991AFE6A39709606967EA58F6B498 -12B336A139F1C8398B10C43468E4D54F8DF36F74B9A34271759CF249F6987E16 -9A119CB6BA19300AA1602D2A1A68E7859E0BED5ADE943681014B83E4098A9724 -E7BFD908CF6E90A25EFD148CAC2017C71D84D8EF214FF9417B0FC8E475513D3A -39530CD26C08004CFFDCDA05A7858684F5AEC1CCC131ADD910A51A93A4F1E288 -8486BFA3CB3ED0015D8527731C53D273F5C51DF3768C1FA7C004537457D0EC86 -45F2484A76FE59C55523C21EA566D7E75A6A825001173F6A34AED8537C0D312D -9E5AF5BBB8C19BEA4071BE9B14E75EED39BEB37A6E78CCC9C58FC9BD74E93A16 -BA479DAD22BF879F7F76D7CE0A39478190787C410D4E7BAB6CA813CC2AEE1A7F -E1F35431FF07AD1A5DAFAA1853385E96022553EC5B1B625118FCB6C1B30051CA -E231DE09B98D9D99E821F50D435BE18DF0621F60D9D5D37A55CECE00EEC5711E -3DA7A696E412EC22B7B0A48B56FB2FCC5CAB6BCCA80F73AB9E77536E03AEBB21 -AA2E7F5FB2687E7A726B1F24FE9ABD388C2DBFFB8C7645ECA1C3192007EDD223 -6B79D161F94F838C53E1D994A9D89409D998427A4CCA56580F5CEFCD3163F90E -F4DFFFDDAD963264CFD034C40C11B5A425C1A51D2DE781E03EB2648A409819AC -1D6C73F4EA08031B6ADCE61F80323FEAF3C049ED4F7A6008F4EC04193CF051AD -96F15C6A47771B4CB267DF45255EFF5D7BEA21C4B8F06598E0FC2F3E7CBC2B1E -2DDA078D01D9B55D8A20AF61666493B74A369F7B64C2D7B7E3109B033026EC7E -C2A01BE7C8EA7AAD1F533008F6CCDD3AA0898238BE055BAE80E15D3ED7778C1C -0AD9E39ECC67FD9B9910011F980EF3618F8E91ECED76263D0A13B1917A86AE3D -D800879EE7D742328B0B1448AF3540732D52C9D6530CE36032586D5EE643BF51 -17492A3BF5CB62C9EEA019F77026B13581541A06A1098D6F0E330196E0B929E3 -D923C0B43C28D0BDACB639F7D0474B84A43A3CB8A2C61FFF0C07479EF58825F1 -133487DE8B2A382B58538855165F466A3F066BF3BB90F3E49B8F92D69A02D0B1 -F79BF014DF7946D0E492E936837C9102240302E26726943BE70C0BC64BB08D4A -9C0ABF2E1444980CD359553D67B178B52797BD03F64C69BBC4737C654DC2FFA5 -29F64C35D7CDF2EE29DA97A7BA4D32E475702767290E984BF9EE85EBCFDBDA24 -C984826C7564AD82249AD05DD17BCDDFDE646E822492CB3E6648C414F9DB4A20 -A76F6DA8EFA046A0A50A2834671B66852CEEBBBB57F1C162F6C5BCE7A3962A2B -D08D49B3D8A66882132B494FD028BF40161BD24B07F3E851B372D8883BA6B955 -51F5A535D8D44E9F5141420798770F368079954549B505F94541B3988BB1716E -C4336D6FF12EC282597DA8DA87EB66BFE134885A7A1E27DCAC28B228A50CB41B -5AEA034FACBE35433B0764F451A51DDCAA3480A07910501080A94EDE59D95CFA -94C8EF5FA0E86E751A1DB653D6C9022B94CEF77EE80455FE513F17F07E3B6366 -B14032684004763E72298DCDF3A57222D64DEE2E49D8FBFA309FA6F4B78F7414 -CB30A2C8F4168B9DC02C4D489CA1305DB50D1F2F02AD88680285C85DE712D2AC -673C235672CD6B428766575C7032971930AE264A768D40474C275E1CA9D8E690 -E592C565FFA7EA1CBC7F7FA586ED8E2987217F871642F677A588DF3C10F2A855 -78B74CEEA437FC6328DA6E1FF942CE6FA971381FA6440490C0DB60644E1E4237 -E2431B475D7AD678E6A72AD0A3ED0EB7E026ADD2666D99EBD4F05C2E1C25FD19 -86641C1AE15DFA7489AB7B26393A8F77F1410507520ECECECEE8CF5D6CA41F7B -85EEC1DFBE32CF43514CE691289A06286A46AC0FD23A23F7CB60293685ABCA88 -2996BBDE3D98F57EEF708B22007F920EEF74A55BEA404F6B7DCEE10DDBC99241 -E003FFCE303F78C5EBE1E4A60F33C1FE91877806F225712D2095141E1E43BF0A -23B42A2C3BA99F1F3C46127211F4B9D8BEC8563B24D3EA2F1D3C37C59EED8E60 -EBC4A7466E963667BCBA206DDC700B1F99D5BB54B1ADB843797DEADA6DFF0D58 -43E1EBEBAFEB9706857712EDD1F21D0DD1102A95950223A36BD84BA78E7085C4 -ABC2B9852D1BDF205905948B35F85A553FA3719B0E6D5CE2D2167EA238ED03E6 -C83B2909079CF9D0AC89E8ADF899FFEF1A951158C8257C256AD7F00819F29F37 -A3C4D48A6C7D1FD0D212107F462406BE4C74C7D241CA0BA93FE225A31190505B -B47F435974F65228B39D69A2CD94D2E64EC17A0AE11FBD7F88BA89868CAB6B45 -06C9F7C0788A6758594796186EF6561723D9E3D540A0E4C3F4681285E3E53BB6 -0DA52F4A2BDD414D1748586BCC68BB408775EA9A38B02C1D30A12E6EF56D702A -4B2A443854D9F13DAD905587E879497455F80FAF60D5E03F0951A5F57D6B0B87 -FE19E867C3EA3CB445527EFAA4110770828CCF0E013C102C2B1DB02AB939D46A -8EB43B028A10E6C7EC3E616FB498DBD170333013A4008635B23F7CCDCD8A0879 -34D2FF449D6F2B90C31AAD0EF5F5AFB312E0FD496FBF5177999EBA15A448E6BB -A45F5460FA0E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSL10 -%!PS-AdobeFont-1.1: CMSL10 1.0 -%%CreationDate: 1991 Aug 20 16:40:20 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSL10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -9.46 def -/isFixedPitch false def -end readonly def -/FontName /CMSL10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 12 /fi put -dup 13 /fl put -dup 42 /asterisk put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 48 /zero put -dup 49 /one put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 72 /H put -dup 73 /I put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 87 /W put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -readonly def -/FontBBox{-62 -250 1123 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142 -08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C -30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF -C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A -BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78 -5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D -43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1 -374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23 -DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4 -B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83 -63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B -89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A -5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2 -C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5 -7A5FD1B49560969BF5C44F3749370663A04776F749DDD7B50674D93254426C4B -EFE264BEE7810EC93784B7C01A7F29EFD92547E13A2C7851A2E709FBD5B87850 -4A44F08F56A542DBE072D2FBC58D9E6468E1AB858DC35240E30D31C7AC13D6C5 -7D2BB634BEE96FA0E10F842B11A789F72A333DD6DDCB1BC23227EBC406E50B40 -30AF0C48E6359AB0C46898CDAF1118E46BFF8B00F54EACBC2AC262AB898C42B9 -2E080C10DE923C1959C82C55551BEAECA9B83CB5E9364252CFCC406A27FC43B9 -69C5BB80A41C85D80EDDCD5029E57D77EF4128B40B131799B4DE0EBAE17C595D -A450B79703CFDBFF2D455DA910FE978A84F7ED3852BD7E3969F36C3F1BA3BE81 -9B299A46CE155CDD0BB9584D8278BC323B43C6DC278E2AD1D77733116900D045 -22458514359B1EF0E9CFA4516B201C65031C002AA05514C2318959530C2EB73F -439703EB108208492CE953091DB2E5C76FF7E7005FEBCB01A6C62BC823004287 -105EA9213BF4C9D647629BEAE0F304A369E81C6D9A1F24B98E78D0EDE100A874 -E3063FAC51AC5972896DD151B0780613872DA4FEED668C04FB312B7C5186AFF7 -70655B9658FEDFF154B9A13D1B5836F9AF14D66F46D1C45AC7D463648AF9EEF6 -0C17A66F7E9073A202EC00779327F491B51DF6C55D13251D23431B796B2E59AF -3931607D3F1A2A045B89891E7591B2B12D8EF65F473E1247400C6B659B75E8BF -E440E150F2E99A1B10747489BB813DFB1D4E7AA795E2214D3BD602CBA6E8573E -1F4CEB6A1838B9DA209396DD3B91614A4A385198D49FBC655525E2B06F030E3C -49283EEC4478DE3AF41861F4735D3ECE7D33C691A166035F8673FDB0B531F898 -C4E7072358144B59BACA5023AAE3E8036DD031AC6FEBE425DB5F90D39A79E7CE -CA99E6F917EEE7DF2D08126F9136AA95E8E41B478D989C03F4F878F997FBFE04 -2B95720FDA3337E5BED32E070BAC56AF0E355B069E1E6889C9D6F6937BAAC791 -5AED48536D08CA46BB78B23C68BFDC6DE47EEAAB93F2BBC77108230F1EB87F73 -DAF46561BB346ABAFBDB677554C9BC17A2E51C9A9E8B2E34209066D68F00D78A -AF29130FA85DD757793C9F5A530571F5CD66A5F4C5E9FE9E169DE23B884BE1E0 -B2615D294132B328FFEB8F0442ABA50E426A56EFE98BEECC32AC74A7F0F8FDF3 -73DAFB11640FB3E56630463621162219B9724EBEE31091FCF2D8EB2804DE56A1 -6324D717C155FF07E5018CEECCD323F0BA1069107C9622347DF889F4B160FF6A -ABD50968D9FA47DCD238F1C9604776700F419D41838368BF226CB8C55C205FDD -56B5A3F323249337E20A596FB953D84C0985722F0F9C839535DCD876CFD1DB11 -EAD95F81FCBEAC415D2805AA0942008AA3D7AC928A05DC19783FCEC5E01160C9 -63C211AC8E01A6462D900E53B4D1F0D8C10D84F1237324688A08CBBA419E59B0 -6AC55D092D154BBA8DC0B55333776A50F2913818BE2140ED1812AB499E2E38CF -67542F031FD267289A7AB060FAD335561BD52289D97D2AD51A0873EDC8949C19 -AE7B8FB4D296509D9D995FD051EAB8BE66C6659408FAB7BDAD50C31A61523B78 -709A9D262FD5EA01F59268209B4B35D760A539EC69AEEF23DAA56C23B4ECB893 -5AC1FEDE4B478AB5F547D49F2E44018D01E64BE5F36837916F7D19BF15D9D4DB -BCCC32DB9A28EB375D1E4325C7C693D9BD88A70C3620D0599C3342DF779716F9 -E18A42D3E13C9609DAC603A84799610FFBDA4B853A0426106394FA8E42FF8FB9 -1AE904388AFC7F2FBC1150993F5351EC17F8BCC86F41C51D51AA8845294511BC -32AA2479F0141B465FA0ECF4D8761EFD23AFD85420C626C5C35407091A2D214B -30A45EE381C9B898A083354F7CDBDC0CFFEDBFFF455237B54E0ECAF8309E6D8C -FF27D347253E8BB7B417F5B44B01081377EAE2C7436B3FE3D01E464DA600827B -079B0A2254B9F88D1C61C7F6D5617CA305D4F4238C073AE29B6D1983CF94C62E -F0CCA0404BEBD074F11483399E45146BCCF17E6365822B7B51019FD473AEEF2A -695D94232796C71A2C50278FDEA1C0424E58B9CEBE77B5BAB0796CBE1A784766 -A0E839511930F9CD6C8A59B0FCA8CE2EC2664F6E87ACB790C0CA1013B226EBDF -3FADF8FBA0DDBCC7DA37FC5021921FA98F08E9288B21451BC06FD1420C069A53 -CAD2DCC57C2A66F76421D1EC65E5519A11BE065CFD614BE5990EAB0EB683A122 -1C70415F20AAE49258EEC654051C25EDFA0FB0FF0336867F7B18D76F257A8BD5 -D0F082105AA8DD426ACB8CCB1A5079CD845B99FCC4B1240E12A01BB9117CE119 -42FBAE841A1F85902BAD49E631D3AA217AEBBB2DE5B67F7DB47E06ED9FCA76B4 -C738165E8381868EA9185007FD72ECEE398152CABEDA2B0F5A978F3B49917379 -75786B51AEF3178A29DD9B16A223C84561A64E0F9B30D4C3BBF919E50F240AF4 -ABA9ABF1C1D9500DFF5651FBB53B5EEAC51A9A3B27A24BF7541345521949B30C -39F519C040606C747FAFE8E046A98A45D02CCE57CD74A48FC33D9FF36381289C -468139415984B5671790C38DCE919671DB1A8C0EEE1A7F54431A3C59378E829E -F668815796359C54C7EF7305FF3FB0B0CF3E9553C1CB27FE768FE3E098BA4520 -16690A5B3F2D002113F48A8946B6898EAC1C517AF424F915CD5E5B632004B323 -F89D471BE0C1AB5934E73C355C6A72794DE07E6072D1768C25B4B8B4546847A8 -D1A0E21898CAF30F9E298B541AD0E346D4B74512D54B035AC2FA7474C06F6810 -E200C2D10C53EA5F0CAF74A7B0EEA4B9D4401EFEB642AAB30324DA2A5B89D0FF -923616E4555CEEE924E62159EFC62B83009BBF4EDFF78BFF0465D8CFB5804C64 -3085CEB43A7D402E7E52DEA25088FFD361D3CEDBDCF1C18285C15EA1EEFE2EBB -01AC677391DCA6DE005306F81E22BC2C8E24C4652A8CAF251EDB5E0B528A08A4 -809675DCD887033951C59F342AC595AED7A320D18BE2EC00A4FD1D7080A67FE4 -9ACA25B493EFAC70B6C0B432250D2934D05E059BBAF6B3DE86CE33F8BA70BABC -B28E0710F87D08F06FFC885608E9168A379A2F3EB249E62B4B2A0D09D51A13AB -4168398E09F793099C4C5EFADE04027C4E107D31E9919C08AD69AFCFBBA3C3F6 -39552C8DC60752F7FA2BAAA1CA89B8A79F0510B5054C71634CFD2D2401EB5AD3 -C71CE94410DE7AC64315BB52C82FF2E87DAE8DEB0231AC7C95FFF330576AC7E7 -709316BB5FCA67A3FA7B740E9D94E725D12289ED95E379529AD26D950E995616 -9BF5D40DEFFE7320318A6FB359F9D895F7AC454A94DACE6DCAB13103C87654D3 -8641A4029703981BA8EAB3BDF3759704E3297077853BDA0DC32DAA45BAD52B8D -B0B3DFE4CD99E92493937D1FAE4FEF8BFD83034B14119B4E1E81192795ABCC54 -60EA53E59E388B2462579EECAE76E9D7538AE1F030A7C2EDBABFC2EF39264B25 -1AB664E8FB4FD3AFE50C5C789FE09F17047FAB6423F0B8F7245C055961A68A3E -E52EFE2D95FF3D5D4B59926DEE73BD53760C5670825376DE0FE488EACACA1088 -BB49CC951C5123672C77452DD0141E35A4F7A519B781FB7993DB9803EEE0749A -196ECC81583E6F6E6EA5C2483834DFC23DBC6B19073F19753B4694705DFA6498 -72E9DD7B53A123DBFEB26F2E3574160F538A4095C31739EFFB6EBFD95DF1D2D0 -484ED99692BD62E3024684F3ECC3F8F053F7316DC95E87C7FBCF72396025E3DC -211B200C7A0B07DF73DE5C3E54AC0ED5351E730CD35E4FCE7516B4F250B63510 -1B8091E85FDA67E8CB8610FC8C3BA6102FE173418B846AD1F9497B819FDA5B78 -1BF8E370BF18B95E7B26A29B8751E63F38FC78FB882B7B69C25A7F266D958D36 -0D4C7DB1B8DA32D333B50BBDD6AE691EA480AB3DE7A5C6F818EA1E1EFA0AD197 -F03EDCC93A7CE7193DF3E9E583CDEB97D11756DAB3A8E565AFBD7929F8C71A55 -377BA9522684CFB184C8E6F6516FB73E59EE46132FCBEB878D2340FAA2BF051C -64A0F7A398F30EF2C2A7346659CDAEDE932E5579E44EAC17EB31BED2113212E3 -1AEB2DBB63124E60ACB1C853612A1304A15059905F769C6EFD2B2E0FE93EE3E7 -A342131EF659788EAC53FDBBA84D320A6A995ADC6DA03DE53BBFD13533EE7D06 -3C43FE41104DECD6885E397B67B16FF1E1779B5FFA18B8779BB9A99521BB27B8 -9E95CB638EE5A4A41573D6B65A9AB48E20AFAB5373C75C3AA928A828FFD5B8DC -D406C8155F94CC10260E4A2ED282C3D60B0D10E63D97893BF559979F31EA574B -5EF21BCD88136C381C29CE35E2D3F4D63A70F979BEFF8C009AC80C759A03D559 -FE8ACE97B6BB2A713043F853AE57E5783F449B2884A3551A3CD2EF85F485684A -6F9C0493B5F628298F49065BB1E85ABE09A5B8A97779DB4E478FA0567F76BF44 -674429A44BB35EA03D0AE4C0C92C6E674FBFBF39A9090D4E5F9A040B4339EF49 -2B1CF8DA2DD76FC000CB175245F2B4A2135CF04BDF04E9F29BC5749A790379C0 -96C57E8FFE17D61A2833D7E164E1AA1BFE817D5BEE037D4B741BFDB90646A8DB -6C9EFF527EAFAB6FF2A8018C20298B700358229A3435EA4EDBD6B59F4C934520 -9111571018CAE0C6429027C2FF53144AA4FE93AD2AB352EAF0104FD1E5B3DFB4 -1C9627903B2BEF2B3997C8C4A158096AFCEE97DC0A74AAE2563D1922A3C5AE7E -A99ED5BCE2A6E9B775E3986872A9F638625E0CBCD65A80565B3D559147A506FF -81AE38AC03BD4A600E98DD856A8611C6E163088DD4807862F794CD4D324C0FE8 -0D96CB0F9052B4F2835B840DA6783020EC367270EA1E184FC9FEF9D22FCDBC8B -192699B51FBE05B9A80170035929D859F29C44130990ABE674D9ED6C69177580 -9676EEAF9C053F4C514756F3481ED1F6609AA2FB5C6D97F548E4524A423F4B00 -2E4DE423FD134FDF417F74EA4CC17F5E96D153C9D10BB4993123AB835A6B62E2 -CCD4E356062EAB83F019B6FFC689E66D87D4D7F9C95DB7B5CA6614E196552D9D -CABB6B6E0AC3890579CA7F20DEBF377DACD6C0697499110E1B10F2C58641E105 -8B47211E6EDFBE63E38EB023B4904D7459030BA1C4E37F393C8BBF0D3FADA478 -29BFB4436B69238810FAB19C66FEE3DE6DFB43D55F2DFD07A9064DEA5E552104 -4950740A18F1F0B6A7AF574EA71D4BE3714164D362F138868BC698CC4465F675 -AB8EC379E75934696B8E5CB849454F5AACD2C658694DCFDB8A5E9D06D5EA13F9 -A46AD15FD3049207DFB2B51EACC552254C4D4D495CF457FF81990C0A07E56245 -C1CF05311B52547C599817B72E81162540578B35E5296E416F3F0F3BF8A55DBE -22559D5D8352DC7952F6FF1849FD4E257C6F0A063884CDE3F5AAB1893CAC5475 -E78F71D55D1EFEFE2150AFB45066565828CB2B9D672823E669F9DA47E2B5BE5C -8EB31A2FA16CC6D342BA046DFC32AF799476E80C36D87FE89BEAC2455E0757AB -F0AA69CE84B9955EE420973A9FCD16C89032F34EDF41BF044A123F41BDDF71CA -BA5BA6B46E798EAEC9219AECBAA99BC417D7F5C5CD1589D5F84C2F19D7F9A913 -11A7D6C47005514705C9C617E4BD55D92D1528608F72346DDE5DDB47F5C59CE9 -0B27F41EBA097FDB67C335031B5AF893E9BBF4DFE945229E2C4272115A69B65D -025A58098AD6B366207A2065E865EF8F8EA1363A4D5FB0F62A556CC885110B98 -2FF55126EAB50DEC2F28415C27588470601B1FBB9E8FECD8A9C55E213BED6E88 -3CA6CA6A3FFFDCAF09E748EA047CA109960F92ABAAAF99602F5B13E4D998516B -B459808807B52949589A22166076A28EBD49DA713802B7731E047104630C89AF -C99FF96B9B16E0901696AB8E665CB94C39C0957F08423AB6188B3F505B37A3EC -A449345CD1208BE2845C13E9FA2B8D03300928FA5424A7F8F27E9D6716EAEB29 -E2BFC6C41648B9F13FA4A4D8D8B81972C32FE45F1817B3182D270AC9F6B5B001 -4574EFA7EDDD8E4BC7BE6BFDE7CB04FED64E104920892B9E98AC63F16C0366AA -D317A19C71AF274EA7AC9F3409CBC042A1D7875459ED89887497A9152E212915 -B83B7721D57B169B1F201C3B0605ED07D5997EC79D9F367ED4F455DD7DCAE65A -2B9057B3E6B2A719956BBFD189372FB8D3B60B075F15D91F5E3A2DF51430C000 -038E71AE7AE040E1A0CF0A3BDB8F21D6C0FDB1339B2821F7542A782A43B70DCA -6A46832981BC5DB43B5D0CF208F38E642727AB79E710DA022D47D39884A400BD -DB5F80A39CD46558BE7915FD7AFFACF243AF5A3762E76D33D6B6AAE666F67BB6 -B78BD2D2BFF6F7CC10B3B66F3241BF6F8518EA32E020A26905E6AFBFBDBDBA17 -244BCC8D6A127D1A8690DDDF509E06532D3F28D9235E965F4D9E5D8664F0BD12 -11FC9D1A8C7C2A4CE4FBC9EB95611D9581C3FFE6991EF04073803DAE1B5D717F -D65437213F3E1A3CBFC1AE66746FDF8FD949F7D72F73B11A01C0FECC9B51D203 -617750CD5DA57AF8E793594397AA33A1A3205C5D0838EEECD209A67EA5249A56 -7B727F6B22798508D2CB2D5E2460BCA4826B82A3BC1BB6CD709ABC64E2977973 -82B520C7EE77AFF1F940E95E4AC7776D40E6FA636A2BEFF673A61C81BC958BDC -F7EE7BC246DB2474A6761B5B18BEEFD57BDC13688FDCE862356FEAEFE42B8083 -8D388566CFFCAF64F5B494973B56E311D795EC29D9F215012A571AD28903B0AA -C3C46929133385A99EE73B05A603481067E6E813E2C80518835EC64C65DFB130 -2B69257C3814989A9C2C1E49EB02D3A93502871A121EB6A7D07C1F243344AAD8 -6EB61BA565BA9EC0B28909A15FE82E425190A8C1AC8B1DBB92E6289794F24E4F -3A25CDDFC30277669DDA68269500D610254E2E67981B361B919960EC286120FA -6954B91A94341A5EEE52AD61BD71486207463D4A412E45D802D89D3CAC436C6A -EE5C9E06FA42222E004771D58FFC2EE277B720DAD3DE5B505077D0240C4CF3AA -A54A971FADF7C3CEFBBEEEC093E294BDF4D3B21BDBF13B7FBF5DB4D2528B2EC6 -A03FCA688ABDE692AFFBDFA8DE5E80882C1FE4640C7A3A3EFBB49DD31564624B -C5656606CD565B84976820101994B26F41B7AD49A969D93A8CE62212EDBD1E9F -C97B3E26DC29A6540AD72C0504F374B2A4AC955158D4DEB3DD544C8A404753E9 -4D44733D2AB083F6B49286D5BF71BC746E23DAFE40F95E4CD33D026CF949B7E8 -B7955BBC6588914204F8BD1916BC28CE626DE554FFA95BE341EE51536AC10742 -A5FCA8F5F76A417C9DA3D803330A1A6901A26D0278107BEF1301C46BB081D355 -3725DA2B5ABFBD795200B2BD231657FC28B6228BE8A18B00A540A49D69477A6A -538D1F3548270295BFFED29777CE491BBE6D367FF5393D736837823022711475 -1D03EA22D6D4C380F351D3159AC9407C7F1D948B34FEBDCF6AFE7FE0F816F84B -C3682C5BFEDCF6B1332DBF0032BF88F9229AEF4858A3D935B855B5C738A05631 -2A77CACDFD2144E2FA60784AF2166830340A0AED0302F50D0EBA673B1F450F51 -DA9E3C9DF5136EA4167E008E2E2AD0BABDB9E144FFB9D39B54D80BE7F347F4CD -FB2B1C98DA84E855EFD44A169788EE5E08754FCD8C0154F2D601020D918071E3 -C10FC2BB6446437527E237B336D5D04D43530D6F5AED60F2248E7A08F3F17514 -D21B09FE0BF5CE4E23DDEACB81EA87EB649559FF29590B2569CF8C07898D7034 -07B70776F93C0F943F1489F0262C44AF4E300A30A583B6A0030AA64D07E28B65 -2AE7668596D8A7C51C315BAACF5B907F6361E86B2DE484FDE057141204C98F77 -64A8C9B68EC184F7A17FAED61B022161A662DB4569AEF8F04E6B887A0C63AE9D -0284B943B53EF9C247A595887A612B90694876643C35D46FCFCA331E7B3D8646 -F9826CBD0D4F691C2CD9542DFAB7BB3789D9990BA426F9A8F161CB4AF752C023 -46CF0E9AAB48FD24931BDF51B58CFB9C548E93BAE1038D6966A2B997DFA012AF -F4B2FC4C56179DDF4B40D51E7C6A4929EE7CDF2A985DA06EB93D91235BB66BD7 -854A6A6BFE3E8C8578CBF3723339E95AFF4CDDB9DC00AFF87436E1789C3F3CD1 -EC77D8B6C106242C16E35E6DDB58BF9A96FF7CB9C5522E76D76DBE6AF29CC54E -F32A928E53EC588CA74219FAA9B37BF26FFA3954B5C7A3246E47968493FE1BD7 -A7146F58F403018491276DA918180B6C95BB2C4D93A654782E7D7780D1176A0F -CCE14041A005AA613C103D5F47F82327CD646C14A81A9FAE771E944CF70A602B -1E93976C4C6800CC1A9DF0077BB83FFE5186C107C8FDB2D70AAFB230A1F53BC4 -6E930636155C34315FA191AE48DCAFBE12F934283BB7C9E4433F8DA8E5BA24C9 -F47EC01DDA3C61A7327612136249FB3D14596B966F48FE1E1F95E780E8D10EF8 -09CA34C7988B0D6004902D72C03C9343C00DF128648C68A78DBFE16D829342EF -72861BA47C9ECE6DC444B8E03263FDA416F396D90EC4C83E2F55907B963B3793 -AD8AC58A04180EB504F093A069397CBA0E496C8D9B31F7FFE925949910C429C0 -E514429F6F46E467057803CC0603E39F90662C951CE9FFD4525E76D4D29115E7 -2C39128A44C44D4B0E208B6ECDEE73B753F05C7883B1345C3C8CB40EEC35DE4A -2EB8F1A6167B180A8C18C95FBDD462C4BA2A23E884F5FEABB0012C3567F7DF54 -5786B6BA32B5D331A1BA7E819D2E3EA92E288D509FE70DB067D351EA53AD858A -F88F250CD0933421FCFB23B77CC305749FCAAFD49A2BC4BBD7087F04D85DF0C2 -7DF68ED3A0CEA4374123D54C538D05765A482B023EE4BC2519636346AF825D67 -80F78FC3EFF8E9D198E3DD67397F9AC965B1A9D99AF8C96C17CEEF8346007D05 -16E880B8716FF385C0CD679FC7A770E02E06CEA67160D2AE407C64B5E84F2591 -88371FD832A05D190472A74139860FC897C0A93C1ED82766534ED9415D4D7102 -DA832B566A44C52125620ECD7FC4B3147A571156547770E83A08CA935CA16AAA -1201E7B759BDA9A9C35BFB9398651504D3B97440DC2E1B83FD9C68838EB29EB0 -0CAF700CF11FEAAE098F62B3A5A67E9DE2B20FEE44A31C740139859158EEC81C -0F905187C722AE412502B526D03EF5CD45EE125A4DFAF40B51EC4275994A424F -699F61ACD1A09F68895718E56B66CC8F4C59E71158DBB33FA2E35CC2845F516E -96BBF28C8073CCDB88B459BEFA4FF251E3181C563D98EF87A4648D67C31E3FAD -770578BFCA0FFFCD9F6A746DF448B8594A68B81C28536E9E393A8E6241A63450 -54ECAEDE256F21E5D0A2E1A100FB843F6A7B0C97A3B2942DD137C4E7FBE2BBEE -F252E9BAA695EE6C0B21E44623D35F0B11E232E626F292892C8D5F099E216418 -E08420BEBC1EFB03E4D154A2B35E776CD84C8C9EAB0FE10D38DC323851405E17 -4660DE87A1C42298F40F33861FCD9E68FDFE7EEC68FE4EF9341D5B539179CBDD -DB15416397B2E67D937327FB707ED93DD02BEF04EC195D7A901631DB45EB68C3 -F4E38459DE458B6793A157FECA9895EE150DD71216887FBB73279E0FEA743A39 -1F8468931FE798D8196C96E9BBABCB19D2AD97BFE5A776E6626C9F83D745BF14 -E9C10375A3561FA3585BC4E86FBA6513E5AB20C4BABC0761A9A897DB95A1498D -48E4246313758DB16803789B29ED9B04013A8DA79BEAB0E0CD901EE32E241BE1 -BA0C64F93FF30DBF15DB9266C872DFF210DB36E3C71FD096D03DECE673AE73A6 -3A909D7F15807C71729ABE5EC7222DD5C1475FCB9920B8F2B1B5019238C9ACDF -7A2948789A6E5219D964627992618D6AC27D8C898FD50207D6DA833EA2DDC744 -D241C7B7403F8BD4804FC03D89F5A53D80F96E24E8EBD0C5276BC2DD5443A986 -D4FA9262BFBE50D93CEDE92D3741EBC7EBA9DAEB6D3C24F50365D445AD284E3E -88B245CFEC62F0E8A62517E652F2AFD5AC720030AC82768B362E1BE33A3BFBC6 -4862A01E3F70178B3C30C984DE6C14E153AB5663D191599D5DAF55C82C9F045B -243C3FD310FB49C4508F3E71686E6780E96BDC5DE7B93EE02E356155DD12C554 -4723199288C6668D7BC952BFAD9C9AE708AC084EBD43952853864E3195596C52 -1DF754A536EBF9A2B222DFD13DAFDB65AFE622AB231EFFF7643651C3E802ADC2 -65CE15FD0B3AF65285B68CD78055B2012BD4B07C6F44F76594BD8D3571CC2169 -93AFDB2DA8469B4CD9608AA42A70C8C65B18D0BAFFCA685983B114C9C36407FB -9B0CEC6D678DF677B2960DF600EB7A0D8BFC3DE30B779E0E87B4C8756CC8F1E8 -DC0389D9874FF275101681917F62A3BE7F031C3CB45BCAFC4B75ABAC37E472FE -320CA222FF0D93F2952C9DA2CD57B3C976DD6380A21A2A014EB65F634179F992 -6B6DE6E668DD114127152C847FDEE9A9E0DC031D779C273B9822452C0E3E37A4 -EA8A0B836F6FF43A6FE2514926903E92A04A511616AE373E8B65D2ECE3B61CC1 -828478FC9B4934B748644472E615988344F5D54CD785B53B3EADA902D6C1DF47 -2C186FC0427158C014AE68ECDABA015E4E99602350D82DD760BC82DB0FE41A3C -18B6D86F76D56E5E6916FB0B4B0ACE1709766A5131E89A24EC44DBFE292F1A71 -36E71C382051CA99C7DECDF461FCA13EDF3AA06210ED2406EB79C65BF6B4FF64 -98DE9D823F1003DDCF89304D1B3278B3B262A9FF9E13C8B5D16F6587A727456C -C8F72C28F76CAFB9849DD15B6D2450AA91B2EE2D013C702E7BA39CB3C46F9D0B -B31680D89BDD9D06A9319D9EFAC175CEC30A952DC5C87A9E4594AB85173E9E03 -522D9061CDB335A59E4E8B97516AFC7E4EFCABF1D931C80E4D031B3B191AD517 -A5E2F2AA4C23A392FE09906226F1B846D1CCF3D799341EC2C83E6A3E9ED4F35A -66506EEC7C22640E42DCB7D8959ABF8F1EFB45791545AEC4526CDA41CCF07B82 -884D2048CEF6A49E0267579C030E4CD228F6AC78EA3EC6A3D9E35F2F1A690A28 -9060B0F3785EBA06C57F52C5C13FEC575A2D3A2C2FB809C6A3FC3A4E4F11093B -6B03E139505DE7F41FCF765C5427F45243A766FC486E7BCD5B466809432311F1 -0B83A44B03D9B5A65D1F4E385A6FD02BC0A4B3204CE852E1721F6F0E1C2EEBA8 -3D4911A981547FBA5ACA6AACBFF16382A1C980E292DC66D399ECFCC42F078ED2 -A05C06AA792345D157A2D6E59337CA6FD7F951DA2FB02D6F2B80AFDF36B6148F -B6AAE89FE177D9AC92DEE51774059863F58A551352241B9434F383BBA4D61A8A -901283B9D08AC993B49E2CF4B27E8BD2475C02603F5B4A2EC98E21F306DEFBAD -0BB4C0DB806729B61E2839C8345D62C46EA1826B4E7CCD5EB69DD7BD899ED2A0 -B4992CCE2C5FCE9415371001840BFAE846784BD81F2915DF8792C923E37D6823 -A5427949C219D9C8CA716AF631485CD72934B3E8E2F077FF2EDC8E6A0B742FBC -946A608F7FEE8CFEA0583FB6D9BFC68A2A01E379A6AD0DEDCAF66C7900A2F967 -C21804DFE2B5ADD2A334E7208778FEA247BF012D1790C0B796D2C5AD7C0C26AB -311864254A3F88895197C36D5C236D6FD3F58C1B4A7CE43E317B14D488F5B20B -DA16C269B9DCBCD197A72B980C6A443C22EC0741B6680B8D2CB4FF597709EC92 -63BBB449B884B516B50D5003815B2978C5933A6C80D572DB08433B373C7375C4 -EDAE583976BB729F93F57212B521E5046FB5E755AF208BE5987EA8D9CBA315D9 -6E0DECEE1E2469B3C0326A809929B5049766A14DC81923CC25D17AC4A203878B -AC6C2CAD5D7D5D1E9CEEAB73FF195D5EDD81947D6FD078927318C19D382DE6FC -6C44294B400C207DD83270C1E53313CA05735EE194C80F266E2CC34E041F1B66 -E2847E682E22BCC536982D6D6A96250EABC30D5EA344FC019292ADBF477795E7 -CD89D9D47D67214D08DAC6A8E8AE2192F195DA7D41AB0ED40510631C36701CE9 -4670F48AC472D1BE219F48EBF9977A03DA7DE787FBA5CC59C6FEF6A5F76C4865 -8A7F2A267B8CEF6B4CB736BE4C6ED226A57C092BC83E4522D19BF8999244125D -23C36CD772E7ABCB48C7D1A27D482F6D444B910CB957835F78473238D3421CC6 -AEA1399BB2533B2818D77FE394481DBD8CB3C10D931589B0959D217FACADA757 -0DADBF579386DB95A6F12F61D10C465633245E05A100961844CC9A5527B6D7AD -C632910D4ED6D71AFB2B34D975C4A32631FE66BC051728D50C63F481AD641D2B -4E2F7E72F66FD22D424B8C6C93ADD447DCE87C2608E884D36EBE21D97DB9C82E -14417EC97C835FBA7F020B6CB06A0CD989F9D9E5CB5C8F662357B365A581610C -9165823D6BC005B510C60EC4BB3A7FEDE70410355D8E58A1725E4BFD93BCB75D -01988E0F9E4F4F7F007F153C76A450A24FE139A8B7D2C9825A2370664263F1E0 -411A4A0FCBCC1B8F5EBFE15C4143E4E48FA39B5CC68A116E8A96645AD578FCC3 -9475DF1FF6EA1C3F203CFA3952482B6D380C25B80084F849224296B2193CA434 -B4850EF0BD04FB56F1BEB4B465E5193BA62D8D6B6920749ACB685D09E026E12F -1E23C68EB275542E53C855CBE19E400B7DC47046F72AF881EEB1372B5C7B90AE -F3654A9DC8436043A6278B375ACD4F81017FFDC478226EF57CC1C3730E302601 -777AD0E09E9E2CE8D0270DD6F19A6DA3741F25727EB307C7F8AF73CA4CFED885 -0C148D4A2444DDA2C22EDAC2356788B90ACB3428DB71DFC65380959FAFD573EA -9B5793D05C40E2AC8059D024EB873CAFE1711FACCB17E6CA35F5F6B55C4539BA -0F66A1EA6D16A26D4CA8C07765F76C68638FEC66CFF951DD13E0F48CD839AC23 -0E183844C5DDC94AC5ACB56C532960E0C24ACD0C7F29530E9DB888C260F651D4 -A063B9489961BE9D68F3138CC2006D0EEC618B1165C22CA07802840DD8562BC8 -04FEFB8300B01DA3A5D25CEEB5115AEF6EE197EB88B4CE3FA5092867044274F0 -B2C49E7604FE33554BFC8BC782019F0342806089BF8BF7FE6F9779D61702015E -1D8CDE9B2F199ECA9F5AE69E4E286DB30A02B9FA44A53081E015B5FFD2DE7D6F -9932903EF3FF0259BE2D491DB2F15B9170AD9C3BEEC5818B65D58C2EAEA21EB7 -874960E7F46D8D76856926345542E021148D95559520FB876D13B2B18D9C5EE6 -6FF720F22F1EDB66E0216D20C46153B1CFB096105DCCB04DD7F4F606566EEF62 -C638DAA0044D2DBCC6B460682F0FD9973F4396F4CA99D56F28C0105DF0110714 -906A9EBA29B9AB375F250C065CC0329DCE53577386E005EDC452BAC822CE7E69 -F9973AE14490E9FE6C033BC6A77391052BCB476AFD901DB71DC2BD5BEAF51C99 -609D01BF2696558515B6FCF825217DA206C87C894133D0B49E8944ABADC9FF3C -E8BF10B2CB5D5AC9CAAE9AFFF7779A48DAE362E4F97EEBA75144F4610DEF1F4F -F89E6DCAA88CB1910B0AA98BB53DFAE78611B28DF5C42D6253218E48187D65E1 -C093CE0CC8A137F6D9C268203B483F153928415EB96784E993F4B13E598348B4 -0ED07D148B74B5FBEE7BCBB298F4E3E364DC6AE166C0D91C4FB69AF8B7A47C9D -03692EEACD8E700B9E79807311E320CEB913BAEC5E305A96DEA1456145E2113E -871A649B7D143E05FB3E1242782F2CE15CDDCC9ED74F12D02FB74D23F2103979 -DD5CC27040B20F0324A3367DEABE17FA6069C1645F801E9ED5C9E653F9207C6B -C03622E1F65E3280AB84ED97BD555DA13AA3AD7DA97C4772185F63F009D4EE5A -9A8898A99A4CE1AB51B60F872D337233BA7E0BBF6C4F7302F0F9CAB90022ABC9 -AEE327C1A866BAA2F2CEF71E9B71A7070649E1C25EF91AA389B2C56B53B2DDC1 -CCEB2DF6571E19F71ECD136B0370C6417D484C4FC1DA9C200F3406D26377C807 -FF79460F38019130498C0F8E283D3A6416A51A2099F78D4B66DCD2FE873C2B4E -B9DCDE7F8DFD42EF767F381C034C8106F5AEE118B209952FB6BDF693611433A3 -CA8814367719F0CEC27352AF826A1455EF8A5DDDBA6853932A1B1212A3FD8B93 -2E83EBBC72F2CCCE97CF5EE3A85CDA4805A5D4663D66015A9E92F670BA5FD46F -B5735192AE1B0630B6857B070B43A8E602DA6127EDCDD3550A17FBC52BC26229 -399DBDFA557C94ABD7409495921931C68D1372BB0AF7F5F1414735 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMTI10 -%!PS-AdobeFont-1.1: CMTI10 1.00B -%%CreationDate: 1992 Feb 19 19:56:16 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMTI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 12 /fi put -dup 97 /a put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 103 /g put -dup 105 /i put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 121 /y put -readonly def -/FontBBox{-163 -250 1146 969}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F -21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6 -06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF -55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5 -B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86 -0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9 -1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961 -7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A -7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402 -356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B -19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2 -C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F -244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B -AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95 -5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC -D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D -993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363 -2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B -E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3 -309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513 -F42EDDCF39AE522A1DC2D80B2772B05DA60F3DC15A815A6BAFEDC399C7956E75 -3851CB3588E22936FBFB63A58300298B11C45D82385C083D07AF133BB1BC941A -FDD9F34D5E0B8087EF2A58C54D8AB7580EE3ED58AEB83B72CB9028F472ADBF11 -05A77651F118824F6CD00209EFB60C1D32D46A78E8C8DCB8B0E742828E3B7D17 -DF5200D68189C91FB8489CDEE8BC223C4281DDCA5F7DA80BD5C2D66A14695EA1 -5F05E03500579ADD440ED2C57F535807560C6FE3873143D792734FEAB93AE8DD -633BA6FC5683083402BF086D23594AAC84A4868AFAA32AFBDF86142B350F8F62 -E2531321E4CCF34293024EF8AB617BAB11A3A5EDA03CAC5AC431C893607DF8E5 -C3DC8646027A7554625A16FD184A70DB5FE6DCEA366B64430A147144CC9839F5 -72829FFA42BC3A8406D680E44A0305C9C9E265E91AE82EDF30F73730DCD4AA20 -8B63D3B568DBA690DFC2103EE47296E0EE2AD4627B84BF062FF54A76E4C48137 -E491AFA711FA8087A3F3FAD6C3BC571655D66A52BFFC2AB09CB9035AA67A50B2 -E938298E2DA5C50C50948BBFB6DAE4613B0C70E5E2E0E7C72621E61E51107C33 -463BC505D3FE9FE04CE5A67B252B8BBA81759F6EADADF1DADEB0B15872130D09 -D48E8AA0633DAF01025F36A0C224A65540E062922F9FAE9DD77BA007CF237ECB -1DBEB5BC617C7B84599EC193456F2959D222DCECE46B26699F71AB1B2640D8D2 -3EC0C04CE0CCD5B6940E36472275ECE2E42ACA7B3E886F9846A6894D1E16A448 -6DE9DCA4F5CAC1DD63172DD7603A082CF812D1427FFB51E155AFDEAF583BE97F -5CE8E4E9FEA15618846B1FAE475C62689784326A95DB1383BEFDFAED6BB9194E -9BBB86476F78F0243B4515002D76AFC202225F62B1F04FF4B69D4B63C16B3063 -711F889BF159978BB6F83E2C090D44195AA4791554F092D82D50D4A3A3B7153D -7078A482E02D272728CBF0A96B85948C31B71028F03B77CB61EF7AECBA66676A -D050B06C53BA2401E3B0AFED364E0864A5B65CF9093F78A84A0DD628730D6F4A -B65C861E42E9466E7D1E477BE5D7035CF30F9675585B52C01924AC437DCE2943 -8B545C90ECFE190144AA8A7A76FA522D98EC1B581C9F5253F704EBE33FF1D1A6 -86CD1F9B706ECA6A1BBF01F0C56FA59C014512C31432A9ABF09AD6C49363AA5D -8E08AA4D0AB995DCD4CCC0400B71055505EBE7D21D2061504E990600C3C04937 -424C2527DADEF40A0C058E76B08BC7B8CDC5BAA13E4E7AC6D3B59F25439BCABC -1A940BB9D4BDCA9DECBF4EC7F4FF3655C89E05A7706613C9BDD0179F8C686333 -C9A876055B3ADB816692BAD1AF575011E30287CC9B65902F2BCB1BB45CD441C2 -1968E8DE4FEA5837AA93CD73FAF6F50B87DD2EEE0C1487149C562864A528EDA5 -A3612AE68D8ACC67C5207735F4AFD19462CB84EEEFBE81DFC66CE8E89311DE83 -6546CFBC19D4A18F4A3725838DE19D7F4DE87F9F1866DC65E155A82FD5555D79 -F799EDF508A4F7BBD16D7C09C035DB51858CFC00DE7CEFA7A8C6ED6C47EC33C1 -0E613E1FAB5B5686B439F467DBE384AEDF8836B2CEFC1B917AE95AEE4329BC16 -EEFE7CFE5B43323E90AC167B1DAC570C3FA61A334427495A5B53C6DE597AC069 -1E56B9CC27C7789AD915F2A33A70F2D194859EFE129A9A6994559A898DC9267A -A1966BB9438FBB2EDD33995A4749416205A3E2F71A30114B161AA043FFCFD30A -1094C56555DA272AAD08228C0AB1FC39BB11D103894FA0A899E0AED597A595A2 -EA8D70AA76BEB04C244BDF4CF94226EED1B01DFBE1F0C3E3AC90DB4AA8BFF2E1 -C718A17B6B69F423E7E44F8D42EB67C0A6369CC1CFA9E9D7F50F09402431B2DC -B5CA0FEF2E24242C5027836C6399D28F384F1236DFD33EC8634997BB78B25DFA -CE75E060D19009A6AF994F883A0908B4AD79FA8D69D1930D9CE40B53D1396553 -9D9A7FA0CF827957BC1244A816576C8B2DAB8BA123A164E717E9BCEA023CAA5F -265D9D24E4EAF58F0B580A351B8AB2BC43E338AF241AFD001A19A984CFC62A59 -8B2013E8824A6827A7FEE516A09485F301AF11D925D18F59A2E907B17646C8AE -586E9168900605CA101CD78C24D3559508F80E844D31BA7E197DEA3A38A82766 -A45E8C41B60DED52B1DF8691737FD7D57C807968D6937B90275F082C692E1C0D -2C767E0C77B192774D37B2BD4E80E214A8E28EDA8926A120C12A4E7901DBFBC0 -B5A72A1CCECF325FFB569231EC8AD0528086D6E94397F8F3ACA26BB976FFBB1C -F49B8B6BF7B3A9E953E9D089FBF8E0B82D156A6C11BA6520F91B8B9ECE690FF6 -324176A8016379348959A20C78F07D82DDF803D38C73BB3E0C0DC1028ACBD6CC -8DF50D96AE276FD243FDC8C8FAE66E146160C966F3F67177436F9F861940AA6D -B5348AEEC6B0E923DCDC589E392C72D0936D958884858E397B8BA8B553333BAC -6022064E4F1D42C3CC143061D377FDD0542BBB5F3CD1A089CE64B60B4B436A14 -6A429D05FAD474C84CD8672364D35543C605EE5FDDCABE2C06B4AE7D4F8490BA -E2CC28E290E5323E4676391739E2EA134105BBC58B3A74D940575BB9A919DD7A -C38E05A366F23A0143F4C192316CB7408F5E64028F28840A27FC4DEC8448D593 -9D5468134DAECF543F5697EF5989FFEB34807A1D79DBF2A354A0714B27B97DEB -0D8EEAED69E1F90211E1BB6A6795537BEA950601168458AFE5940E78A5FFAD60 -ED2E04D99E7FC6BC0E5747B56E80805FE24D81A604E867CFA1F9814E048D2DFC -34D04E8884EBDCA85AAC94DA6ECE609228892682EB8C569C974CC0E7362234DE -0B81F683B81ED714DC0F586D903EFD97805FBEB92170C0C25A6A13F76DD60921 -2F1CFD57CC219FE6B91DC1C99C0FF4951027EDE31DC5535DF6612BCD4963F9D8 -E6D01817CBA5A350CA666B64B6A6B45E4AA33694142CC1E150C0CCEDE5168DBA -50938787F91B44CFC3DB90121B49032F0D73F631F16A82D4E19245CB94BF688A -213A56D62D546ABC818C730AD4F40E4C622276BB12C090C9ED9C1B8A9FFF2DBB -AC82A80CA2406A842AC497F5EC0B227194714BC6D47312177616C638CAB94C31 -42ABC4FAD725A3DB1B83A590B4E05A984EF6492C68BD2E13FAEE77DEAA2CA56D -B8F6CF2800B15BE370179ACA404C87E7D9A6C7F70ABECDA8AE07DD3AA14808F8 -219CC49DCC2828AC72966710D1506B400640CF80090F5BB400EEEC11851E630E -23F01BBBBD9D2B84246FC644567C45C2324998679A7EB28ADBD2C4FC20CD3F5B -E712E38F87EBC6621769C99ED42789505EB5135A47DE4F6D15B536586D7F2382 -9514C2528E4E9BC0CC8BA6828AB7ECF3D87A0CF5B7A26F52AA89B5A1B5980AB4 -399F408B0A1AC21AD1C6A40F1B489BC8051B8D3C537C765AFC909D5C62A2F5D7 -C30C349576D36B1FD4EBBEC9F3FA3466FE03C885FDFBB308929CDEF89BF35E00 -DE9A5EE59B1730528FC4A653397FFBB2833073CC792AAFDF9421E5DBE494BDEF -70243094C61678C79CAFD7DA8363FBAB45202455F72241CD4037225FBDAE983C -22F1CE3831BECA0F99B1BE8C239563B2BDA6B32246B213DDB45F2CA748E43769 -A49AC5042B18CB894E9A108A1062B0D8E72AB0A81B866AEF65B1B993DFB12ACB -68265B8408568516415E4C1900204B0617110C98E9EABC34712BC3306B595761 -79F96C39D826C959536B2F2F9320EC9FAAF97427E07EEFC64523CAED57C2D6D7 -DA9AC41E4F589F223C214E80140D2F65E062685D333B44C39365C1721DF60B77 -990E6B0E3EA4AB7354905C402416BC67356D485798C00DDEE17A812091590520 -FC2845FE24345017180408BB143B6B6054B947961A307A3CDD9CCD858ADFF2F3 -D3430EDB2254DCA877BA18A46D48FA1979B434DBF737ABE3AA240DFF74A2994D -B8D53B6A2A85B81E815B22BC7A61190D8A56DCDA40DABA6F0EB7C1A5549A5516 -FE816ADBEC811EA881A820BA1816E2D42C45AD4FE575551D3EB4976D5E975479 -D0A32D47D874E94A4A5AEE8BBCAD973053749AA70D03105828DF417813E61169 -BB5F6ABA5CFE500AA78582E4BE8074FEFB29EB32A8BEF9FB6FE4CBA2A6D72BE5 -05F8B488FABC424FB00EA88C43712BAEE1AC2FE75D93C2E759963962AAF81A4F -F802636AA0B493B93C2D6D39F070CB0B36776950CB2E60C437F7E32809C25F66 -CC7424AB194B88C30EADFC68E83F856A0293DB2C4749A0098EF5CF33D07DB18D -13EEA54031B24D2D5D131183F8DEA7C98417C985EF148F64A48D95DC8C1D7F8F -F0536B1B0C00A8C3BFC67E558DB07A2A9C8BF6F462E3531B6E7E3BBCEE830E9A -12A7F85D1E7EABC09221C4BF383AC8ED6BF538640B25426E59CF9060A6D40B71 -BE73C09C847786462AB9B2A5AE60F99E628DC5E83CB4F44786457C85DCC76D6C -816EBDD86013E6EEC0B9305390AC028E99E98C7DD7AFD17548F5EBB7FEC28E31 -9B2EED71BCA9E5A24380E0C4DB993A1B9E93A2DE919EE00257A682CD0F48F38E -686B0AC7F2CE64789AC368DDEF067C79A1F0CB3CFCA3BD7D7CB7A9582C6ED4FA -F3A5EFF59E995E04B6543F3A25CD2FDCD39D2C87E980C175740EF0D6805C154E -B422B9826CF396C64DA951DD3A1449CAE447BDAC920846E0CDB4DC4256B4C832 -87E907C43E933C70D04F84EECE984B7701732592BC81E7AD669E30A32F65DF87 -94AC9AC35C56F3FD5E25F67DBA459F76D2711B621D85EF0034C5F2D16F27AF13 -2CABFFDADFB87AC4FB1BABD2658CAFFBBEB290D9F62619120D0A4FE45B9EEC26 -FC2E285AED3F5FADB85F2B0D64DD278A86FD01FB80E251DFAB40A371F183FB2D -A72C7FA2176128F7A85F01343A3A5BACC7CF7ECF9C5FE98D058201B31E7F3FDB -F9CFCE3A66FA77382A43240FD80E97A933C5FE116C911D14BCCD8947B0C50C34 -799EB0A2391A8B49E29FA94EE7F4563D38C3B9A700FB608DF98D2ECF6841221C -6AC099E8318392F1F28AB7E6E97CDA9196A87B509E67BA93C74DBC84D8B72B78 -D6F5C3CA30CFE25150DA227F9DD260A57FCE041BC8DDE287FD0DBD65EC465B00 -80E564FE2967F1FCB1E072ACA9C168AA746F4F54B4A9F83381DD11EF6F8DAE6D -14077695AA1113EDBDC6B8DF4BEC621FF81A2D505CD5B7D30F90CEF1A477FF01 -BE15B018484169432E922D935E4863C66E8769651A899D5E1A1BA511CF49D211 -446546B71DDA8C2F944E66F76202EB4DC8F6CA54103DBB01CAC20CB08DC77A4D -3973E29C2DE8C858865FBBEAE5D71E81E0CCEF5FD4FFD706D7428EC33D5AF789 -C13C5AE91FD36FB215D4D9A51C96739B0DA033D83BFB812411CE25D49C19819E -533F4EB14FCAC3F746F7FFC7270E4E947AD2C5FB4447B9BA284D788C9AACCF69 -B35CD1EF290B662DD72118B0C475C2DFF997FD62E279BC0C44AE5D2F7290E4AA -E6443141D9CB366CD71374BD411C4E72B09165021AADE20E747E2CC89D8BEA12 -59EDF9CF61FC957C9DB0F1B4B3CA73B2DACF4DA0BF1E08912EB4C23C66C21447 -E22B8B8F93B89D853F6CB728111E6788BF95F969A654C9FE69F0CE3DCF436CFD -8B3B68353ED1DCD6C26DE48817E4B0F46741D0DA7695802A16442F1052C99131 -F8D7D2FC2965B90B9D9675E6F66BF502B4BA495A5899A46760B8E8E2426396FD -2BBABEA05AFFE78DAE98972BB61E07385A8566AAB160BA5E4030F1BC6DDFACAC -850354E3F98294698DA8553D2D4F40DEAFC25DDEE47C5047776AAE8AE49A0E3F -B52F4EC8D68F195AFF4C13FCED0FF91B06F6C9160F6A0BD1518CF4A2F6353357 -846DE266C22B4FCB2550C4E1CC9BF7FBD5ACCF31CF037EC4AFC8D2560D0F5FF7 -3B3F3D1E0399F7ED51C7D194EA17E298C33CFA73133A64C29F834E8684017D26 -4E9FEDE39001667895474D7649C39DAA83BA7EB97A3A5F66E7F07C9C389579E6 -E07C7B8517CFC535DB0D12B6F57A7C292582309C09E89CF4111734BAA78CAB3B -DD6B34C23235968C14851E3760940A38F367A42D48D453 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMCSC10 -%!PS-AdobeFont-1.1: CMCSC10 1.0 -%%CreationDate: 1991 Aug 18 17:46:49 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMCSC10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMCSC10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 97 /a put -dup 99 /c put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 105 /i put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 115 /s put -dup 117 /u put -dup 120 /x put -readonly def -/FontBBox{14 -250 1077 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337 -900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA -87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98 -076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518 -9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A -FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD -B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9 -CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30 -40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D -C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B -7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5 -FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC -81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D -5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90 -CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6877C1B3D2 -24030F377820DA58F4B95CFE645109F3F1B80DB5FACFD7D05AE2909EEFCF95AD -9CB286C8B6C075CA2267C101B736139863186C193E31085E7C9FD88EF8BBECE3 -933542C85309013325B4BBFE9A5B606780C8580ABDA2F5D0064EBFC23939B307 -08568C3B7F5F053BF367DEBA349FABB9F760C44D100BDEEFBB01F27BFC61FCD3 -64512116F2751A1B95D2439E266074DB3B9FC76ED319B2851588B1F38F46C8FE -040793C860F05E26700B72A766D0BF3F6F2EDEE06A26866BF0207CEF2841BCD2 -84F5873A147D5BAD18FD74DF7B77B8CF1913AD882DC1F4A94020B2A8A73237BB -222E6B78BD1C4C0975B9B6683B5DFBFA693970DD53FB5D5CA5805B7728C11D6F -92E6293F82E628C9FDD901010DEC199055B6682D6B2A688E3EE8759F7E592F54 -43E63699F1D60CD915365B85B8713DC4EB3EC4D2860880035348966F004FBE18 -9299E1DD0D491A5D542D450C8945321BFB9E823E18D1F33178BECAADD34378BF -6FDE26691802F24E43CFA4ED1FB81C824F808A049085FA95CA518D9F4EE91D78 -26A8B8B461486419D598E7E341E9D43CED2402BF225B2C75CEE127D8B8633FC3 -6F4F69DBAF7134D4F3D669B35822FA701A441E5FBA3DC1F02A00B25C583EDB52 -4D4D488C6A810128777654B956C3CCE8FFB0D1985AE2A2735BA415941D1CAD5D -62D9DBBF01CC979B8E1509F5DDD3BA6E87B14879955F978209CB398825E40199 -2B1C7D2C55251F321BAC0764D40B80D7AE1B787E5690CB5907719044B2AC832C -C002C181088BA15AEFDA44D2305E6327358D1DC1D9B93AB1802FE9F24CF49739 -9863288D0195F5610441122648F5E38208E1AE5F01D1966DE10B8AAC02EF9F2E -27D2383BC6D5BF9DA8F9018BABA01B70755FCA281588B85BB705FB7016F6D7D6 -8607BD0739433B54DFB87614A76902A3C122F39A21E80CC1970C5A6932C6046A -771484EA9BD04CF0963E1D372B456C50625807B3557384F5368C520E757716F0 -16EF17F3A58F2F7EA42C9BFE2A64AE786F49213CC47B496B8F127696EDD017A2 -A07FD72357F4D847CE1EC8103EECDE35AA194F9CE466E733F66515749B3C36DB -6F7E83B31034687CE18CBD15342723FC21689731B45C72DA278994FF8C5824A0 -EFE9F8D734D75C3C263F9D4BEACDD86406567055B1A8A5EF73ACAB4A09255E39 -BE9AD89DBF4624E686541E2FF03742C99BE71E7CE3B4756A22CA4B0121E1FC6D -D62BB37F46B6EDA0AC3669802D1DF75B0F9F61976B2FA2DFB5AE2274CF08A000 -AB716CF047D7770A76B6577C75D806D878BC185C4117FD7BBE29E767E028633D -257C34395F8988DE13F0F9083823F028E05D16BAB6B3E9002F01AD5039CA62BD -07AE9C5FA71D6F234899382F90EBCC371C5501FE01E38646BC3C734C7E2C1AA2 -11355703BE46724DD85F5DB4051F65E48A3E8DA4CF8845BB4B3F39C47000E871 -AD2FB60C3161437D8C76A10377B98456BC205F3676D02132B174AC046658D059 -5E506F3C4178C400AD4E721AD613199FD1395413EC7AE6960F96849D6A26F695 -B78395941D62A7F7B6E25CD6824E78804A8CFA780E9919BA860C2951EB88DB5B -C2F9E9AF635BD2C95C7D6AD4BA85E4B85483EEA4EF1908E3D5451AF6EE9176C2 -BA3F1622024250AC2A1F8E66811EE9C1608FDE0E91287AFBEFB43800212C90C1 -6D2D8066C742EAC7D611CB9F0590AB2AA66C17340FC81E55C339FE83B68D060B -33A10B037B3370E351168E98E9DC4E8AB2B909879566CC28DD053B6EEB04A3EE -6016A02EBB0E8D0BDB7F0B1B3BEC8C559F48448AFBBFFF5E11051516E9CB5F45 -6F38CEADF429570FB2DEC6E13CFB2A59D5FFBF0A2396FE9F7B3A0836C76B06CF -9B9D99035BFF40EA918DC4A8CBF4576809F49DF330A9F742AB2FB385C9382076 -6FA8BB32BA81FA3E57E91BB6757C6E98047E9537A0595EC0F2A9BB2D3E093294 -023360099DC1D4EBE77960AB4E26211D1A75ADE1C764E5C2E80EC234F678159E -3E64331306FB3E2BE3AE0CFEED0FC3F583E875A98694742C3DEDC35CCD9D45B5 -D4200D69F93C5B730AF952EA0DCC88EE1F6D50B9477E249C6274EA0FD849B537 -BA497FBD6617943E7BE06CAF71A0F6B13CFFBB51AEF3E042F28BFCAD6CBA2DBA -CECBDB7BB399AF5D80487592A820F82A7255B46A0D7C739CCF16B7F60B709651 -0B91A26FF4854483DEF0336B7633C1E053BA889F4306F7398D85C3EBE21A5A41 -B7DB32141ACA892DDD4C0FE0C95328A70F53DD95940017CFA865D15FB0BB281A -13E2CF735AB238D278FE175EB8B72337218B5F66B62FFD912FCCD0E180AA69D4 -23701D46D44EC2E80D3C4275DC7B5848F50682394C4E67ED98A2E6B41C348263 -EABA9705AA74CD35EC6E1D9DD55634102C6633ED9117DD472DA7F41705DC5772 -72A3C2D8BF6B308567D07153BC750C8CE867E40355C3D50747B757E52F7575DF -9B5B913AF7FC3FDBEB317DA46DB498C7C044F83E46BAA00321A84DAE2DF14604 -12031AF813C994414F098824C30FC07E9B5307EFD8D01B56481BBD2EF648A69E -7507FED42C6605B09EA047F09DFA9BE15B59B93395DF192C0FB33F6F31F325E4 -DCC9A5DFAA157D1D5B4E5BF811F6F5B0FD1E69ED7EE1A6FBC2CE14D11D6FA699 -255370376844BFF3C2BE814A1FEDD0B0854647B9B193B4984394C8602820A17C -62704CEEC824C3C745BC615C54EE5DF86EBD79E874CC3522F8B8954C8E4A6FB4 -F715EE641A3D52C06574E8D7DCFCE83F3F8809D08A3C9C70C962D33F5B3D6128 -16EF2DCD4D6DCF0DD055AEA2293E10C1B7C2399C0DE4928F0A47E0BA652943B1 -004568BBA7CE62F12C7B58966BBF7B0327481DCCFC56218E7C4B9F0761063BA3 -BEA01AD1BC99DB3C1FE550DED79B243A7A554F2B1752F18FEE94120B708FE4DB -5948387091DF4198859CF49ECAC3AB49CE2E5F0451EA4EDF9BD49633C9826026 -BC9E7E1544A0318C545ED1C37C64176504D175B83CF974B4ACC39F5790E24B11 -85F01604144C0E694DB7206941933B60651A800DF182E19C3BF2862E72F25F2F -2D9BD71056559C0FE547D0C752640DD4DC6110A849CF9557FCB0643A1EE77855 -512015F57A80140FC06B8CDEABC5580B89F9F30A489696AEF2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI10 -%!PS-AdobeFont-1.1: CMMI10 1.100 -%%CreationDate: 1996 Jul 23 07:53:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 58 /period put -readonly def -/FontBBox{-32 -250 1048 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 -990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E -6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB -DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 -59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 -D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF -8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 -6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 -1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE -03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 -95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 -74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 -3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 -47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 -AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 -42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 -40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 -B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 -9560176676ABB71BBD0EE56B4CC492C0652750227CEC6CBEEE374709231B00CD -0DE83AFDE295B314F6C8B1FFD32251C1925D96A64D739FF1DA4926460B28B3DE -E949AA0BA3DDB16534FBA30C32092D5F712B5E8C8D5142F35AF2906E6C219D2C -7FD9A368C193E0EB9C7E25FF03C546B6ED993F964CEDB1B8537C617170787F37 -88D6F2AD02384B01067FE3F98257BAB958BB3BCD1001090A4502DA0638080EC6 -DB784CC8AC37CDC01B29BC481D6A05ADC6188785262358C1BF1D694BBF31C1F1 -AF117C1ACED44AAC6EB4B9A2511A6762DDE8FCCBA5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI12 -%!PS-AdobeFont-1.1: CMMI12 1.100 -%%CreationDate: 1996 Jul 27 08:57:55 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 58 /period put -readonly def -/FontBBox{-30 -250 1026 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 -5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC -4391C9DF440285B8FC159D0E98D4258FC57892DCC57F7903449E07914FBE9E67 -3C15C2153C061EB541F66C11E7EE77D5D77C0B11E1AC55101DA976CCACAB6993 -EED1406FBB7FF30EAC9E90B90B2AF4EC7C273CA32F11A5C1426FF641B4A2FB2F -4E68635C93DB835737567FAF8471CBC05078DCD4E40E25A2F4E5AF46C234CF59 -2A1CE8F39E1BA1B2A594355637E474167EAD4D97D51AF0A899B44387E1FD933A -323AFDA6BA740534A510B4705C0A15647AFBF3E53A82BF320DD96753639BE49C -2F79A1988863EF977B800C9DB5B42039C23EB86953713F730E03EA22FF7BB2C1 -D97D33FD77B1BDCC2A60B12CF7805CFC90C5B914C0F30A673DF9587F93E47CEA -5932DD1930560C4F0D97547BCD805D6D854455B13A4D7382A22F562D7C55041F -0FD294BDAA1834820F894265A667E5C97D95FF152531EF97258F56374502865D -A1E7C0C5FB7C6FB7D3C43FEB3431095A59FBF6F61CEC6D6DEE09F4EB0FD70D77 -2A8B0A4984C6120293F6B947944BE23259F6EB64303D627353163B6505FC8A60 -00681F7A3968B6CBB49E0420A691258F5E7B07B417157803FCBE9B9FB1F80FD8 -CA0DA1186446DD565542BCCC7D339A1EB34C7F49246E8D72E987EB477C6DB757 -99AF86CEBCD7605C487A00CD2CD093098182DC57B20D78ECE0BECF3A0BF88EBA -C866DB19F34BBBED6634AFC0F08D2AFB2A92578A6F8B4ADCD6594737FF6EED7D -5B536DA9E3E2CADB40DB7C600EA4D100D33C3B92B1CF857E012C4EB370BA8295 -55B50047CC8911C98FE1A7BA6CDEA82D34476286E710776823690AD333DD3A49 -335002F4680DBE1C21174BF016B0DF799B01EB9D6988479A8334BBA2F8DC7146 -BC0DAE9DE3A6453B181808E68A89E0C02DAC6264D002B422EBC1CF14F65D9888 -15EE6D514D3457F7F3C6A3D17EE1DA076F73ECC392D349174DA9E4680F29CE10 -0157E42CA35F5DBFF56BFC3AA07E61A78DBE882C5AB388220C19750D3643E7C8 -23D6673027CE568A4ACCE1D12B1D9E5A43507F4AF9BC873237F65A6B95078DD2 -378007CF0F0DE7CCEF760E19D6D1D7B412EC5D4972 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSY10 -%!PS-AdobeFont-1.1: CMSY10 1.0 -%%CreationDate: 1991 Aug 15 07:20:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSY10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.035 def -/isFixedPitch false def -end readonly def -/FontName /CMSY10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 13 /circlecopyrt put -readonly def -/FontBBox{-29 -960 1116 775}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 -7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 -A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 -E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A -221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A -27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF -5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 -0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 -DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A -71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 -4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C -515DB70A8D4F6146FE068DC1E5DE8BC5703711DA090312BA3FC00A08C453C609 -C627A8BFEF75B4DEFAF34B44B356A516B765AFCDD3F5475B1F928731D09D2170 -B97E40F12CCEDF4F6BB3756C4734F6E98D74B7E942A954B1BAAB83D4AD727FF6 -DF6DC50B2223BCB5568A73A112E4860AD490554E64E780073FF3399CB4688D33 -9E8829667CD6EAEF25E0C7D2D44F2BBFA40E999325F9561514844221B50BC8FC -4C7AD68CA7220D69125C2AF06849A3E068D18733276F0C0A6A2936D3C2C87CDE -59CD1AF148C44F85784A5DAD569F5FF53C061056C067CE29AEF1E3BD1FD8B0B8 -71A0A638CDAC6AEEDBD5337D4683C084BB60B1859E600F59CB4E19C5FC5C6327 -EC544A68134496A9BD0B87D83AF6FDA3CB62FBF0B54FACE1F0E6A2D84B467AFF -0F62DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -TeXDict begin 39139632 55387786 1000 300 300 (readline.dvi) -@start /Fa 197[11 58[{}1 37.3599 /CMMI9 rf /Fb 133[17 -20 20 28 20 21 15 15 15 20 21 19 21 32 11 20 1[11 21 -19 12 17 21 17 21 19 39[19 19 19 19 19 19 19 19 19 19 -2[13 11 30[21 21 12[{}39 37.3599 /CMR9 rf /Fc 134[20 -20 2[20 20 20 20 2[20 20 20 20 2[20 20 2[20 3[20 19[20 -27[20 20 2[20 45[{}18 37.3599 /CMSLTT10 rf /Fd 167[31 -3[30 23 2[28 1[31 38 26 1[21 1[31 33 27 1[32 30 67[{}13 -41.511 /CMR10 rf /Fe 129[20 20 20 20 20 20 20 20 20 20 -20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -20 20 20 20 1[20 20 20 1[20 20 20 20 20 20 20 20 20 20 -20 20 20 20 1[20 20 20 20 20 20 20 20 20 20 20 20 20 -20 20 20 20 3[20 1[20 20 20 20 20 20 20 20 20 20 20 20 -20 20 20 20 1[20 20 20 33[{}86 37.3599 /CMTT9 rf /Ff -214[18 18 40[{}2 45.4545 /CMSS10 rf /Fg 133[26 26 26 -26 26 26 26 26 26 26 26 26 26 26 26 26 1[26 26 26 26 -26 26 26 26 26 1[26 18[26 26 1[26 2[26 26 26[26 42[{}32 -49.8132 /CMTT10 rf /Fh 134[32 32 44 32 34 24 24 25 1[34 -31 34 51 17 32 1[17 34 31 19 28 34 27 34 30 7[46 1[63 -46 47 43 34 46 3[48 58 37 48 1[23 48 1[39 40 1[44 44 -46 7[31 31 31 31 31 31 31 31 31 31 1[17 46[{}52 54.5455 -/CMBX12 rf /Fi 134[24 24 33 24 25 18 18 18 24 25 23 25 -38 13 24 1[13 25 23 14 20 25 20 25 23 9[47 1[34 33 25 -33 1[31 35 34 42 28 35 1[16 34 1[30 31 35 33 32 34 15[23 -23 1[13 15 13 1[23 28[25 25 12[{}51 45.4545 /CMSL10 rf -/Fj 134[22 1[30 21 24 15 19 19 1[23 23 26 37 12 2[14 -1[21 1[21 23 21 1[23 84[26 12[{}19 45.4545 /CMTI10 rf -/Fk 134[24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 -24 24 1[24 24 24 24 24 24 24 1[24 2[24 14[24 24 1[24 -1[24 2[24 24 24 17[24 24 2[24 5[24 39[{}37 45.4545 /CMSLTT10 -rf /Fl 135[28 2[28 1[21 2[25 29 28 4[14 1[29 24 25 1[27 -1[28 97[{}12 45.4545 /CMCSC10 rf /Fm 197[13 58[{}1 45.4545 -/CMMI10 rf /Fn 197[16 58[{}1 59.7758 /CMMI12 rf /Fo 135[43 -58 1[45 31 32 33 1[45 40 45 67 22 2[22 45 40 25 37 45 -36 45 39 10[61 62 56 1[60 1[55 1[63 1[48 2[30 1[63 51 -53 62 58 1[61 14[40 40 49[{}36 71.731 /CMBX12 rf /Fp -242[45 13[{}1 45.4545 /CMSY10 rf /Fq 134[35 35 49 35 -37 26 27 27 1[37 34 37 56 19 2[19 37 34 21 31 37 30 37 -33 7[51 1[69 51 52 47 37 50 51 46 51 53 64 40 53 1[25 -53 53 42 44 52 49 48 51 6[19 1[34 34 34 34 34 34 34 34 -2[19 1[19 44[{}56 59.7758 /CMBX12 rf /Fr 129[24 24 24 -24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 -24 24 24 24 24 24 24 24 24 24 24 1[24 24 24 24 24 24 -24 24 24 24 24 24 24 24 24 24 24 24 24 1[24 24 24 24 -24 24 24 24 24 24 24 24 24 24 24 24 1[24 24 1[24 24 1[24 -24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 33[{}89 -45.4545 /CMTT10 rf /Fs 131[45 23 20 24 24 33 24 25 18 -18 18 24 25 23 25 38 13 24 14 13 25 23 14 20 25 20 25 -23 13 2[13 23 13 28 34 34 47 34 34 33 25 33 35 31 35 -34 42 28 35 23 16 34 36 30 31 35 33 32 34 5[13 13 23 -23 23 23 23 23 23 23 23 23 23 13 15 13 2[18 18 13 2[23 -1[23 19[38 25 25 27 11[{}83 45.4545 /CMR10 rf /Ft 134[51 -6[40 3[54 1[27 2[27 3[44 54 1[54 47 11[74 2[72 3[76 1[58 -4[76 71[{}14 86.0772 /CMBX12 rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 300dpi -TeXDict begin -%%PaperSize: A4 - end -%%EndSetup -%%Page: 1 1 -TeXDict begin 1 0 bop 75 659 a Ft(GNU)33 b(Readline)f(Library)p -75 709 1800 17 v 936 757 a Fs(Edition)15 b(6.2,)e(for)i -Fr(Readline)f(Library)g Fs(V)l(ersion)h(6.2.)1559 811 -y(Septem)o(b)q(er)h(2010)75 2467 y Fq(Chet)22 b(Ramey)-6 -b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75 -2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 -b(oundation)p 75 2570 1800 9 v eop end -%%Page: 2 2 -TeXDict begin 2 1 bop 75 1512 a Fs(This)12 b(man)o(ual)g(describ)q(es)h -(the)f(GNU)h(Readline)f(Library)g(\(v)o(ersion)g(6.2,)g(Septem)o(b)q -(er)h(6)f(2010\),)f(a)h(library)75 1567 y(whic)o(h)19 -b(aids)h(in)f(the)h(consistency)f(of)g(user)h(in)o(terface)f(across)g -(discrete)g(programs)g(whic)o(h)g(pro)o(vide)g(a)75 1621 -y(command)c(line)g(in)o(terface.)75 1689 y(Cop)o(yrigh)o(t)301 -1688 y(c)289 1689 y Fp(\015)g Fs(1988{2011)e(F)l(ree)i(Soft)o(w)o(are)f -(F)l(oundation,)g(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f -(mak)o(e)h(and)g(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g(man)o -(ual)f(pro)o(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)g -(this)g(p)q(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f -(copies.)195 1878 y(P)o(ermission)i(is)h(gran)o(ted)g(to)g(cop)o(y)l(,) -h(distribute)f(and/or)g(mo)q(dify)g(this)g(do)q(cumen)o(t)h(under)195 -1933 y(the)h(terms)f(of)h(the)g(GNU)g(F)l(ree)g(Do)q(cumen)o(tation)f -(License,)i(V)l(ersion)f(1.3)f(or)g(an)o(y)h(later)195 -1988 y(v)o(ersion)13 b(published)h(b)o(y)g(the)g(F)l(ree)f(Soft)o(w)o -(are)g(F)l(oundation;)g(with)g(no)g(In)o(v)m(arian)o(t)h(Sections,)195 -2042 y(with)h(the)g(F)l(ron)o(t-Co)o(v)o(er)e(texts)i(b)q(eing)h(\\A)f -(GNU)g(Man)o(ual",)f(and)h(with)g(the)g(Bac)o(k-Co)o(v)o(er)195 -2097 y(T)l(exts)h(as)g(in)g(\(a\))f(b)q(elo)o(w.)23 b(A)16 -b(cop)o(y)g(of)g(the)g(license)g(is)g(included)h(in)f(the)g(section)g -(en)o(titled)195 2152 y(\\GNU)f(F)l(ree)g(Do)q(cumen)o(tation)f -(License".)195 2219 y(\(a\))g(The)h(FSF's)g(Bac)o(k-Co)o(v)o(er)f(T)l -(ext)h(is:)k(Y)l(ou)c(are)g(free)g(to)g(cop)o(y)g(and)g(mo)q(dify)g -(this)f(GNU)195 2274 y(man)o(ual.)19 b(Buying)c(copies)g(from)f(GNU)h -(Press)g(supp)q(orts)g(the)g(FSF)g(in)g(dev)o(eloping)f(GNU)195 -2329 y(and)h(promoting)f(soft)o(w)o(are)g(freedom.")75 -2451 y(Published)h(b)o(y)h(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l -(oundation)75 2506 y(59)h(T)l(emple)g(Place,)f(Suite)i(330,)75 -2560 y(Boston,)e(MA)h(02111-1307)75 2615 y(USA)p eop -end -%%Page: -1 3 -TeXDict begin -1 2 bop 1862 -58 a Fs(i)75 149 y Fo(T)-7 -b(able)28 b(of)e(Con)n(ten)n(ts)75 320 y Fq(1)67 b(Command)22 -b(Line)h(Editing)17 b Fn(:)10 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)39 -b Fq(1)137 389 y Fs(1.1)45 b(In)o(tro)q(duction)15 b(to)f(Line)i -(Editing)t Fm(:)7 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)18 b Fs(1)137 444 y(1.2)45 b(Readline)15 -b(In)o(teraction)5 b Fm(:)i(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)19 -b Fs(1)200 499 y(1.2.1)43 b(Readline)16 b(Bare)f(Essen)o(tials)5 -b Fm(:)h(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)19 b Fs(1)200 553 y(1.2.2)43 b(Readline)16 b(Mo)o(v)o(emen)o(t)e -(Commands)5 b Fm(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)19 -b Fs(2)200 608 y(1.2.3)43 b(Readline)16 b(Killing)e(Commands)d -Fm(:)6 b(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25 -b Fs(2)200 663 y(1.2.4)43 b(Readline)16 b(Argumen)o(ts)7 -b Fm(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)21 b Fs(3)200 718 y(1.2.5)43 b(Searc)o(hing)15 -b(for)g(Commands)g(in)g(the)g(History)6 b Fm(:)g(:)h(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)20 -b Fs(3)137 773 y(1.3)45 b(Readline)15 b(Init)g(File)d -Fm(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)27 b Fs(4)200 -827 y(1.3.1)43 b(Readline)16 b(Init)f(File)f(Syn)o(tax)9 -b Fm(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23 -b Fs(4)200 882 y(1.3.2)43 b(Conditional)14 b(Init)h(Constructs)e -Fm(:)8 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 -b Fs(10)200 937 y(1.3.3)43 b(Sample)16 b(Init)f(File)7 -b Fm(:)f(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)22 b Fs(11)137 992 y(1.4)45 -b(Bindable)15 b(Readline)h(Commands)7 b Fm(:)f(:)h(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)22 b Fs(14)200 1046 y(1.4.1)43 -b(Commands)15 b(F)l(or)g(Mo)o(ving)5 b Fm(:)h(:)h(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)20 b Fs(14)200 -1101 y(1.4.2)43 b(Commands)15 b(F)l(or)g(Manipulating)e(The)j(History) -10 b Fm(:)c(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -25 b Fs(14)200 1156 y(1.4.3)43 b(Commands)15 b(F)l(or)g(Changing)f(T)l -(ext)e Fm(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)27 b Fs(16)200 -1211 y(1.4.4)43 b(Killing)14 b(And)i(Y)l(anking)c Fm(:)c(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)27 -b Fs(17)200 1266 y(1.4.5)43 b(Sp)q(ecifying)16 b(Numeric)f(Argumen)o -(ts)10 b Fm(:)c(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)24 b Fs(18)200 -1320 y(1.4.6)43 b(Letting)15 b(Readline)h(T)o(yp)q(e)f(F)l(or)g(Y)l(ou) -7 b Fm(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)22 b Fs(18)200 -1375 y(1.4.7)43 b(Keyb)q(oard)16 b(Macros)c Fm(:)6 b(:)h(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)26 -b Fs(19)200 1430 y(1.4.8)43 b(Some)16 b(Miscellaneous)e(Commands)f -Fm(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fs(19)137 1485 -y(1.5)45 b(Readline)15 b(vi)g(Mo)q(de)c Fm(:)c(:)h(:)f(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)26 b Fs(21)75 1606 y Fq(2)67 b(Programming)22 -b(with)g(GNU)g(Readline)9 b Fn(:)g(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h -(:)31 b Fq(22)137 1675 y Fs(2.1)45 b(Basic)15 b(Beha)o(vior)7 -b Fm(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)22 -b Fs(22)137 1729 y(2.2)45 b(Custom)14 b(F)l(unctions)5 -b Fm(:)i(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)20 b Fs(23)200 -1784 y(2.2.1)43 b(Readline)16 b(T)o(yp)q(edefs)t Fm(:)8 -b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)19 b Fs(24)200 1839 y(2.2.2)43 b(W)l(riting)14 -b(a)h(New)g(F)l(unction)8 b Fm(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)22 b Fs(24)137 1894 y(2.3)45 -b(Readline)15 b(V)l(ariables)d Fm(:)6 b(:)h(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)26 -b Fs(25)137 1949 y(2.4)45 b(Readline)15 b(Con)o(v)o(enience)h(F)l -(unctions)7 b Fm(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)22 -b Fs(29)200 2003 y(2.4.1)43 b(Naming)15 b(a)g(F)l(unction)6 -b Fm(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)21 b Fs(29)200 2058 y(2.4.2)43 b(Selecting)15 -b(a)g(Keymap)c Fm(:)c(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)h(:)25 b Fs(30)200 2113 y(2.4.3)43 -b(Binding)16 b(Keys)d Fm(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)28 -b Fs(31)200 2168 y(2.4.4)43 b(Asso)q(ciating)14 b(F)l(unction)h(Names)g -(and)h(Bindings)9 b Fm(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)24 b Fs(32)200 2222 y(2.4.5)43 b(Allo)o(wing)14 -b(Undoing)9 b Fm(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)24 b Fs(33)200 2277 -y(2.4.6)43 b(Redispla)o(y)11 b Fm(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)26 b Fs(34)200 2332 y(2.4.7)43 b(Mo)q(difying)15 -b(T)l(ext)e Fm(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)29 b Fs(35)200 -2387 y(2.4.8)43 b(Character)15 b(Input)7 b Fm(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h -(:)21 b Fs(36)200 2442 y(2.4.9)43 b(T)l(erminal)15 b(Managemen)o(t)t -Fm(:)6 b(:)h(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)19 b Fs(36)200 2496 y(2.4.10)43 b(Utilit)o(y)13 -b(F)l(unctions)8 b Fm(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)22 b Fs(37)200 -2551 y(2.4.11)43 b(Miscellaneous)14 b(F)l(unctions)7 -b Fm(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)22 -b Fs(38)200 2606 y(2.4.12)43 b(Alternate)15 b(In)o(terface)9 -b Fm(:)d(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)23 b Fs(39)200 2661 y(2.4.13)43 b(A)15 -b(Readline)h(Example)11 b Fm(:)d(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)27 b Fs(40)p eop end -%%Page: -2 4 -TeXDict begin -2 3 bop 1850 -58 a Fs(ii)137 42 y(2.5)45 -b(Readline)15 b(Signal)g(Handling)5 b Fm(:)h(:)h(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)20 -b Fs(41)137 96 y(2.6)45 b(Custom)14 b(Completers)9 b -Fm(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fs(43)200 151 y(2.6.1)43 -b(Ho)o(w)15 b(Completing)f(W)l(orks)d Fm(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)26 b Fs(43)200 206 -y(2.6.2)43 b(Completion)14 b(F)l(unctions)9 b Fm(:)f(:)f(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)24 -b Fs(44)200 261 y(2.6.3)43 b(Completion)14 b(V)l(ariables)5 -b Fm(:)h(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)19 b Fs(45)200 315 y(2.6.4)43 b(A)16 b(Short)f(Completion)e -(Example)g Fm(:)8 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)28 -b Fs(49)75 437 y Fq(App)r(endix)23 b(A)80 b(GNU)22 b(F)-6 -b(ree)23 b(Do)r(cumen)n(tation)e(License)223 503 y Fn(:)10 -b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b -Fq(58)75 638 y(Concept)22 b(Index)9 b Fn(:)i(:)g(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)32 b Fq(66)75 -773 y(F)-6 b(unction)24 b(and)e(V)-6 b(ariable)22 b(Index)14 -b Fn(:)e(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)h(:)f(:)37 b Fq(67)p eop end -%%Page: 1 5 -TeXDict begin 1 4 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(1)75 149 y Fo(1)41 b(Command)28 b(Line)f(Editing)75 -266 y Fs(This)15 b(c)o(hapter)g(describ)q(es)h(the)f(basic)g(features)g -(of)f(the)i Fl(gnu)f Fs(command)g(line)g(editing)f(in)o(terface.)75 -382 y Fq(1.1)33 b(In)n(tro)r(duction)23 b(to)f(Line)h(Editing)75 -462 y Fs(The)15 b(follo)o(wing)e(paragraphs)i(describ)q(e)h(the)f -(notation)f(used)h(to)g(represen)o(t)g(k)o(eystrok)o(es.)137 -529 y(The)k(text)e Fk(C-k)h Fs(is)f(read)i(as)e(`Con)o(trol-K')f(and)j -(describ)q(es)f(the)h(c)o(haracter)e(pro)q(duced)i(when)g(the)f -Fr(k)75 584 y Fs(k)o(ey)d(is)g(pressed)h(while)e(the)h(Con)o(trol)f(k)o -(ey)h(is)g(depressed.)137 651 y(The)h(text)g Fk(M-k)f -Fs(is)h(read)g(as)f(`Meta-K')g(and)h(describ)q(es)h(the)f(c)o(haracter) -f(pro)q(duced)i(when)g(the)f(Meta)75 705 y(k)o(ey)g(\(if)g(y)o(ou)g(ha) -o(v)o(e)g(one\))h(is)f(depressed,)h(and)g(the)g Fr(k)f -Fs(k)o(ey)g(is)g(pressed.)25 b(The)17 b(Meta)e(k)o(ey)i(is)f(lab)q -(eled)g Fr(ALT)75 760 y Fs(on)f(man)o(y)f(k)o(eyb)q(oards.)20 -b(On)15 b(k)o(eyb)q(oards)g(with)f(t)o(w)o(o)f(k)o(eys)i(lab)q(eled)g -Fr(ALT)f Fs(\(usually)g(to)g(either)h(side)f(of)h(the)75 -815 y(space)g(bar\),)f(the)h Fr(ALT)g Fs(on)g(the)g(left)f(side)h(is)g -(generally)f(set)h(to)f(w)o(ork)g(as)h(a)f(Meta)g(k)o(ey)l(.)20 -b(The)c Fr(ALT)e Fs(k)o(ey)h(on)75 870 y(the)f(righ)o(t)e(ma)o(y)h -(also)g(b)q(e)h(con\014gured)g(to)f(w)o(ork)g(as)g(a)g(Meta)g(k)o(ey)g -(or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)g(other)75 -925 y(mo)q(di\014er,)i(suc)o(h)g(as)g(a)g(Comp)q(ose)g(k)o(ey)g(for)g -(t)o(yping)f(accen)o(ted)i(c)o(haracters.)137 992 y(If)d(y)o(ou)f(do)g -(not)g(ha)o(v)o(e)f(a)h(Meta)g(or)f Fr(ALT)h Fs(k)o(ey)l(,)h(or)e -(another)h(k)o(ey)g(w)o(orking)f(as)h(a)g(Meta)f(k)o(ey)l(,)i(the)f -(iden)o(tical)75 1047 y(k)o(eystrok)o(e)h(can)i(b)q(e)f(generated)h(b)o -(y)f(t)o(yping)f Fr(ESC)h Fj(\014rst)p Fs(,)f(and)i(then)f(t)o(yping)g -Fr(k)p Fs(.)19 b(Either)14 b(pro)q(cess)g(is)g(kno)o(wn)75 -1101 y(as)h Fi(metafying)j Fs(the)d Fr(k)g Fs(k)o(ey)l(.)137 -1169 y(The)21 b(text)e Fk(M-C-k)h Fs(is)g(read)g(as)f(`Meta-Con)o -(trol-k')f(and)i(describ)q(es)h(the)f(c)o(haracter)g(pro)q(duced)h(b)o -(y)75 1223 y Fi(metafying)d Fk(C-k)p Fs(.)137 1290 y(In)h(addition,)e -(sev)o(eral)h(k)o(eys)f(ha)o(v)o(e)h(their)g(o)o(wn)f(names.)28 -b(Sp)q(eci\014cally)l(,)19 b Fr(DEL)p Fs(,)f Fr(ESC)p -Fs(,)g Fr(LFD)p Fs(,)g Fr(SPC)p Fs(,)g Fr(RET)p Fs(,)75 -1345 y(and)f Fr(TAB)g Fs(all)f(stand)h(for)g(themselv)o(es)g(when)h -(seen)f(in)g(this)g(text,)g(or)g(in)g(an)g(init)f(\014le)i(\(see)f -(Section)g(1.3)75 1400 y([Readline)e(Init)g(File],)e(page)h(4\).)20 -b(If)15 b(y)o(our)f(k)o(eyb)q(oard)h(lac)o(ks)f(a)g Fr(LFD)h -Fs(k)o(ey)l(,)f(t)o(yping)g Fr(C-j)h Fs(will)e(pro)q(duce)j(the)75 -1455 y(desired)f(c)o(haracter.)20 b(The)15 b Fr(RET)g -Fs(k)o(ey)g(ma)o(y)f(b)q(e)i(lab)q(eled)f Fr(Return)g -Fs(or)f Fr(Enter)h Fs(on)g(some)g(k)o(eyb)q(oards.)75 -1571 y Fq(1.2)33 b(Readline)21 b(In)n(teraction)75 1651 -y Fs(Often)c(during)f(an)g(in)o(teractiv)o(e)f(session)g(y)o(ou)h(t)o -(yp)q(e)h(in)f(a)g(long)f(line)h(of)g(text,)g(only)g(to)f(notice)h -(that)g(the)75 1705 y(\014rst)g(w)o(ord)f(on)h(the)h(line)f(is)f(missp) -q(elled.)23 b(The)16 b(Readline)h(library)e(giv)o(es)g(y)o(ou)h(a)g -(set)g(of)g(commands)g(for)75 1760 y(manipulating)d(the)i(text)g(as)f -(y)o(ou)h(t)o(yp)q(e)g(it)f(in,)g(allo)o(wing)f(y)o(ou)i(to)f(just)h -(\014x)g(y)o(our)f(t)o(yp)q(o,)g(and)h(not)g(forcing)75 -1815 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s(jorit)o(y)e(of)i(the)g -(line.)19 b(Using)14 b(these)g(editing)f(commands,)h(y)o(ou)g(mo)o(v)o -(e)f(the)h(cursor)75 1870 y(to)i(the)i(place)f(that)f(needs)i -(correction,)f(and)g(delete)g(or)g(insert)f(the)i(text)e(of)h(the)g -(corrections.)25 b(Then,)75 1924 y(when)13 b(y)o(ou)f(are)g -(satis\014ed)g(with)g(the)h(line,)f(y)o(ou)g(simply)g(press)g -Fr(RET)p Fs(.)19 b(Y)l(ou)12 b(do)h(not)f(ha)o(v)o(e)g(to)g(b)q(e)h(at) -f(the)g(end)75 1979 y(of)k(the)h(line)f(to)g(press)h -Fr(RET)p Fs(;)g(the)f(en)o(tire)g(line)h(is)f(accepted)h(regardless)f -(of)g(the)h(lo)q(cation)e(of)i(the)f(cursor)75 2034 y(within)e(the)i -(line.)75 2133 y Fh(1.2.1)30 b(Readline)20 b(Bare)g(Essen)n(tials)75 -2207 y Fs(In)d(order)e(to)h(en)o(ter)g(c)o(haracters)f(in)o(to)g(the)h -(line,)g(simply)f(t)o(yp)q(e)h(them.)23 b(The)16 b(t)o(yp)q(ed)g(c)o -(haracter)g(app)q(ears)75 2262 y(where)g(the)h(cursor)f(w)o(as,)f(and)h -(then)h(the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o -(t.)22 b(If)17 b(y)o(ou)f(mist)o(yp)q(e)f(a)75 2317 y(c)o(haracter,)f -(y)o(ou)h(can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g -(up)g(and)h(delete)f(the)g(mist)o(yp)q(ed)g(c)o(haracter.)137 -2384 y(Sometimes)g(y)o(ou)g(ma)o(y)g(mist)o(yp)q(e)g(a)g(c)o(haracter,) -f(and)i(not)f(notice)g(the)g(error)g(un)o(til)g(y)o(ou)g(ha)o(v)o(e)g -(t)o(yp)q(ed)75 2438 y(sev)o(eral)f(other)g(c)o(haracters.)19 -b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fk(C-b)f -Fs(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)g(and)75 -2493 y(then)i(correct)e(y)o(our)h(mistak)o(e.)k(Afterw)o(ards,)13 -b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)f -(with)g Fk(C-f)p Fs(.)137 2560 y(When)j(y)o(ou)f(add)g(text)g(in)g(the) -h(middle)f(of)g(a)f(line,)h(y)o(ou)g(will)f(notice)h(that)g(c)o -(haracters)f(to)h(the)g(righ)o(t)75 2615 y(of)e(the)g(cursor)g(are)g -(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h(ro)q(om)g(for)f(the)i(text)f -(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)20 b(Lik)o(ewise,)75 -2670 y(when)f(y)o(ou)g(delete)g(text)f(b)q(ehind)i(the)f(cursor,)g(c)o -(haracters)f(to)g(the)h(righ)o(t)e(of)h(the)h(cursor)g(are)f(`pulled)p -eop end -%%Page: 2 6 -TeXDict begin 2 5 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(2)75 149 y(bac)o(k')11 b(to)g(\014ll)f(in)i(the)f -(blank)g(space)h(created)f(b)o(y)h(the)f(remo)o(v)m(al)f(of)h(the)h -(text.)18 b(A)11 b(list)f(of)h(the)h(bare)f(essen)o(tials)75 -204 y(for)k(editing)f(the)h(text)g(of)g(an)g(input)g(line)g(follo)o -(ws.)75 281 y Fk(C-b)168 b Fs(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o -(haracter.)75 358 y Fk(C-f)168 b Fs(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h -(c)o(haracter.)75 434 y Fr(DEL)g Fs(or)f Fr(Backspace)315 -489 y Fs(Delete)h(the)g(c)o(haracter)g(to)f(the)h(left)g(of)g(the)g -(cursor.)75 566 y Fk(C-d)168 b Fs(Delete)15 b(the)g(c)o(haracter)g -(underneath)h(the)f(cursor.)75 642 y(Prin)o(ting)f(c)o(haracters)315 -697 y(Insert)h(the)h(c)o(haracter)e(in)o(to)g(the)i(line)f(at)f(the)h -(cursor.)75 774 y Fk(C-_)g Fs(or)f Fk(C-x)h(C-u)315 829 -y Fs(Undo)i(the)g(last)e(editing)h(command.)25 b(Y)l(ou)17 -b(can)g(undo)g(all)e(the)i(w)o(a)o(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 -884 y(line.)75 960 y(\(Dep)q(ending)f(on)g(y)o(our)f(con\014guration,)g -(the)h Fr(Backspace)e Fs(k)o(ey)i(b)q(e)g(set)g(to)f(delete)h(the)g(c)o -(haracter)f(to)g(the)75 1015 y(left)j(of)h(the)g(cursor)g(and)g(the)h -Fr(DEL)e Fs(k)o(ey)h(set)g(to)g(delete)g(the)g(c)o(haracter)g -(underneath)g(the)h(cursor,)f(lik)o(e)75 1070 y Fk(C-d)p -Fs(,)c(rather)h(than)g(the)g(c)o(haracter)g(to)f(the)i(left)e(of)h(the) -g(cursor.\))75 1166 y Fh(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i -(Commands)75 1240 y Fs(The)14 b(ab)q(o)o(v)o(e)g(table)f(describ)q(es)h -(the)g(most)f(basic)h(k)o(eystrok)o(es)f(that)g(y)o(ou)g(need)i(in)f -(order)f(to)g(do)h(editing)f(of)75 1295 y(the)k(input)f(line.)23 -b(F)l(or)16 b(y)o(our)g(con)o(v)o(enience,)h(man)o(y)f(other)g -(commands)h(ha)o(v)o(e)f(b)q(een)h(added)h(in)e(addition)75 -1349 y(to)h Fk(C-b)p Fs(,)g Fk(C-f)p Fs(,)g Fk(C-d)p -Fs(,)g(and)h Fr(DEL)p Fs(.)26 b(Here)18 b(are)f(some)g(commands)h(for)e -(mo)o(ving)h(more)g(rapidly)g(ab)q(out)g(the)75 1404 -y(line.)75 1481 y Fk(C-a)168 b Fs(Mo)o(v)o(e)14 b(to)h(the)g(start)f -(of)h(the)g(line.)75 1558 y Fk(C-e)168 b Fs(Mo)o(v)o(e)14 -b(to)h(the)g(end)h(of)f(the)g(line.)75 1634 y Fk(M-f)168 -b Fs(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h -(is)g(comp)q(osed)g(of)g(letters)f(and)i(digits.)75 1711 -y Fk(M-b)168 b Fs(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75 -1788 y Fk(C-l)168 b Fs(Clear)14 b(the)i(screen,)f(reprin)o(ting)f(the)h -(curren)o(t)g(line)g(at)g(the)g(top.)137 1864 y(Notice)d(ho)o(w)g -Fk(C-f)g Fs(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)g -Fk(M-f)g Fs(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18 -b(It)13 b(is)f(a)g(lo)q(ose)75 1919 y(con)o(v)o(en)o(tion)i(that)g(con) -o(trol)g(k)o(eystrok)o(es)g(op)q(erate)h(on)f(c)o(haracters)h(while)f -(meta)g(k)o(eystrok)o(es)g(op)q(erate)h(on)75 1974 y(w)o(ords.)75 -2071 y Fh(1.2.3)30 b(Readline)20 b(Killing)h(Commands)75 -2144 y Fi(Killing)16 b Fs(text)d(means)g(to)g(delete)g(the)g(text)g -(from)g(the)g(line,)g(but)h(to)e(sa)o(v)o(e)h(it)f(a)o(w)o(a)o(y)g(for) -h(later)f(use,)i(usually)75 2199 y(b)o(y)f Fi(y)o(anking)k -Fs(\(re-inserting\))12 b(it)h(bac)o(k)g(in)o(to)g(the)g(line.)19 -b(\(`Cut')12 b(and)i(`paste')e(are)h(more)h(recen)o(t)f(jargon)g(for)75 -2254 y(`kill')g(and)j(`y)o(ank'.\))137 2319 y(If)g(the)f(description)f -(for)h(a)g(command)g(sa)o(ys)f(that)h(it)f(`kills')f(text,)h(then)i(y)o -(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o(ou)75 2374 y(can)h(get)g(the)g -(text)g(bac)o(k)g(in)g(a)g(di\013eren)o(t)f(\(or)h(the)g(same\))g -(place)g(later.)137 2440 y(When)d(y)o(ou)g(use)g(a)f(kill)f(command,)i -(the)g(text)f(is)g(sa)o(v)o(ed)g(in)h(a)f Fi(kill-ring)p -Fs(.)17 b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75 -2495 y(kills)j(sa)o(v)o(e)h(all)f(of)h(the)h(killed)f(text)g(together,) -f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)g(bac)o(k,)g(y)o(ou)g(get)g -(it)g(all.)20 b(The)75 2549 y(kill)15 b(ring)h(is)f(not)h(line)g(sp)q -(eci\014c;)h(the)f(text)g(that)f(y)o(ou)h(killed)g(on)g(a)g(previously) -f(t)o(yp)q(ed)i(line)f(is)f(a)o(v)m(ailable)75 2604 y(to)g(b)q(e)g(y)o -(ank)o(ed)g(bac)o(k)h(later,)d(when)j(y)o(ou)f(are)g(t)o(yping)f -(another)h(line.)137 2670 y(Here)h(is)e(the)i(list)e(of)g(commands)h -(for)g(killing)f(text.)p eop end -%%Page: 3 7 -TeXDict begin 3 6 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(3)75 149 y Fk(C-k)168 b Fs(Kill)14 b(the)i(text)e(from) -h(the)g(curren)o(t)g(cursor)g(p)q(osition)f(to)h(the)g(end)h(of)f(the)g -(line.)75 230 y Fk(M-d)168 b Fs(Kill)12 b(from)h(the)g(cursor)g(to)f -(the)i(end)g(of)e(the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)f(b)q(et)o(w)o -(een)i(w)o(ords,)e(to)h(the)315 285 y(end)j(of)f(the)g(next)g(w)o(ord.) -k(W)l(ord)c(b)q(oundaries)h(are)f(the)g(same)g(as)g(those)f(used)i(b)o -(y)f Fk(M-f)p Fs(.)75 366 y Fk(M-DEL)120 b Fs(Kill)14 -b(from)h(the)g(cursor)g(the)h(start)e(of)h(the)g(curren)o(t)g(w)o(ord,) -f(or,)h(if)f(b)q(et)o(w)o(een)i(w)o(ords,)e(to)h(the)315 -421 y(start)j(of)h(the)g(previous)g(w)o(ord.)31 b(W)l(ord)19 -b(b)q(oundaries)g(are)g(the)h(same)e(as)h(those)g(used)h(b)o(y)315 -476 y Fk(M-b)p Fs(.)75 557 y Fk(C-w)168 b Fs(Kill)17 -b(from)f(the)i(cursor)f(to)g(the)h(previous)f(whitespace.)27 -b(This)17 b(is)g(di\013eren)o(t)f(than)i Fk(M-DEL)315 -611 y Fs(b)q(ecause)e(the)f(w)o(ord)g(b)q(oundaries)g(di\013er.)137 -693 y(Here)21 b(is)g(ho)o(w)f(to)g Fi(y)o(ank)j Fs(the)e(text)f(bac)o -(k)h(in)o(to)f(the)g(line.)37 b(Y)l(anking)20 b(means)h(to)f(cop)o(y)h -(the)g(most-)75 748 y(recen)o(tly-killed)14 b(text)h(from)f(the)i(kill) -e(bu\013er.)75 829 y Fk(C-y)168 b Fs(Y)l(ank)15 b(the)h(most)e(recen)o -(tly)h(killed)f(text)h(bac)o(k)g(in)o(to)f(the)i(bu\013er)f(at)f(the)i -(cursor.)75 910 y Fk(M-y)168 b Fs(Rotate)17 b(the)g(kill-ring,)f(and)h -(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)f(do)g(this)g -(if)f(the)i(prior)315 965 y(command)d(is)g Fk(C-y)g Fs(or)f -Fk(M-y)p Fs(.)75 1066 y Fh(1.2.4)30 b(Readline)20 b(Argumen)n(ts)75 -1139 y Fs(Y)l(ou)g(can)f(pass)h(n)o(umeric)f(argumen)o(ts)g(to)g -(Readline)h(commands.)32 b(Sometimes)19 b(the)h(argumen)o(t)e(acts)75 -1194 y(as)i(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)f(it)h(is)f(the)h -Fj(sign)j Fs(of)c(the)h(argumen)o(t)g(that)f(is)h(signi\014can)o(t.)33 -b(If)20 b(y)o(ou)75 1249 y(pass)d(a)f(negativ)o(e)g(argumen)o(t)g(to)g -(a)g(command)h(whic)o(h)g(normally)e(acts)h(in)h(a)f(forw)o(ard)g -(direction,)g(that)75 1304 y(command)i(will)e(act)h(in)h(a)f(bac)o(kw)o -(ard)g(direction.)26 b(F)l(or)17 b(example,)h(to)f(kill)g(text)g(bac)o -(k)g(to)g(the)h(start)e(of)75 1359 y(the)f(line,)g(y)o(ou)g(migh)o(t)f -(t)o(yp)q(e)h(`)p Fr(M--)f(C-k)p Fs('.)137 1427 y(The)h(general)e(w)o -(a)o(y)g(to)h(pass)g(n)o(umeric)g(argumen)o(ts)f(to)g(a)h(command)g(is) -g(to)f(t)o(yp)q(e)h(meta)g(digits)f(b)q(efore)75 1482 -y(the)j(command.)k(If)c(the)f(\014rst)g(`digit')f(t)o(yp)q(ed)h(is)g(a) -h(min)o(us)f(sign)g(\(`)p Fr(-)p Fs('\),)e(then)j(the)f(sign)g(of)g -(the)h(argumen)o(t)75 1537 y(will)i(b)q(e)i(negativ)o(e.)30 -b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)f -(to)g(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75 -1592 y(can)c(t)o(yp)q(e)f(the)h(remainder)f(of)g(the)g(digits,)f(and)i -(then)g(the)f(command.)20 b(F)l(or)13 b(example,)h(to)g(giv)o(e)g(the)g -Fk(C-d)75 1646 y Fs(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f -(could)h(t)o(yp)q(e)g(`)p Fr(M-1)14 b(0)h(C-d)p Fs(',)k(whic)o(h)f -(will)f(delete)i(the)g(next)g(ten)75 1701 y(c)o(haracters)14 -b(on)i(the)f(input)g(line.)75 1802 y Fh(1.2.5)30 b(Searc)n(hing)21 -b(for)f(Commands)h(in)f(the)h(History)75 1875 y Fs(Readline)11 -b(pro)o(vides)f(commands)h(for)f(searc)o(hing)g(through)g(the)h -(command)f(history)g(for)g(lines)g(con)o(taining)75 1930 -y(a)15 b(sp)q(eci\014ed)h(string.)j(There)c(are)g(t)o(w)o(o)f(searc)o -(h)h(mo)q(des:)20 b Fi(incremen)o(tal)c Fs(and)g Fi(non-incremen)o(tal) -p Fs(.)137 1999 y(Incremen)o(tal)d(searc)o(hes)g(b)q(egin)g(b)q(efore)g -(the)g(user)g(has)g(\014nished)g(t)o(yping)f(the)h(searc)o(h)g(string.) -18 b(As)13 b(eac)o(h)75 2054 y(c)o(haracter)k(of)g(the)h(searc)o(h)g -(string)e(is)h(t)o(yp)q(ed,)i(Readline)f(displa)o(ys)e(the)i(next)g(en) -o(try)f(from)g(the)h(history)75 2108 y(matc)o(hing)11 -b(the)h(string)f(t)o(yp)q(ed)h(so)g(far.)18 b(An)13 b(incremen)o(tal)e -(searc)o(h)h(requires)f(only)h(as)g(man)o(y)f(c)o(haracters)g(as)75 -2163 y(needed)16 b(to)d(\014nd)j(the)e(desired)h(history)e(en)o(try)l -(.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)i(the)f(history)f(for)h -(a)g(particular)75 2218 y(string,)f(t)o(yp)q(e)i Fk(C-r)p -Fs(.)k(T)o(yping)c Fk(C-s)f Fs(searc)o(hes)h(forw)o(ard)e(through)h -(the)h(history)l(.)k(The)c(c)o(haracters)f(presen)o(t)75 -2273 y(in)19 b(the)g(v)m(alue)g(of)g(the)g Fr(isearch-terminators)d -Fs(v)m(ariable)i(are)h(used)h(to)e(terminate)g(an)h(incremen)o(tal)75 -2328 y(searc)o(h.)35 b(If)20 b(that)f(v)m(ariable)h(has)g(not)g(b)q -(een)h(assigned)f(a)g(v)m(alue,)h(the)f Fr(ESC)g Fs(and)g -Fk(C-J)g Fs(c)o(haracters)f(will)75 2382 y(terminate)h(an)h(incremen)o -(tal)g(searc)o(h.)37 b Fk(C-g)21 b Fs(will)f(ab)q(ort)h(an)g(incremen)o -(tal)f(searc)o(h)h(and)g(restore)g(the)75 2437 y(original)13 -b(line.)19 b(When)c(the)f(searc)o(h)g(is)g(terminated,)g(the)g(history) -g(en)o(try)g(con)o(taining)f(the)i(searc)o(h)f(string)75 -2492 y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 2560 -y(T)l(o)g(\014nd)i(other)e(matc)o(hing)f(en)o(tries)h(in)h(the)f -(history)g(list,)f(t)o(yp)q(e)h Fk(C-r)g Fs(or)g Fk(C-s)g -Fs(as)h(appropriate.)j(This)75 2615 y(will)12 b(searc)o(h)h(bac)o(kw)o -(ard)f(or)g(forw)o(ard)g(in)h(the)g(history)f(for)h(the)g(next)g(en)o -(try)g(matc)o(hing)f(the)h(searc)o(h)g(string)75 2670 -y(t)o(yp)q(ed)19 b(so)g(far.)30 b(An)o(y)19 b(other)f(k)o(ey)h -(sequence)h(b)q(ound)g(to)e(a)h(Readline)g(command)f(will)g(terminate)g -(the)p eop end -%%Page: 4 8 -TeXDict begin 4 7 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(4)75 149 y(searc)o(h)13 b(and)f(execute)i(that)e -(command.)19 b(F)l(or)12 b(instance,)h(a)f Fr(RET)g Fs(will)g -(terminate)f(the)i(searc)o(h)g(and)g(accept)75 204 y(the)i(line,)f -(thereb)o(y)h(executing)f(the)h(command)g(from)f(the)g(history)g(list.) -k(A)d(mo)o(v)o(emen)o(t)f(command)g(will)75 259 y(terminate)g(the)h -(searc)o(h,)g(mak)o(e)g(the)g(last)f(line)h(found)h(the)f(curren)o(t)g -(line,)f(and)i(b)q(egin)f(editing.)137 323 y(Readline)j(remem)o(b)q -(ers)f(the)h(last)e(incremen)o(tal)h(searc)o(h)g(string.)26 -b(If)17 b(t)o(w)o(o)f Fk(C-r)p Fs(s)h(are)g(t)o(yp)q(ed)h(without)75 -378 y(an)o(y)g(in)o(terv)o(ening)f(c)o(haracters)h(de\014ning)g(a)g -(new)h(searc)o(h)f(string,)f(an)o(y)h(remem)o(b)q(ered)h(searc)o(h)f -(string)f(is)75 433 y(used.)137 498 y(Non-incremen)o(tal)23 -b(searc)o(hes)g(read)h(the)f(en)o(tire)g(searc)o(h)g(string)f(b)q -(efore)i(starting)e(to)g(searc)o(h)i(for)75 552 y(matc)o(hing)c -(history)h(lines.)37 b(The)22 b(searc)o(h)f(string)f(ma)o(y)h(b)q(e)h -(t)o(yp)q(ed)f(b)o(y)h(the)f(user)h(or)e(b)q(e)i(part)f(of)g(the)75 -607 y(con)o(ten)o(ts)15 b(of)f(the)i(curren)o(t)f(line.)75 -718 y Fq(1.3)33 b(Readline)21 b(Init)i(File)75 797 y -Fs(Although)e(the)h(Readline)h(library)d(comes)i(with)f(a)h(set)f(of)h -(Emacs-lik)o(e)f(k)o(eybindings)g(installed)g(b)o(y)75 -852 y(default,)12 b(it)g(is)g(p)q(ossible)g(to)g(use)g(a)g(di\013eren)o -(t)g(set)g(of)g(k)o(eybindings.)19 b(An)o(y)12 b(user)h(can)f -(customize)g(programs)75 907 y(that)21 b(use)i(Readline)f(b)o(y)h -(putting)e(commands)h(in)g(an)g Fi(inputrc)j Fs(\014le,)f(con)o(v)o(en) -o(tionally)c(in)i(his)g(home)75 962 y(directory)l(.)c(The)12 -b(name)g(of)f(this)g(\014le)h(is)f(tak)o(en)g(from)g(the)h(v)m(alue)g -(of)f(the)h(en)o(vironmen)o(t)f(v)m(ariable)g Fr(INPUTRC)p -Fs(.)75 1017 y(If)17 b(that)g(v)m(ariable)f(is)h(unset,)g(the)g -(default)g(is)g(`)p Fr(~/.inputrc)p Fs('.)23 b(If)17 -b(that)g(\014le)g(do)q(es)g(not)g(exist)g(or)f(cannot)75 -1071 y(b)q(e)g(read,)f(the)g(ultimate)f(default)h(is)f(`)p -Fr(/etc/inputrc)p Fs('.)137 1136 y(When)h(a)g(program)f(whic)o(h)g -(uses)h(the)g(Readline)g(library)f(starts)f(up,)i(the)g(init)f(\014le)h -(is)f(read,)h(and)g(the)75 1191 y(k)o(ey)g(bindings)g(are)g(set.)137 -1255 y(In)f(addition,)f(the)g Fr(C-x)i(C-r)e Fs(command)g(re-reads)h -(this)f(init)f(\014le,)i(th)o(us)f(incorp)q(orating)f(an)o(y)h(c)o -(hanges)75 1310 y(that)h(y)o(ou)h(migh)o(t)f(ha)o(v)o(e)h(made)g(to)g -(it.)75 1404 y Fh(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)75 -1477 y Fs(There)g(are)f(only)g(a)g(few)h(basic)f(constructs)g(allo)o(w) -o(ed)f(in)h(the)h(Readline)f(init)g(\014le.)36 b(Blank)20 -b(lines)g(are)75 1532 y(ignored.)35 b(Lines)21 b(b)q(eginning)g(with)e -(a)i(`)p Fr(#)p Fs(')e(are)h(commen)o(ts.)35 b(Lines)21 -b(b)q(eginning)g(with)f(a)g(`)p Fr($)p Fs(')f(indicate)75 -1587 y(conditional)g(constructs)i(\(see)f(Section)h(1.3.2)e -([Conditional)g(Init)h(Constructs],)h(page)f(10\).)36 -b(Other)75 1642 y(lines)15 b(denote)g(v)m(ariable)g(settings)f(and)h(k) -o(ey)g(bindings.)75 1716 y(V)l(ariable)f(Settings)315 -1771 y(Y)l(ou)20 b(can)h(mo)q(dify)f(the)g(run-time)g(b)q(eha)o(vior)g -(of)f(Readline)i(b)o(y)f(altering)f(the)h(v)m(alues)g(of)315 -1826 y(v)m(ariables)c(in)h(Readline)g(using)f(the)h Fr(set)g -Fs(command)f(within)g(the)h(init)f(\014le.)25 b(The)17 -b(syn)o(tax)315 1880 y(is)e(simple:)435 1945 y Fr(set)23 -b Fk(variable)28 b(value)315 2009 y Fs(Here,)14 b(for)f(example,)g(is)g -(ho)o(w)g(to)g(c)o(hange)h(from)f(the)h(default)f(Emacs-lik)o(e)g(k)o -(ey)g(binding)h(to)315 2064 y(use)i Fr(vi)e Fs(line)h(editing)g -(commands:)435 2129 y Fr(set)23 b(editing-mode)g(vi)315 -2193 y Fs(V)l(ariable)17 b(names)g(and)h(v)m(alues,)g(where)f -(appropriate,)g(are)g(recognized)h(without)e(regard)315 -2248 y(to)f(case.)k(Unrecognized)d(v)m(ariable)f(names)g(are)g -(ignored.)315 2312 y(Bo)q(olean)d(v)m(ariables)g(\(those)g(that)g(can)g -(b)q(e)i(set)e(to)g(on)g(or)g(o\013)t(\))f(are)h(set)h(to)f(on)g(if)g -(the)h(v)m(alue)f(is)315 2367 y(n)o(ull)g(or)f(empt)o(y)l(,)h -Fi(on)h Fs(\(case-insensitiv)o(e\),)d(or)i(1.)19 b(An)o(y)12 -b(other)g(v)m(alue)g(results)f(in)h(the)h(v)m(ariable)315 -2422 y(b)q(eing)i(set)g(to)g(o\013.)315 2486 y(A)g(great)g(deal)f(of)h -(run-time)g(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)i(follo)o -(wing)c(v)m(ariables.)315 2560 y Fr(bell-style)555 2615 -y Fs(Con)o(trols)20 b(what)i(happ)q(ens)h(when)f(Readline)g(w)o(an)o -(ts)f(to)g(ring)h(the)g(termi-)555 2670 y(nal)c(b)q(ell.)30 -b(If)19 b(set)f(to)g(`)p Fr(none)p Fs(',)g(Readline)h(nev)o(er)g(rings) -f(the)g(b)q(ell.)30 b(If)19 b(set)g(to)p eop end -%%Page: 5 9 -TeXDict begin 5 8 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(5)555 149 y(`)p Fr(visible)p Fs(',)15 -b(Readline)h(uses)h(a)f(visible)g(b)q(ell)h(if)f(one)g(is)g(a)o(v)m -(ailable.)23 b(If)16 b(set)h(to)555 204 y(`)p Fr(audible)p -Fs(')g(\(the)h(default\),)h(Readline)g(attempts)f(to)g(ring)g(the)h -(terminal's)555 259 y(b)q(ell.)315 332 y Fr(bind-tty-special-chars)555 -387 y Fs(If)k(set)f(to)g(`)p Fr(on)p Fs(',)h(Readline)g(attempts)f(to)g -(bind)h(the)f(con)o(trol)g(c)o(haracters)555 442 y(treated)17 -b(sp)q(ecially)g(b)o(y)h(the)g(k)o(ernel's)f(terminal)f(driv)o(er)h(to) -g(their)h(Readline)555 496 y(equiv)m(alen)o(ts.)315 570 -y Fr(comment-begin)555 624 y Fs(The)d(string)e(to)h(insert)h(at)e(the)i -(b)q(eginning)g(of)f(the)h(line)f(when)h(the)g Fr(insert-)555 -679 y(comment)f Fs(command)h(is)g(executed.)21 b(The)15 -b(default)g(v)m(alue)g(is)g Fr("#")p Fs(.)315 752 y Fr -(completion-display-width)555 807 y Fs(The)21 b(n)o(um)o(b)q(er)g(of)g -(screen)g(columns)f(used)i(to)e(displa)o(y)g(p)q(ossible)g(matc)o(hes) -555 862 y(when)15 b(p)q(erforming)f(completion.)19 b(The)14 -b(v)m(alue)h(is)f(ignored)g(if)g(it)g(is)g(less)g(than)555 -917 y(0)f(or)f(greater)h(than)g(the)g(terminal)f(screen)h(width.)19 -b(A)13 b(v)m(alue)g(of)g(0)g(will)f(cause)555 971 y(matc)o(hes)j(to)f -(b)q(e)i(displa)o(y)o(ed)f(one)g(p)q(er)h(line.)j(The)d(default)e(v)m -(alue)i(is)f(-1.)315 1044 y Fr(completion-ignore-case)555 -1099 y Fs(If)f(set)f(to)g(`)p Fr(on)p Fs(',)g(Readline)h(p)q(erforms)f -(\014lename)h(matc)o(hing)f(and)h(completion)555 1154 -y(in)h(a)g(case-insensitiv)o(e)f(fashion.)20 b(The)15 -b(default)g(v)m(alue)g(is)g(`)p Fr(off)p Fs('.)315 1227 -y Fr(completion-map-case)555 1282 y Fs(If)c(set)g(to)g(`)p -Fr(on)p Fs(',)f(and)h Fi(completion-ignore-case)i Fs(is)e(enabled,)h -(Readline)f(treats)555 1337 y(h)o(yphens)16 b(\(`)p Fr(-)p -Fs('\))e(and)i(underscores)g(\(`)p Fr(_)p Fs('\))d(as)j(equiv)m(alen)o -(t)f(when)h(p)q(erforming)555 1391 y(case-insensitiv)o(e)e(\014lename)i -(matc)o(hing)e(and)h(completion.)315 1465 y Fr -(completion-prefix-display-)o(length)555 1519 y Fs(The)h(length)f(in)h -(c)o(haracters)f(of)g(the)h(common)f(pre\014x)h(of)f(a)h(list)e(of)h(p) -q(ossible)555 1574 y(completions)f(that)g(is)g(displa)o(y)o(ed)g -(without)g(mo)q(di\014cation.)19 b(When)c(set)g(to)f(a)555 -1629 y(v)m(alue)f(greater)f(than)h(zero,)f(common)h(pre\014xes)g -(longer)f(than)h(this)f(v)m(alue)h(are)555 1684 y(replaced)i(with)g(an) -g(ellipsis)f(when)i(displa)o(ying)e(p)q(ossible)h(completions.)315 -1757 y Fr(completion-query-items)555 1812 y Fs(The)e(n)o(um)o(b)q(er)h -(of)e(p)q(ossible)h(completions)g(that)f(determines)h(when)h(the)f -(user)555 1866 y(is)h(ask)o(ed)h(whether)g(the)f(list)g(of)g(p)q -(ossibilities)f(should)i(b)q(e)g(displa)o(y)o(ed.)k(If)c(the)555 -1921 y(n)o(um)o(b)q(er)f(of)f(p)q(ossible)g(completions)f(is)h(greater) -g(than)g(this)g(v)m(alue,)h(Readline)555 1976 y(will)e(ask)h(the)g -(user)h(whether)f(or)g(not)g(he)g(wishes)g(to)g(view)g(them;)g -(otherwise,)555 2031 y(they)f(are)g(simply)g(listed.)18 -b(This)12 b(v)m(ariable)f(m)o(ust)h(b)q(e)h(set)f(to)f(an)h(in)o(teger) -g(v)m(alue)555 2086 y(greater)g(than)g(or)g(equal)g(to)g(0.)18 -b(A)13 b(negativ)o(e)e(v)m(alue)i(means)f(Readline)h(should)555 -2140 y(nev)o(er)i(ask.)20 b(The)15 b(default)g(limit)f(is)g -Fr(100)p Fs(.)315 2213 y Fr(convert-meta)555 2268 y Fs(If)d(set)g(to)g -(`)p Fr(on)p Fs(',)f(Readline)h(will)f(con)o(v)o(ert)g(c)o(haracters)h -(with)f(the)h(eigh)o(th)g(bit)f(set)555 2323 y(to)15 -b(an)h Fl(asci)q(i)f Fs(k)o(ey)h(sequence)h(b)o(y)f(stripping)f(the)h -(eigh)o(th)f(bit)h(and)g(pre\014xing)555 2378 y(an)c -Fr(ESC)g Fs(c)o(haracter,)g(con)o(v)o(erting)f(them)h(to)f(a)h -(meta-pre\014xed)h(k)o(ey)f(sequence.)555 2433 y(The)j(default)g(v)m -(alue)h(is)e(`)p Fr(on)p Fs('.)315 2506 y Fr(disable-completion)555 -2560 y Fs(If)19 b(set)f(to)f(`)p Fr(On)p Fs(',)h(Readline)h(will)e -(inhibit)g(w)o(ord)h(completion.)28 b(Completion)555 -2615 y(c)o(haracters)12 b(will)g(b)q(e)i(inserted)f(in)o(to)f(the)h -(line)f(as)h(if)g(they)g(had)g(b)q(een)h(mapp)q(ed)555 -2670 y(to)h Fr(self-insert)p Fs(.)j(The)d(default)g(is)g(`)p -Fr(off)p Fs('.)p eop end -%%Page: 6 10 -TeXDict begin 6 9 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(6)315 149 y Fr(editing-mode)555 204 y -Fs(The)15 b Fr(editing-mode)d Fs(v)m(ariable)i(con)o(trols)f(whic)o(h)h -(default)g(set)g(of)g(k)o(ey)g(bind-)555 259 y(ings)e(is)g(used.)20 -b(By)12 b(default,)h(Readline)f(starts)g(up)h(in)f(Emacs)g(editing)g -(mo)q(de,)555 314 y(where)j(the)f(k)o(eystrok)o(es)g(are)g(most)g -(similar)f(to)g(Emacs.)20 b(This)14 b(v)m(ariable)g(can)555 -369 y(b)q(e)i(set)f(to)f(either)h(`)p Fr(emacs)p Fs(')f(or)h(`)p -Fr(vi)p Fs('.)315 442 y Fr(echo-control-characters)555 -496 y Fs(When)h(set)e(to)h(`)p Fr(on)p Fs(',)f(on)h(op)q(erating)f -(systems)h(that)f(indicate)h(they)g(supp)q(ort)555 551 -y(it,)g(readline)g(ec)o(ho)q(es)h(a)g(c)o(haracter)f(corresp)q(onding)h -(to)f(a)g(signal)g(generated)555 606 y(from)f(the)i(k)o(eyb)q(oard.)k -(The)15 b(default)g(is)f(`)p Fr(on)p Fs('.)315 679 y -Fr(enable-keypad)555 734 y Fs(When)e(set)f(to)h(`)p Fr(on)p -Fs(',)e(Readline)i(will)f(try)g(to)g(enable)h(the)g(application)e(k)o -(eypad)555 789 y(when)k(it)e(is)h(called.)19 b(Some)13 -b(systems)g(need)h(this)f(to)g(enable)g(the)h(arro)o(w)e(k)o(eys.)555 -844 y(The)j(default)g(is)g(`)p Fr(off)p Fs('.)315 917 -y Fr(enable-meta-key)555 971 y Fs(When)20 b(set)g(to)f(`)p -Fr(on)p Fs(',)h(Readline)g(will)e(try)i(to)f(enable)h(an)o(y)g(meta)f -(mo)q(di\014er)555 1026 y(k)o(ey)i(the)g(terminal)e(claims)h(to)g(supp) -q(ort)h(when)h(it)e(is)g(called.)37 b(On)21 b(man)o(y)555 -1081 y(terminals,)16 b(the)i(meta)f(k)o(ey)h(is)f(used)h(to)f(send)h -(eigh)o(t-bit)e(c)o(haracters.)27 b(The)555 1136 y(default)15 -b(is)f(`)p Fr(on)p Fs('.)315 1209 y Fr(expand-tilde)555 -1264 y Fs(If)g(set)g(to)f(`)p Fr(on)p Fs(',)f(tilde)i(expansion)f(is)h -(p)q(erformed)g(when)g(Readline)g(attempts)555 1318 y(w)o(ord)h -(completion.)k(The)c(default)g(is)f(`)p Fr(off)p Fs('.)315 -1391 y Fr(history-preserve-point)555 1446 y Fs(If)21 -b(set)g(to)f(`)p Fr(on)p Fs(',)h(the)g(history)f(co)q(de)h(attempts)f -(to)g(place)h(the)g(p)q(oin)o(t)f(\(the)555 1501 y(curren)o(t)d(cursor) -h(p)q(osition\))e(at)h(the)h(same)f(lo)q(cation)f(on)i(eac)o(h)g -(history)e(line)555 1556 y(retriev)o(ed)i(with)f Fr(previous-history)f -Fs(or)i Fr(next-history)p Fs(.)27 b(The)18 b(default)555 -1611 y(is)d(`)p Fr(off)p Fs('.)315 1684 y Fr(history-size)555 -1738 y Fs(Set)20 b(the)f(maxim)o(um)g(n)o(um)o(b)q(er)h(of)f(history)f -(en)o(tries)h(sa)o(v)o(ed)g(in)g(the)h(history)555 1793 -y(list.)25 b(If)17 b(set)g(to)g(zero,)g(the)g(n)o(um)o(b)q(er)h(of)f -(en)o(tries)f(in)h(the)g(history)g(list)f(is)g(not)555 -1848 y(limited.)315 1921 y Fr(horizontal-scroll-mode)555 -1976 y Fs(This)i(v)m(ariable)f(can)h(b)q(e)g(set)g(to)f(either)h(`)p -Fr(on)p Fs(')f(or)g(`)p Fr(off)p Fs('.)27 b(Setting)18 -b(it)f(to)g(`)p Fr(on)p Fs(')555 2031 y(means)c(that)f(the)i(text)e(of) -h(the)g(lines)g(b)q(eing)g(edited)g(will)f(scroll)g(horizon)o(tally)555 -2086 y(on)k(a)f(single)g(screen)i(line)e(when)i(they)f(are)f(longer)g -(than)h(the)g(width)f(of)h(the)555 2140 y(screen,)e(instead)e(of)h -(wrapping)f(on)o(to)g(a)h(new)g(screen)h(line.)19 b(By)13 -b(default,)g(this)555 2195 y(v)m(ariable)i(is)f(set)h(to)g(`)p -Fr(off)p Fs('.)315 2268 y Fr(input-meta)555 2323 y Fs(If)h(set)f(to)g -(`)p Fr(on)p Fs(',)f(Readline)i(will)f(enable)g(eigh)o(t-bit)g(input)g -(\(it)g(will)f(not)h(clear)555 2378 y(the)20 b(eigh)o(th)f(bit)g(in)h -(the)g(c)o(haracters)f(it)g(reads\),)h(regardless)f(of)h(what)f(the)555 -2433 y(terminal)g(claims)g(it)g(can)h(supp)q(ort.)34 -b(The)20 b(default)g(v)m(alue)g(is)g(`)p Fr(off)p Fs('.)33 -b(The)555 2487 y(name)15 b Fr(meta-flag)f Fs(is)h(a)g(synon)o(ym)g(for) -f(this)h(v)m(ariable.)315 2560 y Fr(isearch-terminators)555 -2615 y Fs(The)26 b(string)f(of)g(c)o(haracters)g(that)g(should)h -(terminate)f(an)h(incremen)o(tal)555 2670 y(searc)o(h)12 -b(without)g(subsequen)o(tly)g(executing)h(the)f(c)o(haracter)g(as)g(a)g -(command)p eop end -%%Page: 7 11 -TeXDict begin 7 10 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(7)555 149 y(\(see)22 b(Section)g(1.2.5)f([Searc)o -(hing],)i(page)f(3\).)40 b(If)23 b(this)f(v)m(ariable)f(has)h(not)555 -204 y(b)q(een)d(giv)o(en)e(a)g(v)m(alue,)i(the)f(c)o(haracters)e -Fr(ESC)i Fs(and)g Fk(C-J)f Fs(will)f(terminate)h(an)555 -259 y(incremen)o(tal)d(searc)o(h.)315 344 y Fr(keymap)96 -b Fs(Sets)19 b(Readline's)h(idea)f(of)g(the)g(curren)o(t)h(k)o(eymap)f -(for)f(k)o(ey)i(binding)f(com-)555 399 y(mands.)41 b(Acceptable)22 -b Fr(keymap)g Fs(names)g(are)f Fr(emacs)p Fs(,)i Fr(emacs-standard)p -Fs(,)555 454 y Fr(emacs-meta)p Fs(,)49 b Fr(emacs-ctlx)p -Fs(,)g Fr(vi)p Fs(,)h Fr(vi-move)p Fs(,)f Fr(vi-command)p -Fs(,)g(and)555 509 y Fr(vi-insert)p Fs(.)31 b Fr(vi)20 -b Fs(is)f(equiv)m(alen)o(t)g(to)g Fr(vi-command)p Fs(;)g -Fr(emacs)g Fs(is)g(equiv)m(alen)o(t)555 563 y(to)c Fr(emacs-standard)p -Fs(.)20 b(The)d(default)e(v)m(alue)h(is)g Fr(emacs)p -Fs(.)21 b(The)16 b(v)m(alue)g(of)g(the)555 618 y Fr(editing-mode)e -Fs(v)m(ariable)g(also)g(a\013ects)h(the)g(default)g(k)o(eymap.)315 -703 y Fr(mark-directories)555 758 y Fs(If)k(set)g(to)g(`)p -Fr(on)p Fs(',)f(completed)h(directory)g(names)g(ha)o(v)o(e)f(a)h(slash) -g(app)q(ended.)555 813 y(The)c(default)g(is)g(`)p Fr(on)p -Fs('.)315 898 y Fr(mark-modified-lines)555 953 y Fs(This)j(v)m -(ariable,)f(when)i(set)e(to)h(`)p Fr(on)p Fs(',)f(causes)h(Readline)g -(to)f(displa)o(y)g(an)h(as-)555 1008 y(terisk)e(\(`)p -Fr(*)p Fs('\))f(at)i(the)f(start)g(of)h(history)e(lines)i(whic)o(h)f -(ha)o(v)o(e)h(b)q(een)h(mo)q(di\014ed.)555 1063 y(This)d(v)m(ariable)f -(is)h(`)p Fr(off)p Fs(')f(b)o(y)h(default.)315 1148 y -Fr(mark-symlinked-directories)555 1203 y Fs(If)23 b(set)f(to)f(`)p -Fr(on)p Fs(',)i(completed)f(names)h(whic)o(h)f(are)g(sym)o(b)q(olic)g -(links)f(to)h(di-)555 1258 y(rectories)g(ha)o(v)o(e)h(a)g(slash)f(app)q -(ended)j(\(sub)s(ject)e(to)f(the)i(v)m(alue)f(of)g Fr(mark-)555 -1312 y(directories)p Fs(\).)18 b(The)d(default)g(is)g(`)p -Fr(off)p Fs('.)315 1398 y Fr(match-hidden-files)555 1452 -y Fs(This)c(v)m(ariable,)g(when)g(set)g(to)g(`)p Fr(on)p -Fs(',)f(causes)h(Readline)h(to)e(matc)o(h)h(\014les)g(whose)555 -1507 y(names)22 b(b)q(egin)g(with)g(a)f(`)p Fr(.)p Fs(')h(\(hidden)g -(\014les\))g(when)g(p)q(erforming)g(\014lename)555 1562 -y(completion.)35 b(If)21 b(set)g(to)f(`)p Fr(off)p Fs(',)g(the)h -(leading)f(`)p Fr(.)p Fs(')g(m)o(ust)g(b)q(e)h(supplied)g(b)o(y)555 -1617 y(the)c(user)g(in)g(the)g(\014lename)h(to)e(b)q(e)i(completed.)25 -b(This)17 b(v)m(ariable)f(is)h(`)p Fr(on)p Fs(')f(b)o(y)555 -1672 y(default.)315 1757 y Fr(menu-complete-display-pref)o(ix)555 -1812 y Fs(If)h(set)g(to)f(`)p Fr(on)p Fs(',)f(men)o(u)i(completion)f -(displa)o(ys)g(the)h(common)f(pre\014x)i(of)e(the)555 -1866 y(list)i(of)g(p)q(ossible)g(completions)g(\(whic)o(h)h(ma)o(y)f(b) -q(e)h(empt)o(y\))f(b)q(efore)h(cycling)555 1921 y(through)c(the)g -(list.)k(The)c(default)g(is)g(`)p Fr(off)p Fs('.)315 -2006 y Fr(output-meta)555 2061 y Fs(If)j(set)f(to)g(`)p -Fr(on)p Fs(',)g(Readline)h(will)f(displa)o(y)g(c)o(haracters)f(with)i -(the)f(eigh)o(th)g(bit)555 2116 y(set)h(directly)g(rather)f(than)h(as)g -(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555 -2171 y(default)15 b(is)f(`)p Fr(off)p Fs('.)315 2256 -y Fr(page-completions)555 2311 y Fs(If)j(set)g(to)f(`)p -Fr(on)p Fs(',)g(Readline)h(uses)h(an)e(in)o(ternal)g -Fr(more)p Fs(-lik)o(e)g(pager)h(to)f(displa)o(y)555 2366 -y(a)g(screenful)g(of)g(p)q(ossible)g(completions)f(at)h(a)g(time.)22 -b(This)16 b(v)m(ariable)f(is)h(`)p Fr(on)p Fs(')555 2420 -y(b)o(y)f(default.)315 2506 y Fr(print-completions-horizont)o(ally)555 -2560 y Fs(If)d(set)g(to)f(`)p Fr(on)p Fs(',)h(Readline)g(will)e(displa) -o(y)i(completions)f(with)g(matc)o(hes)g(sorted)555 2615 -y(horizon)o(tally)20 b(in)h(alphab)q(etical)g(order,)i(rather)e(than)g -(do)o(wn)h(the)g(screen.)555 2670 y(The)15 b(default)g(is)g(`)p -Fr(off)p Fs('.)p eop end -%%Page: 8 12 -TeXDict begin 8 11 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(8)315 149 y Fr(revert-all-at-newline)555 -204 y Fs(If)15 b(set)g(to)f(`)p Fr(on)p Fs(',)f(Readline)i(will)f(undo) -h(all)f(c)o(hanges)g(to)h(history)e(lines)i(b)q(efore)555 -259 y(returning)f(when)h Fr(accept-line)e Fs(is)g(executed.)21 -b(By)14 b(default,)g(history)f(lines)555 314 y(ma)o(y)20 -b(b)q(e)i(mo)q(di\014ed)f(and)g(retain)f(individual)g(undo)i(lists)d -(across)i(calls)f(to)555 369 y Fr(readline)p Fs(.)f(The)c(default)g(is) -g(`)p Fr(off)p Fs('.)315 451 y Fr(show-all-if-ambiguous)555 -506 y Fs(This)g(alters)e(the)j(default)e(b)q(eha)o(vior)h(of)f(the)h -(completion)f(functions.)20 b(If)15 b(set)555 560 y(to)e(`)p -Fr(on)p Fs(',)g(w)o(ords)g(whic)o(h)g(ha)o(v)o(e)h(more)f(than)g(one)h -(p)q(ossible)g(completion)f(cause)555 615 y(the)20 b(matc)o(hes)f(to)f -(b)q(e)j(listed)d(immediately)g(instead)h(of)g(ringing)g(the)g(b)q -(ell.)555 670 y(The)c(default)g(v)m(alue)h(is)e(`)p Fr(off)p -Fs('.)315 752 y Fr(show-all-if-unmodified)555 807 y Fs(This)19 -b(alters)f(the)i(default)e(b)q(eha)o(vior)h(of)g(the)h(completion)e -(functions)h(in)g(a)555 862 y(fashion)12 b(similar)f(to)g -Fi(sho)o(w-all-if-am)o(biguous)r Fs(.)17 b(If)c(set)f(to)g(`)p -Fr(on)p Fs(',)f(w)o(ords)h(whic)o(h)555 917 y(ha)o(v)o(e)j(more)g(than) -g(one)h(p)q(ossible)f(completion)f(without)h(an)o(y)g(p)q(ossible)g -(par-)555 971 y(tial)20 b(completion)g(\(the)h(p)q(ossible)g -(completions)f(don't)h(share)g(a)f(common)555 1026 y(pre\014x\))15 -b(cause)h(the)f(matc)o(hes)g(to)f(b)q(e)i(listed)e(immediately)g -(instead)h(of)f(ring-)555 1081 y(ing)h(the)g(b)q(ell.)20 -b(The)15 b(default)g(v)m(alue)g(is)g(`)p Fr(off)p Fs('.)315 -1163 y Fr(skip-completed-text)555 1218 y Fs(If)i(set)f(to)g(`)p -Fr(on)p Fs(',)f(this)h(alters)f(the)i(default)f(completion)f(b)q(eha)o -(vior)h(when)h(in-)555 1273 y(serting)d(a)g(single)g(matc)o(h)g(in)o -(to)f(the)i(line.)k(It's)14 b(only)g(activ)o(e)g(when)h(p)q(erform-)555 -1328 y(ing)i(completion)f(in)h(the)h(middle)f(of)g(a)g(w)o(ord.)25 -b(If)18 b(enabled,)g(readline)f(do)q(es)555 1382 y(not)j(insert)g(c)o -(haracters)f(from)h(the)g(completion)f(that)h(matc)o(h)g(c)o(haracters) -555 1437 y(after)e(p)q(oin)o(t)g(in)g(the)g(w)o(ord)g(b)q(eing)h -(completed,)g(so)f(p)q(ortions)f(of)h(the)h(w)o(ord)555 -1492 y(follo)o(wing)14 b(the)h(cursor)h(are)g(not)f(duplicated.)22 -b(F)l(or)15 b(instance,)g(if)h(this)f(is)g(en-)555 1547 -y(abled,)21 b(attempting)e(completion)g(when)i(the)f(cursor)g(is)g -(after)g(the)g(`)p Fr(e)p Fs(')f(in)555 1601 y(`)p Fr(Makefile)p -Fs(')e(will)g(result)h(in)h(`)p Fr(Makefile)p Fs(')e(rather)h(than)h(`) -p Fr(Makefilefile)p Fs(',)555 1656 y(assuming)e(there)h(is)f(a)g -(single)g(p)q(ossible)g(completion.)27 b(The)18 b(default)f(v)m(alue) -555 1711 y(is)e(`)p Fr(off)p Fs('.)315 1793 y Fr(visible-stats)555 -1848 y Fs(If)h(set)g(to)f(`)p Fr(on)p Fs(',)g(a)h(c)o(haracter)f -(denoting)g(a)h(\014le's)g(t)o(yp)q(e)g(is)f(app)q(ended)j(to)d(the)555 -1903 y(\014lename)g(when)h(listing)e(p)q(ossible)h(completions.)j(The)e -(default)f(is)f(`)p Fr(off)p Fs('.)75 1985 y(Key)i(Bindings)315 -2040 y(The)21 b(syn)o(tax)f(for)h(con)o(trolling)e(k)o(ey)i(bindings)f -(in)h(the)g(init)f(\014le)h(is)g(simple.)37 b(First)19 -b(y)o(ou)315 2095 y(need)c(to)e(\014nd)h(the)g(name)g(of)g(the)f -(command)h(that)f(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19 -b(The)14 b(follo)o(wing)315 2149 y(sections)j(con)o(tain)h(tables)f(of) -g(the)h(command)g(name,)g(the)g(default)g(k)o(eybinding,)g(if)f(an)o(y) -l(,)315 2204 y(and)e(a)g(short)g(description)g(of)f(what)h(the)g -(command)g(do)q(es.)315 2273 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g -(of)g(the)g(command,)g(simply)f(place)h(on)g(a)f(line)h(in)g(the)g -(init)315 2328 y(\014le)f(the)g(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f -(wish)h(to)f(bind)h(the)g(command)g(to,)f(a)g(colon,)h(and)g(then)315 -2382 y(the)f(name)g(of)g(the)g(command.)22 b(There)17 -b(can)f(b)q(e)h(no)f(space)g(b)q(et)o(w)o(een)h(the)f(k)o(ey)g(name)g -(and)315 2437 y(the)k(colon)g({)g(that)g(will)f(b)q(e)i(in)o(terpreted) -f(as)g(part)g(of)g(the)h(k)o(ey)f(name.)35 b(The)21 b(name)f(of)315 -2492 y(the)d(k)o(ey)g(can)h(b)q(e)g(expressed)g(in)f(di\013eren)o(t)f -(w)o(a)o(ys,)h(dep)q(ending)h(on)f(what)g(y)o(ou)g(\014nd)h(most)315 -2547 y(comfortable.)315 2615 y(In)h(addition)e(to)g(command)h(names,)g -(readline)g(allo)o(ws)e(k)o(eys)i(to)f(b)q(e)i(b)q(ound)g(to)e(a)h -(string)315 2670 y(that)c(is)h(inserted)g(when)h(the)f(k)o(ey)g(is)g -(pressed)h(\(a)e Fi(macro)r Fs(\).)p eop end -%%Page: 9 13 -TeXDict begin 9 12 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(9)315 149 y Fi(k)o(eyname)s Fs(:)19 b -Fi(function-name)f Fs(or)d Fi(macro)555 204 y(k)o(eyname)i -Fs(is)d(the)g(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)h(out)f(in)g -(English.)19 b(F)l(or)13 b(example:)675 271 y Fr(Control-u:)22 -b(universal-argument)675 325 y(Meta-Rubout:)g(backward-kill-word)675 -380 y(Control-o:)g(">)i(output")555 447 y Fs(In)c(the)f(ab)q(o)o(v)o(e) -g(example,)h Fk(C-u)f Fs(is)g(b)q(ound)h(to)f(the)g(function)g -Fr(universal-)555 501 y(argument)p Fs(,)f Fk(M-DEL)h -Fs(is)f(b)q(ound)i(to)e(the)h(function)g Fr(backward-kill-word)p -Fs(,)555 556 y(and)h Fk(C-o)f Fs(is)g(b)q(ound)h(to)f(run)h(the)f -(macro)g(expressed)h(on)g(the)f(righ)o(t)g(hand)555 611 -y(side)c(\(that)f(is,)h(to)f(insert)h(the)g(text)g(`)p -Fr(>)f(output)p Fs(')g(in)o(to)h(the)g(line\).)555 677 -y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)g(c)o(haracter)g(names)g -(are)g(recognized)h(while)f(pro-)555 732 y(cessing)11 -b(this)f(k)o(ey)g(binding)h(syn)o(tax:)17 b Fi(DEL)p -Fs(,)10 b Fi(ESC)t Fs(,)h Fi(ESCAPE)s Fs(,)f Fi(LFD)r -Fs(,)g Fi(NEW-)555 787 y(LINE)s Fs(,)15 b Fi(RET)s Fs(,)h -Fi(RETURN)5 b Fs(,)15 b Fi(R)o(UBOUT)s Fs(,)h Fi(SP)l(A)o(CE)s -Fs(,)e Fi(SPC)t Fs(,)h(and)g Fi(T)l(AB)s Fs(.)315 865 -y Fr(")p Fi(k)o(eyseq)q Fr(")p Fs(:)20 b Fi(function-name)d -Fs(or)e Fi(macro)555 920 y(k)o(eyseq)i Fs(di\013ers)d(from)h -Fi(k)o(eyname)j Fs(ab)q(o)o(v)o(e)d(in)h(that)e(strings)h(denoting)g -(an)g(en-)555 975 y(tire)h(k)o(ey)h(sequence)h(can)f(b)q(e)g(sp)q -(eci\014ed,)h(b)o(y)f(placing)f(the)h(k)o(ey)g(sequence)h(in)555 -1029 y(double)d(quotes.)k(Some)c Fl(gnu)g Fs(Emacs)f(st)o(yle)g(k)o(ey) -h(escap)q(es)g(can)g(b)q(e)g(used,)g(as)555 1084 y(in)i(the)g(follo)o -(wing)d(example,)j(but)g(the)g(sp)q(ecial)g(c)o(haracter)f(names)h(are) -f(not)555 1139 y(recognized.)675 1205 y Fr("\\C-u":)23 -b(universal-argument)675 1260 y("\\C-x\\C-r":)f(re-read-init-file)675 -1315 y("\\e[11~":)h("Function)f(Key)i(1")555 1381 y Fs(In)33 -b(the)f(ab)q(o)o(v)o(e)g(example,)k Fk(C-u)c Fs(is)g(again)f(b)q(ound)i -(to)f(the)g(function)555 1436 y Fr(universal-argument)19 -b Fs(\(just)j(as)f(it)g(w)o(as)g(in)h(the)g(\014rst)f(example\),)i(`)p -Fk(C-x)555 1491 y(C-r)p Fs(')14 b(is)h(b)q(ound)h(to)f(the)g(function)g -Fr(re-read-init-file)p Fs(,)d(and)k(`)p Fr(ESC)e([)h(1)g(1)555 -1546 y(~)p Fs(')g(is)f(b)q(ound)j(to)d(insert)h(the)g(text)g(`)p -Fr(Function)e(Key)i(1)p Fs('.)315 1624 y(The)g(follo)o(wing)e -Fl(gnu)h Fs(Emacs)h(st)o(yle)f(escap)q(e)i(sequences)g(are)e(a)o(v)m -(ailable)g(when)h(sp)q(ecifying)315 1679 y(k)o(ey)g(sequences:)315 -1757 y Fk(\\C-)168 b Fs(con)o(trol)14 b(pre\014x)315 -1835 y Fk(\\M-)168 b Fs(meta)15 b(pre\014x)315 1913 y -Fk(\\e)192 b Fs(an)15 b(escap)q(e)h(c)o(haracter)315 -1991 y Fk(\\\\)192 b Fs(bac)o(kslash)315 2069 y Fk(\\)p -Fr(")g(")p Fs(,)15 b(a)g(double)g(quotation)f(mark)315 -2147 y Fk(\\')192 b Fr(')p Fs(,)15 b(a)g(single)f(quote)h(or)g(ap)q -(ostrophe)315 2225 y(In)f(addition)f(to)h(the)f Fl(gnu)h -Fs(Emacs)g(st)o(yle)e(escap)q(e)j(sequences,)g(a)e(second)i(set)e(of)h -(bac)o(kslash)315 2280 y(escap)q(es)i(is)f(a)o(v)m(ailable:)315 -2358 y Fr(\\a)192 b Fs(alert)14 b(\(b)q(ell\))315 2436 -y Fr(\\b)192 b Fs(bac)o(kspace)315 2514 y Fr(\\d)g Fs(delete)315 -2592 y Fr(\\f)g Fs(form)14 b(feed)315 2670 y Fr(\\n)192 -b Fs(newline)p eop end -%%Page: 10 14 -TeXDict begin 10 13 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(10)315 149 y Fr(\\r)192 b Fs(carriage)14 -b(return)315 226 y Fr(\\t)192 b Fs(horizon)o(tal)14 b(tab)315 -302 y Fr(\\v)192 b Fs(v)o(ertical)14 b(tab)315 378 y -Fr(\\)p Fk(nnn)144 b Fs(the)17 b(eigh)o(t-bit)f(c)o(haracter)h(whose)g -(v)m(alue)h(is)e(the)i(o)q(ctal)e(v)m(alue)i Fi(nnn)g -Fs(\(one)f(to)555 433 y(three)e(digits\))315 509 y Fr(\\x)p -Fk(HH)144 b Fs(the)20 b(eigh)o(t-bit)e(c)o(haracter)h(whose)h(v)m(alue) -g(is)f(the)h(hexadecimal)f(v)m(alue)h Fi(HH)555 564 y -Fs(\(one)15 b(or)g(t)o(w)o(o)f(hex)h(digits\))315 640 -y(When)k(en)o(tering)f(the)h(text)f(of)g(a)h(macro,)f(single)g(or)g -(double)h(quotes)g(m)o(ust)f(b)q(e)h(used)h(to)315 695 -y(indicate)10 b(a)h(macro)f(de\014nition.)18 b(Unquoted)11 -b(text)f(is)h(assumed)f(to)h(b)q(e)g(a)f(function)h(name.)18 -b(In)315 750 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o(kslash)f -(escap)q(es)h(describ)q(ed)h(ab)q(o)o(v)o(e)e(are)g(expanded.)20 -b(Bac)o(kslash)315 804 y(will)f(quote)g(an)o(y)h(other)g(c)o(haracter)f -(in)h(the)g(macro)f(text,)h(including)g(`)p Fr(")p Fs(')f(and)h(`)p -Fr(')p Fs('.)34 b(F)l(or)315 859 y(example,)13 b(the)g(follo)o(wing)d -(binding)j(will)f(mak)o(e)g(`)p Fk(C-x)i Fr(\\)p Fs(')f(insert)f(a)h -(single)f(`)p Fr(\\)p Fs(')g(in)o(to)g(the)h(line:)435 -925 y Fr("\\C-x\\\\":)23 b("\\\\")75 1021 y Fh(1.3.2)30 -b(Conditional)20 b(Init)g(Constructs)75 1094 y Fs(Readline)f(implemen)o -(ts)e(a)h(facilit)o(y)f(similar)f(in)i(spirit)g(to)f(the)i(conditional) -e(compilation)f(features)i(of)75 1149 y(the)d(C)h(prepro)q(cessor)f -(whic)o(h)g(allo)o(ws)f(k)o(ey)h(bindings)g(and)h(v)m(ariable)e -(settings)h(to)f(b)q(e)i(p)q(erformed)g(as)f(the)75 1204 -y(result)g(of)f(tests.)20 b(There)15 b(are)g(four)g(parser)g(directiv)o -(es)f(used.)75 1280 y Fr($if)168 b Fs(The)16 b Fr($if)f -Fs(construct)g(allo)o(ws)f(bindings)i(to)f(b)q(e)h(made)g(based)g(on)f -(the)h(editing)f(mo)q(de,)h(the)315 1335 y(terminal)i(b)q(eing)h(used,) -h(or)f(the)g(application)f(using)g(Readline.)32 b(The)19 -b(text)g(of)f(the)i(test)315 1390 y(extends)c(to)e(the)h(end)h(of)f -(the)g(line;)g(no)g(c)o(haracters)f(are)h(required)h(to)e(isolate)g -(it.)315 1466 y Fr(mode)144 b Fs(The)11 b Fr(mode=)e -Fs(form)h(of)g(the)h Fr($if)f Fs(directiv)o(e)f(is)h(used)h(to)f(test)g -(whether)h(Readline)555 1521 y(is)j(in)h Fr(emacs)f Fs(or)g -Fr(vi)g Fs(mo)q(de.)20 b(This)15 b(ma)o(y)f(b)q(e)h(used)g(in)g -(conjunction)g(with)f(the)555 1575 y(`)p Fr(set)g(keymap)p -Fs(')f(command,)g(for)h(instance,)f(to)g(set)h(bindings)f(in)h(the)g -Fr(emacs-)555 1630 y(standard)d Fs(and)i Fr(emacs-ctlx)e -Fs(k)o(eymaps)h(only)h(if)f(Readline)g(is)g(starting)f(out)555 -1685 y(in)k Fr(emacs)g Fs(mo)q(de.)315 1761 y Fr(term)144 -b Fs(The)14 b Fr(term=)e Fs(form)h(ma)o(y)g(b)q(e)h(used)g(to)f -(include)h(terminal-sp)q(eci\014c)f(k)o(ey)g(bind-)555 -1816 y(ings,)18 b(p)q(erhaps)h(to)e(bind)h(the)h(k)o(ey)e(sequences)j -(output)e(b)o(y)g(the)g(terminal's)555 1871 y(function)12 -b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)f(side)g(of)h -(the)g(`)p Fr(=)p Fs(')f(is)g(tested)h(against)555 1926 -y(b)q(oth)j(the)g(full)g(name)g(of)f(the)h(terminal)f(and)h(the)g(p)q -(ortion)g(of)f(the)h(terminal)555 1980 y(name)i(b)q(efore)g(the)g -(\014rst)f(`)p Fr(-)p Fs('.)24 b(This)16 b(allo)o(ws)f -Fr(sun)h Fs(to)g(matc)o(h)h(b)q(oth)f Fr(sun)h Fs(and)555 -2035 y Fr(sun-cmd)p Fs(,)d(for)g(instance.)315 2111 y -Fr(application)555 2166 y Fs(The)d Fi(application)f Fs(construct)h(is)f -(used)i(to)e(include)h(application-sp)q(eci\014c)g(set-)555 -2221 y(tings.)18 b(Eac)o(h)12 b(program)f(using)i(the)f(Readline)h -(library)e(sets)h(the)g Fi(application)555 2276 y(name)s -Fs(,)f(and)h(y)o(ou)f(can)h(test)e(for)h(a)g(particular)f(v)m(alue.)19 -b(This)11 b(could)h(b)q(e)g(used)g(to)555 2331 y(bind)17 -b(k)o(ey)f(sequences)i(to)d(functions)i(useful)f(for)g(a)g(sp)q -(eci\014c)h(program.)23 b(F)l(or)555 2385 y(instance,)16 -b(the)h(follo)o(wing)d(command)j(adds)f(a)g(k)o(ey)h(sequence)g(that)f -(quotes)555 2440 y(the)f(curren)o(t)g(or)g(previous)g(w)o(ord)f(in)i -(Bash:)675 2506 y Fr($if)23 b(Bash)675 2560 y(#)h(Quote)f(the)g -(current)g(or)h(previous)f(word)675 2615 y("\\C-xq":)g -("\\eb\\"\\ef\\"")675 2670 y($endif)p eop end -%%Page: 11 15 -TeXDict begin 11 14 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(11)75 149 y Fr($endif)96 b Fs(This)15 -b(command,)f(as)h(seen)h(in)f(the)g(previous)g(example,)g(terminates)f -(an)h Fr($if)f Fs(command.)75 229 y Fr($else)120 b Fs(Commands)15 -b(in)g(this)f(branc)o(h)i(of)e(the)i Fr($if)e Fs(directiv)o(e)h(are)g -(executed)h(if)f(the)g(test)g(fails.)75 309 y Fr($include)48 -b Fs(This)21 b(directiv)o(e)g(tak)o(es)g(a)h(single)f(\014lename)h(as)f -(an)h(argumen)o(t)f(and)h(reads)f(commands)315 364 y(and)e(bindings)h -(from)e(that)h(\014le.)32 b(F)l(or)19 b(example,)h(the)f(follo)o(wing)e -(directiv)o(e)i(reads)g(from)315 418 y(`)p Fr(/etc/inputrc)p -Fs(':)435 486 y Fr($include)k(/etc/inputrc)75 585 y Fh(1.3.3)30 -b(Sample)20 b(Init)h(File)75 659 y Fs(Here)13 b(is)g(an)g(example)g(of) -g(an)g Fi(inputrc)j Fs(\014le.)k(This)12 b(illustrates)g(k)o(ey)h -(binding,)g(v)m(ariable)g(assignmen)o(t,)f(and)75 714 -y(conditional)i(syn)o(tax.)p eop end -%%Page: 12 16 -TeXDict begin 12 15 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(12)195 204 y Fr(#)24 b(This)f(file)g(controls)g(the)h -(behaviour)e(of)i(line)f(input)g(editing)g(for)195 259 -y(#)h(programs)e(that)i(use)f(the)h(GNU)f(Readline)g(library.)47 -b(Existing)195 314 y(#)24 b(programs)e(include)h(FTP,)h(Bash,)f(and)g -(GDB.)195 369 y(#)195 423 y(#)h(You)f(can)h(re-read)f(the)g(inputrc)g -(file)g(with)h(C-x)f(C-r.)195 478 y(#)h(Lines)f(beginning)g(with)g('#') -g(are)h(comments.)195 533 y(#)195 588 y(#)g(First,)f(include)g(any)g -(systemwide)g(bindings)f(and)i(variable)195 643 y(#)g(assignments)e -(from)h(/etc/Inputrc)195 697 y($include)g(/etc/Inputrc)195 -807 y(#)195 862 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.) -195 971 y(set)g(editing-mode)g(emacs)195 1081 y($if)g(mode=emacs)195 -1191 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the) -f(function)g(name)g(is)h(ignored)p 1986 1201 21 38 v -195 1300 a(#)195 1355 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195 -1410 y(#)195 1465 y(#"\\M-OD":)190 b(backward-char)195 -1519 y(#"\\M-OC":)g(forward-char)195 1574 y(#"\\M-OA":)g -(previous-history)195 1629 y(#"\\M-OB":)g(next-history)195 -1684 y(#)195 1738 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195 -1793 y(#)195 1848 y("\\M-[D":)190 b(backward-char)195 -1903 y("\\M-[C":)g(forward-char)195 1958 y("\\M-[A":)g -(previous-history)195 2012 y("\\M-[B":)g(next-history)195 -2067 y(#)195 2122 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode) -195 2177 y(#)195 2232 y(#"\\M-\\C-OD":)165 b(backward-char)195 -2286 y(#"\\M-\\C-OC":)g(forward-char)195 2341 y(#"\\M-\\C-OA":)g -(previous-history)195 2396 y(#"\\M-\\C-OB":)g(next-history)195 -2451 y(#)195 2506 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode) -195 2560 y(#)195 2615 y(#"\\M-\\C-[D":)165 b(backward-char)195 -2670 y(#"\\M-\\C-[C":)g(forward-char)p eop end -%%Page: 13 17 -TeXDict begin 13 16 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(13)195 149 y Fr(#"\\M-\\C-[A":)165 b(previous-history) -195 204 y(#"\\M-\\C-[B":)g(next-history)195 314 y(C-q:)23 -b(quoted-insert)195 423 y($endif)195 533 y(#)h(An)f(old-style)g -(binding.)47 b(This)23 b(happens)g(to)g(be)h(the)f(default.)195 -588 y(TAB:)g(complete)195 697 y(#)h(Macros)f(that)g(are)h(convenient)e -(for)h(shell)h(interaction)195 752 y($if)f(Bash)195 807 -y(#)h(edit)f(the)g(path)195 862 y("\\C-xp":)g -("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195 917 y(#)h(prepare)f(to)g -(type)h(a)f(quoted)g(word)h(--)195 971 y(#)g(insert)f(open)g(and)h -(close)f(double)g(quotes)195 1026 y(#)h(and)f(move)g(to)h(just)f(after) -h(the)f(open)g(quote)195 1081 y("\\C-x\\"":)g("\\"\\"\\C-b")195 -1136 y(#)h(insert)f(a)g(backslash)g(\(testing)g(backslash)g(escapes)195 -1191 y(#)h(in)f(sequences)g(and)g(macros\))195 1245 y("\\C-x\\\\":)g -("\\\\")195 1300 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)195 -1355 y("\\C-xq":)g("\\eb\\"\\ef\\"")195 1410 y(#)h(Add)f(a)h(binding)f -(to)g(refresh)g(the)h(line,)f(which)g(is)h(unbound)195 -1465 y("\\C-xr":)f(redraw-current-line)195 1519 y(#)h(Edit)f(variable)g -(on)g(current)g(line.)195 1574 y("\\M-\\C-v":)f -("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)o(")195 1629 y($endif)195 -1738 y(#)i(use)f(a)h(visible)f(bell)g(if)h(one)f(is)h(available)195 -1793 y(set)f(bell-style)g(visible)195 1903 y(#)h(don't)f(strip)g -(characters)g(to)g(7)h(bits)f(when)h(reading)195 1958 -y(set)f(input-meta)g(on)195 2067 y(#)h(allow)f(iso-latin1)f(characters) -h(to)g(be)h(inserted)f(rather)195 2122 y(#)h(than)f(converted)g(to)g -(prefix-meta)g(sequences)195 2177 y(set)g(convert-meta)g(off)195 -2286 y(#)h(display)f(characters)f(with)h(the)h(eighth)f(bit)g(set)h -(directly)195 2341 y(#)g(rather)f(than)g(as)h(meta-prefixed)e -(characters)195 2396 y(set)h(output-meta)g(on)195 2506 -y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g(completions)f -(for)195 2560 y(#)i(a)f(word,)h(ask)f(the)h(user)f(if)g(he)h(wants)f -(to)h(see)f(all)h(of)f(them)195 2615 y(set)g(completion-query-items)e -(150)p eop end -%%Page: 14 18 -TeXDict begin 14 17 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(14)195 149 y Fr(#)24 b(For)f(FTP)195 -204 y($if)g(Ftp)195 259 y("\\C-xg":)g("get)g(\\M-?")195 -314 y("\\C-xt":)g("put)g(\\M-?")195 369 y("\\M-.":)g(yank-last-arg)195 -423 y($endif)75 539 y Fq(1.4)33 b(Bindable)22 b(Readline)f(Commands)75 -618 y Fs(This)12 b(section)h(describ)q(es)g(Readline)g(commands)g(that) -f(ma)o(y)g(b)q(e)i(b)q(ound)f(to)g(k)o(ey)f(sequences.)20 -b(Command)75 673 y(names)15 b(without)f(an)h(accompan)o(ying)g(k)o(ey)g -(sequence)h(are)f(un)o(b)q(ound)i(b)o(y)e(default.)137 -740 y(In)f(the)f(follo)o(wing)e(descriptions,)i Fi(p)q(oin)o(t)g -Fs(refers)g(to)g(the)g(curren)o(t)g(cursor)f(p)q(osition,)h(and)g -Fi(mark)i Fs(refers)75 795 y(to)k(a)g(cursor)g(p)q(osition)f(sa)o(v)o -(ed)h(b)o(y)h(the)f Fr(set-mark)g Fs(command.)32 b(The)20 -b(text)f(b)q(et)o(w)o(een)g(the)h(p)q(oin)o(t)f(and)75 -850 y(mark)c(is)f(referred)i(to)e(as)h(the)g Fi(region)p -Fs(.)75 948 y Fh(1.4.1)30 b(Commands)21 b(F)-5 b(or)19 -b(Mo)n(ving)75 1034 y Fr(beginning-of-line)13 b(\(C-a\))315 -1089 y Fs(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g(curren)o(t)g -(line.)75 1167 y Fr(end-of-line)f(\(C-e\))315 1222 y -Fs(Mo)o(v)o(e)g(to)h(the)g(end)h(of)f(the)g(line.)75 -1301 y Fr(forward-char)f(\(C-f\))315 1356 y Fs(Mo)o(v)o(e)g(forw)o(ard) -g(a)h(c)o(haracter.)75 1434 y Fr(backward-char)e(\(C-b\))315 -1489 y Fs(Mo)o(v)o(e)h(bac)o(k)h(a)g(c)o(haracter.)75 -1568 y Fr(forward-word)f(\(M-f\))315 1623 y Fs(Mo)o(v)o(e)g(forw)o(ard) -g(to)g(the)i(end)g(of)e(the)h(next)h(w)o(ord.)j(W)l(ords)c(are)f(comp)q -(osed)i(of)f(letters)f(and)315 1678 y(digits.)75 1756 -y Fr(backward-word)f(\(M-b\))315 1811 y Fs(Mo)o(v)o(e)j(bac)o(k)g(to)h -(the)f(start)g(of)g(the)h(curren)o(t)g(or)f(previous)h(w)o(ord.)24 -b(W)l(ords)16 b(are)h(comp)q(osed)315 1866 y(of)e(letters)f(and)h -(digits.)75 1945 y Fr(clear-screen)f(\(C-l\))315 2000 -y Fs(Clear)e(the)i(screen)g(and)f(redra)o(w)g(the)g(curren)o(t)g(line,) -g(lea)o(ving)g(the)g(curren)o(t)g(line)g(at)g(the)g(top)315 -2054 y(of)i(the)g(screen.)75 2133 y Fr(redraw-current-line)e(\(\))315 -2188 y Fs(Refresh)j(the)f(curren)o(t)g(line.)20 b(By)15 -b(default,)g(this)f(is)h(un)o(b)q(ound.)75 2287 y Fh(1.4.2)30 -b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f(History)75 -2372 y Fr(accept-line)14 b(\(Newline)g(or)h(Return\))315 -2427 y Fs(Accept)j(the)g(line)f(regardless)g(of)g(where)h(the)g(cursor) -f(is.)26 b(If)18 b(this)f(line)g(is)h(non-empt)o(y)l(,)g(it)315 -2482 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)f(list)f(for)i -(future)g(recall)f(with)g Fr(add_history\(\))p Fs(.)20 -b(If)d(this)315 2536 y(line)e(is)g(a)f(mo)q(di\014ed)i(history)e(line,) -h(the)g(history)f(line)h(is)g(restored)f(to)h(its)f(original)g(state.) -75 2615 y Fr(previous-history)f(\(C-p\))315 2670 y Fs(Mo)o(v)o(e)h -(`bac)o(k')h(through)f(the)i(history)e(list,)f(fetc)o(hing)i(the)g -(previous)g(command.)p eop end -%%Page: 15 19 -TeXDict begin 15 18 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(15)75 149 y Fr(next-history)14 b(\(C-n\))315 -204 y Fs(Mo)o(v)o(e)g(`forw)o(ard')f(through)i(the)h(history)e(list,)f -(fetc)o(hing)i(the)g(next)h(command.)75 286 y Fr(beginning-of-history)c -(\(M-<\))315 341 y Fs(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)g(in)g -(the)g(history)l(.)75 423 y Fr(end-of-history)e(\(M->\))315 -478 y Fs(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)g(history)l(,)f -(i.e.,)g(the)h(line)g(curren)o(tly)g(b)q(eing)g(en)o(tered.)75 -560 y Fr(reverse-search-history)d(\(C-r\))315 615 y Fs(Searc)o(h)k(bac) -o(kw)o(ard)e(starting)g(at)h(the)h(curren)o(t)f(line)h(and)f(mo)o(ving) -g(`up')g(through)g(the)h(his-)315 670 y(tory)e(as)h(necessary)l(.)20 -b(This)15 b(is)g(an)g(incremen)o(tal)f(searc)o(h.)75 -752 y Fr(forward-search-history)e(\(C-s\))315 807 y Fs(Searc)o(h)j -(forw)o(ard)e(starting)g(at)i(the)f(curren)o(t)h(line)f(and)h(mo)o -(ving)f(`do)o(wn')g(through)g(the)h(the)315 862 y(history)f(as)h -(necessary)l(.)20 b(This)15 b(is)g(an)g(incremen)o(tal)f(searc)o(h.)75 -944 y Fr(non-incremental-reverse-se)o(arch-hi)o(story)e(\(M-p\))315 -999 y Fs(Searc)o(h)k(bac)o(kw)o(ard)e(starting)g(at)h(the)h(curren)o(t) -f(line)h(and)f(mo)o(ving)g(`up')g(through)g(the)h(his-)315 -1054 y(tory)h(as)h(necessary)g(using)g(a)f(non-incremen)o(tal)h(searc)o -(h)g(for)f(a)h(string)f(supplied)h(b)o(y)g(the)315 1108 -y(user.)75 1191 y Fr(non-incremental-forward-se)o(arch-hi)o(story)12 -b(\(M-n\))315 1245 y Fs(Searc)o(h)j(forw)o(ard)e(starting)g(at)i(the)f -(curren)o(t)h(line)f(and)h(mo)o(ving)f(`do)o(wn')g(through)g(the)h(the) -315 1300 y(history)d(as)h(necessary)h(using)f(a)g(non-incremen)o(tal)g -(searc)o(h)g(for)g(a)g(string)f(supplied)i(b)o(y)f(the)315 -1355 y(user.)75 1437 y Fr(history-search-forward)f(\(\))315 -1492 y Fs(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)g(for)g -(the)h(string)f(of)g(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315 -1547 y(start)16 b(of)h(the)h(curren)o(t)g(line)f(and)g(the)h(p)q(oin)o -(t.)27 b(This)17 b(is)g(a)g(non-incremen)o(tal)g(searc)o(h.)27 -b(By)315 1601 y(default,)14 b(this)h(command)g(is)g(un)o(b)q(ound.)75 -1684 y Fr(history-search-backward)d(\(\))315 1738 y Fs(Searc)o(h)18 -b(bac)o(kw)o(ard)e(through)h(the)h(history)e(for)h(the)g(string)g(of)g -(c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1793 y(start)e(of)h(the)h -(curren)o(t)g(line)f(and)g(the)h(p)q(oin)o(t.)27 b(This)17 -b(is)g(a)g(non-incremen)o(tal)g(searc)o(h.)27 b(By)315 -1848 y(default,)14 b(this)h(command)g(is)g(un)o(b)q(ound.)75 -1930 y Fr(yank-nth-arg)f(\(M-C-y\))315 1985 y Fs(Insert)19 -b(the)f(\014rst)h(argumen)o(t)e(to)h(the)h(previous)f(command)g -(\(usually)g(the)h(second)g(w)o(ord)315 2040 y(on)d(the)g(previous)g -(line\))f(at)g(p)q(oin)o(t.)22 b(With)15 b(an)h(argumen)o(t)f -Fi(n)p Fs(,)h(insert)f(the)h Fi(n)p Fs(th)g(w)o(ord)g(from)315 -2095 y(the)i(previous)f(command)g(\(the)g(w)o(ords)g(in)g(the)h -(previous)f(command)g(b)q(egin)h(with)f(w)o(ord)315 2149 -y(0\).)33 b(A)20 b(negativ)o(e)f(argumen)o(t)g(inserts)g(the)h -Fi(n)p Fs(th)g(w)o(ord)f(from)g(the)h(end)g(of)f(the)h(previous)315 -2204 y(command.)k(Once)17 b(the)g(argumen)o(t)e Fi(n)i -Fs(is)f(computed,)h(the)f(argumen)o(t)g(is)g(extracted)g(as)g(if)315 -2259 y(the)f(`)p Fr(!)p Fk(n)5 b Fs(')15 b(history)f(expansion)h(had)g -(b)q(een)i(sp)q(eci\014ed.)75 2341 y Fr(yank-last-arg)c(\(M-.)i(or)g -(M-_\))315 2396 y Fs(Insert)j(last)e(argumen)o(t)h(to)g(the)g(previous) -h(command)f(\(the)g(last)g(w)o(ord)g(of)g(the)g(previous)315 -2451 y(history)f(en)o(try\).)24 b(With)16 b(a)g(n)o(umeric)h(argumen)o -(t,)f(b)q(eha)o(v)o(e)h(exactly)f(lik)o(e)g Fr(yank-nth-arg)p -Fs(.)315 2506 y(Successiv)o(e)d(calls)e(to)h Fr(yank-last-arg)f -Fs(mo)o(v)o(e)g(bac)o(k)i(through)f(the)g(history)g(list,)f(inserting) -315 2560 y(the)g(last)g(w)o(ord)f(\(or)h(the)g(w)o(ord)g(sp)q -(eci\014ed)h(b)o(y)f(the)h(argumen)o(t)e(to)h(the)g(\014rst)g(call\))f -(of)h(eac)o(h)g(line)315 2615 y(in)18 b(turn.)29 b(An)o(y)18 -b(n)o(umeric)g(argumen)o(t)g(supplied)g(to)g(these)g(successiv)o(e)h -(calls)e(determines)315 2670 y(the)g(direction)g(to)g(mo)o(v)o(e)g -(through)g(the)g(history)l(.)26 b(A)17 b(negativ)o(e)g(argumen)o(t)f -(switc)o(hes)h(the)p eop end -%%Page: 16 20 -TeXDict begin 16 19 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(16)315 149 y(direction)11 b(through)g(the)g(history)g -(\(bac)o(k)g(or)g(forw)o(ard\).)17 b(The)11 b(history)g(expansion)g -(facilities)315 204 y(are)i(used)i(to)e(extract)g(the)h(last)e(argumen) -o(t,)h(as)h(if)f(the)h(`)p Fr(!$)p Fs(')e(history)h(expansion)h(had)g -(b)q(een)315 259 y(sp)q(eci\014ed.)75 364 y Fh(1.4.3)30 -b(Commands)21 b(F)-5 b(or)19 b(Changing)i(T)-5 b(ext)75 -452 y Fr(delete-char)14 b(\(C-d\))315 507 y Fs(Delete)19 -b(the)h(c)o(haracter)e(at)h(p)q(oin)o(t.)32 b(If)20 b(p)q(oin)o(t)f(is) -g(at)f(the)i(b)q(eginning)g(of)f(the)g(line,)h(there)315 -562 y(are)e(no)h(c)o(haracters)e(in)i(the)f(line,)h(and)g(the)f(last)g -(c)o(haracter)f(t)o(yp)q(ed)i(w)o(as)f(not)g(b)q(ound)i(to)315 -617 y Fr(delete-char)p Fs(,)13 b(then)j(return)f Fl(eof)p -Fs(.)75 701 y Fr(backward-delete-char)d(\(Rubout\))315 -756 y Fs(Delete)j(the)g(c)o(haracter)f(b)q(ehind)i(the)g(cursor.)j(A)c -(n)o(umeric)g(argumen)o(t)f(means)i(to)e(kill)g(the)315 -811 y(c)o(haracters)g(instead)h(of)g(deleting)g(them.)75 -896 y Fr(forward-backward-delete-ch)o(ar)d(\(\))315 951 -y Fs(Delete)19 b(the)g(c)o(haracter)f(under)i(the)f(cursor,)h(unless)f -(the)g(cursor)g(is)g(at)f(the)h(end)h(of)f(the)315 1005 -y(line,)c(in)h(whic)o(h)g(case)f(the)h(c)o(haracter)g(b)q(ehind)g(the)g -(cursor)g(is)f(deleted.)22 b(By)16 b(default,)g(this)315 -1060 y(is)f(not)g(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 1145 -y Fr(quoted-insert)e(\(C-q)i(or)g(C-v\))315 1200 y Fs(Add)j(the)f(next) -g(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)e(v)o(erbatim.)25 -b(This)17 b(is)f(ho)o(w)h(to)g(insert)f(k)o(ey)315 1255 -y(sequences)g(lik)o(e)f Fk(C-q)p Fs(,)f(for)h(example.)75 -1339 y Fr(tab-insert)f(\(M-TAB\))315 1394 y Fs(Insert)h(a)g(tab)g(c)o -(haracter.)75 1479 y Fr(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o -(\))315 1534 y Fs(Insert)g(y)o(ourself.)75 1618 y Fr(transpose-chars)e -(\(C-t\))315 1673 y Fs(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h -(cursor)e(forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g -(cursor,)315 1728 y(mo)o(ving)h(the)g(cursor)h(forw)o(ard)e(as)i(w)o -(ell.)26 b(If)18 b(the)g(insertion)f(p)q(oin)o(t)g(is)g(at)g(the)h(end) -h(of)e(the)315 1783 y(line,)11 b(then)g(this)g(transp)q(oses)f(the)h -(last)f(t)o(w)o(o)g(c)o(haracters)g(of)h(the)g(line.)18 -b(Negativ)o(e)10 b(argumen)o(ts)315 1838 y(ha)o(v)o(e)15 -b(no)g(e\013ect.)75 1922 y Fr(transpose-words)e(\(M-t\))315 -1977 y Fs(Drag)i(the)h(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)g(past)g(the)g -(w)o(ord)f(after)h(p)q(oin)o(t,)f(mo)o(ving)g(p)q(oin)o(t)h(past)g -(that)315 2032 y(w)o(ord)d(as)h(w)o(ell.)19 b(If)14 b(the)g(insertion)g -(p)q(oin)o(t)f(is)h(at)g(the)g(end)h(of)e(the)i(line,)e(this)h(transp)q -(oses)g(the)315 2087 y(last)g(t)o(w)o(o)g(w)o(ords)g(on)i(the)f(line.) -75 2172 y Fr(upcase-word)f(\(M-u\))315 2226 y Fs(Upp)q(ercase)j(the)f -(curren)o(t)g(\(or)f(follo)o(wing\))e(w)o(ord.)22 b(With)15 -b(a)h(negativ)o(e)f(argumen)o(t,)g(upp)q(er-)315 2281 -y(case)g(the)g(previous)g(w)o(ord,)g(but)g(do)g(not)g(mo)o(v)o(e)f(the) -i(cursor.)75 2366 y Fr(downcase-word)d(\(M-l\))315 2421 -y Fs(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))e(w)o -(ord.)17 b(With)10 b(a)h(negativ)o(e)f(argumen)o(t,)g(lo)o(w)o(ercase) -315 2476 y(the)15 b(previous)g(w)o(ord,)f(but)i(do)f(not)g(mo)o(v)o(e)f -(the)h(cursor.)75 2560 y Fr(capitalize-word)e(\(M-c\))315 -2615 y Fs(Capitalize)c(the)i(curren)o(t)f(\(or)g(follo)o(wing\))e(w)o -(ord.)18 b(With)10 b(a)g(negativ)o(e)g(argumen)o(t,)g(capitalize)315 -2670 y(the)15 b(previous)g(w)o(ord,)f(but)i(do)f(not)g(mo)o(v)o(e)f -(the)h(cursor.)p eop end -%%Page: 17 21 -TeXDict begin 17 20 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(17)75 149 y Fr(overwrite-mode)13 b(\(\))315 -204 y Fs(T)l(oggle)i(o)o(v)o(erwrite)g(mo)q(de.)24 b(With)16 -b(an)g(explicit)g(p)q(ositiv)o(e)g(n)o(umeric)g(argumen)o(t,)g(switc)o -(hes)315 259 y(to)10 b(o)o(v)o(erwrite)f(mo)q(de.)19 -b(With)10 b(an)h(explicit)f(non-p)q(ositiv)o(e)g(n)o(umeric)h(argumen)o -(t,)f(switc)o(hes)h(to)315 314 y(insert)k(mo)q(de.)20 -b(This)15 b(command)g(a\013ects)g(only)g Fr(emacs)f Fs(mo)q(de;)h -Fr(vi)g Fs(mo)q(de)h(do)q(es)g(o)o(v)o(erwrite)315 369 -y(di\013eren)o(tly)l(.)j(Eac)o(h)c(call)f(to)h Fr(readline\(\))f -Fs(starts)f(in)j(insert)e(mo)q(de.)315 436 y(In)h(o)o(v)o(erwrite)e(mo) -q(de,)i(c)o(haracters)f(b)q(ound)h(to)f Fr(self-insert)f -Fs(replace)i(the)f(text)h(at)e(p)q(oin)o(t)315 491 y(rather)20 -b(than)h(pushing)g(the)g(text)f(to)g(the)h(righ)o(t.)35 -b(Characters)20 b(b)q(ound)i(to)e Fr(backward-)315 546 -y(delete-char)14 b Fs(replace)h(the)g(c)o(haracter)g(b)q(efore)g(p)q -(oin)o(t)g(with)f(a)h(space.)315 613 y(By)g(default,)g(this)f(command)h -(is)g(un)o(b)q(ound.)75 714 y Fh(1.4.4)30 b(Killing)20 -b(And)h(Y)-5 b(anking)75 800 y Fr(kill-line)14 b(\(C-k\))315 -855 y Fs(Kill)g(the)i(text)e(from)h(p)q(oin)o(t)g(to)f(the)h(end)h(of)f -(the)g(line.)75 935 y Fr(backward-kill-line)e(\(C-x)h(Rubout\))315 -990 y Fs(Kill)g(bac)o(kw)o(ard)h(to)f(the)i(b)q(eginning)f(of)g(the)g -(line.)75 1070 y Fr(unix-line-discard)e(\(C-u\))315 1125 -y Fs(Kill)h(bac)o(kw)o(ard)h(from)f(the)i(cursor)e(to)h(the)g(b)q -(eginning)h(of)e(the)i(curren)o(t)f(line.)75 1205 y Fr(kill-whole-line) -e(\(\))315 1260 y Fs(Kill)k(all)h(c)o(haracters)f(on)h(the)h(curren)o -(t)f(line,)g(no)g(matter)g(where)g(p)q(oin)o(t)g(is.)28 -b(By)19 b(default,)315 1315 y(this)c(is)f(un)o(b)q(ound.)75 -1395 y Fr(kill-word)g(\(M-d\))315 1450 y Fs(Kill)g(from)g(p)q(oin)o(t)g -(to)g(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)f(b)q(et)o -(w)o(een)h(w)o(ords,)e(to)i(the)f(end)315 1505 y(of)h(the)g(next)g(w)o -(ord.)20 b(W)l(ord)14 b(b)q(oundaries)i(are)f(the)g(same)g(as)g -Fr(forward-word)p Fs(.)75 1585 y Fr(backward-kill-word)e(\(M-DEL\))315 -1640 y Fs(Kill)h(the)g(w)o(ord)g(b)q(ehind)h(p)q(oin)o(t.)20 -b(W)l(ord)14 b(b)q(oundaries)g(are)g(the)h(same)f(as)g -Fr(backward-word)p Fs(.)75 1720 y Fr(unix-word-rubout)f(\(C-w\))315 -1775 y Fs(Kill)i(the)h(w)o(ord)f(b)q(ehind)i(p)q(oin)o(t,)e(using)h -(white)f(space)h(as)g(a)f(w)o(ord)g(b)q(oundary)l(.)23 -b(The)16 b(killed)315 1830 y(text)f(is)f(sa)o(v)o(ed)h(on)g(the)h -(kill-ring.)75 1910 y Fr(unix-filename-rubout)c(\(\))315 -1965 y Fs(Kill)17 b(the)i(w)o(ord)e(b)q(ehind)i(p)q(oin)o(t,)f(using)g -(white)g(space)g(and)h(the)f(slash)g(c)o(haracter)f(as)h(the)315 -2020 y(w)o(ord)d(b)q(oundaries.)20 b(The)15 b(killed)g(text)f(is)h(sa)o -(v)o(ed)g(on)g(the)g(kill-ring.)75 2100 y Fr(delete-horizontal-space)d -(\(\))315 2155 y Fs(Delete)j(all)f(spaces)h(and)h(tabs)e(around)i(p)q -(oin)o(t.)j(By)c(default,)g(this)f(is)h(un)o(b)q(ound.)75 -2235 y Fr(kill-region)f(\(\))315 2290 y Fs(Kill)g(the)i(text)e(in)h -(the)h(curren)o(t)f(region.)k(By)c(default,)g(this)f(command)h(is)g(un) -o(b)q(ound.)75 2370 y Fr(copy-region-as-kill)e(\(\))315 -2425 y Fs(Cop)o(y)j(the)i(text)e(in)h(the)g(region)f(to)h(the)g(kill)e -(bu\013er,)i(so)g(it)f(can)h(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)f(a)o(w)o -(a)o(y)l(.)315 2480 y(By)f(default,)g(this)f(command)h(is)g(un)o(b)q -(ound.)75 2560 y Fr(copy-backward-word)e(\(\))315 2615 -y Fs(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)g(to)f(the)i -(kill)e(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)g(are)g(the)315 -2670 y(same)c(as)g Fr(backward-word)p Fs(.)j(By)d(default,)f(this)h -(command)g(is)g(un)o(b)q(ound.)p eop end -%%Page: 18 22 -TeXDict begin 18 21 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(18)75 149 y Fr(copy-forward-word)13 b(\(\))315 -204 y Fs(Cop)o(y)i(the)h(w)o(ord)e(follo)o(wing)g(p)q(oin)o(t)h(to)g -(the)g(kill)g(bu\013er.)20 b(The)c(w)o(ord)f(b)q(oundaries)h(are)f(the) -315 259 y(same)g(as)g Fr(forward-word)p Fs(.)j(By)d(default,)g(this)f -(command)h(is)g(un)o(b)q(ound.)75 342 y Fr(yank)g(\(C-y\))315 -397 y Fs(Y)l(ank)g(the)h(top)f(of)f(the)i(kill)e(ring)g(in)o(to)g(the)i -(bu\013er)f(at)f(p)q(oin)o(t.)75 479 y Fr(yank-pop)g(\(M-y\))315 -534 y Fs(Rotate)j(the)g(kill-ring,)f(and)h(y)o(ank)g(the)h(new)f(top.) -26 b(Y)l(ou)17 b(can)h(only)f(do)g(this)g(if)f(the)i(prior)315 -589 y(command)d(is)g Fr(yank)f Fs(or)h Fr(yank-pop)p -Fs(.)75 692 y Fh(1.4.5)30 b(Sp)r(ecifying)20 b(Numeric)h(Argumen)n(ts) -75 779 y Fr(digit-argument)13 b(\()p Fk(M-0)p Fr(,)i -Fk(M-1)p Fr(,)f(...)h Fk(M--)p Fr(\))315 834 y Fs(Add)f(this)f(digit)f -(to)h(the)h(argumen)o(t)e(already)h(accum)o(ulating,)f(or)h(start)f(a)h -(new)h(argumen)o(t.)315 889 y Fk(M--)h Fs(starts)f(a)h(negativ)o(e)f -(argumen)o(t.)75 971 y Fr(universal-argument)f(\(\))315 -1026 y Fs(This)f(is)h(another)f(w)o(a)o(y)g(to)g(sp)q(ecify)h(an)g -(argumen)o(t.)18 b(If)13 b(this)f(command)h(is)f(follo)o(w)o(ed)f(b)o -(y)i(one)315 1081 y(or)h(more)h(digits,)e(optionally)g(with)h(a)h -(leading)f(min)o(us)g(sign,)g(those)h(digits)e(de\014ne)j(the)f(ar-)315 -1136 y(gumen)o(t.)k(If)c(the)g(command)f(is)g(follo)o(w)o(ed)f(b)o(y)i -(digits,)e(executing)h Fr(universal-argument)315 1191 -y Fs(again)h(ends)h(the)g(n)o(umeric)g(argumen)o(t,)f(but)h(is)g -(otherwise)f(ignored.)21 b(As)16 b(a)g(sp)q(ecial)f(case,)315 -1245 y(if)h(this)g(command)g(is)g(immediately)f(follo)o(w)o(ed)g(b)o(y) -h(a)g(c)o(haracter)g(that)g(is)g(neither)g(a)g(digit)315 -1300 y(or)d(min)o(us)h(sign,)f(the)h(argumen)o(t)g(coun)o(t)f(for)h -(the)g(next)g(command)g(is)f(m)o(ultiplied)g(b)o(y)h(four.)315 -1355 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)g(initially)f(one,)i(so)f -(executing)h(this)f(function)h(the)f(\014rst)h(time)315 -1410 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g -(time)f(mak)o(es)h(the)g(argumen)o(t)f(coun)o(t)g(six-)315 -1465 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)g(this)f(is)h(not)g -(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1567 y Fh(1.4.6)30 -b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5 -b(ou)75 1655 y Fr(complete)14 b(\(TAB\))315 1709 y Fs(A)o(ttempt)c(to)h -(p)q(erform)g(completion)g(on)g(the)g(text)g(b)q(efore)h(p)q(oin)o(t.) -18 b(The)11 b(actual)g(completion)315 1764 y(p)q(erformed)k(is)g -(application-sp)q(eci\014c.)20 b(The)15 b(default)g(is)g(\014lename)g -(completion.)75 1847 y Fr(possible-completions)d(\(M-?\))315 -1902 y Fs(List)17 b(the)g(p)q(ossible)g(completions)g(of)g(the)g(text)g -(b)q(efore)h(p)q(oin)o(t.)25 b(When)18 b(displa)o(ying)e(com-)315 -1957 y(pletions,)f(Readline)i(sets)f(the)g(n)o(um)o(b)q(er)h(of)e -(columns)h(used)h(for)f(displa)o(y)f(to)h(the)g(v)m(alue)g(of)315 -2011 y Fr(completion-display-width)p Fs(,)f(the)k(v)m(alue)f(of)g(the)g -(en)o(vironmen)o(t)g(v)m(ariable)f Fr(COLUMNS)p Fs(,)315 -2066 y(or)e(the)g(screen)h(width,)e(in)h(that)g(order.)75 -2149 y Fr(insert-completions)e(\(M-*\))315 2204 y Fs(Insert)j(all)e -(completions)g(of)h(the)g(text)g(b)q(efore)h(p)q(oin)o(t)e(that)h(w)o -(ould)g(ha)o(v)o(e)g(b)q(een)h(generated)315 2258 y(b)o(y)f -Fr(possible-completions)p Fs(.)75 2341 y Fr(menu-complete)e(\(\))315 -2396 y Fs(Similar)d(to)i Fr(complete)p Fs(,)f(but)h(replaces)g(the)g(w) -o(ord)f(to)g(b)q(e)i(completed)e(with)h(a)f(single)h(matc)o(h)315 -2451 y(from)18 b(the)h(list)f(of)g(p)q(ossible)h(completions.)30 -b(Rep)q(eated)20 b(execution)f(of)g Fr(menu-complete)315 -2506 y Fs(steps)h(through)g(the)g(list)f(of)h(p)q(ossible)g -(completions,)g(inserting)f(eac)o(h)h(matc)o(h)f(in)h(turn.)315 -2560 y(A)o(t)e(the)g(end)h(of)f(the)h(list)e(of)h(completions,)g(the)g -(b)q(ell)h(is)e(rung)i(\(sub)s(ject)f(to)f(the)i(setting)315 -2615 y(of)f Fr(bell-style)p Fs(\))e(and)i(the)g(original)e(text)i(is)f -(restored.)28 b(An)19 b(argumen)o(t)e(of)g Fi(n)i Fs(mo)o(v)o(es)e -Fi(n)315 2670 y Fs(p)q(ositions)f(forw)o(ard)g(in)i(the)f(list)f(of)h -(matc)o(hes;)h(a)f(negativ)o(e)f(argumen)o(t)h(ma)o(y)g(b)q(e)h(used)g -(to)p eop end -%%Page: 19 23 -TeXDict begin 19 22 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(19)315 149 y(mo)o(v)o(e)18 b(bac)o(kw)o(ard)h(through)g -(the)g(list.)30 b(This)19 b(command)g(is)g(in)o(tended)g(to)g(b)q(e)h -(b)q(ound)g(to)315 204 y Fr(TAB)p Fs(,)14 b(but)i(is)e(un)o(b)q(ound)j -(b)o(y)e(default.)75 277 y Fr(menu-complete-backward)d(\(\))315 -332 y Fs(Iden)o(tical)17 b(to)g Fr(menu-complete)p Fs(,)f(but)i(mo)o(v) -o(es)e(bac)o(kw)o(ard)h(through)g(the)h(list)e(of)h(p)q(ossible)315 -387 y(completions,)d(as)h(if)f Fr(menu-complete)g Fs(had)h(b)q(een)h -(giv)o(en)f(a)g(negativ)o(e)f(argumen)o(t.)75 459 y Fr -(delete-char-or-list)f(\(\))315 514 y Fs(Deletes)g(the)g(c)o(haracter)g -(under)h(the)g(cursor)f(if)g(not)g(at)g(the)g(b)q(eginning)h(or)f(end)h -(of)f(the)g(line)315 569 y(\(lik)o(e)g Fr(delete-char)p -Fs(\).)18 b(If)d(at)f(the)h(end)g(of)f(the)g(line,)g(b)q(eha)o(v)o(es)h -(iden)o(tically)e(to)h Fr(possible-)315 624 y(completions)p -Fs(.)k(This)d(command)g(is)g(un)o(b)q(ound)h(b)o(y)f(default.)75 -716 y Fh(1.4.7)30 b(Keyb)r(oard)20 b(Macros)75 799 y -Fr(start-kbd-macro)13 b(\(C-x)i(\(\))315 854 y Fs(Begin)g(sa)o(ving)f -(the)i(c)o(haracters)e(t)o(yp)q(ed)i(in)o(to)e(the)h(curren)o(t)g(k)o -(eyb)q(oard)g(macro.)75 926 y Fr(end-kbd-macro)e(\(C-x)i(\)\))315 -981 y Fs(Stop)f(sa)o(ving)e(the)i(c)o(haracters)f(t)o(yp)q(ed)h(in)o -(to)e(the)i(curren)o(t)g(k)o(eyb)q(oard)f(macro)g(and)h(sa)o(v)o(e)f -(the)315 1036 y(de\014nition.)75 1109 y Fr(call-last-kbd-macro)g(\(C-x) -h(e\))315 1164 y Fs(Re-execute)19 b(the)f(last)e(k)o(eyb)q(oard)i -(macro)f(de\014ned,)i(b)o(y)e(making)g(the)h(c)o(haracters)e(in)i(the) -315 1218 y(macro)c(app)q(ear)i(as)f(if)f(t)o(yp)q(ed)i(at)e(the)i(k)o -(eyb)q(oard.)75 1311 y Fh(1.4.8)30 b(Some)20 b(Miscellaneous)h -(Commands)75 1394 y Fr(re-read-init-file)13 b(\(C-x)h(C-r\))315 -1448 y Fs(Read)e(in)e(the)h(con)o(ten)o(ts)g(of)f(the)h -Fi(inputrc)j Fs(\014le,)d(and)h(incorp)q(orate)e(an)o(y)g(bindings)h -(or)g(v)m(ariable)315 1503 y(assignmen)o(ts)j(found)i(there.)75 -1576 y Fr(abort)e(\(C-g\))315 1631 y Fs(Ab)q(ort)f(the)g(curren)o(t)h -(editing)e(command)h(and)h(ring)e(the)i(terminal's)d(b)q(ell)i(\(sub)s -(ject)g(to)g(the)315 1685 y(setting)h(of)h Fr(bell-style)p -Fs(\).)75 1758 y Fr(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p -Fk(x)5 b Fr(,)15 b(...\))315 1813 y Fs(If)f(the)g(meta\014ed)g(c)o -(haracter)f Fi(x)k Fs(is)c(lo)o(w)o(ercase,)g(run)h(the)g(command)f -(that)h(is)f(b)q(ound)i(to)e(the)315 1868 y(corresp)q(onding)i(upp)q -(ercase)h(c)o(haracter.)75 1941 y Fr(prefix-meta)e(\(ESC\))315 -1995 y Fs(Metafy)k(the)h(next)g(c)o(haracter)f(t)o(yp)q(ed.)30 -b(This)19 b(is)f(for)g(k)o(eyb)q(oards)h(without)f(a)g(meta)g(k)o(ey)l -(.)315 2050 y(T)o(yping)d(`)p Fr(ESC)f(f)p Fs(')h(is)f(equiv)m(alen)o -(t)h(to)g(t)o(yping)f Fk(M-f)p Fs(.)75 2123 y Fr(undo)h(\(C-_)f(or)h -(C-x)g(C-u\))315 2178 y Fs(Incremen)o(tal)g(undo,)g(separately)g(remem) -o(b)q(ered)h(for)e(eac)o(h)h(line.)75 2250 y Fr(revert-line)f(\(M-r\)) -315 2305 y Fs(Undo)j(all)e(c)o(hanges)i(made)f(to)g(this)g(line.)24 -b(This)16 b(is)g(lik)o(e)g(executing)g(the)h Fr(undo)f -Fs(command)315 2360 y(enough)g(times)e(to)h(get)f(bac)o(k)h(to)g(the)g -(b)q(eginning.)75 2433 y Fr(tilde-expand)f(\(M-~\))315 -2488 y Fs(P)o(erform)g(tilde)h(expansion)g(on)g(the)g(curren)o(t)g(w)o -(ord.)75 2560 y Fr(set-mark)f(\(C-@\))315 2615 y Fs(Set)i(the)h(mark)f -(to)f(the)i(p)q(oin)o(t.)23 b(If)17 b(a)f(n)o(umeric)g(argumen)o(t)g -(is)f(supplied,)i(the)g(mark)e(is)h(set)315 2670 y(to)f(that)f(p)q -(osition.)p eop end -%%Page: 20 24 -TeXDict begin 20 23 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(20)75 149 y Fr(exchange-point-and-mark)12 -b(\(C-x)j(C-x\))315 204 y Fs(Sw)o(ap)g(the)h(p)q(oin)o(t)f(with)g(the)h -(mark.)k(The)c(curren)o(t)f(cursor)h(p)q(osition)e(is)h(set)h(to)f(the) -g(sa)o(v)o(ed)315 259 y(p)q(osition,)f(and)h(the)h(old)e(cursor)h(p)q -(osition)f(is)h(sa)o(v)o(ed)g(as)g(the)g(mark.)75 355 -y Fr(character-search)e(\(C-]\))315 410 y Fs(A)f(c)o(haracter)g(is)g -(read)h(and)f(p)q(oin)o(t)g(is)g(mo)o(v)o(ed)g(to)g(the)g(next)h(o)q -(ccurrence)g(of)f(that)g(c)o(haracter.)315 465 y(A)j(negativ)o(e)g -(coun)o(t)g(searc)o(hes)g(for)f(previous)h(o)q(ccurrences.)75 -561 y Fr(character-search-backward)d(\(M-C-]\))315 616 -y Fs(A)22 b(c)o(haracter)g(is)g(read)g(and)h(p)q(oin)o(t)f(is)g(mo)o(v) -o(ed)g(to)g(the)g(previous)g(o)q(ccurrence)i(of)e(that)315 -671 y(c)o(haracter.)d(A)c(negativ)o(e)g(coun)o(t)g(searc)o(hes)g(for)f -(subsequen)o(t)i(o)q(ccurrences.)75 767 y Fr(skip-csi-sequence)d(\(\)) -315 822 y Fs(Read)h(enough)g(c)o(haracters)f(to)g(consume)h(a)g(m)o -(ulti-k)o(ey)e(sequence)j(suc)o(h)f(as)f(those)h(de\014ned)315 -877 y(for)k(k)o(eys)g(lik)o(e)g(Home)h(and)g(End.)30 -b(Suc)o(h)19 b(sequences)h(b)q(egin)f(with)f(a)g(Con)o(trol)f(Sequence) -315 932 y(Indicator)h(\(CSI\),)g(usually)f(ESC-[.)29 -b(If)19 b(this)f(sequence)h(is)f(b)q(ound)h(to)f Fr("\\)p -Fs(e[)p Fr(")p Fs(,)g(k)o(eys)g(pro-)315 987 y(ducing)e(suc)o(h)h -(sequences)g(will)d(ha)o(v)o(e)i(no)g(e\013ect)g(unless)g(explicitly)e -(b)q(ound)j(to)f(a)f(readline)315 1041 y(command,)h(instead)f(of)h -(inserting)f(stra)o(y)f(c)o(haracters)i(in)o(to)f(the)h(editing)f -(bu\013er.)22 b(This)15 b(is)315 1096 y(un)o(b)q(ound)h(b)o(y)g -(default,)e(but)h(usually)g(b)q(ound)h(to)f(ESC-[.)75 -1193 y Fr(insert-comment)e(\(M-#\))315 1247 y Fs(Without)k(a)g(n)o -(umeric)h(argumen)o(t,)f(the)h(v)m(alue)g(of)g(the)f -Fr(comment-begin)f Fs(v)m(ariable)i(is)f(in-)315 1302 -y(serted)f(at)f(the)h(b)q(eginning)g(of)f(the)h(curren)o(t)g(line.)21 -b(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)g(supplied,)315 -1357 y(this)j(command)g(acts)g(as)f(a)h(toggle:)25 b(if)18 -b(the)g(c)o(haracters)g(at)f(the)i(b)q(eginning)f(of)g(the)g(line)315 -1412 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)h(of)f Fr(comment-begin)p -Fs(,)e(the)i(v)m(alue)h(is)f(inserted,)f(otherwise)h(the)315 -1467 y(c)o(haracters)k(in)h Fr(comment-begin)e Fs(are)i(deleted)h(from) -e(the)h(b)q(eginning)g(of)g(the)g(line.)34 b(In)315 1521 -y(either)15 b(case,)g(the)g(line)g(is)g(accepted)g(as)g(if)g(a)g -(newline)g(had)g(b)q(een)i(t)o(yp)q(ed.)75 1618 y Fr(dump-functions)c -(\(\))315 1673 y Fs(Prin)o(t)f(all)g(of)h(the)g(functions)g(and)h -(their)f(k)o(ey)g(bindings)g(to)f(the)i(Readline)f(output)g(stream.)315 -1727 y(If)j(a)g(n)o(umeric)f(argumen)o(t)g(is)h(supplied,)g(the)g -(output)f(is)h(formatted)e(in)i(suc)o(h)g(a)g(w)o(a)o(y)f(that)315 -1782 y(it)f(can)i(b)q(e)g(made)f(part)f(of)h(an)g Fi(inputrc)j -Fs(\014le.)i(This)15 b(command)g(is)g(un)o(b)q(ound)h(b)o(y)f(default.) -75 1879 y Fr(dump-variables)e(\(\))315 1934 y Fs(Prin)o(t)d(all)f(of)h -(the)h(settable)f(v)m(ariables)g(and)h(their)f(v)m(alues)h(to)f(the)h -(Readline)g(output)f(stream.)315 1988 y(If)16 b(a)g(n)o(umeric)f -(argumen)o(t)g(is)h(supplied,)g(the)g(output)f(is)h(formatted)e(in)i -(suc)o(h)g(a)g(w)o(a)o(y)f(that)315 2043 y(it)f(can)i(b)q(e)g(made)f -(part)f(of)h(an)g Fi(inputrc)j Fs(\014le.)i(This)15 b(command)g(is)g -(un)o(b)q(ound)h(b)o(y)f(default.)75 2140 y Fr(dump-macros)f(\(\))315 -2194 y Fs(Prin)o(t)i(all)g(of)g(the)h(Readline)g(k)o(ey)g(sequences)h -(b)q(ound)g(to)e(macros)g(and)h(the)g(strings)f(they)315 -2249 y(output.)26 b(If)18 b(a)f(n)o(umeric)g(argumen)o(t)g(is)g -(supplied,)h(the)f(output)g(is)g(formatted)f(in)i(suc)o(h)f(a)315 -2304 y(w)o(a)o(y)d(that)g(it)h(can)g(b)q(e)g(made)g(part)g(of)f(an)h -Fi(inputrc)j Fs(\014le.)i(This)14 b(command)h(is)g(un)o(b)q(ound)h(b)o -(y)315 2359 y(default.)75 2455 y Fr(emacs-editing-mode)d(\(C-e\))315 -2510 y Fs(When)j(in)f Fr(vi)f Fs(command)i(mo)q(de,)f(this)f(causes)i -(a)f(switc)o(h)f(to)h Fr(emacs)f Fs(editing)h(mo)q(de.)75 -2606 y Fr(vi-editing-mode)e(\(M-C-j\))315 2661 y Fs(When)j(in)f -Fr(emacs)f Fs(editing)h(mo)q(de,)g(this)f(causes)i(a)f(switc)o(h)f(to)h -Fr(vi)f Fs(editing)h(mo)q(de.)p eop end -%%Page: 21 25 -TeXDict begin 21 24 bop 75 -58 a Fs(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(21)75 149 y Fq(1.5)33 b(Readline)21 b(vi)i(Mo)r(de)75 -229 y Fs(While)15 b(the)h(Readline)g(library)f(do)q(es)h(not)f(ha)o(v)o -(e)g(a)h(full)f(set)h(of)f Fr(vi)g Fs(editing)g(functions,)h(it)f(do)q -(es)h(con)o(tain)75 284 y(enough)h(to)g(allo)o(w)e(simple)h(editing)h -(of)f(the)i(line.)25 b(The)17 b(Readline)g Fr(vi)g Fs(mo)q(de)g(b)q -(eha)o(v)o(es)g(as)g(sp)q(eci\014ed)h(in)75 339 y(the)d -Fl(posix)g Fs(standard.)137 406 y(In)g(order)g(to)f(switc)o(h)f(in)o -(teractiv)o(ely)g(b)q(et)o(w)o(een)i Fr(emacs)e Fs(and)i -Fr(vi)f Fs(editing)g(mo)q(des,)h(use)f(the)h(command)75 -461 y Fk(M-C-j)j Fs(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)h(when)g -(in)g Fr(vi)g Fs(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)h(in)g -Fr(emacs)75 516 y Fs(mo)q(de\).)h(The)15 b(Readline)h(default)f(is)f -Fr(emacs)h Fs(mo)q(de.)137 583 y(When)h(y)o(ou)e(en)o(ter)h(a)g(line)g -(in)f Fr(vi)h Fs(mo)q(de,)g(y)o(ou)g(are)f(already)h(placed)g(in)g -(`insertion')e(mo)q(de,)i(as)g(if)f(y)o(ou)75 638 y(had)h(t)o(yp)q(ed)g -(an)g(`)p Fr(i)p Fs('.)j(Pressing)c Fr(ESC)h Fs(switc)o(hes)f(y)o(ou)g -(in)o(to)g(`command')g(mo)q(de,)g(where)h(y)o(ou)g(can)f(edit)h(the)75 -692 y(text)h(of)h(the)g(line)f(with)h(the)g(standard)f -Fr(vi)h Fs(mo)o(v)o(emen)o(t)f(k)o(eys,)g(mo)o(v)o(e)g(to)h(previous)f -(history)g(lines)h(with)75 747 y(`)p Fr(k)p Fs(')d(and)i(subsequen)o(t) -f(lines)g(with)g(`)p Fr(j)p Fs(',)f(and)h(so)g(forth.)p -eop end -%%Page: 22 26 -TeXDict begin 22 25 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(22)75 149 y Fo(2)41 b(Programming)29 -b(with)e(GNU)h(Readline)75 263 y Fs(This)12 b(c)o(hapter)g(describ)q -(es)h(the)g(in)o(terface)f(b)q(et)o(w)o(een)g(the)h Fl(gnu)f -Fs(Readline)h(Library)f(and)g(other)h(programs.)75 318 -y(If)i(y)o(ou)f(are)g(a)g(programmer,)f(and)i(y)o(ou)f(wish)h(to)e -(include)i(the)g(features)f(found)h(in)f Fl(gnu)h Fs(Readline)g(suc)o -(h)75 373 y(as)d(completion,)g(line)g(editing,)g(and)h(in)o(teractiv)o -(e)d(history)i(manipulation)f(in)h(y)o(our)g(o)o(wn)g(programs,)g(this) -75 428 y(section)j(is)f(for)h(y)o(ou.)75 543 y Fq(2.1)33 -b(Basic)21 b(Beha)n(vior)75 622 y Fs(Man)o(y)d(programs)g(pro)o(vide)h -(a)f(command)h(line)g(in)o(terface,)g(suc)o(h)g(as)g -Fr(mail)p Fs(,)g Fr(ftp)p Fs(,)g(and)g Fr(sh)p Fs(.)31 -b(F)l(or)19 b(suc)o(h)75 677 y(programs,)13 b(the)h(default)g(b)q(eha)o -(viour)g(of)g(Readline)h(is)e(su\016cien)o(t.)20 b(This)13 -b(section)h(describ)q(es)h(ho)o(w)f(to)g(use)75 732 y(Readline)j(in)h -(the)f(simplest)f(w)o(a)o(y)g(p)q(ossible,)h(p)q(erhaps)h(to)f(replace) -g(calls)f(in)h(y)o(our)g(co)q(de)h(to)e Fr(gets\(\))g -Fs(or)75 787 y Fr(fgets\(\))p Fs(.)137 853 y(The)h(function)f -Fr(readline\(\))f Fs(prin)o(ts)g(a)h(prompt)g Fi(prompt)h -Fs(and)f(then)h(reads)f(and)h(returns)f(a)g(single)75 -908 y(line)g(of)g(text)g(from)f(the)i(user.)23 b(If)17 -b Fi(prompt)g Fs(is)f Fr(NULL)f Fs(or)h(the)h(empt)o(y)f(string,)f(no)h -(prompt)g(is)g(displa)o(y)o(ed.)75 963 y(The)j(line)f -Fr(readline)f Fs(returns)i(is)f(allo)q(cated)f(with)h -Fr(malloc\(\))p Fs(;)h(the)g(caller)e(should)i Fr(free\(\))f -Fs(the)g(line)75 1018 y(when)e(it)e(has)h(\014nished)h(with)f(it.)k -(The)c(declaration)f(for)h Fr(readline)f Fs(in)h(ANSI)h(C)f(is)195 -1084 y Fr(char)23 b(*readline)g(\(const)g(char)g(*)p -Fk(prompt)5 b Fr(\);)75 1151 y Fs(So,)15 b(one)g(migh)o(t)f(sa)o(y)195 -1217 y Fr(char)23 b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);) -75 1284 y Fs(in)11 b(order)g(to)g(read)h(a)f(line)g(of)g(text)g(from)f -(the)i(user.)19 b(The)11 b(line)h(returned)f(has)h(the)f(\014nal)g -(newline)h(remo)o(v)o(ed,)75 1339 y(so)j(only)g(the)g(text)g(remains.) -137 1405 y(If)21 b Fr(readline)e Fs(encoun)o(ters)h(an)g -Fr(EOF)g Fs(while)g(reading)g(the)g(line,)h(and)f(the)h(line)e(is)h -(empt)o(y)g(at)g(that)75 1460 y(p)q(oin)o(t,)14 b(then)h -Fr(\(char)f(*\)NULL)g Fs(is)g(returned.)21 b(Otherwise,)14 -b(the)h(line)f(is)g(ended)i(just)e(as)h(if)f(a)g(newline)h(had)75 -1515 y(b)q(een)h(t)o(yp)q(ed.)137 1582 y(If)e(y)o(ou)f(w)o(an)o(t)g -(the)g(user)h(to)f(b)q(e)h(able)f(to)g(get)g(at)g(the)g(line)h(later,)e -(\(with)g Fr(C-p)i Fs(for)e(example\),)h(y)o(ou)h(m)o(ust)75 -1636 y(call)g Fr(add_history\(\))g Fs(to)g(sa)o(v)o(e)h(the)g(line)g(a) -o(w)o(a)o(y)f(in)h(a)f Fi(history)k Fs(list)c(of)h(suc)o(h)h(lines.)195 -1703 y Fr(add_history)22 b(\(line\);)75 1770 y Fs(F)l(or)15 -b(full)f(details)g(on)h(the)h(GNU)f(History)f(Library)l(,)g(see)i(the)f -(asso)q(ciated)f(man)o(ual.)137 1836 y(It)i(is)f(preferable)h(to)f(a)o -(v)o(oid)f(sa)o(ving)h(empt)o(y)g(lines)g(on)h(the)g(history)e(list,)h -(since)g(users)h(rarely)f(ha)o(v)o(e)g(a)75 1891 y(burning)g(need)h(to) -e(reuse)h(a)g(blank)f(line.)20 b(Here)15 b(is)f(a)h(function)f(whic)o -(h)h(usefully)g(replaces)f(the)h(standard)75 1946 y Fr(gets\(\))f -Fs(library)g(function,)h(and)g(has)g(the)h(adv)m(an)o(tage)e(of)h(no)g -(static)f(bu\013er)h(to)g(o)o(v)o(er\015o)o(w:)195 2012 -y Fr(/*)24 b(A)f(static)g(variable)g(for)h(holding)e(the)i(line.)f(*/) -195 2067 y(static)g(char)g(*line_read)g(=)h(\(char)f(*\)NULL;)195 -2177 y(/*)h(Read)f(a)h(string,)f(and)g(return)g(a)h(pointer)f(to)g(it.) -267 2232 y(Returns)f(NULL)i(on)f(EOF.)h(*/)195 2286 y(char)f(*)195 -2341 y(rl_gets)g(\(\))195 2396 y({)243 2451 y(/*)g(If)h(the)f(buffer)g -(has)h(already)f(been)g(allocated,)314 2506 y(return)g(the)h(memory)f -(to)g(the)h(free)f(pool.)g(*/)243 2560 y(if)g(\(line_read\))290 -2615 y({)338 2670 y(free)g(\(line_read\);)p eop end -%%Page: 23 27 -TeXDict begin 23 26 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(23)338 149 y Fr(line_read)23 -b(=)h(\(char)f(*\)NULL;)290 204 y(})243 314 y(/*)g(Get)h(a)f(line)h -(from)f(the)h(user.)f(*/)243 369 y(line_read)f(=)i(readline)f(\(""\);) -243 478 y(/*)g(If)h(the)f(line)h(has)f(any)h(text)f(in)g(it,)314 -533 y(save)h(it)f(on)h(the)f(history.)g(*/)243 588 y(if)g(\(line_read)g -(&&)g(*line_read\))290 643 y(add_history)g(\(line_read\);)243 -752 y(return)g(\(line_read\);)195 807 y(})137 883 y Fs(This)14 -b(function)g(giv)o(es)f(the)h(user)g(the)h(default)e(b)q(eha)o(viour)h -(of)g Fr(TAB)f Fs(completion:)19 b(completion)13 b(on)h(\014le)75 -938 y(names.)20 b(If)c(y)o(ou)f(do)g(not)g(w)o(an)o(t)f(Readline)i(to)e -(complete)i(on)f(\014lenames,)g(y)o(ou)g(can)g(c)o(hange)h(the)f -(binding)75 993 y(of)g(the)g Fr(TAB)g Fs(k)o(ey)g(with)f -Fr(rl_bind_key\(\))p Fs(.)195 1070 y Fr(int)23 b(rl_bind_key)g(\(int)g -Fk(key)5 b Fr(,)24 b(rl_command_func_t)d(*)p Fk(function)5 -b Fr(\);)137 1146 y(rl_bind_key\(\))15 b Fs(tak)o(es)h(t)o(w)o(o)g -(argumen)o(ts:)22 b Fi(k)o(ey)e Fs(is)d(the)f(c)o(haracter)g(that)g(y)o -(ou)h(w)o(an)o(t)f(to)g(bind,)h(and)75 1201 y Fi(function)i -Fs(is)g(the)h(address)f(of)g(the)h(function)f(to)g(call)f(when)i -Fi(k)o(ey)j Fs(is)c(pressed.)33 b(Binding)20 b Fr(TAB)f -Fs(to)f Fr(rl_)75 1256 y(insert\(\))g Fs(mak)o(es)h Fr(TAB)g -Fs(insert)g(itself.)31 b Fr(rl_bind_key\(\))18 b Fs(returns)h(non-zero) -g(if)g Fi(k)o(ey)k Fs(is)c(not)g(a)g(v)m(alid)75 1310 -y(ASCI)q(I)d(c)o(haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)f(0)g(and)g -(255\).)137 1387 y(Th)o(us,)g(to)g(disable)f(the)i(default)e -Fr(TAB)h Fs(b)q(eha)o(vior,)g(the)g(follo)o(wing)e(su\016ces:)195 -1464 y Fr(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)137 -1540 y Fs(This)13 b(co)q(de)h(should)f(b)q(e)h(executed)g(once)g(at)e -(the)h(start)f(of)h(y)o(our)g(program;)f(y)o(ou)h(migh)o(t)f(write)g(a) -h(func-)75 1595 y(tion)j(called)g Fr(initialize_readline\(\))d -Fs(whic)o(h)j(p)q(erforms)g(this)g(and)h(other)f(desired)g -(initializations,)75 1650 y(suc)o(h)g(as)e(installing)g(custom)g -(completers)h(\(see)g(Section)g(2.6)g([Custom)f(Completers],)f(page)i -(43\).)75 1780 y Fq(2.2)33 b(Custom)21 b(F)-6 b(unctions)75 -1859 y Fs(Readline)14 b(pro)o(vides)f(man)o(y)g(functions)h(for)f -(manipulating)f(the)i(text)f(of)g(the)h(line,)f(but)h(it)e(isn't)h(p)q -(ossible)75 1914 y(to)18 b(an)o(ticipate)f(the)h(needs)h(of)f(all)f -(programs.)28 b(This)18 b(section)g(describ)q(es)h(the)f(v)m(arious)g -(functions)g(and)75 1969 y(v)m(ariables)12 b(de\014ned)j(within)d(the)h -(Readline)h(library)d(whic)o(h)i(allo)o(w)f(a)g(user)h(program)f(to)h -(add)g(customized)75 2024 y(functionalit)o(y)g(to)i(Readline.)137 -2100 y(Before)j(declaring)g(an)o(y)g(functions)g(that)g(customize)f -(Readline's)h(b)q(eha)o(vior,)h(or)e(using)h(an)o(y)g(func-)75 -2155 y(tionalit)o(y)i(Readline)j(pro)o(vides)g(in)f(other)h(co)q(de,)h -(an)f(application)f(writer)f(should)i(include)g(the)g(\014le)75 -2210 y Fr()14 b Fs(in)i(an)o(y)h(\014le)g(that)f -(uses)h(Readline's)f(features.)24 b(Since)18 b(some)e(of)g(the)h -(de\014-)75 2265 y(nitions)e(in)g Fr(readline.h)f Fs(use)i(the)g -Fr(stdio)f Fs(library)l(,)f(the)i(\014le)f Fr()g -Fs(should)g(b)q(e)h(included)h(b)q(efore)75 2320 y Fr(readline.h)p -Fs(.)137 2396 y Fr(readline.h)d Fs(de\014nes)i(a)f(C)h(prepro)q(cessor) -f(v)m(ariable)g(that)f(should)h(b)q(e)h(treated)f(as)g(an)g(in)o -(teger,)f Fr(RL_)75 2451 y(READLINE_VERSION)p Fs(,)9 -b(whic)o(h)i(ma)o(y)g(b)q(e)g(used)h(to)e(conditionally)g(compile)g -(application)g(co)q(de)i(dep)q(ending)75 2506 y(on)17 -b(the)h(installed)e(Readline)i(v)o(ersion.)26 b(The)18 -b(v)m(alue)g(is)f(a)g(hexadecimal)g(enco)q(ding)h(of)f(the)h(ma)s(jor)e -(and)75 2560 y(minor)g(v)o(ersion)h(n)o(um)o(b)q(ers)g(of)g(the)g -(library)l(,)f(of)h(the)g(form)f(0x)p Fi(MMmm)p Fs(.)25 -b Fi(MM)c Fs(is)16 b(the)i(t)o(w)o(o-digit)c(ma)s(jor)75 -2615 y(v)o(ersion)g(n)o(um)o(b)q(er;)g Fi(mm)h Fs(is)f(the)g(t)o(w)o -(o-digit)e(minor)i(v)o(ersion)g(n)o(um)o(b)q(er.)20 b(F)l(or)14 -b(Readline)g(4.2,)g(for)f(example,)75 2670 y(the)i(v)m(alue)h(of)e -Fr(RL_READLINE_VERSION)f Fs(w)o(ould)i(b)q(e)g Fr(0x0402)p -Fs(.)p eop end -%%Page: 24 28 -TeXDict begin 24 27 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(24)75 149 y Fh(2.2.1)30 -b(Readline)20 b(T)n(yp)r(edefs)75 223 y Fs(F)l(or)15 -b(readabilt)o(y)l(,)e(w)o(e)i(declare)g(a)g(n)o(um)o(b)q(er)h(of)e(new) -i(ob)s(ject)f(t)o(yp)q(es,)f(all)g(p)q(oin)o(ters)h(to)g(functions.)137 -292 y(The)j(reason)g(for)f(declaring)g(these)h(new)g(t)o(yp)q(es)g(is)g -(to)f(mak)o(e)g(it)g(easier)h(to)f(write)g(co)q(de)h(describing)75 -347 y(p)q(oin)o(ters)d(to)f(C)h(functions)g(with)g(appropriately)e -(protot)o(yp)q(ed)i(argumen)o(ts)g(and)g(return)g(v)m(alues.)137 -416 y(F)l(or)j(instance,)h(sa)o(y)f(w)o(e)g(w)o(an)o(t)f(to)h(declare)g -(a)g(v)m(ariable)g Fi(func)k Fs(as)c(a)g(p)q(oin)o(ter)g(to)g(a)g -(function)g(whic)o(h)75 471 y(tak)o(es)12 b(t)o(w)o(o)g -Fr(int)g Fs(argumen)o(ts)g(and)h(returns)g(an)g Fr(int)f -Fs(\(this)g(is)g(the)h(t)o(yp)q(e)g(of)g(all)e(of)i(the)g(Readline)g -(bindable)75 526 y(functions\).)19 b(Instead)d(of)f(the)g(classic)f(C)h -(declaration)137 595 y Fr(int)g(\(*func\)\(\);)75 665 -y Fs(or)g(the)g(ANSI-C)h(st)o(yle)e(declaration)137 734 -y Fr(int)h(\(*func\)\(int,)f(int\);)75 804 y Fs(w)o(e)h(ma)o(y)f(write) -137 873 y Fr(rl_command_func_t)f(*func;)137 942 y Fs(The)j(full)e(list) -g(of)h(function)g(p)q(oin)o(ter)g(t)o(yp)q(es)g(a)o(v)m(ailable)f(is)75 -1025 y Fr(typedef)g(int)h(rl_command_func_t)e(\(int,)h(int\);)75 -1080 y(typedef)g(char)h(*rl_compentry_func_t)d(\(const)j(char)f(*,)h -(int\);)75 1135 y(typedef)f(char)h(**rl_completion_func_t)d(\(const)i -(char)h(*,)g(int,)f(int\);)75 1190 y(typedef)g(char)h(*rl_quote_func_t) -e(\(char)h(*,)h(int,)g(char)f(*\);)75 1244 y(typedef)g(char)h -(*rl_dequote_func_t)d(\(char)j(*,)g(int\);)75 1299 y(typedef)f(int)h -(rl_compignore_func_t)d(\(char)j(**\);)75 1354 y(typedef)f(void)h -(rl_compdisp_func_t)d(\(char)j(**,)g(int,)f(int\);)75 -1409 y(typedef)g(int)h(rl_hook_func_t)e(\(void\);)75 -1464 y(typedef)h(int)h(rl_getc_func_t)e(\(FILE)i(*\);)75 -1518 y(typedef)f(int)h(rl_linebuf_func_t)e(\(char)h(*,)h(int\);)75 -1573 y(typedef)f(int)h(rl_intfunc_t)e(\(int\);)75 1628 -y(#define)h(rl_ivoidfunc_t)f(rl_hook_func_t)75 1683 y(typedef)h(int)h -(rl_icpfunc_t)e(\(char)i(*\);)75 1738 y(typedef)f(int)h(rl_icppfunc_t)e -(\(char)i(**\);)75 1792 y(typedef)f(void)h(rl_voidfunc_t)e(\(void\);)75 -1847 y(typedef)h(void)h(rl_vintfunc_t)e(\(int\);)75 1902 -y(typedef)h(void)h(rl_vcpfunc_t)e(\(char)i(*\);)75 1957 -y(typedef)f(void)h(rl_vcppfunc_t)e(\(char)i(**\);)75 -2045 y Fh(2.2.2)30 b(W)-5 b(riting)20 b(a)h(New)f(F)-5 -b(unction)75 2118 y Fs(In)16 b(order)f(to)g(write)g(new)h(functions)f -(for)g(Readline,)h(y)o(ou)f(need)h(to)f(kno)o(w)g(the)h(calling)e(con)o -(v)o(en)o(tions)h(for)75 2173 y(k)o(eyb)q(oard-in)o(v)o(ok)o(ed)f -(functions,)h(and)g(the)g(names)g(of)f(the)i(v)m(ariables)e(that)g -(describ)q(e)i(the)f(curren)o(t)g(state)75 2228 y(of)g(the)g(line)g -(read)g(so)g(far.)137 2297 y(The)h(calling)e(sequence)i(for)f(a)f -(command)i Fr(foo)e Fs(lo)q(oks)h(lik)o(e)195 2367 y -Fr(int)23 b(foo)h(\(int)f(count,)g(int)h(key\))75 2436 -y Fs(where)18 b Fi(coun)o(t)h Fs(is)e(the)h(n)o(umeric)g(argumen)o(t)f -(\(or)h(1)f(if)h(defaulted\))f(and)h Fi(k)o(ey)k Fs(is)c(the)g(k)o(ey)g -(that)f(in)o(v)o(ok)o(ed)75 2491 y(this)e(function.)137 -2560 y(It)d(is)f(completely)g(up)h(to)f(the)g(function)h(as)f(to)g -(what)g(should)g(b)q(e)h(done)g(with)f(the)h(n)o(umeric)f(argumen)o(t.) -75 2615 y(Some)20 b(functions)g(use)g(it)f(as)h(a)g(rep)q(eat)g(coun)o -(t,)g(some)g(as)g(a)f(\015ag,)i(and)f(others)g(to)f(c)o(ho)q(ose)h -(alternate)75 2670 y(b)q(eha)o(vior)h(\(refreshing)g(the)h(curren)o(t)f -(line)h(as)f(opp)q(osed)h(to)f(refreshing)h(the)f(screen,)j(for)d -(example\).)p eop end -%%Page: 25 29 -TeXDict begin 25 28 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(25)75 149 y(Some)17 b(c)o(ho)q(ose)f(to)g -(ignore)g(it.)23 b(In)18 b(general,)e(if)g(a)g(function)g(uses)h(the)g -(n)o(umeric)g(argumen)o(t)e(as)i(a)f(rep)q(eat)75 204 -y(coun)o(t,)e(it)f(should)h(b)q(e)g(able)g(to)f(do)h(something)g -(useful)g(with)f(b)q(oth)h(negativ)o(e)f(and)h(p)q(ositiv)o(e)f -(argumen)o(ts.)75 259 y(A)o(t)i(the)g(v)o(ery)g(least,)f(it)g(should)h -(b)q(e)h(a)o(w)o(are)e(that)h(it)f(can)h(b)q(e)h(passed)g(a)f(negativ)o -(e)f(argumen)o(t.)137 329 y(A)g(command)g(function)g(should)g(return)f -(0)h(if)f(its)g(action)h(completes)f(successfully)l(,)h(and)g(a)g -(non-zero)75 384 y(v)m(alue)20 b(if)f(some)g(error)g(o)q(ccurs.)33 -b(This)19 b(is)h(the)f(con)o(v)o(en)o(tion)g(ob)q(ey)o(ed)h(b)o(y)g -(all)e(of)h(the)h(builtin)f(Readline)75 439 y(bindable)c(command)g -(functions.)75 559 y Fq(2.3)33 b(Readline)21 b(V)-6 b(ariables)75 -639 y Fs(These)16 b(v)m(ariables)e(are)h(a)o(v)m(ailable)f(to)g -(function)h(writers.)1685 737 y([V)l(ariable])-1801 b -Fg(char)27 b(*)f(rl_line_buffer)195 792 y Fs(This)15 -b(is)g(the)h(line)f(gathered)h(so)f(far.)20 b(Y)l(ou)c(are)f(w)o -(elcome)g(to)g(mo)q(dify)g(the)h(con)o(ten)o(ts)f(of)g(the)h(line,)195 -846 y(but)i(see)g(Section)g(2.4.5)e([Allo)o(wing)f(Undoing],)j(page)f -(33.)27 b(The)18 b(function)g Fr(rl_extend_line_)195 -901 y(buffer)c Fs(is)h(a)o(v)m(ailable)f(to)g(increase)i(the)f(memory)f -(allo)q(cated)h(to)f Fr(rl_line_buffer)p Fs(.)1685 999 -y([V)l(ariable])-1801 b Fg(int)27 b(rl_point)195 1054 -y Fs(The)15 b(o\013set)g(of)f(the)i(curren)o(t)f(cursor)g(p)q(osition)f -(in)h Fr(rl_line_buffer)e Fs(\(the)i Fj(p)n(oint)t Fs(\).)1685 -1152 y([V)l(ariable])-1801 b Fg(int)27 b(rl_end)195 1206 -y Fs(The)14 b(n)o(um)o(b)q(er)g(of)g(c)o(haracters)f(presen)o(t)h(in)g -Fr(rl_line_buffer)p Fs(.)j(When)e Fr(rl_point)e Fs(is)g(at)g(the)h(end) -195 1261 y(of)h(the)g(line,)g Fr(rl_point)f Fs(and)h -Fr(rl_end)f Fs(are)h(equal.)1685 1359 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_mark)195 1414 y Fs(The)19 b Fi(mark)h -Fs(\(sa)o(v)o(ed)e(p)q(osition\))f(in)h(the)h(curren)o(t)f(line.)29 -b(If)19 b(set,)g(the)f(mark)g(and)h(p)q(oin)o(t)f(de\014ne)h(a)195 -1469 y Fj(r)n(e)n(gion)p Fs(.)1685 1566 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_done)195 1621 y Fs(Setting)10 b(this)g(to)h(a)f -(non-zero)h(v)m(alue)g(causes)g(Readline)g(to)g(return)f(the)h(curren)o -(t)g(line)f(immediately)l(.)1685 1719 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_num_chars_to_read)195 1774 y Fs(Setting)16 -b(this)g(to)g(a)g(p)q(ositiv)o(e)f(v)m(alue)i(b)q(efore)g(calling)e -Fr(readline\(\))g Fs(causes)h(Readline)h(to)f(return)195 -1829 y(after)h(accepting)h(that)f(man)o(y)g(c)o(haracters,)h(rather)f -(than)h(reading)f(up)h(to)f(a)h(c)o(haracter)f(b)q(ound)195 -1883 y(to)e Fr(accept-line)p Fs(.)1685 1981 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_pending_input)195 2036 y Fs(Setting)12 -b(this)g(to)g(a)g(v)m(alue)h(mak)o(es)f(it)g(the)g(next)h(k)o(eystrok)o -(e)f(read.)19 b(This)12 b(is)g(a)g(w)o(a)o(y)g(to)f(stu\013)h(a)h -(single)195 2091 y(c)o(haracter)h(in)o(to)h(the)g(input)g(stream.)1685 -2189 y([V)l(ariable])-1801 b Fg(int)27 b(rl_dispatching)195 -2243 y Fs(Set)12 b(to)g(a)f(non-zero)i(v)m(alue)f(if)g(a)g(function)g -(is)f(b)q(eing)i(called)e(from)h(a)f(k)o(ey)h(binding;)h(zero)f -(otherwise.)195 2298 y(Application)17 b(functions)g(can)h(test)g(this)f -(to)g(disco)o(v)o(er)g(whether)h(they)g(w)o(ere)g(called)f(directly)g -(or)195 2353 y(b)o(y)e(Readline's)g(dispatc)o(hing)g(mec)o(hanism.)1685 -2451 y([V)l(ariable])-1801 b Fg(int)27 b(rl_erase_empty_line)195 -2506 y Fs(Setting)22 b(this)h(to)f(a)h(non-zero)g(v)m(alue)g(causes)g -(Readline)h(to)e(completely)g(erase)h(the)g(curren)o(t)195 -2560 y(line,)e(including)g(an)o(y)f(prompt,)h(an)o(y)g(time)f(a)g -(newline)h(is)f(t)o(yp)q(ed)h(as)f(the)h(only)f(c)o(haracter)g(on)195 -2615 y(an)e(otherwise-empt)o(y)f(line.)29 b(The)18 b(cursor)g(is)g(mo)o -(v)o(ed)f(to)h(the)g(b)q(eginning)g(of)g(the)g(newly-blank)195 -2670 y(line.)p eop end -%%Page: 26 30 -TeXDict begin 26 29 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(26)1685 149 y([V)l(ariable])-1801 -b Fg(char)27 b(*)f(rl_prompt)195 204 y Fs(The)13 b(prompt)g(Readline)g -(uses.)20 b(This)12 b(is)h(set)g(from)f(the)h(argumen)o(t)g(to)f -Fr(readline\(\))p Fs(,)g(and)h(should)195 259 y(not)g(b)q(e)h(assigned) -f(to)g(directly)l(.)19 b(The)14 b Fr(rl_set_prompt\(\))d -Fs(function)i(\(see)h(Section)f(2.4.6)f([Redis-)195 314 -y(pla)o(y],)i(page)h(34\))f(ma)o(y)h(b)q(e)g(used)h(to)f(mo)q(dify)g -(the)g(prompt)g(string)f(after)g(calling)g Fr(readline\(\))p -Fs(.)1685 407 y([V)l(ariable])-1801 b Fg(char)27 b(*)f -(rl_display_prompt)195 462 y Fs(The)16 b(string)f(displa)o(y)o(ed)g(as) -g(the)h(prompt.)21 b(This)16 b(is)f(usually)g(iden)o(tical)g(to)g -Fi(rl)p 1515 462 14 2 v 20 w(prompt)q Fs(,)g(but)h(ma)o(y)195 -517 y(b)q(e)i(c)o(hanged)f(temp)q(orarily)f(b)o(y)h(functions)g(that)f -(use)i(the)f(prompt)g(string)f(as)g(a)h(message)g(area,)195 -571 y(suc)o(h)f(as)e(incremen)o(tal)h(searc)o(h.)1685 -665 y([V)l(ariable])-1801 b Fg(int)27 b(rl_already_prompted)195 -719 y Fs(If)18 b(an)g(application)f(wishes)h(to)g(displa)o(y)f(the)h -(prompt)g(itself,)f(rather)h(than)g(ha)o(v)o(e)g(Readline)g(do)195 -774 y(it)e(the)g(\014rst)g(time)g Fr(readline\(\))f Fs(is)h(called,)g -(it)f(should)i(set)f(this)g(v)m(ariable)f(to)h(a)g(non-zero)h(v)m(alue) -195 829 y(after)h(displa)o(ying)g(the)h(prompt.)31 b(The)19 -b(prompt)g(m)o(ust)f(also)g(b)q(e)i(passed)f(as)f(the)h(argumen)o(t)g -(to)195 884 y Fr(readline\(\))c Fs(so)h(the)h(redispla)o(y)e(functions) -i(can)f(up)q(date)h(the)g(displa)o(y)f(prop)q(erly)l(.)23 -b(The)17 b(calling)195 938 y(application)d(is)h(resp)q(onsible)g(for)f -(managing)g(the)i(v)m(alue;)f(Readline)g(nev)o(er)h(sets)e(it.)1685 -1032 y([V)l(ariable])-1801 b Fg(const)27 b(char)g(*)f -(rl_library_version)195 1086 y Fs(The)15 b(v)o(ersion)g(n)o(um)o(b)q -(er)g(of)g(this)g(revision)f(of)h(the)g(library)l(.)1685 -1180 y([V)l(ariable])-1801 b Fg(int)27 b(rl_readline_version)195 -1234 y Fs(An)17 b(in)o(teger)g(enco)q(ding)g(the)g(curren)o(t)g(v)o -(ersion)f(of)h(the)g(library)l(.)25 b(The)17 b(enco)q(ding)g(is)g(of)g -(the)g(form)195 1289 y(0x)p Fi(MMmm)p Fs(,)g(where)i -Fi(MM)j Fs(is)c(the)g(t)o(w)o(o-digit)e(ma)s(jor)h(v)o(ersion)h(n)o(um) -o(b)q(er,)h(and)f Fi(mm)g Fs(is)g(the)g(t)o(w)o(o-)195 -1344 y(digit)g(minor)f(v)o(ersion)h(n)o(um)o(b)q(er.)31 -b(F)l(or)18 b(example,)h(for)f(Readline-4.2,)h Fr(rl_readline_version) -195 1399 y Fs(w)o(ould)c(ha)o(v)o(e)f(the)i(v)m(alue)f(0x0402.)1685 -1492 y([V)l(ariable])-1801 b Fg(int)27 b(rl_gnu_readline_p)195 -1547 y Fs(Alw)o(a)o(ys)14 b(set)h(to)f(1,)h(denoting)g(that)f(this)h -(is)g Fl(gnu)g Fs(readline)f(rather)h(than)g(some)g(em)o(ulation.)1685 -1640 y([V)l(ariable])-1801 b Fg(const)27 b(char)g(*)f(rl_terminal_name) -195 1695 y Fs(The)14 b(terminal)f(t)o(yp)q(e,)h(used)h(for)e -(initialization.)k(If)d(not)f(set)h(b)o(y)g(the)g(application,)f -(Readline)h(sets)195 1749 y(this)h(to)f(the)h(v)m(alue)h(of)f(the)g -Fr(TERM)g Fs(en)o(vironmen)o(t)f(v)m(ariable)h(the)g(\014rst)g(time)f -(it)h(is)f(called.)1685 1843 y([V)l(ariable])-1801 b -Fg(const)27 b(char)g(*)f(rl_readline_name)195 1897 y -Fs(This)15 b(v)m(ariable)g(is)g(set)h(to)f(a)g(unique)h(name)g(b)o(y)f -(eac)o(h)h(application)e(using)h(Readline.)22 b(The)16 -b(v)m(alue)195 1952 y(allo)o(ws)c(conditional)h(parsing)g(of)h(the)g -(inputrc)g(\014le)g(\(see)g(Section)g(1.3.2)e([Conditional)g(Init)i -(Con-)195 2007 y(structs],)g(page)h(10\).)1685 2100 y([V)l(ariable]) --1801 b Fg(FILE)27 b(*)f(rl_instream)195 2155 y Fs(The)21 -b(stdio)e(stream)h(from)g(whic)o(h)g(Readline)h(reads)f(input.)36 -b(If)21 b Fr(NULL)p Fs(,)g(Readline)g(defaults)f(to)195 -2210 y Fi(stdin)p Fs(.)1685 2303 y([V)l(ariable])-1801 -b Fg(FILE)27 b(*)f(rl_outstream)195 2358 y Fs(The)17 -b(stdio)g(stream)f(to)h(whic)o(h)g(Readline)g(p)q(erforms)g(output.)26 -b(If)18 b Fr(NULL)p Fs(,)e(Readline)i(defaults)f(to)195 -2412 y Fi(stdout)q Fs(.)1685 2506 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_prefer_env_winsize)195 2560 y Fs(If)14 -b(non-zero,)h(Readline)f(giv)o(es)g(v)m(alues)g(found)g(in)g(the)h -Fr(LINES)e Fs(and)i Fr(COLUMNS)e Fs(en)o(vironmen)o(t)g(v)m(ari-)195 -2615 y(ables)20 b(greater)g(precedence)i(than)e(v)m(alues)h(fetc)o(hed) -g(from)e(the)i(k)o(ernel)f(when)h(computing)f(the)195 -2670 y(screen)c(dimensions.)p eop end -%%Page: 27 31 -TeXDict begin 27 30 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(27)1685 149 y([V)l(ariable])-1801 -b Fg(rl_command_func_t)29 b(*)d(rl_last_func)195 204 -y Fs(The)18 b(address)f(of)g(the)g(last)g(command)g(function)g -(Readline)h(executed.)27 b(Ma)o(y)17 b(b)q(e)h(used)g(to)f(test)195 -259 y(whether)e(or)g(not)g(a)g(function)g(is)f(b)q(eing)i(executed)g(t) -o(wice)f(in)g(succession,)g(for)f(example.)1685 363 y([V)l(ariable]) --1801 b Fg(rl_hook_func_t)28 b(*)f(rl_startup_hook)195 -418 y Fs(If)17 b(non-zero,)h(this)f(is)f(the)i(address)f(of)f(a)h -(function)g(to)g(call)f(just)h(b)q(efore)g Fr(readline)f -Fs(prin)o(ts)h(the)195 473 y(\014rst)e(prompt.)1685 577 -y([V)l(ariable])-1801 b Fg(rl_hook_func_t)28 b(*)f(rl_pre_input_hook) -195 632 y Fs(If)18 b(non-zero,)g(this)f(is)h(the)g(address)f(of)h(a)f -(function)h(to)f(call)g(after)g(the)h(\014rst)f(prompt)g(has)h(b)q(een) -195 686 y(prin)o(ted)d(and)g(just)g(b)q(efore)h Fr(readline)e -Fs(starts)g(reading)g(input)i(c)o(haracters.)1685 791 -y([V)l(ariable])-1801 b Fg(rl_hook_func_t)28 b(*)f(rl_event_hook)195 -845 y Fs(If)21 b(non-zero,)g(this)f(is)g(the)g(address)g(of)g(a)g -(function)g(to)g(call)g(p)q(erio)q(dically)f(when)i(Readline)f(is)195 -900 y(w)o(aiting)13 b(for)h(terminal)f(input.)20 b(By)14 -b(default,)g(this)g(will)g(b)q(e)h(called)f(at)g(most)g(ten)g(times)g -(a)g(second)195 955 y(if)h(there)g(is)g(no)g(k)o(eyb)q(oard)g(input.) -1685 1059 y([V)l(ariable])-1801 b Fg(rl_getc_func_t)28 -b(*)f(rl_getc_function)195 1114 y Fs(If)15 b(non-zero,)h(Readline)f -(will)f(call)g(indirectly)h(through)g(this)f(p)q(oin)o(ter)h(to)g(get)f -(a)h(c)o(haracter)g(from)195 1169 y(the)k(input)h(stream.)31 -b(By)19 b(default,)g(it)g(is)g(set)g(to)f Fr(rl_getc)p -Fs(,)h(the)g(default)g(Readline)h(c)o(haracter)195 1223 -y(input)15 b(function)g(\(see)g(Section)g(2.4.8)f([Character)g(Input],) -h(page)g(36\).)1685 1328 y([V)l(ariable])-1801 b Fg(rl_voidfunc_t)28 -b(*)e(rl_redisplay_function)195 1382 y Fs(If)18 b(non-zero,)h(Readline) -f(will)f(call)g(indirectly)g(through)h(this)f(p)q(oin)o(ter)h(to)f(up)q -(date)i(the)f(displa)o(y)195 1437 y(with)13 b(the)g(curren)o(t)h(con)o -(ten)o(ts)f(of)g(the)g(editing)g(bu\013er.)19 b(By)14 -b(default,)f(it)g(is)g(set)g(to)g Fr(rl_redisplay)p Fs(,)195 -1492 y(the)i(default)g(Readline)h(redispla)o(y)e(function)h(\(see)g -(Section)g(2.4.6)f([Redispla)o(y],)g(page)h(34\).)1685 -1596 y([V)l(ariable])-1801 b Fg(rl_vintfunc_t)28 b(*)e -(rl_prep_term_function)195 1651 y Fs(If)12 b(non-zero,)h(Readline)f -(will)f(call)g(indirectly)g(through)h(this)f(p)q(oin)o(ter)h(to)f -(initialize)f(the)j(terminal.)195 1706 y(The)19 b(function)f(tak)o(es)g -(a)g(single)g(argumen)o(t,)g(an)h Fr(int)f Fs(\015ag)g(that)g(sa)o(ys)g -(whether)g(or)h(not)f(to)g(use)195 1760 y(eigh)o(t-bit)e(c)o -(haracters.)25 b(By)17 b(default,)g(this)f(is)h(set)f(to)h -Fr(rl_prep_terminal)e Fs(\(see)i(Section)g(2.4.9)195 -1815 y([T)l(erminal)d(Managemen)o(t],)f(page)i(36\).)1685 -1919 y([V)l(ariable])-1801 b Fg(rl_voidfunc_t)28 b(*)e -(rl_deprep_term_functi)q(on)195 1974 y Fs(If)19 b(non-zero,)g(Readline) -f(will)f(call)h(indirectly)f(through)h(this)g(p)q(oin)o(ter)f(to)h -(reset)g(the)h(terminal.)195 2029 y(This)e(function)g(should)h(undo)g -(the)f(e\013ects)h(of)f Fr(rl_prep_term_function)p Fs(.)24 -b(By)17 b(default,)h(this)195 2084 y(is)d(set)g(to)f -Fr(rl_deprep_terminal)f Fs(\(see)i(Section)g(2.4.9)f([T)l(erminal)g -(Managemen)o(t],)f(page)i(36\).)1685 2188 y([V)l(ariable])-1801 -b Fg(Keymap)27 b(rl_executing_keymap)195 2243 y Fs(This)18 -b(v)m(ariable)f(is)g(set)h(to)g(the)g(k)o(eymap)f(\(see)h(Section)g -(2.4.2)f([Keymaps],)g(page)h(30\))f(in)h(whic)o(h)195 -2297 y(the)d(curren)o(tly)g(executing)g(readline)g(function)g(w)o(as)g -(found.)1685 2401 y([V)l(ariable])-1801 b Fg(Keymap)27 -b(rl_binding_keymap)195 2456 y Fs(This)18 b(v)m(ariable)f(is)g(set)h -(to)g(the)g(k)o(eymap)f(\(see)h(Section)g(2.4.2)f([Keymaps],)g(page)h -(30\))f(in)h(whic)o(h)195 2511 y(the)d(last)f(k)o(ey)h(binding)h(o)q -(ccurred.)1685 2615 y([V)l(ariable])-1801 b Fg(char)27 -b(*)f(rl_executing_macro)195 2670 y Fs(This)15 b(v)m(ariable)f(is)h -(set)g(to)g(the)g(text)g(of)f(an)o(y)h(curren)o(tly-executing)g(macro.) -p eop end -%%Page: 28 32 -TeXDict begin 28 31 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(28)1685 149 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_readline_state)195 204 y Fs(A)17 b(v)m(ariable)g(with) -f(bit)h(v)m(alues)h(that)e(encapsulate)h(the)h(curren)o(t)f(Readline)g -(state.)25 b(A)18 b(bit)e(is)h(set)195 259 y(with)h(the)h -Fr(RL_SETSTATE)f Fs(macro,)h(and)g(unset)g(with)f(the)h -Fr(RL_UNSETSTATE)e Fs(macro.)31 b(Use)19 b(the)195 314 -y Fr(RL_ISSTATE)e Fs(macro)h(to)g(test)g(whether)h(a)f(particular)g -(state)f(bit)i(is)f(set.)30 b(Curren)o(t)18 b(state)g(bits)195 -369 y(include:)195 452 y Fr(RL_STATE_NONE)435 507 y Fs(Readline)d(has)h -(not)e(y)o(et)h(b)q(een)h(called,)f(nor)g(has)g(it)f(b)q(egun)i(to)f -(in)o(tialize.)195 589 y Fr(RL_STATE_INITIALIZING)435 -644 y Fs(Readline)g(is)g(initializing)e(its)h(in)o(ternal)g(data)h -(structures.)195 726 y Fr(RL_STATE_INITIALIZED)435 781 -y Fs(Readline)g(has)h(completed)f(its)f(initialization.)195 -863 y Fr(RL_STATE_TERMPREPPED)435 917 y Fs(Readline)h(has)f(mo)q -(di\014ed)h(the)f(terminal)f(mo)q(des)i(to)e(do)i(its)e(o)o(wn)h(input) -g(and)h(redis-)435 972 y(pla)o(y)l(.)195 1054 y Fr(RL_STATE_READCMD)435 -1109 y Fs(Readline)g(is)g(reading)g(a)g(command)g(from)f(the)i(k)o(eyb) -q(oard.)195 1191 y Fr(RL_STATE_METANEXT)435 1246 y Fs(Readline)f(is)g -(reading)g(more)g(input)g(after)f(reading)h(the)g(meta-pre\014x)h(c)o -(haracter.)195 1328 y Fr(RL_STATE_DISPATCHING)435 1383 -y Fs(Readline)f(is)g(dispatc)o(hing)g(to)f(a)h(command.)195 -1465 y Fr(RL_STATE_MOREINPUT)435 1520 y Fs(Readline)g(is)g(reading)g -(more)g(input)g(while)g(executing)g(an)g(editing)g(command.)195 -1602 y Fr(RL_STATE_ISEARCH)435 1657 y Fs(Readline)g(is)g(p)q(erforming) -g(an)g(incremen)o(tal)f(history)g(searc)o(h.)195 1739 -y Fr(RL_STATE_NSEARCH)435 1794 y Fs(Readline)h(is)g(p)q(erforming)g(a)g -(non-incremen)o(tal)f(history)h(searc)o(h.)195 1876 y -Fr(RL_STATE_SEARCH)435 1931 y Fs(Readline)10 b(is)g(searc)o(hing)g(bac) -o(kw)o(ard)f(or)h(forw)o(ard)f(through)h(the)g(history)f(for)g(a)h -(string.)195 2013 y Fr(RL_STATE_NUMERICARG)435 2068 y -Fs(Readline)15 b(is)g(reading)g(a)g(n)o(umeric)g(argumen)o(t.)195 -2150 y Fr(RL_STATE_MACROINPUT)435 2204 y Fs(Readline)d(is)g(curren)o -(tly)g(getting)f(its)g(input)h(from)f(a)h(previously-de\014ned)h(k)o -(eyb)q(oard)435 2259 y(macro.)195 2341 y Fr(RL_STATE_MACRODEF)435 -2396 y Fs(Readline)i(is)g(curren)o(tly)g(reading)g(c)o(haracters)f -(de\014ning)i(a)f(k)o(eyb)q(oard)g(macro.)195 2478 y -Fr(RL_STATE_OVERWRITE)435 2533 y Fs(Readline)g(is)g(in)g(o)o(v)o -(erwrite)f(mo)q(de.)195 2615 y Fr(RL_STATE_COMPLETING)435 -2670 y Fs(Readline)h(is)g(p)q(erforming)g(w)o(ord)f(completion.)p -eop end -%%Page: 29 33 -TeXDict begin 29 32 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(29)195 149 y Fr(RL_STATE_SIGHANDLER)435 -204 y Fs(Readline)15 b(is)g(curren)o(tly)g(executing)g(the)g(readline)g -(signal)f(handler.)195 282 y Fr(RL_STATE_UNDOING)435 -336 y Fs(Readline)h(is)g(p)q(erforming)g(an)g(undo.)195 -414 y Fr(RL_STATE_INPUTPENDING)435 469 y Fs(Readline)g(has)h(input)f(p) -q(ending)h(due)g(to)e(a)h(call)f(to)h Fr(rl_execute_next\(\))p -Fs(.)195 546 y Fr(RL_STATE_TTYCSAVED)435 601 y Fs(Readline)g(has)h(sa)o -(v)o(ed)e(the)i(v)m(alues)f(of)g(the)g(terminal's)e(sp)q(ecial)i(c)o -(haracters.)195 678 y Fr(RL_STATE_CALLBACK)435 733 y -Fs(Readline)22 b(is)f(curren)o(tly)g(using)g(the)h(alternate)e -(\(callbac)o(k\))g(in)o(terface)h(\(see)g(Sec-)435 788 -y(tion)14 b(2.4.12)g([Alternate)g(In)o(terface],)g(page)h(39\).)195 -865 y Fr(RL_STATE_VIMOTION)435 920 y Fs(Readline)g(is)g(reading)g(the)g -(argumen)o(t)g(to)f(a)h(vi-mo)q(de)g Fr(")p Fs(motion)p -Fr(")f Fs(command.)195 997 y Fr(RL_STATE_MULTIKEY)435 -1052 y Fs(Readline)h(is)g(reading)g(a)g(m)o(ultiple-k)o(eystrok)o(e)e -(command.)195 1129 y Fr(RL_STATE_VICMDONCE)435 1184 y -Fs(Readline)20 b(has)f(en)o(tered)h(vi)f(command)h(\(mo)o(v)o(emen)o -(t\))e(mo)q(de)h(at)g(least)g(one)h(time)435 1239 y(during)15 -b(the)g(curren)o(t)g(call)g(to)f Fr(readline\(\))p Fs(.)195 -1316 y Fr(RL_STATE_DONE)435 1371 y Fs(Readline)g(has)g(read)g(a)f(k)o -(ey)h(sequence)h(b)q(ound)g(to)e Fr(accept-line)f Fs(and)i(is)g(ab)q -(out)g(to)435 1426 y(return)h(the)g(line)g(to)g(the)g(caller.)1685 -1514 y([V)l(ariable])-1801 b Fg(int)27 b(rl_explicit_arg)195 -1569 y Fs(Set)19 b(to)g(a)g(non-zero)h(v)m(alue)g(if)e(an)i(explicit)e -(n)o(umeric)i(argumen)o(t)e(w)o(as)h(sp)q(eci\014ed)h(b)o(y)g(the)f -(user.)195 1624 y(Only)c(v)m(alid)g(in)g(a)g(bindable)g(command)h -(function.)1685 1713 y([V)l(ariable])-1801 b Fg(int)27 -b(rl_numeric_arg)195 1767 y Fs(Set)c(to)f(the)g(v)m(alue)h(of)g(an)o(y) -f(n)o(umeric)g(argumen)o(t)g(explicitly)g(sp)q(eci\014ed)i(b)o(y)e(the) -h(user)g(b)q(efore)195 1822 y(executing)13 b(the)g(curren)o(t)g -(Readline)g(function.)19 b(Only)13 b(v)m(alid)g(in)g(a)g(bindable)g -(command)f(function.)1685 1911 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_editing_mode)195 1966 y Fs(Set)13 b(to)f(a)g(v)m(alue) -h(denoting)f(Readline's)g(curren)o(t)h(editing)f(mo)q(de.)19 -b(A)12 b(v)m(alue)h(of)f Fi(1)k Fs(means)d(Readline)195 -2020 y(is)i(curren)o(tly)f(in)h(emacs)h(mo)q(de;)f Fi(0)j -Fs(means)d(that)g(vi)g(mo)q(de)g(is)g(activ)o(e.)75 2134 -y Fq(2.4)33 b(Readline)21 b(Con)n(v)n(enience)h(F)-6 -b(unctions)75 2245 y Fh(2.4.1)30 b(Naming)20 b(a)g(F)-5 -b(unction)75 2319 y Fs(The)13 b(user)f(can)h(dynamically)e(c)o(hange)i -(the)f(bindings)h(of)f(k)o(eys)g(while)g(using)g(Readline.)19 -b(This)12 b(is)g(done)h(b)o(y)75 2373 y(represen)o(ting)i(the)g -(function)g(with)f(a)h(descriptiv)o(e)g(name.)20 b(The)15 -b(user)g(is)g(able)g(to)f(t)o(yp)q(e)h(the)g(descriptiv)o(e)75 -2428 y(name)g(when)h(referring)e(to)h(the)g(function.)20 -b(Th)o(us,)15 b(in)g(an)g(init)f(\014le,)h(one)g(migh)o(t)f(\014nd)195 -2494 y Fr(Meta-Rubout:)46 b(backward-kill-word)137 2560 -y Fs(This)17 b(binds)g(the)g(k)o(eystrok)o(e)f Fr(Meta-Rubout)g -Fs(to)g(the)h(function)g Fj(descriptively)k Fs(named)c -Fr(backward-)75 2615 y(kill-word)p Fs(.)29 b(Y)l(ou,)19 -b(as)f(the)h(programmer,)f(should)h(bind)f(the)h(functions)g(y)o(ou)f -(write)g(to)f(descriptiv)o(e)75 2670 y(names)e(as)g(w)o(ell.)k -(Readline)c(pro)o(vides)g(a)g(function)g(for)f(doing)h(that:)p -eop end -%%Page: 30 34 -TeXDict begin 30 33 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(30)1675 149 y([F)l(unction])-1801 -b Fg(int)27 b(rl_add_defun)d Ff(\()p Fi(const)15 b(c)o(har)g(*name,)f -(rl)p 943 149 14 2 v 20 w(command)p 1155 149 V 20 w(func)p -1259 149 V 20 w(t)h(*function,)f(in)o(t)283 204 y(k)o(ey)p -Ff(\))195 259 y Fs(Add)k Fi(name)i Fs(to)d(the)h(list)f(of)g(named)h -(functions.)27 b(Mak)o(e)17 b Fi(function)g Fs(b)q(e)h(the)g(function)g -(that)e(gets)195 314 y(called.)j(If)d Fi(k)o(ey)j Fs(is)c(not)f(-1,)h -(then)h(bind)f(it)g(to)f Fi(function)h Fs(using)g Fr(rl_bind_key\(\))p -Fs(.)137 407 y(Using)g(this)f(function)h(alone)g(is)f(su\016cien)o(t)h -(for)g(most)f(applications.)k(It)d(is)g(the)g(recommended)h(w)o(a)o(y) -75 461 y(to)d(add)h(a)f(few)g(functions)g(to)g(the)h(default)f -(functions)g(that)g(Readline)h(has)f(built)g(in.)19 b(If)14 -b(y)o(ou)f(need)h(to)f(do)75 516 y(something)j(other)h(than)f(adding)h -(a)f(function)h(to)f(Readline,)h(y)o(ou)g(ma)o(y)f(need)i(to)e(use)h -(the)g(underlying)75 571 y(functions)e(describ)q(ed)h(b)q(elo)o(w.)75 -671 y Fh(2.4.2)30 b(Selecting)20 b(a)h(Keymap)75 744 -y Fs(Key)f(bindings)f(tak)o(e)g(place)g(on)g(a)g Fi(k)o(eymap)p -Fs(.)32 b(The)20 b(k)o(eymap)f(is)g(the)g(asso)q(ciation)f(b)q(et)o(w)o -(een)i(the)f(k)o(eys)75 799 y(that)14 b(the)g(user)g(t)o(yp)q(es)g(and) -h(the)f(functions)g(that)g(get)g(run.)19 b(Y)l(ou)c(can)f(mak)o(e)g(y)o -(our)g(o)o(wn)f(k)o(eymaps,)h(cop)o(y)75 854 y(existing)g(k)o(eymaps,)h -(and)g(tell)f(Readline)i(whic)o(h)f(k)o(eymap)g(to)f(use.)1675 -947 y([F)l(unction])-1801 b Fg(Keymap)27 b(rl_make_bare_keymap)f -Ff(\()p Fi(v)o(oid)p Ff(\))195 1002 y Fs(Returns)13 b(a)e(new,)i(empt)o -(y)f(k)o(eymap.)18 b(The)13 b(space)f(for)f(the)i(k)o(eymap)e(is)h -(allo)q(cated)f(with)g Fr(malloc\(\))p Fs(;)195 1056 -y(the)k(caller)g(should)g(free)g(it)g(b)o(y)g(calling)f -Fr(rl_free_keymap\(\))f Fs(when)i(done.)1675 1149 y([F)l(unction])-1801 -b Fg(Keymap)27 b(rl_copy_keymap)e Ff(\()p Fi(Keymap)15 -b(map)p Ff(\))195 1204 y Fs(Return)h(a)f(new)g(k)o(eymap)g(whic)o(h)g -(is)g(a)g(cop)o(y)g(of)g Fi(map)q Fs(.)1675 1297 y([F)l(unction])-1801 -b Fg(Keymap)27 b(rl_make_keymap)e Ff(\()p Fi(v)o(oid)p -Ff(\))195 1352 y Fs(Return)16 b(a)g(new)g(k)o(eymap)f(with)g(the)h -(prin)o(ting)f(c)o(haracters)f(b)q(ound)j(to)e(rl)p 1455 -1352 V 20 w(insert,)f(the)i(lo)o(w)o(ercase)195 1406 -y(Meta)11 b(c)o(haracters)f(b)q(ound)i(to)f(run)h(their)e(equiv)m(alen) -o(ts,)i(and)f(the)h(Meta)e(digits)g(b)q(ound)i(to)f(pro)q(duce)195 -1461 y(n)o(umeric)k(argumen)o(ts.)1675 1554 y([F)l(unction])-1801 -b Fg(void)27 b(rl_discard_keymap)e Ff(\()p Fi(Keymap)15 -b(k)o(eymap)p Ff(\))195 1609 y Fs(F)l(ree)f(the)h(storage)e(asso)q -(ciated)h(with)g(the)g(data)g(in)g Fi(k)o(eymap)q Fs(.)20 -b(The)15 b(caller)e(should)i(free)f Fi(k)o(eymap)q Fs(.)1675 -1702 y([F)l(unction])-1801 b Fg(void)27 b(rl_free_keymap)e -Ff(\()p Fi(Keymap)15 b(k)o(eymap)p Ff(\))195 1756 y Fs(F)l(ree)g(all)g -(storage)f(asso)q(ciated)g(with)h Fi(k)o(eymap)q Fs(.)20 -b(This)15 b(calls)f Fr(rl_discard_keymap)f Fs(to)i(free)g(sub-)195 -1811 y(ordindate)g(k)o(eymaps)g(and)g(macros.)137 1904 -y(Readline)23 b(has)g(sev)o(eral)f(in)o(ternal)f(k)o(eymaps.)42 -b(These)23 b(functions)f(allo)o(w)f(y)o(ou)h(to)g(c)o(hange)h(whic)o(h) -75 1959 y(k)o(eymap)15 b(is)g(activ)o(e.)1675 2051 y([F)l(unction]) --1801 b Fg(Keymap)27 b(rl_get_keymap)e Ff(\()p Fi(v)o(oid)p -Ff(\))195 2106 y Fs(Returns)16 b(the)f(curren)o(tly)g(activ)o(e)f(k)o -(eymap.)1675 2199 y([F)l(unction])-1801 b Fg(void)27 -b(rl_set_keymap)d Ff(\()p Fi(Keymap)16 b(k)o(eymap)p -Ff(\))195 2254 y Fs(Mak)o(es)e Fi(k)o(eymap)j Fs(the)e(curren)o(tly)g -(activ)o(e)f(k)o(eymap.)1675 2347 y([F)l(unction])-1801 -b Fg(Keymap)27 b(rl_get_keymap_by_name)f Ff(\()p Fi(const)15 -b(c)o(har)f(*name)p Ff(\))195 2401 y Fs(Return)j(the)g(k)o(eymap)f -(matc)o(hing)f Fi(name)s Fs(.)23 b Fi(name)c Fs(is)d(one)h(whic)o(h)f -(w)o(ould)g(b)q(e)h(supplied)g(in)f(a)g Fr(set)195 2456 -y(keymap)e Fs(inputrc)i(line)e(\(see)i(Section)f(1.3)f([Readline)h -(Init)g(File],)f(page)h(4\).)1675 2549 y([F)l(unction])-1801 -b Fg(char)27 b(*)f(rl_get_keymap_name)g Ff(\()p Fi(Keymap)15 -b(k)o(eymap)p Ff(\))195 2604 y Fs(Return)i(the)g(name)f(matc)o(hing)g -Fi(k)o(eymap)q Fs(.)24 b Fi(name)19 b Fs(is)d(one)h(whic)o(h)f(w)o -(ould)g(b)q(e)h(supplied)g(in)f(a)g Fr(set)195 2659 y(keymap)e -Fs(inputrc)i(line)e(\(see)i(Section)f(1.3)f([Readline)h(Init)g(File],)f -(page)h(4\).)p eop end -%%Page: 31 35 -TeXDict begin 31 34 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(31)75 149 y Fh(2.4.3)30 -b(Binding)20 b(Keys)75 223 y Fs(Key)e(sequences)g(are)e(asso)q(ciate)g -(with)h(functions)g(through)f(the)h(k)o(eymap.)26 b(Readline)17 -b(has)g(sev)o(eral)f(in-)75 278 y(ternal)e(k)o(eymaps:)19 -b Fr(emacs_standard_keymap)p Fs(,)11 b Fr(emacs_meta_keymap)p -Fs(,)h Fr(emacs_ctlx_keymap)p Fs(,)g Fr(vi_)75 333 y(movement_keymap)p -Fs(,)20 b(and)i Fr(vi_insertion_keymap)p Fs(.)35 b Fr -(emacs_standard_keymap)18 b Fs(is)j(the)g(default,)75 -387 y(and)15 b(the)h(examples)f(in)g(this)f(man)o(ual)h(assume)g(that.) -137 460 y(Since)g Fr(readline\(\))d Fs(installs)g(a)i(set)f(of)h -(default)f(k)o(ey)h(bindings)f(the)h(\014rst)g(time)f(it)g(is)g -(called,)h(there)f(is)75 515 y(alw)o(a)o(ys)i(the)h(danger)g(that)g(a)g -(custom)g(binding)g(installed)f(b)q(efore)i(the)f(\014rst)g(call)g(to)f -Fr(readline\(\))g Fs(will)75 570 y(b)q(e)f(o)o(v)o(erridden.)k(An)13 -b(alternate)f(mec)o(hanism)h(is)f(to)g(install)f(custom)i(k)o(ey)g -(bindings)f(in)h(an)g(initialization)75 625 y(function)18 -b(assigned)h(to)e(the)i Fr(rl_startup_hook)e Fs(v)m(ariable)h(\(see)g -(Section)g(2.3)g([Readline)h(V)l(ariables],)75 679 y(page)c(25\).)137 -752 y(These)h(functions)f(manage)f(k)o(ey)i(bindings.)1675 -856 y([F)l(unction])-1801 b Fg(int)27 b(rl_bind_key)d -Ff(\()p Fi(in)o(t)14 b(k)o(ey)l(,)h(rl)p 702 856 14 2 -v 19 w(command)p 913 856 V 20 w(func)p 1017 856 V 21 -w(t)g(*function)p Ff(\))195 911 y Fs(Binds)i Fi(k)o(ey)j -Fs(to)c Fi(function)g Fs(in)h(the)f(curren)o(tly)g(activ)o(e)g(k)o -(eymap.)23 b(Returns)17 b(non-zero)g(in)f(the)h(case)195 -965 y(of)e(an)g(in)o(v)m(alid)f Fi(k)o(ey)t Fs(.)1675 -1069 y([F)l(unction])-1801 b Fg(int)27 b(rl_bind_key_in_map)e -Ff(\()p Fi(in)o(t)14 b(k)o(ey)l(,)h(rl)p 885 1069 V 20 -w(command)p 1097 1069 V 19 w(func)p 1200 1069 V 21 w(t)g(*function,)283 -1124 y(Keymap)g(map)p Ff(\))195 1178 y Fs(Bind)g Fi(k)o(ey)k -Fs(to)c Fi(function)g Fs(in)g Fi(map)q Fs(.)20 b(Returns)c(non-zero)f -(in)g(the)h(case)f(of)g(an)g(in)o(v)m(alid)f Fi(k)o(ey)t -Fs(.)1675 1282 y([F)l(unction])-1801 b Fg(int)27 b -(rl_bind_key_if_unbound)f Ff(\()p Fi(in)o(t)14 b(k)o(ey)l(,)h(rl)p -990 1282 V 19 w(command)p 1201 1282 V 20 w(func)p 1305 -1282 V 21 w(t)f(*function)p Ff(\))195 1337 y Fs(Binds)22 -b Fi(k)o(ey)k Fs(to)21 b Fi(function)h Fs(if)g(it)f(is)g(not)h(already) -f(b)q(ound)i(in)f(the)g(curren)o(tly)f(activ)o(e)h(k)o(eymap.)195 -1392 y(Returns)16 b(non-zero)f(in)g(the)h(case)f(of)f(an)i(in)o(v)m -(alid)e Fi(k)o(ey)19 b Fs(or)c(if)f Fi(k)o(ey)19 b Fs(is)c(already)g(b) -q(ound.)1675 1495 y([F)l(unction])-1801 b Fg(int)27 b -(rl_bind_key_if_unbound_in_)q(map)f Ff(\()p Fi(in)o(t)14 -b(k)o(ey)l(,)h(rl)p 1173 1495 V 19 w(command)p 1384 1495 -V 20 w(func)p 1488 1495 V 21 w(t)283 1550 y(*function,)f(Keymap)h(map)p -Ff(\))195 1605 y Fs(Binds)f Fi(k)o(ey)j Fs(to)c Fi(function)g -Fs(if)h(it)e(is)h(not)h(already)e(b)q(ound)j(in)e Fi(map)q -Fs(.)20 b(Returns)14 b(non-zero)g(in)f(the)h(case)195 -1659 y(of)h(an)g(in)o(v)m(alid)f Fi(k)o(ey)19 b Fs(or)c(if)g -Fi(k)o(ey)k Fs(is)14 b(already)h(b)q(ound.)1675 1763 -y([F)l(unction])-1801 b Fg(int)27 b(rl_unbind_key)d Ff(\()p -Fi(in)o(t)14 b(k)o(ey)p Ff(\))195 1818 y Fs(Bind)k Fi(k)o(ey)k -Fs(to)c(the)g(n)o(ull)g(function)g(in)g(the)g(curren)o(tly)f(activ)o(e) -h(k)o(eymap.)28 b(Returns)19 b(non-zero)f(in)195 1872 -y(case)d(of)g(error.)1675 1976 y([F)l(unction])-1801 -b Fg(int)27 b(rl_unbind_key_in_map)e Ff(\()p Fi(in)o(t)14 -b(k)o(ey)l(,)h(Keymap)h(map)p Ff(\))195 2031 y Fs(Bind)f -Fi(k)o(ey)k Fs(to)c(the)g(n)o(ull)g(function)g(in)g Fi(map)q -Fs(.)20 b(Returns)c(non-zero)f(in)g(case)g(of)g(error.)1675 -2134 y([F)l(unction])-1801 b Fg(int)27 b(rl_unbind_function_in_map)f -Ff(\()p Fi(rl)p 908 2134 V 19 w(command)p 1119 2134 V -20 w(func)p 1223 2134 V 21 w(t)15 b(*function,)283 2189 -y(Keymap)g(map)p Ff(\))195 2244 y Fs(Un)o(bind)h(all)e(k)o(eys)h(that)f -(execute)i Fi(function)f Fs(in)g Fi(map)q Fs(.)1675 2347 -y([F)l(unction])-1801 b Fg(int)27 b(rl_unbind_command_in_map)f -Ff(\()p Fi(const)15 b(c)o(har)f(*command,)h(Keymap)g(map)p -Ff(\))195 2402 y Fs(Un)o(bind)h(all)e(k)o(eys)h(that)f(are)h(b)q(ound)h -(to)f Fi(command)i Fs(in)e Fi(map)q Fs(.)1675 2506 y([F)l(unction]) --1801 b Fg(int)27 b(rl_bind_keyseq)d Ff(\()p Fi(const)15 -b(c)o(har)g(*k)o(eyseq,)f(rl)p 1018 2506 V 20 w(command)p -1230 2506 V 20 w(func)p 1334 2506 V 20 w(t)h(*function)p -Ff(\))195 2560 y Fs(Bind)22 b(the)f(k)o(ey)h(sequence)h(represen)o(ted) -f(b)o(y)f(the)h(string)e Fi(k)o(eyseq)j Fs(to)e(the)g(function)g -Fi(function)p Fs(,)195 2615 y(b)q(eginning)14 b(in)g(the)g(curren)o(t)g -(k)o(eymap.)20 b(This)13 b(mak)o(es)h(new)g(k)o(eymaps)g(as)g -(necessary)l(.)20 b(The)14 b(return)195 2670 y(v)m(alue)h(is)g -(non-zero)h(if)e Fi(k)o(eyseq)j Fs(is)d(in)o(v)m(alid.)p -eop end -%%Page: 32 36 -TeXDict begin 32 35 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(32)1675 149 y([F)l(unction])-1801 -b Fg(int)27 b(rl_bind_keyseq_in_map)f Ff(\()p Fi(const)14 -b(c)o(har)h(*k)o(eyseq,)g(rl)p 1202 149 14 2 v 19 w(command)p -1413 149 V 20 w(func)p 1517 149 V 21 w(t)283 204 y(*function,)f(Keymap) -h(map)p Ff(\))195 259 y Fs(Bind)e(the)f(k)o(ey)h(sequence)h(represen)o -(ted)f(b)o(y)f(the)h(string)e Fi(k)o(eyseq)j Fs(to)e(the)g(function)h -Fi(function)p Fs(.)18 b(This)195 314 y(mak)o(es)c(new)h(k)o(eymaps)f -(as)g(necessary)l(.)20 b(Initial)13 b(bindings)h(are)h(p)q(erformed)f -(in)h Fi(map)q Fs(.)k(The)c(return)195 369 y(v)m(alue)g(is)g(non-zero)h -(if)e Fi(k)o(eyseq)j Fs(is)d(in)o(v)m(alid.)1675 470 -y([F)l(unction])-1801 b Fg(int)27 b(rl_set_key)d Ff(\()p -Fi(const)14 b(c)o(har)h(*k)o(eyseq,)g(rl)p 914 470 V -19 w(command)p 1125 470 V 20 w(func)p 1229 470 V 21 w(t)g(*function,) -283 525 y(Keymap)g(map)p Ff(\))195 579 y Fs(Equiv)m(alen)o(t)g(to)f -Fr(rl_bind_keyseq_in_map)p Fs(.)1675 680 y([F)l(unction])-1801 -b Fg(int)27 b(rl_bind_keyseq_if_unbound)f Ff(\()p Fi(const)15 -b(c)o(har)g(*k)o(eyseq,)283 735 y(rl)p 317 735 V 19 w(command)p -528 735 V 20 w(func)p 632 735 V 21 w(t)f(*function)p -Ff(\))195 790 y Fs(Binds)k Fi(k)o(eyseq)h Fs(to)e Fi(function)g -Fs(if)h(it)f(is)g(not)g(already)g(b)q(ound)i(in)f(the)f(curren)o(tly)h -(activ)o(e)f(k)o(eymap.)195 845 y(Returns)f(non-zero)f(in)g(the)h(case) -f(of)f(an)i(in)o(v)m(alid)e Fi(k)o(eyseq)i Fs(or)f(if)g -Fi(k)o(eyseq)h Fs(is)f(already)f(b)q(ound.)1675 946 y([F)l(unction]) --1801 b Fg(int)27 b(rl_bind_keyseq_if_unbound_)q(in_map)f -Ff(\()p Fi(const)15 b(c)o(har)g(*k)o(eyseq,)283 1001 -y(rl)p 317 1001 V 19 w(command)p 528 1001 V 20 w(func)p -632 1001 V 21 w(t)f(*function,)h(Keymap)g(map)p Ff(\))195 -1055 y Fs(Binds)h Fi(k)o(eyseq)h Fs(to)e Fi(function)h -Fs(if)f(it)h(is)f(not)h(already)f(b)q(ound)i(in)e Fi(map)q -Fs(.)23 b(Returns)16 b(non-zero)g(in)g(the)195 1110 y(case)f(of)g(an)g -(in)o(v)m(alid)g Fi(k)o(eyseq)h Fs(or)f(if)f Fi(k)o(eyseq)i -Fs(is)f(already)g(b)q(ound.)1675 1211 y([F)l(unction])-1801 -b Fg(int)27 b(rl_generic_bind)e Ff(\()p Fi(in)o(t)14 -b(t)o(yp)q(e,)h(const)g(c)o(har)f(*k)o(eyseq,)h(c)o(har)g(*data,)f -(Keymap)283 1266 y(map)p Ff(\))195 1321 y Fs(Bind)g(the)f(k)o(ey)h -(sequence)h(represen)o(ted)e(b)o(y)h(the)g(string)e Fi(k)o(eyseq)j -Fs(to)d(the)i(arbitrary)e(p)q(oin)o(ter)h Fi(data)p Fs(.)195 -1376 y Fi(t)o(yp)q(e)k Fs(sa)o(ys)c(what)h(kind)g(of)g(data)g(is)f(p)q -(oin)o(ted)i(to)e(b)o(y)h Fi(data)p Fs(;)g(this)g(can)g(b)q(e)h(a)f -(function)g(\()p Fr(ISFUNC)p Fs(\),)e(a)195 1431 y(macro)i(\()p -Fr(ISMACR)p Fs(\),)f(or)h(a)h(k)o(eymap)f(\()p Fr(ISKMAP)p -Fs(\).)k(This)d(mak)o(es)f(new)h(k)o(eymaps)f(as)h(necessary)l(.)20 -b(The)195 1485 y(initial)13 b(k)o(eymap)i(in)g(whic)o(h)g(to)g(do)g -(bindings)g(is)g Fi(map)q Fs(.)1675 1586 y([F)l(unction])-1801 -b Fg(int)27 b(rl_parse_and_bind)e Ff(\()p Fi(c)o(har)14 -b(*line)p Ff(\))195 1641 y Fs(P)o(arse)g Fi(line)j Fs(as)d(if)g(it)g -(had)h(b)q(een)h(read)f(from)f(the)g Fr(inputrc)g Fs(\014le)h(and)g(p)q -(erform)f(an)o(y)h(k)o(ey)f(bindings)195 1696 y(and)h(v)m(ariable)g -(assignmen)o(ts)f(found)i(\(see)f(Section)g(1.3)f([Readline)h(Init)g -(File],)f(page)h(4\).)1675 1797 y([F)l(unction])-1801 -b Fg(int)27 b(rl_read_init_file)e Ff(\()p Fi(const)15 -b(c)o(har)f(*\014lename)p Ff(\))195 1852 y Fs(Read)i(k)o(eybindings)g -(and)g(v)m(ariable)f(assignmen)o(ts)g(from)g Fi(\014lename)j -Fs(\(see)e(Section)f(1.3)g([Readline)195 1907 y(Init)g(File],)f(page)h -(4\).)75 2011 y Fh(2.4.4)30 b(Asso)r(ciating)20 b(F)-5 -b(unction)20 b(Names)h(and)f(Bindings)75 2084 y Fs(These)15 -b(functions)g(allo)o(w)f(y)o(ou)g(to)h(\014nd)h(out)e(what)h(k)o(eys)g -(in)o(v)o(ok)o(e)f(named)h(functions)g(and)g(the)g(functions)75 -2139 y(in)o(v)o(ok)o(ed)e(b)o(y)h(a)f(particular)f(k)o(ey)i(sequence.) -21 b(Y)l(ou)14 b(ma)o(y)f(also)f(asso)q(ciate)h(a)h(new)g(function)f -(name)h(with)f(an)75 2194 y(arbitrary)h(function.)1675 -2295 y([F)l(unction])-1801 b Fg(rl_command_func_t)29 -b(*)d(rl_named_function)f Ff(\()p Fi(const)15 b(c)o(har)g(*name)p -Ff(\))195 2350 y Fs(Return)h(the)f(function)g(with)g(name)g -Fi(name)s Fs(.)1675 2451 y([F)l(unction])-1801 b Fg(rl_command_func_t) -29 b(*)d(rl_function_of_keyseq)g Ff(\()p Fi(const)15 -b(c)o(har)f(*k)o(eyseq,)283 2506 y(Keymap)h(map,)g(in)o(t)f(*t)o(yp)q -(e)p Ff(\))195 2560 y Fs(Return)j(the)f(function)g(in)o(v)o(ok)o(ed)f -(b)o(y)i Fi(k)o(eyseq)g Fs(in)f(k)o(eymap)g Fi(map)q -Fs(.)23 b(If)16 b Fi(map)i Fs(is)d Fr(NULL)p Fs(,)h(the)g(curren)o(t) -195 2615 y(k)o(eymap)i(is)g(used.)31 b(If)18 b Fi(t)o(yp)q(e)j -Fs(is)d(not)h Fr(NULL)p Fs(,)f(the)g(t)o(yp)q(e)h(of)f(the)h(ob)s(ject) -f(is)g(returned)h(in)f(the)g Fr(int)195 2670 y Fs(v)m(ariable)d(it)f(p) -q(oin)o(ts)h(to)f(\(one)h(of)g Fr(ISFUNC)p Fs(,)f Fr(ISKMAP)p -Fs(,)g(or)h Fr(ISMACR)p Fs(\).)p eop end -%%Page: 33 37 -TeXDict begin 33 36 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(33)1675 149 y([F)l(unction])-1801 -b Fg(char)27 b(**)f(rl_invoking_keyseqs)g Ff(\()p Fi(rl)p -856 149 14 2 v 19 w(command)p 1067 149 V 20 w(func)p -1171 149 V 20 w(t)15 b(*function)p Ff(\))195 204 y Fs(Return)h(an)g -(arra)o(y)e(of)h(strings)g(represen)o(ting)g(the)h(k)o(ey)f(sequences)i -(used)f(to)f(in)o(v)o(ok)o(e)g Fi(function)g Fs(in)195 -259 y(the)g(curren)o(t)g(k)o(eymap.)1675 346 y([F)l(unction])-1801 -b Fg(char)27 b(**)f(rl_invoking_keyseqs_in)q(_map)g Ff(\()p -Fi(rl)p 1039 346 V 19 w(command)p 1250 346 V 20 w(func)p -1354 346 V 21 w(t)283 401 y(*function,)14 b(Keymap)h(map)p -Ff(\))195 456 y Fs(Return)h(an)g(arra)o(y)e(of)h(strings)g(represen)o -(ting)g(the)h(k)o(ey)f(sequences)i(used)f(to)f(in)o(v)o(ok)o(e)g -Fi(function)g Fs(in)195 510 y(the)g(k)o(eymap)g Fi(map)q -Fs(.)1675 598 y([F)l(unction])-1801 b Fg(void)27 b(rl_function_dumper)e -Ff(\()p Fi(in)o(t)14 b(readable)p Ff(\))195 652 y Fs(Prin)o(t)g(the)g -(readline)h(function)f(names)h(and)f(the)h(k)o(ey)g(sequences)g(curren) -o(tly)f(b)q(ound)i(to)e(them)h(to)195 707 y Fr(rl_outstream)p -Fs(.)j(If)c Fi(readable)i Fs(is)d(non-zero,)h(the)g(list)e(is)i -(formatted)e(in)i(suc)o(h)g(a)f(w)o(a)o(y)g(that)g(it)g(can)195 -762 y(b)q(e)j(made)f(part)g(of)f(an)i Fr(inputrc)e Fs(\014le)h(and)g -(re-read.)1675 849 y([F)l(unction])-1801 b Fg(void)27 -b(rl_list_funmap_names)f Ff(\()p Fi(v)o(oid)p Ff(\))195 -904 y Fs(Prin)o(t)14 b(the)h(names)h(of)e(all)h(bindable)g(Readline)g -(functions)g(to)g Fr(rl_outstream)p Fs(.)1675 991 y([F)l(unction])-1801 -b Fg(const)27 b(char)g(**)f(rl_funmap_names)f Ff(\()p -Fi(v)o(oid)p Ff(\))195 1046 y Fs(Return)14 b(a)e(NULL)i(terminated)f -(arra)o(y)e(of)i(kno)o(wn)g(function)f(names.)20 b(The)13 -b(arra)o(y)f(is)g(sorted.)19 b(The)195 1101 y(arra)o(y)13 -b(itself)g(is)g(allo)q(cated,)g(but)h(not)g(the)g(strings)f(inside.)19 -b(Y)l(ou)14 b(should)g(free)g(the)g(arra)o(y)l(,)f(but)h(not)195 -1155 y(the)h(p)q(oin)o(ters,)g(using)f Fr(free)h Fs(or)g -Fr(rl_free)f Fs(when)i(y)o(ou)e(are)h(done.)1675 1242 -y([F)l(unction])-1801 b Fg(int)27 b(rl_add_funmap_entry)e -Ff(\()p Fi(const)15 b(c)o(har)g(*name,)f(rl)p 1126 1242 -V 20 w(command)p 1338 1242 V 20 w(func)p 1442 1242 V -20 w(t)283 1297 y(*function)p Ff(\))195 1352 y Fs(Add)j -Fi(name)i Fs(to)d(the)g(list)f(of)h(bindable)h(Readline)g(command)f -(names,)g(and)h(mak)o(e)f Fi(function)g Fs(the)195 1407 -y(function)f(to)g(b)q(e)g(called)g(when)h Fi(name)i Fs(is)c(in)o(v)o -(ok)o(ed.)75 1503 y Fh(2.4.5)30 b(Allo)n(wing)21 b(Undoing)75 -1576 y Fs(Supp)q(orting)d(the)g(undo)g(command)g(is)f(a)h(painless)f -(thing,)h(and)g(mak)o(es)f(y)o(our)h(functions)f(m)o(uc)o(h)h(more)75 -1631 y(useful.)i(It)15 b(is)g(certainly)f(easy)h(to)g(try)f(something)h -(if)f(y)o(ou)h(kno)o(w)g(y)o(ou)g(can)g(undo)h(it.)137 -1697 y(If)21 b(y)o(our)f(function)g(simply)g(inserts)g(text)f(once,)j -(or)e(deletes)g(text)g(once,)i(and)f(uses)f Fr(rl_insert_)75 -1752 y(text\(\))13 b Fs(or)h Fr(rl_delete_text\(\))d -Fs(to)j(do)f(it,)g(then)i(undoing)f(is)f(already)g(done)i(for)e(y)o(ou) -h(automatically)l(.)137 1817 y(If)d(y)o(ou)f(do)g(m)o(ultiple)f -(insertions)g(or)h(m)o(ultiple)f(deletions,)h(or)g(an)o(y)g(com)o -(bination)f(of)h(these)g(op)q(erations,)75 1872 y(y)o(ou)19 -b(should)g(group)f(them)h(together)g(in)o(to)f(one)h(op)q(eration.)30 -b(This)19 b(is)f(done)i(with)e Fr(rl_begin_undo_)75 1927 -y(group\(\))c Fs(and)i Fr(rl_end_undo_group\(\))p Fs(.)137 -1992 y(The)g(t)o(yp)q(es)f(of)g(ev)o(en)o(ts)g(that)f(can)h(b)q(e)h -(undone)g(are:)195 2047 y Fe(enum)i(undo_code)e({)j(UNDO_DELETE)o(,)d -(UNDO_INSERT)o(,)g(UNDO_BEGIN,)g(UNDO_END)g(};)137 2112 -y Fs(Notice)f(that)f Fr(UNDO_DELETE)g Fs(means)h(to)g(insert)f(some)h -(text,)f(and)i Fr(UNDO_INSERT)d Fs(means)i(to)g(delete)75 -2167 y(some)e(text.)19 b(That)14 b(is,)f(the)h(undo)g(co)q(de)g(tells)f -(what)g(to)h(undo,)g(not)f(ho)o(w)g(to)g(undo)i(it.)j -Fr(UNDO_BEGIN)13 b Fs(and)75 2222 y Fr(UNDO_END)h Fs(are)h(tags)f -(added)i(b)o(y)f Fr(rl_begin_undo_group\(\))d Fs(and)k -Fr(rl_end_undo_group\(\))p Fs(.)1675 2309 y([F)l(unction])-1801 -b Fg(int)27 b(rl_begin_undo_group)e Ff(\()p Fi(v)o(oid)p -Ff(\))195 2364 y Fs(Begins)15 b(sa)o(ving)g(undo)h(information)d(in)j -(a)f(group)g(construct.)20 b(The)c(undo)g(information)e(usually)195 -2419 y(comes)21 b(from)f(calls)g(to)g Fr(rl_insert_text\(\))e -Fs(and)j Fr(rl_delete_text\(\))p Fs(,)f(but)h(could)f(b)q(e)i(the)195 -2473 y(result)15 b(of)f(calls)h(to)f Fr(rl_add_undo\(\))p -Fs(.)1675 2560 y([F)l(unction])-1801 b Fg(int)27 b(rl_end_undo_group)e -Ff(\()p Fi(v)o(oid)p Ff(\))195 2615 y Fs(Closes)14 b(the)g(curren)o(t)h -(undo)g(group)f(started)g(with)f Fr(rl_begin_undo_group)g(\(\))p -Fs(.)19 b(There)c(should)195 2670 y(b)q(e)h(one)f(call)g(to)f -Fr(rl_end_undo_group\(\))f Fs(for)h(eac)o(h)h(call)g(to)f -Fr(rl_begin_undo_group\(\))p Fs(.)p eop end -%%Page: 34 38 -TeXDict begin 34 37 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(34)1675 149 y([F)l(unction])-1801 -b Fg(void)27 b(rl_add_undo)d Ff(\()p Fi(en)o(um)15 b(undo)p -757 149 14 2 v 21 w(co)q(de)h(what,)e(in)o(t)g(start,)g(in)o(t)g(end,)i -(c)o(har)f(*text)p Ff(\))195 204 y Fs(Remem)o(b)q(er)j(ho)o(w)e(to)h -(undo)g(an)g(ev)o(en)o(t)g(\(according)f(to)h Fi(what)q -Fs(\).)24 b(The)17 b(a\013ected)g(text)f(runs)i(from)195 -259 y Fi(start)d Fs(to)g Fi(end)r Fs(,)g(and)g(encompasses)h -Fi(text)q Fs(.)1675 354 y([F)l(unction])-1801 b Fg(void)27 -b(rl_free_undo_list)e Ff(\()p Fi(v)o(oid)p Ff(\))195 -409 y Fs(F)l(ree)15 b(the)h(existing)e(undo)h(list.)1675 -504 y([F)l(unction])-1801 b Fg(int)27 b(rl_do_undo)d -Ff(\()p Fi(v)o(oid)p Ff(\))195 559 y Fs(Undo)12 b(the)f(\014rst)g -(thing)g(on)h(the)f(undo)h(list.)17 b(Returns)12 b Fr(0)g -Fs(if)f(there)g(w)o(as)g(nothing)g(to)f(undo,)j(non-zero)195 -613 y(if)i(something)f(w)o(as)g(undone.)137 708 y(Finally)l(,)g(if)h(y) -o(ou)g(neither)h(insert)f(nor)g(delete)h(text,)f(but)g(directly)g(mo)q -(dify)g(the)h(existing)e(text)i(\(e.g.,)75 763 y(c)o(hange)j(its)g -(case\),)h(call)e Fr(rl_modifying\(\))g Fs(once,)i(just)f(b)q(efore)h -(y)o(ou)f(mo)q(dify)g(the)g(text.)32 b(Y)l(ou)20 b(m)o(ust)75 -818 y(supply)15 b(the)h(indices)f(of)g(the)g(text)g(range)g(that)f(y)o -(ou)h(are)g(going)f(to)h(mo)q(dify)l(.)1675 913 y([F)l(unction])-1801 -b Fg(int)27 b(rl_modifying)d Ff(\()p Fi(in)o(t)14 b(start,)g(in)o(t)g -(end)p Ff(\))195 968 y Fs(T)l(ell)20 b(Readline)g(to)f(sa)o(v)o(e)h -(the)g(text)g(b)q(et)o(w)o(een)g Fi(start)g Fs(and)g -Fi(end)j Fs(as)c(a)h(single)f(undo)i(unit.)34 b(It)20 -b(is)195 1023 y(assumed)15 b(that)g(y)o(ou)g(will)f(subsequen)o(tly)h -(mo)q(dify)g(that)f(text.)75 1124 y Fh(2.4.6)30 b(Redispla)n(y)1675 -1223 y Fs([F)l(unction])-1801 b Fg(void)27 b(rl_redisplay)d -Ff(\()p Fi(v)o(oid)p Ff(\))195 1278 y Fs(Change)19 b(what's)f(displa)o -(y)o(ed)g(on)h(the)g(screen)g(to)f(re\015ect)i(the)f(curren)o(t)f(con)o -(ten)o(ts)h(of)f Fr(rl_line_)195 1333 y(buffer)p Fs(.)1675 -1428 y([F)l(unction])-1801 b Fg(int)27 b(rl_forced_update_display)f -Ff(\()p Fi(v)o(oid)p Ff(\))195 1483 y Fs(F)l(orce)20 -b(the)g(line)f(to)g(b)q(e)i(up)q(dated)f(and)g(redispla)o(y)o(ed,)g -(whether)g(or)g(not)f(Readline)h(thinks)g(the)195 1538 -y(screen)c(displa)o(y)e(is)h(correct.)1675 1633 y([F)l(unction])-1801 -b Fg(int)27 b(rl_on_new_line)d Ff(\()p Fi(v)o(oid)p Ff(\))195 -1687 y Fs(T)l(ell)14 b(the)h(up)q(date)h(functions)f(that)f(w)o(e)g(ha) -o(v)o(e)h(mo)o(v)o(ed)f(on)o(to)g(a)h(new)g(\(empt)o(y\))f(line,)g -(usually)h(after)195 1742 y(ouputting)g(a)f(newline.)1675 -1837 y([F)l(unction])-1801 b Fg(int)27 b(rl_on_new_line_with_prompt)f -Ff(\()p Fi(v)o(oid)p Ff(\))195 1892 y Fs(T)l(ell)11 b(the)i(up)q(date)f -(functions)g(that)f(w)o(e)h(ha)o(v)o(e)g(mo)o(v)o(ed)f(on)o(to)g(a)h -(new)g(line,)g(with)g Fi(rl)p 1554 1892 V 19 w(prompt)h -Fs(already)195 1947 y(displa)o(y)o(ed.)19 b(This)14 b(could)g(b)q(e)h -(used)g(b)o(y)f(applications)f(that)h(w)o(an)o(t)f(to)h(output)g(the)g -(prompt)g(string)195 2001 y(themselv)o(es,)f(but)h(still)e(need)j -(Readline)f(to)f(kno)o(w)g(the)h(prompt)f(string)g(length)g(for)g -(redispla)o(y)l(.)19 b(It)195 2056 y(should)c(b)q(e)h(used)g(after)e -(setting)h Fi(rl)p 796 2056 V 19 w(already)p 961 2056 -V 19 w(prompted)r Fs(.)1675 2151 y([F)l(unction])-1801 -b Fg(int)27 b(rl_reset_line_state)e Ff(\()p Fi(v)o(oid)p -Ff(\))195 2206 y Fs(Reset)18 b(the)f(displa)o(y)g(state)f(to)h(a)g -(clean)g(state)g(and)g(redispla)o(y)g(the)g(curren)o(t)g(line)g -(starting)f(on)h(a)195 2261 y(new)e(line.)1675 2356 y([F)l(unction]) --1801 b Fg(int)27 b(rl_crlf)c Ff(\()p Fi(v)o(oid)p Ff(\))195 -2411 y Fs(Mo)o(v)o(e)14 b(the)h(cursor)g(to)g(the)g(start)f(of)h(the)g -(next)g(screen)h(line.)1675 2506 y([F)l(unction])-1801 -b Fg(int)27 b(rl_show_char)d Ff(\()p Fi(in)o(t)14 b(c)p -Ff(\))195 2560 y Fs(Displa)o(y)h(c)o(haracter)g Fi(c)20 -b Fs(on)c Fr(rl_outstream)p Fs(.)21 b(If)c(Readline)f(has)g(not)g(b)q -(een)i(set)e(to)f(displa)o(y)h(meta)195 2615 y(c)o(haracters)c -(directly)l(,)h(this)f(will)g(con)o(v)o(ert)g(meta)h(c)o(haracters)f -(to)g(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)195 2670 -y(This)i(is)f(in)o(tended)i(for)f(use)g(b)o(y)g(applications)f(whic)o -(h)h(wish)g(to)g(do)g(their)f(o)o(wn)h(redispla)o(y)l(.)p -eop end -%%Page: 35 39 -TeXDict begin 35 38 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(35)1675 149 y([F)l(unction])-1801 -b Fg(int)27 b(rl_message)d Ff(\()p Fi(const)14 b(c)o(har)h(*,)j(.)10 -b(.)h(.)5 b Ff(\))195 204 y Fs(The)11 b(argumen)o(ts)e(are)h(a)g -(format)f(string)g(as)h(w)o(ould)g(b)q(e)h(supplied)g(to)e -Fr(printf)p Fs(,)h(p)q(ossibly)g(con)o(taining)195 259 -y(con)o(v)o(ersion)21 b(sp)q(eci\014cations)h(suc)o(h)h(as)e(`)p -Fr(\045d)p Fs(',)i(and)f(an)o(y)g(additional)e(argumen)o(ts)h -(necessary)i(to)195 314 y(satisfy)c(the)i(con)o(v)o(ersion)f(sp)q -(eci\014cations.)36 b(The)21 b(resulting)f(string)f(is)i(displa)o(y)o -(ed)f(in)g(the)h Fi(ec)o(ho)195 369 y(area)p Fs(.)30 -b(The)19 b(ec)o(ho)g(area)f(is)g(also)g(used)h(to)f(displa)o(y)g(n)o -(umeric)h(argumen)o(ts)f(and)h(searc)o(h)f(strings.)195 -423 y(Y)l(ou)f(should)g(call)e Fr(rl_save_prompt)g Fs(to)h(sa)o(v)o(e)g -(the)h(prompt)f(information)f(b)q(efore)i(calling)f(this)195 -478 y(function.)1675 568 y([F)l(unction])-1801 b Fg(int)27 -b(rl_clear_message)e Ff(\()p Fi(v)o(oid)p Ff(\))195 623 -y Fs(Clear)14 b(the)g(message)g(in)h(the)f(ec)o(ho)h(area.)k(If)14 -b(the)h(prompt)f(w)o(as)g(sa)o(v)o(ed)g(with)f(a)i(call)e(to)h -Fr(rl_save_)195 677 y(prompt)19 b Fs(b)q(efore)h(the)g(last)e(call)h -(to)g Fr(rl_message)p Fs(,)g(call)g Fr(rl_restore_prompt)e -Fs(b)q(efore)j(calling)195 732 y(this)15 b(function.)1675 -822 y([F)l(unction])-1801 b Fg(void)27 b(rl_save_prompt)e -Ff(\()p Fi(v)o(oid)p Ff(\))195 877 y Fs(Sa)o(v)o(e)c(the)h(lo)q(cal)e -(Readline)i(prompt)f(displa)o(y)g(state)g(in)g(preparation)f(for)h -(displa)o(ying)g(a)g(new)195 931 y(message)15 b(in)g(the)g(message)g -(area)f(with)h Fr(rl_message\(\))p Fs(.)1675 1021 y([F)l(unction])-1801 -b Fg(void)27 b(rl_restore_prompt)e Ff(\()p Fi(v)o(oid)p -Ff(\))195 1076 y Fs(Restore)c(the)h(lo)q(cal)e(Readline)i(prompt)f -(displa)o(y)f(state)h(sa)o(v)o(ed)g(b)o(y)g(the)g(most)g(recen)o(t)g -(call)g(to)195 1131 y Fr(rl_save_prompt)p Fs(.)34 b(if)20 -b Fr(rl_save_prompt)f Fs(w)o(as)h(called)g(to)g(sa)o(v)o(e)g(the)g -(prompt)h(b)q(efore)g(a)f(call)195 1185 y(to)e Fr(rl_message)p -Fs(,)f(this)h(function)g(should)h(b)q(e)g(called)f(b)q(efore)g(the)h -(corresp)q(onding)f(call)g(to)f Fr(rl_)195 1240 y(clear_message)p -Fs(.)1675 1330 y([F)l(unction])-1801 b Fg(int)27 b(rl_expand_prompt)e -Ff(\()p Fi(c)o(har)14 b(*prompt)p Ff(\))195 1385 y Fs(Expand)22 -b(an)o(y)f(sp)q(ecial)g(c)o(haracter)g(sequences)h(in)f -Fi(prompt)h Fs(and)g(set)f(up)h(the)f(lo)q(cal)g(Readline)195 -1439 y(prompt)c(redispla)o(y)g(v)m(ariables.)28 b(This)17 -b(function)h(is)f(called)h(b)o(y)g Fr(readline\(\))p -Fs(.)26 b(It)18 b(ma)o(y)f(also)g(b)q(e)195 1494 y(called)10 -b(to)g(expand)h(the)g(primary)f(prompt)g(if)g(the)g Fr -(rl_on_new_line_with_prompt\(\))d Fs(function)195 1549 -y(or)12 b Fr(rl_already_prompted)e Fs(v)m(ariable)i(is)h(used.)19 -b(It)13 b(returns)g(the)f(n)o(um)o(b)q(er)i(of)e(visible)g(c)o -(haracters)195 1604 y(on)17 b(the)g(last)f(line)g(of)h(the)g(\(p)q -(ossibly)f(m)o(ulti-line\))f(prompt.)24 b(Applications)16 -b(ma)o(y)g(indicate)h(that)195 1659 y(the)d(prompt)f(con)o(tains)h(c)o -(haracters)f(that)g(tak)o(e)g(up)h(no)g(ph)o(ysical)g(screen)g(space)g -(when)h(displa)o(y)o(ed)195 1713 y(b)o(y)20 b(brac)o(k)o(eting)g(a)g -(sequence)i(of)e(suc)o(h)g(c)o(haracters)g(with)g(the)h(sp)q(ecial)f -(mark)o(ers)f Fr(RL_PROMPT_)195 1768 y(START_IGNORE)14 -b Fs(and)h Fr(RL_PROMPT_END_IGNORE)e Fs(\(declared)i(in)g(`)p -Fr(readline.h)p Fs('.)k(This)c(ma)o(y)f(b)q(e)195 1823 -y(used)i(to)e(em)o(b)q(ed)i(terminal-sp)q(eci\014c)f(escap)q(e)h -(sequences)h(in)e(prompts.)1675 1913 y([F)l(unction])-1801 -b Fg(int)27 b(rl_set_prompt)d Ff(\()p Fi(const)15 b(c)o(har)g(*prompt)p -Ff(\))195 1967 y Fs(Mak)o(e)e(Readline)h(use)f Fi(prompt)h -Fs(for)f(subsequen)o(t)h(redispla)o(y)l(.)19 b(This)13 -b(calls)f Fr(rl_expand_prompt\(\))195 2022 y Fs(to)j(expand)g(the)h -(prompt)e(and)i(sets)f Fr(rl_prompt)f Fs(to)g(the)h(result.)75 -2120 y Fh(2.4.7)30 b(Mo)r(difying)20 b(T)-5 b(ext)1675 -2217 y Fs([F)l(unction])-1801 b Fg(int)27 b(rl_insert_text)d -Ff(\()p Fi(const)15 b(c)o(har)g(*text)p Ff(\))195 2272 -y Fs(Insert)h Fi(text)g Fs(in)o(to)f(the)h(line)f(at)h(the)g(curren)o -(t)f(cursor)h(p)q(osition.)k(Returns)d(the)f(n)o(um)o(b)q(er)g(of)f(c)o -(har-)195 2326 y(acters)g(inserted.)1675 2416 y([F)l(unction])-1801 -b Fg(int)27 b(rl_delete_text)d Ff(\()p Fi(in)o(t)15 b(start,)e(in)o(t)i -(end)p Ff(\))195 2471 y Fs(Delete)j(the)h(text)g(b)q(et)o(w)o(een)g -Fi(start)g Fs(and)g Fi(end)i Fs(in)e(the)g(curren)o(t)f(line.)31 -b(Returns)19 b(the)g(n)o(um)o(b)q(er)g(of)195 2526 y(c)o(haracters)14 -b(deleted.)1675 2615 y([F)l(unction])-1801 b Fg(char)27 -b(*)f(rl_copy_text)f Ff(\()p Fi(in)o(t)14 b(start,)f(in)o(t)i(end)p -Ff(\))195 2670 y Fs(Return)h(a)f(cop)o(y)g(of)g(the)g(text)f(b)q(et)o -(w)o(een)i Fi(start)f Fs(and)g Fi(end)j Fs(in)d(the)g(curren)o(t)g -(line.)p eop end -%%Page: 36 40 -TeXDict begin 36 39 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(36)1675 149 y([F)l(unction])-1801 -b Fg(int)27 b(rl_kill_text)d Ff(\()p Fi(in)o(t)14 b(start,)g(in)o(t)g -(end)p Ff(\))195 204 y Fs(Cop)o(y)j(the)g(text)f(b)q(et)o(w)o(een)i -Fi(start)f Fs(and)g Fi(end)i Fs(in)e(the)g(curren)o(t)g(line)g(to)g -(the)g(kill)f(ring,)g(app)q(ending)195 259 y(or)g(prep)q(ending)j(to)d -(the)h(last)f(kill)g(if)g(the)h(last)f(command)h(w)o(as)f(a)h(kill)f -(command.)25 b(The)17 b(text)f(is)195 314 y(deleted.)25 -b(If)17 b Fi(start)f Fs(is)g(less)h(than)f Fi(end)r Fs(,)h(the)g(text)f -(is)g(app)q(ended,)j(otherwise)d(prep)q(ended.)26 b(If)17 -b(the)195 369 y(last)d(command)h(w)o(as)g(not)f(a)h(kill,)f(a)h(new)g -(kill)f(ring)h(slot)f(is)h(used.)1675 465 y([F)l(unction])-1801 -b Fg(int)27 b(rl_push_macro_input)e Ff(\()p Fi(c)o(har)15 -b(*macro)p Ff(\))195 520 y Fs(Cause)f Fi(macro)i Fs(to)d(b)q(e)i -(inserted)f(in)o(to)f(the)h(line,)g(as)g(if)f(it)h(had)g(b)q(een)h(in)o -(v)o(ok)o(ed)f(b)o(y)g(a)g(k)o(ey)g(b)q(ound)h(to)195 -575 y(a)g(macro.)k(Not)c(esp)q(ecially)f(useful;)h(use)h -Fr(rl_insert_text\(\))d Fs(instead.)75 677 y Fh(2.4.8)30 -b(Character)21 b(Input)1675 778 y Fs([F)l(unction])-1801 -b Fg(int)27 b(rl_read_key)d Ff(\()p Fi(v)o(oid)p Ff(\))195 -833 y Fs(Return)15 b(the)g(next)g(c)o(haracter)f(a)o(v)m(ailable)f -(from)h(Readline's)h(curren)o(t)g(input)f(stream.)19 -b(This)c(han-)195 887 y(dles)e(input)g(inserted)h(in)o(to)e(the)h -(input)g(stream)g(via)f Fi(rl)p 1113 887 14 2 v 20 w(p)q(ending)p -1290 887 V 21 w(input)i Fs(\(see)f(Section)g(2.3)g([Read-)195 -942 y(line)19 b(V)l(ariables],)g(page)h(25\))f(and)h -Fr(rl_stuff_char\(\))p Fs(,)e(macros,)h(and)h(c)o(haracters)f(read)h -(from)195 997 y(the)d(k)o(eyb)q(oard.)25 b(While)17 b(w)o(aiting)e(for) -h(input,)i(this)e(function)h(will)f(call)g(an)o(y)g(function)h -(assigned)195 1052 y(to)e(the)g Fr(rl_event_hook)e Fs(v)m(ariable.)1675 -1149 y([F)l(unction])-1801 b Fg(int)27 b(rl_getc)c Ff(\()p -Fi(FILE)16 b(*stream)p Ff(\))195 1203 y Fs(Return)11 -b(the)g(next)g(c)o(haracter)f(a)o(v)m(ailable)f(from)h -Fi(stream)p Fs(,)g(whic)o(h)h(is)f(assumed)g(to)g(b)q(e)i(the)e(k)o -(eyb)q(oard.)1675 1300 y([F)l(unction])-1801 b Fg(int)27 -b(rl_stuff_char)d Ff(\()p Fi(in)o(t)14 b(c)p Ff(\))195 -1355 y Fs(Insert)j Fi(c)i Fs(in)o(to)c(the)i(Readline)g(input)f -(stream.)23 b(It)16 b(will)f(b)q(e)i Fr(")p Fs(read)p -Fr(")g Fs(b)q(efore)f(Readline)h(attempts)195 1410 y(to)c(read)g(c)o -(haracters)g(from)f(the)i(terminal)e(with)h Fr(rl_read_key\(\))p -Fs(.)k(Up)d(to)f(512)f(c)o(haracters)h(ma)o(y)195 1465 -y(b)q(e)j(pushed)g(bac)o(k.)k Fr(rl_stuff_char)14 b Fs(returns)h(1)g -(if)g(the)g(c)o(haracter)g(w)o(as)f(successfully)h(inserted;)195 -1519 y(0)g(otherwise.)1675 1616 y([F)l(unction])-1801 -b Fg(int)27 b(rl_execute_next)e Ff(\()p Fi(in)o(t)14 -b(c)p Ff(\))195 1671 y Fs(Mak)o(e)j Fi(c)k Fs(b)q(e)d(the)g(next)g -(command)g(to)f(b)q(e)i(executed)f(when)h Fr(rl_read_key\(\))d -Fs(is)h(called.)27 b(This)195 1726 y(sets)15 b Fi(rl)p -318 1726 V 19 w(p)q(ending)p 494 1726 V 21 w(input)q -Fs(.)1675 1823 y([F)l(unction])-1801 b Fg(int)27 b -(rl_clear_pending_input)f Ff(\()p Fi(v)o(oid)p Ff(\))195 -1877 y Fs(Unset)21 b Fi(rl)p 365 1877 V 19 w(p)q(ending)p -541 1877 V 21 w(input)q Fs(,)h(e\013ectiv)o(ely)e(negating)g(the)g -(e\013ect)h(of)f(an)o(y)h(previous)f(call)g(to)g Fr(rl_)195 -1932 y(execute_next\(\))p Fs(.)29 b(This)18 b(w)o(orks)g(only)g(if)h -(the)f(p)q(ending)i(input)f(has)g(not)f(already)g(b)q(een)i(read)195 -1987 y(with)15 b Fr(rl_read_key\(\))p Fs(.)1675 2084 -y([F)l(unction])-1801 b Fg(int)27 b(rl_set_keyboard_input_time)q(out)f -Ff(\()p Fi(in)o(t)14 b(u)p Ff(\))195 2139 y Fs(While)19 -b(w)o(aiting)g(for)g(k)o(eyb)q(oard)h(input)g(in)g Fr(rl_read_key\(\))p -Fs(,)f(Readline)h(will)f(w)o(ait)g(for)g Fi(u)h Fs(mi-)195 -2193 y(croseconds)c(for)e(input)i(b)q(efore)g(calling)e(an)o(y)h -(function)g(assigned)g(to)g Fr(rl_event_hook)p Fs(.)k -Fi(u)d Fs(m)o(ust)195 2248 y(b)q(e)h(greater)e(than)g(or)h(equal)g(to)f -(zero)h(\(a)f(zero-length)h(timeout)f(is)g(equiv)m(alen)o(t)h(to)f(a)h -(p)q(oll\).)21 b(The)195 2303 y(default)15 b(w)o(aiting)e(p)q(erio)q(d) -j(is)e(one-ten)o(th)i(of)e(a)h(second.)21 b(Returns)15 -b(the)h(old)e(timeout)h(v)m(alue.)75 2405 y Fh(2.4.9)30 -b(T)-5 b(erminal)20 b(Managemen)n(t)1675 2506 y Fs([F)l(unction])-1801 -b Fg(void)27 b(rl_prep_terminal)e Ff(\()p Fi(in)o(t)14 -b(meta)p 836 2506 V 20 w(\015ag)p Ff(\))195 2560 y Fs(Mo)q(dify)21 -b(the)g(terminal)f(settings)g(for)h(Readline's)g(use,)i(so)d -Fr(readline\(\))g Fs(can)i(read)f(a)g(single)195 2615 -y(c)o(haracter)15 b(at)g(a)g(time)f(from)h(the)h(k)o(eyb)q(oard.)k(The) -c Fi(meta)p 1189 2615 V 19 w(\015ag)j Fs(argumen)o(t)c(should)h(b)q(e)g -(non-zero)195 2670 y(if)f(Readline)g(should)g(read)g(eigh)o(t-bit)g -(input.)p eop end -%%Page: 37 41 -TeXDict begin 37 40 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(37)1675 149 y([F)l(unction])-1801 -b Fg(void)27 b(rl_deprep_terminal)e Ff(\()p Fi(v)o(oid)p -Ff(\))195 204 y Fs(Undo)16 b(the)g(e\013ects)f(of)h Fr -(rl_prep_terminal\(\))p Fs(,)d(lea)o(ving)i(the)g(terminal)g(in)h(the)f -(state)g(in)h(whic)o(h)195 259 y(it)e(w)o(as)h(b)q(efore)g(the)h(most)e -(recen)o(t)h(call)g(to)f Fr(rl_prep_terminal\(\))p Fs(.)1675 -349 y([F)l(unction])-1801 b Fg(void)27 b(rl_tty_set_default_bindin)q -(gs)f Ff(\()p Fi(Keymap)15 b(kmap)p Ff(\))195 404 y Fs(Read)k(the)g(op) -q(erating)e(system's)h(terminal)f(editing)h(c)o(haracters)g(\(as)f(w)o -(ould)h(b)q(e)h(displa)o(y)o(ed)f(b)o(y)195 459 y Fr(stty)p -Fs(\))c(to)h(their)g(Readline)g(equiv)m(alen)o(ts.)20 -b(The)15 b(bindings)g(are)g(p)q(erformed)g(in)g Fi(kmap)q -Fs(.)1675 549 y([F)l(unction])-1801 b Fg(void)27 b -(rl_tty_unset_default_bind)q(ings)f Ff(\()p Fi(Keymap)15 -b(kmap)p Ff(\))195 604 y Fs(Reset)h(the)g(bindings)g(manipulated)f(b)o -(y)h Fr(rl_tty_set_default_bindings)c Fs(so)k(that)f(the)h(ter-)195 -658 y(minal)j(editing)g(c)o(haracters)g(are)h(b)q(ound)g(to)f -Fr(rl_insert)p Fs(.)33 b(The)20 b(bindings)g(are)f(p)q(erformed)h(in) -195 713 y Fi(kmap)q Fs(.)1675 803 y([F)l(unction])-1801 -b Fg(int)27 b(rl_reset_terminal)e Ff(\()p Fi(const)15 -b(c)o(har)f(*terminal)p 1077 803 14 2 v 19 w(name)p Ff(\))195 -858 y Fs(Reinitialize)d(Readline's)g(idea)h(of)g(the)g(terminal)e -(settings)h(using)h Fi(terminal)p 1490 858 V 19 w(name)i -Fs(as)e(the)g(termi-)195 913 y(nal)j(t)o(yp)q(e)h(\(e.g.,)f -Fr(vt100)p Fs(\).)21 b(If)16 b Fi(terminal)p 878 913 -V 19 w(name)i Fs(is)e Fr(NULL)p Fs(,)f(the)h(v)m(alue)g(of)f(the)h -Fr(TERM)g Fs(en)o(vironmen)o(t)195 968 y(v)m(ariable)f(is)f(used.)75 -1066 y Fh(2.4.10)29 b(Utilit)n(y)22 b(F)-5 b(unctions)1675 -1163 y Fs([F)l(unction])-1801 b Fg(int)27 b(rl_save_state)d -Ff(\()p Fi(struct)15 b(readline)p 852 1163 V 19 w(state)g(*sp)p -Ff(\))195 1218 y Fs(Sa)o(v)o(e)f(a)g(snapshot)g(of)g(Readline's)g(in)o -(ternal)f(state)h(to)f Fi(sp)q Fs(.)21 b(The)14 b(con)o(ten)o(ts)g(of)g -(the)g Fi(readline)p 1762 1218 V 20 w(state)195 1272 -y Fs(structure)19 b(are)g(do)q(cumen)o(ted)h(in)f(`)p -Fr(readline.h)p Fs('.)29 b(The)19 b(caller)g(is)f(resp)q(onsible)h(for) -g(allo)q(cating)195 1327 y(the)c(structure.)1675 1417 -y([F)l(unction])-1801 b Fg(int)27 b(rl_restore_state)e -Ff(\()p Fi(struct)14 b(readline)p 930 1417 V 20 w(state)g(*sp)p -Ff(\))195 1472 y Fs(Restore)d(Readline's)g(in)o(ternal)f(state)g(to)g -(that)g(stored)h(in)g Fi(sp)q Fs(,)h(whic)o(h)f(m)o(ust)f(ha)o(v)o(e)h -(b)q(een)h(sa)o(v)o(ed)e(b)o(y)h(a)195 1527 y(call)j(to)g -Fr(rl_save_state)p Fs(.)j(The)e(con)o(ten)o(ts)f(of)g(the)h -Fi(readline)p 1236 1527 V 19 w(state)i Fs(structure)d(are)g(do)q(cumen) -o(ted)195 1582 y(in)h(`)p Fr(readline.h)p Fs('.)j(The)d(caller)g(is)f -(resp)q(onsible)h(for)g(freeing)g(the)g(structure.)1675 -1672 y([F)l(unction])-1801 b Fg(void)27 b(rl_free)d Ff(\()p -Fi(v)o(oid)14 b(*mem)p Ff(\))195 1727 y Fs(Deallo)q(cate)9 -b(the)i(memory)f(p)q(oin)o(ted)h(to)f(b)o(y)g Fi(mem)p -Fs(.)18 b Fi(mem)11 b Fs(m)o(ust)f(ha)o(v)o(e)g(b)q(een)i(allo)q(cated) -e(b)o(y)g Fr(malloc)p Fs(.)1675 1817 y([F)l(unction])-1801 -b Fg(void)27 b(rl_replace_line)e Ff(\()p Fi(const)14 -b(c)o(har)h(*text,)f(in)o(t)h(clear)p 1154 1817 V 19 -w(undo)p Ff(\))195 1871 y Fs(Replace)20 b(the)g(con)o(ten)o(ts)f(of)g -Fr(rl_line_buffer)f Fs(with)h Fi(text)q Fs(.)32 b(The)20 -b(p)q(oin)o(t)f(and)h(mark)f(are)h(pre-)195 1926 y(serv)o(ed,)13 -b(if)f(p)q(ossible.)19 b(If)13 b Fi(clear)p 712 1926 -V 20 w(undo)i Fs(is)d(non-zero,)i(the)e(undo)i(list)d(asso)q(ciated)h -(with)g(the)h(curren)o(t)195 1981 y(line)i(is)g(cleared.)1675 -2071 y([F)l(unction])-1801 b Fg(void)27 b(rl_extend_line_buffer)f -Ff(\()p Fi(in)o(t)14 b(len)p Ff(\))195 2126 y Fs(Ensure)h(that)g -Fr(rl_line_buffer)e Fs(has)i(enough)g(space)h(to)e(hold)h -Fi(len)g Fs(c)o(haracters,)f(p)q(ossibly)g(real-)195 -2181 y(lo)q(cating)g(it)g(if)h(necessary)l(.)1675 2271 -y([F)l(unction])-1801 b Fg(int)27 b(rl_initialize)d Ff(\()p -Fi(v)o(oid)p Ff(\))195 2325 y Fs(Initialize)17 b(or)h(re-initialize)f -(Readline's)h(in)o(ternal)g(state.)28 b(It's)18 b(not)g(strictly)f -(necessary)i(to)f(call)195 2380 y(this;)c Fr(readline\(\))g -Fs(calls)g(it)h(b)q(efore)g(reading)g(an)o(y)g(input.)1675 -2470 y([F)l(unction])-1801 b Fg(int)27 b(rl_ding)c Ff(\()p -Fi(v)o(oid)p Ff(\))195 2525 y Fs(Ring)15 b(the)g(terminal)f(b)q(ell,)h -(ob)q(eying)g(the)h(setting)e(of)h Fr(bell-style)p Fs(.)1675 -2615 y([F)l(unction])-1801 b Fg(int)27 b(rl_alphabetic)d -Ff(\()p Fi(in)o(t)14 b(c)p Ff(\))195 2670 y Fs(Return)i(1)f(if)f -Fi(c)k Fs(is)d(an)g(alphab)q(etic)g(c)o(haracter.)p eop -end -%%Page: 38 42 -TeXDict begin 38 41 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(38)1675 149 y([F)l(unction])-1801 -b Fg(void)27 b(rl_display_match_list)f Ff(\()p Fi(c)o(har)14 -b(**matc)o(hes,)g(in)o(t)h(len,)f(in)o(t)h(max)p Ff(\))195 -204 y Fs(A)i(con)o(v)o(enience)h(function)f(for)g(displa)o(ying)f(a)h -(list)f(of)g(strings)g(in)i(columnar)e(format)g(on)h(Read-)195 -259 y(line's)f(output)h(stream.)23 b Fr(matches)16 b -Fs(is)g(the)h(list)f(of)g(strings,)g(in)g(argv)g(format,)g(suc)o(h)h -(as)f(a)h(list)e(of)195 314 y(completion)c(matc)o(hes.)19 -b Fr(len)11 b Fs(is)h(the)g(n)o(um)o(b)q(er)h(of)e(strings)g(in)h -Fr(matches)p Fs(,)g(and)g Fr(max)g Fs(is)f(the)i(length)e(of)195 -369 y(the)i(longest)f(string)g(in)h Fr(matches)p Fs(.)19 -b(This)12 b(function)h(uses)g(the)h(setting)e(of)g Fr -(print-completions-)195 423 y(horizontally)k Fs(to)i(select)g(ho)o(w)f -(the)i(matc)o(hes)e(are)h(displa)o(y)o(ed)f(\(see)i(Section)f(1.3.1)e -([Readline)195 478 y(Init)f(File)f(Syn)o(tax],)g(page)h(4\).)k(When)d -(displa)o(ying)e(completions,)f(this)i(function)g(sets)g(the)g(n)o(um-) -195 533 y(b)q(er)d(of)g(columns)f(used)i(for)e(displa)o(y)g(to)g(the)h -(v)m(alue)g(of)f Fr(completion-display-width)p Fs(,)e(the)j(v)m(alue) -195 588 y(of)j(the)g(en)o(vironmen)o(t)g(v)m(ariable)f -Fr(COLUMNS)p Fs(,)g(or)h(the)g(screen)h(width,)e(in)h(that)g(order.)137 -687 y(The)i(follo)o(wing)c(are)j(implemen)o(ted)g(as)g(macros,)f -(de\014ned)i(in)f Fr(chardefs.h)p Fs(.)21 b(Applications)15 -b(should)75 742 y(refrain)f(from)h(using)g(them.)1675 -841 y([F)l(unction])-1801 b Fg(int)27 b(_rl_uppercase_p)e -Ff(\()p Fi(in)o(t)14 b(c)p Ff(\))195 895 y Fs(Return)i(1)f(if)f -Fi(c)k Fs(is)d(an)g(upp)q(ercase)i(alphab)q(etic)d(c)o(haracter.)1675 -994 y([F)l(unction])-1801 b Fg(int)27 b(_rl_lowercase_p)e -Ff(\()p Fi(in)o(t)14 b(c)p Ff(\))195 1049 y Fs(Return)i(1)f(if)f -Fi(c)k Fs(is)d(a)g(lo)o(w)o(ercase)f(alphab)q(etic)h(c)o(haracter.)1675 -1148 y([F)l(unction])-1801 b Fg(int)27 b(_rl_digit_p)d -Ff(\()p Fi(in)o(t)14 b(c)p Ff(\))195 1203 y Fs(Return)i(1)f(if)f -Fi(c)k Fs(is)d(a)g(n)o(umeric)g(c)o(haracter.)1675 1302 -y([F)l(unction])-1801 b Fg(int)27 b(_rl_to_upper)d Ff(\()p -Fi(in)o(t)14 b(c)p Ff(\))195 1357 y Fs(If)e Fi(c)j Fs(is)c(a)h(lo)o(w)o -(ercase)e(alphab)q(etic)i(c)o(haracter,)f(return)h(the)g(corresp)q -(onding)g(upp)q(ercase)h(c)o(haracter.)1675 1456 y([F)l(unction])-1801 -b Fg(int)27 b(_rl_to_lower)d Ff(\()p Fi(in)o(t)14 b(c)p -Ff(\))195 1511 y Fs(If)h Fi(c)i Fs(is)d(an)g(upp)q(ercase)i(alphab)q -(etic)e(c)o(haracter,)g(return)g(the)h(corresp)q(onding)f(lo)o(w)o -(ercase)f(c)o(harac-)195 1565 y(ter.)1675 1664 y([F)l(unction])-1801 -b Fg(int)27 b(_rl_digit_value)e Ff(\()p Fi(in)o(t)14 -b(c)p Ff(\))195 1719 y Fs(If)h Fi(c)k Fs(is)14 b(a)h(n)o(um)o(b)q(er,)g -(return)g(the)h(v)m(alue)f(it)g(represen)o(ts.)75 1822 -y Fh(2.4.11)29 b(Miscellaneous)22 b(F)-5 b(unctions)1675 -1924 y Fs([F)l(unction])-1801 b Fg(int)27 b(rl_macro_bind)d -Ff(\()p Fi(const)15 b(c)o(har)g(*k)o(eyseq,)f(const)h(c)o(har)g -(*macro,)f(Keymap)283 1979 y(map)p Ff(\))195 2034 y Fs(Bind)e(the)f(k)o -(ey)h(sequence)g Fi(k)o(eyseq)h Fs(to)e(in)o(v)o(ok)o(e)f(the)h(macro)g -Fi(macro)r Fs(.)18 b(The)12 b(binding)f(is)g(p)q(erformed)h(in)195 -2088 y Fi(map)q Fs(.)20 b(When)14 b Fi(k)o(eyseq)g Fs(is)f(in)o(v)o(ok) -o(ed,)g(the)h Fi(macro)h Fs(will)e(b)q(e)h(inserted)f(in)o(to)g(the)h -(line.)19 b(This)13 b(function)195 2143 y(is)i(deprecated;)g(use)h -Fr(rl_generic_bind\(\))d Fs(instead.)1675 2242 y([F)l(unction])-1801 -b Fg(void)27 b(rl_macro_dumper)e Ff(\()p Fi(in)o(t)14 -b(readable)p Ff(\))195 2297 y Fs(Prin)o(t)f(the)g(k)o(ey)h(sequences)g -(b)q(ound)h(to)e(macros)g(and)g(their)g(v)m(alues,)h(using)f(the)h -(curren)o(t)g(k)o(eymap,)195 2352 y(to)h Fr(rl_outstream)p -Fs(.)k(If)d Fi(readable)i Fs(is)d(non-zero,)h(the)g(list)e(is)h -(formatted)g(in)g(suc)o(h)h(a)f(w)o(a)o(y)g(that)g(it)195 -2407 y(can)g(b)q(e)h(made)f(part)g(of)g(an)g Fr(inputrc)f -Fs(\014le)h(and)h(re-read.)1675 2506 y([F)l(unction])-1801 -b Fg(int)27 b(rl_variable_bind)e Ff(\()p Fi(const)14 -b(c)o(har)h(*v)m(ariable,)f(const)h(c)o(har)g(*v)m(alue)p -Ff(\))195 2560 y Fs(Mak)o(e)f(the)g(Readline)h(v)m(ariable)e -Fi(v)m(ariable)j Fs(ha)o(v)o(e)e Fi(v)m(alue)s Fs(.)20 -b(This)14 b(b)q(eha)o(v)o(es)g(as)g(if)g(the)g(readline)g(com-)195 -2615 y(mand)g(`)p Fr(set)h Fk(variable)k(value)5 b Fs(')14 -b(had)g(b)q(een)i(executed)f(in)g(an)f Fr(inputrc)f Fs(\014le)i(\(see)f -(Section)h(1.3.1)195 2670 y([Readline)g(Init)g(File)g(Syn)o(tax],)f -(page)h(4\).)p eop end -%%Page: 39 43 -TeXDict begin 39 42 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(39)1675 149 y([F)l(unction])-1801 -b Fg(char)27 b(*)f(rl_variable_value)f Ff(\()p Fi(const)15 -b(c)o(har)g(*v)m(ariable)p Ff(\))195 204 y Fs(Return)g(a)f(string)f -(represen)o(ting)i(the)f(v)m(alue)h(of)f(the)g(Readline)h(v)m(ariable)f -Fi(v)m(ariable)s Fs(.)k(F)l(or)c(b)q(o)q(olean)195 259 -y(v)m(ariables,)g(this)h(string)f(is)h(either)g(`)p Fr(on)p -Fs(')f(or)g(`)p Fr(off)p Fs('.)1675 356 y([F)l(unction])-1801 -b Fg(void)27 b(rl_variable_dumper)e Ff(\()p Fi(in)o(t)14 -b(readable)p Ff(\))195 411 y Fs(Prin)o(t)f(the)i(readline)f(v)m -(ariable)f(names)i(and)f(their)g(curren)o(t)g(v)m(alues)h(to)e -Fr(rl_outstream)p Fs(.)18 b(If)d Fi(read-)195 466 y(able)k -Fs(is)e(non-zero,)g(the)g(list)f(is)h(formatted)f(in)g(suc)o(h)i(a)e(w) -o(a)o(y)g(that)h(it)f(can)h(b)q(e)h(made)f(part)f(of)h(an)195 -521 y Fr(inputrc)d Fs(\014le)h(and)h(re-read.)1675 618 -y([F)l(unction])-1801 b Fg(int)27 b(rl_set_paren_blink_timeout)f -Ff(\()p Fi(in)o(t)14 b(u)p Ff(\))195 672 y Fs(Set)f(the)f(time)g(in)o -(terv)m(al)g(\(in)g(microseconds\))g(that)g(Readline)h(w)o(aits)e(when) -i(sho)o(wing)e(a)i(balancing)195 727 y(c)o(haracter)h(when)i -Fr(blink-matching-paren)d Fs(has)i(b)q(een)h(enabled.)1675 -824 y([F)l(unction])-1801 b Fg(char)27 b(*)f(rl_get_termcap)f -Ff(\()p Fi(const)15 b(c)o(har)f(*cap)p Ff(\))195 879 -y Fs(Retriev)o(e)f(the)h(string)e(v)m(alue)i(of)f(the)g(termcap)g -(capabilit)o(y)f Fi(cap)q Fs(.)20 b(Readline)13 b(fetc)o(hes)h(the)f -(termcap)195 934 y(en)o(try)j(for)h(the)f(curren)o(t)h(terminal)f(name) -g(and)h(uses)g(those)g(capabilities)e(to)h(mo)o(v)o(e)g(around)h(the) -195 989 y(screen)11 b(line)f(and)h(p)q(erform)f(other)g(terminal-sp)q -(eci\014c)h(op)q(erations,)f(lik)o(e)g(erasing)f(a)i(line.)18 -b(Readline)195 1044 y(do)q(es)g(not)f(use)h(all)e(of)h(a)g(terminal's)f -(capabilities,)g(and)i(this)f(function)g(will)f(return)i(v)m(alues)g -(for)195 1098 y(only)d(those)g(capabilities)e(Readline)j(uses.)75 -1200 y Fh(2.4.12)29 b(Alternate)21 b(In)n(terface)75 -1274 y Fs(An)11 b(alternate)f(in)o(terface)g(is)g(a)o(v)m(ailable)g(to) -g(plain)g Fr(readline\(\))p Fs(.)17 b(Some)11 b(applications)f(need)h -(to)f(in)o(terlea)o(v)o(e)75 1329 y(k)o(eyb)q(oard)18 -b(I/O)g(with)f(\014le,)h(device,)h(or)e(windo)o(w)g(system)g(I/O,)h(t)o -(ypically)e(b)o(y)i(using)g(a)f(main)g(lo)q(op)h(to)75 -1383 y Fr(select\(\))12 b Fs(on)h(v)m(arious)f(\014le)h(descriptors.)18 -b(T)l(o)13 b(accomo)q(date)f(this)h(need,)h(readline)e(can)h(also)f(b)q -(e)i(in)o(v)o(ok)o(ed)75 1438 y(as)f(a)g(`callbac)o(k')f(function)h -(from)g(an)g(ev)o(en)o(t)g(lo)q(op.)19 b(There)14 b(are)f(functions)g -(a)o(v)m(ailable)f(to)h(mak)o(e)f(this)h(easy)l(.)1675 -1535 y([F)l(unction])-1801 b Fg(void)27 b(rl_callback_handler_insta)q -(ll)f Ff(\()p Fi(const)14 b(c)o(har)h(*prompt,)283 1590 -y(rl)p 317 1590 14 2 v 19 w(v)o(cpfunc)p 488 1590 V 21 -w(t)g(*lhandler)p Ff(\))195 1645 y Fs(Set)d(up)h(the)g(terminal)e(for)g -(readline)h(I/O)h(and)g(displa)o(y)e(the)h(initial)f(expanded)i(v)m -(alue)g(of)f Fi(prompt)q Fs(.)195 1700 y(Sa)o(v)o(e)j(the)h(v)m(alue)g -(of)g Fi(lhandler)j Fs(to)c(use)h(as)f(a)h(function)g(to)f(call)g(when) -h(a)g(complete)f(line)h(of)f(input)195 1755 y(has)g(b)q(een)h(en)o -(tered.)21 b(The)15 b(function)g(tak)o(es)f(the)i(text)e(of)h(the)g -(line)g(as)g(an)g(argumen)o(t.)1675 1852 y([F)l(unction])-1801 -b Fg(void)27 b(rl_callback_read_char)f Ff(\()p Fi(v)o(oid)p -Ff(\))195 1906 y Fs(Whenev)o(er)17 b(an)g(application)e(determines)i -(that)f(k)o(eyb)q(oard)h(input)g(is)f(a)o(v)m(ailable,)g(it)g(should)h -(call)195 1961 y Fr(rl_callback_read_char\(\))p Fs(,)8 -b(whic)o(h)j(will)e(read)i(the)g(next)g(c)o(haracter)f(from)g(the)h -(curren)o(t)g(input)195 2016 y(source.)38 b(If)21 b(that)g(c)o -(haracter)f(completes)h(the)g(line,)h Fr(rl_callback_read_char)c -Fs(will)i(in)o(v)o(ok)o(e)195 2071 y(the)e Fi(lhandler)i -Fs(function)e(sa)o(v)o(ed)f(b)o(y)h Fr(rl_callback_handler_insta)o(ll)d -Fs(to)i(pro)q(cess)h(the)g(line.)195 2126 y(Before)13 -b(calling)f(the)i Fi(lhandler)i Fs(function,)d(the)h(terminal)e -(settings)g(are)h(reset)g(to)g(the)g(v)m(alues)h(they)195 -2180 y(had)h(b)q(efore)g(calling)f Fr(rl_callback_handler_insta)o(ll)p -Fs(.)j(If)e(the)g Fi(lhandler)j Fs(function)c(returns,)195 -2235 y(the)e(terminal)g(settings)f(are)h(mo)q(di\014ed)h(for)e -(Readline's)h(use)h(again.)18 b Fr(EOF)12 b Fs(is)g(indicated)g(b)o(y)g -(calling)195 2290 y Fi(lhandler)18 b Fs(with)d(a)g Fr(NULL)f -Fs(line.)1675 2387 y([F)l(unction])-1801 b Fg(void)27 -b(rl_callback_handler_remov)q(e)e Ff(\()p Fi(v)o(oid)p -Ff(\))195 2442 y Fs(Restore)19 b(the)f(terminal)g(to)f(its)h(initial)f -(state)h(and)g(remo)o(v)o(e)g(the)h(line)f(handler.)30 -b(This)18 b(ma)o(y)g(b)q(e)195 2497 y(called)g(from)f(within)h(a)f -(callbac)o(k)h(as)f(w)o(ell)g(as)h(indep)q(enden)o(tly)l(.)30 -b(If)19 b(the)f Fi(lhandler)j Fs(installed)c(b)o(y)195 -2552 y Fr(rl_callback_handler_instal)o(l)g Fs(do)q(es)i(not)g(exit)g -(the)h(program,)e(either)h(this)g(function)g(or)195 2606 -y(the)d(function)f(referred)h(to)f(b)o(y)h(the)g(v)m(alue)g(of)f -Fr(rl_deprep_term_function)d Fs(should)k(b)q(e)g(called)195 -2661 y(b)q(efore)f(the)h(program)e(exits)g(to)h(reset)g(the)g(terminal) -f(settings.)p eop end -%%Page: 40 44 -TeXDict begin 40 43 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(40)75 149 y Fh(2.4.13)29 -b(A)21 b(Readline)g(Example)75 223 y Fs(Here)c(is)g(a)f(function)h -(whic)o(h)g(c)o(hanges)g(lo)o(w)o(ercase)e(c)o(haracters)h(to)h(their)f -(upp)q(ercase)i(equiv)m(alen)o(ts,)f(and)75 278 y(upp)q(ercase)i(c)o -(haracters)e(to)g(lo)o(w)o(ercase.)26 b(If)17 b(this)h(function)f(w)o -(as)g(b)q(ound)i(to)e(`)p Fr(M-c)p Fs(',)f(then)i(t)o(yping)f(`)p -Fr(M-c)p Fs(')75 333 y(w)o(ould)e(c)o(hange)h(the)g(case)g(of)f(the)h -(c)o(haracter)f(under)h(p)q(oin)o(t.)21 b(T)o(yping)16 -b(`)p Fr(M-1)e(0)h(M-c)p Fs(')g(w)o(ould)g(c)o(hange)h(the)75 -387 y(case)f(of)g(the)g(follo)o(wing)e(10)i(c)o(haracters,)f(lea)o -(ving)g(the)h(cursor)g(on)g(the)g(last)g(c)o(haracter)f(c)o(hanged.)195 -478 y Fr(/*)24 b(Invert)f(the)g(case)g(of)h(the)f(COUNT)h(following)e -(characters.)h(*/)195 533 y(int)195 588 y(invert_case_line)f(\(count,)h -(key\))314 643 y(int)h(count,)f(key;)195 697 y({)243 -752 y(register)f(int)i(start,)f(end,)g(i;)243 862 y(start)g(=)h -(rl_point;)243 971 y(if)f(\(rl_point)g(>=)h(rl_end\))290 -1026 y(return)f(\(0\);)243 1136 y(if)g(\(count)g(<)h(0\))290 -1191 y({)338 1245 y(direction)f(=)h(-1;)338 1300 y(count)f(=)h(-count;) -290 1355 y(})243 1410 y(else)290 1465 y(direction)f(=)h(1;)243 -1574 y(/*)f(Find)h(the)f(end)h(of)f(the)h(range)f(to)g(modify.)g(*/)243 -1629 y(end)g(=)h(start)f(+)h(\(count)f(*)h(direction\);)243 -1738 y(/*)f(Force)g(it)h(to)g(be)f(within)g(range.)g(*/)243 -1793 y(if)g(\(end)h(>)f(rl_end\))290 1848 y(end)h(=)g(rl_end;)243 -1903 y(else)f(if)h(\(end)f(<)h(0\))290 1958 y(end)g(=)g(0;)243 -2067 y(if)f(\(start)g(==)h(end\))290 2122 y(return)f(\(0\);)243 -2232 y(if)g(\(start)g(>)h(end\))290 2286 y({)338 2341 -y(int)g(temp)f(=)h(start;)338 2396 y(start)f(=)h(end;)338 -2451 y(end)g(=)f(temp;)290 2506 y(})243 2615 y(/*)g(Tell)h(readline)e -(that)i(we)f(are)h(modifying)e(the)i(line,)314 2670 y(so)g(it)f(will)h -(save)f(the)h(undo)f(information.)f(*/)p eop end -%%Page: 41 45 -TeXDict begin 41 44 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(41)243 149 y Fr(rl_modifying)22 -b(\(start,)h(end\);)243 259 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f -(i++\))290 314 y({)338 369 y(if)h(\(_rl_uppercase_p)d -(\(rl_line_buffer[i]\)\))386 423 y(rl_line_buffer[i])g(=)j -(_rl_to_lower)e(\(rl_line_buffer[i]\);)338 478 y(else)h(if)h -(\(_rl_lowercase_p)e(\(rl_line_buffer[i]\)\))386 533 -y(rl_line_buffer[i])f(=)j(_rl_to_upper)e(\(rl_line_buffer[i]\);)290 -588 y(})243 643 y(/*)h(Move)h(point)f(to)g(on)h(top)f(of)h(the)f(last)h -(character)e(changed.)h(*/)243 697 y(rl_point)f(=)i(\(direction)f(==)g -(1\))h(?)g(end)f(-)h(1)g(:)f(start;)243 752 y(return)g(\(0\);)195 -807 y(})75 973 y Fq(2.5)33 b(Readline)21 b(Signal)h(Handling)75 -1053 y Fs(Signals)14 b(are)h(async)o(hronous)g(ev)o(en)o(ts)g(sen)o(t)g -(to)g(a)g(pro)q(cess)g(b)o(y)g(the)h(Unix)f(k)o(ernel,)f(sometimes)h -(on)g(b)q(ehalf)75 1108 y(of)i(another)g(pro)q(cess.)26 -b(They)18 b(are)f(in)o(tended)h(to)e(indicate)h(exceptional)g(ev)o(en)o -(ts,)g(lik)o(e)g(a)g(user)g(pressing)75 1163 y(the)g(in)o(terrupt)f(k)o -(ey)h(on)f(his)h(terminal,)f(or)g(a)g(net)o(w)o(ork)g(connection)h(b)q -(eing)g(brok)o(en.)25 b(There)17 b(is)f(a)h(class)75 -1217 y(of)d(signals)f(that)h(can)g(b)q(e)h(sen)o(t)g(to)e(the)i(pro)q -(cess)g(curren)o(tly)e(reading)h(input)h(from)e(the)i(k)o(eyb)q(oard.)k -(Since)75 1272 y(Readline)k(c)o(hanges)f(the)g(terminal)f(attributes)g -(when)i(it)e(is)h(called,)h(it)f(needs)h(to)e(p)q(erform)h(sp)q(ecial) -75 1327 y(pro)q(cessing)14 b(when)g(suc)o(h)g(a)g(signal)e(is)h(receiv) -o(ed)h(in)g(order)g(to)f(restore)g(the)h(terminal)e(to)h(a)h(sane)g -(state,)e(or)75 1382 y(pro)o(vide)j(application)f(writers)g(with)g -(functions)h(to)g(do)g(so)g(man)o(ually)l(.)137 1482 -y(Readline)21 b(con)o(tains)e(an)h(in)o(ternal)f(signal)g(handler)h -(that)g(is)g(installed)f(for)g(a)h(n)o(um)o(b)q(er)g(of)g(signals)75 -1537 y(\()p Fr(SIGINT)p Fs(,)h Fr(SIGQUIT)p Fs(,)g Fr(SIGTERM)p -Fs(,)g Fr(SIGALRM)p Fs(,)g Fr(SIGTSTP)p Fs(,)g Fr(SIGTTIN)p -Fs(,)h(and)f Fr(SIGTTOU)p Fs(\).)36 b(When)21 b(one)g(of)75 -1592 y(these)16 b(signals)f(is)g(receiv)o(ed,)h(the)g(signal)f(handler) -g(will)g(reset)h(the)g(terminal)e(attributes)h(to)g(those)h(that)75 -1647 y(w)o(ere)d(in)h(e\013ect)f(b)q(efore)h Fr(readline\(\))e -Fs(w)o(as)h(called,)g(reset)h(the)f(signal)g(handling)g(to)g(what)g(it) -g(w)o(as)g(b)q(efore)75 1702 y Fr(readline\(\))21 b Fs(w)o(as)h -(called,)h(and)g(resend)g(the)g(signal)e(to)h(the)h(calling)e -(application.)41 b(If)23 b(and)f(when)75 1756 y(the)17 -b(calling)f(application's)f(signal)h(handler)h(returns,)g(Readline)g -(will)f(reinitialize)f(the)i(terminal)f(and)75 1811 y(con)o(tin)o(ue)e -(to)f(accept)i(input.)k(When)c(a)e Fr(SIGINT)h Fs(is)f(receiv)o(ed,)h -(the)h(Readline)f(signal)f(handler)h(p)q(erforms)75 1866 -y(some)19 b(additional)f(w)o(ork,)h(whic)o(h)g(will)f(cause)i(an)o(y)f -(partially-en)o(tered)f(line)h(to)f(b)q(e)i(ab)q(orted)g(\(see)f(the)75 -1921 y(description)c(of)f Fr(rl_free_line_state\(\))f -Fs(b)q(elo)o(w\).)137 2021 y(There)g(is)e(an)h(additional)f(Readline)i -(signal)e(handler,)h(for)g Fr(SIGWINCH)p Fs(,)f(whic)o(h)h(the)g(k)o -(ernel)g(sends)h(to)e(a)75 2076 y(pro)q(cess)k(whenev)o(er)g(the)f -(terminal's)f(size)h(c)o(hanges)g(\(for)g(example,)g(if)g(a)g(user)h -(resizes)f(an)g Fr(xterm)p Fs(\).)19 b(The)75 2131 y(Readline)f -Fr(SIGWINCH)f Fs(handler)h(up)q(dates)g(Readline's)g(in)o(ternal)e -(screen)j(size)e(information,)g(and)h(then)75 2186 y(calls)e(an)o(y)h -Fr(SIGWINCH)e Fs(signal)h(handler)h(the)g(calling)f(application)f(has)i -(installed.)24 b(Readline)17 b(calls)f(the)75 2241 y(application's)g -Fr(SIGWINCH)g Fs(signal)h(handler)g(without)g(resetting)g(the)g -(terminal)g(to)g(its)f(original)g(state.)75 2295 y(If)g(the)g -(application's)e(signal)h(handler)h(do)q(es)h(more)e(than)h(up)q(date)h -(its)e(idea)h(of)f(the)h(terminal)f(size)h(and)75 2350 -y(return)f(\(for)f(example,)g(a)g Fr(longjmp)g Fs(bac)o(k)h(to)f(a)h -(main)f(pro)q(cessing)g(lo)q(op\),)g(it)g Fj(must)20 -b Fs(call)14 b Fr(rl_cleanup_)75 2405 y(after_signal\(\))f -Fs(\(describ)q(ed)j(b)q(elo)o(w\),)e(to)h(restore)f(the)h(terminal)f -(state.)137 2506 y(Readline)h(pro)o(vides)f(t)o(w)o(o)f(v)m(ariables)g -(that)h(allo)o(w)e(application)h(writers)g(to)h(con)o(trol)f(whether)i -(or)e(not)75 2560 y(it)j(will)f(catc)o(h)h(certain)g(signals)g(and)h -(act)f(on)g(them)h(when)g(they)f(are)h(receiv)o(ed.)24 -b(It)16 b(is)h(imp)q(ortan)o(t)e(that)75 2615 y(applications)i(c)o -(hange)h(the)h(v)m(alues)f(of)g(these)h(v)m(ariables)e(only)h(when)h -(calling)e Fr(readline\(\))p Fs(,)g(not)h(in)g(a)75 2670 -y(signal)c(handler,)h(so)g(Readline's)g(in)o(ternal)f(signal)g(state)g -(is)h(not)g(corrupted.)p eop end -%%Page: 42 46 -TeXDict begin 42 45 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(42)1685 149 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_catch_signals)195 204 y Fs(If)15 b(this)f(v)m(ariable) -f(is)h(non-zero,)h(Readline)g(will)e(install)f(signal)i(handlers)g(for) -g Fr(SIGINT)p Fs(,)f Fr(SIGQUIT)p Fs(,)195 259 y Fr(SIGTERM)p -Fs(,)h Fr(SIGALRM)p Fs(,)g Fr(SIGTSTP)p Fs(,)f Fr(SIGTTIN)p -Fs(,)h(and)i Fr(SIGTTOU)p Fs(.)195 331 y(The)f(default)g(v)m(alue)h(of) -e Fr(rl_catch_signals)f Fs(is)i(1.)1685 431 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_catch_sigwinch)195 486 y Fs(If)15 b(this)g(v)m -(ariable)g(is)f(non-zero,)h(Readline)h(will)e(install)f(a)i(signal)f -(handler)i(for)e Fr(SIGWINCH)p Fs(.)195 558 y(The)h(default)g(v)m(alue) -h(of)e Fr(rl_catch_sigwinch)f Fs(is)i(1.)137 658 y(If)h(an)f -(application)g(do)q(es)g(not)g(wish)h(to)e(ha)o(v)o(e)h(Readline)h -(catc)o(h)g(an)o(y)f(signals,)f(or)h(to)f(handle)i(signals)75 -713 y(other)j(than)g(those)g(Readline)h(catc)o(hes)f(\()p -Fr(SIGHUP)p Fs(,)g(for)g(example\),)g(Readline)h(pro)o(vides)e(con)o(v) -o(enience)75 768 y(functions)d(to)g(do)g(the)g(necessary)g(terminal)f -(and)i(in)o(ternal)e(state)g(clean)o(up)h(up)q(on)h(receipt)f(of)g(a)g -(signal.)1675 869 y([F)l(unction])-1801 b Fg(void)27 -b(rl_cleanup_after_signal)f Ff(\()p Fi(v)o(oid)p Ff(\))195 -924 y Fs(This)17 b(function)f(will)g(reset)h(the)g(state)f(of)g(the)h -(terminal)f(to)g(what)h(it)f(w)o(as)g(b)q(efore)h Fr(readline\(\))195 -978 y Fs(w)o(as)d(called,)g(and)h(remo)o(v)o(e)f(the)g(Readline)h -(signal)f(handlers)h(for)f(all)f(signals,)g(dep)q(ending)j(on)f(the)195 -1033 y(v)m(alues)g(of)g Fr(rl_catch_signals)e Fs(and)i -Fr(rl_catch_sigwinch)p Fs(.)1675 1134 y([F)l(unction])-1801 -b Fg(void)27 b(rl_free_line_state)e Ff(\()p Fi(v)o(oid)p -Ff(\))195 1189 y Fs(This)19 b(will)f(free)i(an)o(y)f(partial)f(state)h -(asso)q(ciated)g(with)g(the)h(curren)o(t)f(input)h(line)f(\(undo)h -(infor-)195 1244 y(mation,)h(an)o(y)g(partial)f(history)g(en)o(try)l(,) -i(an)o(y)f(partially-en)o(tered)f(k)o(eyb)q(oard)h(macro,)h(and)f(an)o -(y)195 1298 y(partially-en)o(tered)h(n)o(umeric)i(argumen)o(t\).)45 -b(This)23 b(should)h(b)q(e)h(called)e(b)q(efore)i Fr(rl_cleanup_)195 -1353 y(after_signal\(\))p Fs(.)36 b(The)22 b(Readline)g(signal)e -(handler)h(for)g Fr(SIGINT)f Fs(calls)h(this)f(to)h(ab)q(ort)g(the)195 -1408 y(curren)o(t)15 b(input)g(line.)1675 1509 y([F)l(unction])-1801 -b Fg(void)27 b(rl_reset_after_signal)f Ff(\()p Fi(v)o(oid)p -Ff(\))195 1563 y Fs(This)14 b(will)f(reinitialize)f(the)i(terminal)f -(and)i(reinstall)e(an)o(y)g(Readline)i(signal)e(handlers,)h(dep)q(end-) -195 1618 y(ing)h(on)g(the)g(v)m(alues)h(of)e Fr(rl_catch_signals)f -Fs(and)j Fr(rl_catch_sigwinch)p Fs(.)137 1719 y(If)k(an)g(application)e -(do)q(es)i(not)g(wish)f(Readline)h(to)f(catc)o(h)g Fr(SIGWINCH)p -Fs(,)h(it)f(ma)o(y)g(call)f Fr(rl_resize_)75 1774 y(terminal\(\))12 -b Fs(or)h Fr(rl_set_screen_size\(\))e Fs(to)i(force)g(Readline)h(to)f -(up)q(date)h(its)f(idea)g(of)h(the)f(terminal)75 1829 -y(size)i(when)h(a)f Fr(SIGWINCH)f Fs(is)g(receiv)o(ed.)1675 -1929 y([F)l(unction])-1801 b Fg(void)27 b(rl_echo_signal_char)e -Ff(\()p Fi(in)o(t)14 b(sig)p Ff(\))195 1984 y Fs(If)22 -b(an)g(application)e(wishes)i(to)f(install)f(its)h(o)o(wn)g(signal)g -(handlers,)i(but)f(still)e(ha)o(v)o(e)h(readline)195 -2039 y(displa)o(y)14 b(c)o(haracters)h(that)f(generate)h(signals,)f -(calling)g(this)h(function)g(with)f Fi(sig)19 b Fs(set)c(to)f -Fr(SIGINT)p Fs(,)195 2094 y Fr(SIGQUIT)p Fs(,)g(or)h -Fr(SIGTSTP)f Fs(will)g(displa)o(y)g(the)h(c)o(haracter)g(generating)f -(that)g(signal.)1675 2194 y([F)l(unction])-1801 b Fg(void)27 -b(rl_resize_terminal)e Ff(\()p Fi(v)o(oid)p Ff(\))195 -2249 y Fs(Up)q(date)16 b(Readline's)f(in)o(ternal)f(screen)h(size)h(b)o -(y)f(reading)f(v)m(alues)i(from)e(the)i(k)o(ernel.)1675 -2350 y([F)l(unction])-1801 b Fg(void)27 b(rl_set_screen_size)e -Ff(\()p Fi(in)o(t)14 b(ro)o(ws,)g(in)o(t)h(cols)p Ff(\))195 -2405 y Fs(Set)f(Readline's)g(idea)g(of)g(the)g(terminal)f(size)h(to)f -Fi(ro)o(ws)i Fs(ro)o(ws)e(and)h Fi(cols)i Fs(columns.)j(If)14 -b(either)g Fi(ro)o(ws)195 2460 y Fs(or)j Fi(columns)i -Fs(is)e(less)h(than)f(or)g(equal)h(to)e(0,)i(Readline's)f(idea)h(of)f -(that)g(terminal)f(dimension)h(is)195 2514 y(unc)o(hanged.)137 -2615 y(If)g(an)g(application)e(do)q(es)i(not)f(w)o(an)o(t)g(to)g -(install)f(a)i Fr(SIGWINCH)e Fs(handler,)i(but)g(is)f(still)f(in)o -(terested)h(in)75 2670 y(the)f(screen)h(dimensions,)e(Readline's)i -(idea)e(of)h(the)h(screen)f(size)g(ma)o(y)g(b)q(e)h(queried.)p -eop end -%%Page: 43 47 -TeXDict begin 43 46 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(43)1675 149 y([F)l(unction])-1801 -b Fg(void)27 b(rl_get_screen_size)e Ff(\()p Fi(in)o(t)14 -b(*ro)o(ws,)g(in)o(t)g(*cols)p Ff(\))195 204 y Fs(Return)i(Readline's)f -(idea)f(of)h(the)g(terminal's)e(size)i(in)g(the)g(v)m(ariables)g(p)q -(oin)o(ted)g(to)f(b)o(y)h(the)g(argu-)195 259 y(men)o(ts.)1675 -348 y([F)l(unction])-1801 b Fg(void)27 b(rl_reset_screen_size)f -Ff(\()p Fi(v)o(oid)p Ff(\))195 403 y Fs(Cause)15 b(Readline)h(to)e -(reobtain)h(the)g(screen)h(size)f(and)g(recalculate)f(its)h -(dimensions.)137 492 y(The)h(follo)o(wing)d(functions)i(install)e(and)j -(remo)o(v)o(e)e(Readline's)h(signal)f(handlers.)1675 -581 y([F)l(unction])-1801 b Fg(int)27 b(rl_set_signals)d -Ff(\()p Fi(v)o(oid)p Ff(\))195 636 y Fs(Install)17 b(Readline's)g -(signal)g(handler)g(for)g Fr(SIGINT)p Fs(,)g Fr(SIGQUIT)p -Fs(,)g Fr(SIGTERM)p Fs(,)g Fr(SIGALRM)p Fs(,)f Fr(SIGTSTP)p -Fs(,)195 691 y Fr(SIGTTIN)p Fs(,)11 b Fr(SIGTTOU)p Fs(,)g(and)h -Fr(SIGWINCH)p Fs(,)e(dep)q(ending)j(on)f(the)f(v)m(alues)h(of)f -Fr(rl_catch_signals)f Fs(and)195 746 y Fr(rl_catch_sigwinch)p -Fs(.)1675 835 y([F)l(unction])-1801 b Fg(int)27 b(rl_clear_signals)e -Ff(\()p Fi(v)o(oid)p Ff(\))195 889 y Fs(Remo)o(v)o(e)15 -b(all)f(of)h(the)g(Readline)h(signal)e(handlers)h(installed)f(b)o(y)h -Fr(rl_set_signals\(\))p Fs(.)75 1004 y Fq(2.6)33 b(Custom)21 -b(Completers)75 1083 y Fs(T)o(ypically)l(,)g(a)g(program)f(that)h -(reads)g(commands)g(from)g(the)g(user)h(has)f(a)g(w)o(a)o(y)f(of)h -(disam)o(biguating)75 1138 y(commands)d(and)f(data.)27 -b(If)18 b(y)o(our)f(program)g(is)g(one)h(of)f(these,)i(then)f(it)f(can) -g(pro)o(vide)h(completion)f(for)75 1193 y(commands,)d(data,)g(or)g(b)q -(oth.)20 b(The)15 b(follo)o(wing)d(sections)i(describ)q(e)h(ho)o(w)f(y) -o(our)g(program)g(and)h(Readline)75 1248 y(co)q(op)q(erate)g(to)g(pro)o -(vide)f(this)h(service.)75 1345 y Fh(2.6.1)30 b(Ho)n(w)21 -b(Completing)f(W)-5 b(orks)75 1419 y Fs(In)14 b(order)f(to)f(complete)h -(some)g(text,)g(the)g(full)f(list)g(of)h(p)q(ossible)g(completions)f(m) -o(ust)h(b)q(e)h(a)o(v)m(ailable.)k(That)75 1474 y(is,)13 -b(it)g(is)g(not)g(p)q(ossible)g(to)g(accurately)f(expand)j(a)e(partial) -f(w)o(ord)g(without)h(kno)o(wing)f(all)h(of)g(the)g(p)q(ossible)75 -1528 y(w)o(ords)j(whic)o(h)g(mak)o(e)g(sense)h(in)g(that)f(con)o(text.) -23 b(The)17 b(Readline)g(library)e(pro)o(vides)h(the)h(user)g(in)o -(terface)75 1583 y(to)d(completion,)f(and)h(t)o(w)o(o)f(of)h(the)g -(most)f(common)h(completion)f(functions:)19 b(\014lename)c(and)f -(username.)75 1638 y(F)l(or)k(completing)h(other)f(t)o(yp)q(es)h(of)g -(text,)g(y)o(ou)g(m)o(ust)f(write)g(y)o(our)h(o)o(wn)f(completion)g -(function.)31 b(This)75 1693 y(section)15 b(describ)q(es)h(exactly)e -(what)h(suc)o(h)g(functions)g(m)o(ust)g(do,)g(and)g(pro)o(vides)g(an)g -(example.)137 1759 y(There)h(are)f(three)g(ma)s(jor)f(functions)h(used) -g(to)g(p)q(erform)g(completion:)100 1825 y(1.)29 b(The)22 -b(user-in)o(terface)f(function)h Fr(rl_complete\(\))p -Fs(.)37 b(This)22 b(function)f(is)g(called)g(with)g(the)h(same)165 -1880 y(argumen)o(ts)17 b(as)g(other)g(bindable)h(Readline)f(functions:) -25 b Fi(coun)o(t)18 b Fs(and)g Fi(in)o(v)o(oking)p 1553 -1880 14 2 v 18 w(k)o(ey)t Fs(.)27 b(It)18 b(isolates)165 -1935 y(the)h(w)o(ord)f(to)g(b)q(e)i(completed)e(and)h(calls)f -Fr(rl_completion_matches\(\))e Fs(to)i(generate)g(a)h(list)e(of)165 -1990 y(p)q(ossible)e(completions.)20 b(It)c(then)g(either)f(lists)f -(the)i(p)q(ossible)f(completions,)g(inserts)g(the)g(p)q(ossible)165 -2044 y(completions,)23 b(or)f(actually)g(p)q(erforms)g(the)g -(completion,)i(dep)q(ending)f(on)g(whic)o(h)f(b)q(eha)o(vior)g(is)165 -2099 y(desired.)100 2165 y(2.)29 b(The)17 b(in)o(ternal)f(function)g -Fr(rl_completion_matches\(\))e Fs(uses)j(an)g(application-supplied)f -Fi(gener-)165 2220 y(ator)21 b Fs(function)d(to)g(generate)g(the)h -(list)e(of)h(p)q(ossible)g(matc)o(hes,)h(and)f(then)h(returns)g(the)f -(arra)o(y)f(of)165 2275 y(these)j(matc)o(hes.)32 b(The)20 -b(caller)e(should)i(place)f(the)h(address)f(of)h(its)e(generator)h -(function)g(in)g Fr(rl_)165 2330 y(completion_entry_function)p -Fs(.)100 2396 y(3.)29 b(The)12 b(generator)e(function)h(is)g(called)g -(rep)q(eatedly)h(from)f Fr(rl_completion_matches\(\))p -Fs(,)d(returning)165 2451 y(a)16 b(string)f(eac)o(h)i(time.)22 -b(The)17 b(argumen)o(ts)e(to)h(the)g(generator)f(function)h(are)g -Fi(text)h Fs(and)g Fi(state)s Fs(.)k Fi(text)165 2506 -y Fs(is)16 b(the)g(partial)e(w)o(ord)h(to)h(b)q(e)h(completed.)22 -b Fi(state)c Fs(is)d(zero)h(the)g(\014rst)g(time)f(the)h(function)g(is) -g(called,)165 2560 y(allo)o(wing)k(the)i(generator)f(to)g(p)q(erform)h -(an)o(y)g(necessary)g(initializatio)o(n,)f(and)h(a)g(p)q(ositiv)o(e)f -(non-)165 2615 y(zero)14 b(in)o(teger)g(for)g(eac)o(h)h(subsequen)o(t)g -(call.)k(The)c(generator)e(function)i(returns)f Fr(\(char)h(*\)NULL)f -Fs(to)165 2670 y(inform)k Fr(rl_completion_matches\(\))e -Fs(that)i(there)h(are)g(no)g(more)g(p)q(ossibilities)e(left.)31 -b(Usually)p eop end -%%Page: 44 48 -TeXDict begin 44 47 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(44)165 149 y(the)19 b(generator)g -(function)g(computes)h(the)f(list)f(of)h(p)q(ossible)g(completions)g -(when)g Fi(state)j Fs(is)c(zero,)165 204 y(and)13 b(returns)g(them)f -(one)h(at)f(a)h(time)f(on)h(subsequen)o(t)g(calls.)18 -b(Eac)o(h)13 b(string)e(the)i(generator)f(function)165 -259 y(returns)k(as)f(a)h(matc)o(h)f(m)o(ust)h(b)q(e)g(allo)q(cated)f -(with)h Fr(malloc\(\))p Fs(;)e(Readline)j(frees)f(the)g(strings)e(when) -165 314 y(it)i(has)h(\014nished)h(with)e(them.)25 b(Suc)o(h)18 -b(a)e(generator)g(function)h(is)f(referred)h(to)g(as)f(an)h -Fi(application-)165 369 y(sp)q(eci\014c)f(completion)e(function)p -Fs(.)1675 461 y([F)l(unction])-1801 b Fg(int)27 b(rl_complete)d -Ff(\()p Fi(in)o(t)14 b(ignore,)g(in)o(t)h(in)o(v)o(oking)p -967 461 14 2 v 18 w(k)o(ey)p Ff(\))195 516 y Fs(Complete)g(the)g(w)o -(ord)g(at)f(or)h(b)q(efore)h(p)q(oin)o(t.)k(Y)l(ou)15 -b(ha)o(v)o(e)g(supplied)h(the)f(function)h(that)e(do)q(es)i(the)195 -571 y(initial)j(simple)h(matc)o(hing)f(selection)h(algorithm)f(\(see)h -Fr(rl_completion_matches\(\))p Fs(\).)33 b(The)195 626 -y(default)15 b(is)f(to)h(do)g(\014lename)g(completion.)1685 -718 y([V)l(ariable])-1801 b Fg(rl_compentry_func_t)29 -b(*)d(rl_completion_entry_f)q(unction)195 773 y Fs(This)20 -b(is)f(a)h(p)q(oin)o(ter)f(to)g(the)h(generator)g(function)f(for)h -Fr(rl_completion_matches\(\))p Fs(.)31 b(If)20 b(the)195 -828 y(v)m(alue)12 b(of)g Fr(rl_completion_entry_fun)o(ction)d -Fs(is)i Fr(NULL)g Fs(then)h(the)g(default)g(\014lename)g(generator)195 -883 y(function,)24 b Fr(rl_filename_completion_f)o(unction\()o(\))p -Fs(,)d(is)h(used.)42 b(An)23 b Fi(application-sp)q(eci\014c)195 -937 y(completion)10 b(function)g Fs(is)g(a)g(function)h(whose)f -(address)h(is)f(assigned)g(to)g Fr(rl_completion_entry_)195 -992 y(function)k Fs(and)h(whose)h(return)f(v)m(alues)g(are)g(used)h(to) -e(generate)h(p)q(ossible)g(completions.)75 1092 y Fh(2.6.2)30 -b(Completion)20 b(F)-5 b(unctions)75 1166 y Fs(Here)15 -b(is)g(the)g(complete)g(list)f(of)h(callable)f(completion)h(functions)g -(presen)o(t)g(in)g(Readline.)1675 1258 y([F)l(unction])-1801 -b Fg(int)27 b(rl_complete_internal)e Ff(\()p Fi(in)o(t)14 -b(what)p 914 1258 V 20 w(to)p 975 1258 V 19 w(do)p Ff(\))195 -1313 y Fs(Complete)k(the)g(w)o(ord)g(at)f(or)h(b)q(efore)h(p)q(oin)o -(t.)28 b Fi(what)p 1104 1313 V 20 w(to)p 1165 1313 V -19 w(do)21 b Fs(sa)o(ys)c(what)h(to)g(do)g(with)g(the)g(com-)195 -1368 y(pletion.)i(A)c(v)m(alue)g(of)f(`)p Fr(?)p Fs(')g(means)g(list)g -(the)g(p)q(ossible)h(completions.)k(`)p Fr(TAB)p Fs(')14 -b(means)i(do)f(standard)195 1423 y(completion.)20 b(`)p -Fr(*)p Fs(')15 b(means)g(insert)g(all)g(of)g(the)h(p)q(ossible)f -(completions.)20 b(`)p Fr(!)p Fs(')15 b(means)g(to)g(displa)o(y)g(all) -195 1477 y(of)i(the)g(p)q(ossible)g(completions,)f(if)h(there)g(is)g -(more)g(than)g(one,)g(as)g(w)o(ell)f(as)h(p)q(erforming)g(partial)195 -1532 y(completion.)h(`)p Fr(@)p Fs(')13 b(is)g(similar)f(to)h(`)p -Fr(!)p Fs(',)g(but)h(p)q(ossible)f(completions)g(are)g(not)g(listed)g -(if)g(the)h(p)q(ossible)195 1587 y(completions)g(share)h(a)g(common)g -(pre\014x.)1675 1680 y([F)l(unction])-1801 b Fg(int)27 -b(rl_complete)d Ff(\()p Fi(in)o(t)14 b(ignore,)g(in)o(t)h(in)o(v)o -(oking)p 967 1680 V 18 w(k)o(ey)p Ff(\))195 1734 y Fs(Complete)20 -b(the)h(w)o(ord)e(at)h(or)g(b)q(efore)h(p)q(oin)o(t.)36 -b(Y)l(ou)21 b(ha)o(v)o(e)f(supplied)h(the)f(function)h(that)f(do)q(es) -195 1789 y(the)d(initial)d(simple)i(matc)o(hing)g(selection)g -(algorithm)e(\(see)i Fr(rl_completion_matches\(\))e Fs(and)195 -1844 y Fr(rl_completion_entry_functi)o(on)p Fs(\).)25 -b(The)18 b(default)g(is)f(to)g(do)h(\014lename)g(completion.)27 -b(This)195 1899 y(calls)14 b Fr(rl_complete_internal\(\))e -Fs(with)j(an)g(argumen)o(t)f(dep)q(ending)j(on)e Fi(in)o(v)o(oking)p -1659 1899 V 19 w(k)o(ey)t Fs(.)1675 1992 y([F)l(unction])-1801 -b Fg(int)27 b(rl_possible_completions)f Ff(\()p Fi(in)o(t)14 -b(coun)o(t,)h(in)o(t)f(in)o(v)o(oking)p 1269 1992 V 19 -w(k)o(ey)p Ff(\))195 2046 y Fs(List)20 b(the)g(p)q(ossible)g -(completions.)34 b(See)21 b(description)f(of)g Fr(rl_complete)13 -b(\(\))p Fs(.)35 b(This)20 b(calls)f Fr(rl_)195 2101 -y(complete_internal\(\))13 b Fs(with)h(an)h(argumen)o(t)g(of)f(`)p -Fr(?)p Fs('.)1675 2194 y([F)l(unction])-1801 b Fg(int)27 -b(rl_insert_completions)f Ff(\()p Fi(in)o(t)14 b(coun)o(t,)g(in)o(t)h -(in)o(v)o(oking)p 1217 2194 V 18 w(k)o(ey)p Ff(\))195 -2249 y Fs(Insert)i(the)g(list)f(of)g(p)q(ossible)h(completions)e(in)o -(to)h(the)h(line,)g(deleting)f(the)h(partially-completed)195 -2303 y(w)o(ord.)k(See)c(description)e(of)g Fr(rl_complete\(\))p -Fs(.)20 b(This)c(calls)f Fr(rl_complete_internal\(\))e -Fs(with)195 2358 y(an)i(argumen)o(t)g(of)f(`)p Fr(*)p -Fs('.)1675 2451 y([F)l(unction])-1801 b Fg(int)27 b(rl_completion_mode) -e Ff(\()p Fi(rl)p 725 2451 V 19 w(command)p 936 2451 -V 20 w(func)p 1040 2451 V 21 w(t)15 b(*cfunc)p Ff(\))195 -2506 y Fs(Returns)26 b(the)f(apppriate)g(v)m(alue)g(to)g(pass)g(to)f -Fr(rl_complete_internal\(\))f Fs(dep)q(ending)j(on)195 -2560 y(whether)21 b Fi(cfunc)i Fs(w)o(as)d(called)g(t)o(wice)g(in)g -(succession)h(and)f(the)h(v)m(alues)f(of)g(the)h Fr(show-all-if-)195 -2615 y(ambiguous)13 b Fs(and)g Fr(show-all-if-unmodified)e -Fs(v)m(ariables.)19 b(Application-sp)q(eci\014c)14 b(completion)195 -2670 y(functions)h(ma)o(y)f(use)i(this)f(function)g(to)f(presen)o(t)h -(the)h(same)f(in)o(terface)f(as)h Fr(rl_complete\(\))p -Fs(.)p eop end -%%Page: 45 49 -TeXDict begin 45 48 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(45)1675 149 y([F)l(unction])-1801 -b Fg(char)27 b(**)f(rl_completion_matches)g Ff(\()p Fi(const)15 -b(c)o(har)g(*text,)283 204 y(rl)p 317 204 14 2 v 19 w(comp)q(en)o(try)p -547 204 V 20 w(func)p 651 204 V 21 w(t)f(*en)o(try)p -831 204 V 20 w(func)p Ff(\))195 259 y Fs(Returns)19 b(an)g(arra)o(y)f -(of)g(strings)g(whic)o(h)h(is)f(a)h(list)e(of)i(completions)f(for)g -Fi(text)q Fs(.)30 b(If)20 b(there)e(are)h(no)195 314 -y(completions,)d(returns)i Fr(NULL)p Fs(.)25 b(The)17 -b(\014rst)g(en)o(try)g(in)g(the)g(returned)h(arra)o(y)e(is)h(the)g -(substitution)195 369 y(for)12 b Fi(text)q Fs(.)19 b(The)13 -b(remaining)g(en)o(tries)f(are)h(the)g(p)q(ossible)g(completions.)18 -b(The)13 b(arra)o(y)f(is)h(terminated)195 423 y(with)i(a)f -Fr(NULL)h Fs(p)q(oin)o(ter.)195 493 y Fi(en)o(try)p 302 -493 V 20 w(func)23 b Fs(is)c(a)g(function)h(of)f(t)o(w)o(o)g(args,)g -(and)h(returns)g(a)f Fr(char)c(*)p Fs(.)33 b(The)20 b(\014rst)f -(argumen)o(t)g(is)195 548 y Fi(text)q Fs(.)32 b(The)19 -b(second)h(is)f(a)g(state)f(argumen)o(t;)i(it)f(is)f(zero)i(on)f(the)g -(\014rst)g(call,)g(and)g(non-zero)h(on)195 602 y(subsequen)o(t)e -(calls.)24 b Fi(en)o(try)p 661 602 V 19 w(func)d Fs(returns)16 -b(a)h Fr(NULL)f Fs(p)q(oin)o(ter)h(to)f(the)h(caller)f(when)h(there)g -(are)g(no)195 657 y(more)e(matc)o(hes.)1675 754 y([F)l(unction])-1801 -b Fg(char)27 b(*)f(rl_filename_completion_)q(functio)q(n)f -Ff(\()p Fi(const)15 b(c)o(har)g(*text,)f(in)o(t)283 808 -y(state)p Ff(\))195 863 y Fs(A)f(generator)f(function)g(for)h -(\014lename)g(completion)e(in)i(the)g(general)f(case.)19 -b Fi(text)14 b Fs(is)e(a)h(partial)e(\014le-)195 918 -y(name.)18 b(The)11 b(Bash)g(source)g(is)f(a)h(useful)g(reference)g -(for)f(writing)f(application-sp)q(eci\014c)i(completion)195 -973 y(functions)k(\(the)g(Bash)g(completion)f(functions)h(call)g(this)f -(and)i(other)f(Readline)g(functions\).)1675 1069 y([F)l(unction])-1801 -b Fg(char)27 b(*)f(rl_username_completion_)q(functio)q(n)f -Ff(\()p Fi(const)15 b(c)o(har)g(*text,)f(in)o(t)283 1124 -y(state)p Ff(\))195 1179 y Fs(A)g(completion)g(generator)f(for)h -(usernames.)19 b Fi(text)c Fs(con)o(tains)e(a)h(partial)f(username)h -(preceded)i(b)o(y)195 1234 y(a)f(random)g(c)o(haracter)f(\(usually)h(`) -p Fr(~)p Fs('\).)k(As)c(with)f(all)h(completion)f(generators,)g -Fi(state)j Fs(is)e(zero)g(on)195 1288 y(the)g(\014rst)g(call)f(and)i -(non-zero)f(for)g(subsequen)o(t)h(calls.)75 1390 y Fh(2.6.3)30 -b(Completion)20 b(V)-5 b(ariables)1685 1491 y Fs([V)l(ariable])-1801 -b Fg(rl_compentry_func_t)29 b(*)d(rl_completion_entry_f)q(unction)195 -1546 y Fs(A)17 b(p)q(oin)o(ter)f(to)g(the)h(generator)f(function)g(for) -g Fr(rl_completion_matches\(\))p Fs(.)22 b Fr(NULL)16 -b Fs(means)h(to)195 1600 y(use)f Fr(rl_filename_completion_)o(functio)o -(n\(\))p Fs(,)c(the)j(default)g(\014lename)g(completer.)1685 -1697 y([V)l(ariable])-1801 b Fg(rl_completion_func_t)29 -b(*)d(rl_attempted_complet)q(ion_fun)q(ction)195 1752 -y Fs(A)17 b(p)q(oin)o(ter)g(to)g(an)g(alternativ)o(e)f(function)h(to)g -(create)g(matc)o(hes.)26 b(The)18 b(function)f(is)g(called)g(with)195 -1806 y Fi(text)q Fs(,)24 b Fi(start)q Fs(,)e(and)h Fi(end)r -Fs(.)43 b Fi(start)22 b Fs(and)h Fi(end)i Fs(are)d(indices)h(in)f -Fr(rl_line_buffer)f Fs(de\014ning)i(the)195 1861 y(b)q(oundaries)c(of)g -Fi(text)q Fs(,)h(whic)o(h)f(is)f(a)h(c)o(haracter)g(string.)31 -b(If)19 b(this)g(function)g(exists)g(and)g(returns)195 -1916 y Fr(NULL)p Fs(,)h(or)g(if)f(this)h(v)m(ariable)f(is)g(set)h(to)g -Fr(NULL)p Fs(,)g(then)g Fr(rl_complete\(\))e Fs(will)h(call)g(the)h(v)m -(alue)g(of)195 1971 y Fr(rl_completion_entry_functi)o(on)11 -b Fs(to)i(generate)g(matc)o(hes,)g(otherwise)g(the)h(arra)o(y)e(of)h -(strings)195 2026 y(returned)23 b(will)e(b)q(e)i(used.)42 -b(If)22 b(this)g(function)g(sets)g(the)h Fr(rl_attempted_completion_o)o -(ver)195 2080 y Fs(v)m(ariable)14 b(to)h(a)f(non-zero)h(v)m(alue,)g -(Readline)h(will)d(not)i(p)q(erform)f(its)h(default)f(completion)g(ev)o -(en)h(if)195 2135 y(this)g(function)g(returns)g(no)g(matc)o(hes.)1685 -2232 y([V)l(ariable])-1801 b Fg(rl_quote_func_t)28 b(*)f -(rl_filename_quoting_funct)q(ion)195 2286 y Fs(A)16 b(p)q(oin)o(ter)g -(to)g(a)g(function)g(that)f(will)g(quote)h(a)g(\014lename)h(in)f(an)g -(application-sp)q(eci\014c)g(fashion.)195 2341 y(This)j(is)g(called)h -(if)f(\014lename)g(completion)g(is)g(b)q(eing)h(attempted)f(and)h(one)g -(of)f(the)h(c)o(haracters)195 2396 y(in)c Fr -(rl_filename_quote_characters)d Fs(app)q(ears)k(in)f(a)h(completed)f -(\014lename.)24 b(The)17 b(function)195 2451 y(is)g(called)h(with)f -Fi(text)q Fs(,)h Fi(matc)o(h)p 719 2451 V 20 w(t)o(yp)q(e)s -Fs(,)g(and)g Fi(quote)p 1061 2451 V 20 w(p)q(oin)o(ter)s -Fs(.)28 b(The)18 b Fi(text)g Fs(is)g(the)g(\014lename)g(to)f(b)q(e)195 -2506 y(quoted.)38 b(The)21 b Fi(matc)o(h)p 606 2506 V -20 w(t)o(yp)q(e)i Fs(is)e(either)g Fr(SINGLE_MATCH)p -Fs(,)f(if)h(there)g(is)g(only)g(one)g(completion)195 -2560 y(matc)o(h,)15 b(or)g Fr(MULT_MATCH)p Fs(.)20 b(Some)c(functions)f -(use)h(this)f(to)g(decide)i(whether)f(or)f(not)g(to)g(insert)g(a)195 -2615 y(closing)9 b(quote)i(c)o(haracter.)17 b(The)11 -b Fi(quote)p 876 2615 V 20 w(p)q(oin)o(ter)i Fs(is)d(a)g(p)q(oin)o(ter) -g(to)g(an)o(y)g(op)q(ening)g(quote)h(c)o(haracter)195 -2670 y(the)k(user)h(t)o(yp)q(ed.)k(Some)15 b(functions)g(c)o(ho)q(ose)g -(to)g(reset)g(this)f(c)o(haracter.)p eop end -%%Page: 46 50 -TeXDict begin 46 49 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(46)1685 149 y([V)l(ariable])-1801 -b Fg(rl_dequote_func_t)29 b(*)d(rl_filename_dequoting_f)q(unction)195 -204 y Fs(A)15 b(p)q(oin)o(ter)f(to)g(a)h(function)f(that)h(will)e(remo) -o(v)o(e)h(application-sp)q(eci\014c)h(quoting)f(c)o(haracters)g(from) -195 259 y(a)i(\014lename)g(b)q(efore)h(completion)e(is)h(attempted,)g -(so)f(those)h(c)o(haracters)g(do)g(not)g(in)o(terfere)g(with)195 -314 y(matc)o(hing)i(the)h(text)g(against)e(names)i(in)g(the)g -(\014lesystem.)31 b(It)19 b(is)f(called)h(with)f Fi(text)q -Fs(,)h(the)g(text)195 369 y(of)h(the)h(w)o(ord)g(to)f(b)q(e)h -(dequoted,)i(and)e Fi(quote)p 1006 369 14 2 v 20 w(c)o(har)s -Fs(,)g(whic)o(h)g(is)g(the)f(quoting)h(c)o(haracter)f(that)195 -423 y(delimits)15 b(the)h(\014lename)g(\(usually)f(`)p -Fr(')p Fs(')g(or)h(`)p Fr(")p Fs('\).)21 b(If)c Fi(quote)p -1185 423 V 19 w(c)o(har)i Fs(is)d(zero,)g(the)g(\014lename)g(w)o(as)f -(not)195 478 y(in)g(an)g(em)o(b)q(edded)i(string.)1685 -574 y([V)l(ariable])-1801 b Fg(rl_linebuf_func_t)29 b(*)d -(rl_char_is_quoted_p)195 629 y Fs(A)18 b(p)q(oin)o(ter)g(to)g(a)g -(function)g(to)g(call)g(that)f(determines)i(whether)f(or)g(not)g(a)g -(sp)q(eci\014c)i(c)o(haracter)195 684 y(in)d(the)g(line)g(bu\013er)g -(is)g(quoted,)h(according)e(to)h(whatev)o(er)f(quoting)h(mec)o(hanism)g -(the)g(program)195 738 y(calling)11 b(Readline)i(uses.)19 -b(The)12 b(function)h(is)e(called)h(with)g(t)o(w)o(o)f(argumen)o(ts:)18 -b Fi(text)q Fs(,)12 b(the)g(text)g(of)g(the)195 793 y(line,)j(and)g -Fi(index)s Fs(,)g(the)g(index)h(of)f(the)g(c)o(haracter)g(in)g(the)g -(line.)20 b(It)15 b(is)g(used)g(to)g(decide)h(whether)f(a)195 -848 y(c)o(haracter)f(found)i(in)f Fr(rl_completer_word_break_)o -(charact)o(ers)d Fs(should)j(b)q(e)h(used)g(to)e(break)195 -903 y(w)o(ords)g(for)h(the)g(completer.)1685 999 y([V)l(ariable])-1801 -b Fg(rl_compignore_func_t)29 b(*)d(rl_ignore_some_compl)q(etions_)q -(functio)q(n)195 1054 y Fs(This)18 b(function,)i(if)e(de\014ned,)j(is)d -(called)g(b)o(y)h(the)g(completer)f(when)i(real)e(\014lename)h -(completion)195 1108 y(is)e(done,)g(after)f(all)g(the)h(matc)o(hing)f -(names)h(ha)o(v)o(e)g(b)q(een)h(generated.)25 b(It)17 -b(is)g(passed)g(a)g Fr(NULL)f Fs(ter-)195 1163 y(minated)f(arra)o(y)f -(of)h(matc)o(hes.)20 b(The)c(\014rst)f(elemen)o(t)g(\()p -Fr(matches[0])p Fs(\))e(is)i(the)h(maximal)e(substring)195 -1218 y(common)g(to)g(all)f(matc)o(hes.)19 b(This)14 b(function)g(can)h -(re-arrange)f(the)g(list)f(of)h(matc)o(hes)g(as)g(required,)195 -1273 y(but)h(eac)o(h)h(elemen)o(t)f(deleted)g(from)g(the)g(arra)o(y)f -(m)o(ust)g(b)q(e)i(freed.)1685 1369 y([V)l(ariable])-1801 -b Fg(rl_icppfunc_t)28 b(*)e(rl_directory_completi)q(on_hoo)q(k)195 -1423 y Fs(This)c(function,)i(if)e(de\014ned,)k(is)c(allo)o(w)o(ed)f(to) -h(mo)q(dify)g(the)h(directory)f(p)q(ortion)g(of)g(\014lenames)195 -1478 y(Readline)c(completes.)26 b(It)17 b(could)h(b)q(e)g(used)g(to)f -(expand)h(sym)o(b)q(olic)f(links)f(or)h(shell)g(v)m(ariables)g(in)195 -1533 y(pathnames.)35 b(It)20 b(is)f(called)h(with)g(the)g(address)g(of) -g(a)g(string)f(\(the)h(curren)o(t)g(directory)f(name\))195 -1588 y(as)f(an)h(argumen)o(t,)g(and)g(ma)o(y)f(mo)q(dify)g(that)g -(string.)30 b(If)19 b(the)g(string)f(is)g(replaced)h(with)f(a)h(new)195 -1643 y(string,)g(the)g(old)g(v)m(alue)g(should)h(b)q(e)f(freed.)33 -b(An)o(y)19 b(mo)q(di\014ed)h(directory)e(name)h(should)g(ha)o(v)o(e)g -(a)195 1697 y(trailing)c(slash.)27 b(The)17 b(mo)q(di\014ed)h(v)m(alue) -g(will)e(b)q(e)i(used)g(as)f(part)g(of)g(the)h(completion,)f(replacing) -195 1752 y(the)f(directory)f(p)q(ortion)g(of)g(the)h(pathname)g(the)g -(user)g(t)o(yp)q(ed.)22 b(A)o(t)15 b(the)h(least,)f(ev)o(en)h(if)g(no)f -(other)195 1807 y(expansion)j(is)f(p)q(erformed,)h(this)f(function)h -(should)g(remo)o(v)o(e)f(an)o(y)g(quote)h(c)o(haracters)f(from)g(the) -195 1862 y(directory)11 b(name,)h(b)q(ecause)h(its)e(result)g(will)g(b) -q(e)h(passed)g(directly)f(to)g Fr(opendir\(\))p Fs(.)18 -b(The)12 b(directory)195 1917 y(completion)k(ho)q(ok)g(returns)g(an)h -(in)o(teger)f(that)f(should)i(b)q(e)g(non-zero)g(if)f(the)h(function)f -(mo)q(di\014es)195 1971 y(its)f(directory)g(argumen)o(t.)20 -b(The)c(function)f(should)h(not)f(mo)q(dify)g(the)h(directory)f -(argumen)o(t)g(if)g(it)195 2026 y(returns)g(0.)1685 2122 -y([V)l(ariable])-1801 b Fg(rl_dequote_func_t)29 b(*)d -(rl_filename_rewrite_hoo)q(k)195 2177 y Fs(If)12 b(non-zero,)h(this)e -(is)g(the)h(address)g(of)g(a)f(function)h(called)f(when)i(reading)e -(directory)g(en)o(tries)h(from)195 2232 y(the)f(\014lesystem)f(for)g -(completion)f(and)i(comparing)f(them)g(to)g(the)h(partial)d(w)o(ord)i -(to)g(b)q(e)h(completed.)195 2286 y(The)g(function)f(should)h(p)q -(erform)f(an)o(y)h(necesary)g(application)e(or)h(system-sp)q(eci\014c)h -(con)o(v)o(ersion)f(on)195 2341 y(the)h(\014lename,)h(suc)o(h)f(as)g -(con)o(v)o(erting)f(b)q(et)o(w)o(een)h(c)o(haracter)g(sets)g(or)f(con)o -(v)o(erting)g(from)h(a)f(\014lesystem)195 2396 y(format)16 -b(to)g(a)h(c)o(haracter)f(input)h(format.)24 b(The)17 -b(function)g(tak)o(es)f(t)o(w)o(o)g(argumen)o(ts:)22 -b Fi(fname)s Fs(,)17 b(the)195 2451 y(\014lename)d(to)g(b)q(e)h(con)o -(v)o(erted,)f(and)g Fi(fnlen)p Fs(,)h(its)e(length)h(in)g(b)o(ytes.)20 -b(It)14 b(m)o(ust)g(either)g(return)g(its)f(\014rst)195 -2506 y(argumen)o(t)i(\(if)f(no)h(con)o(v)o(ersion)g(tak)o(es)g(place\)) -g(or)g(the)g(con)o(v)o(erted)g(\014lename)h(in)f(newly-allo)q(cated)195 -2560 y(memory)l(.)23 b(The)16 b(con)o(v)o(erted)h(form)e(is)h(used)h -(to)f(compare)g(against)f(the)h(w)o(ord)g(to)f(b)q(e)i(completed,)195 -2615 y(and,)i(if)e(it)h(matc)o(hes,)g(is)g(added)g(to)g(the)g(list)f -(of)h(matc)o(hes.)28 b(Readline)19 b(will)d(free)j(the)f(allo)q(cated) -195 2670 y(string.)p eop end -%%Page: 47 51 -TeXDict begin 47 50 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(47)1685 149 y([V)l(ariable])-1801 -b Fg(rl_compdisp_func_t)29 b(*)d(rl_completion_display_)q(matches)q -(_hook)195 204 y Fs(If)11 b(non-zero,)h(then)f(this)g(is)f(the)h -(address)g(of)g(a)g(function)f(to)h(call)f(when)h(completing)g(a)f(w)o -(ord)h(w)o(ould)195 259 y(normally)f(displa)o(y)g(the)h(list)f(of)h(p)q -(ossible)f(matc)o(hes.)18 b(This)11 b(function)g(is)g(called)f(in)h -(lieu)g(of)g(Readline)195 314 y(displa)o(ying)17 b(the)h(list.)28 -b(It)18 b(tak)o(es)g(three)g(argumen)o(ts:)25 b(\()p -Fr(char)14 b(**)p Fi(matc)o(hes)r Fs(,)k Fr(int)g Fi(n)o(um)p -1683 314 14 2 v 20 w(matc)o(hes)r Fs(,)195 369 y Fr(int)13 -b Fi(max)p 368 369 V 19 w(length)p Fs(\))g(where)g Fi(matc)o(hes)i -Fs(is)e(the)g(arra)o(y)f(of)h(matc)o(hing)f(strings,)g -Fi(n)o(um)p 1575 369 V 20 w(matc)o(hes)j Fs(is)e(the)195 -423 y(n)o(um)o(b)q(er)i(of)f(strings)f(in)i(that)f(arra)o(y)l(,)f(and)i -Fi(max)p 1011 423 V 19 w(length)f Fs(is)g(the)h(length)f(of)g(the)h -(longest)f(string)f(in)195 478 y(that)g(arra)o(y)l(.)19 -b(Readline)14 b(pro)o(vides)g(a)f(con)o(v)o(enience)i(function,)f -Fr(rl_display_match_list)p Fs(,)d(that)195 533 y(tak)o(es)17 -b(care)g(of)g(doing)g(the)g(displa)o(y)g(to)f(Readline's)i(output)f -(stream.)26 b(That)16 b(function)i(ma)o(y)e(b)q(e)195 -588 y(called)f(from)f(this)h(ho)q(ok.)1685 684 y([V)l(ariable])-1801 -b Fg(const)27 b(char)g(*)f(rl_basic_word_break_char)q(acters)195 -738 y Fs(The)c(basic)g(list)f(of)h(c)o(haracters)f(that)g(signal)g(a)h -(break)g(b)q(et)o(w)o(een)g(w)o(ords)g(for)f(the)h(completer)195 -793 y(routine.)29 b(The)19 b(default)f(v)m(alue)h(of)f(this)g(v)m -(ariable)g(is)g(the)h(c)o(haracters)f(whic)o(h)g(break)h(w)o(ords)f -(for)195 848 y(completion)c(in)h(Bash:)20 b Fr(")15 b -(\\t\\n\\"\\\\'`@$><=;|&{\(")p Fs(.)1685 944 y([V)l(ariable])-1801 -b Fg(const)27 b(char)g(*)f(rl_basic_quote_character)q(s)195 -999 y Fs(A)15 b(list)f(of)h(quote)g(c)o(haracters)f(whic)o(h)h(can)h -(cause)f(a)g(w)o(ord)g(break.)1685 1095 y([V)l(ariable])-1801 -b Fg(const)27 b(char)g(*)f(rl_completer_word_break_)q(charac)q(ters)195 -1149 y Fs(The)33 b(list)e(of)h(c)o(haracters)g(that)f(signal)h(a)g -(break)g(b)q(et)o(w)o(een)h(w)o(ords)f(for)g Fr(rl_complete_)195 -1204 y(internal\(\))p Fs(.)18 b(The)e(default)f(list)f(is)g(the)i(v)m -(alue)f(of)g Fr(rl_basic_word_break_chara)o(cters)p Fs(.)1685 -1300 y([V)l(ariable])-1801 b Fg(rl_cpvfunc_t)28 b(*)e -(rl_completion_word_bre)q(ak_hoo)q(k)195 1355 y Fs(If)16 -b(non-zero,)g(this)f(is)g(the)h(address)g(of)f(a)h(function)f(to)g -(call)g(when)i(Readline)f(is)f(deciding)h(where)195 1410 -y(to)h(separate)f(w)o(ords)h(for)f(w)o(ord)g(completion.)25 -b(It)18 b(should)f(return)g(a)g(c)o(haracter)f(string)g(lik)o(e)g -Fr(rl_)195 1465 y(completer_word_break_chara)o(cters)d -Fs(to)j(b)q(e)h(used)g(to)f(p)q(erform)g(the)h(curren)o(t)f -(completion.)195 1519 y(The)d(function)f(ma)o(y)f(c)o(ho)q(ose)i(to)f -(set)g Fr(rl_completer_word_break_)o(charact)o(ers)d -Fs(itself.)18 b(If)13 b(the)195 1574 y(function)i(returns)g -Fr(NULL)p Fs(,)f Fr(rl_completer_word_break_chara)o(cters)e -Fs(is)j(used.)1685 1670 y([V)l(ariable])-1801 b Fg(const)27 -b(char)g(*)f(rl_completer_quote_chara)q(cters)195 1725 -y Fs(A)17 b(list)f(of)g(c)o(haracters)g(whic)o(h)h(can)g(b)q(e)g(used)h -(to)e(quote)h(a)f(substring)g(of)h(the)g(line.)24 b(Completion)195 -1780 y(o)q(ccurs)13 b(on)h(the)f(en)o(tire)f(substring,)h(and)g(within) -g(the)g(substring)f Fr(rl_completer_word_break_)195 1834 -y(characters)k Fs(are)h(treated)g(as)h(an)o(y)f(other)g(c)o(haracter,)g -(unless)h(they)f(also)g(app)q(ear)h(within)f(this)195 -1889 y(list.)1685 1985 y([V)l(ariable])-1801 b Fg(const)27 -b(char)g(*)f(rl_filename_quote_charac)q(ters)195 2040 -y Fs(A)17 b(list)f(of)g(c)o(haracters)g(that)g(cause)h(a)g(\014lename)g -(to)f(b)q(e)i(quoted)e(b)o(y)h(the)g(completer)g(when)g(they)195 -2095 y(app)q(ear)e(in)g(a)g(completed)g(\014lename.)20 -b(The)c(default)f(is)f(the)i(n)o(ull)e(string.)1685 2191 -y([V)l(ariable])-1801 b Fg(const)27 b(char)g(*)f(rl_special_prefixes) -195 2245 y Fs(The)14 b(list)f(of)g(c)o(haracters)g(that)g(are)h(w)o -(ord)f(break)h(c)o(haracters,)f(but)h(should)g(b)q(e)g(left)f(in)h -Fi(text)g Fs(when)195 2300 y(it)e(is)f(passed)i(to)f(the)g(completion)f -(function.)19 b(Programs)11 b(can)h(use)h(this)f(to)g(help)g(determine) -h(what)195 2355 y(kind)i(of)f(completing)g(to)g(do.)19 -b(F)l(or)14 b(instance,)h(Bash)f(sets)h(this)f(v)m(ariable)g(to)g -Fr(")p Fs($)p Fr(@")g Fs(so)g(that)g(it)g(can)195 2410 -y(complete)h(shell)g(v)m(ariables)f(and)i(hostnames.)1685 -2506 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_query_items)195 -2560 y Fs(Up)18 b(to)g(this)f(man)o(y)h(items)f(will)g(b)q(e)i(displa)o -(y)o(ed)e(in)h(resp)q(onse)h(to)e(a)h(p)q(ossible-completions)f(call.) -195 2615 y(After)d(that,)f(readline)g(asks)h(the)g(user)g(if)f(she)h -(is)g(sure)g(she)g(w)o(an)o(ts)f(to)g(see)h(them)g(all.)k(The)c -(default)195 2670 y(v)m(alue)h(is)g(100.)k(A)c(negativ)o(e)g(v)m(alue)g -(indicates)g(that)f(Readline)i(should)f(nev)o(er)g(ask)g(the)g(user.)p -eop end -%%Page: 48 52 -TeXDict begin 48 51 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(48)1685 149 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_completion_append_chara)q(cter)195 204 -y Fs(When)17 b(a)f(single)g(completion)g(alternativ)o(e)f(matc)o(hes)h -(at)g(the)h(end)g(of)f(the)h(command)f(line,)h(this)195 -259 y(c)o(haracter)10 b(is)g(app)q(ended)j(to)d(the)g(inserted)h -(completion)f(text.)18 b(The)11 b(default)f(is)g(a)h(space)g(c)o -(haracter)195 314 y(\(`)j('\).)42 b(Setting)22 b(this)g(to)g(the)h(n)o -(ull)f(c)o(haracter)g(\(`)p Fr(\\0)p Fs('\))f(prev)o(en)o(ts)i(an)o -(ything)e(b)q(eing)i(app)q(ended)195 369 y(automatically)l(.)29 -b(This)18 b(can)h(b)q(e)h(c)o(hanged)f(in)f(application-sp)q(eci\014c)h -(completion)f(functions)h(to)195 423 y(pro)o(vide)g(the)h(\\most)f -(sensible)h(w)o(ord)f(separator)g(c)o(haracter")g(according)g(to)g(an)h -(application-)195 478 y(sp)q(eci\014c)c(command)f(line)g(syn)o(tax)f -(sp)q(eci\014cation.)1685 588 y([V)l(ariable])-1801 b -Fg(int)27 b(rl_completion_suppress_app)q(end)195 643 -y Fs(If)17 b(non-zero,)g Fi(rl)p 475 643 14 2 v 19 w(completion)p -712 643 V 19 w(app)q(end)p 875 643 V 22 w(c)o(haracter)i -Fs(is)d(not)g(app)q(ended)i(to)e(matc)o(hes)h(at)f(the)g(end)195 -697 y(of)d(the)h(command)g(line,)f(as)h(describ)q(ed)g(ab)q(o)o(v)o(e.) -19 b(It)14 b(is)g(set)f(to)g(0)h(b)q(efore)g(an)o(y)f(application-sp)q -(eci\014c)195 752 y(completion)h(function)h(is)g(called,)f(and)i(ma)o -(y)e(only)h(b)q(e)h(c)o(hanged)f(within)g(suc)o(h)g(a)g(function.)1685 -862 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_quote_charac)q -(ter)195 917 y Fs(When)18 b(Readline)h(is)e(completing)h(quoted)g -(text,)g(as)f(delimited)h(b)o(y)g(one)g(of)g(the)g(c)o(haracters)f(in) -195 971 y Fi(rl)p 229 971 V 19 w(completer)p 443 971 -V 20 w(quote)p 573 971 V 20 w(c)o(haracters)r Fs(,)i(it)f(sets)h(this)g -(v)m(ariable)g(to)g(the)g(quoting)f(c)o(haracter)h(found.)195 -1026 y(This)c(is)f(set)h(b)q(efore)h(an)o(y)f(application-sp)q -(eci\014c)g(completion)f(function)h(is)g(called.)1685 -1136 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_suppress_quo)q -(te)195 1191 y Fs(If)16 b(non-zero,)h(Readline)f(do)q(es)h(not)e(app)q -(end)j(a)d(matc)o(hing)h(quote)g(c)o(haracter)f(when)i(p)q(erforming) -195 1245 y(completion)11 b(on)h(a)f(quoted)h(string.)18 -b(It)11 b(is)h(set)f(to)g(0)h(b)q(efore)g(an)o(y)f(application-sp)q -(eci\014c)h(completion)195 1300 y(function)j(is)g(called,)f(and)i(ma)o -(y)e(only)h(b)q(e)h(c)o(hanged)f(within)g(suc)o(h)g(a)g(function.)1685 -1410 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_found_quote)195 -1465 y Fs(When)16 b(Readline)g(is)g(completing)f(quoted)g(text,)h(it)f -(sets)g(this)g(v)m(ariable)h(to)f(a)g(non-zero)h(v)m(alue)g(if)195 -1519 y(the)11 b(w)o(ord)e(b)q(eing)i(completed)g(con)o(tains)e(or)i(is) -f(delimited)f(b)o(y)i(an)o(y)f(quoting)g(c)o(haracters,)g(including)195 -1574 y(bac)o(kslashes.)19 b(This)c(is)g(set)g(b)q(efore)g(an)o(y)g -(application-sp)q(eci\014c)g(completion)f(function)h(is)g(called.)1685 -1684 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_mark_symlink)q -(_dirs)195 1738 y Fs(If)16 b(non-zero,)g(a)g(slash)f(will)g(b)q(e)h -(app)q(ended)i(to)d(completed)h(\014lenames)g(that)f(are)g(sym)o(b)q -(olic)h(links)195 1793 y(to)11 b(directory)h(names,)g(sub)s(ject)g(to)f -(the)i(v)m(alue)f(of)g(the)g(user-settable)f Fi(mark-directories)i -Fs(v)m(ariable.)195 1848 y(This)g(v)m(ariable)g(exists)g(so)h(that)f -(application-sp)q(eci\014c)g(completion)g(functions)g(can)h(o)o(v)o -(erride)f(the)195 1903 y(user's)21 b(global)f(preference)i(\(set)e(via) -h(the)g Fi(mark-symlink)o(ed-directories)g Fs(Readline)h(v)m(ariable\)) -195 1958 y(if)c(appropriate.)30 b(This)18 b(v)m(ariable)g(is)h(set)f -(to)g(the)h(user's)g(preference)h(b)q(efore)f(an)o(y)f(application-)195 -2012 y(sp)q(eci\014c)f(completion)e(function)g(is)h(called,)f(so)g -(unless)h(that)f(function)h(mo)q(di\014es)g(the)g(v)m(alue,)g(the)195 -2067 y(user's)f(preferences)h(are)f(honored.)1685 2177 -y([V)l(ariable])-1801 b Fg(int)27 b(rl_ignore_completion_dupli)q(cates) -195 2232 y Fs(If)15 b(non-zero,)h(then)f(duplicates)g(in)g(the)g(matc)o -(hes)g(are)g(remo)o(v)o(ed.)k(The)d(default)f(is)f(1.)1685 -2341 y([V)l(ariable])-1801 b Fg(int)27 b(rl_filename_completion_des)q -(ired)195 2396 y Fs(Non-zero)16 b(means)g(that)f(the)h(results)f(of)h -(the)g(matc)o(hes)f(are)h(to)f(b)q(e)i(treated)e(as)g(\014lenames.)22 -b(This)195 2451 y(is)d Fj(always)24 b Fs(zero)c(when)g(completion)f(is) -h(attempted,)g(and)g(can)g(only)g(b)q(e)h(c)o(hanged)f(within)f(an)195 -2506 y(application-sp)q(eci\014c)g(completion)g(function.)34 -b(If)20 b(it)e(is)i(set)f(to)g(a)h(non-zero)g(v)m(alue)g(b)o(y)f(suc)o -(h)h(a)195 2560 y(function,)11 b(directory)g(names)g(ha)o(v)o(e)g(a)f -(slash)h(app)q(ended)i(and)e(Readline)g(attempts)g(to)f(quote)h(com-) -195 2615 y(pleted)18 b(\014lenames)f(if)g(they)h(con)o(tain)f(an)o(y)g -(c)o(haracters)f(in)i Fr(rl_filename_quote_charact)o(ers)195 -2670 y Fs(and)d Fr(rl_filename_quoting_desired)d Fs(is)j(set)g(to)f(a)h -(non-zero)g(v)m(alue.)p eop end -%%Page: 49 53 -TeXDict begin 49 52 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(49)1685 149 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_filename_quoting_desire)q(d)195 204 -y Fs(Non-zero)14 b(means)g(that)f(the)i(results)e(of)h(the)g(matc)o -(hes)f(are)h(to)f(b)q(e)i(quoted)f(using)g(double)g(quotes)195 -259 y(\(or)20 b(an)i(application-sp)q(eci\014c)e(quoting)h(mec)o -(hanism\))f(if)h(the)g(completed)h(\014lename)f(con)o(tains)195 -314 y(an)o(y)13 b(c)o(haracters)h(in)f Fr(rl_filename_quote_chars)p -Fs(.)j(This)e(is)f Fj(always)18 b Fs(non-zero)c(when)g(comple-)195 -369 y(tion)f(is)g(attempted,)h(and)g(can)g(only)f(b)q(e)h(c)o(hanged)h -(within)e(an)g(application-sp)q(eci\014c)h(completion)195 -423 y(function.)k(The)11 b(quoting)f(is)g(e\013ected)g(via)g(a)g(call)g -(to)g(the)h(function)f(p)q(oin)o(ted)g(to)g(b)o(y)h Fr(rl_filename_)195 -478 y(quoting_function)p Fs(.)1685 570 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_attempted_completion_ov)q(er)195 625 -y Fs(If)47 b(an)g(application-sp)q(eci\014c)g(completion)f(function)h -(assigned)f(to)h Fr(rl_attempted_)195 680 y(completion_function)24 -b Fs(sets)i(this)g(v)m(ariable)g(to)g(a)g(non-zero)h(v)m(alue,)i -(Readline)e(will)e(not)195 735 y(p)q(erform)15 b(its)f(default)g -(\014lename)h(completion)f(ev)o(en)h(if)f(the)h(application's)e -(completion)h(function)195 790 y(returns)h(no)g(matc)o(hes.)20 -b(It)15 b(should)g(b)q(e)h(set)f(only)g(b)o(y)g(an)g(application's)e -(completion)i(function.)1685 882 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_sort_completion_matches)195 936 y Fs(If)15 -b(an)g(application)f(sets)g(this)h(v)m(ariable)f(to)g(0,)g(Readline)i -(will)d(not)i(sort)f(the)h(list)e(of)i(completions)195 -991 y(\(whic)o(h)d(implies)f(that)h(it)f(cannot)h(remo)o(v)o(e)g(an)o -(y)g(duplicate)g(completions\).)18 b(The)12 b(default)g(v)m(alue)g(is) -195 1046 y(1,)j(whic)o(h)g(means)h(that)f(Readline)h(will)e(sort)h(the) -g(completions)g(and,)h(dep)q(ending)g(on)g(the)g(v)m(alue)195 -1101 y(of)f Fr(rl_ignore_completion_dup)o(licates)p Fs(,)c(will)j -(attempt)g(to)h(remo)o(v)o(e)f(duplicate)h(matc)o(hes.)1685 -1193 y([V)l(ariable])-1801 b Fg(int)27 b(rl_completion_type)195 -1248 y Fs(Set)18 b(to)e(a)i(c)o(haracter)f(describing)g(the)g(t)o(yp)q -(e)h(of)f(completion)g(Readline)h(is)f(curren)o(tly)g(attempt-)195 -1303 y(ing;)g(see)g(the)f(description)g(of)h Fr -(rl_complete_internal\(\))c Fs(\(see)k(Section)g(2.6.2)e([Completion) -195 1357 y(F)l(unctions],)j(page)g(44\))g(for)f(the)i(list)e(of)h(c)o -(haracters.)28 b(This)18 b(is)g(set)g(to)g(the)g(appropriate)g(v)m -(alue)195 1412 y(b)q(efore)e(an)o(y)g(application-sp)q(eci\014c)f -(completion)g(function)h(is)f(called,)g(allo)o(wing)f(suc)o(h)i -(functions)195 1467 y(to)f(presen)o(t)g(the)g(same)g(in)o(terface)f(as) -h Fr(rl_complete\(\))p Fs(.)1685 1559 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_completion_invoking_key)195 1614 y Fs(Set)20 -b(to)g(the)h(\014nal)f(c)o(haracter)f(in)i(the)f(k)o(ey)g(sequence)i -(that)d(in)o(v)o(ok)o(ed)h(one)g(of)g(the)h(completion)195 -1669 y(functions)e(that)f(call)f Fr(rl_complete_internal\(\))p -Fs(.)28 b(This)18 b(is)h(set)f(to)g(the)h(appropriate)f(v)m(alue)195 -1724 y(b)q(efore)d(an)o(y)g(application-sp)q(eci\014c)g(completion)g -(function)g(is)f(called.)1685 1816 y([V)l(ariable])-1801 -b Fg(int)27 b(rl_inhibit_completion)195 1870 y Fs(If)14 -b(this)g(v)m(ariable)f(is)h(non-zero,)g(completion)g(is)f(inhibited.)19 -b(The)c(completion)e(c)o(haracter)g(will)g(b)q(e)195 -1925 y(inserted)i(as)g(an)o(y)g(other)g(b)q(ound)h(to)e -Fr(self-insert)p Fs(.)75 2025 y Fh(2.6.4)30 b(A)21 b(Short)f -(Completion)g(Example)75 2098 y Fs(Here)15 b(is)f(a)g(small)f -(application)g(demonstrating)h(the)g(use)h(of)f(the)h(GNU)f(Readline)h -(library)l(.)k(It)14 b(is)g(called)75 2153 y Fr(fileman)p -Fs(,)j(and)h(the)g(source)g(co)q(de)g(resides)g(in)f(`)p -Fr(examples/fileman.c)p Fs('.)25 b(This)17 b(sample)g(application)75 -2208 y(pro)o(vides)c(completion)f(of)g(command)h(names,)g(line)g -(editing)g(features,)f(and)i(access)f(to)f(the)h(history)g(list.)p -eop end -%%Page: 50 54 -TeXDict begin 50 53 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(50)195 149 y Fe(/*)19 b(fileman.c)d(--)j -(A)g(tiny)f(applicatio)o(n)e(which)i(demonstrat)o(es)e(how)j(to)f(use)h -(the)254 193 y(GNU)f(Readline)f(library.)36 b(This)18 -b(applicatio)o(n)e(interactive)o(ly)g(allows)h(users)254 -237 y(to)i(manipulat)o(e)d(files)i(and)h(their)e(modes.)h(*/)195 -324 y(#ifdef)f(HAVE_CONFI)o(G_H)195 367 y(#)39 b(include)17 -b()195 411 y(#endif)195 498 y(#include)g()195 542 y(#ifdef)g(HAVE_SYS_F)o(ILE)o(_H)195 585 -y(#)39 b(include)17 b()195 629 y(#endif)195 -672 y(#include)g()195 760 y(#ifdef)g(HAVE_UNIST)o -(D_H)195 803 y(#)39 b(include)17 b()195 -847 y(#endif)195 934 y(#include)g()195 978 -y(#include)g()195 1021 y(#include)g()195 -1108 y(#if)h(defined)f(\(HAVE_STRI)o(NG_)o(H\))195 1152 -y(#)39 b(include)17 b()195 1196 y(#else)h(/*)h(!HAVE_ST)o -(RIN)o(G_)o(H)e(*/)195 1239 y(#)39 b(include)17 b()195 -1283 y(#endif)g(/*)i(!HAVE_STRI)o(NG)o(_H)d(*/)195 1370 -y(#ifdef)h(HAVE_STDLI)o(B_H)195 1413 y(#)39 b(include)17 -b()195 1457 y(#endif)195 1544 y(#include)g()195 -1631 y(#include)g()195 -1675 y(#include)g()195 -1762 y(extern)g(char)h(*xmalloc)f(PARAMS\(\(s)o(ize)o(_t)o(\)\);)195 -1849 y(/*)i(The)f(names)g(of)h(functions)d(that)i(actually)f(do)h(the)h -(manipulat)o(ion)o(.)d(*/)195 1893 y(int)i(com_list)f(PARAMS\(\(c)o -(har)f(*\)\);)195 1936 y(int)i(com_view)f(PARAMS\(\(c)o(har)f(*\)\);) -195 1980 y(int)i(com_rename)e(PARAMS\(\(ch)o(ar)g(*\)\);)195 -2024 y(int)i(com_stat)f(PARAMS\(\(c)o(har)f(*\)\);)195 -2067 y(int)i(com_pwd)f(PARAMS\(\(ch)o(ar)f(*\)\);)195 -2111 y(int)i(com_delete)e(PARAMS\(\(ch)o(ar)g(*\)\);)195 -2154 y(int)i(com_help)f(PARAMS\(\(c)o(har)f(*\)\);)195 -2198 y(int)i(com_cd)g(PARAMS\(\(c)o(ha)o(r)f(*\)\);)195 -2242 y(int)h(com_quit)f(PARAMS\(\(c)o(har)f(*\)\);)195 -2329 y(/*)j(A)g(structure)d(which)i(contains)e(information)g(on)j(the)f -(commands)f(this)h(program)254 2372 y(can)g(understand)o(.)f(*/)195 -2460 y(typedef)g(struct)g({)234 2503 y(char)h(*name;)g(/*)g(User)g -(printable)f(name)h(of)h(the)f(function.)e(*/)234 2547 -y(rl_icpfunc)o(_t)g(*func;)h(/*)i(Function)e(to)i(call)f(to)h(do)f(the) -h(job.)f(*/)234 2590 y(char)g(*doc;)g(/*)h(Documenta)o(tio)o(n)d(for)j -(this)f(function.)36 b(*/)195 2634 y(})19 b(COMMAND;)p -eop end -%%Page: 51 55 -TeXDict begin 51 54 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(51)195 193 y Fe(COMMAND)17 -b(commands[)o(])g(=)i({)234 237 y({)g("cd",)f(com_cd,)f("Change)g(to)i -(directory)d(DIR")i(},)234 280 y({)h("delete",)e(com_dele)o(te,)f -("Delete)h(FILE")h(},)234 324 y({)h("help",)e(com_help,)f("Display)h -(this)h(text")g(},)234 367 y({)h("?",)g(com_help)o(,)e("Synonym)f(for)j -(`help'")e(},)234 411 y({)i("list",)e(com_list,)f("List)i(files)g(in)h -(DIR")f(},)234 455 y({)h("ls",)f(com_list,)e("Synonym)h(for)h(`list'")f -(},)234 498 y({)i("pwd",)f(com_pwd,)e("Print)i(the)g(current)f(working) -g(directory)o(")g(},)234 542 y({)i("quit",)e(com_quit,)f("Quit)i(using) -g(Fileman")e(},)234 585 y({)j("rename",)e(com_rena)o(me,)f("Rename)h -(FILE)h(to)h(NEWNAME")d(},)234 629 y({)j("stat",)e(com_stat,)f("Print)i -(out)g(statistics)e(on)j(FILE")f(},)234 672 y({)h("view",)e(com_view,)f -("View)i(the)h(contents)d(of)j(FILE")f(},)234 716 y({)h(\(char)f -(*\)NULL,)f(\(rl_icpfun)o(c_)o(t)g(*\)NULL,)g(\(char)g(*\)NULL)h(})195 -760 y(};)195 847 y(/*)h(Forward)e(declarati)o(on)o(s.)f(*/)195 -890 y(char)i(*stripwhit)o(e)e(\(\);)195 934 y(COMMAND)h(*find_com)o -(man)o(d)f(\(\);)195 1021 y(/*)j(The)f(name)g(of)h(this)f(program,)f -(as)i(taken)e(from)h(argv[0].)f(*/)195 1065 y(char)h(*progname;)195 -1152 y(/*)h(When)f(non-zero,)e(this)i(global)f(means)h(the)h(user)f(is) -g(done)h(using)e(this)h(program.)f(*/)195 1196 y(int)h(done;)195 -1283 y(char)g(*)195 1326 y(dupstr)f(\(s\))293 1370 y(char)h(*s;)195 -1413 y({)234 1457 y(char)g(*r;)234 1544 y(r)h(=)h(xmalloc)d(\(strlen)f -(\(s\))j(+)g(1\);)234 1588 y(strcpy)f(\(r,)g(s\);)234 -1631 y(return)g(\(r\);)195 1675 y(})195 1762 y(main)g(\(argc,)f(argv\)) -293 1806 y(int)i(argc;)293 1849 y(char)f(**argv;)195 -1893 y({)234 1936 y(char)g(*line,)g(*s;)234 2024 y(progname)f(=)i -(argv[0];)234 2111 y(initialize)o(_re)o(ad)o(lin)o(e)d(\(\);)j(/*)g -(Bind)f(our)g(completer.)e(*/)234 2198 y(/*)j(Loop)f(reading)f(and)h -(executing)f(lines)g(until)h(the)g(user)h(quits.)e(*/)234 -2242 y(for)i(\()g(;)g(done)f(==)h(0;)g(\))273 2285 y({)313 -2329 y(line)f(=)h(readline)d(\("FileMan:)g("\);)313 2416 -y(if)j(\(!line\))352 2460 y(break;)313 2547 y(/*)g(Remove)e(leading)g -(and)h(trailing)f(whitespac)o(e)f(from)j(the)f(line.)372 -2590 y(Then,)f(if)i(there)f(is)h(anything)d(left,)i(add)g(it)h(to)g -(the)f(history)f(list)372 2634 y(and)h(execute)f(it.)h(*/)p -eop end -%%Page: 52 56 -TeXDict begin 52 55 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(52)313 149 y Fe(s)19 b(=)g(stripwhite)d -(\(line\);)313 237 y(if)j(\(*s\))352 280 y({)391 324 -y(add_histor)o(y)d(\(s\);)391 367 y(execute_li)o(ne)g(\(s\);)352 -411 y(})313 498 y(free)i(\(line\);)273 542 y(})234 585 -y(exit)g(\(0\);)195 629 y(})195 716 y(/*)h(Execute)e(a)i(command)e -(line.)h(*/)195 760 y(int)195 803 y(execute_li)o(ne)e(\(line\))293 -847 y(char)i(*line;)195 890 y({)234 934 y(register)f(int)h(i;)234 -978 y(COMMAND)f(*command;)234 1021 y(char)h(*word;)234 -1108 y(/*)h(Isolate)e(the)h(command)f(word.)h(*/)234 -1152 y(i)h(=)h(0;)234 1196 y(while)e(\(line[i])e(&&)j(whitespace)d -(\(line[i]\)\))273 1239 y(i++;)234 1283 y(word)i(=)i(line)e(+)h(i;)234 -1370 y(while)f(\(line[i])e(&&)j(!whitespac)o(e)e(\(line[i]\))o(\))273 -1413 y(i++;)234 1501 y(if)i(\(line[i]\))273 1544 y(line[i++])e(=)i -('\\0';)234 1631 y(command)e(=)i(find_comma)o(nd)d(\(word\);)234 -1719 y(if)j(\(!command\))273 1762 y({)313 1806 y(fprintf)e(\(stderr,)f -("\045s:)i(No)h(such)f(command)f(for)h(FileMan.\\n")o(,)e(word\);)313 -1849 y(return)h(\(-1\);)273 1893 y(})234 1980 y(/*)i(Get)g(argument)d -(to)j(command,)d(if)j(any.)f(*/)234 2024 y(while)g(\(whitespa)o(ce)e -(\(line[i]\)\))273 2067 y(i++;)234 2154 y(word)i(=)i(line)e(+)h(i;)234 -2242 y(/*)g(Call)f(the)h(function)o(.)e(*/)234 2285 y(return)h -(\(\(*\(comm)o(and)o(->)o(fun)o(c\)\))e(\(word\)\);)195 -2329 y(})195 2416 y(/*)j(Look)f(up)h(NAME)f(as)h(the)f(name)g(of)h(a)g -(command,)e(and)h(return)g(a)h(pointer)e(to)i(that)254 -2460 y(command.)36 b(Return)17 b(a)i(NULL)g(pointer)d(if)j(NAME)f -(isn't)g(a)h(command)e(name.)h(*/)195 2503 y(COMMAND)f(*)195 -2547 y(find_comma)o(nd)f(\(name\))293 2590 y(char)i(*name;)195 -2634 y({)p eop end -%%Page: 53 57 -TeXDict begin 53 56 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(53)234 149 y Fe(register)17 -b(int)h(i;)234 237 y(for)h(\(i)g(=)g(0;)g(commands)o([i])o(.na)o(me)o -(;)e(i++\))273 280 y(if)i(\(strcmp)e(\(name,)g(commands[i])o(.n)o(ame)o -(\))g(==)h(0\))313 324 y(return)f(\(&command)o(s[i)o(]\);)234 -411 y(return)h(\(\(COMMAN)o(D)f(*\)NULL\);)195 455 y(})195 -542 y(/*)i(Strip)f(whitespa)o(ce)e(from)i(the)h(start)e(and)i(end)f(of) -h(STRING.)37 b(Return)17 b(a)i(pointer)254 585 y(into)f(STRING.)f(*/) -195 629 y(char)h(*)195 672 y(stripwhite)e(\(string\))293 -716 y(char)i(*string;)195 760 y({)234 803 y(register)f(char)h(*s,)g -(*t;)234 890 y(for)h(\(s)g(=)g(string;)e(whitespac)o(e)f(\(*s\);)i -(s++\))273 934 y(;)234 1021 y(if)h(\(*s)g(==)f(0\))273 -1065 y(return)g(\(s\);)234 1152 y(t)h(=)h(s)f(+)g(strlen)e(\(s\))i(-)g -(1;)234 1196 y(while)f(\(t)h(>)g(s)g(&&)g(whitespace)d(\(*t\)\))273 -1239 y(t--;)234 1283 y(*++t)i(=)i('\\0';)234 1370 y(return)e(s;)195 -1413 y(})195 1501 y(/*)h(*********)o(***)o(**)o(***)o(**)o(***)o(***)o -(**)o(***)o(**)o(***)o(***)o(**)o(***)o(**)o(***)o(***)o(**)o(***)o(**) -o(***)o(***)d(*/)195 1544 y(/*)1294 b(*/)195 1588 y(/*)352 -b(Interface)16 b(to)j(Readline)e(Completio)o(n)311 b(*/)195 -1631 y(/*)1294 b(*/)195 1675 y(/*)19 b(*********)o(***)o(**)o(***)o(**) -o(***)o(***)o(**)o(***)o(**)o(***)o(***)o(**)o(***)o(**)o(***)o(***)o -(**)o(***)o(**)o(***)o(***)d(*/)195 1762 y(char)i(*command_g)o(en)o -(era)o(to)o(r)f(PARAMS\(\(c)o(on)o(st)f(char)i(*,)h(int\)\);)195 -1806 y(char)f(**fileman_)o(co)o(mpl)o(et)o(ion)e(PARAMS\(\(c)o(ons)o(t) -h(char)h(*,)g(int,)h(int\)\);)195 1893 y(/*)g(Tell)f(the)g(GNU)h -(Readline)d(library)h(how)i(to)g(complete)o(.)36 b(We)19 -b(want)f(to)h(try)g(to)f(complete)254 1936 y(on)h(command)e(names)g(if) -i(this)f(is)h(the)f(first)g(word)g(in)h(the)g(line,)e(or)i(on)g -(filenames)254 1980 y(if)g(not.)f(*/)195 2024 y(initialize)o(_r)o(ead)o -(li)o(ne)e(\(\))195 2067 y({)234 2111 y(/*)j(Allow)f(condition)o(al)e -(parsing)h(of)i(the)f(~/.inputrc)e(file.)i(*/)234 2154 -y(rl_readlin)o(e_n)o(am)o(e)f(=)i("FileMan")o(;)234 2242 -y(/*)g(Tell)f(the)h(complete)o(r)e(that)h(we)h(want)f(a)h(crack)f -(first.)f(*/)234 2285 y(rl_attempt)o(ed_)o(co)o(mpl)o(et)o(ion)o(_fu)o -(nc)o(tio)o(n)f(=)k(fileman_c)o(om)o(ple)o(tio)o(n;)195 -2329 y(})195 2416 y(/*)f(Attempt)e(to)i(complete)d(on)j(the)f(contents) -f(of)i(TEXT.)37 b(START)18 b(and)g(END)h(bound)e(the)254 -2460 y(region)g(of)i(rl_line_b)o(uff)o(er)d(that)i(contains)f(the)h -(word)g(to)h(complete.)36 b(TEXT)18 b(is)254 2503 y(the)g(word)g(to)h -(complete.)36 b(We)19 b(can)f(use)h(the)f(entire)f(contents)g(of)i -(rl_line_b)o(uff)o(er)254 2547 y(in)g(case)f(we)h(want)f(to)g(do)h -(some)f(simple)g(parsing.)36 b(Return)17 b(the)i(array)e(of)i(matches,) -254 2590 y(or)g(NULL)f(if)h(there)e(aren't)h(any.)g(*/)195 -2634 y(char)g(**)p eop end -%%Page: 54 58 -TeXDict begin 54 57 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(54)195 149 y Fe(fileman_co)o(mp)o(let)o -(io)o(n)17 b(\(text,)g(start,)g(end\))293 193 y(const)h(char)g(*text;) -293 237 y(int)h(start,)e(end;)195 280 y({)234 324 y(char)h(**matches;) -234 411 y(matches)f(=)i(\(char)f(**\)NULL;)234 498 y(/*)h(If)g(this)f -(word)g(is)h(at)g(the)f(start)g(of)h(the)f(line,)g(then)g(it)h(is)g(a)g -(command)293 542 y(to)g(complete.)36 b(Otherwise)16 b(it)j(is)f(the)h -(name)f(of)h(a)g(file)f(in)h(the)f(current)293 585 y(directory.)e(*/) -234 629 y(if)j(\(start)e(==)i(0\))273 672 y(matches)e(=)j(rl_compl)o -(eti)o(on_)o(ma)o(tch)o(es)c(\(text,)h(command_gen)o(er)o(ato)o(r\))o -(;)234 760 y(return)h(\(matches)o(\);)195 803 y(})195 -890 y(/*)h(Generator)d(function)g(for)j(command)e(completio)o(n.)36 -b(STATE)18 b(lets)g(us)g(know)h(whether)254 934 y(to)g(start)e(from)h -(scratch;)f(without)g(any)h(state)g(\(i.e.)g(STATE)f(==)i(0\),)g(then)f -(we)254 978 y(start)g(at)g(the)h(top)f(of)h(the)g(list.)e(*/)195 -1021 y(char)h(*)195 1065 y(command_ge)o(ne)o(rat)o(or)e(\(text,)h -(state\))293 1108 y(const)h(char)g(*text;)293 1152 y(int)h(state;)195 -1196 y({)234 1239 y(static)f(int)g(list_inde)o(x,)e(len;)234 -1283 y(char)i(*name;)234 1370 y(/*)h(If)g(this)f(is)h(a)g(new)f(word)h -(to)f(complete,)f(initiali)o(ze)f(now.)38 b(This)18 b(includes)293 -1413 y(saving)f(the)i(length)e(of)i(TEXT)f(for)g(efficiency,)e(and)i -(initializi)o(ng)e(the)j(index)293 1457 y(variable)e(to)h(0.)h(*/)234 -1501 y(if)g(\(!state\))273 1544 y({)313 1588 y(list_inde)o(x)d(=)k(0;) -313 1631 y(len)e(=)h(strlen)f(\(text\);)273 1675 y(})234 -1762 y(/*)h(Return)e(the)i(next)f(name)g(which)g(partially)e(matches)h -(from)h(the)g(command)f(list.)h(*/)234 1806 y(while)g(\(name)g(=)h -(commands[)o(lis)o(t_)o(ind)o(ex)o(].n)o(ame)o(\))273 -1849 y({)313 1893 y(list_inde)o(x+)o(+;)313 1980 y(if)g(\(strncmp)d -(\(name,)h(text,)h(len\))g(==)h(0\))352 2024 y(return)e(\(dupstr\(na)o -(me\))o(\);)273 2067 y(})234 2154 y(/*)i(If)g(no)g(names)e(matched,)g -(then)h(return)f(NULL.)h(*/)234 2198 y(return)g(\(\(char)f(*\)NULL\);) -195 2242 y(})195 2329 y(/*)i(*********)o(***)o(**)o(***)o(**)o(***)o -(***)o(**)o(***)o(**)o(***)o(***)o(**)o(***)o(**)o(***)o(***)o(**)o -(***)o(**)o(***)o(***)d(*/)195 2372 y(/*)1294 b(*/)195 -2416 y(/*)450 b(FileMan)17 b(Commands)527 b(*/)195 2460 -y(/*)1294 b(*/)195 2503 y(/*)19 b(*********)o(***)o(**)o(***)o(**)o -(***)o(***)o(**)o(***)o(**)o(***)o(***)o(**)o(***)o(**)o(***)o(***)o -(**)o(***)o(**)o(***)o(***)d(*/)195 2590 y(/*)j(String)e(to)i(pass)f -(to)h(system)e(\(\).)38 b(This)18 b(is)h(for)g(the)f(LIST,)g(VIEW)g -(and)g(RENAME)254 2634 y(commands.)e(*/)p eop end -%%Page: 55 59 -TeXDict begin 55 58 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(55)195 149 y Fe(static)17 -b(char)h(syscom[102)o(4];)195 237 y(/*)h(List)f(the)g(file\(s\))f -(named)h(in)h(arg.)f(*/)195 280 y(com_list)f(\(arg\))293 -324 y(char)h(*arg;)195 367 y({)234 411 y(if)h(\(!arg\))273 -455 y(arg)g(=)g("";)234 542 y(sprintf)e(\(syscom,)g("ls)h(-FClg)g -(\045s",)g(arg\);)234 585 y(return)g(\(system)e(\(syscom\)\);)195 -629 y(})195 716 y(com_view)h(\(arg\))293 760 y(char)h(*arg;)195 -803 y({)234 847 y(if)h(\(!valid_ar)o(gu)o(men)o(t)d(\("view",)h -(arg\)\))273 890 y(return)h(1;)195 978 y(#if)g(defined)f(\(__MSDOS__)o -(\))234 1021 y(/*)i(more.com)e(doesn't)f(grok)j(slashes)d(in)j -(pathnames)d(*/)234 1065 y(sprintf)h(\(syscom,)g("less)g(\045s",)h -(arg\);)195 1108 y(#else)234 1152 y(sprintf)f(\(syscom,)g("more)g -(\045s",)h(arg\);)195 1196 y(#endif)234 1239 y(return)g(\(system)e -(\(syscom\)\);)195 1283 y(})195 1370 y(com_rename)g(\(arg\))293 -1413 y(char)i(*arg;)195 1457 y({)234 1501 y(too_danger)o(ous)e -(\("rename")o(\);)234 1544 y(return)i(\(1\);)195 1588 -y(})195 1675 y(com_stat)f(\(arg\))293 1719 y(char)h(*arg;)195 -1762 y({)234 1806 y(struct)g(stat)g(finfo;)234 1893 y(if)h(\(!valid_ar) -o(gu)o(men)o(t)d(\("stat",)h(arg\)\))273 1936 y(return)h(\(1\);)234 -2024 y(if)h(\(stat)f(\(arg,)f(&finfo\))g(==)i(-1\))273 -2067 y({)313 2111 y(perror)e(\(arg\);)313 2154 y(return)g(\(1\);)273 -2198 y(})234 2285 y(printf)h(\("Statis)o(tic)o(s)e(for)j(`\045s':\\n",) -d(arg\);)234 2372 y(printf)i(\("\045s)g(has)g(\045d)h(link\045s,)e(and) -h(is)h(\045d)g(byte\045s)e(in)i(length.\\n")o(,)234 2416 -y(arg,)391 2460 y(finfo.st_n)o(li)o(nk,)391 2503 y(\(finfo.st_)o(nl)o -(ink)d(==)j(1\))g(?)g("")g(:)g("s",)391 2547 y(finfo.st_s)o(iz)o(e,)391 -2590 y(\(finfo.st_)o(si)o(ze)d(==)j(1\))g(?)g("")g(:)g("s"\);)234 -2634 y(printf)f(\("Inode)e(Last)i(Change)g(at:)g(\045s",)g(ctime)g -(\(&finfo.st)o(_c)o(tim)o(e\))o(\);)p eop end -%%Page: 56 60 -TeXDict begin 56 59 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(56)234 149 y Fe(printf)18 -b(\(")116 b(Last)18 b(access)g(at:)g(\045s",)g(ctime)g(\(&finfo.st)o -(_a)o(tim)o(e\))o(\);)234 193 y(printf)g(\(")77 b(Last)18 -b(modified)f(at:)h(\045s",)g(ctime)g(\(&finfo.st)o(_m)o(tim)o(e\))o -(\);)234 237 y(return)g(\(0\);)195 280 y(})195 367 y(com_delete)e -(\(arg\))293 411 y(char)i(*arg;)195 455 y({)234 498 y(too_danger)o(ous) -e(\("delete")o(\);)234 542 y(return)i(\(1\);)195 585 -y(})195 672 y(/*)h(Print)f(out)g(help)g(for)g(ARG,)h(or)f(for)h(all)f -(of)h(the)g(commands)d(if)j(ARG)f(is)254 716 y(not)g(present.)f(*/)195 -760 y(com_help)g(\(arg\))293 803 y(char)h(*arg;)195 847 -y({)234 890 y(register)f(int)h(i;)234 934 y(int)h(printed)e(=)i(0;)234 -1021 y(for)g(\(i)g(=)g(0;)g(commands)o([i])o(.na)o(me)o(;)e(i++\))273 -1065 y({)313 1108 y(if)i(\(!*arg)e(||)i(\(strcmp)e(\(arg,)g(commands[i) -o(].n)o(am)o(e\))f(==)j(0\)\))352 1152 y({)391 1196 y(printf)e -(\("\045s\\t\\t\045s.)o(\\n)o(",)f(commands[i)o(].n)o(am)o(e,)g -(commands[i)o(].d)o(oc\))o(;)391 1239 y(printed++;)352 -1283 y(})273 1326 y(})234 1413 y(if)j(\(!printed\))273 -1457 y({)313 1501 y(printf)e(\("No)h(commands)f(match)g(`\045s'.)38 -b(Possibil)o(tie)o(s)17 b(are:\\n",)f(arg\);)313 1588 -y(for)i(\(i)h(=)g(0;)g(commands[i)o(].)o(nam)o(e;)d(i++\))352 -1631 y({)391 1675 y(/*)j(Print)f(in)g(six)h(columns.)d(*/)391 -1719 y(if)j(\(printed)d(==)j(6\))430 1762 y({)470 1806 -y(printed)d(=)k(0;)470 1849 y(printf)d(\("\\n"\);)430 -1893 y(})391 1980 y(printf)g(\("\045s\\t",)g(commands[)o(i].)o(nam)o -(e\))o(;)391 2024 y(printed++;)352 2067 y(})313 2154 -y(if)i(\(printed)o(\))352 2198 y(printf)e(\("\\n"\);)273 -2242 y(})234 2285 y(return)h(\(0\);)195 2329 y(})195 -2416 y(/*)h(Change)e(to)i(the)f(directory)f(ARG.)h(*/)195 -2460 y(com_cd)f(\(arg\))293 2503 y(char)h(*arg;)195 2547 -y({)234 2590 y(if)h(\(chdir)e(\(arg\))h(==)h(-1\))273 -2634 y({)p eop end -%%Page: 57 61 -TeXDict begin 57 60 bop 75 -58 a Fs(Chapter)15 b(2:)k(Programming)14 -b(with)g(GNU)h(Readline)842 b(57)313 149 y Fe(perror)17 -b(\(arg\);)313 193 y(return)g(1;)273 237 y(})234 324 -y(com_pwd)g(\(""\);)234 367 y(return)h(\(0\);)195 411 -y(})195 498 y(/*)h(Print)f(out)g(the)g(current)f(working)g(directory.)f -(*/)195 542 y(com_pwd)h(\(ignore\))293 585 y(char)h(*ignore;)195 -629 y({)234 672 y(char)g(dir[1024],)e(*s;)234 760 y(s)j(=)h(getcwd)d -(\(dir,)h(sizeof\(di)o(r\))e(-)j(1\);)234 803 y(if)g(\(s)g(==)g(0\))273 -847 y({)313 890 y(printf)e(\("Error)g(getting)g(pwd:)h(\045s\\n",)f -(dir\);)313 934 y(return)g(1;)273 978 y(})234 1065 y(printf)h -(\("Curren)o(t)f(directory)f(is)j(\045s\\n",)e(dir\);)234 -1108 y(return)h(0;)195 1152 y(})195 1239 y(/*)h(The)f(user)g(wishes)g -(to)g(quit)h(using)e(this)h(program.)36 b(Just)19 b(set)f(DONE)g -(non-zero.)e(*/)195 1283 y(com_quit)h(\(arg\))293 1326 -y(char)h(*arg;)195 1370 y({)234 1413 y(done)g(=)i(1;)234 -1457 y(return)e(\(0\);)195 1501 y(})195 1588 y(/*)h(Function)d(which)i -(tells)g(you)g(that)g(you)h(can't)e(do)i(this.)f(*/)195 -1631 y(too_danger)o(ou)o(s)f(\(caller\))293 1675 y(char)h(*caller;)195 -1719 y({)234 1762 y(fprintf)f(\(stderr,)411 1806 y("\045s:)h(Too)g -(dangerous)e(for)j(me)g(to)g(distribu)o(te.)36 b(Write)17 -b(it)i(yourself.\\)o(n")o(,)411 1849 y(caller\);)195 -1893 y(})195 1980 y(/*)g(Return)e(non-zero)g(if)h(ARG)h(is)g(a)g(valid) -f(argument)e(for)j(CALLER,)e(else)h(print)254 2024 y(an)h(error)e -(message)g(and)i(return)e(zero.)h(*/)195 2067 y(int)195 -2111 y(valid_argu)o(me)o(nt)e(\(caller,)h(arg\))293 2154 -y(char)h(*caller,)f(*arg;)195 2198 y({)234 2242 y(if)i(\(!arg)f(||)h -(!*arg\))273 2285 y({)313 2329 y(fprintf)e(\(stderr,)f("\045s:)i -(Argument)f(required.)o(\\n)o(",)f(caller\);)313 2372 -y(return)h(\(0\);)273 2416 y(})234 2503 y(return)h(\(1\);)195 -2547 y(})p eop end -%%Page: 58 62 -TeXDict begin 58 61 bop 75 -58 a Fs(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(58)75 149 -y Fo(App)r(endix)26 b(A)41 b(GNU)27 b(F)-7 b(ree)26 b(Do)r(cumen)n -(tation)j(License)679 251 y Fs(V)l(ersion)15 b(1.3,)f(3)h(No)o(v)o(em)o -(b)q(er)g(2008)195 318 y(Cop)o(yrigh)o(t)421 317 y(c)409 -318 y Fp(\015)g Fs(2000,)f(2001,)f(2002,)h(2007,)g(2008)g(F)l(ree)h -(Soft)o(w)o(are)f(F)l(oundation,)g(Inc.)195 373 y Fr(http://fsf.org/) -195 482 y Fs(Ev)o(ery)o(one)h(is)f(p)q(ermitted)h(to)g(cop)o(y)g(and)g -(distribute)g(v)o(erbatim)f(copies)195 537 y(of)h(this)f(license)i(do)q -(cumen)o(t,)f(but)g(c)o(hanging)g(it)f(is)h(not)g(allo)o(w)o(ed.)100 -603 y(0.)29 b(PREAMBLE)165 670 y(The)19 b(purp)q(ose)g(of)f(this)g -(License)i(is)e(to)g(mak)o(e)g(a)g(man)o(ual,)g(textb)q(o)q(ok,)h(or)f -(other)g(functional)g(and)165 725 y(useful)d(do)q(cumen)o(t)h -Fi(free)h Fs(in)e(the)g(sense)h(of)f(freedom:)k(to)c(assure)g(ev)o(ery) -o(one)f(the)i(e\013ectiv)o(e)e(freedom)165 780 y(to)h(cop)o(y)h(and)g -(redistribute)f(it,)f(with)h(or)g(without)g(mo)q(difying)g(it,)g -(either)g(commercially)f(or)i(non-)165 834 y(commercially)l(.)25 -b(Secondarily)l(,)17 b(this)g(License)h(preserv)o(es)f(for)g(the)g -(author)g(and)h(publisher)f(a)g(w)o(a)o(y)165 889 y(to)g(get)h(credit)g -(for)f(their)h(w)o(ork,)f(while)h(not)g(b)q(eing)g(considered)g(resp)q -(onsible)g(for)g(mo)q(di\014cations)165 944 y(made)d(b)o(y)g(others.) -165 1010 y(This)c(License)i(is)e(a)g(kind)h(of)f(\\cop)o(yleft",)f -(whic)o(h)i(means)f(that)g(deriv)m(ativ)o(e)g(w)o(orks)g(of)g(the)h(do) -q(cumen)o(t)165 1065 y(m)o(ust)k(themselv)o(es)h(b)q(e)h(free)e(in)h -(the)g(same)g(sense.)26 b(It)16 b(complemen)o(ts)h(the)g(GNU)g(General) -f(Public)165 1120 y(License,)g(whic)o(h)f(is)f(a)h(cop)o(yleft)g -(license)g(designed)g(for)g(free)g(soft)o(w)o(are.)165 -1187 y(W)l(e)g(ha)o(v)o(e)f(designed)h(this)g(License)g(in)g(order)f -(to)g(use)h(it)f(for)h(man)o(uals)e(for)h(free)h(soft)o(w)o(are,)e(b)q -(ecause)165 1241 y(free)21 b(soft)o(w)o(are)e(needs)j(free)f(do)q -(cumen)o(tation:)31 b(a)21 b(free)g(program)f(should)h(come)g(with)g -(man)o(uals)165 1296 y(pro)o(viding)13 b(the)i(same)f(freedoms)g(that)g -(the)g(soft)o(w)o(are)f(do)q(es.)20 b(But)14 b(this)g(License)h(is)f -(not)g(limited)g(to)165 1351 y(soft)o(w)o(are)g(man)o(uals;)g(it)g(can) -i(b)q(e)g(used)g(for)e(an)o(y)h(textual)g(w)o(ork,)f(regardless)g(of)h -(sub)s(ject)g(matter)f(or)165 1406 y(whether)i(it)f(is)g(published)h -(as)g(a)f(prin)o(ted)h(b)q(o)q(ok.)21 b(W)l(e)16 b(recommend)g(this)f -(License)i(principally)e(for)165 1461 y(w)o(orks)f(whose)h(purp)q(ose)h -(is)f(instruction)f(or)h(reference.)100 1527 y(1.)29 -b(APPLICABILITY)17 b(AND)e(DEFINITIONS)165 1594 y(This)20 -b(License)g(applies)g(to)f(an)o(y)h(man)o(ual)f(or)g(other)h(w)o(ork,)g -(in)g(an)o(y)f(medium,)i(that)e(con)o(tains)g(a)165 1648 -y(notice)h(placed)h(b)o(y)g(the)g(cop)o(yrigh)o(t)e(holder)i(sa)o(ying) -f(it)g(can)h(b)q(e)g(distributed)f(under)i(the)f(terms)165 -1703 y(of)d(this)g(License.)32 b(Suc)o(h)19 b(a)g(notice)f(gran)o(ts)f -(a)i(w)o(orld-wide,)f(ro)o(y)o(alt)o(y-free)f(license,)i(unlimited)f -(in)165 1758 y(duration,)23 b(to)f(use)h(that)f(w)o(ork)g(under)h(the)g -(conditions)f(stated)g(herein.)42 b(The)23 b(\\Do)q(cumen)o(t",)165 -1813 y(b)q(elo)o(w,)14 b(refers)g(to)f(an)o(y)h(suc)o(h)g(man)o(ual)g -(or)f(w)o(ork.)19 b(An)o(y)14 b(mem)o(b)q(er)h(of)e(the)i(public)f(is)g -(a)g(licensee,)g(and)165 1868 y(is)e(addressed)h(as)f(\\y)o(ou".)18 -b(Y)l(ou)13 b(accept)g(the)f(license)h(if)f(y)o(ou)g(cop)o(y)l(,)h(mo)q -(dify)f(or)g(distribute)f(the)i(w)o(ork)165 1922 y(in)i(a)g(w)o(a)o(y)f -(requiring)h(p)q(ermission)f(under)i(cop)o(yrigh)o(t)e(la)o(w.)165 -1989 y(A)j(\\Mo)q(di\014ed)g(V)l(ersion")f(of)g(the)h(Do)q(cumen)o(t)g -(means)g(an)o(y)f(w)o(ork)g(con)o(taining)g(the)h(Do)q(cumen)o(t)f(or) -165 2044 y(a)i(p)q(ortion)g(of)h(it,)f(either)h(copied)g(v)o(erbatim,)f -(or)g(with)g(mo)q(di\014cations)g(and/or)g(translated)g(in)o(to)165 -2099 y(another)d(language.)165 2165 y(A)e(\\Secondary)g(Section")g(is)f -(a)h(named)g(app)q(endix)h(or)e(a)h(fron)o(t-matter)e(section)h(of)h -(the)g(Do)q(cumen)o(t)165 2220 y(that)d(deals)g(exclusiv)o(ely)g(with)g -(the)h(relationship)e(of)i(the)f(publishers)h(or)f(authors)g(of)g(the)h -(Do)q(cumen)o(t)165 2275 y(to)18 b(the)h(Do)q(cumen)o(t's)f(o)o(v)o -(erall)f(sub)s(ject)h(\(or)g(to)g(related)g(matters\))f(and)i(con)o -(tains)f(nothing)g(that)165 2329 y(could)i(fall)f(directly)h(within)f -(that)g(o)o(v)o(erall)g(sub)s(ject.)34 b(\(Th)o(us,)21 -b(if)f(the)g(Do)q(cumen)o(t)g(is)g(in)g(part)f(a)165 -2384 y(textb)q(o)q(ok)12 b(of)f(mathematics,)g(a)g(Secondary)h(Section) -g(ma)o(y)f(not)h(explain)f(an)o(y)h(mathematics.\))17 -b(The)165 2439 y(relationship)12 b(could)i(b)q(e)g(a)g(matter)e(of)i -(historical)d(connection)j(with)f(the)h(sub)s(ject)f(or)h(with)f -(related)165 2494 y(matters,)k(or)g(of)g(legal,)g(commercial,)g -(philosophical,)g(ethical)g(or)g(p)q(olitical)f(p)q(osition)h -(regarding)165 2549 y(them.)165 2615 y(The)c(\\In)o(v)m(arian)o(t)f -(Sections")g(are)h(certain)f(Secondary)h(Sections)g(whose)g(titles)e -(are)i(designated,)f(as)165 2670 y(b)q(eing)i(those)f(of)g(In)o(v)m -(arian)o(t)f(Sections,)h(in)h(the)f(notice)g(that)f(sa)o(ys)h(that)g -(the)g(Do)q(cumen)o(t)g(is)g(released)p eop end -%%Page: 59 63 -TeXDict begin 59 62 bop 75 -58 a Fs(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(59)165 149 -y(under)15 b(this)e(License.)20 b(If)14 b(a)g(section)f(do)q(es)h(not)g -(\014t)f(the)h(ab)q(o)o(v)o(e)g(de\014nition)g(of)f(Secondary)h(then)g -(it)f(is)165 204 y(not)j(allo)o(w)o(ed)e(to)h(b)q(e)i(designated)f(as)f -(In)o(v)m(arian)o(t.)21 b(The)c(Do)q(cumen)o(t)e(ma)o(y)h(con)o(tain)f -(zero)h(In)o(v)m(arian)o(t)165 259 y(Sections.)j(If)12 -b(the)h(Do)q(cumen)o(t)f(do)q(es)h(not)f(iden)o(tify)f(an)o(y)h(In)o(v) -m(arian)o(t)g(Sections)g(then)h(there)f(are)g(none.)165 -334 y(The)19 b(\\Co)o(v)o(er)e(T)l(exts")g(are)h(certain)g(short)g -(passages)g(of)f(text)h(that)g(are)g(listed,)g(as)g(F)l(ron)o(t-Co)o(v) -o(er)165 389 y(T)l(exts)12 b(or)g(Bac)o(k-Co)o(v)o(er)g(T)l(exts,)g(in) -h(the)f(notice)g(that)g(sa)o(ys)g(that)g(the)g(Do)q(cumen)o(t)h(is)f -(released)g(under)165 444 y(this)g(License.)20 b(A)13 -b(F)l(ron)o(t-Co)o(v)o(er)e(T)l(ext)i(ma)o(y)f(b)q(e)i(at)e(most)g(5)h -(w)o(ords,)f(and)h(a)g(Bac)o(k-Co)o(v)o(er)f(T)l(ext)h(ma)o(y)165 -499 y(b)q(e)j(at)e(most)h(25)f(w)o(ords.)165 574 y(A)k(\\T)l(ransparen) -o(t")e(cop)o(y)i(of)f(the)h(Do)q(cumen)o(t)g(means)f(a)h(mac)o -(hine-readable)f(cop)o(y)l(,)h(represen)o(ted)165 629 -y(in)g(a)f(format)g(whose)g(sp)q(eci\014cation)h(is)g(a)o(v)m(ailable)e -(to)h(the)h(general)g(public,)g(that)f(is)g(suitable)h(for)165 -684 y(revising)d(the)h(do)q(cumen)o(t)g(straigh)o(tforw)o(ardly)d(with) -i(generic)h(text)f(editors)g(or)g(\(for)g(images)g(com-)165 -738 y(p)q(osed)d(of)g(pixels\))f(generic)h(pain)o(t)f(programs)g(or)g -(\(for)g(dra)o(wings\))g(some)g(widely)g(a)o(v)m(ailable)g(dra)o(wing) -165 793 y(editor,)j(and)g(that)g(is)g(suitable)g(for)g(input)g(to)g -(text)g(formatters)f(or)h(for)g(automatic)f(translation)g(to)165 -848 y(a)g(v)m(ariet)o(y)g(of)g(formats)f(suitable)g(for)h(input)h(to)e -(text)h(formatters.)18 b(A)13 b(cop)o(y)h(made)f(in)g(an)h(otherwise) -165 903 y(T)l(ransparen)o(t)k(\014le)h(format)e(whose)i(markup,)g(or)g -(absence)g(of)g(markup,)g(has)f(b)q(een)i(arranged)f(to)165 -958 y(th)o(w)o(art)12 b(or)g(discourage)h(subsequen)o(t)h(mo)q -(di\014cation)f(b)o(y)g(readers)g(is)g(not)g(T)l(ransparen)o(t.)18 -b(An)c(image)165 1012 y(format)i(is)h(not)f(T)l(ransparen)o(t)h(if)g -(used)g(for)g(an)o(y)g(substan)o(tial)e(amoun)o(t)i(of)f(text.)26 -b(A)17 b(cop)o(y)g(that)f(is)165 1067 y(not)f(\\T)l(ransparen)o(t")f -(is)h(called)f(\\Opaque".)165 1143 y(Examples)26 b(of)g(suitable)g -(formats)f(for)h(T)l(ransparen)o(t)g(copies)g(include)h(plain)f -Fl(asci)q(i)g Fs(without)165 1197 y(markup,)18 b(T)l(exinfo)g(input)g -(format,)f(LaT)879 1207 y(E)905 1197 y(X)h(input)g(format,)f -Fd(SGML)h Fs(or)f Fd(XML)i Fs(using)e(a)h(publicly)165 -1252 y(a)o(v)m(ailable)h Fd(DTD)p Fs(,)g(and)h(standard-conforming)f -(simple)g Fd(HTML)p Fs(,)h(P)o(ostScript)f(or)g Fd(PDF)i -Fs(designed)165 1307 y(for)e(h)o(uman)g(mo)q(di\014cation.)31 -b(Examples)19 b(of)f(transparen)o(t)h(image)f(formats)g(include)h -Fd(PNG)p Fs(,)g Fd(X)o(CF)165 1362 y Fs(and)i Fd(JPG)p -Fs(.)f(Opaque)h(formats)e(include)i(proprietary)e(formats)g(that)g(can) -i(b)q(e)g(read)f(and)h(edited)165 1417 y(only)26 b(b)o(y)h(proprietary) -f(w)o(ord)g(pro)q(cessors,)j Fd(SGML)d Fs(or)h Fd(XML)g -Fs(for)f(whic)o(h)g(the)h Fd(DTD)g Fs(and/or)165 1471 -y(pro)q(cessing)j(to)q(ols)g(are)g(not)g(generally)g(a)o(v)m(ailable,)i -(and)f(the)g(mac)o(hine-generated)f Fd(HTML)p Fs(,)165 -1526 y(P)o(ostScript)14 b(or)h Fd(PDF)g Fs(pro)q(duced)h(b)o(y)f(some)g -(w)o(ord)g(pro)q(cessors)g(for)f(output)h(purp)q(oses)h(only)l(.)165 -1601 y(The)h(\\Title)f(P)o(age")g(means,)i(for)e(a)h(prin)o(ted)g(b)q -(o)q(ok,)g(the)g(title)f(page)h(itself,)g(plus)g(suc)o(h)g(follo)o -(wing)165 1656 y(pages)d(as)f(are)h(needed)h(to)e(hold,)h(legibly)l(,)e -(the)i(material)e(this)i(License)g(requires)g(to)f(app)q(ear)h(in)g -(the)165 1711 y(title)e(page.)19 b(F)l(or)13 b(w)o(orks)f(in)h(formats) -f(whic)o(h)h(do)g(not)g(ha)o(v)o(e)g(an)o(y)g(title)f(page)h(as)g(suc)o -(h,)h(\\Title)e(P)o(age")165 1766 y(means)j(the)h(text)e(near)i(the)f -(most)g(prominen)o(t)f(app)q(earance)i(of)f(the)g(w)o(ork's)f(title,)g -(preceding)i(the)165 1821 y(b)q(eginning)f(of)g(the)g(b)q(o)q(dy)h(of)f -(the)g(text.)165 1896 y(The)j(\\publisher")e(means)i(an)o(y)f(p)q -(erson)g(or)g(en)o(tit)o(y)f(that)h(distributes)g(copies)g(of)g(the)g -(Do)q(cumen)o(t)165 1951 y(to)e(the)g(public.)165 2026 -y(A)g(section)f(\\En)o(titled)g(XYZ")g(means)h(a)g(named)g(subunit)g -(of)f(the)h(Do)q(cumen)o(t)g(whose)g(title)e(either)165 -2081 y(is)g(precisely)h(XYZ)g(or)f(con)o(tains)g(XYZ)h(in)g(paren)o -(theses)g(follo)o(wing)d(text)j(that)f(translates)f(XYZ)i(in)165 -2136 y(another)e(language.)18 b(\(Here)13 b(XYZ)f(stands)g(for)g(a)g -(sp)q(eci\014c)i(section)e(name)g(men)o(tioned)g(b)q(elo)o(w,)h(suc)o -(h)165 2191 y(as)h(\\Ac)o(kno)o(wledgemen)o(ts",)e(\\Dedications",)h -(\\Endorsemen)o(ts",)g(or)g(\\History".\))18 b(T)l(o)13 -b(\\Preserv)o(e)165 2245 y(the)k(Title")e(of)i(suc)o(h)g(a)f(section)h -(when)g(y)o(ou)f(mo)q(dify)h(the)g(Do)q(cumen)o(t)f(means)h(that)f(it)g -(remains)g(a)165 2300 y(section)f(\\En)o(titled)f(XYZ")g(according)h -(to)g(this)f(de\014nition.)165 2375 y(The)g(Do)q(cumen)o(t)g(ma)o(y)f -(include)h(W)l(arran)o(t)o(y)e(Disclaimers)g(next)i(to)g(the)g(notice)f -(whic)o(h)h(states)f(that)165 2430 y(this)j(License)i(applies)f(to)f -(the)h(Do)q(cumen)o(t.)25 b(These)17 b(W)l(arran)o(t)o(y)e(Disclaimers) -h(are)g(considered)i(to)165 2485 y(b)q(e)h(included)h(b)o(y)f -(reference)g(in)g(this)f(License,)i(but)f(only)f(as)h(regards)f -(disclaiming)f(w)o(arran)o(ties:)165 2540 y(an)o(y)h(other)g -(implication)f(that)h(these)g(W)l(arran)o(t)o(y)f(Disclaimers)g(ma)o(y) -g(ha)o(v)o(e)h(is)g(v)o(oid)g(and)h(has)f(no)165 2595 -y(e\013ect)d(on)g(the)g(meaning)g(of)g(this)g(License.)100 -2670 y(2.)29 b(VERBA)l(TIM)16 b(COPYING)p eop end -%%Page: 60 64 -TeXDict begin 60 63 bop 75 -58 a Fs(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(60)165 149 -y(Y)l(ou)19 b(ma)o(y)g(cop)o(y)f(and)i(distribute)e(the)h(Do)q(cumen)o -(t)g(in)g(an)o(y)g(medium,)g(either)g(commercially)e(or)165 -204 y(noncommercially)l(,)k(pro)o(vided)g(that)g(this)g(License,)i(the) -e(cop)o(yrigh)o(t)f(notices,)i(and)g(the)f(license)165 -259 y(notice)d(sa)o(ying)e(this)i(License)g(applies)g(to)f(the)h(Do)q -(cumen)o(t)g(are)f(repro)q(duced)i(in)f(all)f(copies,)h(and)165 -314 y(that)13 b(y)o(ou)g(add)g(no)g(other)g(conditions)g(whatso)q(ev)o -(er)f(to)h(those)g(of)g(this)g(License.)20 b(Y)l(ou)13 -b(ma)o(y)g(not)g(use)165 369 y(tec)o(hnical)j(measures)g(to)g(obstruct) -g(or)g(con)o(trol)f(the)h(reading)g(or)g(further)h(cop)o(ying)f(of)g -(the)g(copies)165 423 y(y)o(ou)c(mak)o(e)g(or)f(distribute.)19 -b(Ho)o(w)o(ev)o(er,)11 b(y)o(ou)h(ma)o(y)g(accept)g(comp)q(ensation)g -(in)g(exc)o(hange)h(for)e(copies.)165 478 y(If)16 b(y)o(ou)g -(distribute)f(a)h(large)f(enough)i(n)o(um)o(b)q(er)f(of)g(copies)g(y)o -(ou)g(m)o(ust)f(also)g(follo)o(w)g(the)h(conditions)165 -533 y(in)f(section)g(3.)165 600 y(Y)l(ou)c(ma)o(y)e(also)h(lend)g -(copies,)h(under)g(the)g(same)f(conditions)f(stated)h(ab)q(o)o(v)o(e,)h -(and)f(y)o(ou)g(ma)o(y)g(publicly)165 655 y(displa)o(y)k(copies.)100 -722 y(3.)29 b(COPYING)16 b(IN)f(QUANTITY)165 789 y(If)e(y)o(ou)f -(publish)h(prin)o(ted)f(copies)h(\(or)e(copies)i(in)f(media)h(that)e -(commonly)h(ha)o(v)o(e)g(prin)o(ted)h(co)o(v)o(ers\))e(of)165 -844 y(the)16 b(Do)q(cumen)o(t,)g(n)o(um)o(b)q(ering)f(more)h(than)g -(100,)e(and)i(the)g(Do)q(cumen)o(t's)g(license)g(notice)f(requires)165 -898 y(Co)o(v)o(er)h(T)l(exts,)h(y)o(ou)g(m)o(ust)g(enclose)g(the)g -(copies)g(in)g(co)o(v)o(ers)g(that)f(carry)l(,)h(clearly)f(and)i -(legibly)l(,)e(all)165 953 y(these)k(Co)o(v)o(er)e(T)l(exts:)29 -b(F)l(ron)o(t-Co)o(v)o(er)18 b(T)l(exts)h(on)g(the)h(fron)o(t)f(co)o(v) -o(er,)g(and)h(Bac)o(k-Co)o(v)o(er)f(T)l(exts)g(on)165 -1008 y(the)c(bac)o(k)f(co)o(v)o(er.)19 b(Both)14 b(co)o(v)o(ers)g(m)o -(ust)g(also)g(clearly)g(and)g(legibly)g(iden)o(tify)g(y)o(ou)g(as)g -(the)h(publisher)165 1063 y(of)i(these)g(copies.)26 b(The)17 -b(fron)o(t)f(co)o(v)o(er)h(m)o(ust)f(presen)o(t)i(the)f(full)f(title)g -(with)h(all)f(w)o(ords)g(of)h(the)g(title)165 1117 y(equally)e -(prominen)o(t)g(and)g(visible.)20 b(Y)l(ou)c(ma)o(y)e(add)i(other)f -(material)e(on)j(the)f(co)o(v)o(ers)g(in)g(addition.)165 -1172 y(Cop)o(ying)i(with)h(c)o(hanges)g(limited)f(to)g(the)h(co)o(v)o -(ers,)g(as)g(long)f(as)h(they)g(preserv)o(e)g(the)g(title)f(of)h(the) -165 1227 y(Do)q(cumen)o(t)g(and)h(satisfy)e(these)i(conditions,)f(can)h -(b)q(e)g(treated)f(as)h(v)o(erbatim)e(cop)o(ying)h(in)g(other)165 -1282 y(resp)q(ects.)165 1349 y(If)f(the)f(required)h(texts)e(for)h -(either)g(co)o(v)o(er)g(are)g(to)q(o)g(v)o(oluminous)f(to)h(\014t)g -(legibly)l(,)f(y)o(ou)h(should)h(put)165 1404 y(the)g(\014rst)f(ones)g -(listed)g(\(as)f(man)o(y)h(as)g(\014t)h(reasonably\))e(on)h(the)h -(actual)f(co)o(v)o(er,)f(and)i(con)o(tin)o(ue)f(the)165 -1458 y(rest)f(on)o(to)f(adjacen)o(t)h(pages.)165 1525 -y(If)f(y)o(ou)f(publish)h(or)f(distribute)f(Opaque)j(copies)e(of)g(the) -h(Do)q(cumen)o(t)f(n)o(um)o(b)q(ering)h(more)f(than)g(100,)165 -1580 y(y)o(ou)h(m)o(ust)f(either)h(include)g(a)g(mac)o(hine-readable)g -(T)l(ransparen)o(t)f(cop)o(y)h(along)f(with)g(eac)o(h)h(Opaque)165 -1635 y(cop)o(y)l(,)k(or)f(state)g(in)g(or)g(with)g(eac)o(h)g(Opaque)i -(cop)o(y)e(a)g(computer-net)o(w)o(ork)g(lo)q(cation)f(from)h(whic)o(h) -165 1690 y(the)12 b(general)g(net)o(w)o(ork-using)f(public)h(has)g -(access)g(to)g(do)o(wnload)f(using)h(public-standard)g(net)o(w)o(ork) -165 1745 y(proto)q(cols)18 b(a)h(complete)h(T)l(ransparen)o(t)e(cop)o -(y)i(of)f(the)g(Do)q(cumen)o(t,)h(free)g(of)f(added)h(material.)31 -b(If)165 1799 y(y)o(ou)19 b(use)h(the)f(latter)f(option,)i(y)o(ou)f(m)o -(ust)g(tak)o(e)f(reasonably)h(pruden)o(t)h(steps,)g(when)g(y)o(ou)f(b)q -(egin)165 1854 y(distribution)f(of)g(Opaque)i(copies)f(in)g(quan)o(tit) -o(y)l(,)g(to)f(ensure)i(that)e(this)h(T)l(ransparen)o(t)f(cop)o(y)h -(will)165 1909 y(remain)c(th)o(us)f(accessible)h(at)g(the)g(stated)g -(lo)q(cation)e(un)o(til)i(at)f(least)g(one)i(y)o(ear)e(after)g(the)i -(last)e(time)165 1964 y(y)o(ou)k(distribute)g(an)g(Opaque)h(cop)o(y)f -(\(directly)g(or)g(through)g(y)o(our)g(agen)o(ts)f(or)h(retailers\))f -(of)h(that)165 2019 y(edition)d(to)f(the)h(public.)165 -2086 y(It)i(is)g(requested,)h(but)f(not)g(required,)h(that)e(y)o(ou)h -(con)o(tact)g(the)g(authors)g(of)f(the)i(Do)q(cumen)o(t)f(w)o(ell)165 -2140 y(b)q(efore)e(redistributing)e(an)o(y)h(large)f(n)o(um)o(b)q(er)i -(of)e(copies,)h(to)g(giv)o(e)g(them)g(a)g(c)o(hance)h(to)e(pro)o(vide)h -(y)o(ou)165 2195 y(with)h(an)g(up)q(dated)h(v)o(ersion)e(of)h(the)g(Do) -q(cumen)o(t.)100 2262 y(4.)29 b(MODIFICA)l(TIONS)165 -2329 y(Y)l(ou)13 b(ma)o(y)f(cop)o(y)h(and)g(distribute)f(a)g(Mo)q -(di\014ed)h(V)l(ersion)g(of)f(the)h(Do)q(cumen)o(t)f(under)i(the)f -(conditions)165 2384 y(of)d(sections)g(2)g(and)h(3)f(ab)q(o)o(v)o(e,)h -(pro)o(vided)f(that)g(y)o(ou)g(release)g(the)h(Mo)q(di\014ed)g(V)l -(ersion)f(under)h(precisely)165 2439 y(this)j(License,)h(with)f(the)g -(Mo)q(di\014ed)h(V)l(ersion)f(\014lling)g(the)h(role)e(of)i(the)f(Do)q -(cumen)o(t,)g(th)o(us)h(licensing)165 2493 y(distribution)h(and)h(mo)q -(di\014cation)f(of)h(the)g(Mo)q(di\014ed)g(V)l(ersion)g(to)f(who)q(ev)o -(er)h(p)q(ossesses)h(a)e(cop)o(y)h(of)165 2548 y(it.)i(In)d(addition,)e -(y)o(ou)h(m)o(ust)f(do)h(these)h(things)f(in)g(the)g(Mo)q(di\014ed)g(V) -l(ersion:)178 2615 y(A.)30 b(Use)17 b(in)f(the)g(Title)f(P)o(age)h -(\(and)g(on)h(the)f(co)o(v)o(ers,)g(if)f(an)o(y\))h(a)g(title)f -(distinct)h(from)f(that)h(of)g(the)255 2670 y(Do)q(cumen)o(t,)h(and)g -(from)f(those)h(of)f(previous)h(v)o(ersions)f(\(whic)o(h)g(should,)h -(if)g(there)g(w)o(ere)f(an)o(y)l(,)p eop end -%%Page: 61 65 -TeXDict begin 61 64 bop 75 -58 a Fs(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(61)255 149 -y(b)q(e)16 b(listed)f(in)h(the)g(History)e(section)h(of)g(the)h(Do)q -(cumen)o(t\).)21 b(Y)l(ou)16 b(ma)o(y)f(use)h(the)g(same)f(title)f(as) -255 204 y(a)h(previous)g(v)o(ersion)f(if)h(the)g(original)e(publisher)j -(of)f(that)f(v)o(ersion)g(giv)o(es)h(p)q(ermission.)180 -273 y(B.)30 b(List)15 b(on)g(the)g(Title)g(P)o(age,)f(as)h(authors,)f -(one)h(or)g(more)g(p)q(ersons)g(or)g(en)o(tities)f(resp)q(onsible)i -(for)255 328 y(authorship)d(of)f(the)h(mo)q(di\014cations)f(in)h(the)g -(Mo)q(di\014ed)h(V)l(ersion,)f(together)f(with)g(at)h(least)f(\014v)o -(e)255 382 y(of)g(the)g(principal)f(authors)g(of)h(the)g(Do)q(cumen)o -(t)g(\(all)e(of)i(its)f(principal)g(authors,)h(if)f(it)g(has)h(few)o -(er)255 437 y(than)j(\014v)o(e\),)g(unless)g(they)g(release)g(y)o(ou)g -(from)f(this)h(requiremen)o(t.)180 506 y(C.)29 b(State)15 -b(on)g(the)h(Title)e(page)h(the)h(name)f(of)g(the)g(publisher)h(of)f -(the)g(Mo)q(di\014ed)h(V)l(ersion,)f(as)g(the)255 560 -y(publisher.)178 629 y(D.)29 b(Preserv)o(e)15 b(all)f(the)h(cop)o -(yrigh)o(t)f(notices)h(of)g(the)g(Do)q(cumen)o(t.)181 -697 y(E.)30 b(Add)16 b(an)g(appropriate)f(cop)o(yrigh)o(t)f(notice)h -(for)g(y)o(our)g(mo)q(di\014cations)g(adjacen)o(t)h(to)f(the)g(other) -255 752 y(cop)o(yrigh)o(t)f(notices.)183 821 y(F.)29 -b(Include,)15 b(immediately)e(after)g(the)h(cop)o(yrigh)o(t)e(notices,) -i(a)f(license)h(notice)g(giving)f(the)h(public)255 875 -y(p)q(ermission)e(to)f(use)i(the)f(Mo)q(di\014ed)h(V)l(ersion)f(under)h -(the)f(terms)g(of)f(this)h(License,)h(in)f(the)h(form)255 -930 y(sho)o(wn)i(in)g(the)g(Addendum)i(b)q(elo)o(w.)177 -999 y(G.)29 b(Preserv)o(e)11 b(in)g(that)g(license)g(notice)h(the)f -(full)g(lists)f(of)h(In)o(v)m(arian)o(t)g(Sections)g(and)g(required)h -(Co)o(v)o(er)255 1054 y(T)l(exts)j(giv)o(en)g(in)g(the)g(Do)q(cumen)o -(t's)g(license)g(notice.)178 1122 y(H.)30 b(Include)16 -b(an)f(unaltered)h(cop)o(y)f(of)f(this)h(License.)196 -1191 y(I.)30 b(Preserv)o(e)16 b(the)g(section)g(En)o(titled)f -(\\History",)f(Preserv)o(e)h(its)h(Title,)e(and)j(add)f(to)f(it)h(an)g -(item)255 1245 y(stating)d(at)g(least)g(the)h(title,)f(y)o(ear,)g(new)i -(authors,)e(and)h(publisher)g(of)g(the)g(Mo)q(di\014ed)g(V)l(ersion)255 -1300 y(as)h(giv)o(en)g(on)h(the)g(Title)e(P)o(age.)21 -b(If)16 b(there)g(is)f(no)h(section)f(En)o(titled)f(\\History")g(in)i -(the)g(Do)q(cu-)255 1355 y(men)o(t,)h(create)g(one)h(stating)e(the)h -(title,)g(y)o(ear,)g(authors,)g(and)g(publisher)h(of)f(the)g(Do)q -(cumen)o(t)255 1410 y(as)h(giv)o(en)f(on)h(its)f(Title)g(P)o(age,)h -(then)h(add)f(an)g(item)f(describing)h(the)g(Mo)q(di\014ed)g(V)l -(ersion)g(as)255 1465 y(stated)d(in)g(the)g(previous)g(sen)o(tence.)189 -1533 y(J.)30 b(Preserv)o(e)16 b(the)g(net)o(w)o(ork)f(lo)q(cation,)g -(if)h(an)o(y)l(,)g(giv)o(en)g(in)g(the)g(Do)q(cumen)o(t)g(for)g(public) -g(access)h(to)255 1588 y(a)e(T)l(ransparen)o(t)g(cop)o(y)h(of)f(the)g -(Do)q(cumen)o(t,)h(and)f(lik)o(ewise)g(the)g(net)o(w)o(ork)g(lo)q -(cations)f(giv)o(en)h(in)255 1643 y(the)h(Do)q(cumen)o(t)g(for)f -(previous)g(v)o(ersions)g(it)g(w)o(as)g(based)i(on.)k(These)c(ma)o(y)e -(b)q(e)h(placed)g(in)g(the)255 1697 y(\\History")11 b(section.)18 -b(Y)l(ou)13 b(ma)o(y)f(omit)f(a)h(net)o(w)o(ork)g(lo)q(cation)f(for)h -(a)g(w)o(ork)g(that)g(w)o(as)f(published)255 1752 y(at)17 -b(least)g(four)h(y)o(ears)f(b)q(efore)h(the)g(Do)q(cumen)o(t)g(itself,) -f(or)g(if)h(the)f(original)f(publisher)i(of)g(the)255 -1807 y(v)o(ersion)c(it)h(refers)g(to)f(giv)o(es)h(p)q(ermission.)177 -1875 y(K.)30 b(F)l(or)11 b(an)o(y)h(section)f(En)o(titled)g(\\Ac)o(kno) -o(wledgemen)o(ts")g(or)g(\\Dedications",)f(Preserv)o(e)i(the)g(Title) -255 1930 y(of)h(the)g(section,)g(and)g(preserv)o(e)h(in)f(the)g -(section)g(all)f(the)i(substance)f(and)h(tone)f(of)g(eac)o(h)g(of)g -(the)255 1985 y(con)o(tributor)h(ac)o(kno)o(wledgemen)o(ts)g(and/or)h -(dedications)f(giv)o(en)h(therein.)184 2054 y(L.)30 b(Preserv)o(e)17 -b(all)g(the)h(In)o(v)m(arian)o(t)f(Sections)g(of)h(the)f(Do)q(cumen)o -(t,)h(unaltered)g(in)f(their)h(text)f(and)255 2108 y(in)h(their)f -(titles.)27 b(Section)18 b(n)o(um)o(b)q(ers)g(or)g(the)g(equiv)m(alen)o -(t)f(are)h(not)g(considered)g(part)f(of)h(the)255 2163 -y(section)d(titles.)171 2232 y(M.)29 b(Delete)15 b(an)o(y)g(section)g -(En)o(titled)f(\\Endorsemen)o(ts".)20 b(Suc)o(h)c(a)f(section)g(ma)o(y) -f(not)h(b)q(e)h(included)255 2286 y(in)f(the)g(Mo)q(di\014ed)h(V)l -(ersion.)178 2355 y(N.)30 b(Do)14 b(not)f(retitle)g(an)o(y)h(existing)f -(section)h(to)g(b)q(e)g(En)o(titled)g(\\Endorsemen)o(ts")f(or)h(to)f -(con\015ict)h(in)255 2410 y(title)g(with)g(an)o(y)h(In)o(v)m(arian)o(t) -g(Section.)177 2478 y(O.)30 b(Preserv)o(e)15 b(an)o(y)g(W)l(arran)o(t)o -(y)e(Disclaimers.)165 2560 y(If)k(the)g(Mo)q(di\014ed)g(V)l(ersion)f -(includes)h(new)g(fron)o(t-matter)e(sections)h(or)g(app)q(endices)i -(that)e(qualify)165 2615 y(as)e(Secondary)g(Sections)g(and)g(con)o -(tain)f(no)h(material)e(copied)i(from)f(the)h(Do)q(cumen)o(t,)g(y)o(ou) -f(ma)o(y)h(at)165 2670 y(y)o(our)i(option)f(designate)h(some)g(or)f -(all)g(of)h(these)h(sections)e(as)h(in)o(v)m(arian)o(t.)22 -b(T)l(o)15 b(do)i(this,)e(add)h(their)p eop end -%%Page: 62 66 -TeXDict begin 62 65 bop 75 -58 a Fs(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(62)165 149 -y(titles)16 b(to)h(the)h(list)f(of)g(In)o(v)m(arian)o(t)g(Sections)h -(in)f(the)h(Mo)q(di\014ed)g(V)l(ersion's)f(license)h(notice.)27 -b(These)165 204 y(titles)14 b(m)o(ust)h(b)q(e)g(distinct)g(from)f(an)o -(y)h(other)g(section)g(titles.)165 275 y(Y)l(ou)21 b(ma)o(y)g(add)g(a)g -(section)g(En)o(titled)f(\\Endorsemen)o(ts",)h(pro)o(vided)g(it)g(con)o -(tains)f(nothing)h(but)165 330 y(endorsemen)o(ts)15 b(of)f(y)o(our)h -(Mo)q(di\014ed)g(V)l(ersion)f(b)o(y)h(v)m(arious)f(parties|for)g -(example,)h(statemen)o(ts)e(of)165 385 y(p)q(eer)h(review)f(or)h(that)e -(the)i(text)f(has)h(b)q(een)g(appro)o(v)o(ed)g(b)o(y)f(an)h -(organization)d(as)j(the)f(authoritativ)o(e)165 440 y(de\014nition)i -(of)g(a)g(standard.)165 511 y(Y)l(ou)f(ma)o(y)g(add)g(a)g(passage)g(of) -f(up)i(to)e(\014v)o(e)i(w)o(ords)e(as)h(a)g(F)l(ron)o(t-Co)o(v)o(er)e -(T)l(ext,)i(and)g(a)g(passage)g(of)f(up)165 566 y(to)g(25)g(w)o(ords)g -(as)g(a)g(Bac)o(k-Co)o(v)o(er)g(T)l(ext,)g(to)g(the)g(end)i(of)e(the)g -(list)g(of)g(Co)o(v)o(er)f(T)l(exts)i(in)f(the)h(Mo)q(di\014ed)165 -621 y(V)l(ersion.)28 b(Only)18 b(one)g(passage)f(of)h(F)l(ron)o(t-Co)o -(v)o(er)e(T)l(ext)i(and)g(one)g(of)f(Bac)o(k-Co)o(v)o(er)g(T)l(ext)h -(ma)o(y)f(b)q(e)165 675 y(added)d(b)o(y)g(\(or)f(through)g(arrangemen)o -(ts)g(made)h(b)o(y\))f(an)o(y)h(one)g(en)o(tit)o(y)l(.)k(If)c(the)g(Do) -q(cumen)o(t)g(already)165 730 y(includes)j(a)g(co)o(v)o(er)f(text)h -(for)f(the)h(same)g(co)o(v)o(er,)f(previously)g(added)i(b)o(y)f(y)o(ou) -g(or)f(b)o(y)h(arrangemen)o(t)165 785 y(made)h(b)o(y)f(the)h(same)f(en) -o(tit)o(y)g(y)o(ou)g(are)g(acting)g(on)g(b)q(ehalf)h(of,)g(y)o(ou)f(ma) -o(y)g(not)g(add)h(another;)g(but)165 840 y(y)o(ou)f(ma)o(y)f(replace)h -(the)g(old)g(one,)g(on)g(explicit)f(p)q(ermission)g(from)h(the)g -(previous)g(publisher)g(that)165 895 y(added)f(the)f(old)g(one.)165 -966 y(The)e(author\(s\))e(and)i(publisher\(s\))f(of)h(the)g(Do)q(cumen) -o(t)f(do)h(not)f(b)o(y)h(this)f(License)i(giv)o(e)e(p)q(ermission)165 -1021 y(to)j(use)g(their)g(names)g(for)f(publicit)o(y)h(for)f(or)h(to)f -(assert)h(or)f(imply)h(endorsemen)o(t)g(of)g(an)o(y)g(Mo)q(di\014ed)165 -1075 y(V)l(ersion.)100 1147 y(5.)29 b(COMBINING)16 b(DOCUMENTS)165 -1218 y(Y)l(ou)k(ma)o(y)e(com)o(bine)h(the)h(Do)q(cumen)o(t)f(with)g -(other)g(do)q(cumen)o(ts)g(released)h(under)g(this)f(License,)165 -1273 y(under)h(the)f(terms)g(de\014ned)h(in)f(section)g(4)f(ab)q(o)o(v) -o(e)h(for)g(mo)q(di\014ed)g(v)o(ersions,)g(pro)o(vided)g(that)f(y)o(ou) -165 1328 y(include)13 b(in)f(the)h(com)o(bination)f(all)f(of)h(the)h -(In)o(v)m(arian)o(t)f(Sections)h(of)f(all)f(of)i(the)f(original)f(do)q -(cumen)o(ts,)165 1382 y(unmo)q(di\014ed,)j(and)g(list)e(them)h(all)g -(as)g(In)o(v)m(arian)o(t)f(Sections)i(of)f(y)o(our)f(com)o(bined)i(w)o -(ork)e(in)h(its)g(license)165 1437 y(notice,)h(and)i(that)e(y)o(ou)h -(preserv)o(e)g(all)g(their)f(W)l(arran)o(t)o(y)g(Disclaimers.)165 -1508 y(The)h(com)o(bined)h(w)o(ork)e(need)i(only)e(con)o(tain)h(one)g -(cop)o(y)g(of)g(this)f(License,)i(and)f(m)o(ultiple)f(iden)o(tical)165 -1563 y(In)o(v)m(arian)o(t)i(Sections)g(ma)o(y)f(b)q(e)i(replaced)g -(with)e(a)h(single)g(cop)o(y)l(.)23 b(If)16 b(there)h(are)f(m)o -(ultiple)f(In)o(v)m(arian)o(t)165 1618 y(Sections)e(with)g(the)g(same)g -(name)h(but)f(di\013eren)o(t)g(con)o(ten)o(ts,)g(mak)o(e)g(the)g(title) -f(of)h(eac)o(h)h(suc)o(h)f(section)165 1673 y(unique)18 -b(b)o(y)e(adding)h(at)g(the)g(end)g(of)g(it,)f(in)h(paren)o(theses,)g -(the)g(name)g(of)g(the)g(original)e(author)h(or)165 1728 -y(publisher)d(of)f(that)g(section)g(if)g(kno)o(wn,)g(or)g(else)g(a)h -(unique)g(n)o(um)o(b)q(er.)19 b(Mak)o(e)12 b(the)g(same)h(adjustmen)o -(t)165 1782 y(to)f(the)g(section)g(titles)f(in)h(the)g(list)f(of)h(In)o -(v)m(arian)o(t)f(Sections)h(in)g(the)h(license)f(notice)g(of)g(the)g -(com)o(bined)165 1837 y(w)o(ork.)165 1908 y(In)21 b(the)g(com)o -(bination,)f(y)o(ou)h(m)o(ust)f(com)o(bine)g(an)o(y)g(sections)h(En)o -(titled)e(\\History")g(in)i(the)f(v)m(ari-)165 1963 y(ous)c(original)e -(do)q(cumen)o(ts,)i(forming)f(one)i(section)e(En)o(titled)g -(\\History";)g(lik)o(ewise)f(com)o(bine)i(an)o(y)165 -2018 y(sections)f(En)o(titled)g(\\Ac)o(kno)o(wledgemen)o(ts",)g(and)h -(an)o(y)f(sections)h(En)o(titled)e(\\Dedications".)21 -b(Y)l(ou)165 2073 y(m)o(ust)15 b(delete)g(all)f(sections)h(En)o(titled) -f(\\Endorsemen)o(ts.")100 2144 y(6.)29 b(COLLECTIONS)17 -b(OF)e(DOCUMENTS)165 2215 y(Y)l(ou)h(ma)o(y)f(mak)o(e)h(a)f(collection) -g(consisting)g(of)g(the)h(Do)q(cumen)o(t)g(and)g(other)g(do)q(cumen)o -(ts)g(released)165 2270 y(under)22 b(this)f(License,)i(and)e(replace)g -(the)g(individual)g(copies)g(of)g(this)f(License)i(in)f(the)g(v)m -(arious)165 2325 y(do)q(cumen)o(ts)h(with)e(a)h(single)g(cop)o(y)g -(that)f(is)h(included)h(in)f(the)g(collection,)h(pro)o(vided)f(that)f -(y)o(ou)165 2380 y(follo)o(w)d(the)h(rules)h(of)f(this)g(License)h(for) -f(v)o(erbatim)f(cop)o(ying)h(of)g(eac)o(h)h(of)f(the)h(do)q(cumen)o(ts) -g(in)f(all)165 2434 y(other)d(resp)q(ects.)165 2506 y(Y)l(ou)h(ma)o(y)f -(extract)g(a)g(single)g(do)q(cumen)o(t)h(from)f(suc)o(h)h(a)g -(collection,)e(and)i(distribute)f(it)g(individu-)165 -2560 y(ally)h(under)j(this)e(License,)h(pro)o(vided)f(y)o(ou)g(insert)g -(a)h(cop)o(y)f(of)g(this)g(License)h(in)o(to)f(the)g(extracted)165 -2615 y(do)q(cumen)o(t,)g(and)f(follo)o(w)e(this)i(License)h(in)f(all)g -(other)f(resp)q(ects)i(regarding)f(v)o(erbatim)f(cop)o(ying)g(of)165 -2670 y(that)f(do)q(cumen)o(t.)p eop end -%%Page: 63 67 -TeXDict begin 63 66 bop 75 -58 a Fs(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(63)100 149 -y(7.)29 b(A)o(GGREGA)l(TION)15 b(WITH)h(INDEPENDENT)e(W)o(ORKS)165 -221 y(A)g(compilation)e(of)i(the)g(Do)q(cumen)o(t)g(or)f(its)h(deriv)m -(ativ)o(es)f(with)g(other)h(separate)f(and)i(indep)q(enden)o(t)165 -275 y(do)q(cumen)o(ts)i(or)f(w)o(orks,)g(in)g(or)g(on)h(a)f(v)o(olume)g -(of)g(a)h(storage)e(or)h(distribution)g(medium,)g(is)g(called)165 -330 y(an)f(\\aggregate")e(if)h(the)i(cop)o(yrigh)o(t)d(resulting)h -(from)h(the)g(compilation)e(is)i(not)f(used)i(to)e(limit)g(the)165 -385 y(legal)e(righ)o(ts)g(of)h(the)g(compilation's)f(users)h(b)q(ey)o -(ond)h(what)f(the)g(individual)f(w)o(orks)h(p)q(ermit.)19 -b(When)165 440 y(the)g(Do)q(cumen)o(t)g(is)g(included)h(in)f(an)g -(aggregate,)f(this)h(License)h(do)q(es)g(not)e(apply)h(to)g(the)g -(other)165 495 y(w)o(orks)14 b(in)h(the)g(aggregate)f(whic)o(h)h(are)g -(not)g(themselv)o(es)g(deriv)m(ativ)o(e)f(w)o(orks)g(of)h(the)g(Do)q -(cumen)o(t.)165 566 y(If)d(the)f(Co)o(v)o(er)f(T)l(ext)i(requiremen)o -(t)f(of)g(section)g(3)g(is)g(applicable)f(to)h(these)h(copies)f(of)g -(the)g(Do)q(cumen)o(t,)165 621 y(then)h(if)e(the)i(Do)q(cumen)o(t)f(is) -f(less)h(than)g(one)h(half)e(of)h(the)g(en)o(tire)g(aggregate,)f(the)h -(Do)q(cumen)o(t's)g(Co)o(v)o(er)165 675 y(T)l(exts)i(ma)o(y)g(b)q(e)h -(placed)f(on)g(co)o(v)o(ers)g(that)f(brac)o(k)o(et)h(the)g(Do)q(cumen)o -(t)g(within)g(the)g(aggregate,)f(or)h(the)165 730 y(electronic)k(equiv) -m(alen)o(t)g(of)g(co)o(v)o(ers)g(if)g(the)h(Do)q(cumen)o(t)f(is)g(in)g -(electronic)g(form.)27 b(Otherwise)17 b(they)165 785 -y(m)o(ust)e(app)q(ear)g(on)g(prin)o(ted)g(co)o(v)o(ers)g(that)f(brac)o -(k)o(et)h(the)g(whole)g(aggregate.)100 856 y(8.)29 b(TRANSLA)l(TION)165 -928 y(T)l(ranslation)18 b(is)i(considered)g(a)g(kind)g(of)f(mo)q -(di\014cation,)h(so)g(y)o(ou)g(ma)o(y)f(distribute)g(translations)165 -982 y(of)j(the)g(Do)q(cumen)o(t)g(under)h(the)f(terms)g(of)g(section)f -(4.)41 b(Replacing)22 b(In)o(v)m(arian)o(t)g(Sections)g(with)165 -1037 y(translations)f(requires)h(sp)q(ecial)h(p)q(ermission)f(from)g -(their)g(cop)o(yrigh)o(t)f(holders,)j(but)f(y)o(ou)g(ma)o(y)165 -1092 y(include)13 b(translations)d(of)i(some)g(or)f(all)g(In)o(v)m -(arian)o(t)h(Sections)g(in)g(addition)g(to)f(the)h(original)f(v)o -(ersions)165 1147 y(of)k(these)h(In)o(v)m(arian)o(t)f(Sections.)22 -b(Y)l(ou)15 b(ma)o(y)g(include)i(a)e(translation)f(of)h(this)g -(License,)h(and)g(all)f(the)165 1201 y(license)21 b(notices)f(in)g(the) -h(Do)q(cumen)o(t,)g(and)g(an)o(y)f(W)l(arran)o(t)o(y)f(Disclaimers,)h -(pro)o(vided)g(that)g(y)o(ou)165 1256 y(also)f(include)h(the)g -(original)f(English)g(v)o(ersion)g(of)h(this)f(License)i(and)f(the)g -(original)e(v)o(ersions)h(of)165 1311 y(those)e(notices)f(and)i -(disclaimers.)24 b(In)18 b(case)f(of)f(a)h(disagreemen)o(t)f(b)q(et)o -(w)o(een)i(the)f(translation)e(and)165 1366 y(the)j(original)d(v)o -(ersion)i(of)g(this)g(License)i(or)e(a)g(notice)g(or)g(disclaimer,)g -(the)h(original)d(v)o(ersion)i(will)165 1421 y(prev)m(ail.)165 -1492 y(If)e(a)f(section)f(in)i(the)f(Do)q(cumen)o(t)g(is)g(En)o(titled) -f(\\Ac)o(kno)o(wledgemen)o(ts",)g(\\Dedications",)g(or)g(\\His-)165 -1547 y(tory",)f(the)h(requiremen)o(t)g(\(section)f(4\))h(to)f(Preserv)o -(e)h(its)g(Title)f(\(section)g(1\))h(will)f(t)o(ypically)f(require)165 -1601 y(c)o(hanging)k(the)g(actual)f(title.)100 1673 y(9.)29 -b(TERMINA)l(TION)165 1744 y(Y)l(ou)15 b(ma)o(y)f(not)h(cop)o(y)l(,)f -(mo)q(dify)l(,)h(sublicense,)g(or)f(distribute)g(the)h(Do)q(cumen)o(t)g -(except)h(as)e(expressly)165 1799 y(pro)o(vided)19 b(under)h(this)f -(License.)33 b(An)o(y)19 b(attempt)f(otherwise)h(to)f(cop)o(y)l(,)i(mo) -q(dify)l(,)g(sublicense,)g(or)165 1854 y(distribute)14 -b(it)h(is)g(v)o(oid,)f(and)h(will)f(automatically)f(terminate)h(y)o -(our)g(righ)o(ts)g(under)i(this)f(License.)165 1925 y(Ho)o(w)o(ev)o -(er,)g(if)h(y)o(ou)g(cease)g(all)f(violation)f(of)i(this)g(License,)h -(then)f(y)o(our)g(license)g(from)f(a)h(particular)165 -1980 y(cop)o(yrigh)o(t)h(holder)g(is)h(reinstated)f(\(a\))g(pro)o -(visionally)l(,)f(unless)i(and)g(un)o(til)f(the)h(cop)o(yrigh)o(t)e -(holder)165 2034 y(explicitly)j(and)i(\014nally)e(terminates)h(y)o(our) -f(license,)j(and)e(\(b\))g(p)q(ermanen)o(tly)l(,)h(if)f(the)g(cop)o -(yrigh)o(t)165 2089 y(holder)d(fails)f(to)h(notify)f(y)o(ou)h(of)g(the) -g(violation)e(b)o(y)i(some)g(reasonable)g(means)g(prior)f(to)h(60)f(da) -o(ys)165 2144 y(after)e(the)i(cessation.)165 2215 y(Moreo)o(v)o(er,)e -(y)o(our)h(license)h(from)f(a)g(particular)g(cop)o(yrigh)o(t)f(holder)i -(is)f(reinstated)g(p)q(ermanen)o(tly)g(if)165 2270 y(the)f(cop)o(yrigh) -o(t)f(holder)g(noti\014es)h(y)o(ou)f(of)h(the)g(violation)e(b)o(y)h -(some)h(reasonable)f(means,)h(this)f(is)h(the)165 2325 -y(\014rst)g(time)f(y)o(ou)g(ha)o(v)o(e)h(receiv)o(ed)g(notice)f(of)h -(violation)e(of)h(this)h(License)g(\(for)f(an)o(y)h(w)o(ork\))f(from)g -(that)165 2380 y(cop)o(yrigh)o(t)i(holder,)g(and)h(y)o(ou)g(cure)g(the) -g(violation)e(prior)i(to)f(30)g(da)o(ys)h(after)f(y)o(our)g(receipt)h -(of)g(the)165 2434 y(notice.)165 2506 y(T)l(ermination)d(of)g(y)o(our)g -(righ)o(ts)g(under)h(this)f(section)h(do)q(es)g(not)f(terminate)g(the)h -(licenses)f(of)h(parties)165 2560 y(who)19 b(ha)o(v)o(e)g(receiv)o(ed)g -(copies)g(or)f(righ)o(ts)g(from)g(y)o(ou)h(under)h(this)e(License.)33 -b(If)19 b(y)o(our)g(righ)o(ts)e(ha)o(v)o(e)165 2615 y(b)q(een)d -(terminated)e(and)i(not)e(p)q(ermanen)o(tly)h(reinstated,)f(receipt)h -(of)g(a)g(cop)o(y)g(of)f(some)h(or)f(all)g(of)h(the)165 -2670 y(same)i(material)e(do)q(es)j(not)f(giv)o(e)f(y)o(ou)h(an)o(y)g -(righ)o(ts)f(to)g(use)i(it.)p eop end -%%Page: 64 68 -TeXDict begin 64 67 bop 75 -58 a Fs(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(64)77 149 -y(10.)29 b(FUTURE)15 b(REVISIONS)j(OF)d(THIS)h(LICENSE)165 -217 y(The)21 b(F)l(ree)g(Soft)o(w)o(are)e(F)l(oundation)h(ma)o(y)g -(publish)h(new,)h(revised)f(v)o(ersions)f(of)g(the)h(GNU)g(F)l(ree)165 -271 y(Do)q(cumen)o(tation)15 b(License)i(from)e(time)g(to)h(time.)21 -b(Suc)o(h)c(new)f(v)o(ersions)g(will)e(b)q(e)j(similar)d(in)i(spirit) -165 326 y(to)h(the)g(presen)o(t)g(v)o(ersion,)g(but)g(ma)o(y)f -(di\013er)h(in)g(detail)f(to)h(address)g(new)g(problems)g(or)g -(concerns.)165 381 y(See)f Fr(http://www.gnu.org/copyle)o(ft/)p -Fs(.)165 448 y(Eac)o(h)f(v)o(ersion)e(of)i(the)g(License)g(is)f(giv)o -(en)g(a)h(distinguishing)e(v)o(ersion)h(n)o(um)o(b)q(er.)20 -b(If)15 b(the)g(Do)q(cumen)o(t)165 503 y(sp)q(eci\014es)23 -b(that)f(a)h(particular)e(n)o(um)o(b)q(ered)j(v)o(ersion)d(of)i(this)f -(License)h(\\or)f(an)o(y)g(later)g(v)o(ersion")165 558 -y(applies)16 b(to)f(it,)h(y)o(ou)g(ha)o(v)o(e)g(the)g(option)f(of)h -(follo)o(wing)e(the)i(terms)g(and)g(conditions)g(either)g(of)g(that)165 -613 y(sp)q(eci\014ed)k(v)o(ersion)e(or)h(of)f(an)o(y)h(later)f(v)o -(ersion)g(that)g(has)h(b)q(een)h(published)g(\(not)e(as)g(a)h(draft\))f -(b)o(y)165 667 y(the)e(F)l(ree)h(Soft)o(w)o(are)e(F)l(oundation.)22 -b(If)17 b(the)g(Do)q(cumen)o(t)f(do)q(es)g(not)g(sp)q(ecify)h(a)f(v)o -(ersion)g(n)o(um)o(b)q(er)g(of)165 722 y(this)h(License,)h(y)o(ou)f(ma) -o(y)f(c)o(ho)q(ose)i(an)o(y)e(v)o(ersion)h(ev)o(er)g(published)h(\(not) -e(as)h(a)g(draft\))f(b)o(y)i(the)f(F)l(ree)165 777 y(Soft)o(w)o(are)e -(F)l(oundation.)21 b(If)16 b(the)g(Do)q(cumen)o(t)g(sp)q(eci\014es)h -(that)e(a)h(pro)o(xy)f(can)h(decide)h(whic)o(h)f(future)165 -832 y(v)o(ersions)f(of)h(this)g(License)h(can)f(b)q(e)h(used,)g(that)f -(pro)o(xy's)f(public)h(statemen)o(t)g(of)g(acceptance)g(of)g(a)165 -887 y(v)o(ersion)e(p)q(ermanen)o(tly)h(authorizes)g(y)o(ou)g(to)f(c)o -(ho)q(ose)i(that)e(v)o(ersion)g(for)h(the)g(Do)q(cumen)o(t.)77 -954 y(11.)29 b(RELICENSING)165 1021 y(\\Massiv)o(e)17 -b(Multiauthor)g(Collab)q(oration)f(Site")i(\(or)g(\\MMC)g(Site"\))f -(means)i(an)o(y)f(W)l(orld)g(Wide)165 1076 y(W)l(eb)g(serv)o(er)g(that) -f(publishes)h(cop)o(yrigh)o(table)e(w)o(orks)h(and)h(also)f(pro)o -(vides)h(prominen)o(t)f(facilities)165 1131 y(for)c(an)o(yb)q(o)q(dy)h -(to)f(edit)h(those)f(w)o(orks.)19 b(A)14 b(public)f(wiki)g(that)g(an)o -(yb)q(o)q(dy)h(can)g(edit)g(is)f(an)h(example)f(of)165 -1186 y(suc)o(h)k(a)g(serv)o(er.)24 b(A)17 b(\\Massiv)o(e)e(Multiauthor) -g(Collab)q(oration")g(\(or)h(\\MMC"\))f(con)o(tained)h(in)h(the)165 -1240 y(site)e(means)g(an)o(y)g(set)g(of)f(cop)o(yrigh)o(table)g(w)o -(orks)g(th)o(us)h(published)h(on)f(the)g(MMC)g(site.)165 -1308 y(\\CC-BY-SA")j(means)f(the)h(Creativ)o(e)e(Commons)h(A)o -(ttribution-Share)f(Alik)o(e)h(3.0)g(license)g(pub-)165 -1362 y(lished)c(b)o(y)h(Creativ)o(e)e(Commons)g(Corp)q(oration,)g(a)h -(not-for-pro\014t)g(corp)q(oration)f(with)h(a)g(principal)165 -1417 y(place)g(of)f(business)i(in)f(San)g(F)l(rancisco,)f(California,)f -(as)h(w)o(ell)g(as)h(future)g(cop)o(yleft)f(v)o(ersions)g(of)h(that)165 -1472 y(license)i(published)h(b)o(y)f(that)g(same)f(organization.)165 -1539 y(\\Incorp)q(orate")h(means)g(to)g(publish)g(or)g(republish)g(a)g -(Do)q(cumen)o(t,)g(in)g(whole)g(or)g(in)g(part,)g(as)g(part)165 -1594 y(of)g(another)g(Do)q(cumen)o(t.)165 1661 y(An)e(MMC)g(is)f -(\\eligible)g(for)g(relicensing")h(if)f(it)h(is)f(licensed)i(under)g -(this)e(License,)i(and)f(if)g(all)f(w)o(orks)165 1716 -y(that)20 b(w)o(ere)h(\014rst)g(published)g(under)h(this)e(License)i -(somewhere)f(other)g(than)g(this)f(MMC,)g(and)165 1771 -y(subsequen)o(tly)e(incorp)q(orated)e(in)i(whole)f(or)g(in)g(part)g(in) -o(to)f(the)h(MMC,)f(\(1\))h(had)g(no)h(co)o(v)o(er)f(texts)165 -1826 y(or)e(in)o(v)m(arian)o(t)e(sections,)i(and)g(\(2\))f(w)o(ere)h -(th)o(us)g(incorp)q(orated)g(prior)f(to)h(No)o(v)o(em)o(b)q(er)g(1,)f -(2008.)165 1893 y(The)21 b(op)q(erator)e(of)h(an)g(MMC)f(Site)h(ma)o(y) -g(republish)h(an)f(MMC)f(con)o(tained)h(in)g(the)h(site)e(under)165 -1948 y(CC-BY-SA)d(on)f(the)g(same)g(site)f(at)h(an)o(y)f(time)h(b)q -(efore)g(August)g(1,)g(2009,)e(pro)o(vided)i(the)g(MMC)f(is)165 -2002 y(eligible)g(for)h(relicensing.)p eop end -%%Page: 65 69 -TeXDict begin 65 68 bop 75 -58 a Fs(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(65)75 149 -y Fq(ADDENDUM:)20 b(Ho)n(w)h(to)h(use)g(this)g(License)g(for)g(y)n(our) -h(do)r(cumen)n(ts)75 229 y Fs(T)l(o)17 b(use)h(this)e(License)i(in)g(a) -f(do)q(cumen)o(t)g(y)o(ou)g(ha)o(v)o(e)g(written,)g(include)g(a)g(cop)o -(y)g(of)g(the)h(License)g(in)f(the)75 284 y(do)q(cumen)o(t)f(and)f(put) -g(the)h(follo)o(wing)d(cop)o(yrigh)o(t)g(and)j(license)f(notices)g -(just)g(after)f(the)h(title)f(page:)234 340 y Fe(Copyright)i(\(C\))38 -b Fc(year)k(your)19 b(name)t Fe(.)234 384 y(Permission)d(is)j(granted)e -(to)i(copy,)e(distribute)f(and/or)h(modify)h(this)g(document)234 -427 y(under)g(the)g(terms)g(of)h(the)f(GNU)h(Free)f(Documenta)o(tio)o -(n)e(License,)h(Version)g(1.3)234 471 y(or)i(any)g(later)e(version)g -(published)f(by)j(the)g(Free)f(Software)e(Foundation)o(;)234 -514 y(with)i(no)h(Invariant)d(Sections,)g(no)j(Front-Cove)o(r)e(Texts,) -g(and)h(no)h(Back-Cover)234 558 y(Texts.)37 b(A)19 b(copy)f(of)h(the)g -(license)e(is)h(included)f(in)i(the)f(section)f(entitled)g(``GNU)234 -601 y(Free)h(Documentat)o(ion)e(License'')o(.)137 669 -y Fs(If)k(y)o(ou)g(ha)o(v)o(e)g(In)o(v)m(arian)o(t)f(Sections,)h(F)l -(ron)o(t-Co)o(v)o(er)f(T)l(exts)g(and)h(Bac)o(k-Co)o(v)o(er)f(T)l -(exts,)i(replace)f(the)75 724 y(\\with)s(.)10 b(.)g(.)5 -b(T)l(exts.")20 b(line)15 b(with)f(this:)273 780 y Fe(with)19 -b(the)f(Invariant)e(Sections)h(being)g Fc(list)h(their)g(titles)t -Fe(,)f(with)273 823 y(the)i(Front-Cov)o(er)d(Texts)i(being)g -Fc(list)t Fe(,)g(and)g(with)g(the)h(Back-Cove)o(r)d(Texts)273 -867 y(being)i Fc(list)t Fe(.)137 934 y Fs(If)g(y)o(ou)f(ha)o(v)o(e)h -(In)o(v)m(arian)o(t)f(Sections)g(without)g(Co)o(v)o(er)f(T)l(exts,)i -(or)f(some)g(other)g(com)o(bination)g(of)g(the)75 989 -y(three,)e(merge)g(those)g(t)o(w)o(o)f(alternativ)o(es)f(to)i(suit)f -(the)h(situation.)137 1056 y(If)d(y)o(our)g(do)q(cumen)o(t)g(con)o -(tains)f(non)o(trivial)f(examples)i(of)f(program)g(co)q(de,)i(w)o(e)f -(recommend)g(releasing)75 1111 y(these)22 b(examples)f(in)g(parallel)g -(under)h(y)o(our)f(c)o(hoice)g(of)g(free)h(soft)o(w)o(are)e(license,)i -(suc)o(h)g(as)g(the)f(GNU)75 1166 y(General)15 b(Public)g(License,)g -(to)g(p)q(ermit)g(their)f(use)i(in)f(free)g(soft)o(w)o(are.)p -eop end -%%Page: 66 70 -TeXDict begin 66 69 bop 75 -58 a Fs(Concept)15 b(Index)1466 -b(66)75 149 y Fo(Concept)27 b(Index)75 319 y Fq(A)75 -377 y Fb(application-sp)q(eci\014c)14 b(completion)f(functions)c -Fa(:)e(:)f(:)g(:)g(:)g(:)g(:)21 b Fb(43)75 502 y Fq(C)75 -561 y Fb(command)14 b(editing)9 b Fa(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)21 b Fb(1)75 686 y Fq(E)75 744 y Fb(editing)13 -b(command)h(lines)8 b Fa(:)d(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)20 -b Fb(1)75 869 y Fq(I)75 927 y Fb(initialization)12 b(\014le,)h -(readline)8 b Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(4)75 971 -y(in)o(teraction,)13 b(readline)e Fa(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)24 b Fb(1)75 1096 y Fq(K)75 1154 y Fb(kill)12 -b(ring)g Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(2)1012 319 y(killing)13 -b(text)e Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)24 b Fb(2)1012 463 y Fq(N)1012 528 -y Fb(notation,)14 b(readline)5 b Fa(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)19 b Fb(1)1012 671 y Fq(R)1012 737 y -Fb(readline,)13 b(function)6 b Fa(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)19 b Fb(22)1012 880 y Fq(V)1012 946 y Fb(v)n(ariables,)13 -b(readline)f Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)24 -b Fb(4)1012 1089 y Fq(Y)1012 1154 y Fb(y)o(anking)14 -b(text)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)19 b Fb(2)p eop end -%%Page: 67 71 -TeXDict begin 67 70 bop 75 -58 a Fs(F)l(unction)15 b(and)g(V)l(ariable) -g(Index)1187 b(67)75 149 y Fo(F)-7 b(unction)27 b(and)g(V)-7 -b(ariable)28 b(Index)p 80 305 21 3 v 75 363 a Fe(_rl_digit_)o(p)7 -b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 -b Fb(38)75 407 y Fe(_rl_digit_)o(va)o(lue)5 b Fa(:)s(:)h(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)18 b Fb(38)75 450 y Fe(_rl_lowerc)o(as)o -(e_p)5 b Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)18 -b Fb(38)75 494 y Fe(_rl_to_low)o(er)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(38)75 538 y Fe(_rl_to_upp)o(er) -6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 -b Fb(38)75 581 y Fe(_rl_upperc)o(as)o(e_p)5 b Fa(:)s(:)h(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)18 b Fb(38)75 707 y Fq(A)75 -766 y Fe(abort)11 b(\(C-g\))6 b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)18 b Fb(19)75 809 y Fe(accept-lin)o(e) -10 b(\(Newline)f(or)j(Return\))t Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)17 b Fb(14)75 935 y Fq(B)75 993 y -Fe(backward-c)o(ha)o(r)10 b(\(C-b\))t Fa(:)t(:)c(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)17 b Fb(14)75 1037 y Fe(backward-d)o(el)o(ete)o(-c)o(har)9 -b(\(Rubout\))f Fa(:)s(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)21 b Fb(16)75 1081 y Fe(backward-k)o(il)o(l-l)o(in)o(e)10 -b(\(C-x)h(Rubout\))e Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -22 b Fb(17)75 1124 y Fe(backward-k)o(il)o(l-w)o(or)o(d)10 -b(\(M-DEL\))t Fa(:)s(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)16 b Fb(17)75 1168 y Fe(backward-w)o(or)o(d)10 -b(\(M-b\))t Fa(:)t(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(14)75 -1212 y Fe(beginning-)o(of)o(-hi)o(st)o(ory)9 b(\(M-<\))t -Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)16 b Fb(15)75 1255 y Fe(beginning-)o(of)o(-li)o(ne)9 -b(\(C-a\))e Fa(:)e(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(14)75 1299 y(b)q(ell-st)o(yle)10 -b Fa(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)23 b Fb(4)75 1343 y(bind-tt)o(y-sp)q(ecial-c)o(hars) -7 b Fa(:)h(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(5)75 -1468 y Fq(C)75 1526 y Fe(call-last-)o(kb)o(d-m)o(ac)o(ro)9 -b(\(C-x)j(e\))6 b Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)18 b Fb(19)75 1569 y Fe(capitalize)o(-w)o(ord)9 -b(\(M-c\))f Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(16)75 1613 -y Fe(character-)o(se)o(arc)o(h)10 b(\(C-]\))f Fa(:)s(:)d(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)21 -b Fb(20)75 1657 y Fe(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9 -b(\(M-C-]\))s Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 -b Fb(20)75 1700 y Fe(clear-scre)o(en)9 b(\(C-l\))c Fa(:)g(:)h(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)18 b Fb(14)75 1744 y(commen)o(t-b)q(egin)9 -b Fa(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21 -b Fb(5)75 1788 y Fe(complete)10 b(\(TAB\))e Fa(:)e(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(18)75 1831 y(completion-displa)o -(y-width)11 b Fa(:)6 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(5)75 1875 -y(completion-ignore-case)6 b Fa(:)i(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 -b Fb(5)75 1918 y(completion-map-case)t Fa(:)8 b(:)e(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)17 b Fb(5)75 1962 y(completion-pre\014x-displa)o(y-length)t -Fa(:)8 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -16 b Fb(5)75 2006 y(completion-query-items)9 b Fa(:)d(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)21 b Fb(5)75 2049 y(con)o(v)o(ert-meta)11 b Fa(:)6 -b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 -b Fb(5)75 2093 y Fe(copy-backw)o(ar)o(d-w)o(or)o(d)10 -b(\(\))f Fa(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(17)75 2137 y Fe(copy-forwa)o(rd) -o(-wo)o(rd)9 b(\(\))i Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 -b Fb(18)75 2180 y Fe(copy-regio)o(n-)o(as-)o(ki)o(ll)9 -b(\(\))g Fa(:)c(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)21 b Fb(17)75 2306 y Fq(D)75 -2365 y Fe(delete-cha)o(r)10 b(\(C-d\))c Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)19 b Fb(16)75 2408 y Fe(delete-cha)o(r-)o(or-)o(li)o(st)9 -b(\(\))g Fa(:)c(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)21 b Fb(19)75 2452 y Fe(delete-hor)o(iz)o -(ont)o(al)o(-sp)o(ace)9 b(\(\))t Fa(:)c(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)16 b Fb(17)75 2495 -y Fe(digit-argu)o(me)o(nt)9 b(\()p Fc(M-0)p Fe(,)i Fc(M-1)p -Fe(,)h(...)f Fc(M--)p Fe(\))t Fa(:)t(:)6 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)16 b Fb(18)75 2539 y(disable-completion)6 b Fa(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 b Fb(5)75 2583 y Fe(do-upperca)o(se)o -(-ve)o(rs)o(ion)9 b(\(M-a,)i(M-b,)g(M-)p Fc(x)t Fe(,)h(...)o(\))155 -2626 y Fa(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(19)75 -2670 y Fe(downcase-w)o(or)o(d)10 b(\(M-l\))t Fa(:)t(:)c(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)17 b Fb(16)1012 305 y Fe(dump-functi)o(on)o(s)10 -b(\(\))c Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 -b Fb(20)1012 349 y Fe(dump-macros)9 b(\(\))g Fa(:)e(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(20)1012 393 y Fe(dump-variab)o(le)o -(s)10 b(\(\))c Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 -b Fb(20)1012 520 y Fq(E)1012 578 y Fb(editing-mo)q(de)11 -b Fa(:)6 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)23 b Fb(6)1012 622 y Fe(emacs-editi)o(ng)o(-mo)o(de)9 -b(\(C-e\))d Fa(:)t(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)19 b Fb(20)1012 665 y(enable-k)o(eypad)12 -b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -22 b Fb(6)1012 709 y Fe(end-kbd-mac)o(ro)9 b(\(C-x)i(\)\))5 -b Fa(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(19)1012 753 y Fe(end-of-hist)o(or)o -(y)10 b(\(M->\))f Fa(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(15)1012 -797 y Fe(end-of-line)9 b(\(C-e\))d Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)20 b Fb(14)1012 841 y Fe(exchange-po)o(in)o(t-a)o(nd)o(-ma)o -(rk)9 b(\(C-x)j(C-x\))7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 -b Fb(20)1012 884 y(expand-tilde)7 b Fa(:)h(:)e(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)20 b Fb(6)1012 -1010 y Fq(F)1012 1069 y Fe(forward-bac)o(kw)o(ard)o(-d)o(ele)o(te)o -(-ch)o(ar)9 b(\(\))d Fa(:)f(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -19 b Fb(16)1012 1112 y Fe(forward-cha)o(r)10 b(\(C-f\))5 -b Fa(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 b Fb(14)1012 -1156 y Fe(forward-sea)o(rc)o(h-h)o(is)o(tor)o(y)10 b(\(C-s\))d -Fa(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 -b Fb(15)1012 1200 y Fe(forward-wor)o(d)10 b(\(M-f\))5 -b Fa(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 b Fb(14)1012 -1322 y Fq(H)1012 1380 y Fb(history-preserv)o(e-p)q(oin)o(t)5 -b Fa(:)j(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(6)1012 -1424 y Fe(history-sea)o(rc)o(h-b)o(ac)o(kwa)o(rd)9 b(\(\))t -Fa(:)c(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)17 b Fb(15)1012 1468 y Fe(history-sea)o(rc)o(h-f)o(or)o(war)o(d)10 -b(\(\))5 b Fa(:)g(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)18 b Fb(15)1012 1511 y(history-size)8 -b Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)21 b Fb(6)1012 1555 y(horizon)o(tal-scroll-mo)q(de)12 -b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(6)1012 -1673 y Fq(I)1012 1731 y Fb(input-meta)11 b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 -b Fb(6)1012 1775 y Fe(insert-comm)o(en)o(t)10 b(\(M-#\))f -Fa(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(20)1012 1819 y Fe(insert-comp)o(le)o -(tio)o(ns)9 b(\(M-*\))d Fa(:)t(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)19 b Fb(18)1012 1862 -y(isearc)o(h-terminators)11 b Fa(:)6 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)23 b Fb(6)1012 1980 y Fq(K)1012 2038 y Fb(k)o(eymap)t -Fa(:)7 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(7)1012 2082 y Fe(kill-line)10 -b(\(C-k\))f Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)22 -b Fb(17)1012 2126 y Fe(kill-region)9 b(\(\))g Fa(:)e(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(17)1012 2170 y -Fe(kill-whole-)o(li)o(ne)9 b(\(\))c Fa(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)18 b Fb(17)1012 2213 y Fe(kill-word)10 b(\(M-d\))f -Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)22 -b Fb(17)1012 2335 y Fq(M)1012 2393 y Fb(mark-mo)q(di\014ed-lines)5 -b Fa(:)j(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 b -Fb(7)1012 2437 y(mark-symlink)o(ed-directories)t Fa(:)8 -b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)17 b Fb(7)1012 2481 y(matc)o(h-hidden-\014les)9 -b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)22 -b Fb(7)1012 2525 y Fe(menu-comple)o(te)9 b(\(\))f Fa(:)d(:)h(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(18)1012 2569 y Fe(menu-comple)o(te)o -(-ba)o(ck)o(war)o(d)10 b(\(\))5 b Fa(:)g(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(19)1012 -2612 y(men)o(u-complete-displa)o(y-pre\014x)13 b Fa(:)6 -b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)24 b Fb(7)1012 2656 y(meta-\015ag)8 b Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 -b Fb(6)p eop end -%%Page: 68 72 -TeXDict begin 68 71 bop 75 -58 a Fs(F)l(unction)15 b(and)g(V)l(ariable) -g(Index)1187 b(68)75 149 y Fq(N)75 209 y Fe(next-histo)o(ry)9 -b(\(C-n\))c Fa(:)g(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 -b Fb(15)75 253 y Fe(non-increm)o(en)o(tal)o(-f)o(orw)o(ard)o(-s)o(ear)o -(ch)o(-hi)o(st)o(ory)9 b(\(M-n\))155 296 y Fa(:)d(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)16 b Fb(15)75 341 y Fe(non-increm)o(en)o(tal)o(-r)o(eve)o(rse)o -(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9 b(\(M-p\))155 384 y -Fa(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(15)75 504 y Fq(O)75 -563 y Fb(output-meta)7 b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)19 b Fb(7)75 607 y Fe(overwrite-)o(mo)o(de) -9 b(\(\))d Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)19 -b Fb(17)75 731 y Fq(P)75 790 y Fb(page-completions)11 -b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)22 -b Fb(7)75 835 y Fe(possible-c)o(om)o(ple)o(ti)o(ons)9 -b(\(M-?\))t Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)16 b Fb(18)75 879 y Fe(prefix-met)o(a)10 -b(\(ESC\))c Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)19 -b Fb(19)75 923 y Fe(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))f -Fa(:)s(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)21 b Fb(14)75 1052 y Fq(Q)75 1111 -y Fe(quoted-ins)o(er)o(t)10 b(\(C-q)h(or)h(C-v\))d Fa(:)d(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 -b Fb(16)75 1240 y Fq(R)75 1300 y Fe(re-read-in)o(it)o(-fi)o(le)9 -b(\(C-x)i(C-r\))6 b Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)18 b Fb(19)75 1344 y Fe(readline)6 -b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)19 b Fb(22)75 1388 y Fe(redraw-cur)o(re)o(nt-)o(li)o(ne) -9 b(\(\))g Fa(:)c(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)21 b Fb(14)75 1432 y Fe(reverse-se)o(ar) -o(ch-)o(hi)o(sto)o(ry)9 b(\(C-r\))f Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)22 b Fb(15)75 1476 y(rev)o -(ert-all-at-newline)10 b Fa(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 -b Fb(8)75 1521 y Fe(revert-lin)o(e)10 b(\(M-r\))c Fa(:)t(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(19)75 1565 y Fe(rl_add_def)o(un)6 -b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 -b Fb(30)75 1609 y Fe(rl_add_fun)o(ma)o(p_e)o(nt)o(ry)9 -b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(33)75 1653 y -Fe(rl_add_und)o(o)7 b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)23 b Fb(34)75 1697 y Fe(rl_alphabe)o(ti)o(c)8 -b Fa(:)s(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 -b Fb(37)75 1742 y Fe(rl_already)o(_p)o(rom)o(pt)o(ed)9 -b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(26)75 1786 y -Fe(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_f)o(unc)o(ti)o(on)6 -b Fa(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)22 b Fb(45)75 -1830 y Fe(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_o)o(ver)5 -b Fa(:)s(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 -b Fb(49)75 1874 y Fe(rl_basic_q)o(uo)o(te_)o(ch)o(ara)o(cte)o(rs)6 -b Fa(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)23 b Fb(47)75 1918 y Fe(rl_basic_w)o(or)o(d_b)o(re)o(ak_)o(cha)o -(ra)o(cte)o(rs)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)16 b Fb(47)75 1963 y Fe(rl_begin_u)o(nd)o(o_g)o(ro)o(up)9 -b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(33)75 2007 y -Fe(rl_bind_ke)o(y)7 b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)23 b Fb(31)75 2051 y Fe(rl_bind_ke)o(y_)o(if_)o(un)o -(bou)o(nd)5 b Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(31)75 2095 y -Fe(rl_bind_ke)o(y_)o(if_)o(un)o(bou)o(nd_)o(in)o(_ma)o(p)5 -b Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)17 -b Fb(31)75 2139 y Fe(rl_bind_ke)o(y_)o(in_)o(ma)o(p)7 -b Fa(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(31)75 2184 -y Fe(rl_bind_ke)o(ys)o(eq)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)20 b Fb(31)75 2228 y Fe(rl_bind_ke)o(ys)o(eq_)o(if)o -(_un)o(bou)o(nd)6 b Fa(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(32)75 2272 y Fe(rl_bind_ke)o(ys)o(eq_)o -(if)o(_un)o(bou)o(nd)o(_in)o(_m)o(ap)6 b Fa(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)22 b Fb(32)75 2316 y Fe(rl_bind_ke)o(ys)o(eq_)o(in)o(_ma)o -(p)6 b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(32)75 2361 y Fe(rl_binding)o(_k) -o(eym)o(ap)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 -b Fb(27)75 2405 y Fe(rl_callbac)o(k_)o(han)o(dl)o(er_)o(ins)o(ta)o(ll)7 -b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)20 -b Fb(39)75 2449 y Fe(rl_callbac)o(k_)o(han)o(dl)o(er_)o(rem)o(ov)o(e)9 -b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -21 b Fb(39)75 2493 y Fe(rl_callbac)o(k_)o(rea)o(d_)o(cha)o(r)6 -b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(39)75 2537 y Fe(rl_catch_s)o(ig)o(nal)o -(s)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)17 -b Fb(42)75 2582 y Fe(rl_catch_s)o(ig)o(win)o(ch)r Fa(:)t(:)6 -b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(42)75 2626 -y Fe(rl_char_is)o(_q)o(uot)o(ed)o(_p)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -22 b Fb(46)75 2670 y Fe(rl_cleanup)o(_a)o(fte)o(r_)o(sig)o(nal)s -Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)17 b Fb(42)1012 149 y Fe(rl_clear_me)o(ss)o(age)s -Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b -Fb(35)1012 194 y Fe(rl_clear_pe)o(nd)o(ing)o(_i)o(npu)o(t)5 -b Fa(:)s(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)19 b Fb(36)1012 238 y Fe(rl_clear_si)o(gn)o(als)s -Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b -Fb(43)1012 282 y Fe(rl_complete)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(44)1012 326 y -Fe(rl_complete)o(_i)o(nte)o(rn)o(al)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 -b Fb(44)1012 371 y Fe(rl_complete)o(r_)o(quo)o(te)o(_ch)o(ar)o(act)o -(ers)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18 -b Fb(47)1012 415 y Fe(rl_complete)o(r_)o(wor)o(d_)o(bre)o(ak)o(_ch)o -(ara)o(ct)o(ers)6 b Fa(:)s(:)g(:)g(:)h(:)f(:)g(:)g(:)20 -b Fb(47)1012 459 y Fe(rl_completi)o(on)o(_ap)o(pe)o(nd_)o(ch)o(ara)o -(cte)o(r)s Fa(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 -b Fb(48)1012 503 y Fe(rl_completi)o(on)o(_di)o(sp)o(lay)o(_m)o(atc)o -(hes)o(_h)o(ook)6 b Fa(:)s(:)g(:)g(:)h(:)f(:)g(:)g(:)20 -b Fb(47)1012 547 y Fe(rl_completi)o(on)o(_en)o(tr)o(y_f)o(un)o(cti)o -(on)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 -b Fb(44,)13 b(45)1012 592 y Fe(rl_completi)o(on)o(_fo)o(un)o(d_q)o(uo)o -(te)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)23 b Fb(48)1012 636 y Fe(rl_completi)o(on)o(_in)o(vo)o(kin)o -(g_)o(key)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)22 b Fb(49)1012 680 y Fe(rl_completi)o(on)o(_ma)o(rk)o(_sy) -o(ml)o(ink)o(_di)o(rs)7 b Fa(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -24 b Fb(48)1012 724 y Fe(rl_completi)o(on)o(_ma)o(tc)o(hes)6 -b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(45)1012 769 y Fe(rl_completi)o(on)o -(_mo)o(de)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b -Fb(44)1012 813 y Fe(rl_completi)o(on)o(_qu)o(er)o(y_i)o(te)o(ms)7 -b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)23 b Fb(47)1012 857 y Fe(rl_completi)o(on)o(_qu)o(ot)o(e_c)o(ha)o -(rac)o(ter)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)18 b Fb(48)1012 901 y Fe(rl_completi)o(on)o(_su)o(pp)o(res)o(s_)o -(app)o(end)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)18 b Fb(48)1012 945 y Fe(rl_completi)o(on)o(_su)o(pp)o(res)o(s_)o -(quo)o(te)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)19 b Fb(48)1012 990 y Fe(rl_completi)o(on)o(_ty)o(pe)7 -b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(49)1012 1034 -y Fe(rl_completi)o(on)o(_wo)o(rd)o(_br)o(ea)o(k_h)o(ook)t -Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18 -b Fb(47)1012 1078 y Fe(rl_copy_key)o(ma)o(p)7 b Fa(:)s(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 b Fb(30)1012 1122 -y Fe(rl_copy_tex)o(t)6 b Fa(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)23 b Fb(35)1012 1167 y Fe(rl_crlf)7 b -Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)21 b Fb(34)1012 1211 y Fe(rl_delete_t)o(ex)o(t)7 -b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 -b Fb(35)1012 1255 y Fe(rl_deprep_t)o(er)o(m_f)o(un)o(cti)o(on)s -Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)17 b Fb(27)1012 1299 y Fe(rl_deprep_t)o(er)o(min)o(al)7 -b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(37)1012 1343 -y Fe(rl_ding)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(37)1012 1388 -y Fe(rl_director)o(y_)o(com)o(pl)o(eti)o(on)o(_ho)o(ok)6 -b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)19 -b Fb(46)1012 1432 y Fe(rl_discard_)o(ke)o(yma)o(p)s Fa(:)s(:)6 -b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)16 b Fb(30)1012 1476 -y Fe(rl_dispatch)o(in)o(g)7 b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)20 b Fb(25)1012 1520 y Fe(rl_display_)o(ma)o(tch)o(_l)o -(ist)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(38)1012 1564 y -Fe(rl_display_)o(pr)o(omp)o(t)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)16 b Fb(26)1012 1609 y Fe(rl_do_undo)s Fa(:)s(:)6 -b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 -b Fb(34)1012 1653 y Fe(rl_done)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 -b Fb(25)1012 1697 y Fe(rl_echo_sig)o(na)o(l_c)o(ha)o(r)9 -b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(42)1012 1741 -y Fe(rl_editing_)o(mo)o(de)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)19 b Fb(29)1012 1786 y Fe(rl_end)9 b Fa(:)t(:)d(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 -b Fb(25)1012 1830 y Fe(rl_end_undo)o(_g)o(rou)o(p)s Fa(:)s(:)6 -b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)16 b Fb(33)1012 1874 -y Fe(rl_erase_em)o(pt)o(y_l)o(in)o(e)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -22 b Fb(25)1012 1918 y Fe(rl_event_ho)o(ok)7 b Fa(:)t(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 b Fb(27)1012 1962 -y Fe(rl_execute_)o(ne)o(xt)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)19 b Fb(36)1012 2007 y Fe(rl_executin)o(g_)o(key)o(ma)o(p)9 -b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(27)1012 2051 -y Fe(rl_executin)o(g_)o(mac)o(ro)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -24 b Fb(27)1012 2095 y Fe(rl_expand_p)o(ro)o(mpt)s Fa(:)t(:)6 -b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(35)1012 -2139 y Fe(rl_explicit)o(_a)o(rg)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)19 b Fb(29)1012 2184 y Fe(rl_extend_l)o(in)o(e_b)o(uf)o -(fer)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(37)1012 2228 y -Fe(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(des)o(ire)o(d)s -Fa(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 -b Fb(48)1012 2272 y Fe(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(fun)o -(cti)o(on)7 b Fa(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)24 -b Fb(45)1012 2316 y Fe(rl_filename)o(_d)o(equ)o(ot)o(ing)o(_f)o(unc)o -(tio)o(n)s Fa(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 -b Fb(46)1012 2360 y Fe(rl_filename)o(_q)o(uot)o(e_)o(cha)o(ra)o(cte)o -(rs)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)19 -b Fb(47)1012 2405 y Fe(rl_filename)o(_q)o(uot)o(in)o(g_d)o(es)o(ire)o -(d)7 b Fa(:)s(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)21 b Fb(49)1012 2449 y Fe(rl_filename)o(_q)o(uot)o(in)o(g_f)o(un)o -(cti)o(on)6 b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)19 b Fb(45)1012 2493 y Fe(rl_filename)o(_r)o(ewr)o(it)o(e_h)o(oo)o -(k)8 b Fa(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)24 b Fb(46)1012 2537 y Fe(rl_forced_u)o(pd)o(ate)o(_d)o -(isp)o(la)o(y)8 b Fa(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(34)1012 2582 y Fe(rl_free)7 -b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)21 b Fb(37)1012 2626 y Fe(rl_free_key)o(ma)o(p)7 -b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 -b Fb(30)1012 2670 y Fe(rl_free_lin)o(e_)o(sta)o(te)7 -b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(42)p eop -end -%%Page: 69 73 -TeXDict begin 69 72 bop 75 -58 a Fs(F)l(unction)15 b(and)g(V)l(ariable) -g(Index)1187 b(69)75 149 y Fe(rl_free_un)o(do)o(_li)o(st)r -Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(34)75 -194 y Fe(rl_functio)o(n_)o(dum)o(pe)o(r)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)23 b Fb(33)75 238 y Fe(rl_functio)o(n_)o(of_)o(ke)o(yse)o(q)6 -b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(32)75 282 y Fe(rl_funmap_)o(na)o(mes)5 -b Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)18 -b Fb(33)75 326 y Fe(rl_generic)o(_b)o(ind)5 b Fa(:)s(:)h(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)18 b Fb(32)75 371 y Fe(rl_get_key)o(ma)o(p)8 -b Fa(:)s(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 -b Fb(30)75 415 y Fe(rl_get_key)o(ma)o(p_b)o(y_)o(nam)o(e)6 -b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(30)75 459 y Fe(rl_get_key)o(ma)o(p_n)o -(am)o(e)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(30)75 -503 y Fe(rl_get_scr)o(ee)o(n_s)o(iz)o(e)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)23 b Fb(43)75 547 y Fe(rl_get_ter)o(mc)o(ap)6 -b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 -b Fb(39)75 592 y Fe(rl_getc)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b -Fb(36)75 636 y Fe(rl_getc_fu)o(nc)o(tio)o(n)t Fa(:)s(:)6 -b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(27)75 -680 y Fe(rl_gnu_rea)o(dl)o(ine)o(_p)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)16 b Fb(26)75 724 y Fe(rl_ignore_)o(co)o(mpl)o(et)o(ion)o -(_du)o(pl)o(ica)o(te)o(s)8 b Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)23 b Fb(48)75 769 y Fe(rl_ignore_)o(so)o(me_)o(co)o(mpl)o(eti)o(on)o -(s_f)o(un)o(cti)o(on)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)18 -b Fb(46)75 813 y Fe(rl_inhibit)o(_c)o(omp)o(le)o(tio)o(n)6 -b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(49)75 857 y Fe(rl_initial)o(iz)o(e)8 -b Fa(:)s(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 -b Fb(37)75 901 y Fe(rl_insert_)o(co)o(mpl)o(et)o(ion)o(s)6 -b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(44)75 945 y Fe(rl_insert_)o(te)o(xt)6 -b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 -b Fb(35)75 990 y Fe(rl_instrea)o(m)7 b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(26)75 1034 -y Fe(rl_invokin)o(g_)o(key)o(se)o(qs)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -22 b Fb(33)75 1078 y Fe(rl_invokin)o(g_)o(key)o(se)o(qs_)o(in_)o(ma)o -(p)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)21 b Fb(33)75 1122 y Fe(rl_kill_te)o(xt)6 b Fa(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(36)75 -1167 y Fe(rl_last_fu)o(nc)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(27)75 1211 y Fe(rl_library)o(_v)o(ers)o -(io)o(n)7 b Fa(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(26)75 -1255 y Fe(rl_line_bu)o(ff)o(er)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)20 b Fb(25)75 1299 y Fe(rl_list_fu)o(nm)o(ap_)o(na) -o(mes)7 b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(33)75 1343 -y Fe(rl_macro_b)o(in)o(d)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)21 b Fb(38)75 1388 y Fe(rl_macro_d)o(um)o(per)5 -b Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)18 -b Fb(38)75 1432 y Fe(rl_make_ba)o(re)o(_ke)o(ym)o(ap)9 -b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(30)75 1476 y -Fe(rl_make_ke)o(ym)o(ap)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)20 b Fb(30)75 1520 y Fe(rl_mark)7 b Fa(:)t(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 -b Fb(25)75 1564 y Fe(rl_message)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(35)75 -1609 y Fe(rl_modifyi)o(ng)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(34)75 1653 y Fe(rl_named_f)o(un)o(cti)o -(on)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 -b Fb(32)75 1697 y Fe(rl_num_cha)o(rs)o(_to)o(_r)o(ead)7 -b Fa(:)s(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(25)75 1741 y Fe(rl_numeric)o(_a)o -(rg)6 b Fa(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 -b Fb(29)75 1786 y Fe(rl_on_new_)o(li)o(ne)6 b Fa(:)t(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(34)75 1830 y Fe(rl_on_new_)o(li) -o(ne_)o(wi)o(th_)o(pro)o(mp)o(t)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)21 b Fb(34)75 1874 -y Fe(rl_outstre)o(am)6 b Fa(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)22 b Fb(26)75 1918 y Fe(rl_parse_a)o(nd)o(_bi)o(nd)r -Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(32)75 -1962 y Fe(rl_pending)o(_i)o(npu)o(t)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)17 b Fb(25)75 2007 y Fe(rl_point)6 b -Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)19 b Fb(25)75 2051 y Fe(rl_possibl)o(e_)o(com)o(pl)o(eti)o -(ons)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(44)75 2095 y Fe(rl_pre_inp)o(ut)o(_ho)o -(ok)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 -b Fb(27)75 2139 y Fe(rl_prefer_)o(en)o(v_w)o(in)o(siz)o(e)6 -b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(26)75 2184 y Fe(rl_prep_te)o(rm)o(_fu)o -(nc)o(tio)o(n)6 b Fa(:)s(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)19 b Fb(27)75 -2228 y Fe(rl_prep_te)o(rm)o(ina)o(l)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)17 b Fb(36)75 2272 y Fe(rl_prompt)t Fa(:)s(:)6 -b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -17 b Fb(26)75 2316 y Fe(rl_push_ma)o(cr)o(o_i)o(np)o(ut)9 -b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(36)75 2360 y -Fe(rl_read_in)o(it)o(_fi)o(le)r Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)16 b Fb(32)75 2405 y Fe(rl_read_ke)o(y)7 b Fa(:)g(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(36)75 -2449 y Fe(rl_readlin)o(e_)o(nam)o(e)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)17 b Fb(26)75 2493 y Fe(rl_readlin)o(e_)o(sta)o(te)r -Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Fb(28)75 -2537 y Fe(rl_readlin)o(e_)o(ver)o(si)o(on)9 b Fa(:)s(:)d(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)22 b Fb(26)75 2582 y Fe(rl_redispl)o(ay)6 b Fa(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(34)75 -2626 y Fe(rl_redispl)o(ay)o(_fu)o(nc)o(tio)o(n)6 b Fa(:)s(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)19 b Fb(27)75 2670 y Fe(rl_replace)o(_l)o(ine)5 b -Fa(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)18 -b Fb(37)1012 149 y Fe(rl_reset_af)o(te)o(r_s)o(ig)o(nal)6 -b Fa(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(42)1012 193 y Fe(rl_reset_li)o(ne)o -(_st)o(at)o(e)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b -Fb(34)1012 237 y Fe(rl_reset_sc)o(re)o(en_)o(si)o(ze)7 -b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(43)1012 280 y Fe(rl_reset_te)o(rm)o -(ina)o(l)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)16 -b Fb(37)1012 324 y Fe(rl_resize_t)o(er)o(min)o(al)7 b -Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(42)1012 368 -y Fe(rl_restore_)o(pr)o(omp)o(t)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)16 b Fb(35)1012 412 y Fe(rl_restore_)o(st)o(ate)s -Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b -Fb(37)1012 455 y Fe(rl_save_pro)o(mp)o(t)7 b Fa(:)s(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 b Fb(35)1012 499 y Fe(rl_save_sta)o(te)7 -b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 -b Fb(37)1012 543 y Fe(rl_set_key)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Fb(32)1012 -586 y Fe(rl_set_keyb)o(oa)o(rd_)o(in)o(put)o(_t)o(ime)o(out)t -Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18 -b Fb(36)1012 630 y Fe(rl_set_keym)o(ap)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 b Fb(30)1012 674 y -Fe(rl_set_pare)o(n_)o(bli)o(nk)o(_ti)o(me)o(out)8 b Fa(:)s(:)e(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 -b Fb(39)1012 717 y Fe(rl_set_prom)o(pt)7 b Fa(:)t(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 b Fb(35)1012 761 y -Fe(rl_set_scre)o(en)o(_si)o(ze)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -24 b Fb(42)1012 805 y Fe(rl_set_sign)o(al)o(s)7 b Fa(:)s(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 b Fb(43)1012 848 -y Fe(rl_show_cha)o(r)6 b Fa(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)23 b Fb(34)1012 892 y Fe(rl_sort_com)o(pl)o(eti)o(on)o -(_ma)o(tc)o(hes)8 b Fa(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)22 b Fb(49)1012 936 y Fe(rl_special_)o(pr)o(efi)o -(xe)o(s)9 b Fa(:)s(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(47)1012 -979 y Fe(rl_startup_)o(ho)o(ok)5 b Fa(:)s(:)h(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)19 b Fb(27)1012 1023 y Fe(rl_stuff_ch)o(ar)7 -b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 -b Fb(36)1012 1067 y Fe(rl_terminal)o(_n)o(ame)s Fa(:)t(:)6 -b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(26)1012 -1110 y Fe(rl_tty_set_)o(de)o(fau)o(lt)o(_bi)o(nd)o(ing)o(s)7 -b Fa(:)s(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 -b Fb(37)1012 1154 y Fe(rl_tty_unse)o(t_)o(def)o(au)o(lt_)o(bi)o(ndi)o -(ngs)t Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18 -b Fb(37)1012 1198 y Fe(rl_unbind_c)o(om)o(man)o(d_)o(in_)o(ma)o(p)8 -b Fa(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)24 b Fb(31)1012 1242 y Fe(rl_unbind_f)o(un)o(cti)o(on)o(_in)o -(_m)o(ap)7 b Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)23 b Fb(31)1012 1285 y Fe(rl_unbind_k)o(ey)7 -b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21 -b Fb(31)1012 1329 y Fe(rl_unbind_k)o(ey)o(_in)o(_m)o(ap)7 -b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(31)1012 1373 y Fe(rl_username)o(_c) -o(omp)o(le)o(tio)o(n_)o(fun)o(cti)o(on)7 b Fa(:)f(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)24 b Fb(45)1012 1416 y Fe(rl_variable)o(_b)o(ind)s -Fa(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b -Fb(38)1012 1460 y Fe(rl_variable)o(_d)o(ump)o(er)7 b -Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Fb(39)1012 1504 -y Fe(rl_variable)o(_v)o(alu)o(e)s Fa(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)16 b Fb(39)1012 1625 y Fq(S)1012 1683 y Fe(self-insert)9 -b(\(a,)j(b,)g(A,)g(1,)g(!,)g(...)o(\))t Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)18 b Fb(16)1012 1727 y Fe(set-mark)10 -b(\(C-@\))e Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 -b Fb(19)1012 1771 y(sho)o(w-all-if-am)o(biguous)7 b Fa(:)f(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)20 b Fb(8)1012 1814 y(sho)o(w-all-if-unmo)q -(di\014ed)12 b Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 -b Fb(8)1012 1858 y(skip-completed-text)5 b Fa(:)j(:)e(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)18 b Fb(8)1012 1902 y Fe(skip-csi-se)o(qu)o(enc)o -(e)10 b(\(\))g Fa(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(20)1012 -1946 y Fe(start-kbd-m)o(ac)o(ro)9 b(\(C-x)j(\(\))e Fa(:)c(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)24 -b Fb(19)1012 2067 y Fq(T)1012 2125 y Fe(tab-insert)9 -b(\(M-TAB\))c Fa(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 -b Fb(16)1012 2168 y Fe(tilde-expan)o(d)10 b(\(M-~\))5 -b Fa(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 b Fb(19)1012 -2212 y Fe(transpose-c)o(ha)o(rs)9 b(\(C-t\))f Fa(:)e(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 -b Fb(16)1012 2256 y Fe(transpose-w)o(or)o(ds)9 b(\(M-t\))f -Fa(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(16)1012 2382 y Fq(U)1012 -2440 y Fe(undo)12 b(\(C-_)f(or)h(C-x)g(C-u\))s Fa(:)t(:)6 -b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)16 b Fb(19)1012 2484 y Fe(universal-a)o(rg)o -(ume)o(nt)9 b(\(\))g Fa(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(18)1012 -2528 y Fe(unix-filena)o(me)o(-ru)o(bo)o(ut)9 b(\(\))e -Fa(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)21 b Fb(17)1012 2571 y Fe(unix-line-d)o(is)o(car)o(d)10 -b(\(C-u\))d Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(17)1012 2615 y Fe(unix-word-r)o(ub)o -(out)9 b(\(C-w\))g Fa(:)t(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(17)1012 -2659 y Fe(upcase-word)9 b(\(M-u\))d Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)20 b Fb(16)p eop end -%%Page: 70 74 -TeXDict begin 70 73 bop 75 -58 a Fs(F)l(unction)15 b(and)g(V)l(ariable) -g(Index)1187 b(70)75 149 y Fq(V)75 213 y Fe(vi-editing)o(-m)o(ode)9 -b(\(M-C-j\))e Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Fb(20)75 259 y(visible-stats)t -Fa(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)16 b Fb(8)1012 149 y Fq(Y)1012 208 y Fe(yank)c(\(C-y\))7 -b Fa(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)20 b Fb(18)1012 252 y Fe(yank-last-a)o(rg)9 b(\(M-.)i(or)h -(M-_\))d Fa(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)24 b Fb(15)1012 295 y Fe(yank-nth-ar)o(g)10 -b(\(M-C-y\))e Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)24 b Fb(15)1012 -339 y Fe(yank-pop)10 b(\(M-y\))e Fa(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) -g(:)g(:)g(:)g(:)24 b Fb(18)p eop end -%%Trailer - -userdict /end-hook known{end-hook}if -%%EOF diff --git a/lib/readline/doc/rlman.aux b/lib/readline/doc/rlman.aux deleted file mode 100644 index ef3c2783f..000000000 --- a/lib/readline/doc/rlman.aux +++ /dev/null @@ -1,153 +0,0 @@ -@xrdef{Command Line Editing-title}{Command Line Editing} -@xrdef{Command Line Editing-snt}{Chapter@tie 1} -@xrdef{Introduction and Notation-title}{Introduction to Line Editing} -@xrdef{Introduction and Notation-snt}{Section@tie 1.1} -@xrdef{Readline Interaction-title}{Readline Interaction} -@xrdef{Readline Interaction-snt}{Section@tie 1.2} -@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials} -@xrdef{Readline Bare Essentials-snt}{Section@tie 1.2.1} -@xrdef{Command Line Editing-pg}{1} -@xrdef{Introduction and Notation-pg}{1} -@xrdef{Readline Interaction-pg}{1} -@xrdef{Readline Bare Essentials-pg}{1} -@xrdef{Readline Movement Commands-title}{Readline Movement Commands} -@xrdef{Readline Movement Commands-snt}{Section@tie 1.2.2} -@xrdef{Readline Killing Commands-title}{Readline Killing Commands} -@xrdef{Readline Killing Commands-snt}{Section@tie 1.2.3} -@xrdef{Readline Movement Commands-pg}{2} -@xrdef{Readline Killing Commands-pg}{2} -@xrdef{Readline Arguments-title}{Readline Arguments} -@xrdef{Readline Arguments-snt}{Section@tie 1.2.4} -@xrdef{Searching-title}{Searching for Commands in the History} -@xrdef{Searching-snt}{Section@tie 1.2.5} -@xrdef{Readline Arguments-pg}{3} -@xrdef{Searching-pg}{3} -@xrdef{Readline Init File-title}{Readline Init File} -@xrdef{Readline Init File-snt}{Section@tie 1.3} -@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax} -@xrdef{Readline Init File Syntax-snt}{Section@tie 1.3.1} -@xrdef{Readline Init File-pg}{4} -@xrdef{Readline Init File Syntax-pg}{4} -@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs} -@xrdef{Conditional Init Constructs-snt}{Section@tie 1.3.2} -@xrdef{Conditional Init Constructs-pg}{10} -@xrdef{Sample Init File-title}{Sample Init File} -@xrdef{Sample Init File-snt}{Section@tie 1.3.3} -@xrdef{Sample Init File-pg}{11} -@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands} -@xrdef{Bindable Readline Commands-snt}{Section@tie 1.4} -@xrdef{Commands For Moving-title}{Commands For Moving} -@xrdef{Commands For Moving-snt}{Section@tie 1.4.1} -@xrdef{Commands For History-title}{Commands For Manipulating The History} -@xrdef{Commands For History-snt}{Section@tie 1.4.2} -@xrdef{Bindable Readline Commands-pg}{14} -@xrdef{Commands For Moving-pg}{14} -@xrdef{Commands For History-pg}{14} -@xrdef{Commands For Text-title}{Commands For Changing Text} -@xrdef{Commands For Text-snt}{Section@tie 1.4.3} -@xrdef{Commands For Text-pg}{16} -@xrdef{Commands For Killing-title}{Killing And Yanking} -@xrdef{Commands For Killing-snt}{Section@tie 1.4.4} -@xrdef{Commands For Killing-pg}{17} -@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments} -@xrdef{Numeric Arguments-snt}{Section@tie 1.4.5} -@xrdef{Commands For Completion-title}{Letting Readline Type For You} -@xrdef{Commands For Completion-snt}{Section@tie 1.4.6} -@xrdef{Numeric Arguments-pg}{18} -@xrdef{Commands For Completion-pg}{18} -@xrdef{Keyboard Macros-title}{Keyboard Macros} -@xrdef{Keyboard Macros-snt}{Section@tie 1.4.7} -@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands} -@xrdef{Miscellaneous Commands-snt}{Section@tie 1.4.8} -@xrdef{Keyboard Macros-pg}{19} -@xrdef{Miscellaneous Commands-pg}{19} -@xrdef{Readline vi Mode-title}{Readline vi Mode} -@xrdef{Readline vi Mode-snt}{Section@tie 1.5} -@xrdef{Readline vi Mode-pg}{21} -@xrdef{Programming with GNU Readline-title}{Programming with GNU Readline} -@xrdef{Programming with GNU Readline-snt}{Chapter@tie 2} -@xrdef{Basic Behavior-title}{Basic Behavior} -@xrdef{Basic Behavior-snt}{Section@tie 2.1} -@xrdef{Programming with GNU Readline-pg}{22} -@xrdef{Basic Behavior-pg}{22} -@xrdef{Custom Functions-title}{Custom Functions} -@xrdef{Custom Functions-snt}{Section@tie 2.2} -@xrdef{Readline Typedefs-title}{Readline Typedefs} -@xrdef{Readline Typedefs-snt}{Section@tie 2.2.1} -@xrdef{Custom Functions-pg}{23} -@xrdef{Function Writing-title}{Writing a New Function} -@xrdef{Function Writing-snt}{Section@tie 2.2.2} -@xrdef{Readline Typedefs-pg}{24} -@xrdef{Function Writing-pg}{24} -@xrdef{Readline Variables-title}{Readline Variables} -@xrdef{Readline Variables-snt}{Section@tie 2.3} -@xrdef{Readline Variables-pg}{25} -@xrdef{Readline Convenience Functions-title}{Readline Convenience Functions} -@xrdef{Readline Convenience Functions-snt}{Section@tie 2.4} -@xrdef{Function Naming-title}{Naming a Function} -@xrdef{Function Naming-snt}{Section@tie 2.4.1} -@xrdef{Readline Convenience Functions-pg}{29} -@xrdef{Function Naming-pg}{29} -@xrdef{Keymaps-title}{Selecting a Keymap} -@xrdef{Keymaps-snt}{Section@tie 2.4.2} -@xrdef{Binding Keys-title}{Binding Keys} -@xrdef{Binding Keys-snt}{Section@tie 2.4.3} -@xrdef{Keymaps-pg}{30} -@xrdef{Binding Keys-pg}{31} -@xrdef{Associating Function Names and Bindings-title}{Associating Function Names and Bindings} -@xrdef{Associating Function Names and Bindings-snt}{Section@tie 2.4.4} -@xrdef{Associating Function Names and Bindings-pg}{32} -@xrdef{Allowing Undoing-title}{Allowing Undoing} -@xrdef{Allowing Undoing-snt}{Section@tie 2.4.5} -@xrdef{Allowing Undoing-pg}{33} -@xrdef{Redisplay-title}{Redisplay} -@xrdef{Redisplay-snt}{Section@tie 2.4.6} -@xrdef{Redisplay-pg}{34} -@xrdef{Modifying Text-title}{Modifying Text} -@xrdef{Modifying Text-snt}{Section@tie 2.4.7} -@xrdef{Modifying Text-pg}{35} -@xrdef{Character Input-title}{Character Input} -@xrdef{Character Input-snt}{Section@tie 2.4.8} -@xrdef{Terminal Management-title}{Terminal Management} -@xrdef{Terminal Management-snt}{Section@tie 2.4.9} -@xrdef{Character Input-pg}{36} -@xrdef{Terminal Management-pg}{36} -@xrdef{Utility Functions-title}{Utility Functions} -@xrdef{Utility Functions-snt}{Section@tie 2.4.10} -@xrdef{Utility Functions-pg}{37} -@xrdef{Miscellaneous Functions-title}{Miscellaneous Functions} -@xrdef{Miscellaneous Functions-snt}{Section@tie 2.4.11} -@xrdef{Miscellaneous Functions-pg}{38} -@xrdef{Alternate Interface-title}{Alternate Interface} -@xrdef{Alternate Interface-snt}{Section@tie 2.4.12} -@xrdef{A Readline Example-title}{A Readline Example} -@xrdef{A Readline Example-snt}{Section@tie 2.4.13} -@xrdef{Alternate Interface-pg}{39} -@xrdef{A Readline Example-pg}{40} -@xrdef{Readline Signal Handling-title}{Readline Signal Handling} -@xrdef{Readline Signal Handling-snt}{Section@tie 2.5} -@xrdef{Readline Signal Handling-pg}{41} -@xrdef{Custom Completers-title}{Custom Completers} -@xrdef{Custom Completers-snt}{Section@tie 2.6} -@xrdef{How Completing Works-title}{How Completing Works} -@xrdef{How Completing Works-snt}{Section@tie 2.6.1} -@xrdef{Custom Completers-pg}{43} -@xrdef{How Completing Works-pg}{43} -@xrdef{Completion Functions-title}{Completion Functions} -@xrdef{Completion Functions-snt}{Section@tie 2.6.2} -@xrdef{Completion Functions-pg}{44} -@xrdef{Completion Variables-title}{Completion Variables} -@xrdef{Completion Variables-snt}{Section@tie 2.6.3} -@xrdef{Completion Variables-pg}{45} -@xrdef{A Short Completion Example-title}{A Short Completion Example} -@xrdef{A Short Completion Example-snt}{Section@tie 2.6.4} -@xrdef{A Short Completion Example-pg}{49} -@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License} -@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char65{}} -@xrdef{GNU Free Documentation License-pg}{58} -@xrdef{Concept Index-title}{Concept Index} -@xrdef{Concept Index-snt}{} -@xrdef{Concept Index-pg}{66} -@xrdef{Function and Variable Index-title}{Function and Variable Index} -@xrdef{Function and Variable Index-snt}{} -@xrdef{Function and Variable Index-pg}{67} diff --git a/lib/readline/doc/rlman.bt b/lib/readline/doc/rlman.bt deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/rlman.cp b/lib/readline/doc/rlman.cp deleted file mode 100644 index fdb4b0342..000000000 --- a/lib/readline/doc/rlman.cp +++ /dev/null @@ -1,11 +0,0 @@ -\entry{interaction, readline}{1}{interaction, readline} -\entry{notation, readline}{1}{notation, readline} -\entry{command editing}{1}{command editing} -\entry{editing command lines}{1}{editing command lines} -\entry{killing text}{2}{killing text} -\entry{yanking text}{2}{yanking text} -\entry{kill ring}{2}{kill ring} -\entry{initialization file, readline}{4}{initialization file, readline} -\entry{variables, readline}{4}{variables, readline} -\entry{readline, function}{22}{readline, function} -\entry{application-specific completion functions}{43}{application-specific completion functions} diff --git a/lib/readline/doc/rlman.cps b/lib/readline/doc/rlman.cps deleted file mode 100644 index 401ccaa6c..000000000 --- a/lib/readline/doc/rlman.cps +++ /dev/null @@ -1,20 +0,0 @@ -\initial {A} -\entry {application-specific completion functions}{43} -\initial {C} -\entry {command editing}{1} -\initial {E} -\entry {editing command lines}{1} -\initial {I} -\entry {initialization file, readline}{4} -\entry {interaction, readline}{1} -\initial {K} -\entry {kill ring}{2} -\entry {killing text}{2} -\initial {N} -\entry {notation, readline}{1} -\initial {R} -\entry {readline, function}{22} -\initial {V} -\entry {variables, readline}{4} -\initial {Y} -\entry {yanking text}{2} diff --git a/lib/readline/doc/rlman.fn b/lib/readline/doc/rlman.fn deleted file mode 100644 index be62e2f8c..000000000 --- a/lib/readline/doc/rlman.fn +++ /dev/null @@ -1,291 +0,0 @@ -\entry{bell-style}{4}{bell-style} -\entry{bind-tty-special-chars}{5}{bind-tty-special-chars} -\entry{comment-begin}{5}{comment-begin} -\entry{completion-display-width}{5}{completion-display-width} -\entry{completion-ignore-case}{5}{completion-ignore-case} -\entry{completion-map-case}{5}{completion-map-case} -\entry{completion-prefix-display-length}{5}{completion-prefix-display-length} -\entry{completion-query-items}{5}{completion-query-items} -\entry{convert-meta}{5}{convert-meta} -\entry{disable-completion}{5}{disable-completion} -\entry{editing-mode}{6}{editing-mode} -\entry{enable-keypad}{6}{enable-keypad} -\entry{expand-tilde}{6}{expand-tilde} -\entry{history-preserve-point}{6}{history-preserve-point} -\entry{history-size}{6}{history-size} -\entry{horizontal-scroll-mode}{6}{horizontal-scroll-mode} -\entry{input-meta}{6}{input-meta} -\entry{meta-flag}{6}{meta-flag} -\entry{isearch-terminators}{6}{isearch-terminators} -\entry{keymap}{7}{keymap} -\entry{mark-modified-lines}{7}{mark-modified-lines} -\entry{mark-symlinked-directories}{7}{mark-symlinked-directories} -\entry{match-hidden-files}{7}{match-hidden-files} -\entry{menu-complete-display-prefix}{7}{menu-complete-display-prefix} -\entry{output-meta}{7}{output-meta} -\entry{page-completions}{7}{page-completions} -\entry{revert-all-at-newline}{8}{revert-all-at-newline} -\entry{show-all-if-ambiguous}{8}{show-all-if-ambiguous} -\entry{show-all-if-unmodified}{8}{show-all-if-unmodified} -\entry{skip-completed-text}{8}{skip-completed-text} -\entry{visible-stats}{8}{visible-stats} -\entry{beginning-of-line (C-a)}{14}{\code {beginning-of-line (C-a)}} -\entry{end-of-line (C-e)}{14}{\code {end-of-line (C-e)}} -\entry{forward-char (C-f)}{14}{\code {forward-char (C-f)}} -\entry{backward-char (C-b)}{14}{\code {backward-char (C-b)}} -\entry{forward-word (M-f)}{14}{\code {forward-word (M-f)}} -\entry{backward-word (M-b)}{14}{\code {backward-word (M-b)}} -\entry{clear-screen (C-l)}{14}{\code {clear-screen (C-l)}} -\entry{redraw-current-line ()}{14}{\code {redraw-current-line ()}} -\entry{accept-line (Newline or Return)}{14}{\code {accept-line (Newline or Return)}} -\entry{previous-history (C-p)}{14}{\code {previous-history (C-p)}} -\entry{next-history (C-n)}{15}{\code {next-history (C-n)}} -\entry{beginning-of-history (M-<)}{15}{\code {beginning-of-history (M-<)}} -\entry{end-of-history (M->)}{15}{\code {end-of-history (M->)}} -\entry{reverse-search-history (C-r)}{15}{\code {reverse-search-history (C-r)}} -\entry{forward-search-history (C-s)}{15}{\code {forward-search-history (C-s)}} -\entry{non-incremental-reverse-search-history (M-p)}{15}{\code {non-incremental-reverse-search-history (M-p)}} -\entry{non-incremental-forward-search-history (M-n)}{15}{\code {non-incremental-forward-search-history (M-n)}} -\entry{history-search-forward ()}{15}{\code {history-search-forward ()}} -\entry{history-search-backward ()}{15}{\code {history-search-backward ()}} -\entry{yank-nth-arg (M-C-y)}{15}{\code {yank-nth-arg (M-C-y)}} -\entry{yank-last-arg (M-. or M-_)}{15}{\code {yank-last-arg (M-. or M-_)}} -\entry{delete-char (C-d)}{16}{\code {delete-char (C-d)}} -\entry{backward-delete-char (Rubout)}{16}{\code {backward-delete-char (Rubout)}} -\entry{forward-backward-delete-char ()}{16}{\code {forward-backward-delete-char ()}} -\entry{quoted-insert (C-q or C-v)}{16}{\code {quoted-insert (C-q or C-v)}} -\entry{tab-insert (M-TAB)}{16}{\code {tab-insert (M-\key {TAB})}} -\entry{self-insert (a, b, A, 1, !, ...{})}{16}{\code {self-insert (a, b, A, 1, !, \dots {})}} -\entry{transpose-chars (C-t)}{16}{\code {transpose-chars (C-t)}} -\entry{transpose-words (M-t)}{16}{\code {transpose-words (M-t)}} -\entry{upcase-word (M-u)}{16}{\code {upcase-word (M-u)}} -\entry{downcase-word (M-l)}{16}{\code {downcase-word (M-l)}} -\entry{capitalize-word (M-c)}{16}{\code {capitalize-word (M-c)}} -\entry{overwrite-mode ()}{17}{\code {overwrite-mode ()}} -\entry{kill-line (C-k)}{17}{\code {kill-line (C-k)}} -\entry{backward-kill-line (C-x Rubout)}{17}{\code {backward-kill-line (C-x Rubout)}} -\entry{unix-line-discard (C-u)}{17}{\code {unix-line-discard (C-u)}} -\entry{kill-whole-line ()}{17}{\code {kill-whole-line ()}} -\entry{kill-word (M-d)}{17}{\code {kill-word (M-d)}} -\entry{backward-kill-word (M-DEL)}{17}{\code {backward-kill-word (M-\key {DEL})}} -\entry{unix-word-rubout (C-w)}{17}{\code {unix-word-rubout (C-w)}} -\entry{unix-filename-rubout ()}{17}{\code {unix-filename-rubout ()}} -\entry{delete-horizontal-space ()}{17}{\code {delete-horizontal-space ()}} -\entry{kill-region ()}{17}{\code {kill-region ()}} -\entry{copy-region-as-kill ()}{17}{\code {copy-region-as-kill ()}} -\entry{copy-backward-word ()}{17}{\code {copy-backward-word ()}} -\entry{copy-forward-word ()}{18}{\code {copy-forward-word ()}} -\entry{yank (C-y)}{18}{\code {yank (C-y)}} -\entry{yank-pop (M-y)}{18}{\code {yank-pop (M-y)}} -\entry{digit-argument (M-0, M-1, ...{} M--)}{18}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}} -\entry{universal-argument ()}{18}{\code {universal-argument ()}} -\entry{complete (TAB)}{18}{\code {complete (\key {TAB})}} -\entry{possible-completions (M-?)}{18}{\code {possible-completions (M-?)}} -\entry{insert-completions (M-*)}{18}{\code {insert-completions (M-*)}} -\entry{menu-complete ()}{18}{\code {menu-complete ()}} -\entry{menu-complete-backward ()}{19}{\code {menu-complete-backward ()}} -\entry{delete-char-or-list ()}{19}{\code {delete-char-or-list ()}} -\entry{start-kbd-macro (C-x ()}{19}{\code {start-kbd-macro (C-x ()}} -\entry{end-kbd-macro (C-x ))}{19}{\code {end-kbd-macro (C-x ))}} -\entry{call-last-kbd-macro (C-x e)}{19}{\code {call-last-kbd-macro (C-x e)}} -\entry{re-read-init-file (C-x C-r)}{19}{\code {re-read-init-file (C-x C-r)}} -\entry{abort (C-g)}{19}{\code {abort (C-g)}} -\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{19}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}} -\entry{prefix-meta (ESC)}{19}{\code {prefix-meta (\key {ESC})}} -\entry{undo (C-_ or C-x C-u)}{19}{\code {undo (C-_ or C-x C-u)}} -\entry{revert-line (M-r)}{19}{\code {revert-line (M-r)}} -\entry{tilde-expand (M-~)}{19}{\code {tilde-expand (M-~)}} -\entry{set-mark (C-@)}{19}{\code {set-mark (C-@)}} -\entry{exchange-point-and-mark (C-x C-x)}{20}{\code {exchange-point-and-mark (C-x C-x)}} -\entry{character-search (C-])}{20}{\code {character-search (C-])}} -\entry{character-search-backward (M-C-])}{20}{\code {character-search-backward (M-C-])}} -\entry{skip-csi-sequence ()}{20}{\code {skip-csi-sequence ()}} -\entry{insert-comment (M-#)}{20}{\code {insert-comment (M-#)}} -\entry{dump-functions ()}{20}{\code {dump-functions ()}} -\entry{dump-variables ()}{20}{\code {dump-variables ()}} -\entry{dump-macros ()}{20}{\code {dump-macros ()}} -\entry{emacs-editing-mode (C-e)}{20}{\code {emacs-editing-mode (C-e)}} -\entry{vi-editing-mode (M-C-j)}{20}{\code {vi-editing-mode (M-C-j)}} -\entry{readline}{22}{\code {readline}} -\entry{rl_line_buffer}{25}{\code {rl_line_buffer}} -\entry{rl_point}{25}{\code {rl_point}} -\entry{rl_end}{25}{\code {rl_end}} -\entry{rl_mark}{25}{\code {rl_mark}} -\entry{rl_done}{25}{\code {rl_done}} -\entry{rl_num_chars_to_read}{25}{\code {rl_num_chars_to_read}} -\entry{rl_pending_input}{25}{\code {rl_pending_input}} -\entry{rl_dispatching}{25}{\code {rl_dispatching}} -\entry{rl_erase_empty_line}{25}{\code {rl_erase_empty_line}} -\entry{rl_prompt}{26}{\code {rl_prompt}} -\entry{rl_display_prompt}{26}{\code {rl_display_prompt}} -\entry{rl_already_prompted}{26}{\code {rl_already_prompted}} -\entry{rl_library_version}{26}{\code {rl_library_version}} -\entry{rl_readline_version}{26}{\code {rl_readline_version}} -\entry{rl_gnu_readline_p}{26}{\code {rl_gnu_readline_p}} -\entry{rl_terminal_name}{26}{\code {rl_terminal_name}} -\entry{rl_readline_name}{26}{\code {rl_readline_name}} -\entry{rl_instream}{26}{\code {rl_instream}} -\entry{rl_outstream}{26}{\code {rl_outstream}} -\entry{rl_prefer_env_winsize}{26}{\code {rl_prefer_env_winsize}} -\entry{rl_last_func}{27}{\code {rl_last_func}} -\entry{rl_startup_hook}{27}{\code {rl_startup_hook}} -\entry{rl_pre_input_hook}{27}{\code {rl_pre_input_hook}} -\entry{rl_event_hook}{27}{\code {rl_event_hook}} -\entry{rl_getc_function}{27}{\code {rl_getc_function}} -\entry{rl_redisplay_function}{27}{\code {rl_redisplay_function}} -\entry{rl_prep_term_function}{27}{\code {rl_prep_term_function}} -\entry{rl_deprep_term_function}{27}{\code {rl_deprep_term_function}} -\entry{rl_executing_keymap}{27}{\code {rl_executing_keymap}} -\entry{rl_binding_keymap}{27}{\code {rl_binding_keymap}} -\entry{rl_executing_macro}{27}{\code {rl_executing_macro}} -\entry{rl_readline_state}{28}{\code {rl_readline_state}} -\entry{rl_explicit_arg}{29}{\code {rl_explicit_arg}} -\entry{rl_numeric_arg}{29}{\code {rl_numeric_arg}} -\entry{rl_editing_mode}{29}{\code {rl_editing_mode}} -\entry{rl_add_defun}{30}{\code {rl_add_defun}} -\entry{rl_make_bare_keymap}{30}{\code {rl_make_bare_keymap}} -\entry{rl_copy_keymap}{30}{\code {rl_copy_keymap}} -\entry{rl_make_keymap}{30}{\code {rl_make_keymap}} -\entry{rl_discard_keymap}{30}{\code {rl_discard_keymap}} -\entry{rl_free_keymap}{30}{\code {rl_free_keymap}} -\entry{rl_get_keymap}{30}{\code {rl_get_keymap}} -\entry{rl_set_keymap}{30}{\code {rl_set_keymap}} -\entry{rl_get_keymap_by_name}{30}{\code {rl_get_keymap_by_name}} -\entry{rl_get_keymap_name}{30}{\code {rl_get_keymap_name}} -\entry{rl_bind_key}{31}{\code {rl_bind_key}} -\entry{rl_bind_key_in_map}{31}{\code {rl_bind_key_in_map}} -\entry{rl_bind_key_if_unbound}{31}{\code {rl_bind_key_if_unbound}} -\entry{rl_bind_key_if_unbound_in_map}{31}{\code {rl_bind_key_if_unbound_in_map}} -\entry{rl_unbind_key}{31}{\code {rl_unbind_key}} -\entry{rl_unbind_key_in_map}{31}{\code {rl_unbind_key_in_map}} -\entry{rl_unbind_function_in_map}{31}{\code {rl_unbind_function_in_map}} -\entry{rl_unbind_command_in_map}{31}{\code {rl_unbind_command_in_map}} -\entry{rl_bind_keyseq}{31}{\code {rl_bind_keyseq}} -\entry{rl_bind_keyseq_in_map}{32}{\code {rl_bind_keyseq_in_map}} -\entry{rl_set_key}{32}{\code {rl_set_key}} -\entry{rl_bind_keyseq_if_unbound}{32}{\code {rl_bind_keyseq_if_unbound}} -\entry{rl_bind_keyseq_if_unbound_in_map}{32}{\code {rl_bind_keyseq_if_unbound_in_map}} -\entry{rl_generic_bind}{32}{\code {rl_generic_bind}} -\entry{rl_parse_and_bind}{32}{\code {rl_parse_and_bind}} -\entry{rl_read_init_file}{32}{\code {rl_read_init_file}} -\entry{rl_named_function}{32}{\code {rl_named_function}} -\entry{rl_function_of_keyseq}{32}{\code {rl_function_of_keyseq}} -\entry{rl_invoking_keyseqs}{33}{\code {rl_invoking_keyseqs}} -\entry{rl_invoking_keyseqs_in_map}{33}{\code {rl_invoking_keyseqs_in_map}} -\entry{rl_function_dumper}{33}{\code {rl_function_dumper}} -\entry{rl_list_funmap_names}{33}{\code {rl_list_funmap_names}} -\entry{rl_funmap_names}{33}{\code {rl_funmap_names}} -\entry{rl_add_funmap_entry}{33}{\code {rl_add_funmap_entry}} -\entry{rl_begin_undo_group}{33}{\code {rl_begin_undo_group}} -\entry{rl_end_undo_group}{33}{\code {rl_end_undo_group}} -\entry{rl_add_undo}{34}{\code {rl_add_undo}} -\entry{rl_free_undo_list}{34}{\code {rl_free_undo_list}} -\entry{rl_do_undo}{34}{\code {rl_do_undo}} -\entry{rl_modifying}{34}{\code {rl_modifying}} -\entry{rl_redisplay}{34}{\code {rl_redisplay}} -\entry{rl_forced_update_display}{34}{\code {rl_forced_update_display}} -\entry{rl_on_new_line}{34}{\code {rl_on_new_line}} -\entry{rl_on_new_line_with_prompt}{34}{\code {rl_on_new_line_with_prompt}} -\entry{rl_reset_line_state}{34}{\code {rl_reset_line_state}} -\entry{rl_crlf}{34}{\code {rl_crlf}} -\entry{rl_show_char}{34}{\code {rl_show_char}} -\entry{rl_message}{35}{\code {rl_message}} -\entry{rl_clear_message}{35}{\code {rl_clear_message}} -\entry{rl_save_prompt}{35}{\code {rl_save_prompt}} -\entry{rl_restore_prompt}{35}{\code {rl_restore_prompt}} -\entry{rl_expand_prompt}{35}{\code {rl_expand_prompt}} -\entry{rl_set_prompt}{35}{\code {rl_set_prompt}} -\entry{rl_insert_text}{35}{\code {rl_insert_text}} -\entry{rl_delete_text}{35}{\code {rl_delete_text}} -\entry{rl_copy_text}{35}{\code {rl_copy_text}} -\entry{rl_kill_text}{36}{\code {rl_kill_text}} -\entry{rl_push_macro_input}{36}{\code {rl_push_macro_input}} -\entry{rl_read_key}{36}{\code {rl_read_key}} -\entry{rl_getc}{36}{\code {rl_getc}} -\entry{rl_stuff_char}{36}{\code {rl_stuff_char}} -\entry{rl_execute_next}{36}{\code {rl_execute_next}} -\entry{rl_clear_pending_input}{36}{\code {rl_clear_pending_input}} -\entry{rl_set_keyboard_input_timeout}{36}{\code {rl_set_keyboard_input_timeout}} -\entry{rl_prep_terminal}{36}{\code {rl_prep_terminal}} -\entry{rl_deprep_terminal}{37}{\code {rl_deprep_terminal}} -\entry{rl_tty_set_default_bindings}{37}{\code {rl_tty_set_default_bindings}} -\entry{rl_tty_unset_default_bindings}{37}{\code {rl_tty_unset_default_bindings}} -\entry{rl_reset_terminal}{37}{\code {rl_reset_terminal}} -\entry{rl_save_state}{37}{\code {rl_save_state}} -\entry{rl_restore_state}{37}{\code {rl_restore_state}} -\entry{rl_free}{37}{\code {rl_free}} -\entry{rl_replace_line}{37}{\code {rl_replace_line}} -\entry{rl_extend_line_buffer}{37}{\code {rl_extend_line_buffer}} -\entry{rl_initialize}{37}{\code {rl_initialize}} -\entry{rl_ding}{37}{\code {rl_ding}} -\entry{rl_alphabetic}{37}{\code {rl_alphabetic}} -\entry{rl_display_match_list}{38}{\code {rl_display_match_list}} -\entry{_rl_uppercase_p}{38}{\code {_rl_uppercase_p}} -\entry{_rl_lowercase_p}{38}{\code {_rl_lowercase_p}} -\entry{_rl_digit_p}{38}{\code {_rl_digit_p}} -\entry{_rl_to_upper}{38}{\code {_rl_to_upper}} -\entry{_rl_to_lower}{38}{\code {_rl_to_lower}} -\entry{_rl_digit_value}{38}{\code {_rl_digit_value}} -\entry{rl_macro_bind}{38}{\code {rl_macro_bind}} -\entry{rl_macro_dumper}{38}{\code {rl_macro_dumper}} -\entry{rl_variable_bind}{38}{\code {rl_variable_bind}} -\entry{rl_variable_value}{39}{\code {rl_variable_value}} -\entry{rl_variable_dumper}{39}{\code {rl_variable_dumper}} -\entry{rl_set_paren_blink_timeout}{39}{\code {rl_set_paren_blink_timeout}} -\entry{rl_get_termcap}{39}{\code {rl_get_termcap}} -\entry{rl_callback_handler_install}{39}{\code {rl_callback_handler_install}} -\entry{rl_callback_read_char}{39}{\code {rl_callback_read_char}} -\entry{rl_callback_handler_remove}{39}{\code {rl_callback_handler_remove}} -\entry{rl_catch_signals}{42}{\code {rl_catch_signals}} -\entry{rl_catch_sigwinch}{42}{\code {rl_catch_sigwinch}} -\entry{rl_cleanup_after_signal}{42}{\code {rl_cleanup_after_signal}} -\entry{rl_free_line_state}{42}{\code {rl_free_line_state}} -\entry{rl_reset_after_signal}{42}{\code {rl_reset_after_signal}} -\entry{rl_echo_signal_char}{42}{\code {rl_echo_signal_char}} -\entry{rl_resize_terminal}{42}{\code {rl_resize_terminal}} -\entry{rl_set_screen_size}{42}{\code {rl_set_screen_size}} -\entry{rl_get_screen_size}{43}{\code {rl_get_screen_size}} -\entry{rl_reset_screen_size}{43}{\code {rl_reset_screen_size}} -\entry{rl_set_signals}{43}{\code {rl_set_signals}} -\entry{rl_clear_signals}{43}{\code {rl_clear_signals}} -\entry{rl_complete}{44}{\code {rl_complete}} -\entry{rl_completion_entry_function}{44}{\code {rl_completion_entry_function}} -\entry{rl_complete_internal}{44}{\code {rl_complete_internal}} -\entry{rl_complete}{44}{\code {rl_complete}} -\entry{rl_possible_completions}{44}{\code {rl_possible_completions}} -\entry{rl_insert_completions}{44}{\code {rl_insert_completions}} -\entry{rl_completion_mode}{44}{\code {rl_completion_mode}} -\entry{rl_completion_matches}{45}{\code {rl_completion_matches}} -\entry{rl_filename_completion_function}{45}{\code {rl_filename_completion_function}} -\entry{rl_username_completion_function}{45}{\code {rl_username_completion_function}} -\entry{rl_completion_entry_function}{45}{\code {rl_completion_entry_function}} -\entry{rl_attempted_completion_function}{45}{\code {rl_attempted_completion_function}} -\entry{rl_filename_quoting_function}{45}{\code {rl_filename_quoting_function}} -\entry{rl_filename_dequoting_function}{46}{\code {rl_filename_dequoting_function}} -\entry{rl_char_is_quoted_p}{46}{\code {rl_char_is_quoted_p}} -\entry{rl_ignore_some_completions_function}{46}{\code {rl_ignore_some_completions_function}} -\entry{rl_directory_completion_hook}{46}{\code {rl_directory_completion_hook}} -\entry{rl_filename_rewrite_hook}{46}{\code {rl_filename_rewrite_hook}} -\entry{rl_completion_display_matches_hook}{47}{\code {rl_completion_display_matches_hook}} -\entry{rl_basic_word_break_characters}{47}{\code {rl_basic_word_break_characters}} -\entry{rl_basic_quote_characters}{47}{\code {rl_basic_quote_characters}} -\entry{rl_completer_word_break_characters}{47}{\code {rl_completer_word_break_characters}} -\entry{rl_completion_word_break_hook}{47}{\code {rl_completion_word_break_hook}} -\entry{rl_completer_quote_characters}{47}{\code {rl_completer_quote_characters}} -\entry{rl_filename_quote_characters}{47}{\code {rl_filename_quote_characters}} -\entry{rl_special_prefixes}{47}{\code {rl_special_prefixes}} -\entry{rl_completion_query_items}{47}{\code {rl_completion_query_items}} -\entry{rl_completion_append_character}{48}{\code {rl_completion_append_character}} -\entry{rl_completion_suppress_append}{48}{\code {rl_completion_suppress_append}} -\entry{rl_completion_quote_character}{48}{\code {rl_completion_quote_character}} -\entry{rl_completion_suppress_quote}{48}{\code {rl_completion_suppress_quote}} -\entry{rl_completion_found_quote}{48}{\code {rl_completion_found_quote}} -\entry{rl_completion_mark_symlink_dirs}{48}{\code {rl_completion_mark_symlink_dirs}} -\entry{rl_ignore_completion_duplicates}{48}{\code {rl_ignore_completion_duplicates}} -\entry{rl_filename_completion_desired}{48}{\code {rl_filename_completion_desired}} -\entry{rl_filename_quoting_desired}{49}{\code {rl_filename_quoting_desired}} -\entry{rl_attempted_completion_over}{49}{\code {rl_attempted_completion_over}} -\entry{rl_sort_completion_matches}{49}{\code {rl_sort_completion_matches}} -\entry{rl_completion_type}{49}{\code {rl_completion_type}} -\entry{rl_completion_invoking_key}{49}{\code {rl_completion_invoking_key}} -\entry{rl_inhibit_completion}{49}{\code {rl_inhibit_completion}} diff --git a/lib/readline/doc/rlman.fns b/lib/readline/doc/rlman.fns deleted file mode 100644 index 936049dc4..000000000 --- a/lib/readline/doc/rlman.fns +++ /dev/null @@ -1,310 +0,0 @@ -\initial {_} -\entry {\code {_rl_digit_p}}{38} -\entry {\code {_rl_digit_value}}{38} -\entry {\code {_rl_lowercase_p}}{38} -\entry {\code {_rl_to_lower}}{38} -\entry {\code {_rl_to_upper}}{38} -\entry {\code {_rl_uppercase_p}}{38} -\initial {A} -\entry {\code {abort (C-g)}}{19} -\entry {\code {accept-line (Newline or Return)}}{14} -\initial {B} -\entry {\code {backward-char (C-b)}}{14} -\entry {\code {backward-delete-char (Rubout)}}{16} -\entry {\code {backward-kill-line (C-x Rubout)}}{17} -\entry {\code {backward-kill-word (M-\key {DEL})}}{17} -\entry {\code {backward-word (M-b)}}{14} -\entry {\code {beginning-of-history (M-<)}}{15} -\entry {\code {beginning-of-line (C-a)}}{14} -\entry {bell-style}{4} -\entry {bind-tty-special-chars}{5} -\initial {C} -\entry {\code {call-last-kbd-macro (C-x e)}}{19} -\entry {\code {capitalize-word (M-c)}}{16} -\entry {\code {character-search (C-])}}{20} -\entry {\code {character-search-backward (M-C-])}}{20} -\entry {\code {clear-screen (C-l)}}{14} -\entry {comment-begin}{5} -\entry {\code {complete (\key {TAB})}}{18} -\entry {completion-display-width}{5} -\entry {completion-ignore-case}{5} -\entry {completion-map-case}{5} -\entry {completion-prefix-display-length}{5} -\entry {completion-query-items}{5} -\entry {convert-meta}{5} -\entry {\code {copy-backward-word ()}}{17} -\entry {\code {copy-forward-word ()}}{18} -\entry {\code {copy-region-as-kill ()}}{17} -\initial {D} -\entry {\code {delete-char (C-d)}}{16} -\entry {\code {delete-char-or-list ()}}{19} -\entry {\code {delete-horizontal-space ()}}{17} -\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{18} -\entry {disable-completion}{5} -\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{19} -\entry {\code {downcase-word (M-l)}}{16} -\entry {\code {dump-functions ()}}{20} -\entry {\code {dump-macros ()}}{20} -\entry {\code {dump-variables ()}}{20} -\initial {E} -\entry {editing-mode}{6} -\entry {\code {emacs-editing-mode (C-e)}}{20} -\entry {enable-keypad}{6} -\entry {\code {end-kbd-macro (C-x ))}}{19} -\entry {\code {end-of-history (M->)}}{15} -\entry {\code {end-of-line (C-e)}}{14} -\entry {\code {exchange-point-and-mark (C-x C-x)}}{20} -\entry {expand-tilde}{6} -\initial {F} -\entry {\code {forward-backward-delete-char ()}}{16} -\entry {\code {forward-char (C-f)}}{14} -\entry {\code {forward-search-history (C-s)}}{15} -\entry {\code {forward-word (M-f)}}{14} -\initial {H} -\entry {history-preserve-point}{6} -\entry {\code {history-search-backward ()}}{15} -\entry {\code {history-search-forward ()}}{15} -\entry {history-size}{6} -\entry {horizontal-scroll-mode}{6} -\initial {I} -\entry {input-meta}{6} -\entry {\code {insert-comment (M-#)}}{20} -\entry {\code {insert-completions (M-*)}}{18} -\entry {isearch-terminators}{6} -\initial {K} -\entry {keymap}{7} -\entry {\code {kill-line (C-k)}}{17} -\entry {\code {kill-region ()}}{17} -\entry {\code {kill-whole-line ()}}{17} -\entry {\code {kill-word (M-d)}}{17} -\initial {M} -\entry {mark-modified-lines}{7} -\entry {mark-symlinked-directories}{7} -\entry {match-hidden-files}{7} -\entry {\code {menu-complete ()}}{18} -\entry {\code {menu-complete-backward ()}}{19} -\entry {menu-complete-display-prefix}{7} -\entry {meta-flag}{6} -\initial {N} -\entry {\code {next-history (C-n)}}{15} -\entry {\code {non-incremental-forward-search-history (M-n)}}{15} -\entry {\code {non-incremental-reverse-search-history (M-p)}}{15} -\initial {O} -\entry {output-meta}{7} -\entry {\code {overwrite-mode ()}}{17} -\initial {P} -\entry {page-completions}{7} -\entry {\code {possible-completions (M-?)}}{18} -\entry {\code {prefix-meta (\key {ESC})}}{19} -\entry {\code {previous-history (C-p)}}{14} -\initial {Q} -\entry {\code {quoted-insert (C-q or C-v)}}{16} -\initial {R} -\entry {\code {re-read-init-file (C-x C-r)}}{19} -\entry {\code {readline}}{22} -\entry {\code {redraw-current-line ()}}{14} -\entry {\code {reverse-search-history (C-r)}}{15} -\entry {revert-all-at-newline}{8} -\entry {\code {revert-line (M-r)}}{19} -\entry {\code {rl_add_defun}}{30} -\entry {\code {rl_add_funmap_entry}}{33} -\entry {\code {rl_add_undo}}{34} -\entry {\code {rl_alphabetic}}{37} -\entry {\code {rl_already_prompted}}{26} -\entry {\code {rl_attempted_completion_function}}{45} -\entry {\code {rl_attempted_completion_over}}{49} -\entry {\code {rl_basic_quote_characters}}{47} -\entry {\code {rl_basic_word_break_characters}}{47} -\entry {\code {rl_begin_undo_group}}{33} -\entry {\code {rl_bind_key}}{31} -\entry {\code {rl_bind_key_if_unbound}}{31} -\entry {\code {rl_bind_key_if_unbound_in_map}}{31} -\entry {\code {rl_bind_key_in_map}}{31} -\entry {\code {rl_bind_keyseq}}{31} -\entry {\code {rl_bind_keyseq_if_unbound}}{32} -\entry {\code {rl_bind_keyseq_if_unbound_in_map}}{32} -\entry {\code {rl_bind_keyseq_in_map}}{32} -\entry {\code {rl_binding_keymap}}{27} -\entry {\code {rl_callback_handler_install}}{39} -\entry {\code {rl_callback_handler_remove}}{39} -\entry {\code {rl_callback_read_char}}{39} -\entry {\code {rl_catch_signals}}{42} -\entry {\code {rl_catch_sigwinch}}{42} -\entry {\code {rl_char_is_quoted_p}}{46} -\entry {\code {rl_cleanup_after_signal}}{42} -\entry {\code {rl_clear_message}}{35} -\entry {\code {rl_clear_pending_input}}{36} -\entry {\code {rl_clear_signals}}{43} -\entry {\code {rl_complete}}{44} -\entry {\code {rl_complete_internal}}{44} -\entry {\code {rl_completer_quote_characters}}{47} -\entry {\code {rl_completer_word_break_characters}}{47} -\entry {\code {rl_completion_append_character}}{48} -\entry {\code {rl_completion_display_matches_hook}}{47} -\entry {\code {rl_completion_entry_function}}{44, 45} -\entry {\code {rl_completion_found_quote}}{48} -\entry {\code {rl_completion_invoking_key}}{49} -\entry {\code {rl_completion_mark_symlink_dirs}}{48} -\entry {\code {rl_completion_matches}}{45} -\entry {\code {rl_completion_mode}}{44} -\entry {\code {rl_completion_query_items}}{47} -\entry {\code {rl_completion_quote_character}}{48} -\entry {\code {rl_completion_suppress_append}}{48} -\entry {\code {rl_completion_suppress_quote}}{48} -\entry {\code {rl_completion_type}}{49} -\entry {\code {rl_completion_word_break_hook}}{47} -\entry {\code {rl_copy_keymap}}{30} -\entry {\code {rl_copy_text}}{35} -\entry {\code {rl_crlf}}{34} -\entry {\code {rl_delete_text}}{35} -\entry {\code {rl_deprep_term_function}}{27} -\entry {\code {rl_deprep_terminal}}{37} -\entry {\code {rl_ding}}{37} -\entry {\code {rl_directory_completion_hook}}{46} -\entry {\code {rl_discard_keymap}}{30} -\entry {\code {rl_dispatching}}{25} -\entry {\code {rl_display_match_list}}{38} -\entry {\code {rl_display_prompt}}{26} -\entry {\code {rl_do_undo}}{34} -\entry {\code {rl_done}}{25} -\entry {\code {rl_echo_signal_char}}{42} -\entry {\code {rl_editing_mode}}{29} -\entry {\code {rl_end}}{25} -\entry {\code {rl_end_undo_group}}{33} -\entry {\code {rl_erase_empty_line}}{25} -\entry {\code {rl_event_hook}}{27} -\entry {\code {rl_execute_next}}{36} -\entry {\code {rl_executing_keymap}}{27} -\entry {\code {rl_executing_macro}}{27} -\entry {\code {rl_expand_prompt}}{35} -\entry {\code {rl_explicit_arg}}{29} -\entry {\code {rl_extend_line_buffer}}{37} -\entry {\code {rl_filename_completion_desired}}{48} -\entry {\code {rl_filename_completion_function}}{45} -\entry {\code {rl_filename_dequoting_function}}{46} -\entry {\code {rl_filename_quote_characters}}{47} -\entry {\code {rl_filename_quoting_desired}}{49} -\entry {\code {rl_filename_quoting_function}}{45} -\entry {\code {rl_filename_rewrite_hook}}{46} -\entry {\code {rl_forced_update_display}}{34} -\entry {\code {rl_free}}{37} -\entry {\code {rl_free_keymap}}{30} -\entry {\code {rl_free_line_state}}{42} -\entry {\code {rl_free_undo_list}}{34} -\entry {\code {rl_function_dumper}}{33} -\entry {\code {rl_function_of_keyseq}}{32} -\entry {\code {rl_funmap_names}}{33} -\entry {\code {rl_generic_bind}}{32} -\entry {\code {rl_get_keymap}}{30} -\entry {\code {rl_get_keymap_by_name}}{30} -\entry {\code {rl_get_keymap_name}}{30} -\entry {\code {rl_get_screen_size}}{43} -\entry {\code {rl_get_termcap}}{39} -\entry {\code {rl_getc}}{36} -\entry {\code {rl_getc_function}}{27} -\entry {\code {rl_gnu_readline_p}}{26} -\entry {\code {rl_ignore_completion_duplicates}}{48} -\entry {\code {rl_ignore_some_completions_function}}{46} -\entry {\code {rl_inhibit_completion}}{49} -\entry {\code {rl_initialize}}{37} -\entry {\code {rl_insert_completions}}{44} -\entry {\code {rl_insert_text}}{35} -\entry {\code {rl_instream}}{26} -\entry {\code {rl_invoking_keyseqs}}{33} -\entry {\code {rl_invoking_keyseqs_in_map}}{33} -\entry {\code {rl_kill_text}}{36} -\entry {\code {rl_last_func}}{27} -\entry {\code {rl_library_version}}{26} -\entry {\code {rl_line_buffer}}{25} -\entry {\code {rl_list_funmap_names}}{33} -\entry {\code {rl_macro_bind}}{38} -\entry {\code {rl_macro_dumper}}{38} -\entry {\code {rl_make_bare_keymap}}{30} -\entry {\code {rl_make_keymap}}{30} -\entry {\code {rl_mark}}{25} -\entry {\code {rl_message}}{35} -\entry {\code {rl_modifying}}{34} -\entry {\code {rl_named_function}}{32} -\entry {\code {rl_num_chars_to_read}}{25} -\entry {\code {rl_numeric_arg}}{29} -\entry {\code {rl_on_new_line}}{34} -\entry {\code {rl_on_new_line_with_prompt}}{34} -\entry {\code {rl_outstream}}{26} -\entry {\code {rl_parse_and_bind}}{32} -\entry {\code {rl_pending_input}}{25} -\entry {\code {rl_point}}{25} -\entry {\code {rl_possible_completions}}{44} -\entry {\code {rl_pre_input_hook}}{27} -\entry {\code {rl_prefer_env_winsize}}{26} -\entry {\code {rl_prep_term_function}}{27} -\entry {\code {rl_prep_terminal}}{36} -\entry {\code {rl_prompt}}{26} -\entry {\code {rl_push_macro_input}}{36} -\entry {\code {rl_read_init_file}}{32} -\entry {\code {rl_read_key}}{36} -\entry {\code {rl_readline_name}}{26} -\entry {\code {rl_readline_state}}{28} -\entry {\code {rl_readline_version}}{26} -\entry {\code {rl_redisplay}}{34} -\entry {\code {rl_redisplay_function}}{27} -\entry {\code {rl_replace_line}}{37} -\entry {\code {rl_reset_after_signal}}{42} -\entry {\code {rl_reset_line_state}}{34} -\entry {\code {rl_reset_screen_size}}{43} -\entry {\code {rl_reset_terminal}}{37} -\entry {\code {rl_resize_terminal}}{42} -\entry {\code {rl_restore_prompt}}{35} -\entry {\code {rl_restore_state}}{37} -\entry {\code {rl_save_prompt}}{35} -\entry {\code {rl_save_state}}{37} -\entry {\code {rl_set_key}}{32} -\entry {\code {rl_set_keyboard_input_timeout}}{36} -\entry {\code {rl_set_keymap}}{30} -\entry {\code {rl_set_paren_blink_timeout}}{39} -\entry {\code {rl_set_prompt}}{35} -\entry {\code {rl_set_screen_size}}{42} -\entry {\code {rl_set_signals}}{43} -\entry {\code {rl_show_char}}{34} -\entry {\code {rl_sort_completion_matches}}{49} -\entry {\code {rl_special_prefixes}}{47} -\entry {\code {rl_startup_hook}}{27} -\entry {\code {rl_stuff_char}}{36} -\entry {\code {rl_terminal_name}}{26} -\entry {\code {rl_tty_set_default_bindings}}{37} -\entry {\code {rl_tty_unset_default_bindings}}{37} -\entry {\code {rl_unbind_command_in_map}}{31} -\entry {\code {rl_unbind_function_in_map}}{31} -\entry {\code {rl_unbind_key}}{31} -\entry {\code {rl_unbind_key_in_map}}{31} -\entry {\code {rl_username_completion_function}}{45} -\entry {\code {rl_variable_bind}}{38} -\entry {\code {rl_variable_dumper}}{39} -\entry {\code {rl_variable_value}}{39} -\initial {S} -\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{16} -\entry {\code {set-mark (C-@)}}{19} -\entry {show-all-if-ambiguous}{8} -\entry {show-all-if-unmodified}{8} -\entry {skip-completed-text}{8} -\entry {\code {skip-csi-sequence ()}}{20} -\entry {\code {start-kbd-macro (C-x ()}}{19} -\initial {T} -\entry {\code {tab-insert (M-\key {TAB})}}{16} -\entry {\code {tilde-expand (M-~)}}{19} -\entry {\code {transpose-chars (C-t)}}{16} -\entry {\code {transpose-words (M-t)}}{16} -\initial {U} -\entry {\code {undo (C-_ or C-x C-u)}}{19} -\entry {\code {universal-argument ()}}{18} -\entry {\code {unix-filename-rubout ()}}{17} -\entry {\code {unix-line-discard (C-u)}}{17} -\entry {\code {unix-word-rubout (C-w)}}{17} -\entry {\code {upcase-word (M-u)}}{16} -\initial {V} -\entry {\code {vi-editing-mode (M-C-j)}}{20} -\entry {visible-stats}{8} -\initial {Y} -\entry {\code {yank (C-y)}}{18} -\entry {\code {yank-last-arg (M-. or M-_)}}{15} -\entry {\code {yank-nth-arg (M-C-y)}}{15} -\entry {\code {yank-pop (M-y)}}{18} diff --git a/lib/readline/doc/rlman.ky b/lib/readline/doc/rlman.ky deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/rlman.log b/lib/readline/doc/rlman.log deleted file mode 100644 index bad80270e..000000000 --- a/lib/readline/doc/rlman.log +++ /dev/null @@ -1,231 +0,0 @@ -This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 8 FEB 2011 11:10 -**/usr/homes/chet/src/bash/src/lib/readline/doc/rlman.texi -(/usr/homes/chet/src/bash/src/lib/readline/doc/rlman.texi (./texinfo.tex -Loading texinfo [version 2009-01-18.17]: -\bindingoffset=\dimen16 -\normaloffset=\dimen17 -\pagewidth=\dimen18 -\pageheight=\dimen19 -\outerhsize=\dimen20 -\outervsize=\dimen21 -\cornerlong=\dimen22 -\cornerthick=\dimen23 -\topandbottommargin=\dimen24 -\headlinebox=\box16 -\footlinebox=\box17 -\margin=\insert252 -\EMsimple=\toks12 -\groupbox=\box18 -\groupinvalidhelp=\toks13 -\mil=\dimen25 -\exdentamount=\skip18 -\inmarginspacing=\skip19 - pdf, -\tempnum=\count26 -\lnkcount=\count27 -\filename=\toks14 -\filenamelength=\count28 -\pgn=\count29 -\toksA=\toks15 -\toksB=\toks16 -\toksC=\toks17 -\toksD=\toks18 -\boxA=\box19 -\countA=\count30 -\nopdfimagehelp=\toks19 - fonts, -\sffam=\fam8 -\textleading=\dimen26 - markup, -\fontdepth=\count31 - glyphs, -\errorbox=\box20 - -page headings, -\titlepagetopglue=\skip20 -\titlepagebottomglue=\skip21 -\evenheadline=\toks20 -\oddheadline=\toks21 -\evenfootline=\toks22 -\oddfootline=\toks23 - tables, -\tableindent=\dimen27 -\itemindent=\dimen28 -\itemmargin=\dimen29 -\itemmax=\dimen30 -\itemno=\count32 -\multitableparskip=\skip22 -\multitableparindent=\skip23 -\multitablecolspace=\dimen31 -\multitablelinespace=\skip24 -\colcount=\count33 -\everytab=\toks24 - conditionals, -\doignorecount=\count34 - indexing, -\whatsitskip=\skip25 -\whatsitpenalty=\count35 -\secondaryindent=\skip26 -\partialpage=\box21 -\doublecolumnhsize=\dimen32 - sectioning, -\unnumberedno=\count36 -\chapno=\count37 -\secno=\count38 -\subsecno=\count39 -\subsubsecno=\count40 -\appendixno=\count41 -\absseclevel=\count42 -\secbase=\count43 -\chapheadingskip=\skip27 -\secheadingskip=\skip28 -\subsecheadingskip=\skip29 - toc, -\tocfile=\write0 -\contentsrightmargin=\skip30 -\savepageno=\count44 -\lastnegativepageno=\count45 -\tocindent=\dimen33 - environments, -\lispnarrowing=\skip31 -\envskipamount=\skip32 -\circthick=\dimen34 -\cartouter=\dimen35 -\cartinner=\dimen36 -\normbskip=\skip33 -\normpskip=\skip34 -\normlskip=\skip35 -\lskip=\skip36 -\rskip=\skip37 -\nonfillparindent=\dimen37 -\tabw=\dimen38 - -defuns, -\defbodyindent=\skip38 -\defargsindent=\skip39 -\deflastargmargin=\skip40 -\defunpenalty=\count46 -\parencount=\count47 -\brackcount=\count48 - macros, -\macscribble=\write1 -\paramno=\count49 -\macname=\toks25 - cross references, -\auxfile=\write2 -\savesfregister=\count50 - insertions, -\footnoteno=\count51 -\SAVEfootins=\box22 -\SAVEmargin=\box23 - -(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex -\epsffilein=\read0 -\epsfframemargin=\dimen39 -\epsfframethickness=\dimen40 -\epsfrsize=\dimen41 -\epsftmp=\dimen42 -\epsftsize=\dimen43 -\epsfxsize=\dimen44 -\epsfysize=\dimen45 -\pspoints=\dimen46 -\epsfnoopenhelp=\toks26 -) -\noepsfhelp=\toks27 - localization, -\nolanghelp=\toks28 -\countUTFx=\count52 -\countUTFy=\count53 -\countUTFz=\count54 - formatting, -\defaultparindent=\dimen47 - -and turning on texinfo input format.) (./rlman.aux) -\openout2 = `rlman.aux'. - -@cpindfile=@write3 -@fnindfile=@write4 -@vrindfile=@write5 -@tpindfile=@write6 -@kyindfile=@write7 -@pgindfile=@write8 - (./version.texi) [1 -\openout3 = `rlman.cp'. - -\openout4 = `rlman.fn'. - -\openout5 = `rlman.vr'. - -\openout6 = `rlman.tp'. - -\openout7 = `rlman.ky'. - -\openout8 = `rlman.pg'. - -] -\openout1 = `rlman.tmp'. - - -(./rlman.tmp) [2] (./rlman.toc [-1]) [-2] (./rluser.texi -@btindfile=@write9 - Chapter 1 -\openout0 = `rlman.toc'. - - [1 -\openout9 = `rlman.bt'. - -] [2] -[3] [4] [5] [6] -Underfull \hbox (badness 5231) in paragraph at lines 551--567 - @texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr -m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and - -@hbox(7.60416+2.12917)x433.62, glue set 3.7426 -.@glue(@leftskip) 115.63242 -.@texttt e -.@texttt m -.@texttt a -.@texttt c -.etc. - -[7] [8] [9] [10] [11] -Overfull \hbox (26.43913pt too wide) in paragraph at lines 894--894 - []@texttt Meta-Control-h: backward-kill-word Text after the function name is i -gnored[] | - -@hbox(6.69167+2.43333)x433.62 -.@glue(@leftskip) 28.90755 -.@hbox(0.0+0.0)x0.0 -.@texttt M -.@texttt e -.@texttt t -.etc. - -[12] [13] [14] [15] [16] [17] [18] [19] [20]) (./rltech.texi Chapter 2 [21] -[22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] -[37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] -Underfull \hbox (badness 7379) in paragraph at lines 1910--1915 - []@textrm If an application-specific com-ple-tion func-tion as-signed to @text -tt rl_attempted_ - -@hbox(7.60416+2.43333)x433.62, glue set 4.19675 -.@glue(@leftskip) 28.90755 -.@hbox(0.0+0.0)x0.0 -.@textrm I -.@textrm f -.@glue 3.65 plus 1.825 minus 1.21666 -.etc. - -[49] [50] [51] [52] [53] [54] [55] [56]) Appendix A [57] (./fdl.texi [58] -[59] [60] [61] [62] [63] [64]) (Concept Index) [65] (./rlman.cps) -(Function and Variable Index) [66] (./rlman.fns [67] [68] [69]) [70] ) -Here is how much of TeX's memory you used: - 1839 strings out of 97980 - 23025 string characters out of 1221004 - 86081 words of memory out of 1500000 - 2666 multiletter control sequences out of 10000+50000 - 32127 words of font info for 112 fonts, out of 1200000 for 2000 - 51 hyphenation exceptions out of 8191 - 16i,6n,14p,327b,534s stack positions out of 5000i,500n,6000p,200000b,5000s - -Output written on rlman.dvi (74 pages, 300184 bytes). diff --git a/lib/readline/doc/rlman.pg b/lib/readline/doc/rlman.pg deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/rlman.texinfo b/lib/readline/doc/rlman.texinfo deleted file mode 100644 index 1ffebad08..000000000 --- a/lib/readline/doc/rlman.texinfo +++ /dev/null @@ -1,108 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@comment %**start of header (This is for running Texinfo on a region.) -@setfilename readline.info -@settitle GNU Readline Library -@comment %**end of header (This is for running Texinfo on a region.) -@synindex vr fn -@setchapternewpage odd - -@include manvers.texinfo - -@ifinfo -@dircategory Libraries -@direntry -* Readline: (readline). The GNU readline library API -@end direntry - -This document describes the GNU Readline Library, a utility which aids -in the consistency of user interface across discrete programs that need -to provide a command line interface. - -Copyright (C) 1988-2002 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -pare preserved on all copies. - -@ignore -Permission is granted to process this file through TeX and print the -results, provided the printed document carries copying permission -notice identical to this one except for the removal of this paragraph -(this paragraph not being relevant to the printed manual). -@end ignore - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Free Software Foundation. -@end ifinfo - -@titlepage -@title GNU Readline Library -@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}. -@subtitle @value{UPDATE-MONTH} -@author Brian Fox, Free Software Foundation -@author Chet Ramey, Case Western Reserve University - -@page -This document describes the GNU Readline Library, a utility which aids -in the consistency of user interface across discrete programs that need -to provide a command line interface. - -Published by the Free Software Foundation @* -59 Temple Place, Suite 330, @* -Boston, MA 02111 USA - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Free Software Foundation. - -@vskip 0pt plus 1filll -Copyright @copyright{} 1988-2002 Free Software Foundation, Inc. -@end titlepage - -@ifinfo -@node Top -@top GNU Readline Library - -This document describes the GNU Readline Library, a utility which aids -in the consistency of user interface across discrete programs that need -to provide a command line interface. - -@menu -* Command Line Editing:: GNU Readline User's Manual. -* Programming with GNU Readline:: GNU Readline Programmer's Manual. -* Concept Index:: Index of concepts described in this manual. -* Function and Variable Index:: Index of externally visible functions - and variables. -@end menu -@end ifinfo - -@include rluser.texinfo -@include rltech.texinfo - -@node Concept Index -@unnumbered Concept Index -@printindex cp - -@node Function and Variable Index -@unnumbered Function and Variable Index -@printindex fn - -@contents -@bye diff --git a/lib/readline/doc/rlman.tmp b/lib/readline/doc/rlman.tmp deleted file mode 100644 index d70732835..000000000 --- a/lib/readline/doc/rlman.tmp +++ /dev/null @@ -1,26 +0,0 @@ - -This manual describes the GNU Readline Library -(version @value{VERSION}, @value{UPDATED}), a library which aids in the -consistency of user interface across discrete programs which provide -a command line interface. - -Copyright @copyright{} 1988--2011 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -@quotation -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', -and with the Back-Cover Texts as in (a) below. A copy of the license is -included in the section entitled ``GNU Free Documentation License''. - -(a) The FSF's Back-Cover Text is: You are free to copy and modify -this GNU manual. Buying copies from GNU Press supports the FSF in -developing GNU and promoting software freedom.'' - -@end quotation -@endinput diff --git a/lib/readline/doc/rlman.toc b/lib/readline/doc/rlman.toc deleted file mode 100644 index 82cf5c42c..000000000 --- a/lib/readline/doc/rlman.toc +++ /dev/null @@ -1,51 +0,0 @@ -@numchapentry{Command Line Editing}{1}{Command Line Editing}{1} -@numsecentry{Introduction to Line Editing}{1.1}{Introduction and Notation}{1} -@numsecentry{Readline Interaction}{1.2}{Readline Interaction}{1} -@numsubsecentry{Readline Bare Essentials}{1.2.1}{Readline Bare Essentials}{1} -@numsubsecentry{Readline Movement Commands}{1.2.2}{Readline Movement Commands}{2} -@numsubsecentry{Readline Killing Commands}{1.2.3}{Readline Killing Commands}{2} -@numsubsecentry{Readline Arguments}{1.2.4}{Readline Arguments}{3} -@numsubsecentry{Searching for Commands in the History}{1.2.5}{Searching}{3} -@numsecentry{Readline Init File}{1.3}{Readline Init File}{4} -@numsubsecentry{Readline Init File Syntax}{1.3.1}{Readline Init File Syntax}{4} -@numsubsecentry{Conditional Init Constructs}{1.3.2}{Conditional Init Constructs}{10} -@numsubsecentry{Sample Init File}{1.3.3}{Sample Init File}{11} -@numsecentry{Bindable Readline Commands}{1.4}{Bindable Readline Commands}{14} -@numsubsecentry{Commands For Moving}{1.4.1}{Commands For Moving}{14} -@numsubsecentry{Commands For Manipulating The History}{1.4.2}{Commands For History}{14} -@numsubsecentry{Commands For Changing Text}{1.4.3}{Commands For Text}{16} -@numsubsecentry{Killing And Yanking}{1.4.4}{Commands For Killing}{17} -@numsubsecentry{Specifying Numeric Arguments}{1.4.5}{Numeric Arguments}{18} -@numsubsecentry{Letting Readline Type For You}{1.4.6}{Commands For Completion}{18} -@numsubsecentry{Keyboard Macros}{1.4.7}{Keyboard Macros}{19} -@numsubsecentry{Some Miscellaneous Commands}{1.4.8}{Miscellaneous Commands}{19} -@numsecentry{Readline vi Mode}{1.5}{Readline vi Mode}{21} -@numchapentry{Programming with GNU Readline}{2}{Programming with GNU Readline}{22} -@numsecentry{Basic Behavior}{2.1}{Basic Behavior}{22} -@numsecentry{Custom Functions}{2.2}{Custom Functions}{23} -@numsubsecentry{Readline Typedefs}{2.2.1}{Readline Typedefs}{24} -@numsubsecentry{Writing a New Function}{2.2.2}{Function Writing}{24} -@numsecentry{Readline Variables}{2.3}{Readline Variables}{25} -@numsecentry{Readline Convenience Functions}{2.4}{Readline Convenience Functions}{29} -@numsubsecentry{Naming a Function}{2.4.1}{Function Naming}{29} -@numsubsecentry{Selecting a Keymap}{2.4.2}{Keymaps}{30} -@numsubsecentry{Binding Keys}{2.4.3}{Binding Keys}{31} -@numsubsecentry{Associating Function Names and Bindings}{2.4.4}{Associating Function Names and Bindings}{32} -@numsubsecentry{Allowing Undoing}{2.4.5}{Allowing Undoing}{33} -@numsubsecentry{Redisplay}{2.4.6}{Redisplay}{34} -@numsubsecentry{Modifying Text}{2.4.7}{Modifying Text}{35} -@numsubsecentry{Character Input}{2.4.8}{Character Input}{36} -@numsubsecentry{Terminal Management}{2.4.9}{Terminal Management}{36} -@numsubsecentry{Utility Functions}{2.4.10}{Utility Functions}{37} -@numsubsecentry{Miscellaneous Functions}{2.4.11}{Miscellaneous Functions}{38} -@numsubsecentry{Alternate Interface}{2.4.12}{Alternate Interface}{39} -@numsubsecentry{A Readline Example}{2.4.13}{A Readline Example}{40} -@numsecentry{Readline Signal Handling}{2.5}{Readline Signal Handling}{41} -@numsecentry{Custom Completers}{2.6}{Custom Completers}{43} -@numsubsecentry{How Completing Works}{2.6.1}{How Completing Works}{43} -@numsubsecentry{Completion Functions}{2.6.2}{Completion Functions}{44} -@numsubsecentry{Completion Variables}{2.6.3}{Completion Variables}{45} -@numsubsecentry{A Short Completion Example}{2.6.4}{A Short Completion Example}{49} -@appentry{GNU Free Documentation License}{A}{GNU Free Documentation License}{58} -@unnchapentry{Concept Index}{10001}{Concept Index}{66} -@unnchapentry{Function and Variable Index}{10002}{Function and Variable Index}{67} diff --git a/lib/readline/doc/rlman.tp b/lib/readline/doc/rlman.tp deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/rlman.vr b/lib/readline/doc/rlman.vr deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/rltech.texinfo b/lib/readline/doc/rltech.texinfo deleted file mode 100644 index 037e824e2..000000000 --- a/lib/readline/doc/rltech.texinfo +++ /dev/null @@ -1,2165 +0,0 @@ -@comment %**start of header (This is for running Texinfo on a region.) -@setfilename rltech.info -@comment %**end of header (This is for running Texinfo on a region.) -@setchapternewpage odd - -@ifinfo -This document describes the GNU Readline Library, a utility for aiding -in the consitency of user interface across discrete programs that need -to provide a command line interface. - -Copyright (C) 1988-2002 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -pare preserved on all copies. - -@ignore -Permission is granted to process this file through TeX and print the -results, provided the printed document carries copying permission -notice identical to this one except for the removal of this paragraph -(this paragraph not being relevant to the printed manual). -@end ignore - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Foundation. -@end ifinfo - -@node Programming with GNU Readline -@chapter Programming with GNU Readline - -This chapter describes the interface between the @sc{gnu} Readline Library and -other programs. If you are a programmer, and you wish to include the -features found in @sc{gnu} Readline -such as completion, line editing, and interactive history manipulation -in your own programs, this section is for you. - -@menu -* Basic Behavior:: Using the default behavior of Readline. -* Custom Functions:: Adding your own functions to Readline. -* Readline Variables:: Variables accessible to custom - functions. -* Readline Convenience Functions:: Functions which Readline supplies to - aid in writing your own custom - functions. -* Readline Signal Handling:: How Readline behaves when it receives signals. -* Custom Completers:: Supplanting or supplementing Readline's - completion functions. -@end menu - -@node Basic Behavior -@section Basic Behavior - -Many programs provide a command line interface, such as @code{mail}, -@code{ftp}, and @code{sh}. For such programs, the default behaviour of -Readline is sufficient. This section describes how to use Readline in -the simplest way possible, perhaps to replace calls in your code to -@code{gets()} or @code{fgets()}. - -@findex readline -@cindex readline, function - -The function @code{readline()} prints a prompt @var{prompt} -and then reads and returns a single line of text from the user. -If @var{prompt} is @code{NULL} or the empty string, no prompt is displayed. -The line @code{readline} returns is allocated with @code{malloc()}; -the caller should @code{free()} the line when it has finished with it. -The declaration for @code{readline} in ANSI C is - -@example -@code{char *readline (const char *@var{prompt});} -@end example - -@noindent -So, one might say -@example -@code{char *line = readline ("Enter a line: ");} -@end example -@noindent -in order to read a line of text from the user. -The line returned has the final newline removed, so only the -text remains. - -If @code{readline} encounters an @code{EOF} while reading the line, and the -line is empty at that point, then @code{(char *)NULL} is returned. -Otherwise, the line is ended just as if a newline had been typed. - -If you want the user to be able to get at the line later, (with -@key{C-p} for example), you must call @code{add_history()} to save the -line away in a @dfn{history} list of such lines. - -@example -@code{add_history (line)}; -@end example - -@noindent -For full details on the GNU History Library, see the associated manual. - -It is preferable to avoid saving empty lines on the history list, since -users rarely have a burning need to reuse a blank line. Here is -a function which usefully replaces the standard @code{gets()} library -function, and has the advantage of no static buffer to overflow: - -@example -/* A static variable for holding the line. */ -static char *line_read = (char *)NULL; - -/* Read a string, and return a pointer to it. - Returns NULL on EOF. */ -char * -rl_gets () -@{ - /* If the buffer has already been allocated, - return the memory to the free pool. */ - if (line_read) - @{ - free (line_read); - line_read = (char *)NULL; - @} - - /* Get a line from the user. */ - line_read = readline (""); - - /* If the line has any text in it, - save it on the history. */ - if (line_read && *line_read) - add_history (line_read); - - return (line_read); -@} -@end example - -This function gives the user the default behaviour of @key{TAB} -completion: completion on file names. If you do not want Readline to -complete on filenames, you can change the binding of the @key{TAB} key -with @code{rl_bind_key()}. - -@example -@code{int rl_bind_key (int @var{key}, rl_command_func_t *@var{function});} -@end example - -@code{rl_bind_key()} takes two arguments: @var{key} is the character that -you want to bind, and @var{function} is the address of the function to -call when @var{key} is pressed. Binding @key{TAB} to @code{rl_insert()} -makes @key{TAB} insert itself. -@code{rl_bind_key()} returns non-zero if @var{key} is not a valid -ASCII character code (between 0 and 255). - -Thus, to disable the default @key{TAB} behavior, the following suffices: -@example -@code{rl_bind_key ('\t', rl_insert);} -@end example - -This code should be executed once at the start of your program; you -might write a function called @code{initialize_readline()} which -performs this and other desired initializations, such as installing -custom completers (@pxref{Custom Completers}). - -@node Custom Functions -@section Custom Functions - -Readline provides many functions for manipulating the text of -the line, but it isn't possible to anticipate the needs of all -programs. This section describes the various functions and variables -defined within the Readline library which allow a user program to add -customized functionality to Readline. - -Before declaring any functions that customize Readline's behavior, or -using any functionality Readline provides in other code, an -application writer should include the file @code{} -in any file that uses Readline's features. Since some of the definitions -in @code{readline.h} use the @code{stdio} library, the file -@code{} should be included before @code{readline.h}. - -@code{readline.h} defines a C preprocessor variable that should -be treated as an integer, @code{RL_READLINE_VERSION}, which may -be used to conditionally compile application code depending on -the installed Readline version. The value is a hexadecimal -encoding of the major and minor version numbers of the library, -of the form 0x@var{MMmm}. @var{MM} is the two-digit major -version number; @var{mm} is the two-digit minor version number. -For Readline 4.2, for example, the value of -@code{RL_READLINE_VERSION} would be @code{0x0402}. - -@menu -* Readline Typedefs:: C declarations to make code readable. -* Function Writing:: Variables and calling conventions. -@end menu - -@node Readline Typedefs -@subsection Readline Typedefs - -For readabilty, we declare a number of new object types, all pointers -to functions. - -The reason for declaring these new types is to make it easier to write -code describing pointers to C functions with appropriately prototyped -arguments and return values. - -For instance, say we want to declare a variable @var{func} as a pointer -to a function which takes two @code{int} arguments and returns an -@code{int} (this is the type of all of the Readline bindable functions). -Instead of the classic C declaration - -@code{int (*func)();} - -@noindent -or the ANSI-C style declaration - -@code{int (*func)(int, int);} - -@noindent -we may write - -@code{rl_command_func_t *func;} - -The full list of function pointer types available is - -@table @code -@item typedef int rl_command_func_t (int, int); - -@item typedef char *rl_compentry_func_t (const char *, int); - -@item typedef char **rl_completion_func_t (const char *, int, int); - -@item typedef char *rl_quote_func_t (char *, int, char *); - -@item typedef char *rl_dequote_func_t (char *, int); - -@item typedef int rl_compignore_func_t (char **); - -@item typedef void rl_compdisp_func_t (char **, int, int); - -@item typedef int rl_hook_func_t (void); - -@item typedef int rl_getc_func_t (FILE *); - -@item typedef int rl_linebuf_func_t (char *, int); - -@item typedef int rl_intfunc_t (int); -@item #define rl_ivoidfunc_t rl_hook_func_t -@item typedef int rl_icpfunc_t (char *); -@item typedef int rl_icppfunc_t (char **); - -@item typedef void rl_voidfunc_t (void); -@item typedef void rl_vintfunc_t (int); -@item typedef void rl_vcpfunc_t (char *); -@item typedef void rl_vcppfunc_t (char **); - -@end table - -@node Function Writing -@subsection Writing a New Function - -In order to write new functions for Readline, you need to know the -calling conventions for keyboard-invoked functions, and the names of the -variables that describe the current state of the line read so far. - -The calling sequence for a command @code{foo} looks like - -@example -@code{int foo (int count, int key)} -@end example - -@noindent -where @var{count} is the numeric argument (or 1 if defaulted) and -@var{key} is the key that invoked this function. - -It is completely up to the function as to what should be done with the -numeric argument. Some functions use it as a repeat count, some -as a flag, and others to choose alternate behavior (refreshing the current -line as opposed to refreshing the screen, for example). Some choose to -ignore it. In general, if a -function uses the numeric argument as a repeat count, it should be able -to do something useful with both negative and positive arguments. -At the very least, it should be aware that it can be passed a -negative argument. - -A command function should return 0 if its action completes successfully, -and a non-zero value if some error occurs. - -@node Readline Variables -@section Readline Variables - -These variables are available to function writers. - -@deftypevar {char *} rl_line_buffer -This is the line gathered so far. You are welcome to modify the -contents of the line, but see @ref{Allowing Undoing}. The -function @code{rl_extend_line_buffer} is available to increase -the memory allocated to @code{rl_line_buffer}. -@end deftypevar - -@deftypevar int rl_point -The offset of the current cursor position in @code{rl_line_buffer} -(the @emph{point}). -@end deftypevar - -@deftypevar int rl_end -The number of characters present in @code{rl_line_buffer}. When -@code{rl_point} is at the end of the line, @code{rl_point} and -@code{rl_end} are equal. -@end deftypevar - -@deftypevar int rl_mark -The @var{mark} (saved position) in the current line. If set, the mark -and point define a @emph{region}. -@end deftypevar - -@deftypevar int rl_done -Setting this to a non-zero value causes Readline to return the current -line immediately. -@end deftypevar - -@deftypevar int rl_num_chars_to_read -Setting this to a positive value before calling @code{readline()} causes -Readline to return after accepting that many characters, rather -than reading up to a character bound to @code{accept-line}. -@end deftypevar - -@deftypevar int rl_pending_input -Setting this to a value makes it the next keystroke read. This is a -way to stuff a single character into the input stream. -@end deftypevar - -@deftypevar int rl_dispatching -Set to a non-zero value if a function is being called from a key binding; -zero otherwise. Application functions can test this to discover whether -they were called directly or by Readline's dispatching mechanism. -@end deftypevar - -@deftypevar int rl_erase_empty_line -Setting this to a non-zero value causes Readline to completely erase -the current line, including any prompt, any time a newline is typed as -the only character on an otherwise-empty line. The cursor is moved to -the beginning of the newly-blank line. -@end deftypevar - -@deftypevar {char *} rl_prompt -The prompt Readline uses. This is set from the argument to -@code{readline()}, and should not be assigned to directly. -The @code{rl_set_prompt()} function (@pxref{Redisplay}) may -be used to modify the prompt string after calling @code{readline()}. -@end deftypevar - -@deftypevar int rl_already_prompted -If an application wishes to display the prompt itself, rather than have -Readline do it the first time @code{readline()} is called, it should set -this variable to a non-zero value after displaying the prompt. -The prompt must also be passed as the argument to @code{readline()} so -the redisplay functions can update the display properly. -The calling application is responsible for managing the value; Readline -never sets it. -@end deftypevar - -@deftypevar {const char *} rl_library_version -The version number of this revision of the library. -@end deftypevar - -@deftypevar int rl_readline_version -An integer encoding the current version of the library. The encoding is -of the form 0x@var{MMmm}, where @var{MM} is the two-digit major version -number, and @var{mm} is the two-digit minor version number. -For example, for Readline-4.2, @code{rl_readline_version} would have the -value 0x0402. -@end deftypevar - -@deftypevar {int} rl_gnu_readline_p -Always set to 1, denoting that this is @sc{gnu} readline rather than some -emulation. -@end deftypevar - -@deftypevar {const char *} rl_terminal_name -The terminal type, used for initialization. If not set by the application, -Readline sets this to the value of the @env{TERM} environment variable -the first time it is called. -@end deftypevar - -@deftypevar {const char *} rl_readline_name -This variable is set to a unique name by each application using Readline. -The value allows conditional parsing of the inputrc file -(@pxref{Conditional Init Constructs}). -@end deftypevar - -@deftypevar {FILE *} rl_instream -The stdio stream from which Readline reads input. -If @code{NULL}, Readline defaults to @var{stdin}. -@end deftypevar - -@deftypevar {FILE *} rl_outstream -The stdio stream to which Readline performs output. -If @code{NULL}, Readline defaults to @var{stdout}. -@end deftypevar - -@deftypevar {rl_command_func_t *} rl_last_func -The address of the last command function Readline executed. May be used to -test whether or not a function is being executed twice in succession, for -example. -@end deftypevar - -@deftypevar {rl_hook_func_t *} rl_startup_hook -If non-zero, this is the address of a function to call just -before @code{readline} prints the first prompt. -@end deftypevar - -@deftypevar {rl_hook_func_t *} rl_pre_input_hook -If non-zero, this is the address of a function to call after -the first prompt has been printed and just before @code{readline} -starts reading input characters. -@end deftypevar - -@deftypevar {rl_hook_func_t *} rl_event_hook -If non-zero, this is the address of a function to call periodically -when Readline is waiting for terminal input. -By default, this will be called at most ten times a second if there -is no keyboard input. -@end deftypevar - -@deftypevar {rl_getc_func_t *} rl_getc_function -If non-zero, Readline will call indirectly through this pointer -to get a character from the input stream. By default, it is set to -@code{rl_getc}, the default Readline character input function -(@pxref{Character Input}). -@end deftypevar - -@deftypevar {rl_voidfunc_t *} rl_redisplay_function -If non-zero, Readline will call indirectly through this pointer -to update the display with the current contents of the editing buffer. -By default, it is set to @code{rl_redisplay}, the default Readline -redisplay function (@pxref{Redisplay}). -@end deftypevar - -@deftypevar {rl_vintfunc_t *} rl_prep_term_function -If non-zero, Readline will call indirectly through this pointer -to initialize the terminal. The function takes a single argument, an -@code{int} flag that says whether or not to use eight-bit characters. -By default, this is set to @code{rl_prep_terminal} -(@pxref{Terminal Management}). -@end deftypevar - -@deftypevar {rl_voidfunc_t *} rl_deprep_term_function -If non-zero, Readline will call indirectly through this pointer -to reset the terminal. This function should undo the effects of -@code{rl_prep_term_function}. -By default, this is set to @code{rl_deprep_terminal} -(@pxref{Terminal Management}). -@end deftypevar - -@deftypevar {Keymap} rl_executing_keymap -This variable is set to the keymap (@pxref{Keymaps}) in which the -currently executing readline function was found. -@end deftypevar - -@deftypevar {Keymap} rl_binding_keymap -This variable is set to the keymap (@pxref{Keymaps}) in which the -last key binding occurred. -@end deftypevar - -@deftypevar {char *} rl_executing_macro -This variable is set to the text of any currently-executing macro. -@end deftypevar - -@deftypevar {int} rl_readline_state -A variable with bit values that encapsulate the current Readline state. -A bit is set with the @code{RL_SETSTATE} macro, and unset with the -@code{RL_UNSETSTATE} macro. Use the @code{RL_ISSTATE} macro to test -whether a particular state bit is set. Current state bits include: - -@table @code -@item RL_STATE_NONE -Readline has not yet been called, nor has it begun to intialize. -@item RL_STATE_INITIALIZING -Readline is initializing its internal data structures. -@item RL_STATE_INITIALIZED -Readline has completed its initialization. -@item RL_STATE_TERMPREPPED -Readline has modified the terminal modes to do its own input and redisplay. -@item RL_STATE_READCMD -Readline is reading a command from the keyboard. -@item RL_STATE_METANEXT -Readline is reading more input after reading the meta-prefix character. -@item RL_STATE_DISPATCHING -Readline is dispatching to a command. -@item RL_STATE_MOREINPUT -Readline is reading more input while executing an editing command. -@item RL_STATE_ISEARCH -Readline is performing an incremental history search. -@item RL_STATE_NSEARCH -Readline is performing a non-incremental history search. -@item RL_STATE_SEARCH -Readline is searching backward or forward through the history for a string. -@item RL_STATE_NUMERICARG -Readline is reading a numeric argument. -@item RL_STATE_MACROINPUT -Readline is currently getting its input from a previously-defined keyboard -macro. -@item RL_STATE_MACRODEF -Readline is currently reading characters defining a keyboard macro. -@item RL_STATE_OVERWRITE -Readline is in overwrite mode. -@item RL_STATE_COMPLETING -Readline is performing word completion. -@item RL_STATE_SIGHANDLER -Readline is currently executing the readline signal handler. -@item RL_STATE_UNDOING -Readline is performing an undo. -@item RL_STATE_DONE -Readline has read a key sequence bound to @code{accept-line} -and is about to return the line to the caller. -@end table - -@end deftypevar - -@deftypevar {int} rl_explicit_arg -Set to a non-zero value if an explicit numeric argument was specified by -the user. Only valid in a bindable command function. -@end deftypevar - -@deftypevar {int} rl_numeric_arg -Set to the value of any numeric argument explicitly specified by the user -before executing the current Readline function. Only valid in a bindable -command function. -@end deftypevar - -@deftypevar {int} rl_editing_mode -Set to a value denoting Readline's current editing mode. A value of -@var{1} means Readline is currently in emacs mode; @var{0} -means that vi mode is active. -@end deftypevar - - -@node Readline Convenience Functions -@section Readline Convenience Functions - -@menu -* Function Naming:: How to give a function you write a name. -* Keymaps:: Making keymaps. -* Binding Keys:: Changing Keymaps. -* Associating Function Names and Bindings:: Translate function names to - key sequences. -* Allowing Undoing:: How to make your functions undoable. -* Redisplay:: Functions to control line display. -* Modifying Text:: Functions to modify @code{rl_line_buffer}. -* Character Input:: Functions to read keyboard input. -* Terminal Management:: Functions to manage terminal settings. -* Utility Functions:: Generally useful functions and hooks. -* Miscellaneous Functions:: Functions that don't fall into any category. -* Alternate Interface:: Using Readline in a `callback' fashion. -* A Readline Example:: An example Readline function. -@end menu - -@node Function Naming -@subsection Naming a Function - -The user can dynamically change the bindings of keys while using -Readline. This is done by representing the function with a descriptive -name. The user is able to type the descriptive name when referring to -the function. Thus, in an init file, one might find - -@example -Meta-Rubout: backward-kill-word -@end example - -This binds the keystroke @key{Meta-Rubout} to the function -@emph{descriptively} named @code{backward-kill-word}. You, as the -programmer, should bind the functions you write to descriptive names as -well. Readline provides a function for doing that: - -@deftypefun int rl_add_defun (const char *name, rl_command_func_t *function, int key) -Add @var{name} to the list of named functions. Make @var{function} be -the function that gets called. If @var{key} is not -1, then bind it to -@var{function} using @code{rl_bind_key()}. -@end deftypefun - -Using this function alone is sufficient for most applications. It is -the recommended way to add a few functions to the default functions that -Readline has built in. If you need to do something other -than adding a function to Readline, you may need to use the -underlying functions described below. - -@node Keymaps -@subsection Selecting a Keymap - -Key bindings take place on a @dfn{keymap}. The keymap is the -association between the keys that the user types and the functions that -get run. You can make your own keymaps, copy existing keymaps, and tell -Readline which keymap to use. - -@deftypefun Keymap rl_make_bare_keymap (void) -Returns a new, empty keymap. The space for the keymap is allocated with -@code{malloc()}; the caller should free it by calling -@code{rl_discard_keymap()} when done. -@end deftypefun - -@deftypefun Keymap rl_copy_keymap (Keymap map) -Return a new keymap which is a copy of @var{map}. -@end deftypefun - -@deftypefun Keymap rl_make_keymap (void) -Return a new keymap with the printing characters bound to rl_insert, -the lowercase Meta characters bound to run their equivalents, and -the Meta digits bound to produce numeric arguments. -@end deftypefun - -@deftypefun void rl_discard_keymap (Keymap keymap) -Free the storage associated with @var{keymap}. -@end deftypefun - -Readline has several internal keymaps. These functions allow you to -change which keymap is active. - -@deftypefun Keymap rl_get_keymap (void) -Returns the currently active keymap. -@end deftypefun - -@deftypefun void rl_set_keymap (Keymap keymap) -Makes @var{keymap} the currently active keymap. -@end deftypefun - -@deftypefun Keymap rl_get_keymap_by_name (const char *name) -Return the keymap matching @var{name}. @var{name} is one which would -be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}). -@end deftypefun - -@deftypefun {char *} rl_get_keymap_name (Keymap keymap) -Return the name matching @var{keymap}. @var{name} is one which would -be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}). -@end deftypefun - -@node Binding Keys -@subsection Binding Keys - -Key sequences are associate with functions through the keymap. -Readline has several internal keymaps: @code{emacs_standard_keymap}, -@code{emacs_meta_keymap}, @code{emacs_ctlx_keymap}, -@code{vi_movement_keymap}, and @code{vi_insertion_keymap}. -@code{emacs_standard_keymap} is the default, and the examples in -this manual assume that. - -Since @code{readline()} installs a set of default key bindings the first -time it is called, there is always the danger that a custom binding -installed before the first call to @code{readline()} will be overridden. -An alternate mechanism is to install custom key bindings in an -initialization function assigned to the @code{rl_startup_hook} variable -(@pxref{Readline Variables}). - -These functions manage key bindings. - -@deftypefun int rl_bind_key (int key, rl_command_func_t *function) -Binds @var{key} to @var{function} in the currently active keymap. -Returns non-zero in the case of an invalid @var{key}. -@end deftypefun - -@deftypefun int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map) -Bind @var{key} to @var{function} in @var{map}. Returns non-zero in the case -of an invalid @var{key}. -@end deftypefun - -@deftypefun int rl_unbind_key (int key) -Bind @var{key} to the null function in the currently active keymap. -Returns non-zero in case of error. -@end deftypefun - -@deftypefun int rl_unbind_key_in_map (int key, Keymap map) -Bind @var{key} to the null function in @var{map}. -Returns non-zero in case of error. -@end deftypefun - -@deftypefun int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map) -Unbind all keys that execute @var{function} in @var{map}. -@end deftypefun - -@deftypefun int rl_unbind_command_in_map (const char *command, Keymap map) -Unbind all keys that are bound to @var{command} in @var{map}. -@end deftypefun - -@deftypefun int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map) -Bind the key sequence represented by the string @var{keyseq} to the function -@var{function}. This makes new keymaps as -necessary. The initial keymap in which to do bindings is @var{map}. -@end deftypefun - -@deftypefun int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map) -Bind the key sequence represented by the string @var{keyseq} to the arbitrary -pointer @var{data}. @var{type} says what kind of data is pointed to by -@var{data}; this can be a function (@code{ISFUNC}), a macro -(@code{ISMACR}), or a keymap (@code{ISKMAP}). This makes new keymaps as -necessary. The initial keymap in which to do bindings is @var{map}. -@end deftypefun - -@deftypefun int rl_parse_and_bind (char *line) -Parse @var{line} as if it had been read from the @code{inputrc} file and -perform any key bindings and variable assignments found -(@pxref{Readline Init File}). -@end deftypefun - -@deftypefun int rl_read_init_file (const char *filename) -Read keybindings and variable assignments from @var{filename} -(@pxref{Readline Init File}). -@end deftypefun - -@node Associating Function Names and Bindings -@subsection Associating Function Names and Bindings - -These functions allow you to find out what keys invoke named functions -and the functions invoked by a particular key sequence. You may also -associate a new function name with an arbitrary function. - -@deftypefun {rl_command_func_t *} rl_named_function (const char *name) -Return the function with name @var{name}. -@end deftypefun - -@deftypefun {rl_command_func_t *} rl_function_of_keyseq (const char *keyseq, Keymap map, int *type) -Return the function invoked by @var{keyseq} in keymap @var{map}. -If @var{map} is @code{NULL}, the current keymap is used. If @var{type} is -not @code{NULL}, the type of the object is returned in the @code{int} variable -it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}). -@end deftypefun - -@deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function) -Return an array of strings representing the key sequences used to -invoke @var{function} in the current keymap. -@end deftypefun - -@deftypefun {char **} rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map) -Return an array of strings representing the key sequences used to -invoke @var{function} in the keymap @var{map}. -@end deftypefun - -@deftypefun void rl_function_dumper (int readable) -Print the readline function names and the key sequences currently -bound to them to @code{rl_outstream}. If @var{readable} is non-zero, -the list is formatted in such a way that it can be made part of an -@code{inputrc} file and re-read. -@end deftypefun - -@deftypefun void rl_list_funmap_names (void) -Print the names of all bindable Readline functions to @code{rl_outstream}. -@end deftypefun - -@deftypefun {const char **} rl_funmap_names (void) -Return a NULL terminated array of known function names. The array is -sorted. The array itself is allocated, but not the strings inside. You -should @code{free()} the array when you are done, but not the pointers. -@end deftypefun - -@deftypefun int rl_add_funmap_entry (const char *name, rl_command_func_t *function) -Add @var{name} to the list of bindable Readline command names, and make -@var{function} the function to be called when @var{name} is invoked. -@end deftypefun - -@node Allowing Undoing -@subsection Allowing Undoing - -Supporting the undo command is a painless thing, and makes your -functions much more useful. It is certainly easy to try -something if you know you can undo it. - -If your function simply inserts text once, or deletes text once, and -uses @code{rl_insert_text()} or @code{rl_delete_text()} to do it, then -undoing is already done for you automatically. - -If you do multiple insertions or multiple deletions, or any combination -of these operations, you should group them together into one operation. -This is done with @code{rl_begin_undo_group()} and -@code{rl_end_undo_group()}. - -The types of events that can be undone are: - -@smallexample -enum undo_code @{ UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END @}; -@end smallexample - -Notice that @code{UNDO_DELETE} means to insert some text, and -@code{UNDO_INSERT} means to delete some text. That is, the undo code -tells what to undo, not how to undo it. @code{UNDO_BEGIN} and -@code{UNDO_END} are tags added by @code{rl_begin_undo_group()} and -@code{rl_end_undo_group()}. - -@deftypefun int rl_begin_undo_group (void) -Begins saving undo information in a group construct. The undo -information usually comes from calls to @code{rl_insert_text()} and -@code{rl_delete_text()}, but could be the result of calls to -@code{rl_add_undo()}. -@end deftypefun - -@deftypefun int rl_end_undo_group (void) -Closes the current undo group started with @code{rl_begin_undo_group -()}. There should be one call to @code{rl_end_undo_group()} -for each call to @code{rl_begin_undo_group()}. -@end deftypefun - -@deftypefun void rl_add_undo (enum undo_code what, int start, int end, char *text) -Remember how to undo an event (according to @var{what}). The affected -text runs from @var{start} to @var{end}, and encompasses @var{text}. -@end deftypefun - -@deftypefun void rl_free_undo_list (void) -Free the existing undo list. -@end deftypefun - -@deftypefun int rl_do_undo (void) -Undo the first thing on the undo list. Returns @code{0} if there was -nothing to undo, non-zero if something was undone. -@end deftypefun - -Finally, if you neither insert nor delete text, but directly modify the -existing text (e.g., change its case), call @code{rl_modifying()} -once, just before you modify the text. You must supply the indices of -the text range that you are going to modify. - -@deftypefun int rl_modifying (int start, int end) -Tell Readline to save the text between @var{start} and @var{end} as a -single undo unit. It is assumed that you will subsequently modify -that text. -@end deftypefun - -@node Redisplay -@subsection Redisplay - -@deftypefun void rl_redisplay (void) -Change what's displayed on the screen to reflect the current contents -of @code{rl_line_buffer}. -@end deftypefun - -@deftypefun int rl_forced_update_display (void) -Force the line to be updated and redisplayed, whether or not -Readline thinks the screen display is correct. -@end deftypefun - -@deftypefun int rl_on_new_line (void) -Tell the update functions that we have moved onto a new (empty) line, -usually after ouputting a newline. -@end deftypefun - -@deftypefun int rl_on_new_line_with_prompt (void) -Tell the update functions that we have moved onto a new line, with -@var{rl_prompt} already displayed. -This could be used by applications that want to output the prompt string -themselves, but still need Readline to know the prompt string length for -redisplay. -It should be used after setting @var{rl_already_prompted}. -@end deftypefun - -@deftypefun int rl_reset_line_state (void) -Reset the display state to a clean state and redisplay the current line -starting on a new line. -@end deftypefun - -@deftypefun int rl_crlf (void) -Move the cursor to the start of the next screen line. -@end deftypefun - -@deftypefun int rl_show_char (int c) -Display character @var{c} on @code{rl_outstream}. -If Readline has not been set to display meta characters directly, this -will convert meta characters to a meta-prefixed key sequence. -This is intended for use by applications which wish to do their own -redisplay. -@end deftypefun - -@deftypefun int rl_message (const char *, @dots{}) -The arguments are a format string as would be supplied to @code{printf}, -possibly containing conversion specifications such as @samp{%d}, and -any additional arguments necessary to satisfy the conversion specifications. -The resulting string is displayed in the @dfn{echo area}. The echo area -is also used to display numeric arguments and search strings. -@end deftypefun - -@deftypefun int rl_clear_message (void) -Clear the message in the echo area. -@end deftypefun - -@deftypefun void rl_save_prompt (void) -Save the local Readline prompt display state in preparation for -displaying a new message in the message area with @code{rl_message()}. -@end deftypefun - -@deftypefun void rl_restore_prompt (void) -Restore the local Readline prompt display state saved by the most -recent call to @code{rl_save_prompt}. -@end deftypefun - -@deftypefun int rl_expand_prompt (char *prompt) -Expand any special character sequences in @var{prompt} and set up the -local Readline prompt redisplay variables. -This function is called by @code{readline()}. It may also be called to -expand the primary prompt if the @code{rl_on_new_line_with_prompt()} -function or @code{rl_already_prompted} variable is used. -It returns the number of visible characters on the last line of the -(possibly multi-line) prompt. -@end deftypefun - -@deftypefun int rl_set_prompt (const char *prompt) -Make Readline use @var{prompt} for subsequent redisplay. This calls -@code{rl_expand_prompt()} to expand the prompt and sets @code{rl_prompt} -to the result. -@end deftypefun - -@node Modifying Text -@subsection Modifying Text - -@deftypefun int rl_insert_text (const char *text) -Insert @var{text} into the line at the current cursor position. -Returns the number of characters inserted. -@end deftypefun - -@deftypefun int rl_delete_text (int start, int end) -Delete the text between @var{start} and @var{end} in the current line. -Returns the number of characters deleted. -@end deftypefun - -@deftypefun {char *} rl_copy_text (int start, int end) -Return a copy of the text between @var{start} and @var{end} in -the current line. -@end deftypefun - -@deftypefun int rl_kill_text (int start, int end) -Copy the text between @var{start} and @var{end} in the current line -to the kill ring, appending or prepending to the last kill if the -last command was a kill command. The text is deleted. -If @var{start} is less than @var{end}, -the text is appended, otherwise prepended. If the last command was -not a kill, a new kill ring slot is used. -@end deftypefun - -@deftypefun int rl_push_macro_input (char *macro) -Cause @var{macro} to be inserted into the line, as if it had been invoked -by a key bound to a macro. Not especially useful; use -@code{rl_insert_text()} instead. -@end deftypefun - -@node Character Input -@subsection Character Input - -@deftypefun int rl_read_key (void) -Return the next character available from Readline's current input stream. -This handles input inserted into -the input stream via @var{rl_pending_input} (@pxref{Readline Variables}) -and @code{rl_stuff_char()}, macros, and characters read from the keyboard. -While waiting for input, this function will call any function assigned to -the @code{rl_event_hook} variable. -@end deftypefun - -@deftypefun int rl_getc (FILE *stream) -Return the next character available from @var{stream}, which is assumed to -be the keyboard. -@end deftypefun - -@deftypefun int rl_stuff_char (int c) -Insert @var{c} into the Readline input stream. It will be "read" -before Readline attempts to read characters from the terminal with -@code{rl_read_key()}. Up to 512 characters may be pushed back. -@code{rl_stuff_char} returns 1 if the character was successfully inserted; -0 otherwise. -@end deftypefun - -@deftypefun int rl_execute_next (int c) -Make @var{c} be the next command to be executed when @code{rl_read_key()} -is called. This sets @var{rl_pending_input}. -@end deftypefun - -@deftypefun int rl_clear_pending_input (void) -Unset @var{rl_pending_input}, effectively negating the effect of any -previous call to @code{rl_execute_next()}. This works only if the -pending input has not already been read with @code{rl_read_key()}. -@end deftypefun - -@deftypefun int rl_set_keyboard_input_timeout (int u) -While waiting for keyboard input in @code{rl_read_key()}, Readline will -wait for @var{u} microseconds for input before calling any function -assigned to @code{rl_event_hook}. The default waiting period is -one-tenth of a second. Returns the old timeout value. -@end deftypefun - -@node Terminal Management -@subsection Terminal Management - -@deftypefun void rl_prep_terminal (int meta_flag) -Modify the terminal settings for Readline's use, so @code{readline()} -can read a single character at a time from the keyboard. -The @var{meta_flag} argument should be non-zero if Readline should -read eight-bit input. -@end deftypefun - -@deftypefun void rl_deprep_terminal (void) -Undo the effects of @code{rl_prep_terminal()}, leaving the terminal in -the state in which it was before the most recent call to -@code{rl_prep_terminal()}. -@end deftypefun - -@deftypefun void rl_tty_set_default_bindings (Keymap kmap) -Read the operating system's terminal editing characters (as would be displayed -by @code{stty}) to their Readline equivalents. The bindings are performed -in @var{kmap}. -@end deftypefun - -@deftypefun int rl_reset_terminal (const char *terminal_name) -Reinitialize Readline's idea of the terminal settings using -@var{terminal_name} as the terminal type (e.g., @code{vt100}). -If @var{terminal_name} is @code{NULL}, the value of the @code{TERM} -environment variable is used. -@end deftypefun - -@node Utility Functions -@subsection Utility Functions - -@deftypefun void rl_replace_line (const char *text, int clear_undo) -Replace the contents of @code{rl_line_buffer} with @var{text}. -The point and mark are preserved, if possible. -If @var{clear_undo} is non-zero, the undo list associated with the -current line is cleared. -@end deftypefun - -@deftypefun int rl_extend_line_buffer (int len) -Ensure that @code{rl_line_buffer} has enough space to hold @var{len} -characters, possibly reallocating it if necessary. -@end deftypefun - -@deftypefun int rl_initialize (void) -Initialize or re-initialize Readline's internal state. -It's not strictly necessary to call this; @code{readline()} calls it before -reading any input. -@end deftypefun - -@deftypefun int rl_ding (void) -Ring the terminal bell, obeying the setting of @code{bell-style}. -@end deftypefun - -@deftypefun int rl_alphabetic (int c) -Return 1 if @var{c} is an alphabetic character. -@end deftypefun - -@deftypefun void rl_display_match_list (char **matches, int len, int max) -A convenience function for displaying a list of strings in -columnar format on Readline's output stream. @code{matches} is the list -of strings, in argv format, such as a list of completion matches. -@code{len} is the number of strings in @code{matches}, and @code{max} -is the length of the longest string in @code{matches}. This function uses -the setting of @code{print-completions-horizontally} to select how the -matches are displayed (@pxref{Readline Init File Syntax}). -@end deftypefun - -The following are implemented as macros, defined in @code{chardefs.h}. -Applications should refrain from using them. - -@deftypefun int _rl_uppercase_p (int c) -Return 1 if @var{c} is an uppercase alphabetic character. -@end deftypefun - -@deftypefun int _rl_lowercase_p (int c) -Return 1 if @var{c} is a lowercase alphabetic character. -@end deftypefun - -@deftypefun int _rl_digit_p (int c) -Return 1 if @var{c} is a numeric character. -@end deftypefun - -@deftypefun int _rl_to_upper (int c) -If @var{c} is a lowercase alphabetic character, return the corresponding -uppercase character. -@end deftypefun - -@deftypefun int _rl_to_lower (int c) -If @var{c} is an uppercase alphabetic character, return the corresponding -lowercase character. -@end deftypefun - -@deftypefun int _rl_digit_value (int c) -If @var{c} is a number, return the value it represents. -@end deftypefun - -@node Miscellaneous Functions -@subsection Miscellaneous Functions - -@deftypefun int rl_macro_bind (const char *keyseq, const char *macro, Keymap map) -Bind the key sequence @var{keyseq} to invoke the macro @var{macro}. -The binding is performed in @var{map}. When @var{keyseq} is invoked, the -@var{macro} will be inserted into the line. This function is deprecated; -use @code{rl_generic_bind()} instead. -@end deftypefun - -@deftypefun void rl_macro_dumper (int readable) -Print the key sequences bound to macros and their values, using -the current keymap, to @code{rl_outstream}. -If @var{readable} is non-zero, the list is formatted in such a way -that it can be made part of an @code{inputrc} file and re-read. -@end deftypefun - -@deftypefun int rl_variable_bind (const char *variable, const char *value) -Make the Readline variable @var{variable} have @var{value}. -This behaves as if the readline command -@samp{set @var{variable} @var{value}} had been executed in an @code{inputrc} -file (@pxref{Readline Init File Syntax}). -@end deftypefun - -@deftypefun void rl_variable_dumper (int readable) -Print the readline variable names and their current values -to @code{rl_outstream}. -If @var{readable} is non-zero, the list is formatted in such a way -that it can be made part of an @code{inputrc} file and re-read. -@end deftypefun - -@deftypefun int rl_set_paren_blink_timeout (int u) -Set the time interval (in microseconds) that Readline waits when showing -a balancing character when @code{blink-matching-paren} has been enabled. -@end deftypefun - -@deftypefun {char *} rl_get_termcap (const char *cap) -Retrieve the string value of the termcap capability @var{cap}. -Readline fetches the termcap entry for the current terminal name and -uses those capabilities to move around the screen line and perform other -terminal-specific operations, like erasing a line. Readline does not -use all of a terminal's capabilities, and this function will return -values for only those capabilities Readline uses. -@end deftypefun - -@node Alternate Interface -@subsection Alternate Interface - -An alternate interface is available to plain @code{readline()}. Some -applications need to interleave keyboard I/O with file, device, or -window system I/O, typically by using a main loop to @code{select()} -on various file descriptors. To accomodate this need, readline can -also be invoked as a `callback' function from an event loop. There -are functions available to make this easy. - -@deftypefun void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler) -Set up the terminal for readline I/O and display the initial -expanded value of @var{prompt}. Save the value of @var{lhandler} to -use as a function to call when a complete line of input has been entered. -The function takes the text of the line as an argument. -@end deftypefun - -@deftypefun void rl_callback_read_char (void) -Whenever an application determines that keyboard input is available, it -should call @code{rl_callback_read_char()}, which will read the next -character from the current input source. -If that character completes the line, @code{rl_callback_read_char} will -invoke the @var{lhandler} function saved by @code{rl_callback_handler_install} -to process the line. -Before calling the @var{lhandler} function, the terminal settings are -reset to the values they had before calling -@code{rl_callback_handler_install}. -If the @var{lhandler} function returns, -the terminal settings are modified for Readline's use again. -@code{EOF} is indicated by calling @var{lhandler} with a -@code{NULL} line. -@end deftypefun - -@deftypefun void rl_callback_handler_remove (void) -Restore the terminal to its initial state and remove the line handler. -This may be called from within a callback as well as independently. -If the @var{lhandler} installed by @code{rl_callback_handler_install} -does not exit the program, either this function or the function referred -to by the value of @code{rl_deprep_term_function} should be called before -the program exits to reset the terminal settings. -@end deftypefun - -@node A Readline Example -@subsection A Readline Example - -Here is a function which changes lowercase characters to their uppercase -equivalents, and uppercase characters to lowercase. If -this function was bound to @samp{M-c}, then typing @samp{M-c} would -change the case of the character under point. Typing @samp{M-1 0 M-c} -would change the case of the following 10 characters, leaving the cursor on -the last character changed. - -@example -/* Invert the case of the COUNT following characters. */ -int -invert_case_line (count, key) - int count, key; -@{ - register int start, end, i; - - start = rl_point; - - if (rl_point >= rl_end) - return (0); - - if (count < 0) - @{ - direction = -1; - count = -count; - @} - else - direction = 1; - - /* Find the end of the range to modify. */ - end = start + (count * direction); - - /* Force it to be within range. */ - if (end > rl_end) - end = rl_end; - else if (end < 0) - end = 0; - - if (start == end) - return (0); - - if (start > end) - @{ - int temp = start; - start = end; - end = temp; - @} - - /* Tell readline that we are modifying the line, - so it will save the undo information. */ - rl_modifying (start, end); - - for (i = start; i != end; i++) - @{ - if (_rl_uppercase_p (rl_line_buffer[i])) - rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]); - else if (_rl_lowercase_p (rl_line_buffer[i])) - rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]); - @} - /* Move point to on top of the last character changed. */ - rl_point = (direction == 1) ? end - 1 : start; - return (0); -@} -@end example - -@node Readline Signal Handling -@section Readline Signal Handling - -Signals are asynchronous events sent to a process by the Unix kernel, -sometimes on behalf of another process. They are intended to indicate -exceptional events, like a user pressing the interrupt key on his terminal, -or a network connection being broken. There is a class of signals that can -be sent to the process currently reading input from the keyboard. Since -Readline changes the terminal attributes when it is called, it needs to -perform special processing when such a signal is received in order to -restore the terminal to a sane state, or provide application writers with -functions to do so manually. - -Readline contains an internal signal handler that is installed for a -number of signals (@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, -@code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}). -When one of these signals is received, the signal handler -will reset the terminal attributes to those that were in effect before -@code{readline()} was called, reset the signal handling to what it was -before @code{readline()} was called, and resend the signal to the calling -application. -If and when the calling application's signal handler returns, Readline -will reinitialize the terminal and continue to accept input. -When a @code{SIGINT} is received, the Readline signal handler performs -some additional work, which will cause any partially-entered line to be -aborted (see the description of @code{rl_free_line_state()} below). - -There is an additional Readline signal handler, for @code{SIGWINCH}, which -the kernel sends to a process whenever the terminal's size changes (for -example, if a user resizes an @code{xterm}). The Readline @code{SIGWINCH} -handler updates Readline's internal screen size information, and then calls -any @code{SIGWINCH} signal handler the calling application has installed. -Readline calls the application's @code{SIGWINCH} signal handler without -resetting the terminal to its original state. If the application's signal -handler does more than update its idea of the terminal size and return (for -example, a @code{longjmp} back to a main processing loop), it @emph{must} -call @code{rl_cleanup_after_signal()} (described below), to restore the -terminal state. - -Readline provides two variables that allow application writers to -control whether or not it will catch certain signals and act on them -when they are received. It is important that applications change the -values of these variables only when calling @code{readline()}, not in -a signal handler, so Readline's internal signal state is not corrupted. - -@deftypevar int rl_catch_signals -If this variable is non-zero, Readline will install signal handlers for -@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, @code{SIGALRM}, -@code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}. - -The default value of @code{rl_catch_signals} is 1. -@end deftypevar - -@deftypevar int rl_catch_sigwinch -If this variable is non-zero, Readline will install a signal handler for -@code{SIGWINCH}. - -The default value of @code{rl_catch_sigwinch} is 1. -@end deftypevar - -If an application does not wish to have Readline catch any signals, or -to handle signals other than those Readline catches (@code{SIGHUP}, -for example), -Readline provides convenience functions to do the necessary terminal -and internal state cleanup upon receipt of a signal. - -@deftypefun void rl_cleanup_after_signal (void) -This function will reset the state of the terminal to what it was before -@code{readline()} was called, and remove the Readline signal handlers for -all signals, depending on the values of @code{rl_catch_signals} and -@code{rl_catch_sigwinch}. -@end deftypefun - -@deftypefun void rl_free_line_state (void) -This will free any partial state associated with the current input line -(undo information, any partial history entry, any partially-entered -keyboard macro, and any partially-entered numeric argument). This -should be called before @code{rl_cleanup_after_signal()}. The -Readline signal handler for @code{SIGINT} calls this to abort the -current input line. -@end deftypefun - -@deftypefun void rl_reset_after_signal (void) -This will reinitialize the terminal and reinstall any Readline signal -handlers, depending on the values of @code{rl_catch_signals} and -@code{rl_catch_sigwinch}. -@end deftypefun - -If an application does not wish Readline to catch @code{SIGWINCH}, it may -call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force -Readline to update its idea of the terminal size when a @code{SIGWINCH} -is received. - -@deftypefun void rl_resize_terminal (void) -Update Readline's internal screen size by reading values from the kernel. -@end deftypefun - -@deftypefun void rl_set_screen_size (int rows, int cols) -Set Readline's idea of the terminal size to @var{rows} rows and -@var{cols} columns. -@end deftypefun - -If an application does not want to install a @code{SIGWINCH} handler, but -is still interested in the screen dimensions, Readline's idea of the screen -size may be queried. - -@deftypefun void rl_get_screen_size (int *rows, int *cols) -Return Readline's idea of the terminal's size in the -variables pointed to by the arguments. -@end deftypefun - -The following functions install and remove Readline's signal handlers. - -@deftypefun int rl_set_signals (void) -Install Readline's signal handler for @code{SIGINT}, @code{SIGQUIT}, -@code{SIGTERM}, @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, -@code{SIGTTOU}, and @code{SIGWINCH}, depending on the values of -@code{rl_catch_signals} and @code{rl_catch_sigwinch}. -@end deftypefun - -@deftypefun int rl_clear_signals (void) -Remove all of the Readline signal handlers installed by -@code{rl_set_signals()}. -@end deftypefun - -@node Custom Completers -@section Custom Completers - -Typically, a program that reads commands from the user has a way of -disambiguating commands and data. If your program is one of these, then -it can provide completion for commands, data, or both. -The following sections describe how your program and Readline -cooperate to provide this service. - -@menu -* How Completing Works:: The logic used to do completion. -* Completion Functions:: Functions provided by Readline. -* Completion Variables:: Variables which control completion. -* A Short Completion Example:: An example of writing completer subroutines. -@end menu - -@node How Completing Works -@subsection How Completing Works - -In order to complete some text, the full list of possible completions -must be available. That is, it is not possible to accurately -expand a partial word without knowing all of the possible words -which make sense in that context. The Readline library provides -the user interface to completion, and two of the most common -completion functions: filename and username. For completing other types -of text, you must write your own completion function. This section -describes exactly what such functions must do, and provides an example. - -There are three major functions used to perform completion: - -@enumerate -@item -The user-interface function @code{rl_complete()}. This function is -called with the same arguments as other bindable Readline functions: -@var{count} and @var{invoking_key}. -It isolates the word to be completed and calls -@code{rl_completion_matches()} to generate a list of possible completions. -It then either lists the possible completions, inserts the possible -completions, or actually performs the -completion, depending on which behavior is desired. - -@item -The internal function @code{rl_completion_matches()} uses an -application-supplied @dfn{generator} function to generate the list of -possible matches, and then returns the array of these matches. -The caller should place the address of its generator function in -@code{rl_completion_entry_function}. - -@item -The generator function is called repeatedly from -@code{rl_completion_matches()}, returning a string each time. The -arguments to the generator function are @var{text} and @var{state}. -@var{text} is the partial word to be completed. @var{state} is zero the -first time the function is called, allowing the generator to perform -any necessary initialization, and a positive non-zero integer for -each subsequent call. The generator function returns -@code{(char *)NULL} to inform @code{rl_completion_matches()} that there are -no more possibilities left. Usually the generator function computes the -list of possible completions when @var{state} is zero, and returns them -one at a time on subsequent calls. Each string the generator function -returns as a match must be allocated with @code{malloc()}; Readline -frees the strings when it has finished with them. - -@end enumerate - -@deftypefun int rl_complete (int ignore, int invoking_key) -Complete the word at or before point. You have supplied the function -that does the initial simple matching selection algorithm (see -@code{rl_completion_matches()}). The default is to do filename completion. -@end deftypefun - -@deftypevar {rl_compentry_func_t *} rl_completion_entry_function -This is a pointer to the generator function for -@code{rl_completion_matches()}. -If the value of @code{rl_completion_entry_function} is -@code{NULL} then the default filename generator -function, @code{rl_filename_completion_function()}, is used. -@end deftypevar - -@node Completion Functions -@subsection Completion Functions - -Here is the complete list of callable completion functions present in -Readline. - -@deftypefun int rl_complete_internal (int what_to_do) -Complete the word at or before point. @var{what_to_do} says what to do -with the completion. A value of @samp{?} means list the possible -completions. @samp{TAB} means do standard completion. @samp{*} means -insert all of the possible completions. @samp{!} means to display -all of the possible completions, if there is more than one, as well as -performing partial completion. -@end deftypefun - -@deftypefun int rl_complete (int ignore, int invoking_key) -Complete the word at or before point. You have supplied the function -that does the initial simple matching selection algorithm (see -@code{rl_completion_matches()} and @code{rl_completion_entry_function}). -The default is to do filename -completion. This calls @code{rl_complete_internal()} with an -argument depending on @var{invoking_key}. -@end deftypefun - -@deftypefun int rl_possible_completions (int count, int invoking_key) -List the possible completions. See description of @code{rl_complete -()}. This calls @code{rl_complete_internal()} with an argument of -@samp{?}. -@end deftypefun - -@deftypefun int rl_insert_completions (int count, int invoking_key) -Insert the list of possible completions into the line, deleting the -partially-completed word. See description of @code{rl_complete()}. -This calls @code{rl_complete_internal()} with an argument of @samp{*}. -@end deftypefun - -@deftypefun int rl_completion_mode (rl_command_func_t *cfunc) -Returns the apppriate value to pass to @code{rl_complete_internal()} -depending on whether @var{cfunc} was called twice in succession and -the value of the @code{show-all-if-ambiguous} variable. -Application-specific completion functions may use this function to present -the same interface as @code{rl_complete()}. -@end deftypefun - -@deftypefun {char **} rl_completion_matches (const char *text, rl_compentry_func_t *entry_func) -Returns an array of strings which is a list of completions for -@var{text}. If there are no completions, returns @code{NULL}. -The first entry in the returned array is the substitution for @var{text}. -The remaining entries are the possible completions. The array is -terminated with a @code{NULL} pointer. - -@var{entry_func} is a function of two args, and returns a -@code{char *}. The first argument is @var{text}. The second is a -state argument; it is zero on the first call, and non-zero on subsequent -calls. @var{entry_func} returns a @code{NULL} pointer to the caller -when there are no more matches. -@end deftypefun - -@deftypefun {char *} rl_filename_completion_function (const char *text, int state) -A generator function for filename completion in the general case. -@var{text} is a partial filename. -The Bash source is a useful reference for writing custom -completion functions (the Bash completion functions call this and other -Readline functions). -@end deftypefun - -@deftypefun {char *} rl_username_completion_function (const char *text, int state) -A completion generator for usernames. @var{text} contains a partial -username preceded by a random character (usually @samp{~}). As with all -completion generators, @var{state} is zero on the first call and non-zero -for subsequent calls. -@end deftypefun - -@node Completion Variables -@subsection Completion Variables - -@deftypevar {rl_compentry_func_t *} rl_completion_entry_function -A pointer to the generator function for @code{rl_completion_matches()}. -@code{NULL} means to use @code{rl_filename_completion_function()}, the default -filename completer. -@end deftypevar - -@deftypevar {rl_completion_func_t *} rl_attempted_completion_function -A pointer to an alternative function to create matches. -The function is called with @var{text}, @var{start}, and @var{end}. -@var{start} and @var{end} are indices in @code{rl_line_buffer} defining -the boundaries of @var{text}, which is a character string. -If this function exists and returns @code{NULL}, or if this variable is -set to @code{NULL}, then @code{rl_complete()} will call the value of -@code{rl_completion_entry_function} to generate matches, otherwise the -array of strings returned will be used. -If this function sets the @code{rl_attempted_completion_over} -variable to a non-zero value, Readline will not perform its default -completion even if this function returns no matches. -@end deftypevar - -@deftypevar {rl_quote_func_t *} rl_filename_quoting_function -A pointer to a function that will quote a filename in an -application-specific fashion. This is called if filename completion is being -attempted and one of the characters in @code{rl_filename_quote_characters} -appears in a completed filename. The function is called with -@var{text}, @var{match_type}, and @var{quote_pointer}. The @var{text} -is the filename to be quoted. The @var{match_type} is either -@code{SINGLE_MATCH}, if there is only one completion match, or -@code{MULT_MATCH}. Some functions use this to decide whether or not to -insert a closing quote character. The @var{quote_pointer} is a pointer -to any opening quote character the user typed. Some functions choose -to reset this character. -@end deftypevar - -@deftypevar {rl_dequote_func_t *} rl_filename_dequoting_function -A pointer to a function that will remove application-specific quoting -characters from a filename before completion is attempted, so those -characters do not interfere with matching the text against names in -the filesystem. It is called with @var{text}, the text of the word -to be dequoted, and @var{quote_char}, which is the quoting character -that delimits the filename (usually @samp{'} or @samp{"}). If -@var{quote_char} is zero, the filename was not in an embedded string. -@end deftypevar - -@deftypevar {rl_linebuf_func_t *} rl_char_is_quoted_p -A pointer to a function to call that determines whether or not a specific -character in the line buffer is quoted, according to whatever quoting -mechanism the program calling Readline uses. The function is called with -two arguments: @var{text}, the text of the line, and @var{index}, the -index of the character in the line. It is used to decide whether a -character found in @code{rl_completer_word_break_characters} should be -used to break words for the completer. -@end deftypevar - -@deftypevar {rl_compignore_func_t *} rl_ignore_some_completions_function -This function, if defined, is called by the completer when real filename -completion is done, after all the matching names have been generated. -It is passed a @code{NULL} terminated array of matches. -The first element (@code{matches[0]}) is the -maximal substring common to all matches. This function can -re-arrange the list of matches as required, but each element deleted -from the array must be freed. -@end deftypevar - -@deftypevar {rl_icppfunc_t *} rl_directory_completion_hook -This function, if defined, is allowed to modify the directory portion -of filenames Readline completes. It is called with the address of a -string (the current directory name) as an argument, and may modify that string. -If the string is replaced with a new string, the old value should be freed. -Any modified directory name should have a trailing slash. -The modified value will be displayed as part of the completion, replacing -the directory portion of the pathname the user typed. -It returns an integer that should be non-zero if the function modifies -its directory argument. -It could be used to expand symbolic links or shell variables in pathnames. -@end deftypevar - -@deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook -If non-zero, then this is the address of a function to call when -completing a word would normally display the list of possible matches. -This function is called in lieu of Readline displaying the list. -It takes three arguments: -(@code{char **}@var{matches}, @code{int} @var{num_matches}, @code{int} @var{max_length}) -where @var{matches} is the array of matching strings, -@var{num_matches} is the number of strings in that array, and -@var{max_length} is the length of the longest string in that array. -Readline provides a convenience function, @code{rl_display_match_list}, -that takes care of doing the display to Readline's output stream. That -function may be called from this hook. -@end deftypevar - -@deftypevar {const char *} rl_basic_word_break_characters -The basic list of characters that signal a break between words for the -completer routine. The default value of this variable is the characters -which break words for completion in Bash: -@code{" \t\n\"\\'`@@$><=;|&@{("}. -@end deftypevar - -@deftypevar {const char *} rl_basic_quote_characters -A list of quote characters which can cause a word break. -@end deftypevar - -@deftypevar {const char *} rl_completer_word_break_characters -The list of characters that signal a break between words for -@code{rl_complete_internal()}. The default list is the value of -@code{rl_basic_word_break_characters}. -@end deftypevar - -@deftypevar {const char *} rl_completer_quote_characters -A list of characters which can be used to quote a substring of the line. -Completion occurs on the entire substring, and within the substring -@code{rl_completer_word_break_characters} are treated as any other character, -unless they also appear within this list. -@end deftypevar - -@deftypevar {const char *} rl_filename_quote_characters -A list of characters that cause a filename to be quoted by the completer -when they appear in a completed filename. The default is the null string. -@end deftypevar - -@deftypevar {const char *} rl_special_prefixes -The list of characters that are word break characters, but should be -left in @var{text} when it is passed to the completion function. -Programs can use this to help determine what kind of completing to do. -For instance, Bash sets this variable to "$@@" so that it can complete -shell variables and hostnames. -@end deftypevar - -@deftypevar int rl_completion_query_items -Up to this many items will be displayed in response to a -possible-completions call. After that, we ask the user if she is sure -she wants to see them all. The default value is 100. -@end deftypevar - -@deftypevar {int} rl_completion_append_character -When a single completion alternative matches at the end of the command -line, this character is appended to the inserted completion text. The -default is a space character (@samp{ }). Setting this to the null -character (@samp{\0}) prevents anything being appended automatically. -This can be changed in custom completion functions to -provide the ``most sensible word separator character'' according to -an application-specific command line syntax specification. -@end deftypevar - -@deftypevar int rl_completion_suppress_append -If non-zero, @var{rl_completion_append_character} is not appended to -matches at the end of the command line, as described above. It is -set to 0 before any application-specific completion function is called. -@end deftypevar - -@deftypevar int rl_completion_mark_symlink_dirs -If non-zero, a slash will be appended to completed filenames that are -symbolic links to directory names, subject to the value of the -user-settable @var{mark-directories} variable. -This variable exists so that application completion functions can -override the user's global preference (set via the -@var{mark-symlinked-directories} Readline variable) if appropriate. -This variable is set to the user's preference before any -application completion function is called, so unless that function -modifies the value, the user's preferences are honored. -@end deftypevar - -@deftypevar int rl_ignore_completion_duplicates -If non-zero, then duplicates in the matches are removed. -The default is 1. -@end deftypevar - -@deftypevar int rl_filename_completion_desired -Non-zero means that the results of the matches are to be treated as -filenames. This is @emph{always} zero on entry, and can only be changed -within a completion entry generator function. If it is set to a non-zero -value, directory names have a slash appended and Readline attempts to -quote completed filenames if they contain any characters in -@code{rl_filename_quote_characters} and @code{rl_filename_quoting_desired} -is set to a non-zero value. -@end deftypevar - -@deftypevar int rl_filename_quoting_desired -Non-zero means that the results of the matches are to be quoted using -double quotes (or an application-specific quoting mechanism) if the -completed filename contains any characters in -@code{rl_filename_quote_chars}. This is @emph{always} non-zero -on entry, and can only be changed within a completion entry generator -function. The quoting is effected via a call to the function pointed to -by @code{rl_filename_quoting_function}. -@end deftypevar - -@deftypevar int rl_attempted_completion_over -If an application-specific completion function assigned to -@code{rl_attempted_completion_function} sets this variable to a non-zero -value, Readline will not perform its default filename completion even -if the application's completion function returns no matches. -It should be set only by an application's completion function. -@end deftypevar - -@deftypevar int rl_completion_type -Set to a character describing the type of completion Readline is currently -attempting; see the description of @code{rl_complete_internal()} -(@pxref{Completion Functions}) for the list of characters. -@end deftypevar - -@deftypevar int rl_inhibit_completion -If this variable is non-zero, completion is inhibited. The completion -character will be inserted as any other bound to @code{self-insert}. -@end deftypevar - -@node A Short Completion Example -@subsection A Short Completion Example - -Here is a small application demonstrating the use of the GNU Readline -library. It is called @code{fileman}, and the source code resides in -@file{examples/fileman.c}. This sample application provides -completion of command names, line editing features, and access to the -history list. - -@page -@smallexample -/* fileman.c -- A tiny application which demonstrates how to use the - GNU Readline library. This application interactively allows users - to manipulate files and their modes. */ - -#include -#include -#include -#include -#include - -#include -#include - -extern char *xmalloc (); - -/* The names of functions that actually do the manipulation. */ -int com_list __P((char *)); -int com_view __P((char *)); -int com_rename __P((char *)); -int com_stat __P((char *)); -int com_pwd __P((char *)); -int com_delete __P((char *)); -int com_help __P((char *)); -int com_cd __P((char *)); -int com_quit __P((char *)); - -/* A structure which contains information on the commands this program - can understand. */ - -typedef struct @{ - char *name; /* User printable name of the function. */ - rl_icpfunc_t *func; /* Function to call to do the job. */ - char *doc; /* Documentation for this function. */ -@} COMMAND; - -COMMAND commands[] = @{ - @{ "cd", com_cd, "Change to directory DIR" @}, - @{ "delete", com_delete, "Delete FILE" @}, - @{ "help", com_help, "Display this text" @}, - @{ "?", com_help, "Synonym for `help'" @}, - @{ "list", com_list, "List files in DIR" @}, - @{ "ls", com_list, "Synonym for `list'" @}, - @{ "pwd", com_pwd, "Print the current working directory" @}, - @{ "quit", com_quit, "Quit using Fileman" @}, - @{ "rename", com_rename, "Rename FILE to NEWNAME" @}, - @{ "stat", com_stat, "Print out statistics on FILE" @}, - @{ "view", com_view, "View the contents of FILE" @}, - @{ (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL @} -@}; - -/* Forward declarations. */ -char *stripwhite (); -COMMAND *find_command (); - -/* The name of this program, as taken from argv[0]. */ -char *progname; - -/* When non-zero, this means the user is done using this program. */ -int done; - -char * -dupstr (s) - int s; -@{ - char *r; - - r = xmalloc (strlen (s) + 1); - strcpy (r, s); - return (r); -@} - -main (argc, argv) - int argc; - char **argv; -@{ - char *line, *s; - - progname = argv[0]; - - initialize_readline (); /* Bind our completer. */ - - /* Loop reading and executing lines until the user quits. */ - for ( ; done == 0; ) - @{ - line = readline ("FileMan: "); - - if (!line) - break; - - /* Remove leading and trailing whitespace from the line. - Then, if there is anything left, add it to the history list - and execute it. */ - s = stripwhite (line); - - if (*s) - @{ - add_history (s); - execute_line (s); - @} - - free (line); - @} - exit (0); -@} - -/* Execute a command line. */ -int -execute_line (line) - char *line; -@{ - register int i; - COMMAND *command; - char *word; - - /* Isolate the command word. */ - i = 0; - while (line[i] && whitespace (line[i])) - i++; - word = line + i; - - while (line[i] && !whitespace (line[i])) - i++; - - if (line[i]) - line[i++] = '\0'; - - command = find_command (word); - - if (!command) - @{ - fprintf (stderr, "%s: No such command for FileMan.\n", word); - return (-1); - @} - - /* Get argument to command, if any. */ - while (whitespace (line[i])) - i++; - - word = line + i; - - /* Call the function. */ - return ((*(command->func)) (word)); -@} - -/* Look up NAME as the name of a command, and return a pointer to that - command. Return a NULL pointer if NAME isn't a command name. */ -COMMAND * -find_command (name) - char *name; -@{ - register int i; - - for (i = 0; commands[i].name; i++) - if (strcmp (name, commands[i].name) == 0) - return (&commands[i]); - - return ((COMMAND *)NULL); -@} - -/* Strip whitespace from the start and end of STRING. Return a pointer - into STRING. */ -char * -stripwhite (string) - char *string; -@{ - register char *s, *t; - - for (s = string; whitespace (*s); s++) - ; - - if (*s == 0) - return (s); - - t = s + strlen (s) - 1; - while (t > s && whitespace (*t)) - t--; - *++t = '\0'; - - return s; -@} - -/* **************************************************************** */ -/* */ -/* Interface to Readline Completion */ -/* */ -/* **************************************************************** */ - -char *command_generator __P((const char *, int)); -char **fileman_completion __P((const char *, int, int)); - -/* Tell the GNU Readline library how to complete. We want to try to - complete on command names if this is the first word in the line, or - on filenames if not. */ -initialize_readline () -@{ - /* Allow conditional parsing of the ~/.inputrc file. */ - rl_readline_name = "FileMan"; - - /* Tell the completer that we want a crack first. */ - rl_attempted_completion_function = fileman_completion; -@} - -/* Attempt to complete on the contents of TEXT. START and END - bound the region of rl_line_buffer that contains the word to - complete. TEXT is the word to complete. We can use the entire - contents of rl_line_buffer in case we want to do some simple - parsing. Returnthe array of matches, or NULL if there aren't any. */ -char ** -fileman_completion (text, start, end) - const char *text; - int start, end; -@{ - char **matches; - - matches = (char **)NULL; - - /* If this word is at the start of the line, then it is a command - to complete. Otherwise it is the name of a file in the current - directory. */ - if (start == 0) - matches = rl_completion_matches (text, command_generator); - - return (matches); -@} - -/* Generator function for command completion. STATE lets us - know whether to start from scratch; without any state - (i.e. STATE == 0), then we start at the top of the list. */ -char * -command_generator (text, state) - const char *text; - int state; -@{ - static int list_index, len; - char *name; - - /* If this is a new word to complete, initialize now. This - includes saving the length of TEXT for efficiency, and - initializing the index variable to 0. */ - if (!state) - @{ - list_index = 0; - len = strlen (text); - @} - - /* Return the next name which partially matches from the - command list. */ - while (name = commands[list_index].name) - @{ - list_index++; - - if (strncmp (name, text, len) == 0) - return (dupstr(name)); - @} - - /* If no names matched, then return NULL. */ - return ((char *)NULL); -@} - -/* **************************************************************** */ -/* */ -/* FileMan Commands */ -/* */ -/* **************************************************************** */ - -/* String to pass to system (). This is for the LIST, VIEW and RENAME - commands. */ -static char syscom[1024]; - -/* List the file(s) named in arg. */ -com_list (arg) - char *arg; -@{ - if (!arg) - arg = ""; - - sprintf (syscom, "ls -FClg %s", arg); - return (system (syscom)); -@} - -com_view (arg) - char *arg; -@{ - if (!valid_argument ("view", arg)) - return 1; - - sprintf (syscom, "more %s", arg); - return (system (syscom)); -@} - -com_rename (arg) - char *arg; -@{ - too_dangerous ("rename"); - return (1); -@} - -com_stat (arg) - char *arg; -@{ - struct stat finfo; - - if (!valid_argument ("stat", arg)) - return (1); - - if (stat (arg, &finfo) == -1) - @{ - perror (arg); - return (1); - @} - - printf ("Statistics for `%s':\n", arg); - - printf ("%s has %d link%s, and is %d byte%s in length.\n", arg, - finfo.st_nlink, - (finfo.st_nlink == 1) ? "" : "s", - finfo.st_size, - (finfo.st_size == 1) ? "" : "s"); - printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime)); - printf (" Last access at: %s", ctime (&finfo.st_atime)); - printf (" Last modified at: %s", ctime (&finfo.st_mtime)); - return (0); -@} - -com_delete (arg) - char *arg; -@{ - too_dangerous ("delete"); - return (1); -@} - -/* Print out help for ARG, or for all of the commands if ARG is - not present. */ -com_help (arg) - char *arg; -@{ - register int i; - int printed = 0; - - for (i = 0; commands[i].name; i++) - @{ - if (!*arg || (strcmp (arg, commands[i].name) == 0)) - @{ - printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc); - printed++; - @} - @} - - if (!printed) - @{ - printf ("No commands match `%s'. Possibilties are:\n", arg); - - for (i = 0; commands[i].name; i++) - @{ - /* Print in six columns. */ - if (printed == 6) - @{ - printed = 0; - printf ("\n"); - @} - - printf ("%s\t", commands[i].name); - printed++; - @} - - if (printed) - printf ("\n"); - @} - return (0); -@} - -/* Change to the directory ARG. */ -com_cd (arg) - char *arg; -@{ - if (chdir (arg) == -1) - @{ - perror (arg); - return 1; - @} - - com_pwd (""); - return (0); -@} - -/* Print out the current working directory. */ -com_pwd (ignore) - char *ignore; -@{ - char dir[1024], *s; - - s = getcwd (dir, sizeof(dir) - 1); - if (s == 0) - @{ - printf ("Error getting pwd: %s\n", dir); - return 1; - @} - - printf ("Current directory is %s\n", dir); - return 0; -@} - -/* The user wishes to quit using this program. Just set DONE - non-zero. */ -com_quit (arg) - char *arg; -@{ - done = 1; - return (0); -@} - -/* Function which tells you that you can't do this. */ -too_dangerous (caller) - char *caller; -@{ - fprintf (stderr, - "%s: Too dangerous for me to distribute.\n" - caller); - fprintf (stderr, "Write it yourself.\n"); -@} - -/* Return non-zero if ARG is a valid argument for CALLER, - else print an error message and return zero. */ -int -valid_argument (caller, arg) - char *caller, *arg; -@{ - if (!arg || !*arg) - @{ - fprintf (stderr, "%s: Argument required.\n", caller); - return (0); - @} - - return (1); -@} -@end smallexample diff --git a/lib/readline/doc/rluser.texinfo b/lib/readline/doc/rluser.texinfo deleted file mode 100644 index 94f851e67..000000000 --- a/lib/readline/doc/rluser.texinfo +++ /dev/null @@ -1,1796 +0,0 @@ -@comment %**start of header (This is for running Texinfo on a region.) -@setfilename rluser.info -@comment %**end of header (This is for running Texinfo on a region.) -@setchapternewpage odd - -@ignore -This file documents the end user interface to the GNU command line -editing features. It is to be an appendix to manuals for programs which -use these features. There is a document entitled "readline.texinfo" -which contains both end-user and programmer documentation for the -GNU Readline Library. - -Copyright (C) 1988-2002 Free Software Foundation, Inc. - -Authored by Brian Fox and Chet Ramey. - -Permission is granted to process this file through Tex and print the -results, provided the printed document carries copying permission notice -identical to this one except for the removal of this paragraph (this -paragraph not being relevant to the printed manual). - -Permission is granted to make and distribute verbatim copies of this manual -provided the copyright notice and this permission notice are preserved on -all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided also that the -GNU Copyright statement is available to the distributee, and provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions. -@end ignore - -@comment If you are including this manual as an appendix, then set the -@comment variable readline-appendix. - -@ifclear BashFeatures -@defcodeindex bt -@end ifclear - -@node Command Line Editing -@chapter Command Line Editing - -This chapter describes the basic features of the @sc{gnu} -command line editing interface. -@ifset BashFeatures -Command line editing is provided by the Readline library, which is -used by several different programs, including Bash. -@end ifset - -@menu -* Introduction and Notation:: Notation used in this text. -* Readline Interaction:: The minimum set of commands for editing a line. -* Readline Init File:: Customizing Readline from a user's view. -* Bindable Readline Commands:: A description of most of the Readline commands - available for binding -* Readline vi Mode:: A short description of how to make Readline - behave like the vi editor. -@ifset BashFeatures -* Programmable Completion:: How to specify the possible completions for - a specific command. -* Programmable Completion Builtins:: Builtin commands to specify how to - complete arguments for a particular command. -@end ifset -@end menu - -@node Introduction and Notation -@section Introduction to Line Editing - -The following paragraphs describe the notation used to represent -keystrokes. - -The text @kbd{C-k} is read as `Control-K' and describes the character -produced when the @key{k} key is pressed while the Control key -is depressed. - -The text @kbd{M-k} is read as `Meta-K' and describes the character -produced when the Meta key (if you have one) is depressed, and the @key{k} -key is pressed. -The Meta key is labeled @key{ALT} on many keyboards. -On keyboards with two keys labeled @key{ALT} (usually to either side of -the space bar), the @key{ALT} on the left side is generally set to -work as a Meta key. -The @key{ALT} key on the right may also be configured to work as a -Meta key or may be configured as some other modifier, such as a -Compose key for typing accented characters. - -If you do not have a Meta or @key{ALT} key, or another key working as -a Meta key, the identical keystroke can be generated by typing @key{ESC} -@emph{first}, and then typing @key{k}. -Either process is known as @dfn{metafying} the @key{k} key. - -The text @kbd{M-C-k} is read as `Meta-Control-k' and describes the -character produced by @dfn{metafying} @kbd{C-k}. - -In addition, several keys have their own names. Specifically, -@key{DEL}, @key{ESC}, @key{LFD}, @key{SPC}, @key{RET}, and @key{TAB} all -stand for themselves when seen in this text, or in an init file -(@pxref{Readline Init File}). -If your keyboard lacks a @key{LFD} key, typing @key{C-j} will -produce the desired character. -The @key{RET} key may be labeled @key{Return} or @key{Enter} on -some keyboards. - -@node Readline Interaction -@section Readline Interaction -@cindex interaction, readline - -Often during an interactive session you type in a long line of text, -only to notice that the first word on the line is misspelled. The -Readline library gives you a set of commands for manipulating the text -as you type it in, allowing you to just fix your typo, and not forcing -you to retype the majority of the line. Using these editing commands, -you move the cursor to the place that needs correction, and delete or -insert the text of the corrections. Then, when you are satisfied with -the line, you simply press @key{RET}. You do not have to be at the -end of the line to press @key{RET}; the entire line is accepted -regardless of the location of the cursor within the line. - -@menu -* Readline Bare Essentials:: The least you need to know about Readline. -* Readline Movement Commands:: Moving about the input line. -* Readline Killing Commands:: How to delete text, and how to get it back! -* Readline Arguments:: Giving numeric arguments to commands. -* Searching:: Searching through previous lines. -@end menu - -@node Readline Bare Essentials -@subsection Readline Bare Essentials -@cindex notation, readline -@cindex command editing -@cindex editing command lines - -In order to enter characters into the line, simply type them. The typed -character appears where the cursor was, and then the cursor moves one -space to the right. If you mistype a character, you can use your -erase character to back up and delete the mistyped character. - -Sometimes you may mistype a character, and -not notice the error until you have typed several other characters. In -that case, you can type @kbd{C-b} to move the cursor to the left, and then -correct your mistake. Afterwards, you can move the cursor to the right -with @kbd{C-f}. - -When you add text in the middle of a line, you will notice that characters -to the right of the cursor are `pushed over' to make room for the text -that you have inserted. Likewise, when you delete text behind the cursor, -characters to the right of the cursor are `pulled back' to fill in the -blank space created by the removal of the text. A list of the bare -essentials for editing the text of an input line follows. - -@table @asis -@item @kbd{C-b} -Move back one character. -@item @kbd{C-f} -Move forward one character. -@item @key{DEL} or @key{Backspace} -Delete the character to the left of the cursor. -@item @kbd{C-d} -Delete the character underneath the cursor. -@item @w{Printing characters} -Insert the character into the line at the cursor. -@item @kbd{C-_} or @kbd{C-x C-u} -Undo the last editing command. You can undo all the way back to an -empty line. -@end table - -@noindent -(Depending on your configuration, the @key{Backspace} key be set to -delete the character to the left of the cursor and the @key{DEL} key set -to delete the character underneath the cursor, like @kbd{C-d}, rather -than the character to the left of the cursor.) - -@node Readline Movement Commands -@subsection Readline Movement Commands - - -The above table describes the most basic keystrokes that you need -in order to do editing of the input line. For your convenience, many -other commands have been added in addition to @kbd{C-b}, @kbd{C-f}, -@kbd{C-d}, and @key{DEL}. Here are some commands for moving more rapidly -about the line. - -@table @kbd -@item C-a -Move to the start of the line. -@item C-e -Move to the end of the line. -@item M-f -Move forward a word, where a word is composed of letters and digits. -@item M-b -Move backward a word. -@item C-l -Clear the screen, reprinting the current line at the top. -@end table - -Notice how @kbd{C-f} moves forward a character, while @kbd{M-f} moves -forward a word. It is a loose convention that control keystrokes -operate on characters while meta keystrokes operate on words. - -@node Readline Killing Commands -@subsection Readline Killing Commands - -@cindex killing text -@cindex yanking text - -@dfn{Killing} text means to delete the text from the line, but to save -it away for later use, usually by @dfn{yanking} (re-inserting) -it back into the line. -(`Cut' and `paste' are more recent jargon for `kill' and `yank'.) - -If the description for a command says that it `kills' text, then you can -be sure that you can get the text back in a different (or the same) -place later. - -When you use a kill command, the text is saved in a @dfn{kill-ring}. -Any number of consecutive kills save all of the killed text together, so -that when you yank it back, you get it all. The kill -ring is not line specific; the text that you killed on a previously -typed line is available to be yanked back later, when you are typing -another line. -@cindex kill ring - -Here is the list of commands for killing text. - -@table @kbd -@item C-k -Kill the text from the current cursor position to the end of the line. - -@item M-d -Kill from the cursor to the end of the current word, or, if between -words, to the end of the next word. -Word boundaries are the same as those used by @kbd{M-f}. - -@item M-@key{DEL} -Kill from the cursor the start of the current word, or, if between -words, to the start of the previous word. -Word boundaries are the same as those used by @kbd{M-b}. - -@item C-w -Kill from the cursor to the previous whitespace. This is different than -@kbd{M-@key{DEL}} because the word boundaries differ. - -@end table - -Here is how to @dfn{yank} the text back into the line. Yanking -means to copy the most-recently-killed text from the kill buffer. - -@table @kbd -@item C-y -Yank the most recently killed text back into the buffer at the cursor. - -@item M-y -Rotate the kill-ring, and yank the new top. You can only do this if -the prior command is @kbd{C-y} or @kbd{M-y}. -@end table - -@node Readline Arguments -@subsection Readline Arguments - -You can pass numeric arguments to Readline commands. Sometimes the -argument acts as a repeat count, other times it is the @i{sign} of the -argument that is significant. If you pass a negative argument to a -command which normally acts in a forward direction, that command will -act in a backward direction. For example, to kill text back to the -start of the line, you might type @samp{M-- C-k}. - -The general way to pass numeric arguments to a command is to type meta -digits before the command. If the first `digit' typed is a minus -sign (@samp{-}), then the sign of the argument will be negative. Once -you have typed one meta digit to get the argument started, you can type -the remainder of the digits, and then the command. For example, to give -the @kbd{C-d} command an argument of 10, you could type @samp{M-1 0 C-d}, -which will delete the next ten characters on the input line. - -@node Searching -@subsection Searching for Commands in the History - -Readline provides commands for searching through the command history -@ifset BashFeatures -(@pxref{Bash History Facilities}) -@end ifset -for lines containing a specified string. -There are two search modes: @dfn{incremental} and @dfn{non-incremental}. - -Incremental searches begin before the user has finished typing the -search string. -As each character of the search string is typed, Readline displays -the next entry from the history matching the string typed so far. -An incremental search requires only as many characters as needed to -find the desired history entry. -To search backward in the history for a particular string, type -@kbd{C-r}. Typing @kbd{C-s} searches forward through the history. -The characters present in the value of the @code{isearch-terminators} variable -are used to terminate an incremental search. -If that variable has not been assigned a value, the @key{ESC} and -@kbd{C-J} characters will terminate an incremental search. -@kbd{C-g} will abort an incremental search and restore the original line. -When the search is terminated, the history entry containing the -search string becomes the current line. - -To find other matching entries in the history list, type @kbd{C-r} or -@kbd{C-s} as appropriate. -This will search backward or forward in the history for the next -entry matching the search string typed so far. -Any other key sequence bound to a Readline command will terminate -the search and execute that command. -For instance, a @key{RET} will terminate the search and accept -the line, thereby executing the command from the history list. -A movement command will terminate the search, make the last line found -the current line, and begin editing. - -Readline remembers the last incremental search string. If two -@kbd{C-r}s are typed without any intervening characters defining a new -search string, any remembered search string is used. - -Non-incremental searches read the entire search string before starting -to search for matching history lines. The search string may be -typed by the user or be part of the contents of the current line. - -@node Readline Init File -@section Readline Init File -@cindex initialization file, readline - -Although the Readline library comes with a set of Emacs-like -keybindings installed by default, it is possible to use a different set -of keybindings. -Any user can customize programs that use Readline by putting -commands in an @dfn{inputrc} file, conventionally in his home directory. -The name of this -@ifset BashFeatures -file is taken from the value of the shell variable @env{INPUTRC}. If -@end ifset -@ifclear BashFeatures -file is taken from the value of the environment variable @env{INPUTRC}. If -@end ifclear -that variable is unset, the default is @file{~/.inputrc}. - -When a program which uses the Readline library starts up, the -init file is read, and the key bindings are set. - -In addition, the @code{C-x C-r} command re-reads this init file, thus -incorporating any changes that you might have made to it. - -@menu -* Readline Init File Syntax:: Syntax for the commands in the inputrc file. - -* Conditional Init Constructs:: Conditional key bindings in the inputrc file. - -* Sample Init File:: An example inputrc file. -@end menu - -@node Readline Init File Syntax -@subsection Readline Init File Syntax - -There are only a few basic constructs allowed in the -Readline init file. Blank lines are ignored. -Lines beginning with a @samp{#} are comments. -Lines beginning with a @samp{$} indicate conditional -constructs (@pxref{Conditional Init Constructs}). Other lines -denote variable settings and key bindings. - -@table @asis -@item Variable Settings -You can modify the run-time behavior of Readline by -altering the values of variables in Readline -using the @code{set} command within the init file. -The syntax is simple: - -@example -set @var{variable} @var{value} -@end example - -@noindent -Here, for example, is how to -change from the default Emacs-like key binding to use -@code{vi} line editing commands: - -@example -set editing-mode vi -@end example - -Variable names and values, where appropriate, are recognized without regard -to case. - -@ifset BashFeatures -The @w{@code{bind -V}} command lists the current Readline variable names -and values. @xref{Bash Builtins}. -@end ifset - -A great deal of run-time behavior is changeable with the following -variables. - -@cindex variables, readline -@table @code - -@item bell-style -@vindex bell-style -Controls what happens when Readline wants to ring the terminal bell. -If set to @samp{none}, Readline never rings the bell. If set to -@samp{visible}, Readline uses a visible bell if one is available. -If set to @samp{audible} (the default), Readline attempts to ring -the terminal's bell. - -@item comment-begin -@vindex comment-begin -The string to insert at the beginning of the line when the -@code{insert-comment} command is executed. The default value -is @code{"#"}. - -@item completion-ignore-case -If set to @samp{on}, Readline performs filename matching and completion -in a case-insensitive fashion. -The default value is @samp{off}. - -@item completion-query-items -@vindex completion-query-items -The number of possible completions that determines when the user is -asked whether he wants to see the list of possibilities. If the -number of possible completions is greater than this value, -Readline will ask the user whether or not he wishes to view -them; otherwise, they are simply listed. -This variable must be set to an integer value greater than or equal to 0. -The default limit is @code{100}. - -@item convert-meta -@vindex convert-meta -If set to @samp{on}, Readline will convert characters with the -eighth bit set to an @sc{ascii} key sequence by stripping the eighth -bit and prefixing an @key{ESC} character, converting them to a -meta-prefixed key sequence. The default value is @samp{on}. - -@item disable-completion -@vindex disable-completion -If set to @samp{On}, Readline will inhibit word completion. -Completion characters will be inserted into the line as if they had -been mapped to @code{self-insert}. The default is @samp{off}. - -@item editing-mode -@vindex editing-mode -The @code{editing-mode} variable controls which default set of -key bindings is used. By default, Readline starts up in Emacs editing -mode, where the keystrokes are most similar to Emacs. This variable can be -set to either @samp{emacs} or @samp{vi}. - -@item enable-keypad -@vindex enable-keypad -When set to @samp{on}, Readline will try to enable the application -keypad when it is called. Some systems need this to enable the -arrow keys. The default is @samp{off}. - -@item expand-tilde -@vindex expand-tilde -If set to @samp{on}, tilde expansion is performed when Readline -attempts word completion. The default is @samp{off}. - -@vindex history-preserve-point -If set to @samp{on}, the history code attempts to place point at the -same location on each history line retrived with @code{previous-history} -or @code{next-history}. - -@item horizontal-scroll-mode -@vindex horizontal-scroll-mode -This variable can be set to either @samp{on} or @samp{off}. Setting it -to @samp{on} means that the text of the lines being edited will scroll -horizontally on a single screen line when they are longer than the width -of the screen, instead of wrapping onto a new screen line. By default, -this variable is set to @samp{off}. - -@item input-meta -@vindex input-meta -@vindex meta-flag -If set to @samp{on}, Readline will enable eight-bit input (it -will not clear the eighth bit in the characters it reads), -regardless of what the terminal claims it can support. The -default value is @samp{off}. The name @code{meta-flag} is a -synonym for this variable. - -@item isearch-terminators -@vindex isearch-terminators -The string of characters that should terminate an incremental search without -subsequently executing the character as a command (@pxref{Searching}). -If this variable has not been given a value, the characters @key{ESC} and -@kbd{C-J} will terminate an incremental search. - -@item keymap -@vindex keymap -Sets Readline's idea of the current keymap for key binding commands. -Acceptable @code{keymap} names are -@code{emacs}, -@code{emacs-standard}, -@code{emacs-meta}, -@code{emacs-ctlx}, -@code{vi}, -@code{vi-move}, -@code{vi-command}, and -@code{vi-insert}. -@code{vi} is equivalent to @code{vi-command}; @code{emacs} is -equivalent to @code{emacs-standard}. The default value is @code{emacs}. -The value of the @code{editing-mode} variable also affects the -default keymap. - -@item mark-directories -If set to @samp{on}, completed directory names have a slash -appended. The default is @samp{on}. - -@item mark-modified-lines -@vindex mark-modified-lines -This variable, when set to @samp{on}, causes Readline to display an -asterisk (@samp{*}) at the start of history lines which have been modified. -This variable is @samp{off} by default. - -@item mark-symlinked-directories -@vindex mark-symlinked-directories -If set to @samp{on}, completed names which are symbolic links -to directories have a slash appended (subject to the value of -@code{mark-directories}). -The default is @samp{off}. - -@item match-hidden-files -@vindex match-hidden-files -This variable, when set to @samp{on}, causes Readline to match files whose -names begin with a @samp{.} (hidden files) when performing filename -completion, unless the leading @samp{.} is -supplied by the user in the filename to be completed. -This variable is @samp{on} by default. - -@item output-meta -@vindex output-meta -If set to @samp{on}, Readline will display characters with the -eighth bit set directly rather than as a meta-prefixed escape -sequence. The default is @samp{off}. - -@item page-completions -@vindex page-completions -If set to @samp{on}, Readline uses an internal @code{more}-like pager -to display a screenful of possible completions at a time. -This variable is @samp{on} by default. - -@item print-completions-horizontally -If set to @samp{on}, Readline will display completions with matches -sorted horizontally in alphabetical order, rather than down the screen. -The default is @samp{off}. - -@item show-all-if-ambiguous -@vindex show-all-if-ambiguous -This alters the default behavior of the completion functions. If -set to @samp{on}, -words which have more than one possible completion cause the -matches to be listed immediately instead of ringing the bell. -The default value is @samp{off}. - -@item visible-stats -@vindex visible-stats -If set to @samp{on}, a character denoting a file's type -is appended to the filename when listing possible -completions. The default is @samp{off}. - -@end table - -@item Key Bindings -The syntax for controlling key bindings in the init file is -simple. First you need to find the name of the command that you -want to change. The following sections contain tables of the command -name, the default keybinding, if any, and a short description of what -the command does. - -Once you know the name of the command, simply place on a line -in the init file the name of the key -you wish to bind the command to, a colon, and then the name of the -command. The name of the key -can be expressed in different ways, depending on what you find most -comfortable. - -In addition to command names, readline allows keys to be bound -to a string that is inserted when the key is pressed (a @var{macro}). - -@ifset BashFeatures -The @w{@code{bind -p}} command displays Readline function names and -bindings in a format that can put directly into an initialization file. -@xref{Bash Builtins}. -@end ifset - -@table @asis -@item @w{@var{keyname}: @var{function-name} or @var{macro}} -@var{keyname} is the name of a key spelled out in English. For example: -@example -Control-u: universal-argument -Meta-Rubout: backward-kill-word -Control-o: "> output" -@end example - -In the above example, @kbd{C-u} is bound to the function -@code{universal-argument}, -@kbd{M-DEL} is bound to the function @code{backward-kill-word}, and -@kbd{C-o} is bound to run the macro -expressed on the right hand side (that is, to insert the text -@samp{> output} into the line). - -A number of symbolic character names are recognized while -processing this key binding syntax: -@var{DEL}, -@var{ESC}, -@var{ESCAPE}, -@var{LFD}, -@var{NEWLINE}, -@var{RET}, -@var{RETURN}, -@var{RUBOUT}, -@var{SPACE}, -@var{SPC}, -and -@var{TAB}. - -@item @w{"@var{keyseq}": @var{function-name} or @var{macro}} -@var{keyseq} differs from @var{keyname} above in that strings -denoting an entire key sequence can be specified, by placing -the key sequence in double quotes. Some @sc{gnu} Emacs style key -escapes can be used, as in the following example, but the -special character names are not recognized. - -@example -"\C-u": universal-argument -"\C-x\C-r": re-read-init-file -"\e[11~": "Function Key 1" -@end example - -In the above example, @kbd{C-u} is again bound to the function -@code{universal-argument} (just as it was in the first example), -@samp{@kbd{C-x} @kbd{C-r}} is bound to the function @code{re-read-init-file}, -and @samp{@key{ESC} @key{[} @key{1} @key{1} @key{~}} is bound to insert -the text @samp{Function Key 1}. - -@end table - -The following @sc{gnu} Emacs style escape sequences are available when -specifying key sequences: - -@table @code -@item @kbd{\C-} -control prefix -@item @kbd{\M-} -meta prefix -@item @kbd{\e} -an escape character -@item @kbd{\\} -backslash -@item @kbd{\"} -@key{"}, a double quotation mark -@item @kbd{\'} -@key{'}, a single quote or apostrophe -@end table - -In addition to the @sc{gnu} Emacs style escape sequences, a second -set of backslash escapes is available: - -@table @code -@item \a -alert (bell) -@item \b -backspace -@item \d -delete -@item \f -form feed -@item \n -newline -@item \r -carriage return -@item \t -horizontal tab -@item \v -vertical tab -@item \@var{nnn} -the eight-bit character whose value is the octal value @var{nnn} -(one to three digits) -@item \x@var{HH} -the eight-bit character whose value is the hexadecimal value @var{HH} -(one or two hex digits) -@end table - -When entering the text of a macro, single or double quotes must -be used to indicate a macro definition. -Unquoted text is assumed to be a function name. -In the macro body, the backslash escapes described above are expanded. -Backslash will quote any other character in the macro text, -including @samp{"} and @samp{'}. -For example, the following binding will make @samp{@kbd{C-x} \} -insert a single @samp{\} into the line: -@example -"\C-x\\": "\\" -@end example - -@end table - -@node Conditional Init Constructs -@subsection Conditional Init Constructs - -Readline implements a facility similar in spirit to the conditional -compilation features of the C preprocessor which allows key -bindings and variable settings to be performed as the result -of tests. There are four parser directives used. - -@table @code -@item $if -The @code{$if} construct allows bindings to be made based on the -editing mode, the terminal being used, or the application using -Readline. The text of the test extends to the end of the line; -no characters are required to isolate it. - -@table @code -@item mode -The @code{mode=} form of the @code{$if} directive is used to test -whether Readline is in @code{emacs} or @code{vi} mode. -This may be used in conjunction -with the @samp{set keymap} command, for instance, to set bindings in -the @code{emacs-standard} and @code{emacs-ctlx} keymaps only if -Readline is starting out in @code{emacs} mode. - -@item term -The @code{term=} form may be used to include terminal-specific -key bindings, perhaps to bind the key sequences output by the -terminal's function keys. The word on the right side of the -@samp{=} is tested against both the full name of the terminal and -the portion of the terminal name before the first @samp{-}. This -allows @code{sun} to match both @code{sun} and @code{sun-cmd}, -for instance. - -@item application -The @var{application} construct is used to include -application-specific settings. Each program using the Readline -library sets the @var{application name}, and you can test for -a particular value. -This could be used to bind key sequences to functions useful for -a specific program. For instance, the following command adds a -key sequence that quotes the current or previous word in Bash: -@example -$if Bash -# Quote the current or previous word -"\C-xq": "\eb\"\ef\"" -$endif -@end example -@end table - -@item $endif -This command, as seen in the previous example, terminates an -@code{$if} command. - -@item $else -Commands in this branch of the @code{$if} directive are executed if -the test fails. - -@item $include -This directive takes a single filename as an argument and reads commands -and bindings from that file. -For example, the following directive reads from @file{/etc/inputrc}: -@example -$include /etc/inputrc -@end example -@end table - -@node Sample Init File -@subsection Sample Init File - -Here is an example of an @var{inputrc} file. This illustrates key -binding, variable assignment, and conditional syntax. - -@example -@page -# This file controls the behaviour of line input editing for -# programs that use the GNU Readline library. Existing -# programs include FTP, Bash, and GDB. -# -# You can re-read the inputrc file with C-x C-r. -# Lines beginning with '#' are comments. -# -# First, include any systemwide bindings and variable -# assignments from /etc/Inputrc -$include /etc/Inputrc - -# -# Set various bindings for emacs mode. - -set editing-mode emacs - -$if mode=emacs - -Meta-Control-h: backward-kill-word Text after the function name is ignored - -# -# Arrow keys in keypad mode -# -#"\M-OD": backward-char -#"\M-OC": forward-char -#"\M-OA": previous-history -#"\M-OB": next-history -# -# Arrow keys in ANSI mode -# -"\M-[D": backward-char -"\M-[C": forward-char -"\M-[A": previous-history -"\M-[B": next-history -# -# Arrow keys in 8 bit keypad mode -# -#"\M-\C-OD": backward-char -#"\M-\C-OC": forward-char -#"\M-\C-OA": previous-history -#"\M-\C-OB": next-history -# -# Arrow keys in 8 bit ANSI mode -# -#"\M-\C-[D": backward-char -#"\M-\C-[C": forward-char -#"\M-\C-[A": previous-history -#"\M-\C-[B": next-history - -C-q: quoted-insert - -$endif - -# An old-style binding. This happens to be the default. -TAB: complete - -# Macros that are convenient for shell interaction -$if Bash -# edit the path -"\C-xp": "PATH=$@{PATH@}\e\C-e\C-a\ef\C-f" -# prepare to type a quoted word -- -# insert open and close double quotes -# and move to just after the open quote -"\C-x\"": "\"\"\C-b" -# insert a backslash (testing backslash escapes -# in sequences and macros) -"\C-x\\": "\\" -# Quote the current or previous word -"\C-xq": "\eb\"\ef\"" -# Add a binding to refresh the line, which is unbound -"\C-xr": redraw-current-line -# Edit variable on current line. -"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y=" -$endif - -# use a visible bell if one is available -set bell-style visible - -# don't strip characters to 7 bits when reading -set input-meta on - -# allow iso-latin1 characters to be inserted rather -# than converted to prefix-meta sequences -set convert-meta off - -# display characters with the eighth bit set directly -# rather than as meta-prefixed characters -set output-meta on - -# if there are more than 150 possible completions for -# a word, ask the user if he wants to see all of them -set completion-query-items 150 - -# For FTP -$if Ftp -"\C-xg": "get \M-?" -"\C-xt": "put \M-?" -"\M-.": yank-last-arg -$endif -@end example - -@node Bindable Readline Commands -@section Bindable Readline Commands - -@menu -* Commands For Moving:: Moving about the line. -* Commands For History:: Getting at previous lines. -* Commands For Text:: Commands for changing text. -* Commands For Killing:: Commands for killing and yanking. -* Numeric Arguments:: Specifying numeric arguments, repeat counts. -* Commands For Completion:: Getting Readline to do the typing for you. -* Keyboard Macros:: Saving and re-executing typed characters -* Miscellaneous Commands:: Other miscellaneous commands. -@end menu - -This section describes Readline commands that may be bound to key -sequences. -@ifset BashFeatures -You can list your key bindings by executing -@w{@code{bind -P}} or, for a more terse format, suitable for an -@var{inputrc} file, @w{@code{bind -p}}. (@xref{Bash Builtins}.) -@end ifset -Command names without an accompanying key sequence are unbound by default. - -In the following descriptions, @dfn{point} refers to the current cursor -position, and @dfn{mark} refers to a cursor position saved by the -@code{set-mark} command. -The text between the point and mark is referred to as the @dfn{region}. - -@node Commands For Moving -@subsection Commands For Moving -@ftable @code -@item beginning-of-line (C-a) -Move to the start of the current line. - -@item end-of-line (C-e) -Move to the end of the line. - -@item forward-char (C-f) -Move forward a character. - -@item backward-char (C-b) -Move back a character. - -@item forward-word (M-f) -Move forward to the end of the next word. Words are composed of -letters and digits. - -@item backward-word (M-b) -Move back to the start of the current or previous word. Words are -composed of letters and digits. - -@item clear-screen (C-l) -Clear the screen and redraw the current line, -leaving the current line at the top of the screen. - -@item redraw-current-line () -Refresh the current line. By default, this is unbound. - -@end ftable - -@node Commands For History -@subsection Commands For Manipulating The History - -@ftable @code -@item accept-line (Newline or Return) -@ifset BashFeatures -Accept the line regardless of where the cursor is. -If this line is -non-empty, add it to the history list according to the setting of -the @env{HISTCONTROL} and @env{HISTIGNORE} variables. -If this line is a modified history line, then restore the history line -to its original state. -@end ifset -@ifclear BashFeatures -Accept the line regardless of where the cursor is. -If this line is -non-empty, it may be added to the history list for future recall with -@code{add_history()}. -If this line is a modified history line, the history line is restored -to its original state. -@end ifclear - -@item previous-history (C-p) -Move `back' through the history list, fetching the previous command. - -@item next-history (C-n) -Move `forward' through the history list, fetching the next command. - -@item beginning-of-history (M-<) -Move to the first line in the history. - -@item end-of-history (M->) -Move to the end of the input history, i.e., the line currently -being entered. - -@item reverse-search-history (C-r) -Search backward starting at the current line and moving `up' through -the history as necessary. This is an incremental search. - -@item forward-search-history (C-s) -Search forward starting at the current line and moving `down' through -the the history as necessary. This is an incremental search. - -@item non-incremental-reverse-search-history (M-p) -Search backward starting at the current line and moving `up' -through the history as necessary using a non-incremental search -for a string supplied by the user. - -@item non-incremental-forward-search-history (M-n) -Search forward starting at the current line and moving `down' -through the the history as necessary using a non-incremental search -for a string supplied by the user. - -@item history-search-forward () -Search forward through the history for the string of characters -between the start of the current line and the point. -This is a non-incremental search. -By default, this command is unbound. - -@item history-search-backward () -Search backward through the history for the string of characters -between the start of the current line and the point. This -is a non-incremental search. By default, this command is unbound. - -@item yank-nth-arg (M-C-y) -Insert the first argument to the previous command (usually -the second word on the previous line) at point. -With an argument @var{n}, -insert the @var{n}th word from the previous command (the words -in the previous command begin with word 0). A negative argument -inserts the @var{n}th word from the end of the previous command. - -@item yank-last-arg (M-. or M-_) -Insert last argument to the previous command (the last word of the -previous history entry). With an -argument, behave exactly like @code{yank-nth-arg}. -Successive calls to @code{yank-last-arg} move back through the history -list, inserting the last argument of each line in turn. - -@end ftable - -@node Commands For Text -@subsection Commands For Changing Text - -@ftable @code -@item delete-char (C-d) -Delete the character at point. If point is at the -beginning of the line, there are no characters in the line, and -the last character typed was not bound to @code{delete-char}, then -return @sc{eof}. - -@item backward-delete-char (Rubout) -Delete the character behind the cursor. A numeric argument means -to kill the characters instead of deleting them. - -@item forward-backward-delete-char () -Delete the character under the cursor, unless the cursor is at the -end of the line, in which case the character behind the cursor is -deleted. By default, this is not bound to a key. - -@item quoted-insert (C-q or C-v) -Add the next character typed to the line verbatim. This is -how to insert key sequences like @kbd{C-q}, for example. - -@ifclear BashFeatures -@item tab-insert (M-@key{TAB}) -Insert a tab character. -@end ifclear - -@item self-insert (a, b, A, 1, !, @dots{}) -Insert yourself. - -@item transpose-chars (C-t) -Drag the character before the cursor forward over -the character at the cursor, moving the -cursor forward as well. If the insertion point -is at the end of the line, then this -transposes the last two characters of the line. -Negative arguments have no effect. - -@item transpose-words (M-t) -Drag the word before point past the word after point, -moving point past that word as well. -If the insertion point is at the end of the line, this transposes -the last two words on the line. - -@item upcase-word (M-u) -Uppercase the current (or following) word. With a negative argument, -uppercase the previous word, but do not move the cursor. - -@item downcase-word (M-l) -Lowercase the current (or following) word. With a negative argument, -lowercase the previous word, but do not move the cursor. - -@item capitalize-word (M-c) -Capitalize the current (or following) word. With a negative argument, -capitalize the previous word, but do not move the cursor. - -@item overwrite-mode () -Toggle overwrite mode. With an explicit positive numeric argument, -switches to overwrite mode. With an explicit non-positive numeric -argument, switches to insert mode. This command affects only -@code{emacs} mode; @code{vi} mode does overwrite differently. -Each call to @code{readline()} starts in insert mode. - -In overwrite mode, characters bound to @code{self-insert} replace -the text at point rather than pushing the text to the right. -Characters bound to @code{backward-delete-char} replace the character -before point with a space. - -By default, this command is unbound. - -@end ftable - -@node Commands For Killing -@subsection Killing And Yanking - -@ftable @code - -@item kill-line (C-k) -Kill the text from point to the end of the line. - -@item backward-kill-line (C-x Rubout) -Kill backward to the beginning of the line. - -@item unix-line-discard (C-u) -Kill backward from the cursor to the beginning of the current line. - -@item kill-whole-line () -Kill all characters on the current line, no matter where point is. -By default, this is unbound. - -@item kill-word (M-d) -Kill from point to the end of the current word, or if between -words, to the end of the next word. -Word boundaries are the same as @code{forward-word}. - -@item backward-kill-word (M-@key{DEL}) -Kill the word behind point. -Word boundaries are the same as @code{backward-word}. - -@item unix-word-rubout (C-w) -Kill the word behind point, using white space as a word boundary. -The killed text is saved on the kill-ring. - -@item delete-horizontal-space () -Delete all spaces and tabs around point. By default, this is unbound. - -@item kill-region () -Kill the text in the current region. -By default, this command is unbound. - -@item copy-region-as-kill () -Copy the text in the region to the kill buffer, so it can be yanked -right away. By default, this command is unbound. - -@item copy-backward-word () -Copy the word before point to the kill buffer. -The word boundaries are the same as @code{backward-word}. -By default, this command is unbound. - -@item copy-forward-word () -Copy the word following point to the kill buffer. -The word boundaries are the same as @code{forward-word}. -By default, this command is unbound. - -@item yank (C-y) -Yank the top of the kill ring into the buffer at point. - -@item yank-pop (M-y) -Rotate the kill-ring, and yank the new top. You can only do this if -the prior command is @code{yank} or @code{yank-pop}. -@end ftable - -@node Numeric Arguments -@subsection Specifying Numeric Arguments -@ftable @code - -@item digit-argument (@kbd{M-0}, @kbd{M-1}, @dots{} @kbd{M--}) -Add this digit to the argument already accumulating, or start a new -argument. @kbd{M--} starts a negative argument. - -@item universal-argument () -This is another way to specify an argument. -If this command is followed by one or more digits, optionally with a -leading minus sign, those digits define the argument. -If the command is followed by digits, executing @code{universal-argument} -again ends the numeric argument, but is otherwise ignored. -As a special case, if this command is immediately followed by a -character that is neither a digit or minus sign, the argument count -for the next command is multiplied by four. -The argument count is initially one, so executing this function the -first time makes the argument count four, a second time makes the -argument count sixteen, and so on. -By default, this is not bound to a key. -@end ftable - -@node Commands For Completion -@subsection Letting Readline Type For You - -@ftable @code -@item complete (@key{TAB}) -Attempt to perform completion on the text before point. -The actual completion performed is application-specific. -@ifset BashFeatures -Bash attempts completion treating the text as a variable (if the -text begins with @samp{$}), username (if the text begins with -@samp{~}), hostname (if the text begins with @samp{@@}), or -command (including aliases and functions) in turn. If none -of these produces a match, filename completion is attempted. -@end ifset -@ifclear BashFeatures -The default is filename completion. -@end ifclear - -@item possible-completions (M-?) -List the possible completions of the text before point. - -@item insert-completions (M-*) -Insert all completions of the text before point that would have -been generated by @code{possible-completions}. - -@item menu-complete () -Similar to @code{complete}, but replaces the word to be completed -with a single match from the list of possible completions. -Repeated execution of @code{menu-complete} steps through the list -of possible completions, inserting each match in turn. -At the end of the list of completions, the bell is rung -(subject to the setting of @code{bell-style}) -and the original text is restored. -An argument of @var{n} moves @var{n} positions forward in the list -of matches; a negative argument may be used to move backward -through the list. -This command is intended to be bound to @key{TAB}, but is unbound -by default. - -@item delete-char-or-list () -Deletes the character under the cursor if not at the beginning or -end of the line (like @code{delete-char}). -If at the end of the line, behaves identically to -@code{possible-completions}. -This command is unbound by default. - -@ifset BashFeatures -@item complete-filename (M-/) -Attempt filename completion on the text before point. - -@item possible-filename-completions (C-x /) -List the possible completions of the text before point, -treating it as a filename. - -@item complete-username (M-~) -Attempt completion on the text before point, treating -it as a username. - -@item possible-username-completions (C-x ~) -List the possible completions of the text before point, -treating it as a username. - -@item complete-variable (M-$) -Attempt completion on the text before point, treating -it as a shell variable. - -@item possible-variable-completions (C-x $) -List the possible completions of the text before point, -treating it as a shell variable. - -@item complete-hostname (M-@@) -Attempt completion on the text before point, treating -it as a hostname. - -@item possible-hostname-completions (C-x @@) -List the possible completions of the text before point, -treating it as a hostname. - -@item complete-command (M-!) -Attempt completion on the text before point, treating -it as a command name. Command completion attempts to -match the text against aliases, reserved words, shell -functions, shell builtins, and finally executable filenames, -in that order. - -@item possible-command-completions (C-x !) -List the possible completions of the text before point, -treating it as a command name. - -@item dynamic-complete-history (M-@key{TAB}) -Attempt completion on the text before point, comparing -the text against lines from the history list for possible -completion matches. - -@item complete-into-braces (M-@{) -Perform filename completion and insert the list of possible completions -enclosed within braces so the list is available to the shell -(@pxref{Brace Expansion}). - -@end ifset -@end ftable - -@node Keyboard Macros -@subsection Keyboard Macros -@ftable @code - -@item start-kbd-macro (C-x () -Begin saving the characters typed into the current keyboard macro. - -@item end-kbd-macro (C-x )) -Stop saving the characters typed into the current keyboard macro -and save the definition. - -@item call-last-kbd-macro (C-x e) -Re-execute the last keyboard macro defined, by making the characters -in the macro appear as if typed at the keyboard. - -@end ftable - -@node Miscellaneous Commands -@subsection Some Miscellaneous Commands -@ftable @code - -@item re-read-init-file (C-x C-r) -Read in the contents of the @var{inputrc} file, and incorporate -any bindings or variable assignments found there. - -@item abort (C-g) -Abort the current editing command and -ring the terminal's bell (subject to the setting of -@code{bell-style}). - -@item do-uppercase-version (M-a, M-b, M-@var{x}, @dots{}) -If the metafied character @var{x} is lowercase, run the command -that is bound to the corresponding uppercase character. - -@item prefix-meta (@key{ESC}) -Metafy the next character typed. This is for keyboards -without a meta key. Typing @samp{@key{ESC} f} is equivalent to typing -@kbd{M-f}. - -@item undo (C-_ or C-x C-u) -Incremental undo, separately remembered for each line. - -@item revert-line (M-r) -Undo all changes made to this line. This is like executing the @code{undo} -command enough times to get back to the beginning. - -@ifset BashFeatures -@item tilde-expand (M-&) -@end ifset -@ifclear BashFeatures -@item tilde-expand (M-~) -@end ifclear -Perform tilde expansion on the current word. - -@item set-mark (C-@@) -Set the mark to the point. If a -numeric argument is supplied, the mark is set to that position. - -@item exchange-point-and-mark (C-x C-x) -Swap the point with the mark. The current cursor position is set to -the saved position, and the old cursor position is saved as the mark. - -@item character-search (C-]) -A character is read and point is moved to the next occurrence of that -character. A negative count searches for previous occurrences. - -@item character-search-backward (M-C-]) -A character is read and point is moved to the previous occurrence -of that character. A negative count searches for subsequent -occurrences. - -@item insert-comment (M-#) -Without a numeric argument, the value of the @code{comment-begin} -variable is inserted at the beginning of the current line. -If a numeric argument is supplied, this command acts as a toggle: if -the characters at the beginning of the line do not match the value -of @code{comment-begin}, the value is inserted, otherwise -the characters in @code{comment-begin} are deleted from the beginning of -the line. -In either case, the line is accepted as if a newline had been typed. -@ifset BashFeatures -The default value of @code{comment-begin} causes this command -to make the current line a shell comment. -If a numeric argument causes the comment character to be removed, the line -will be executed by the shell. -@end ifset - -@item dump-functions () -Print all of the functions and their key bindings to the -Readline output stream. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an @var{inputrc} file. This command is unbound by default. - -@item dump-variables () -Print all of the settable variables and their values to the -Readline output stream. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an @var{inputrc} file. This command is unbound by default. - -@item dump-macros () -Print all of the Readline key sequences bound to macros and the -strings they output. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an @var{inputrc} file. This command is unbound by default. - -@ifset BashFeatures -@item glob-complete-word (M-g) -The word before point is treated as a pattern for pathname expansion, -with an asterisk implicitly appended. This pattern is used to -generate a list of matching file names for possible completions. - -@item glob-expand-word (C-x *) -The word before point is treated as a pattern for pathname expansion, -and the list of matching file names is inserted, replacing the word. -If a numeric argument is supplied, a @samp{*} is appended before -pathname expansion. - -@item glob-list-expansions (C-x g) -The list of expansions that would have been generated by -@code{glob-expand-word} is displayed, and the line is redrawn. -If a numeric argument is supplied, a @samp{*} is appended before -pathname expansion. - -@item display-shell-version (C-x C-v) -Display version information about the current instance of Bash. - -@item shell-expand-line (M-C-e) -Expand the line as the shell does. -This performs alias and history expansion as well as all of the shell -word expansions (@pxref{Shell Expansions}). - -@item history-expand-line (M-^) -Perform history expansion on the current line. - -@item magic-space () -Perform history expansion on the current line and insert a space -(@pxref{History Interaction}). - -@item alias-expand-line () -Perform alias expansion on the current line (@pxref{Aliases}). - -@item history-and-alias-expand-line () -Perform history and alias expansion on the current line. - -@item insert-last-argument (M-. or M-_) -A synonym for @code{yank-last-arg}. - -@item operate-and-get-next (C-o) -Accept the current line for execution and fetch the next line -relative to the current line from the history for editing. Any -argument is ignored. - -@item edit-and-execute-command (C-xC-e) -Invoke an editor on the current command line, and execute the result as shell -commands. -Bash attempts to invoke -@code{$FCEDIT}, @code{$EDITOR}, and @code{emacs} -as the editor, in that order. - -@end ifset - -@ifclear BashFeatures -@item emacs-editing-mode (C-e) -When in @code{vi} command mode, this causes a switch to @code{emacs} -editing mode. - -@item vi-editing-mode (M-C-j) -When in @code{emacs} editing mode, this causes a switch to @code{vi} -editing mode. - -@end ifclear - -@end ftable - -@node Readline vi Mode -@section Readline vi Mode - -While the Readline library does not have a full set of @code{vi} -editing functions, it does contain enough to allow simple editing -of the line. The Readline @code{vi} mode behaves as specified in -the @sc{posix} 1003.2 standard. - -@ifset BashFeatures -In order to switch interactively between @code{emacs} and @code{vi} -editing modes, use the @samp{set -o emacs} and @samp{set -o vi} -commands (@pxref{The Set Builtin}). -@end ifset -@ifclear BashFeatures -In order to switch interactively between @code{emacs} and @code{vi} -editing modes, use the command @kbd{M-C-j} (bound to emacs-editing-mode -when in @code{vi} mode and to vi-editing-mode in @code{emacs} mode). -@end ifclear -The Readline default is @code{emacs} mode. - -When you enter a line in @code{vi} mode, you are already placed in -`insertion' mode, as if you had typed an @samp{i}. Pressing @key{ESC} -switches you into `command' mode, where you can edit the text of the -line with the standard @code{vi} movement keys, move to previous -history lines with @samp{k} and subsequent lines with @samp{j}, and -so forth. - -@ifset BashFeatures -@node Programmable Completion -@section Programmable Completion -@cindex programmable completion - -When word completion is attempted for an argument to a command for -which a completion specification (a @var{compspec}) has been defined -using the @code{complete} builtin (@pxref{Programmable Completion Builtins}), -the programmable completion facilities are invoked. - -First, the command name is identified. -If a compspec has been defined for that command, the -compspec is used to generate the list of possible completions for the word. -If the command word is a full pathname, a compspec for the full -pathname is searched for first. -If no compspec is found for the full pathname, an attempt is made to -find a compspec for the portion following the final slash. - -Once a compspec has been found, it is used to generate the list of -matching words. -If a compspec is not found, the default Bash completion -described above (@pxref{Commands For Completion}) is performed. - -First, the actions specified by the compspec are used. -Only matches which are prefixed by the word being completed are -returned. -When the @option{-f} or @option{-d} option is used for filename or -directory name completion, the shell variable @env{FIGNORE} is -used to filter the matches. -@xref{Bash Variables}, for a description of @env{FIGNORE}. - -Any completions specified by a filename expansion pattern to the -@option{-G} option are generated next. -The words generated by the pattern need not match the word being completed. -The @env{GLOBIGNORE} shell variable is not used to filter the matches, -but the @env{FIGNORE} shell variable is used. - -Next, the string specified as the argument to the @option{-W} option -is considered. -The string is first split using the characters in the @env{IFS} -special variable as delimiters. -Shell quoting is honored. -Each word is then expanded using -brace expansion, tilde expansion, parameter and variable expansion, -command substitution, arithmetic expansion, and pathname expansion, -as described above (@pxref{Shell Expansions}). -The results are split using the rules described above -(@pxref{Word Splitting}). -The results of the expansion are prefix-matched against the word being -completed, and the matching words become the possible completions. - -After these matches have been generated, any shell function or command -specified with the @option{-F} and @option{-C} options is invoked. -When the command or function is invoked, the @env{COMP_LINE} and -@env{COMP_POINT} variables are assigned values as described above -(@pxref{Bash Variables}). -If a shell function is being invoked, the @env{COMP_WORDS} and -@env{COMP_CWORD} variables are also set. -When the function or command is invoked, the first argument is the -name of the command whose arguments are being completed, the -second argument is the word being completed, and the third argument -is the word preceding the word being completed on the current command line. -No filtering of the generated completions against the word being completed -is performed; the function or command has complete freedom in generating -the matches. - -Any function specified with @option{-F} is invoked first. -The function may use any of the shell facilities, including the -@code{compgen} builtin described below -(@pxref{Programmable Completion Builtins}), to generate the matches. -It must put the possible completions in the @env{COMPREPLY} array -variable. - -Next, any command specified with the @option{-C} option is invoked -in an environment equivalent to command substitution. -It should print a list of completions, one per line, to -the standard output. -Backslash may be used to escape a newline, if necessary. - -After all of the possible completions are generated, any filter -specified with the @option{-X} option is applied to the list. -The filter is a pattern as used for pathname expansion; a @samp{&} -in the pattern is replaced with the text of the word being completed. -A literal @samp{&} may be escaped with a backslash; the backslash -is removed before attempting a match. -Any completion that matches the pattern will be removed from the list. -A leading @samp{!} negates the pattern; in this case any completion -not matching the pattern will be removed. - -Finally, any prefix and suffix specified with the @option{-P} and @option{-S} -options are added to each member of the completion list, and the result is -returned to the Readline completion code as the list of possible -completions. - -If the previously-applied actions do not generate any matches, and the -@option{-o dirnames} option was supplied to @code{complete} when the -compspec was defined, directory name completion is attempted. - -By default, if a compspec is found, whatever it generates is returned to -the completion code as the full set of possible completions. -The default Bash completions are not attempted, and the Readline default -of filename completion is disabled. -If the @option{-o default} option was supplied to @code{complete} when the -compspec was defined, Readline's default completion will be performed -if the compspec generates no matches. - -When a compspec indicates that directory name completion is desired, -the programmable completion functions force Readline to append a slash -to completed names which are symbolic links to directories, subject to -the value of the @var{mark-directories} Readline variable, regardless -of the setting of the @var{mark-symlinked-directories} Readline variable. - -@node Programmable Completion Builtins -@section Programmable Completion Builtins -@cindex completion builtins - -Two builtin commands are available to manipulate the programmable completion -facilities. - -@table @code -@item compgen -@btindex compgen -@example -@code{compgen [@var{option}] [@var{word}]} -@end example - -Generate possible completion matches for @var{word} according to -the @var{option}s, which may be any option accepted by the -@code{complete} -builtin with the exception of @option{-p} and @option{-r}, and write -the matches to the standard output. -When using the @option{-F} or @option{-C} options, the various shell variables -set by the programmable completion facilities, while available, will not -have useful values. - -The matches will be generated in the same way as if the programmable -completion code had generated them directly from a completion specification -with the same flags. -If @var{word} is specified, only those completions matching @var{word} -will be displayed. - -The return value is true unless an invalid option is supplied, or no -matches were generated. - -@item complete -@btindex complete -@example -@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}] -[-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}] -[-C @var{command}] @var{name} [@var{name} @dots{}]} -@code{complete -pr [@var{name} @dots{}]} -@end example - -Specify how arguments to each @var{name} should be completed. -If the @option{-p} option is supplied, or if no options are supplied, existing -completion specifications are printed in a way that allows them to be -reused as input. -The @option{-r} option removes a completion specification for -each @var{name}, or, if no @var{name}s are supplied, all -completion specifications. - -The process of applying these completion specifications when word completion -is attempted is described above (@pxref{Programmable Completion}). - -Other options, if specified, have the following meanings. -The arguments to the @option{-G}, @option{-W}, and @option{-X} options -(and, if necessary, the @option{-P} and @option{-S} options) -should be quoted to protect them from expansion before the -@code{complete} builtin is invoked. - - -@table @code -@item -o @var{comp-option} -The @var{comp-option} controls several aspects of the compspec's behavior -beyond the simple generation of completions. -@var{comp-option} may be one of: - -@table @code - -@item default -Use Readline's default filename completion if the compspec generates -no matches. - -@item dirnames -Perform directory name completion if the compspec generates no matches. - -@item filenames -Tell Readline that the compspec generates filenames, so it can perform any -filename\-specific processing (like adding a slash to directory names or -suppressing trailing spaces). This option is intended to be used with -shell functions specified with @option{-F}. - -@item nospace -Tell Readline not to append a space (the default) to words completed at -the end of the line. -@end table - -@item -A @var{action} -The @var{action} may be one of the following to generate a list of possible -completions: - -@table @code -@item alias -Alias names. May also be specified as @option{-a}. - -@item arrayvar -Array variable names. - -@item binding -Readline key binding names (@pxref{Bindable Readline Commands}). - -@item builtin -Names of shell builtin commands. May also be specified as @option{-b}. - -@item command -Command names. May also be specified as @option{-c}. - -@item directory -Directory names. May also be specified as @option{-d}. - -@item disabled -Names of disabled shell builtins. - -@item enabled -Names of enabled shell builtins. - -@item export -Names of exported shell variables. May also be specified as @option{-e}. - -@item file -File names. May also be specified as @option{-f}. - -@item function -Names of shell functions. - -@item group -Group names. May also be specified as @option{-g}. - -@item helptopic -Help topics as accepted by the @code{help} builtin (@pxref{Bash Builtins}). - -@item hostname -Hostnames, as taken from the file specified by the -@env{HOSTFILE} shell variable (@pxref{Bash Variables}). - -@item job -Job names, if job control is active. May also be specified as @option{-j}. - -@item keyword -Shell reserved words. May also be specified as @option{-k}. - -@item running -Names of running jobs, if job control is active. - -@item service -Service names. May also be specified as @option{-s}. - -@item setopt -Valid arguments for the @option{-o} option to the @code{set} builtin -(@pxref{The Set Builtin}). - -@item shopt -Shell option names as accepted by the @code{shopt} builtin -(@pxref{Bash Builtins}). - -@item signal -Signal names. - -@item stopped -Names of stopped jobs, if job control is active. - -@item user -User names. May also be specified as @option{-u}. - -@item variable -Names of all shell variables. May also be specified as @option{-v}. -@end table - -@item -G @var{globpat} -The filename expansion pattern @var{globpat} is expanded to generate -the possible completions. - -@item -W @var{wordlist} -The @var{wordlist} is split using the characters in the -@env{IFS} special variable as delimiters, and each resultant word -is expanded. -The possible completions are the members of the resultant list which -match the word being completed. - -@item -C @var{command} -@var{command} is executed in a subshell environment, and its output is -used as the possible completions. - -@item -F @var{function} -The shell function @var{function} is executed in the current shell -environment. -When it finishes, the possible completions are retrieved from the value -of the @env{COMPREPLY} array variable. - -@item -X @var{filterpat} -@var{filterpat} is a pattern as used for filename expansion. -It is applied to the list of possible completions generated by the -preceding options and arguments, and each completion matching -@var{filterpat} is removed from the list. -A leading @samp{!} in @var{filterpat} negates the pattern; in this -case, any completion not matching @var{filterpat} is removed. - -@item -P @var{prefix} -@var{prefix} is added at the beginning of each possible completion -after all other options have been applied. - -@item -S @var{suffix} -@var{suffix} is appended to each possible completion -after all other options have been applied. -@end table - -The return value is true unless an invalid option is supplied, an option -other than @option{-p} or @option{-r} is supplied without a @var{name} -argument, an attempt is made to remove a completion specification for -a @var{name} for which no specification exists, or -an error occurs adding a completion specification. - -@end table -@end ifset diff --git a/lib/readline/doc/rluserman.aux b/lib/readline/doc/rluserman.aux deleted file mode 100644 index 68ba55c98..000000000 --- a/lib/readline/doc/rluserman.aux +++ /dev/null @@ -1,69 +0,0 @@ -@xrdef{Command Line Editing-title}{Command Line Editing} -@xrdef{Command Line Editing-snt}{Chapter@tie 1} -@xrdef{Introduction and Notation-title}{Introduction to Line Editing} -@xrdef{Introduction and Notation-snt}{Section@tie 1.1} -@xrdef{Readline Interaction-title}{Readline Interaction} -@xrdef{Readline Interaction-snt}{Section@tie 1.2} -@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials} -@xrdef{Readline Bare Essentials-snt}{Section@tie 1.2.1} -@xrdef{Command Line Editing-pg}{1} -@xrdef{Introduction and Notation-pg}{1} -@xrdef{Readline Interaction-pg}{1} -@xrdef{Readline Bare Essentials-pg}{1} -@xrdef{Readline Movement Commands-title}{Readline Movement Commands} -@xrdef{Readline Movement Commands-snt}{Section@tie 1.2.2} -@xrdef{Readline Killing Commands-title}{Readline Killing Commands} -@xrdef{Readline Killing Commands-snt}{Section@tie 1.2.3} -@xrdef{Readline Movement Commands-pg}{2} -@xrdef{Readline Killing Commands-pg}{2} -@xrdef{Readline Arguments-title}{Readline Arguments} -@xrdef{Readline Arguments-snt}{Section@tie 1.2.4} -@xrdef{Searching-title}{Searching for Commands in the History} -@xrdef{Searching-snt}{Section@tie 1.2.5} -@xrdef{Readline Arguments-pg}{3} -@xrdef{Searching-pg}{3} -@xrdef{Readline Init File-title}{Readline Init File} -@xrdef{Readline Init File-snt}{Section@tie 1.3} -@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax} -@xrdef{Readline Init File Syntax-snt}{Section@tie 1.3.1} -@xrdef{Readline Init File-pg}{4} -@xrdef{Readline Init File Syntax-pg}{4} -@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs} -@xrdef{Conditional Init Constructs-snt}{Section@tie 1.3.2} -@xrdef{Conditional Init Constructs-pg}{10} -@xrdef{Sample Init File-title}{Sample Init File} -@xrdef{Sample Init File-snt}{Section@tie 1.3.3} -@xrdef{Sample Init File-pg}{11} -@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands} -@xrdef{Bindable Readline Commands-snt}{Section@tie 1.4} -@xrdef{Commands For Moving-title}{Commands For Moving} -@xrdef{Commands For Moving-snt}{Section@tie 1.4.1} -@xrdef{Commands For History-title}{Commands For Manipulating The History} -@xrdef{Commands For History-snt}{Section@tie 1.4.2} -@xrdef{Bindable Readline Commands-pg}{14} -@xrdef{Commands For Moving-pg}{14} -@xrdef{Commands For History-pg}{14} -@xrdef{Commands For Text-title}{Commands For Changing Text} -@xrdef{Commands For Text-snt}{Section@tie 1.4.3} -@xrdef{Commands For Text-pg}{16} -@xrdef{Commands For Killing-title}{Killing And Yanking} -@xrdef{Commands For Killing-snt}{Section@tie 1.4.4} -@xrdef{Commands For Killing-pg}{17} -@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments} -@xrdef{Numeric Arguments-snt}{Section@tie 1.4.5} -@xrdef{Commands For Completion-title}{Letting Readline Type For You} -@xrdef{Commands For Completion-snt}{Section@tie 1.4.6} -@xrdef{Numeric Arguments-pg}{18} -@xrdef{Commands For Completion-pg}{18} -@xrdef{Keyboard Macros-title}{Keyboard Macros} -@xrdef{Keyboard Macros-snt}{Section@tie 1.4.7} -@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands} -@xrdef{Miscellaneous Commands-snt}{Section@tie 1.4.8} -@xrdef{Keyboard Macros-pg}{19} -@xrdef{Miscellaneous Commands-pg}{19} -@xrdef{Readline vi Mode-title}{Readline vi Mode} -@xrdef{Readline vi Mode-snt}{Section@tie 1.5} -@xrdef{Readline vi Mode-pg}{21} -@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License} -@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char65{}} -@xrdef{GNU Free Documentation License-pg}{22} diff --git a/lib/readline/doc/rluserman.bt b/lib/readline/doc/rluserman.bt deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/rluserman.cp b/lib/readline/doc/rluserman.cp deleted file mode 100644 index a8eab78dd..000000000 --- a/lib/readline/doc/rluserman.cp +++ /dev/null @@ -1,9 +0,0 @@ -\entry{interaction, readline}{1}{interaction, readline} -\entry{notation, readline}{1}{notation, readline} -\entry{command editing}{1}{command editing} -\entry{editing command lines}{1}{editing command lines} -\entry{killing text}{2}{killing text} -\entry{yanking text}{2}{yanking text} -\entry{kill ring}{2}{kill ring} -\entry{initialization file, readline}{4}{initialization file, readline} -\entry{variables, readline}{4}{variables, readline} diff --git a/lib/readline/doc/rluserman.cps b/lib/readline/doc/rluserman.cps deleted file mode 100644 index 5589192f2..000000000 --- a/lib/readline/doc/rluserman.cps +++ /dev/null @@ -1,16 +0,0 @@ -\initial {C} -\entry {command editing}{1} -\initial {E} -\entry {editing command lines}{1} -\initial {I} -\entry {initialization file, readline}{4} -\entry {interaction, readline}{1} -\initial {K} -\entry {kill ring}{2} -\entry {killing text}{2} -\initial {N} -\entry {notation, readline}{1} -\initial {V} -\entry {variables, readline}{4} -\initial {Y} -\entry {yanking text}{2} diff --git a/lib/readline/doc/rluserman.dvi b/lib/readline/doc/rluserman.dvi deleted file mode 100644 index 5f1c04472..000000000 Binary files a/lib/readline/doc/rluserman.dvi and /dev/null differ diff --git a/lib/readline/doc/rluserman.fn b/lib/readline/doc/rluserman.fn deleted file mode 100644 index ac365006a..000000000 --- a/lib/readline/doc/rluserman.fn +++ /dev/null @@ -1,77 +0,0 @@ -\entry{beginning-of-line (C-a)}{14}{\code {beginning-of-line (C-a)}} -\entry{end-of-line (C-e)}{14}{\code {end-of-line (C-e)}} -\entry{forward-char (C-f)}{14}{\code {forward-char (C-f)}} -\entry{backward-char (C-b)}{14}{\code {backward-char (C-b)}} -\entry{forward-word (M-f)}{14}{\code {forward-word (M-f)}} -\entry{backward-word (M-b)}{14}{\code {backward-word (M-b)}} -\entry{clear-screen (C-l)}{14}{\code {clear-screen (C-l)}} -\entry{redraw-current-line ()}{14}{\code {redraw-current-line ()}} -\entry{accept-line (Newline or Return)}{14}{\code {accept-line (Newline or Return)}} -\entry{previous-history (C-p)}{14}{\code {previous-history (C-p)}} -\entry{next-history (C-n)}{15}{\code {next-history (C-n)}} -\entry{beginning-of-history (M-<)}{15}{\code {beginning-of-history (M-<)}} -\entry{end-of-history (M->)}{15}{\code {end-of-history (M->)}} -\entry{reverse-search-history (C-r)}{15}{\code {reverse-search-history (C-r)}} -\entry{forward-search-history (C-s)}{15}{\code {forward-search-history (C-s)}} -\entry{non-incremental-reverse-search-history (M-p)}{15}{\code {non-incremental-reverse-search-history (M-p)}} -\entry{non-incremental-forward-search-history (M-n)}{15}{\code {non-incremental-forward-search-history (M-n)}} -\entry{history-search-forward ()}{15}{\code {history-search-forward ()}} -\entry{history-search-backward ()}{15}{\code {history-search-backward ()}} -\entry{yank-nth-arg (M-C-y)}{15}{\code {yank-nth-arg (M-C-y)}} -\entry{yank-last-arg (M-. or M-_)}{15}{\code {yank-last-arg (M-. or M-_)}} -\entry{delete-char (C-d)}{16}{\code {delete-char (C-d)}} -\entry{backward-delete-char (Rubout)}{16}{\code {backward-delete-char (Rubout)}} -\entry{forward-backward-delete-char ()}{16}{\code {forward-backward-delete-char ()}} -\entry{quoted-insert (C-q or C-v)}{16}{\code {quoted-insert (C-q or C-v)}} -\entry{tab-insert (M-TAB)}{16}{\code {tab-insert (M-\key {TAB})}} -\entry{self-insert (a, b, A, 1, !, ...{})}{16}{\code {self-insert (a, b, A, 1, !, \dots {})}} -\entry{transpose-chars (C-t)}{16}{\code {transpose-chars (C-t)}} -\entry{transpose-words (M-t)}{16}{\code {transpose-words (M-t)}} -\entry{upcase-word (M-u)}{16}{\code {upcase-word (M-u)}} -\entry{downcase-word (M-l)}{16}{\code {downcase-word (M-l)}} -\entry{capitalize-word (M-c)}{16}{\code {capitalize-word (M-c)}} -\entry{overwrite-mode ()}{17}{\code {overwrite-mode ()}} -\entry{kill-line (C-k)}{17}{\code {kill-line (C-k)}} -\entry{backward-kill-line (C-x Rubout)}{17}{\code {backward-kill-line (C-x Rubout)}} -\entry{unix-line-discard (C-u)}{17}{\code {unix-line-discard (C-u)}} -\entry{kill-whole-line ()}{17}{\code {kill-whole-line ()}} -\entry{kill-word (M-d)}{17}{\code {kill-word (M-d)}} -\entry{backward-kill-word (M-DEL)}{17}{\code {backward-kill-word (M-\key {DEL})}} -\entry{unix-word-rubout (C-w)}{17}{\code {unix-word-rubout (C-w)}} -\entry{unix-filename-rubout ()}{17}{\code {unix-filename-rubout ()}} -\entry{delete-horizontal-space ()}{17}{\code {delete-horizontal-space ()}} -\entry{kill-region ()}{17}{\code {kill-region ()}} -\entry{copy-region-as-kill ()}{17}{\code {copy-region-as-kill ()}} -\entry{copy-backward-word ()}{17}{\code {copy-backward-word ()}} -\entry{copy-forward-word ()}{18}{\code {copy-forward-word ()}} -\entry{yank (C-y)}{18}{\code {yank (C-y)}} -\entry{yank-pop (M-y)}{18}{\code {yank-pop (M-y)}} -\entry{digit-argument (M-0, M-1, ...{} M--)}{18}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}} -\entry{universal-argument ()}{18}{\code {universal-argument ()}} -\entry{complete (TAB)}{18}{\code {complete (\key {TAB})}} -\entry{possible-completions (M-?)}{18}{\code {possible-completions (M-?)}} -\entry{insert-completions (M-*)}{18}{\code {insert-completions (M-*)}} -\entry{menu-complete ()}{18}{\code {menu-complete ()}} -\entry{menu-complete-backward ()}{19}{\code {menu-complete-backward ()}} -\entry{delete-char-or-list ()}{19}{\code {delete-char-or-list ()}} -\entry{start-kbd-macro (C-x ()}{19}{\code {start-kbd-macro (C-x ()}} -\entry{end-kbd-macro (C-x ))}{19}{\code {end-kbd-macro (C-x ))}} -\entry{call-last-kbd-macro (C-x e)}{19}{\code {call-last-kbd-macro (C-x e)}} -\entry{re-read-init-file (C-x C-r)}{19}{\code {re-read-init-file (C-x C-r)}} -\entry{abort (C-g)}{19}{\code {abort (C-g)}} -\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{19}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}} -\entry{prefix-meta (ESC)}{19}{\code {prefix-meta (\key {ESC})}} -\entry{undo (C-_ or C-x C-u)}{19}{\code {undo (C-_ or C-x C-u)}} -\entry{revert-line (M-r)}{19}{\code {revert-line (M-r)}} -\entry{tilde-expand (M-~)}{19}{\code {tilde-expand (M-~)}} -\entry{set-mark (C-@)}{19}{\code {set-mark (C-@)}} -\entry{exchange-point-and-mark (C-x C-x)}{20}{\code {exchange-point-and-mark (C-x C-x)}} -\entry{character-search (C-])}{20}{\code {character-search (C-])}} -\entry{character-search-backward (M-C-])}{20}{\code {character-search-backward (M-C-])}} -\entry{skip-csi-sequence ()}{20}{\code {skip-csi-sequence ()}} -\entry{insert-comment (M-#)}{20}{\code {insert-comment (M-#)}} -\entry{dump-functions ()}{20}{\code {dump-functions ()}} -\entry{dump-variables ()}{20}{\code {dump-variables ()}} -\entry{dump-macros ()}{20}{\code {dump-macros ()}} -\entry{emacs-editing-mode (C-e)}{20}{\code {emacs-editing-mode (C-e)}} -\entry{vi-editing-mode (M-C-j)}{20}{\code {vi-editing-mode (M-C-j)}} diff --git a/lib/readline/doc/rluserman.fns b/lib/readline/doc/rluserman.fns deleted file mode 100644 index 06900a779..000000000 --- a/lib/readline/doc/rluserman.fns +++ /dev/null @@ -1,97 +0,0 @@ -\initial {A} -\entry {\code {abort (C-g)}}{19} -\entry {\code {accept-line (Newline or Return)}}{14} -\initial {B} -\entry {\code {backward-char (C-b)}}{14} -\entry {\code {backward-delete-char (Rubout)}}{16} -\entry {\code {backward-kill-line (C-x Rubout)}}{17} -\entry {\code {backward-kill-word (M-\key {DEL})}}{17} -\entry {\code {backward-word (M-b)}}{14} -\entry {\code {beginning-of-history (M-<)}}{15} -\entry {\code {beginning-of-line (C-a)}}{14} -\initial {C} -\entry {\code {call-last-kbd-macro (C-x e)}}{19} -\entry {\code {capitalize-word (M-c)}}{16} -\entry {\code {character-search (C-])}}{20} -\entry {\code {character-search-backward (M-C-])}}{20} -\entry {\code {clear-screen (C-l)}}{14} -\entry {\code {complete (\key {TAB})}}{18} -\entry {\code {copy-backward-word ()}}{17} -\entry {\code {copy-forward-word ()}}{18} -\entry {\code {copy-region-as-kill ()}}{17} -\initial {D} -\entry {\code {delete-char (C-d)}}{16} -\entry {\code {delete-char-or-list ()}}{19} -\entry {\code {delete-horizontal-space ()}}{17} -\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{18} -\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{19} -\entry {\code {downcase-word (M-l)}}{16} -\entry {\code {dump-functions ()}}{20} -\entry {\code {dump-macros ()}}{20} -\entry {\code {dump-variables ()}}{20} -\initial {E} -\entry {\code {emacs-editing-mode (C-e)}}{20} -\entry {\code {end-kbd-macro (C-x ))}}{19} -\entry {\code {end-of-history (M->)}}{15} -\entry {\code {end-of-line (C-e)}}{14} -\entry {\code {exchange-point-and-mark (C-x C-x)}}{20} -\initial {F} -\entry {\code {forward-backward-delete-char ()}}{16} -\entry {\code {forward-char (C-f)}}{14} -\entry {\code {forward-search-history (C-s)}}{15} -\entry {\code {forward-word (M-f)}}{14} -\initial {H} -\entry {\code {history-search-backward ()}}{15} -\entry {\code {history-search-forward ()}}{15} -\initial {I} -\entry {\code {insert-comment (M-#)}}{20} -\entry {\code {insert-completions (M-*)}}{18} -\initial {K} -\entry {\code {kill-line (C-k)}}{17} -\entry {\code {kill-region ()}}{17} -\entry {\code {kill-whole-line ()}}{17} -\entry {\code {kill-word (M-d)}}{17} -\initial {M} -\entry {\code {menu-complete ()}}{18} -\entry {\code {menu-complete-backward ()}}{19} -\initial {N} -\entry {\code {next-history (C-n)}}{15} -\entry {\code {non-incremental-forward-search-history (M-n)}}{15} -\entry {\code {non-incremental-reverse-search-history (M-p)}}{15} -\initial {O} -\entry {\code {overwrite-mode ()}}{17} -\initial {P} -\entry {\code {possible-completions (M-?)}}{18} -\entry {\code {prefix-meta (\key {ESC})}}{19} -\entry {\code {previous-history (C-p)}}{14} -\initial {Q} -\entry {\code {quoted-insert (C-q or C-v)}}{16} -\initial {R} -\entry {\code {re-read-init-file (C-x C-r)}}{19} -\entry {\code {redraw-current-line ()}}{14} -\entry {\code {reverse-search-history (C-r)}}{15} -\entry {\code {revert-line (M-r)}}{19} -\initial {S} -\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{16} -\entry {\code {set-mark (C-@)}}{19} -\entry {\code {skip-csi-sequence ()}}{20} -\entry {\code {start-kbd-macro (C-x ()}}{19} -\initial {T} -\entry {\code {tab-insert (M-\key {TAB})}}{16} -\entry {\code {tilde-expand (M-~)}}{19} -\entry {\code {transpose-chars (C-t)}}{16} -\entry {\code {transpose-words (M-t)}}{16} -\initial {U} -\entry {\code {undo (C-_ or C-x C-u)}}{19} -\entry {\code {universal-argument ()}}{18} -\entry {\code {unix-filename-rubout ()}}{17} -\entry {\code {unix-line-discard (C-u)}}{17} -\entry {\code {unix-word-rubout (C-w)}}{17} -\entry {\code {upcase-word (M-u)}}{16} -\initial {V} -\entry {\code {vi-editing-mode (M-C-j)}}{20} -\initial {Y} -\entry {\code {yank (C-y)}}{18} -\entry {\code {yank-last-arg (M-. or M-_)}}{15} -\entry {\code {yank-nth-arg (M-C-y)}}{15} -\entry {\code {yank-pop (M-y)}}{18} diff --git a/lib/readline/doc/rluserman.html b/lib/readline/doc/rluserman.html deleted file mode 100644 index 1e9c579a6..000000000 --- a/lib/readline/doc/rluserman.html +++ /dev/null @@ -1,2926 +0,0 @@ - - - - - -GNU Readline Library: - - - - - - - - - - - - - - - - - -
[Top][Contents][Index][ ? ]
-

GNU Readline Library

- -This document describes the end user interface of the GNU Readline Library, -a utility which aids in the consistency of user interface across discrete -programs which provide a command line interface. -

- -

- - -
1. Command Line Editing  GNU Readline User's Manual.
A. GNU Free Documentation License  License for copying this manual.
-

- -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
- -

1. Command Line Editing

- -

- -This chapter describes the basic features of the GNU -command line editing interface. -

- -

- - - - - -
1.1 Introduction to Line Editing  Notation used in this text.
1.2 Readline Interaction  The minimum set of commands for editing a line.
1.3 Readline Init File  Customizing Readline from a user's view.
1.4 Bindable Readline Commands  A description of most of the Readline commands - available for binding
1.5 Readline vi Mode  A short description of how to make Readline - behave like the vi editor.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.1 Introduction to Line Editing

- -

- -The following paragraphs describe the notation used to represent -keystrokes. -

- -The text C-k is read as `Control-K' and describes the character -produced when the k key is pressed while the Control key -is depressed. -

- -The text M-k is read as `Meta-K' and describes the character -produced when the Meta key (if you have one) is depressed, and the k -key is pressed. -The Meta key is labeled ALT on many keyboards. -On keyboards with two keys labeled ALT (usually to either side of -the space bar), the ALT on the left side is generally set to -work as a Meta key. -The ALT key on the right may also be configured to work as a -Meta key or may be configured as some other modifier, such as a -Compose key for typing accented characters. -

- -If you do not have a Meta or ALT key, or another key working as -a Meta key, the identical keystroke can be generated by typing ESC -first, and then typing k. -Either process is known as metafying the k key. -

- -The text M-C-k is read as `Meta-Control-k' and describes the -character produced by metafying C-k. -

- -In addition, several keys have their own names. Specifically, -DEL, ESC, LFD, SPC, RET, and TAB all -stand for themselves when seen in this text, or in an init file -(see section 1.3 Readline Init File). -If your keyboard lacks a LFD key, typing C-j will -produce the desired character. -The RET key may be labeled Return or Enter on -some keyboards. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2 Readline Interaction

- -

- -Often during an interactive session you type in a long line of text, -only to notice that the first word on the line is misspelled. The -Readline library gives you a set of commands for manipulating the text -as you type it in, allowing you to just fix your typo, and not forcing -you to retype the majority of the line. Using these editing commands, -you move the cursor to the place that needs correction, and delete or -insert the text of the corrections. Then, when you are satisfied with -the line, you simply press RET. You do not have to be at the -end of the line to press RET; the entire line is accepted -regardless of the location of the cursor within the line. -

- -

- - - - - -
1.2.1 Readline Bare Essentials  The least you need to know about Readline.
1.2.2 Readline Movement Commands  Moving about the input line.
1.2.3 Readline Killing Commands  How to delete text, and how to get it back!
1.2.4 Readline Arguments  Giving numeric arguments to commands.
1.2.5 Searching for Commands in the History  Searching through previous lines.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2.1 Readline Bare Essentials

- -

- -In order to enter characters into the line, simply type them. The typed -character appears where the cursor was, and then the cursor moves one -space to the right. If you mistype a character, you can use your -erase character to back up and delete the mistyped character. -

- -Sometimes you may mistype a character, and -not notice the error until you have typed several other characters. In -that case, you can type C-b to move the cursor to the left, and then -correct your mistake. Afterwards, you can move the cursor to the right -with C-f. -

- -When you add text in the middle of a line, you will notice that characters -to the right of the cursor are `pushed over' to make room for the text -that you have inserted. Likewise, when you delete text behind the cursor, -characters to the right of the cursor are `pulled back' to fill in the -blank space created by the removal of the text. A list of the bare -essentials for editing the text of an input line follows. -

- -

-
C-b -
Move back one character. -
C-f -
Move forward one character. -
DEL or Backspace -
Delete the character to the left of the cursor. -
C-d -
Delete the character underneath the cursor. -
Printing characters -
Insert the character into the line at the cursor. -
C-_ or C-x C-u -
Undo the last editing command. You can undo all the way back to an -empty line. -
-

- -(Depending on your configuration, the Backspace key be set to -delete the character to the left of the cursor and the DEL key set -to delete the character underneath the cursor, like C-d, rather -than the character to the left of the cursor.) -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2.2 Readline Movement Commands

- -

- -The above table describes the most basic keystrokes that you need -in order to do editing of the input line. For your convenience, many -other commands have been added in addition to C-b, C-f, -C-d, and DEL. Here are some commands for moving more rapidly -about the line. -

- -

-
C-a -
Move to the start of the line. -
C-e -
Move to the end of the line. -
M-f -
Move forward a word, where a word is composed of letters and digits. -
M-b -
Move backward a word. -
C-l -
Clear the screen, reprinting the current line at the top. -
-

- -Notice how C-f moves forward a character, while M-f moves -forward a word. It is a loose convention that control keystrokes -operate on characters while meta keystrokes operate on words. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2.3 Readline Killing Commands

- -

- - - -

- -Killing text means to delete the text from the line, but to save -it away for later use, usually by yanking (re-inserting) -it back into the line. -(`Cut' and `paste' are more recent jargon for `kill' and `yank'.) -

- -If the description for a command says that it `kills' text, then you can -be sure that you can get the text back in a different (or the same) -place later. -

- -When you use a kill command, the text is saved in a kill-ring. -Any number of consecutive kills save all of the killed text together, so -that when you yank it back, you get it all. The kill -ring is not line specific; the text that you killed on a previously -typed line is available to be yanked back later, when you are typing -another line. - -

- -Here is the list of commands for killing text. -

- -

-
C-k -
Kill the text from the current cursor position to the end of the line. -

- -

M-d -
Kill from the cursor to the end of the current word, or, if between -words, to the end of the next word. -Word boundaries are the same as those used by M-f. -

- -

M-DEL -
Kill from the cursor the start of the current word, or, if between -words, to the start of the previous word. -Word boundaries are the same as those used by M-b. -

- -

C-w -
Kill from the cursor to the previous whitespace. This is different than -M-DEL because the word boundaries differ. -

- -

-

- -Here is how to yank the text back into the line. Yanking -means to copy the most-recently-killed text from the kill buffer. -

- -

-
C-y -
Yank the most recently killed text back into the buffer at the cursor. -

- -

M-y -
Rotate the kill-ring, and yank the new top. You can only do this if -the prior command is C-y or M-y. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2.4 Readline Arguments

- -

- -You can pass numeric arguments to Readline commands. Sometimes the -argument acts as a repeat count, other times it is the sign of the -argument that is significant. If you pass a negative argument to a -command which normally acts in a forward direction, that command will -act in a backward direction. For example, to kill text back to the -start of the line, you might type `M-- C-k'. -

- -The general way to pass numeric arguments to a command is to type meta -digits before the command. If the first `digit' typed is a minus -sign (`-'), then the sign of the argument will be negative. Once -you have typed one meta digit to get the argument started, you can type -the remainder of the digits, and then the command. For example, to give -the C-d command an argument of 10, you could type `M-1 0 C-d', -which will delete the next ten characters on the input line. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.2.5 Searching for Commands in the History

- -

- -Readline provides commands for searching through the command history -for lines containing a specified string. -There are two search modes: incremental and non-incremental. -

- -Incremental searches begin before the user has finished typing the -search string. -As each character of the search string is typed, Readline displays -the next entry from the history matching the string typed so far. -An incremental search requires only as many characters as needed to -find the desired history entry. -To search backward in the history for a particular string, type -C-r. Typing C-s searches forward through the history. -The characters present in the value of the isearch-terminators variable -are used to terminate an incremental search. -If that variable has not been assigned a value, the ESC and -C-J characters will terminate an incremental search. -C-g will abort an incremental search and restore the original line. -When the search is terminated, the history entry containing the -search string becomes the current line. -

- -To find other matching entries in the history list, type C-r or -C-s as appropriate. -This will search backward or forward in the history for the next -entry matching the search string typed so far. -Any other key sequence bound to a Readline command will terminate -the search and execute that command. -For instance, a RET will terminate the search and accept -the line, thereby executing the command from the history list. -A movement command will terminate the search, make the last line found -the current line, and begin editing. -

- -Readline remembers the last incremental search string. If two -C-rs are typed without any intervening characters defining a new -search string, any remembered search string is used. -

- -Non-incremental searches read the entire search string before starting -to search for matching history lines. The search string may be -typed by the user or be part of the contents of the current line. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.3 Readline Init File

- -

- -Although the Readline library comes with a set of Emacs-like -keybindings installed by default, it is possible to use a different set -of keybindings. -Any user can customize programs that use Readline by putting -commands in an inputrc file, conventionally in his home directory. -The name of this -file is taken from the value of the environment variable INPUTRC. If -that variable is unset, the default is `~/.inputrc'. If that -file does not exist or cannot be read, the ultimate default is -`/etc/inputrc'. -

- -When a program which uses the Readline library starts up, the -init file is read, and the key bindings are set. -

- -In addition, the C-x C-r command re-reads this init file, thus -incorporating any changes that you might have made to it. -

- -

- -
1.3.1 Readline Init File Syntax  Syntax for the commands in the inputrc file.
- -
- - -
1.3.2 Conditional Init Constructs  Conditional key bindings in the inputrc file.
- -
- - -
1.3.3 Sample Init File  An example inputrc file.
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.3.1 Readline Init File Syntax

- -

- -There are only a few basic constructs allowed in the -Readline init file. Blank lines are ignored. -Lines beginning with a `#' are comments. -Lines beginning with a `$' indicate conditional -constructs (see section 1.3.2 Conditional Init Constructs). Other lines -denote variable settings and key bindings. -

- -

-
Variable Settings -
You can modify the run-time behavior of Readline by -altering the values of variables in Readline -using the set command within the init file. -The syntax is simple: -

- -
 
set variable value
-

- -Here, for example, is how to -change from the default Emacs-like key binding to use -vi line editing commands: -

- -
 
set editing-mode vi
-

- -Variable names and values, where appropriate, are recognized without regard -to case. Unrecognized variable names are ignored. -

- -Boolean variables (those that can be set to on or off) are set to on if -the value is null or empty, on (case-insensitive), or 1. Any other -value results in the variable being set to off. -

- -A great deal of run-time behavior is changeable with the following -variables. -

- - -

- -
bell-style -
-Controls what happens when Readline wants to ring the terminal bell. -If set to `none', Readline never rings the bell. If set to -`visible', Readline uses a visible bell if one is available. -If set to `audible' (the default), Readline attempts to ring -the terminal's bell. -

- -

bind-tty-special-chars -
-If set to `on', Readline attempts to bind the control characters -treated specially by the kernel's terminal driver to their Readline -equivalents. -

- -

comment-begin -
-The string to insert at the beginning of the line when the -insert-comment command is executed. The default value -is "#". -

- -

completion-display-width -
-The number of screen columns used to display possible matches -when performing completion. -The value is ignored if it is less than 0 or greater than the terminal -screen width. -A value of 0 will cause matches to be displayed one per line. -The default value is -1. -

- -

completion-ignore-case -
-If set to `on', Readline performs filename matching and completion -in a case-insensitive fashion. -The default value is `off'. -

- -

completion-map-case -
-If set to `on', and completion-ignore-case is enabled, Readline -treats hyphens (`-') and underscores (`_') as equivalent when -performing case-insensitive filename matching and completion. -

- -

completion-prefix-display-length -
-The length in characters of the common prefix of a list of possible -completions that is displayed without modification. When set to a -value greater than zero, common prefixes longer than this value are -replaced with an ellipsis when displaying possible completions. -

- -

completion-query-items -
-The number of possible completions that determines when the user is -asked whether the list of possibilities should be displayed. -If the number of possible completions is greater than this value, -Readline will ask the user whether or not he wishes to view -them; otherwise, they are simply listed. -This variable must be set to an integer value greater than or equal to 0. -A negative value means Readline should never ask. -The default limit is 100. -

- -

convert-meta -
-If set to `on', Readline will convert characters with the -eighth bit set to an ASCII key sequence by stripping the eighth -bit and prefixing an ESC character, converting them to a -meta-prefixed key sequence. The default value is `on'. -

- -

disable-completion -
-If set to `On', Readline will inhibit word completion. -Completion characters will be inserted into the line as if they had -been mapped to self-insert. The default is `off'. -

- -

editing-mode -
-The editing-mode variable controls which default set of -key bindings is used. By default, Readline starts up in Emacs editing -mode, where the keystrokes are most similar to Emacs. This variable can be -set to either `emacs' or `vi'. -

- -

echo-control-characters -
When set to `on', on operating systems that indicate they support it, -readline echoes a character corresponding to a signal generated from the -keyboard. The default is `on'. -

- -

enable-keypad -
-When set to `on', Readline will try to enable the application -keypad when it is called. Some systems need this to enable the -arrow keys. The default is `off'. -

- -

enable-meta-key -
When set to `on', Readline will try to enable any meta modifier -key the terminal claims to support when it is called. On many terminals, -the meta key is used to send eight-bit characters. -The default is `on'. -

- -

expand-tilde -
-If set to `on', tilde expansion is performed when Readline -attempts word completion. The default is `off'. -

- -

history-preserve-point -
-If set to `on', the history code attempts to place the point (the -current cursor position) at the -same location on each history line retrieved with previous-history -or next-history. The default is `off'. -

- -

history-size -
-Set the maximum number of history entries saved in the history list. If -set to zero, the number of entries in the history list is not limited. -

- -

horizontal-scroll-mode -
-This variable can be set to either `on' or `off'. Setting it -to `on' means that the text of the lines being edited will scroll -horizontally on a single screen line when they are longer than the width -of the screen, instead of wrapping onto a new screen line. By default, -this variable is set to `off'. -

- -

input-meta -
- -If set to `on', Readline will enable eight-bit input (it -will not clear the eighth bit in the characters it reads), -regardless of what the terminal claims it can support. The -default value is `off'. The name meta-flag is a -synonym for this variable. -

- -

isearch-terminators -
-The string of characters that should terminate an incremental search without -subsequently executing the character as a command (see section 1.2.5 Searching for Commands in the History). -If this variable has not been given a value, the characters ESC and -C-J will terminate an incremental search. -

- -

keymap -
-Sets Readline's idea of the current keymap for key binding commands. -Acceptable keymap names are -emacs, -emacs-standard, -emacs-meta, -emacs-ctlx, -vi, -vi-move, -vi-command, and -vi-insert. -vi is equivalent to vi-command; emacs is -equivalent to emacs-standard. The default value is emacs. -The value of the editing-mode variable also affects the -default keymap. -

- -

mark-directories -
If set to `on', completed directory names have a slash -appended. The default is `on'. -

- -

mark-modified-lines -
-This variable, when set to `on', causes Readline to display an -asterisk (`*') at the start of history lines which have been modified. -This variable is `off' by default. -

- -

mark-symlinked-directories -
-If set to `on', completed names which are symbolic links -to directories have a slash appended (subject to the value of -mark-directories). -The default is `off'. -

- -

match-hidden-files -
-This variable, when set to `on', causes Readline to match files whose -names begin with a `.' (hidden files) when performing filename -completion. -If set to `off', the leading `.' must be -supplied by the user in the filename to be completed. -This variable is `on' by default. -

- -

menu-complete-display-prefix -
-If set to `on', menu completion displays the common prefix of the -list of possible completions (which may be empty) before cycling through -the list. The default is `off'. -

- -

output-meta -
-If set to `on', Readline will display characters with the -eighth bit set directly rather than as a meta-prefixed escape -sequence. The default is `off'. -

- -

page-completions -
-If set to `on', Readline uses an internal more-like pager -to display a screenful of possible completions at a time. -This variable is `on' by default. -

- -

print-completions-horizontally -
If set to `on', Readline will display completions with matches -sorted horizontally in alphabetical order, rather than down the screen. -The default is `off'. -

- -

revert-all-at-newline -
-If set to `on', Readline will undo all changes to history lines -before returning when accept-line is executed. By default, -history lines may be modified and retain individual undo lists across -calls to readline. The default is `off'. -

- -

show-all-if-ambiguous -
-This alters the default behavior of the completion functions. If -set to `on', -words which have more than one possible completion cause the -matches to be listed immediately instead of ringing the bell. -The default value is `off'. -

- -

show-all-if-unmodified -
-This alters the default behavior of the completion functions in -a fashion similar to show-all-if-ambiguous. -If set to `on', -words which have more than one possible completion without any -possible partial completion (the possible completions don't share -a common prefix) cause the matches to be listed immediately instead -of ringing the bell. -The default value is `off'. -

- -

skip-completed-text -
-If set to `on', this alters the default completion behavior when -inserting a single match into the line. It's only active when -performing completion in the middle of a word. If enabled, readline -does not insert characters from the completion that match characters -after point in the word being completed, so portions of the word -following the cursor are not duplicated. -For instance, if this is enabled, attempting completion when the cursor -is after the `e' in `Makefile' will result in `Makefile' -rather than `Makefilefile', assuming there is a single possible -completion. -The default value is `off'. -

- -

visible-stats -
-If set to `on', a character denoting a file's type -is appended to the filename when listing possible -completions. The default is `off'. -

- -

-

- -

Key Bindings -
The syntax for controlling key bindings in the init file is -simple. First you need to find the name of the command that you -want to change. The following sections contain tables of the command -name, the default keybinding, if any, and a short description of what -the command does. -

- -Once you know the name of the command, simply place on a line -in the init file the name of the key -you wish to bind the command to, a colon, and then the name of the -command. -There can be no space between the key name and the colon -- that will be -interpreted as part of the key name. -The name of the key can be expressed in different ways, depending on -what you find most comfortable. -

- -In addition to command names, readline allows keys to be bound -to a string that is inserted when the key is pressed (a macro). -

- -

-
keyname: function-name or macro -
keyname is the name of a key spelled out in English. For example: -
 
Control-u: universal-argument
-Meta-Rubout: backward-kill-word
-Control-o: "> output"
-

- -In the above example, C-u is bound to the function -universal-argument, -M-DEL is bound to the function backward-kill-word, and -C-o is bound to run the macro -expressed on the right hand side (that is, to insert the text -`> output' into the line). -

- -A number of symbolic character names are recognized while -processing this key binding syntax: -DEL, -ESC, -ESCAPE, -LFD, -NEWLINE, -RET, -RETURN, -RUBOUT, -SPACE, -SPC, -and -TAB. -

- -

"keyseq": function-name or macro -
keyseq differs from keyname above in that strings -denoting an entire key sequence can be specified, by placing -the key sequence in double quotes. Some GNU Emacs style key -escapes can be used, as in the following example, but the -special character names are not recognized. -

- -
 
"\C-u": universal-argument
-"\C-x\C-r": re-read-init-file
-"\e[11~": "Function Key 1"
-

- -In the above example, C-u is again bound to the function -universal-argument (just as it was in the first example), -`C-x C-r' is bound to the function re-read-init-file, -and `ESC [ 1 1 ~' is bound to insert -the text `Function Key 1'. -

- -

-

- -The following GNU Emacs style escape sequences are available when -specifying key sequences: -

- -

-
\C- -
control prefix -
\M- -
meta prefix -
\e -
an escape character -
\\ -
backslash -
\" -
", a double quotation mark -
\' -
', a single quote or apostrophe -
-

- -In addition to the GNU Emacs style escape sequences, a second -set of backslash escapes is available: -

- -

-
\a -
alert (bell) -
\b -
backspace -
\d -
delete -
\f -
form feed -
\n -
newline -
\r -
carriage return -
\t -
horizontal tab -
\v -
vertical tab -
\nnn -
the eight-bit character whose value is the octal value nnn -(one to three digits) -
\xHH -
the eight-bit character whose value is the hexadecimal value HH -(one or two hex digits) -
-

- -When entering the text of a macro, single or double quotes must -be used to indicate a macro definition. -Unquoted text is assumed to be a function name. -In the macro body, the backslash escapes described above are expanded. -Backslash will quote any other character in the macro text, -including `"' and `''. -For example, the following binding will make `C-x \' -insert a single `\' into the line: -
 
"\C-x\\": "\\"
-

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.3.2 Conditional Init Constructs

- -

- -Readline implements a facility similar in spirit to the conditional -compilation features of the C preprocessor which allows key -bindings and variable settings to be performed as the result -of tests. There are four parser directives used. -

- -

-
$if -
The $if construct allows bindings to be made based on the -editing mode, the terminal being used, or the application using -Readline. The text of the test extends to the end of the line; -no characters are required to isolate it. -

- -

-
mode -
The mode= form of the $if directive is used to test -whether Readline is in emacs or vi mode. -This may be used in conjunction -with the `set keymap' command, for instance, to set bindings in -the emacs-standard and emacs-ctlx keymaps only if -Readline is starting out in emacs mode. -

- -

term -
The term= form may be used to include terminal-specific -key bindings, perhaps to bind the key sequences output by the -terminal's function keys. The word on the right side of the -`=' is tested against both the full name of the terminal and -the portion of the terminal name before the first `-'. This -allows sun to match both sun and sun-cmd, -for instance. -

- -

application -
The application construct is used to include -application-specific settings. Each program using the Readline -library sets the application name, and you can test for -a particular value. -This could be used to bind key sequences to functions useful for -a specific program. For instance, the following command adds a -key sequence that quotes the current or previous word in Bash: -
 
$if Bash
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-$endif
-
-

- -

$endif -
This command, as seen in the previous example, terminates an -$if command. -

- -

$else -
Commands in this branch of the $if directive are executed if -the test fails. -

- -

$include -
This directive takes a single filename as an argument and reads commands -and bindings from that file. -For example, the following directive reads from `/etc/inputrc': -
 
$include /etc/inputrc
-
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.3.3 Sample Init File

- -

- -Here is an example of an inputrc file. This illustrates key -binding, variable assignment, and conditional syntax. -

- -
 
# This file controls the behaviour of line input editing for
-# programs that use the GNU Readline library.  Existing
-# programs include FTP, Bash, and GDB.
-#
-# You can re-read the inputrc file with C-x C-r.
-# Lines beginning with '#' are comments.
-#
-# First, include any systemwide bindings and variable
-# assignments from /etc/Inputrc
-$include /etc/Inputrc
-
-#
-# Set various bindings for emacs mode.
-
-set editing-mode emacs 
-
-$if mode=emacs
-
-Meta-Control-h:	backward-kill-word	Text after the function name is ignored
-
-#
-# Arrow keys in keypad mode
-#
-#"\M-OD":        backward-char
-#"\M-OC":        forward-char
-#"\M-OA":        previous-history
-#"\M-OB":        next-history
-#
-# Arrow keys in ANSI mode
-#
-"\M-[D":        backward-char
-"\M-[C":        forward-char
-"\M-[A":        previous-history
-"\M-[B":        next-history
-#
-# Arrow keys in 8 bit keypad mode
-#
-#"\M-\C-OD":       backward-char
-#"\M-\C-OC":       forward-char
-#"\M-\C-OA":       previous-history
-#"\M-\C-OB":       next-history
-#
-# Arrow keys in 8 bit ANSI mode
-#
-#"\M-\C-[D":       backward-char
-#"\M-\C-[C":       forward-char
-#"\M-\C-[A":       previous-history
-#"\M-\C-[B":       next-history
-
-C-q: quoted-insert
-
-$endif
-
-# An old-style binding.  This happens to be the default.
-TAB: complete
-
-# Macros that are convenient for shell interaction
-$if Bash
-# edit the path
-"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
-# prepare to type a quoted word --
-# insert open and close double quotes
-# and move to just after the open quote
-"\C-x\"": "\"\"\C-b"
-# insert a backslash (testing backslash escapes
-# in sequences and macros)
-"\C-x\\": "\\"
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-# Add a binding to refresh the line, which is unbound
-"\C-xr": redraw-current-line
-# Edit variable on current line.
-"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
-$endif
-
-# use a visible bell if one is available
-set bell-style visible
-
-# don't strip characters to 7 bits when reading
-set input-meta on
-
-# allow iso-latin1 characters to be inserted rather
-# than converted to prefix-meta sequences
-set convert-meta off
-
-# display characters with the eighth bit set directly
-# rather than as meta-prefixed characters
-set output-meta on
-
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
-set completion-query-items 150
-
-# For FTP
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4 Bindable Readline Commands

- -

- -

- - - - - - - - -
1.4.1 Commands For Moving  Moving about the line.
1.4.2 Commands For Manipulating The History  Getting at previous lines.
1.4.3 Commands For Changing Text  Commands for changing text.
1.4.4 Killing And Yanking  Commands for killing and yanking.
1.4.5 Specifying Numeric Arguments  Specifying numeric arguments, repeat counts.
1.4.6 Letting Readline Type For You  Getting Readline to do the typing for you.
1.4.7 Keyboard Macros  Saving and re-executing typed characters
1.4.8 Some Miscellaneous Commands  Other miscellaneous commands.
-

- -This section describes Readline commands that may be bound to key -sequences. -Command names without an accompanying key sequence are unbound by default. -

- -In the following descriptions, point refers to the current cursor -position, and mark refers to a cursor position saved by the -set-mark command. -The text between the point and mark is referred to as the region. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.1 Commands For Moving

- -
- -
beginning-of-line (C-a) -
-Move to the start of the current line. -

- - -

end-of-line (C-e) -
-Move to the end of the line. -

- - -

forward-char (C-f) -
-Move forward a character. -

- - -

backward-char (C-b) -
-Move back a character. -

- - -

forward-word (M-f) -
-Move forward to the end of the next word. -Words are composed of letters and digits. -

- - -

backward-word (M-b) -
-Move back to the start of the current or previous word. -Words are composed of letters and digits. -

- - -

clear-screen (C-l) -
-Clear the screen and redraw the current line, -leaving the current line at the top of the screen. -

- - -

redraw-current-line () -
-Refresh the current line. By default, this is unbound. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.2 Commands For Manipulating The History

- -

- -

- -
accept-line (Newline or Return) -
-Accept the line regardless of where the cursor is. -If this line is -non-empty, it may be added to the history list for future recall with -add_history(). -If this line is a modified history line, the history line is restored -to its original state. -

- - -

previous-history (C-p) -
-Move `back' through the history list, fetching the previous command. -

- - -

next-history (C-n) -
-Move `forward' through the history list, fetching the next command. -

- - -

beginning-of-history (M-<) -
-Move to the first line in the history. -

- - -

end-of-history (M->) -
-Move to the end of the input history, i.e., the line currently -being entered. -

- - -

reverse-search-history (C-r) -
-Search backward starting at the current line and moving `up' through -the history as necessary. This is an incremental search. -

- - -

forward-search-history (C-s) -
-Search forward starting at the current line and moving `down' through -the the history as necessary. This is an incremental search. -

- - -

non-incremental-reverse-search-history (M-p) -
-Search backward starting at the current line and moving `up' -through the history as necessary using a non-incremental search -for a string supplied by the user. -

- - -

non-incremental-forward-search-history (M-n) -
-Search forward starting at the current line and moving `down' -through the the history as necessary using a non-incremental search -for a string supplied by the user. -

- - -

history-search-forward () -
-Search forward through the history for the string of characters -between the start of the current line and the point. -This is a non-incremental search. -By default, this command is unbound. -

- - -

history-search-backward () -
-Search backward through the history for the string of characters -between the start of the current line and the point. This -is a non-incremental search. By default, this command is unbound. -

- - -

yank-nth-arg (M-C-y) -
-Insert the first argument to the previous command (usually -the second word on the previous line) at point. -With an argument n, -insert the nth word from the previous command (the words -in the previous command begin with word 0). A negative argument -inserts the nth word from the end of the previous command. -Once the argument n is computed, the argument is extracted -as if the `!n' history expansion had been specified. -

- - -

yank-last-arg (M-. or M-_) -
-Insert last argument to the previous command (the last word of the -previous history entry). -With a numeric argument, behave exactly like yank-nth-arg. -Successive calls to yank-last-arg move back through the history -list, inserting the last word (or the word specified by the argument to -the first call) of each line in turn. -Any numeric argument supplied to these successive calls determines -the direction to move through the history. A negative argument switches -the direction through the history (back or forward). -The history expansion facilities are used to extract the last argument, -as if the `!$' history expansion had been specified. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.3 Commands For Changing Text

- -

- -

- -
delete-char (C-d) -
-Delete the character at point. If point is at the -beginning of the line, there are no characters in the line, and -the last character typed was not bound to delete-char, then -return EOF. -

- - -

backward-delete-char (Rubout) -
-Delete the character behind the cursor. A numeric argument means -to kill the characters instead of deleting them. -

- - -

forward-backward-delete-char () -
-Delete the character under the cursor, unless the cursor is at the -end of the line, in which case the character behind the cursor is -deleted. By default, this is not bound to a key. -

- - -

quoted-insert (C-q or C-v) -
-Add the next character typed to the line verbatim. This is -how to insert key sequences like C-q, for example. -

- - -

tab-insert (M-TAB) -
-Insert a tab character. -

- - -

self-insert (a, b, A, 1, !, ...) -
-Insert yourself. -

- - -

transpose-chars (C-t) -
-Drag the character before the cursor forward over -the character at the cursor, moving the -cursor forward as well. If the insertion point -is at the end of the line, then this -transposes the last two characters of the line. -Negative arguments have no effect. -

- - -

transpose-words (M-t) -
-Drag the word before point past the word after point, -moving point past that word as well. -If the insertion point is at the end of the line, this transposes -the last two words on the line. -

- - -

upcase-word (M-u) -
-Uppercase the current (or following) word. With a negative argument, -uppercase the previous word, but do not move the cursor. -

- - -

downcase-word (M-l) -
-Lowercase the current (or following) word. With a negative argument, -lowercase the previous word, but do not move the cursor. -

- - -

capitalize-word (M-c) -
-Capitalize the current (or following) word. With a negative argument, -capitalize the previous word, but do not move the cursor. -

- - -

overwrite-mode () -
-Toggle overwrite mode. With an explicit positive numeric argument, -switches to overwrite mode. With an explicit non-positive numeric -argument, switches to insert mode. This command affects only -emacs mode; vi mode does overwrite differently. -Each call to readline() starts in insert mode. -

- -In overwrite mode, characters bound to self-insert replace -the text at point rather than pushing the text to the right. -Characters bound to backward-delete-char replace the character -before point with a space. -

- -By default, this command is unbound. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.4 Killing And Yanking

- -

- -

- - -
kill-line (C-k) -
-Kill the text from point to the end of the line. -

- - -

backward-kill-line (C-x Rubout) -
-Kill backward to the beginning of the line. -

- - -

unix-line-discard (C-u) -
-Kill backward from the cursor to the beginning of the current line. -

- - -

kill-whole-line () -
-Kill all characters on the current line, no matter where point is. -By default, this is unbound. -

- - -

kill-word (M-d) -
-Kill from point to the end of the current word, or if between -words, to the end of the next word. -Word boundaries are the same as forward-word. -

- - -

backward-kill-word (M-DEL) -
-Kill the word behind point. -Word boundaries are the same as backward-word. -

- - -

unix-word-rubout (C-w) -
-Kill the word behind point, using white space as a word boundary. -The killed text is saved on the kill-ring. -

- - -

unix-filename-rubout () -
-Kill the word behind point, using white space and the slash character -as the word boundaries. -The killed text is saved on the kill-ring. -

- - -

delete-horizontal-space () -
-Delete all spaces and tabs around point. By default, this is unbound. -

- - -

kill-region () -
-Kill the text in the current region. -By default, this command is unbound. -

- - -

copy-region-as-kill () -
-Copy the text in the region to the kill buffer, so it can be yanked -right away. By default, this command is unbound. -

- - -

copy-backward-word () -
-Copy the word before point to the kill buffer. -The word boundaries are the same as backward-word. -By default, this command is unbound. -

- - -

copy-forward-word () -
-Copy the word following point to the kill buffer. -The word boundaries are the same as forward-word. -By default, this command is unbound. -

- - -

yank (C-y) -
-Yank the top of the kill ring into the buffer at point. -

- - -

yank-pop (M-y) -
-Rotate the kill-ring, and yank the new top. You can only do this if -the prior command is yank or yank-pop. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.5 Specifying Numeric Arguments

- -
- - -
digit-argument (M-0, M-1, ... M--) -
-Add this digit to the argument already accumulating, or start a new -argument. M-- starts a negative argument. -

- - -

universal-argument () -
-This is another way to specify an argument. -If this command is followed by one or more digits, optionally with a -leading minus sign, those digits define the argument. -If the command is followed by digits, executing universal-argument -again ends the numeric argument, but is otherwise ignored. -As a special case, if this command is immediately followed by a -character that is neither a digit or minus sign, the argument count -for the next command is multiplied by four. -The argument count is initially one, so executing this function the -first time makes the argument count four, a second time makes the -argument count sixteen, and so on. -By default, this is not bound to a key. -
-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.6 Letting Readline Type For You

- -

- -

- -
complete (TAB) -
-Attempt to perform completion on the text before point. -The actual completion performed is application-specific. -The default is filename completion. -

- - -

possible-completions (M-?) -
-List the possible completions of the text before point. -When displaying completions, Readline sets the number of columns used -for display to the value of completion-display-width, the value of -the environment variable COLUMNS, or the screen width, in that order. -

- - -

insert-completions (M-*) -
-Insert all completions of the text before point that would have -been generated by possible-completions. -

- - -

menu-complete () -
-Similar to complete, but replaces the word to be completed -with a single match from the list of possible completions. -Repeated execution of menu-complete steps through the list -of possible completions, inserting each match in turn. -At the end of the list of completions, the bell is rung -(subject to the setting of bell-style) -and the original text is restored. -An argument of n moves n positions forward in the list -of matches; a negative argument may be used to move backward -through the list. -This command is intended to be bound to TAB, but is unbound -by default. -

- - -

menu-complete-backward () -
-Identical to menu-complete, but moves backward through the list -of possible completions, as if menu-complete had been given a -negative argument. -

- - -

delete-char-or-list () -
-Deletes the character under the cursor if not at the beginning or -end of the line (like delete-char). -If at the end of the line, behaves identically to -possible-completions. -This command is unbound by default. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.7 Keyboard Macros

- -
- - -
start-kbd-macro (C-x () -
-Begin saving the characters typed into the current keyboard macro. -

- - -

end-kbd-macro (C-x )) -
-Stop saving the characters typed into the current keyboard macro -and save the definition. -

- - -

call-last-kbd-macro (C-x e) -
-Re-execute the last keyboard macro defined, by making the characters -in the macro appear as if typed at the keyboard. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.4.8 Some Miscellaneous Commands

- -
- - -
re-read-init-file (C-x C-r) -
-Read in the contents of the inputrc file, and incorporate -any bindings or variable assignments found there. -

- - -

abort (C-g) -
-Abort the current editing command and -ring the terminal's bell (subject to the setting of -bell-style). -

- - -

do-uppercase-version (M-a, M-b, M-x, ...) -
-If the metafied character x is lowercase, run the command -that is bound to the corresponding uppercase character. -

- - -

prefix-meta (ESC) -
-Metafy the next character typed. This is for keyboards -without a meta key. Typing `ESC f' is equivalent to typing -M-f. -

- - -

undo (C-_ or C-x C-u) -
-Incremental undo, separately remembered for each line. -

- - -

revert-line (M-r) -
-Undo all changes made to this line. This is like executing the undo -command enough times to get back to the beginning. -

- - -

tilde-expand (M-~) -
-Perform tilde expansion on the current word. -

- - -

set-mark (C-@) -
-Set the mark to the point. If a -numeric argument is supplied, the mark is set to that position. -

- - -

exchange-point-and-mark (C-x C-x) -
-Swap the point with the mark. The current cursor position is set to -the saved position, and the old cursor position is saved as the mark. -

- - -

character-search (C-]) -
-A character is read and point is moved to the next occurrence of that -character. A negative count searches for previous occurrences. -

- - -

character-search-backward (M-C-]) -
-A character is read and point is moved to the previous occurrence -of that character. A negative count searches for subsequent -occurrences. -

- - -

skip-csi-sequence () -
-Read enough characters to consume a multi-key sequence such as those -defined for keys like Home and End. Such sequences begin with a -Control Sequence Indicator (CSI), usually ESC-[. If this sequence is -bound to "\e[", keys producing such sequences will have no effect -unless explicitly bound to a readline command, instead of inserting -stray characters into the editing buffer. This is unbound by default, -but usually bound to ESC-[. -

- - -

insert-comment (M-#) -
-Without a numeric argument, the value of the comment-begin -variable is inserted at the beginning of the current line. -If a numeric argument is supplied, this command acts as a toggle: if -the characters at the beginning of the line do not match the value -of comment-begin, the value is inserted, otherwise -the characters in comment-begin are deleted from the beginning of -the line. -In either case, the line is accepted as if a newline had been typed. -

- - -

dump-functions () -
-Print all of the functions and their key bindings to the -Readline output stream. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an inputrc file. This command is unbound by default. -

- - -

dump-variables () -
-Print all of the settable variables and their values to the -Readline output stream. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an inputrc file. This command is unbound by default. -

- - -

dump-macros () -
-Print all of the Readline key sequences bound to macros and the -strings they output. If a numeric argument is supplied, -the output is formatted in such a way that it can be made part -of an inputrc file. This command is unbound by default. -

- - -

emacs-editing-mode (C-e) -
-When in vi command mode, this causes a switch to emacs -editing mode. -

- - -

vi-editing-mode (M-C-j) -
-When in emacs editing mode, this causes a switch to vi -editing mode. -

- -

-

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

1.5 Readline vi Mode

- -

- -While the Readline library does not have a full set of vi -editing functions, it does contain enough to allow simple editing -of the line. The Readline vi mode behaves as specified in -the POSIX standard. -

- -In order to switch interactively between emacs and vi -editing modes, use the command M-C-j (bound to emacs-editing-mode -when in vi mode and to vi-editing-mode in emacs mode). -The Readline default is emacs mode. -

- -When you enter a line in vi mode, you are already placed in -`insertion' mode, as if you had typed an `i'. Pressing ESC -switches you into `command' mode, where you can edit the text of the -line with the standard vi movement keys, move to previous -history lines with `k' and subsequent lines with `j', and -so forth. -

- - -


- - - - - - - - - - - -
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
-

A. GNU Free Documentation License

- -

- -

- Version 1.3, 3 November 2008 -
-

- -
 
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-http://fsf.org/
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-

- -

    -
  1. -PREAMBLE -

    - -The purpose of this License is to make a manual, textbook, or other -functional and useful document free in the sense of freedom: to -assure everyone the effective freedom to copy and redistribute it, -with or without modifying it, either commercially or noncommercially. -Secondarily, this License preserves for the author and publisher a way -to get credit for their work, while not being considered responsible -for modifications made by others. -

    - -This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. -

    - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. -

    - -

  2. -APPLICABILITY AND DEFINITIONS -

    - -This License applies to any manual or other work, in any medium, that -contains a notice placed by the copyright holder saying it can be -distributed under the terms of this License. Such a notice grants a -world-wide, royalty-free license, unlimited in duration, to use that -work under the conditions stated herein. The "Document", below, -refers to any such manual or work. Any member of the public is a -licensee, and is addressed as "you". You accept the license if you -copy, modify or distribute the work in a way requiring permission -under copyright law. -

    - -A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. -

    - -A "Secondary Section" is a named appendix or a front-matter section -of the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall -subject (or to related matters) and contains nothing that could fall -directly within that overall subject. (Thus, if the Document is in -part a textbook of mathematics, a Secondary Section may not explain -any mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. -

    - -The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. If a -section does not fit the above definition of Secondary then it is not -allowed to be designated as Invariant. The Document may contain zero -Invariant Sections. If the Document does not identify any Invariant -Sections then there are none. -

    - -The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. A Front-Cover Text may -be at most 5 words, and a Back-Cover Text may be at most 25 words. -

    - -A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, that is suitable for revising the document -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup, or absence of markup, has been arranged to thwart -or discourage subsequent modification by readers is not Transparent. -An image format is not Transparent if used for any substantial amount -of text. A copy that is not "Transparent" is called "Opaque". -

    - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input -format, SGML or XML using a publicly available -DTD, and standard-conforming simple HTML, -PostScript or PDF designed for human modification. Examples -of transparent image formats include PNG, XCF and -JPG. Opaque formats include proprietary formats that can be -read and edited only by proprietary word processors, SGML or -XML for which the DTD and/or processing tools are -not generally available, and the machine-generated HTML, -PostScript or PDF produced by some word processors for -output purposes only. -

    - -The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, "Title Page" means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. -

    - -The "publisher" means any person or entity that distributes copies -of the Document to the public. -

    - -A section "Entitled XYZ" means a named subunit of the Document whose -title either is precisely XYZ or contains XYZ in parentheses following -text that translates XYZ in another language. (Here XYZ stands for a -specific section name mentioned below, such as "Acknowledgements", -"Dedications", "Endorsements", or "History".) To "Preserve the Title" -of such a section when you modify the Document means that it remains a -section "Entitled XYZ" according to this definition. -

    - -The Document may include Warranty Disclaimers next to the notice which -states that this License applies to the Document. These Warranty -Disclaimers are considered to be included by reference in this -License, but only as regards disclaiming warranties: any other -implication that these Warranty Disclaimers may have is void and has -no effect on the meaning of this License. -

    - -

  3. -VERBATIM COPYING -

    - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. -

    - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. -

    - -

  4. -COPYING IN QUANTITY -

    - -If you publish printed copies (or copies in media that commonly have -printed covers) of the Document, numbering more than 100, and the -Document's license notice requires Cover Texts, you must enclose the -copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. -

    - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. -

    - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a computer-network location from which the general network-using -public has access to download using public-standard network protocols -a complete Transparent copy of the Document, free of added material. -If you use the latter option, you must take reasonably prudent steps, -when you begin distribution of Opaque copies in quantity, to ensure -that this Transparent copy will remain thus accessible at the stated -location until at least one year after the last time you distribute an -Opaque copy (directly or through your agents or retailers) of that -edition to the public. -

    - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. -

    - -

  5. -MODIFICATIONS -

    - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: -

    - -

      -
    1. -Use in the Title Page (and on the covers, if any) a title distinct -from that of the Document, and from those of previous versions -(which should, if there were any, be listed in the History section -of the Document). You may use the same title as a previous version -if the original publisher of that version gives permission. -

      - -

    2. -List on the Title Page, as authors, one or more persons or entities -responsible for authorship of the modifications in the Modified -Version, together with at least five of the principal authors of the -Document (all of its principal authors, if it has fewer than five), -unless they release you from this requirement. -

      - -

    3. -State on the Title page the name of the publisher of the -Modified Version, as the publisher. -

      - -

    4. -Preserve all the copyright notices of the Document. -

      - -

    5. -Add an appropriate copyright notice for your modifications -adjacent to the other copyright notices. -

      - -

    6. -Include, immediately after the copyright notices, a license notice -giving the public permission to use the Modified Version under the -terms of this License, in the form shown in the Addendum below. -

      - -

    7. -Preserve in that license notice the full lists of Invariant Sections -and required Cover Texts given in the Document's license notice. -

      - -

    8. -Include an unaltered copy of this License. -

      - -

    9. -Preserve the section Entitled "History", Preserve its Title, and add -to it an item stating at least the title, year, new authors, and -publisher of the Modified Version as given on the Title Page. If -there is no section Entitled "History" in the Document, create one -stating the title, year, authors, and publisher of the Document as -given on its Title Page, then add an item describing the Modified -Version as stated in the previous sentence. -

      - -

    10. -Preserve the network location, if any, given in the Document for -public access to a Transparent copy of the Document, and likewise -the network locations given in the Document for previous versions -it was based on. These may be placed in the "History" section. -You may omit a network location for a work that was published at -least four years before the Document itself, or if the original -publisher of the version it refers to gives permission. -

      - -

    11. -For any section Entitled "Acknowledgements" or "Dedications", Preserve -the Title of the section, and preserve in the section all the -substance and tone of each of the contributor acknowledgements and/or -dedications given therein. -

      - -

    12. -Preserve all the Invariant Sections of the Document, -unaltered in their text and in their titles. Section numbers -or the equivalent are not considered part of the section titles. -

      - -

    13. -Delete any section Entitled "Endorsements". Such a section -may not be included in the Modified Version. -

      - -

    14. -Do not retitle any existing section to be Entitled "Endorsements" or -to conflict in title with any Invariant Section. -

      - -

    15. -Preserve any Warranty Disclaimers. -
    -

    - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. -

    - -You may add a section Entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties--for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. -

    - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. -

    - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. -

    - -

  6. -COMBINING DOCUMENTS -

    - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice, and that you preserve all their Warranty Disclaimers. -

    - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. -

    - -In the combination, you must combine any sections Entitled "History" -in the various original documents, forming one section Entitled -"History"; likewise combine any sections Entitled "Acknowledgements", -and any sections Entitled "Dedications". You must delete all -sections Entitled "Endorsements." -

    - -

  7. -COLLECTIONS OF DOCUMENTS -

    - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. -

    - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. -

    - -

  8. -AGGREGATION WITH INDEPENDENT WORKS -

    - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, is called an "aggregate" if the copyright -resulting from the compilation is not used to limit the legal rights -of the compilation's users beyond what the individual works permit. -When the Document is included in an aggregate, this License does not -apply to the other works in the aggregate which are not themselves -derivative works of the Document. -

    - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one half of -the entire aggregate, the Document's Cover Texts may be placed on -covers that bracket the Document within the aggregate, or the -electronic equivalent of covers if the Document is in electronic form. -Otherwise they must appear on printed covers that bracket the whole -aggregate. -

    - -

  9. -TRANSLATION -

    - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License, and all the license notices in the -Document, and any Warranty Disclaimers, provided that you also include -the original English version of this License and the original versions -of those notices and disclaimers. In case of a disagreement between -the translation and the original version of this License or a notice -or disclaimer, the original version will prevail. -

    - -If a section in the Document is Entitled "Acknowledgements", -"Dedications", or "History", the requirement (section 4) to Preserve -its Title (section 1) will typically require changing the actual -title. -

    - -

  10. -TERMINATION -

    - -You may not copy, modify, sublicense, or distribute the Document -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense, or distribute it is void, and -will automatically terminate your rights under this License. -

    - -However, if you cease all violation of this License, then your license -from a particular copyright holder is reinstated (a) provisionally, -unless and until the copyright holder explicitly and finally -terminates your license, and (b) permanently, if the copyright holder -fails to notify you of the violation by some reasonable means prior to -60 days after the cessation. -

    - -Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. -

    - -Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, receipt of a copy of some or all of the same material does -not give you any rights to use it. -

    - -

  11. -FUTURE REVISIONS OF THIS LICENSE -

    - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -http://www.gnu.org/copyleft/. -

    - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. If the Document -specifies that a proxy can decide which future versions of this -License can be used, that proxy's public statement of acceptance of a -version permanently authorizes you to choose that version for the -Document. -

    - -

  12. -RELICENSING -

    - -"Massive Multiauthor Collaboration Site" (or "MMC Site") means any -World Wide Web server that publishes copyrightable works and also -provides prominent facilities for anybody to edit those works. A -public wiki that anybody can edit is an example of such a server. A -"Massive Multiauthor Collaboration" (or "MMC") contained in the -site means any set of copyrightable works thus published on the MMC -site. -

    - -"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 -license published by Creative Commons Corporation, a not-for-profit -corporation with a principal place of business in San Francisco, -California, as well as future copyleft versions of that license -published by that same organization. -

    - -"Incorporate" means to publish or republish a Document, in whole or -in part, as part of another Document. -

    - -An MMC is "eligible for relicensing" if it is licensed under this -License, and if all works that were first published under this License -somewhere other than this MMC, and subsequently incorporated in whole -or in part into the MMC, (1) had no cover texts or invariant sections, -and (2) were thus incorporated prior to November 1, 2008. -

    - -The operator of an MMC Site may republish an MMC contained in the site -under CC-BY-SA on the same site at any time before August 1, 2009, -provided the MMC is eligible for relicensing. -

    - -

-

- - -

ADDENDUM: How to use this License for your documents

- -

- -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: -

- -
 
  Copyright (C)  year  your name.
-  Permission is granted to copy, distribute and/or modify this document
-  under the terms of the GNU Free Documentation License, Version 1.3
-  or any later version published by the Free Software Foundation;
-  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-  Texts.  A copy of the license is included in the section entitled ``GNU
-  Free Documentation License''.
-

- -If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the "with...Texts." line with this: -

- -
 
    with the Invariant Sections being list their titles, with
-    the Front-Cover Texts being list, and with the Back-Cover Texts
-    being list.
-

- -If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. -

- -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. -

- -


- - - - - - -
[Top][Contents][Index][ ? ]
-

Table of Contents

- -
- - - - - - -
[Top][Contents][Index][ ? ]
-

Short Table of Contents

-
-1. Command Line Editing -
-A. GNU Free Documentation License -
- -
-
- - - - - - -
[Top][Contents][Index][ ? ]
-

About this document

-This document was generated by Chet Ramey on February, 8 2011 -using texi2html -

-The buttons in the navigation panels have the following meaning: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Button Name Go to From 1.2.3 go to
- [ < ] -Back - -previous section in reading order - -1.2.2 -
- [ > ] -Forward - -next section in reading order - -1.2.4 -
- [ << ] -FastBack - -previous or up-and-previous section - -1.1 -
- [ Up ] -Up - -up section - -1.2 -
- [ >> ] -FastForward - -next or up-and-next section - -1.3 -
- [Top] -Top - -cover (top) of document - -   -
- [Contents] -Contents - -table of contents - -   -
- [Index] -Index - -concept index - -   -
- [ ? ] -About - -this page - -   -
-

-where the Example assumes that the current position -is at Subsubsection One-Two-Three of a document of -the following structure: -
    -
  • 1. Section One
  • -
      -
    • 1.1 Subsection One-One
    • -
        -
      • ...
      • -
      -
    • 1.2 Subsection One-Two
    • -
        -
      • 1.2.1 Subsubsection One-Two-One -
      • 1.2.2 Subsubsection One-Two-Two -
      • 1.2.3 Subsubsection One-Two-Three     -<== Current Position -
      • 1.2.4 Subsubsection One-Two-Four -
      -
    • 1.3 Subsection One-Three
    • -
        -
      • ...
      • -
      -
    • 1.4 Subsection One-Four
    • -
    -
- -
-
- -This document was generated -by Chet Ramey on February, 8 2011 -using texi2html - - - diff --git a/lib/readline/doc/rluserman.info b/lib/readline/doc/rluserman.info deleted file mode 100644 index d92080fe8..000000000 --- a/lib/readline/doc/rluserman.info +++ /dev/null @@ -1,1875 +0,0 @@ -This is rluserman.info, produced by makeinfo version 4.13 from -./rluserman.texi. - -This manual describes the end user interface of the GNU Readline Library -(version 6.2, September 6 2010), a library which aids in the -consistency of user interface across discrete programs which provide a -command line interface. - - Copyright (C) 1988-2011 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.3 or any later version published by the Free Software - Foundation; with no Invariant Sections, with the Front-Cover texts - being "A GNU Manual", and with the Back-Cover Texts as in (a) - below. A copy of the license is included in the section entitled - "GNU Free Documentation License". - - (a) The FSF's Back-Cover Text is: You are free to copy and modify - this GNU manual. Buying copies from GNU Press supports the FSF in - developing GNU and promoting software freedom." - - -INFO-DIR-SECTION Libraries -START-INFO-DIR-ENTRY -* RLuserman: (rluserman). The GNU readline library User's Manual. -END-INFO-DIR-ENTRY - - -File: rluserman.info, Node: Top, Next: Command Line Editing, Up: (dir) - -GNU Readline Library -******************** - -This document describes the end user interface of the GNU Readline -Library, a utility which aids in the consistency of user interface -across discrete programs which provide a command line interface. - -* Menu: - -* Command Line Editing:: GNU Readline User's Manual. -* GNU Free Documentation License:: License for copying this manual. - - -File: rluserman.info, Node: Command Line Editing, Next: GNU Free Documentation License, Prev: Top, Up: Top - -1 Command Line Editing -********************** - -This chapter describes the basic features of the GNU command line -editing interface. - -* Menu: - -* Introduction and Notation:: Notation used in this text. -* Readline Interaction:: The minimum set of commands for editing a line. -* Readline Init File:: Customizing Readline from a user's view. -* Bindable Readline Commands:: A description of most of the Readline commands - available for binding -* Readline vi Mode:: A short description of how to make Readline - behave like the vi editor. - - -File: rluserman.info, Node: Introduction and Notation, Next: Readline Interaction, Up: Command Line Editing - -1.1 Introduction to Line Editing -================================ - -The following paragraphs describe the notation used to represent -keystrokes. - - The text `C-k' is read as `Control-K' and describes the character -produced when the key is pressed while the Control key is depressed. - - The text `M-k' is read as `Meta-K' and describes the character -produced when the Meta key (if you have one) is depressed, and the -key is pressed. The Meta key is labeled on many keyboards. On -keyboards with two keys labeled (usually to either side of the -space bar), the on the left side is generally set to work as a -Meta key. The key on the right may also be configured to work as -a Meta key or may be configured as some other modifier, such as a -Compose key for typing accented characters. - - If you do not have a Meta or key, or another key working as a -Meta key, the identical keystroke can be generated by typing -_first_, and then typing . Either process is known as "metafying" -the key. - - The text `M-C-k' is read as `Meta-Control-k' and describes the -character produced by "metafying" `C-k'. - - In addition, several keys have their own names. Specifically, -, , , , , and all stand for themselves -when seen in this text, or in an init file (*note Readline Init File::). -If your keyboard lacks a key, typing will produce the -desired character. The key may be labeled or on -some keyboards. - - -File: rluserman.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing - -1.2 Readline Interaction -======================== - -Often during an interactive session you type in a long line of text, -only to notice that the first word on the line is misspelled. The -Readline library gives you a set of commands for manipulating the text -as you type it in, allowing you to just fix your typo, and not forcing -you to retype the majority of the line. Using these editing commands, -you move the cursor to the place that needs correction, and delete or -insert the text of the corrections. Then, when you are satisfied with -the line, you simply press . You do not have to be at the end of -the line to press ; the entire line is accepted regardless of the -location of the cursor within the line. - -* Menu: - -* Readline Bare Essentials:: The least you need to know about Readline. -* Readline Movement Commands:: Moving about the input line. -* Readline Killing Commands:: How to delete text, and how to get it back! -* Readline Arguments:: Giving numeric arguments to commands. -* Searching:: Searching through previous lines. - - -File: rluserman.info, Node: Readline Bare Essentials, Next: Readline Movement Commands, Up: Readline Interaction - -1.2.1 Readline Bare Essentials ------------------------------- - -In order to enter characters into the line, simply type them. The typed -character appears where the cursor was, and then the cursor moves one -space to the right. If you mistype a character, you can use your erase -character to back up and delete the mistyped character. - - Sometimes you may mistype a character, and not notice the error -until you have typed several other characters. In that case, you can -type `C-b' to move the cursor to the left, and then correct your -mistake. Afterwards, you can move the cursor to the right with `C-f'. - - When you add text in the middle of a line, you will notice that -characters to the right of the cursor are `pushed over' to make room -for the text that you have inserted. Likewise, when you delete text -behind the cursor, characters to the right of the cursor are `pulled -back' to fill in the blank space created by the removal of the text. A -list of the bare essentials for editing the text of an input line -follows. - -`C-b' - Move back one character. - -`C-f' - Move forward one character. - - or - Delete the character to the left of the cursor. - -`C-d' - Delete the character underneath the cursor. - -Printing characters - Insert the character into the line at the cursor. - -`C-_' or `C-x C-u' - Undo the last editing command. You can undo all the way back to an - empty line. - -(Depending on your configuration, the key be set to delete -the character to the left of the cursor and the key set to delete -the character underneath the cursor, like `C-d', rather than the -character to the left of the cursor.) - - -File: rluserman.info, Node: Readline Movement Commands, Next: Readline Killing Commands, Prev: Readline Bare Essentials, Up: Readline Interaction - -1.2.2 Readline Movement Commands --------------------------------- - -The above table describes the most basic keystrokes that you need in -order to do editing of the input line. For your convenience, many -other commands have been added in addition to `C-b', `C-f', `C-d', and -. Here are some commands for moving more rapidly about the line. - -`C-a' - Move to the start of the line. - -`C-e' - Move to the end of the line. - -`M-f' - Move forward a word, where a word is composed of letters and - digits. - -`M-b' - Move backward a word. - -`C-l' - Clear the screen, reprinting the current line at the top. - - Notice how `C-f' moves forward a character, while `M-f' moves -forward a word. It is a loose convention that control keystrokes -operate on characters while meta keystrokes operate on words. - - -File: rluserman.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction - -1.2.3 Readline Killing Commands -------------------------------- - -"Killing" text means to delete the text from the line, but to save it -away for later use, usually by "yanking" (re-inserting) it back into -the line. (`Cut' and `paste' are more recent jargon for `kill' and -`yank'.) - - If the description for a command says that it `kills' text, then you -can be sure that you can get the text back in a different (or the same) -place later. - - When you use a kill command, the text is saved in a "kill-ring". -Any number of consecutive kills save all of the killed text together, so -that when you yank it back, you get it all. The kill ring is not line -specific; the text that you killed on a previously typed line is -available to be yanked back later, when you are typing another line. - - Here is the list of commands for killing text. - -`C-k' - Kill the text from the current cursor position to the end of the - line. - -`M-d' - Kill from the cursor to the end of the current word, or, if between - words, to the end of the next word. Word boundaries are the same - as those used by `M-f'. - -`M-' - Kill from the cursor the start of the current word, or, if between - words, to the start of the previous word. Word boundaries are the - same as those used by `M-b'. - -`C-w' - Kill from the cursor to the previous whitespace. This is - different than `M-' because the word boundaries differ. - - - Here is how to "yank" the text back into the line. Yanking means to -copy the most-recently-killed text from the kill buffer. - -`C-y' - Yank the most recently killed text back into the buffer at the - cursor. - -`M-y' - Rotate the kill-ring, and yank the new top. You can only do this - if the prior command is `C-y' or `M-y'. - - -File: rluserman.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction - -1.2.4 Readline Arguments ------------------------- - -You can pass numeric arguments to Readline commands. Sometimes the -argument acts as a repeat count, other times it is the sign of the -argument that is significant. If you pass a negative argument to a -command which normally acts in a forward direction, that command will -act in a backward direction. For example, to kill text back to the -start of the line, you might type `M-- C-k'. - - The general way to pass numeric arguments to a command is to type -meta digits before the command. If the first `digit' typed is a minus -sign (`-'), then the sign of the argument will be negative. Once you -have typed one meta digit to get the argument started, you can type the -remainder of the digits, and then the command. For example, to give -the `C-d' command an argument of 10, you could type `M-1 0 C-d', which -will delete the next ten characters on the input line. - - -File: rluserman.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction - -1.2.5 Searching for Commands in the History -------------------------------------------- - -Readline provides commands for searching through the command history -for lines containing a specified string. There are two search modes: -"incremental" and "non-incremental". - - Incremental searches begin before the user has finished typing the -search string. As each character of the search string is typed, -Readline displays the next entry from the history matching the string -typed so far. An incremental search requires only as many characters -as needed to find the desired history entry. To search backward in the -history for a particular string, type `C-r'. Typing `C-s' searches -forward through the history. The characters present in the value of -the `isearch-terminators' variable are used to terminate an incremental -search. If that variable has not been assigned a value, the and -`C-J' characters will terminate an incremental search. `C-g' will -abort an incremental search and restore the original line. When the -search is terminated, the history entry containing the search string -becomes the current line. - - To find other matching entries in the history list, type `C-r' or -`C-s' as appropriate. This will search backward or forward in the -history for the next entry matching the search string typed so far. -Any other key sequence bound to a Readline command will terminate the -search and execute that command. For instance, a will terminate -the search and accept the line, thereby executing the command from the -history list. A movement command will terminate the search, make the -last line found the current line, and begin editing. - - Readline remembers the last incremental search string. If two -`C-r's are typed without any intervening characters defining a new -search string, any remembered search string is used. - - Non-incremental searches read the entire search string before -starting to search for matching history lines. The search string may be -typed by the user or be part of the contents of the current line. - - -File: rluserman.info, Node: Readline Init File, Next: Bindable Readline Commands, Prev: Readline Interaction, Up: Command Line Editing - -1.3 Readline Init File -====================== - -Although the Readline library comes with a set of Emacs-like -keybindings installed by default, it is possible to use a different set -of keybindings. Any user can customize programs that use Readline by -putting commands in an "inputrc" file, conventionally in his home -directory. The name of this file is taken from the value of the -environment variable `INPUTRC'. If that variable is unset, the default -is `~/.inputrc'. If that file does not exist or cannot be read, the -ultimate default is `/etc/inputrc'. - - When a program which uses the Readline library starts up, the init -file is read, and the key bindings are set. - - In addition, the `C-x C-r' command re-reads this init file, thus -incorporating any changes that you might have made to it. - -* Menu: - -* Readline Init File Syntax:: Syntax for the commands in the inputrc file. - -* Conditional Init Constructs:: Conditional key bindings in the inputrc file. - -* Sample Init File:: An example inputrc file. - - -File: rluserman.info, Node: Readline Init File Syntax, Next: Conditional Init Constructs, Up: Readline Init File - -1.3.1 Readline Init File Syntax -------------------------------- - -There are only a few basic constructs allowed in the Readline init -file. Blank lines are ignored. Lines beginning with a `#' are -comments. Lines beginning with a `$' indicate conditional constructs -(*note Conditional Init Constructs::). Other lines denote variable -settings and key bindings. - -Variable Settings - You can modify the run-time behavior of Readline by altering the - values of variables in Readline using the `set' command within the - init file. The syntax is simple: - - set VARIABLE VALUE - - Here, for example, is how to change from the default Emacs-like - key binding to use `vi' line editing commands: - - set editing-mode vi - - Variable names and values, where appropriate, are recognized - without regard to case. Unrecognized variable names are ignored. - - Boolean variables (those that can be set to on or off) are set to - on if the value is null or empty, ON (case-insensitive), or 1. - Any other value results in the variable being set to off. - - A great deal of run-time behavior is changeable with the following - variables. - - `bell-style' - Controls what happens when Readline wants to ring the - terminal bell. If set to `none', Readline never rings the - bell. If set to `visible', Readline uses a visible bell if - one is available. If set to `audible' (the default), - Readline attempts to ring the terminal's bell. - - `bind-tty-special-chars' - If set to `on', Readline attempts to bind the control - characters treated specially by the kernel's terminal driver - to their Readline equivalents. - - `comment-begin' - The string to insert at the beginning of the line when the - `insert-comment' command is executed. The default value is - `"#"'. - - `completion-display-width' - The number of screen columns used to display possible matches - when performing completion. The value is ignored if it is - less than 0 or greater than the terminal screen width. A - value of 0 will cause matches to be displayed one per line. - The default value is -1. - - `completion-ignore-case' - If set to `on', Readline performs filename matching and - completion in a case-insensitive fashion. The default value - is `off'. - - `completion-map-case' - If set to `on', and COMPLETION-IGNORE-CASE is enabled, - Readline treats hyphens (`-') and underscores (`_') as - equivalent when performing case-insensitive filename matching - and completion. - - `completion-prefix-display-length' - The length in characters of the common prefix of a list of - possible completions that is displayed without modification. - When set to a value greater than zero, common prefixes longer - than this value are replaced with an ellipsis when displaying - possible completions. - - `completion-query-items' - The number of possible completions that determines when the - user is asked whether the list of possibilities should be - displayed. If the number of possible completions is greater - than this value, Readline will ask the user whether or not he - wishes to view them; otherwise, they are simply listed. This - variable must be set to an integer value greater than or - equal to 0. A negative value means Readline should never ask. - The default limit is `100'. - - `convert-meta' - If set to `on', Readline will convert characters with the - eighth bit set to an ASCII key sequence by stripping the - eighth bit and prefixing an character, converting them - to a meta-prefixed key sequence. The default value is `on'. - - `disable-completion' - If set to `On', Readline will inhibit word completion. - Completion characters will be inserted into the line as if - they had been mapped to `self-insert'. The default is `off'. - - `editing-mode' - The `editing-mode' variable controls which default set of key - bindings is used. By default, Readline starts up in Emacs - editing mode, where the keystrokes are most similar to Emacs. - This variable can be set to either `emacs' or `vi'. - - `echo-control-characters' - When set to `on', on operating systems that indicate they - support it, readline echoes a character corresponding to a - signal generated from the keyboard. The default is `on'. - - `enable-keypad' - When set to `on', Readline will try to enable the application - keypad when it is called. Some systems need this to enable - the arrow keys. The default is `off'. - - `enable-meta-key' - When set to `on', Readline will try to enable any meta - modifier key the terminal claims to support when it is - called. On many terminals, the meta key is used to send - eight-bit characters. The default is `on'. - - `expand-tilde' - If set to `on', tilde expansion is performed when Readline - attempts word completion. The default is `off'. - - `history-preserve-point' - If set to `on', the history code attempts to place the point - (the current cursor position) at the same location on each - history line retrieved with `previous-history' or - `next-history'. The default is `off'. - - `history-size' - Set the maximum number of history entries saved in the - history list. If set to zero, the number of entries in the - history list is not limited. - - `horizontal-scroll-mode' - This variable can be set to either `on' or `off'. Setting it - to `on' means that the text of the lines being edited will - scroll horizontally on a single screen line when they are - longer than the width of the screen, instead of wrapping onto - a new screen line. By default, this variable is set to `off'. - - `input-meta' - If set to `on', Readline will enable eight-bit input (it will - not clear the eighth bit in the characters it reads), - regardless of what the terminal claims it can support. The - default value is `off'. The name `meta-flag' is a synonym - for this variable. - - `isearch-terminators' - The string of characters that should terminate an incremental - search without subsequently executing the character as a - command (*note Searching::). If this variable has not been - given a value, the characters and `C-J' will terminate - an incremental search. - - `keymap' - Sets Readline's idea of the current keymap for key binding - commands. Acceptable `keymap' names are `emacs', - `emacs-standard', `emacs-meta', `emacs-ctlx', `vi', `vi-move', - `vi-command', and `vi-insert'. `vi' is equivalent to - `vi-command'; `emacs' is equivalent to `emacs-standard'. The - default value is `emacs'. The value of the `editing-mode' - variable also affects the default keymap. - - `mark-directories' - If set to `on', completed directory names have a slash - appended. The default is `on'. - - `mark-modified-lines' - This variable, when set to `on', causes Readline to display an - asterisk (`*') at the start of history lines which have been - modified. This variable is `off' by default. - - `mark-symlinked-directories' - If set to `on', completed names which are symbolic links to - directories have a slash appended (subject to the value of - `mark-directories'). The default is `off'. - - `match-hidden-files' - This variable, when set to `on', causes Readline to match - files whose names begin with a `.' (hidden files) when - performing filename completion. If set to `off', the leading - `.' must be supplied by the user in the filename to be - completed. This variable is `on' by default. - - `menu-complete-display-prefix' - If set to `on', menu completion displays the common prefix of - the list of possible completions (which may be empty) before - cycling through the list. The default is `off'. - - `output-meta' - If set to `on', Readline will display characters with the - eighth bit set directly rather than as a meta-prefixed escape - sequence. The default is `off'. - - `page-completions' - If set to `on', Readline uses an internal `more'-like pager - to display a screenful of possible completions at a time. - This variable is `on' by default. - - `print-completions-horizontally' - If set to `on', Readline will display completions with matches - sorted horizontally in alphabetical order, rather than down - the screen. The default is `off'. - - `revert-all-at-newline' - If set to `on', Readline will undo all changes to history - lines before returning when `accept-line' is executed. By - default, history lines may be modified and retain individual - undo lists across calls to `readline'. The default is `off'. - - `show-all-if-ambiguous' - This alters the default behavior of the completion functions. - If set to `on', words which have more than one possible - completion cause the matches to be listed immediately instead - of ringing the bell. The default value is `off'. - - `show-all-if-unmodified' - This alters the default behavior of the completion functions - in a fashion similar to SHOW-ALL-IF-AMBIGUOUS. If set to - `on', words which have more than one possible completion - without any possible partial completion (the possible - completions don't share a common prefix) cause the matches to - be listed immediately instead of ringing the bell. The - default value is `off'. - - `skip-completed-text' - If set to `on', this alters the default completion behavior - when inserting a single match into the line. It's only - active when performing completion in the middle of a word. - If enabled, readline does not insert characters from the - completion that match characters after point in the word - being completed, so portions of the word following the cursor - are not duplicated. For instance, if this is enabled, - attempting completion when the cursor is after the `e' in - `Makefile' will result in `Makefile' rather than - `Makefilefile', assuming there is a single possible - completion. The default value is `off'. - - `visible-stats' - If set to `on', a character denoting a file's type is - appended to the filename when listing possible completions. - The default is `off'. - - -Key Bindings - The syntax for controlling key bindings in the init file is - simple. First you need to find the name of the command that you - want to change. The following sections contain tables of the - command name, the default keybinding, if any, and a short - description of what the command does. - - Once you know the name of the command, simply place on a line in - the init file the name of the key you wish to bind the command to, - a colon, and then the name of the command. There can be no space - between the key name and the colon - that will be interpreted as - part of the key name. The name of the key can be expressed in - different ways, depending on what you find most comfortable. - - In addition to command names, readline allows keys to be bound to - a string that is inserted when the key is pressed (a MACRO). - - KEYNAME: FUNCTION-NAME or MACRO - KEYNAME is the name of a key spelled out in English. For - example: - Control-u: universal-argument - Meta-Rubout: backward-kill-word - Control-o: "> output" - - In the above example, `C-u' is bound to the function - `universal-argument', `M-DEL' is bound to the function - `backward-kill-word', and `C-o' is bound to run the macro - expressed on the right hand side (that is, to insert the text - `> output' into the line). - - A number of symbolic character names are recognized while - processing this key binding syntax: DEL, ESC, ESCAPE, LFD, - NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB. - - "KEYSEQ": FUNCTION-NAME or MACRO - KEYSEQ differs from KEYNAME above in that strings denoting an - entire key sequence can be specified, by placing the key - sequence in double quotes. Some GNU Emacs style key escapes - can be used, as in the following example, but the special - character names are not recognized. - - "\C-u": universal-argument - "\C-x\C-r": re-read-init-file - "\e[11~": "Function Key 1" - - In the above example, `C-u' is again bound to the function - `universal-argument' (just as it was in the first example), - `C-x C-r' is bound to the function `re-read-init-file', and - ` <[> <1> <1> <~>' is bound to insert the text `Function - Key 1'. - - - The following GNU Emacs style escape sequences are available when - specifying key sequences: - - `\C-' - control prefix - - `\M-' - meta prefix - - `\e' - an escape character - - `\\' - backslash - - `\"' - <">, a double quotation mark - - `\'' - <'>, a single quote or apostrophe - - In addition to the GNU Emacs style escape sequences, a second set - of backslash escapes is available: - - `\a' - alert (bell) - - `\b' - backspace - - `\d' - delete - - `\f' - form feed - - `\n' - newline - - `\r' - carriage return - - `\t' - horizontal tab - - `\v' - vertical tab - - `\NNN' - the eight-bit character whose value is the octal value NNN - (one to three digits) - - `\xHH' - the eight-bit character whose value is the hexadecimal value - HH (one or two hex digits) - - When entering the text of a macro, single or double quotes must be - used to indicate a macro definition. Unquoted text is assumed to - be a function name. In the macro body, the backslash escapes - described above are expanded. Backslash will quote any other - character in the macro text, including `"' and `''. For example, - the following binding will make `C-x \' insert a single `\' into - the line: - "\C-x\\": "\\" - - - -File: rluserman.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File - -1.3.2 Conditional Init Constructs ---------------------------------- - -Readline implements a facility similar in spirit to the conditional -compilation features of the C preprocessor which allows key bindings -and variable settings to be performed as the result of tests. There -are four parser directives used. - -`$if' - The `$if' construct allows bindings to be made based on the - editing mode, the terminal being used, or the application using - Readline. The text of the test extends to the end of the line; no - characters are required to isolate it. - - `mode' - The `mode=' form of the `$if' directive is used to test - whether Readline is in `emacs' or `vi' mode. This may be - used in conjunction with the `set keymap' command, for - instance, to set bindings in the `emacs-standard' and - `emacs-ctlx' keymaps only if Readline is starting out in - `emacs' mode. - - `term' - The `term=' form may be used to include terminal-specific key - bindings, perhaps to bind the key sequences output by the - terminal's function keys. The word on the right side of the - `=' is tested against both the full name of the terminal and - the portion of the terminal name before the first `-'. This - allows `sun' to match both `sun' and `sun-cmd', for instance. - - `application' - The APPLICATION construct is used to include - application-specific settings. Each program using the - Readline library sets the APPLICATION NAME, and you can test - for a particular value. This could be used to bind key - sequences to functions useful for a specific program. For - instance, the following command adds a key sequence that - quotes the current or previous word in Bash: - $if Bash - # Quote the current or previous word - "\C-xq": "\eb\"\ef\"" - $endif - -`$endif' - This command, as seen in the previous example, terminates an `$if' - command. - -`$else' - Commands in this branch of the `$if' directive are executed if the - test fails. - -`$include' - This directive takes a single filename as an argument and reads - commands and bindings from that file. For example, the following - directive reads from `/etc/inputrc': - $include /etc/inputrc - - -File: rluserman.info, Node: Sample Init File, Prev: Conditional Init Constructs, Up: Readline Init File - -1.3.3 Sample Init File ----------------------- - -Here is an example of an INPUTRC file. This illustrates key binding, -variable assignment, and conditional syntax. - - - # This file controls the behaviour of line input editing for - # programs that use the GNU Readline library. Existing - # programs include FTP, Bash, and GDB. - # - # You can re-read the inputrc file with C-x C-r. - # Lines beginning with '#' are comments. - # - # First, include any systemwide bindings and variable - # assignments from /etc/Inputrc - $include /etc/Inputrc - - # - # Set various bindings for emacs mode. - - set editing-mode emacs - - $if mode=emacs - - Meta-Control-h: backward-kill-word Text after the function name is ignored - - # - # Arrow keys in keypad mode - # - #"\M-OD": backward-char - #"\M-OC": forward-char - #"\M-OA": previous-history - #"\M-OB": next-history - # - # Arrow keys in ANSI mode - # - "\M-[D": backward-char - "\M-[C": forward-char - "\M-[A": previous-history - "\M-[B": next-history - # - # Arrow keys in 8 bit keypad mode - # - #"\M-\C-OD": backward-char - #"\M-\C-OC": forward-char - #"\M-\C-OA": previous-history - #"\M-\C-OB": next-history - # - # Arrow keys in 8 bit ANSI mode - # - #"\M-\C-[D": backward-char - #"\M-\C-[C": forward-char - #"\M-\C-[A": previous-history - #"\M-\C-[B": next-history - - C-q: quoted-insert - - $endif - - # An old-style binding. This happens to be the default. - TAB: complete - - # Macros that are convenient for shell interaction - $if Bash - # edit the path - "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f" - # prepare to type a quoted word -- - # insert open and close double quotes - # and move to just after the open quote - "\C-x\"": "\"\"\C-b" - # insert a backslash (testing backslash escapes - # in sequences and macros) - "\C-x\\": "\\" - # Quote the current or previous word - "\C-xq": "\eb\"\ef\"" - # Add a binding to refresh the line, which is unbound - "\C-xr": redraw-current-line - # Edit variable on current line. - "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y=" - $endif - - # use a visible bell if one is available - set bell-style visible - - # don't strip characters to 7 bits when reading - set input-meta on - - # allow iso-latin1 characters to be inserted rather - # than converted to prefix-meta sequences - set convert-meta off - - # display characters with the eighth bit set directly - # rather than as meta-prefixed characters - set output-meta on - - # if there are more than 150 possible completions for - # a word, ask the user if he wants to see all of them - set completion-query-items 150 - - # For FTP - $if Ftp - "\C-xg": "get \M-?" - "\C-xt": "put \M-?" - "\M-.": yank-last-arg - $endif - - -File: rluserman.info, Node: Bindable Readline Commands, Next: Readline vi Mode, Prev: Readline Init File, Up: Command Line Editing - -1.4 Bindable Readline Commands -============================== - -* Menu: - -* Commands For Moving:: Moving about the line. -* Commands For History:: Getting at previous lines. -* Commands For Text:: Commands for changing text. -* Commands For Killing:: Commands for killing and yanking. -* Numeric Arguments:: Specifying numeric arguments, repeat counts. -* Commands For Completion:: Getting Readline to do the typing for you. -* Keyboard Macros:: Saving and re-executing typed characters -* Miscellaneous Commands:: Other miscellaneous commands. - - This section describes Readline commands that may be bound to key -sequences. Command names without an accompanying key sequence are -unbound by default. - - In the following descriptions, "point" refers to the current cursor -position, and "mark" refers to a cursor position saved by the -`set-mark' command. The text between the point and mark is referred to -as the "region". - - -File: rluserman.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands - -1.4.1 Commands For Moving -------------------------- - -`beginning-of-line (C-a)' - Move to the start of the current line. - -`end-of-line (C-e)' - Move to the end of the line. - -`forward-char (C-f)' - Move forward a character. - -`backward-char (C-b)' - Move back a character. - -`forward-word (M-f)' - Move forward to the end of the next word. Words are composed of - letters and digits. - -`backward-word (M-b)' - Move back to the start of the current or previous word. Words are - composed of letters and digits. - -`clear-screen (C-l)' - Clear the screen and redraw the current line, leaving the current - line at the top of the screen. - -`redraw-current-line ()' - Refresh the current line. By default, this is unbound. - - - -File: rluserman.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands - -1.4.2 Commands For Manipulating The History -------------------------------------------- - -`accept-line (Newline or Return)' - Accept the line regardless of where the cursor is. If this line is - non-empty, it may be added to the history list for future recall - with `add_history()'. If this line is a modified history line, - the history line is restored to its original state. - -`previous-history (C-p)' - Move `back' through the history list, fetching the previous - command. - -`next-history (C-n)' - Move `forward' through the history list, fetching the next command. - -`beginning-of-history (M-<)' - Move to the first line in the history. - -`end-of-history (M->)' - Move to the end of the input history, i.e., the line currently - being entered. - -`reverse-search-history (C-r)' - Search backward starting at the current line and moving `up' - through the history as necessary. This is an incremental search. - -`forward-search-history (C-s)' - Search forward starting at the current line and moving `down' - through the the history as necessary. This is an incremental - search. - -`non-incremental-reverse-search-history (M-p)' - Search backward starting at the current line and moving `up' - through the history as necessary using a non-incremental search - for a string supplied by the user. - -`non-incremental-forward-search-history (M-n)' - Search forward starting at the current line and moving `down' - through the the history as necessary using a non-incremental search - for a string supplied by the user. - -`history-search-forward ()' - Search forward through the history for the string of characters - between the start of the current line and the point. This is a - non-incremental search. By default, this command is unbound. - -`history-search-backward ()' - Search backward through the history for the string of characters - between the start of the current line and the point. This is a - non-incremental search. By default, this command is unbound. - -`yank-nth-arg (M-C-y)' - Insert the first argument to the previous command (usually the - second word on the previous line) at point. With an argument N, - insert the Nth word from the previous command (the words in the - previous command begin with word 0). A negative argument inserts - the Nth word from the end of the previous command. Once the - argument N is computed, the argument is extracted as if the `!N' - history expansion had been specified. - -`yank-last-arg (M-. or M-_)' - Insert last argument to the previous command (the last word of the - previous history entry). With a numeric argument, behave exactly - like `yank-nth-arg'. Successive calls to `yank-last-arg' move - back through the history list, inserting the last word (or the - word specified by the argument to the first call) of each line in - turn. Any numeric argument supplied to these successive calls - determines the direction to move through the history. A negative - argument switches the direction through the history (back or - forward). The history expansion facilities are used to extract - the last argument, as if the `!$' history expansion had been - specified. - - - -File: rluserman.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands - -1.4.3 Commands For Changing Text --------------------------------- - -`delete-char (C-d)' - Delete the character at point. If point is at the beginning of - the line, there are no characters in the line, and the last - character typed was not bound to `delete-char', then return EOF. - -`backward-delete-char (Rubout)' - Delete the character behind the cursor. A numeric argument means - to kill the characters instead of deleting them. - -`forward-backward-delete-char ()' - Delete the character under the cursor, unless the cursor is at the - end of the line, in which case the character behind the cursor is - deleted. By default, this is not bound to a key. - -`quoted-insert (C-q or C-v)' - Add the next character typed to the line verbatim. This is how to - insert key sequences like `C-q', for example. - -`tab-insert (M-)' - Insert a tab character. - -`self-insert (a, b, A, 1, !, ...)' - Insert yourself. - -`transpose-chars (C-t)' - Drag the character before the cursor forward over the character at - the cursor, moving the cursor forward as well. If the insertion - point is at the end of the line, then this transposes the last two - characters of the line. Negative arguments have no effect. - -`transpose-words (M-t)' - Drag the word before point past the word after point, moving point - past that word as well. If the insertion point is at the end of - the line, this transposes the last two words on the line. - -`upcase-word (M-u)' - Uppercase the current (or following) word. With a negative - argument, uppercase the previous word, but do not move the cursor. - -`downcase-word (M-l)' - Lowercase the current (or following) word. With a negative - argument, lowercase the previous word, but do not move the cursor. - -`capitalize-word (M-c)' - Capitalize the current (or following) word. With a negative - argument, capitalize the previous word, but do not move the cursor. - -`overwrite-mode ()' - Toggle overwrite mode. With an explicit positive numeric argument, - switches to overwrite mode. With an explicit non-positive numeric - argument, switches to insert mode. This command affects only - `emacs' mode; `vi' mode does overwrite differently. Each call to - `readline()' starts in insert mode. - - In overwrite mode, characters bound to `self-insert' replace the - text at point rather than pushing the text to the right. - Characters bound to `backward-delete-char' replace the character - before point with a space. - - By default, this command is unbound. - - - -File: rluserman.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands - -1.4.4 Killing And Yanking -------------------------- - -`kill-line (C-k)' - Kill the text from point to the end of the line. - -`backward-kill-line (C-x Rubout)' - Kill backward to the beginning of the line. - -`unix-line-discard (C-u)' - Kill backward from the cursor to the beginning of the current line. - -`kill-whole-line ()' - Kill all characters on the current line, no matter where point is. - By default, this is unbound. - -`kill-word (M-d)' - Kill from point to the end of the current word, or if between - words, to the end of the next word. Word boundaries are the same - as `forward-word'. - -`backward-kill-word (M-)' - Kill the word behind point. Word boundaries are the same as - `backward-word'. - -`unix-word-rubout (C-w)' - Kill the word behind point, using white space as a word boundary. - The killed text is saved on the kill-ring. - -`unix-filename-rubout ()' - Kill the word behind point, using white space and the slash - character as the word boundaries. The killed text is saved on the - kill-ring. - -`delete-horizontal-space ()' - Delete all spaces and tabs around point. By default, this is - unbound. - -`kill-region ()' - Kill the text in the current region. By default, this command is - unbound. - -`copy-region-as-kill ()' - Copy the text in the region to the kill buffer, so it can be yanked - right away. By default, this command is unbound. - -`copy-backward-word ()' - Copy the word before point to the kill buffer. The word - boundaries are the same as `backward-word'. By default, this - command is unbound. - -`copy-forward-word ()' - Copy the word following point to the kill buffer. The word - boundaries are the same as `forward-word'. By default, this - command is unbound. - -`yank (C-y)' - Yank the top of the kill ring into the buffer at point. - -`yank-pop (M-y)' - Rotate the kill-ring, and yank the new top. You can only do this - if the prior command is `yank' or `yank-pop'. - - -File: rluserman.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands - -1.4.5 Specifying Numeric Arguments ----------------------------------- - -`digit-argument (M-0, M-1, ... M--)' - Add this digit to the argument already accumulating, or start a new - argument. `M--' starts a negative argument. - -`universal-argument ()' - This is another way to specify an argument. If this command is - followed by one or more digits, optionally with a leading minus - sign, those digits define the argument. If the command is - followed by digits, executing `universal-argument' again ends the - numeric argument, but is otherwise ignored. As a special case, if - this command is immediately followed by a character that is - neither a digit or minus sign, the argument count for the next - command is multiplied by four. The argument count is initially - one, so executing this function the first time makes the argument - count four, a second time makes the argument count sixteen, and so - on. By default, this is not bound to a key. - - -File: rluserman.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands - -1.4.6 Letting Readline Type For You ------------------------------------ - -`complete ()' - Attempt to perform completion on the text before point. The - actual completion performed is application-specific. The default - is filename completion. - -`possible-completions (M-?)' - List the possible completions of the text before point. When - displaying completions, Readline sets the number of columns used - for display to the value of `completion-display-width', the value - of the environment variable `COLUMNS', or the screen width, in - that order. - -`insert-completions (M-*)' - Insert all completions of the text before point that would have - been generated by `possible-completions'. - -`menu-complete ()' - Similar to `complete', but replaces the word to be completed with - a single match from the list of possible completions. Repeated - execution of `menu-complete' steps through the list of possible - completions, inserting each match in turn. At the end of the list - of completions, the bell is rung (subject to the setting of - `bell-style') and the original text is restored. An argument of N - moves N positions forward in the list of matches; a negative - argument may be used to move backward through the list. This - command is intended to be bound to , but is unbound by - default. - -`menu-complete-backward ()' - Identical to `menu-complete', but moves backward through the list - of possible completions, as if `menu-complete' had been given a - negative argument. - -`delete-char-or-list ()' - Deletes the character under the cursor if not at the beginning or - end of the line (like `delete-char'). If at the end of the line, - behaves identically to `possible-completions'. This command is - unbound by default. - - - -File: rluserman.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands - -1.4.7 Keyboard Macros ---------------------- - -`start-kbd-macro (C-x ()' - Begin saving the characters typed into the current keyboard macro. - -`end-kbd-macro (C-x ))' - Stop saving the characters typed into the current keyboard macro - and save the definition. - -`call-last-kbd-macro (C-x e)' - Re-execute the last keyboard macro defined, by making the - characters in the macro appear as if typed at the keyboard. - - - -File: rluserman.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands - -1.4.8 Some Miscellaneous Commands ---------------------------------- - -`re-read-init-file (C-x C-r)' - Read in the contents of the INPUTRC file, and incorporate any - bindings or variable assignments found there. - -`abort (C-g)' - Abort the current editing command and ring the terminal's bell - (subject to the setting of `bell-style'). - -`do-uppercase-version (M-a, M-b, M-X, ...)' - If the metafied character X is lowercase, run the command that is - bound to the corresponding uppercase character. - -`prefix-meta ()' - Metafy the next character typed. This is for keyboards without a - meta key. Typing ` f' is equivalent to typing `M-f'. - -`undo (C-_ or C-x C-u)' - Incremental undo, separately remembered for each line. - -`revert-line (M-r)' - Undo all changes made to this line. This is like executing the - `undo' command enough times to get back to the beginning. - -`tilde-expand (M-~)' - Perform tilde expansion on the current word. - -`set-mark (C-@)' - Set the mark to the point. If a numeric argument is supplied, the - mark is set to that position. - -`exchange-point-and-mark (C-x C-x)' - Swap the point with the mark. The current cursor position is set - to the saved position, and the old cursor position is saved as the - mark. - -`character-search (C-])' - A character is read and point is moved to the next occurrence of - that character. A negative count searches for previous - occurrences. - -`character-search-backward (M-C-])' - A character is read and point is moved to the previous occurrence - of that character. A negative count searches for subsequent - occurrences. - -`skip-csi-sequence ()' - Read enough characters to consume a multi-key sequence such as - those defined for keys like Home and End. Such sequences begin - with a Control Sequence Indicator (CSI), usually ESC-[. If this - sequence is bound to "\e[", keys producing such sequences will - have no effect unless explicitly bound to a readline command, - instead of inserting stray characters into the editing buffer. - This is unbound by default, but usually bound to ESC-[. - -`insert-comment (M-#)' - Without a numeric argument, the value of the `comment-begin' - variable is inserted at the beginning of the current line. If a - numeric argument is supplied, this command acts as a toggle: if - the characters at the beginning of the line do not match the value - of `comment-begin', the value is inserted, otherwise the - characters in `comment-begin' are deleted from the beginning of - the line. In either case, the line is accepted as if a newline - had been typed. - -`dump-functions ()' - Print all of the functions and their key bindings to the Readline - output stream. If a numeric argument is supplied, the output is - formatted in such a way that it can be made part of an INPUTRC - file. This command is unbound by default. - -`dump-variables ()' - Print all of the settable variables and their values to the - Readline output stream. If a numeric argument is supplied, the - output is formatted in such a way that it can be made part of an - INPUTRC file. This command is unbound by default. - -`dump-macros ()' - Print all of the Readline key sequences bound to macros and the - strings they output. If a numeric argument is supplied, the - output is formatted in such a way that it can be made part of an - INPUTRC file. This command is unbound by default. - -`emacs-editing-mode (C-e)' - When in `vi' command mode, this causes a switch to `emacs' editing - mode. - -`vi-editing-mode (M-C-j)' - When in `emacs' editing mode, this causes a switch to `vi' editing - mode. - - - -File: rluserman.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing - -1.5 Readline vi Mode -==================== - -While the Readline library does not have a full set of `vi' editing -functions, it does contain enough to allow simple editing of the line. -The Readline `vi' mode behaves as specified in the POSIX standard. - - In order to switch interactively between `emacs' and `vi' editing -modes, use the command `M-C-j' (bound to emacs-editing-mode when in -`vi' mode and to vi-editing-mode in `emacs' mode). The Readline -default is `emacs' mode. - - When you enter a line in `vi' mode, you are already placed in -`insertion' mode, as if you had typed an `i'. Pressing switches -you into `command' mode, where you can edit the text of the line with -the standard `vi' movement keys, move to previous history lines with -`k' and subsequent lines with `j', and so forth. - - -File: rluserman.info, Node: GNU Free Documentation License, Prev: Command Line Editing, Up: Top - -Appendix A GNU Free Documentation License -***************************************** - - Version 1.3, 3 November 2008 - - Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. - `http://fsf.org/' - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other - functional and useful document "free" in the sense of freedom: to - assure everyone the effective freedom to copy and redistribute it, - with or without modifying it, either commercially or - noncommercially. Secondarily, this License preserves for the - author and publisher a way to get credit for their work, while not - being considered responsible for modifications made by others. - - This License is a kind of "copyleft", which means that derivative - works of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft - license designed for free software. - - We have designed this License in order to use it for manuals for - free software, because free software needs free documentation: a - free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to - software manuals; it can be used for any textual work, regardless - of subject matter or whether it is published as a printed book. - We recommend this License principally for works whose purpose is - instruction or reference. - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work, in any medium, - that contains a notice placed by the copyright holder saying it - can be distributed under the terms of this License. Such a notice - grants a world-wide, royalty-free license, unlimited in duration, - to use that work under the conditions stated herein. The - "Document", below, refers to any such manual or work. Any member - of the public is a licensee, and is addressed as "you". You - accept the license if you copy, modify or distribute the work in a - way requiring permission under copyright law. - - A "Modified Version" of the Document means any work containing the - Document or a portion of it, either copied verbatim, or with - modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter section - of the Document that deals exclusively with the relationship of the - publishers or authors of the Document to the Document's overall - subject (or to related matters) and contains nothing that could - fall directly within that overall subject. (Thus, if the Document - is in part a textbook of mathematics, a Secondary Section may not - explain any mathematics.) The relationship could be a matter of - historical connection with the subject or with related matters, or - of legal, commercial, philosophical, ethical or political position - regarding them. - - The "Invariant Sections" are certain Secondary Sections whose - titles are designated, as being those of Invariant Sections, in - the notice that says that the Document is released under this - License. If a section does not fit the above definition of - Secondary then it is not allowed to be designated as Invariant. - The Document may contain zero Invariant Sections. If the Document - does not identify any Invariant Sections then there are none. - - The "Cover Texts" are certain short passages of text that are - listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License. A - Front-Cover Text may be at most 5 words, and a Back-Cover Text may - be at most 25 words. - - A "Transparent" copy of the Document means a machine-readable copy, - represented in a format whose specification is available to the - general public, that is suitable for revising the document - straightforwardly with generic text editors or (for images - composed of pixels) generic paint programs or (for drawings) some - widely available drawing editor, and that is suitable for input to - text formatters or for automatic translation to a variety of - formats suitable for input to text formatters. A copy made in an - otherwise Transparent file format whose markup, or absence of - markup, has been arranged to thwart or discourage subsequent - modification by readers is not Transparent. An image format is - not Transparent if used for any substantial amount of text. A - copy that is not "Transparent" is called "Opaque". - - Examples of suitable formats for Transparent copies include plain - ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and - standard-conforming simple HTML, PostScript or PDF designed for - human modification. Examples of transparent image formats include - PNG, XCF and JPG. Opaque formats include proprietary formats that - can be read and edited only by proprietary word processors, SGML or - XML for which the DTD and/or processing tools are not generally - available, and the machine-generated HTML, PostScript or PDF - produced by some word processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, - plus such following pages as are needed to hold, legibly, the - material this License requires to appear in the title page. For - works in formats which do not have any title page as such, "Title - Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text. - - The "publisher" means any person or entity that distributes copies - of the Document to the public. - - A section "Entitled XYZ" means a named subunit of the Document - whose title either is precisely XYZ or contains XYZ in parentheses - following text that translates XYZ in another language. (Here XYZ - stands for a specific section name mentioned below, such as - "Acknowledgements", "Dedications", "Endorsements", or "History".) - To "Preserve the Title" of such a section when you modify the - Document means that it remains a section "Entitled XYZ" according - to this definition. - - The Document may include Warranty Disclaimers next to the notice - which states that this License applies to the Document. These - Warranty Disclaimers are considered to be included by reference in - this License, but only as regards disclaiming warranties: any other - implication that these Warranty Disclaimers may have is void and - has no effect on the meaning of this License. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either - commercially or noncommercially, provided that this License, the - copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that you - add no other conditions whatsoever to those of this License. You - may not use technical measures to obstruct or control the reading - or further copying of the copies you make or distribute. However, - you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow - the conditions in section 3. - - You may also lend copies, under the same conditions stated above, - and you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies (or copies in media that commonly - have printed covers) of the Document, numbering more than 100, and - the Document's license notice requires Cover Texts, you must - enclose the copies in covers that carry, clearly and legibly, all - these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The - front cover must present the full title with all words of the - title equally prominent and visible. You may add other material - on the covers in addition. Copying with changes limited to the - covers, as long as they preserve the title of the Document and - satisfy these conditions, can be treated as verbatim copying in - other respects. - - If the required texts for either cover are too voluminous to fit - legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto - adjacent pages. - - If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a - machine-readable Transparent copy along with each Opaque copy, or - state in or with each Opaque copy a computer-network location from - which the general network-using public has access to download - using public-standard network protocols a complete Transparent - copy of the Document, free of added material. If you use the - latter option, you must take reasonably prudent steps, when you - begin distribution of Opaque copies in quantity, to ensure that - this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you - distribute an Opaque copy (directly or through your agents or - retailers) of that edition to the public. - - It is requested, but not required, that you contact the authors of - the Document well before redistributing any large number of - copies, to give them a chance to provide you with an updated - version of the Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document - under the conditions of sections 2 and 3 above, provided that you - release the Modified Version under precisely this License, with - the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version to - whoever possesses a copy of it. In addition, you must do these - things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title - distinct from that of the Document, and from those of - previous versions (which should, if there were any, be listed - in the History section of the Document). You may use the - same title as a previous version if the original publisher of - that version gives permission. - - B. List on the Title Page, as authors, one or more persons or - entities responsible for authorship of the modifications in - the Modified Version, together with at least five of the - principal authors of the Document (all of its principal - authors, if it has fewer than five), unless they release you - from this requirement. - - C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. - - D. Preserve all the copyright notices of the Document. - - E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - - F. Include, immediately after the copyright notices, a license - notice giving the public permission to use the Modified - Version under the terms of this License, in the form shown in - the Addendum below. - - G. Preserve in that license notice the full lists of Invariant - Sections and required Cover Texts given in the Document's - license notice. - - H. Include an unaltered copy of this License. - - I. Preserve the section Entitled "History", Preserve its Title, - and add to it an item stating at least the title, year, new - authors, and publisher of the Modified Version as given on - the Title Page. If there is no section Entitled "History" in - the Document, create one stating the title, year, authors, - and publisher of the Document as given on its Title Page, - then add an item describing the Modified Version as stated in - the previous sentence. - - J. Preserve the network location, if any, given in the Document - for public access to a Transparent copy of the Document, and - likewise the network locations given in the Document for - previous versions it was based on. These may be placed in - the "History" section. You may omit a network location for a - work that was published at least four years before the - Document itself, or if the original publisher of the version - it refers to gives permission. - - K. For any section Entitled "Acknowledgements" or "Dedications", - Preserve the Title of the section, and preserve in the - section all the substance and tone of each of the contributor - acknowledgements and/or dedications given therein. - - L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section - titles. - - M. Delete any section Entitled "Endorsements". Such a section - may not be included in the Modified Version. - - N. Do not retitle any existing section to be Entitled - "Endorsements" or to conflict in title with any Invariant - Section. - - O. Preserve any Warranty Disclaimers. - - If the Modified Version includes new front-matter sections or - appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option - designate some or all of these sections as invariant. To do this, - add their titles to the list of Invariant Sections in the Modified - Version's license notice. These titles must be distinct from any - other section titles. - - You may add a section Entitled "Endorsements", provided it contains - nothing but endorsements of your Modified Version by various - parties--for example, statements of peer review or that the text - has been approved by an organization as the authoritative - definition of a standard. - - You may add a passage of up to five words as a Front-Cover Text, - and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one - passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. If the - Document already includes a cover text for the same cover, - previously added by you or by arrangement made by the same entity - you are acting on behalf of, you may not add another; but you may - replace the old one, on explicit permission from the previous - publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this - License give permission to use their names for publicity for or to - assert or imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under - this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination - all of the Invariant Sections of all of the original documents, - unmodified, and list them all as Invariant Sections of your - combined work in its license notice, and that you preserve all - their Warranty Disclaimers. - - The combined work need only contain one copy of this License, and - multiple identical Invariant Sections may be replaced with a single - copy. If there are multiple Invariant Sections with the same name - but different contents, make the title of each such section unique - by adding at the end of it, in parentheses, the name of the - original author or publisher of that section if known, or else a - unique number. Make the same adjustment to the section titles in - the list of Invariant Sections in the license notice of the - combined work. - - In the combination, you must combine any sections Entitled - "History" in the various original documents, forming one section - Entitled "History"; likewise combine any sections Entitled - "Acknowledgements", and any sections Entitled "Dedications". You - must delete all sections Entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other - documents released under this License, and replace the individual - copies of this License in the various documents with a single copy - that is included in the collection, provided that you follow the - rules of this License for verbatim copying of each of the - documents in all other respects. - - You may extract a single document from such a collection, and - distribute it individually under this License, provided you insert - a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume of - a storage or distribution medium, is called an "aggregate" if the - copyright resulting from the compilation is not used to limit the - legal rights of the compilation's users beyond what the individual - works permit. When the Document is included in an aggregate, this - License does not apply to the other works in the aggregate which - are not themselves derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these - copies of the Document, then if the Document is less than one half - of the entire aggregate, the Document's Cover Texts may be placed - on covers that bracket the Document within the aggregate, or the - electronic equivalent of covers if the Document is in electronic - form. Otherwise they must appear on printed covers that bracket - the whole aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section - 4. Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include a - translation of this License, and all the license notices in the - Document, and any Warranty Disclaimers, provided that you also - include the original English version of this License and the - original versions of those notices and disclaimers. In case of a - disagreement between the translation and the original version of - this License or a notice or disclaimer, the original version will - prevail. - - If a section in the Document is Entitled "Acknowledgements", - "Dedications", or "History", the requirement (section 4) to - Preserve its Title (section 1) will typically require changing the - actual title. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document - except as expressly provided under this License. Any attempt - otherwise to copy, modify, sublicense, or distribute it is void, - and will automatically terminate your rights under this License. - - However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly - and finally terminates your license, and (b) permanently, if the - copyright holder fails to notify you of the violation by some - reasonable means prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from - that copyright holder, and you cure the violation prior to 30 days - after your receipt of the notice. - - Termination of your rights under this section does not terminate - the licenses of parties who have received copies or rights from - you under this License. If your rights have been terminated and - not permanently reinstated, receipt of a copy of some or all of - the same material does not give you any rights to use it. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of - the GNU Free Documentation License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. See - `http://www.gnu.org/copyleft/'. - - Each version of the License is given a distinguishing version - number. If the Document specifies that a particular numbered - version of this License "or any later version" applies to it, you - have the option of following the terms and conditions either of - that specified version or of any later version that has been - published (not as a draft) by the Free Software Foundation. If - the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation. If the Document specifies that a proxy - can decide which future versions of this License can be used, that - proxy's public statement of acceptance of a version permanently - authorizes you to choose that version for the Document. - - 11. RELICENSING - - "Massive Multiauthor Collaboration Site" (or "MMC Site") means any - World Wide Web server that publishes copyrightable works and also - provides prominent facilities for anybody to edit those works. A - public wiki that anybody can edit is an example of such a server. - A "Massive Multiauthor Collaboration" (or "MMC") contained in the - site means any set of copyrightable works thus published on the MMC - site. - - "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 - license published by Creative Commons Corporation, a not-for-profit - corporation with a principal place of business in San Francisco, - California, as well as future copyleft versions of that license - published by that same organization. - - "Incorporate" means to publish or republish a Document, in whole or - in part, as part of another Document. - - An MMC is "eligible for relicensing" if it is licensed under this - License, and if all works that were first published under this - License somewhere other than this MMC, and subsequently - incorporated in whole or in part into the MMC, (1) had no cover - texts or invariant sections, and (2) were thus incorporated prior - to November 1, 2008. - - The operator of an MMC Site may republish an MMC contained in the - site under CC-BY-SA on the same site at any time before August 1, - 2009, provided the MMC is eligible for relicensing. - - -ADDENDUM: How to use this License for your documents -==================================================== - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (C) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.3 - or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover - Texts. A copy of the license is included in the section entitled ``GNU - Free Documentation License''. - - If you have Invariant Sections, Front-Cover Texts and Back-Cover -Texts, replace the "with...Texts." line with this: - - with the Invariant Sections being LIST THEIR TITLES, with - the Front-Cover Texts being LIST, and with the Back-Cover Texts - being LIST. - - If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - - -Tag Table: -Node: Top1329 -Node: Command Line Editing1783 -Node: Introduction and Notation2437 -Node: Readline Interaction4061 -Node: Readline Bare Essentials5254 -Node: Readline Movement Commands7045 -Node: Readline Killing Commands8012 -Node: Readline Arguments9934 -Node: Searching10980 -Node: Readline Init File13133 -Node: Readline Init File Syntax14288 -Node: Conditional Init Constructs29350 -Node: Sample Init File31885 -Node: Bindable Readline Commands35004 -Node: Commands For Moving36063 -Node: Commands For History36926 -Node: Commands For Text40332 -Node: Commands For Killing43060 -Node: Numeric Arguments45204 -Node: Commands For Completion46345 -Node: Keyboard Macros48316 -Node: Miscellaneous Commands48889 -Node: Readline vi Mode52747 -Node: GNU Free Documentation License53661 - -End Tag Table diff --git a/lib/readline/doc/rluserman.ky b/lib/readline/doc/rluserman.ky deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/rluserman.log b/lib/readline/doc/rluserman.log deleted file mode 100644 index 10238c56c..000000000 --- a/lib/readline/doc/rluserman.log +++ /dev/null @@ -1,215 +0,0 @@ -This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 8 FEB 2011 11:10 -**/usr/homes/chet/src/bash/src/lib/readline/doc/rluserman.texi -(/usr/homes/chet/src/bash/src/lib/readline/doc/rluserman.texi (./texinfo.tex -Loading texinfo [version 2009-01-18.17]: -\bindingoffset=\dimen16 -\normaloffset=\dimen17 -\pagewidth=\dimen18 -\pageheight=\dimen19 -\outerhsize=\dimen20 -\outervsize=\dimen21 -\cornerlong=\dimen22 -\cornerthick=\dimen23 -\topandbottommargin=\dimen24 -\headlinebox=\box16 -\footlinebox=\box17 -\margin=\insert252 -\EMsimple=\toks12 -\groupbox=\box18 -\groupinvalidhelp=\toks13 -\mil=\dimen25 -\exdentamount=\skip18 -\inmarginspacing=\skip19 - pdf, -\tempnum=\count26 -\lnkcount=\count27 -\filename=\toks14 -\filenamelength=\count28 -\pgn=\count29 -\toksA=\toks15 -\toksB=\toks16 -\toksC=\toks17 -\toksD=\toks18 -\boxA=\box19 -\countA=\count30 -\nopdfimagehelp=\toks19 - fonts, -\sffam=\fam8 -\textleading=\dimen26 - markup, -\fontdepth=\count31 - glyphs, -\errorbox=\box20 - -page headings, -\titlepagetopglue=\skip20 -\titlepagebottomglue=\skip21 -\evenheadline=\toks20 -\oddheadline=\toks21 -\evenfootline=\toks22 -\oddfootline=\toks23 - tables, -\tableindent=\dimen27 -\itemindent=\dimen28 -\itemmargin=\dimen29 -\itemmax=\dimen30 -\itemno=\count32 -\multitableparskip=\skip22 -\multitableparindent=\skip23 -\multitablecolspace=\dimen31 -\multitablelinespace=\skip24 -\colcount=\count33 -\everytab=\toks24 - conditionals, -\doignorecount=\count34 - indexing, -\whatsitskip=\skip25 -\whatsitpenalty=\count35 -\secondaryindent=\skip26 -\partialpage=\box21 -\doublecolumnhsize=\dimen32 - sectioning, -\unnumberedno=\count36 -\chapno=\count37 -\secno=\count38 -\subsecno=\count39 -\subsubsecno=\count40 -\appendixno=\count41 -\absseclevel=\count42 -\secbase=\count43 -\chapheadingskip=\skip27 -\secheadingskip=\skip28 -\subsecheadingskip=\skip29 - toc, -\tocfile=\write0 -\contentsrightmargin=\skip30 -\savepageno=\count44 -\lastnegativepageno=\count45 -\tocindent=\dimen33 - environments, -\lispnarrowing=\skip31 -\envskipamount=\skip32 -\circthick=\dimen34 -\cartouter=\dimen35 -\cartinner=\dimen36 -\normbskip=\skip33 -\normpskip=\skip34 -\normlskip=\skip35 -\lskip=\skip36 -\rskip=\skip37 -\nonfillparindent=\dimen37 -\tabw=\dimen38 - -defuns, -\defbodyindent=\skip38 -\defargsindent=\skip39 -\deflastargmargin=\skip40 -\defunpenalty=\count46 -\parencount=\count47 -\brackcount=\count48 - macros, -\macscribble=\write1 -\paramno=\count49 -\macname=\toks25 - cross references, -\auxfile=\write2 -\savesfregister=\count50 - insertions, -\footnoteno=\count51 -\SAVEfootins=\box22 -\SAVEmargin=\box23 - -(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex -\epsffilein=\read0 -\epsfframemargin=\dimen39 -\epsfframethickness=\dimen40 -\epsfrsize=\dimen41 -\epsftmp=\dimen42 -\epsftsize=\dimen43 -\epsfxsize=\dimen44 -\epsfysize=\dimen45 -\pspoints=\dimen46 -\epsfnoopenhelp=\toks26 -) -\noepsfhelp=\toks27 - localization, -\nolanghelp=\toks28 -\countUTFx=\count52 -\countUTFy=\count53 -\countUTFz=\count54 - formatting, -\defaultparindent=\dimen47 - -and turning on texinfo input format.) (./rluserman.aux) -\openout2 = `rluserman.aux'. - -@cpindfile=@write3 -@fnindfile=@write4 -@vrindfile=@write5 -@tpindfile=@write6 -@kyindfile=@write7 -@pgindfile=@write8 - (./version.texi) -[1 -\openout3 = `rluserman.cp'. - -\openout4 = `rluserman.fn'. - -\openout5 = `rluserman.vr'. - -\openout6 = `rluserman.tp'. - -\openout7 = `rluserman.ky'. - -\openout8 = `rluserman.pg'. - -] -\openout1 = `rluserman.tmp'. - - (./rluserman.tmp) [2] (./rluserman.toc) [-1] (./rluser.texi -@btindfile=@write9 - Chapter 1 -\openout0 = `rluserman.toc'. - - -[1 -\openout9 = `rluserman.bt'. - -] [2] [3] [4] [5] [6] -Underfull \hbox (badness 5231) in paragraph at lines 551--567 - @texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr -m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and - -@hbox(7.60416+2.12917)x433.62, glue set 3.7426 -.@glue(@leftskip) 115.63242 -.@texttt e -.@texttt m -.@texttt a -.@texttt c -.etc. - -[7] [8] [9] [10] [11] -Overfull \hbox (26.43913pt too wide) in paragraph at lines 894--894 - []@texttt Meta-Control-h: backward-kill-word Text after the function name is i -gnored[] | - -@hbox(6.69167+2.43333)x433.62 -.@glue(@leftskip) 28.90755 -.@hbox(0.0+0.0)x0.0 -.@texttt M -.@texttt e -.@texttt t -.etc. - -[12] [13] [14] [15] [16] [17] [18] [19] [20]) Appendix A [21] (./fdl.texi -[22] [23] [24] [25] [26] [27] [28]) [29] ) -Here is how much of TeX's memory you used: - 1743 strings out of 97980 - 20821 string characters out of 1221004 - 78011 words of memory out of 1500000 - 2579 multiletter control sequences out of 10000+50000 - 32127 words of font info for 112 fonts, out of 1200000 for 2000 - 51 hyphenation exceptions out of 8191 - 16i,6n,14p,331b,534s stack positions out of 5000i,500n,6000p,200000b,5000s - -Output written on rluserman.dvi (32 pages, 102724 bytes). diff --git a/lib/readline/doc/rluserman.pg b/lib/readline/doc/rluserman.pg deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/rluserman.ps b/lib/readline/doc/rluserman.ps deleted file mode 100644 index 8801dead1..000000000 --- a/lib/readline/doc/rluserman.ps +++ /dev/null @@ -1,4888 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software -%%Title: rluserman.dvi -%%Pages: 32 -%%PageOrder: Ascend -%%BoundingBox: 0 0 595 842 -%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSY10 CMMI12 CMMI10 CMCSC10 -%%+ CMSLTT10 CMTI10 CMSL10 CMTT9 -%%DocumentPaperSizes: a4 -%%EndComments -%DVIPSWebPage: (www.radicaleye.com) -%DVIPSCommandLine: dvips -D 300 -o rluserman.ps rluserman.dvi -%DVIPSParameters: dpi=300 -%DVIPSSource: TeX output 2011.02.08:1110 -%%BeginProcSet: tex.pro 0 0 -%! -/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S -N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 -mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 -0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ -landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize -mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ -matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round -exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ -statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] -N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin -/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array -/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 -array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N -df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A -definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get -}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} -B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr -1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S -/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy -setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask -restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn -/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put -}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ -bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A -mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ -SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ -userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X -1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 -index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N -/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ -/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) -(LaserWriter 16/600)]{A length product length le{A length product exch 0 -exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse -end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask -grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} -imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round -exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto -fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p -delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} -B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ -p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S -rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end - -%%EndProcSet -%%BeginProcSet: texps.pro 0 0 -%! -TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 -index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll -exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 -ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ -pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get -div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type -/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end -definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup -sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll -mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ -exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} -forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def -end - -%%EndProcSet -%%BeginFont: CMSLTT10 -%!PS-AdobeFont-1.1: CMSLTT10 1.0 -%%CreationDate: 1991 Aug 20 16:41:43 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSLTT10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -9.46 def -/isFixedPitch true def -end readonly def -/FontName /CMSLTT10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 39 /quoteright put -dup 45 /hyphen put -dup 48 /zero put -dup 49 /one put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 72 /H put -dup 74 /J put -dup 76 /L put -dup 77 /M put -dup 92 /backslash put -dup 95 /underscore put -dup 97 /a put -dup 98 /b put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -readonly def -/FontBBox{-20 -233 617 696}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0528A405DF15F03DB1C3DA8B850431F8 -0E5F73DAC973450D1ED0530313057E971FC7E7CA88E61DA6DB9A5CD61F0F76CB -4DE9105D0627B8DDF51A655098229920CF429CDAFC3F7788C95E7AB30E84F840 -8CED52E98DB4CFF161D2E62B0D28CB8B0AC82E7A8D2C007953BAFB3056D66079 -8064956E257D31C13509FB81A250D9E875C77A4E91CC49E9FB3C0718B2F691D4 -B4A64F351F4DD68133DED7629B0D96E5124584A16FD2AC7A3EB244A934FF059F -ED7297B0505F3C2994AD66A3CA5D2728B034DE94B64A8AFAF341601BD4DB5858 -C9950A8BB9C598B8960609F48116ABA8C007190AF0ED335EB5BF61BA6871FA5F -EAB5A26AEB5C7C352EB80799CEB983F19EEFA801093F62086AADD0B80BB6580F -2CF61B1390FA56DFA1A0B61C58DEF96BA767A8A37EA44730783C600706606C60 -4EE74EA99B7C0F8E2525C8847F3D31907C3C483EFA98F6C416B6B2C343DE6370 -52FAE423008D086A76A1FFB327CC7FD84B1C66B203A4F41582F4599A82F8362D -38108452EACCC937FFC4F3ABBFE3628DF51367DA6BA3F6826FC6522D6AC5E8EA -00BAD300FFB6DEDAB93237704202BACD030AA824B1E97C0AFE17FCE8C75F4FA0 -B8A74329A6CF1788C7EB34DA7307411E9AD7ED8D6582884456E06E033B4FFE7D -CD4DD8B06AD01340CCCFBC382C18CA451E4C886B01D082FF8CC5793F4727C3DF -B52B4F1A242F31D1EB79D1E39A1D4FD13D6C5E2A42AD4B4D1CC4EE7BA0E5F80F -802E5AB57EA15F4DE44D82AC408AA86D4BF58EF967FBC6497BBC7F017C0598AE -32CF865DFFF0FC7FF9E6DCE9B5F2F4C7491AC674F46E8E7660452CE0A77C1EE8 -00DE382ABED85350033F8ECB97398E4E0A75D4877A107F6A909D0C76D14F9A96 -8A6CFDE3FD9D79B6FD82693A9F354BD2ECF30C6D99F7AC522F8D6C93EA214F7B -3D0ED77F042ACDE9414264C0698E86398562E2C640DEBBA0734AB4C3ACE3907D -CC79E6B2C6C3C3F9B01526E8CD98237D4A9B403FF8CE3132222FA60C196A19BC -A2393AE6935C0F8B67FC1D1A12A45ED5F28B5D6A266A3ECAA5BC3429F2B2FFDD -70F50A94CACA6AA6B2215B41EA683DF13679E9C950276294B15370256F17E3E8 -5FB8B575E7D4A3FC9BD8A5FAE6FCA53DF678F37701E83F18F1E116E901A39DCB -C05CF72BFAF7FD8CC6A63A23C1CFC064EF32F3F67EE47B4209A5F83A5B2681C7 -8349B0C686E9D9844242C28DEC5E33DF480418F784EF676681D52ED234561B62 -4B7896DEC847A783789BFA4159279438404D596C9E6789B5C63C749AF0C3FBB3 -AADFC022B8682FD21F13460FE480C6B8CC1FB4EAC8E7AAFDCFDAD39508EF9B61 -BBCC73F90FB40E94EAC04892831753F15E06F77399F8ADB508F411A89A0399B4 -240C28E4DDDA98B9E771FE6AA0E2C8DE04DDA8AE54BD1A90DAFC1B0B66964F3E -31475DBBC3D3BA2CA2C3D55D91917F6E496EFBCD5CBC46A27DB7E3FD229DE5AE -A194E4B767F933C434D204BB080A5C24805A23E477BCFF6D19DB22FAFFEB97CA -5445129773D40A43537F15EE90CC399EF58C31253BBC0177D05A1DBF23EB26D0 -159FA4D20E5E5B04A125FFF85CD1154B20BC5BFBA18F87670A2BF1A32A696A70 -4E82EBEC804D798202DAF537B468B5880FCAC75BDCFBF65FE6EBB93A1309D343 -09CCF1B81155761809E4ABA53CC9BF8D3FEC5602A6F3561CF2AF6D0A35B8876A -8BE4CCBCB2DE4E4D07F50F9C5F831C499ADC35827F7F7BE7E1E0CE1BF2E3578E -FA292C0CFCA10329156FC79BE3D80225794DE7062B8CE232355007F53F9184BA -93F2C8F0EC8FD88F01397E1EC2ADBAA889C003AE4847BD08FBD9673C4B4D20D7 -53D0FD11FE4DE30AF01AF0141573DEB0B054DE244035E6161962D9BA836D42B9 -8B8006A40E357E28859D867052CE7DAA86F32641C1764A51F631CBA3FC206667 -81863B28C5BEE78C574F1946253D192C50CED9746B01CF4BEDDB5AB7492E36B0 -FDDB90206C5410551EA2F44E427B6A254FB2E965932DFA8A4465B509276CDAF3 -CFE6FC9963F801813A03D434B74273BC4FBA6FFB8545A10B453F8AC8086DA9CB -49A701C500FD3D1577A215026EEB1AD2616223CC65E34CA84D1BAB896EE60C08 -7708BB0E5FFAC9EE1A24F72F03C13B8A275264CE267728084388365FF79B895C -B65A33011BBEB2356016786F62EBCE765891CCEBC5A57453AA1AE771147D23C5 -7E289B67C94A4C7DBB3520A7E5BA938DDDE360FF69484CC4F31D57271BE2D19F -7E689DD8373EC2CF7E3874711F3E3EDEEB09435AA0909418AD76074944C06BC6 -10C087339F57A1C828E1DCAC8B6F7D1F94A25133D72E68BA0C15586C997581B5 -957F59D0445D39E0F8226D4C621E9B12256EB583A7EE4A5EBD15B3E6BC9F6687 -28735EC4962332DEAD2D2A28714FB8F606B358E3E9ABC868E169E3FCEA409A48 -6998A5F444CE13F65F3F9D4B2A90CF483346348E4E6B4868C442C83726634EA4 -D4917AC8ED021012707DFC72926B58917264925482CA53A2BB96E2FC58A6083E -4D7193E39B0B20EA7BC306FFBD70D434795176E77DC76C9643560472AC2718E2 -9A70D6973D0903263D1DEC1E82752CAC7AC2EC5442D9151BF459C27D96A28096 -42ADFD3D9FAA7A42A2EBE9CA3D7DC90AD0A6BA1B9F5224FBE0051352176DA443 -039B52443A0031BCD66485F49B55D7DBF4F4EB7E4A87DCF7A1F3F345EF85DA6D -30CA6E389FC39930850B63E8EF3523AE1FF188DE5E26766C160A2F1631E1846D -6DAEF695D585909E1F9A85C551B864046B534FDE0A35E54ACB3EDCF34A87CCC7 -C6073D2761CF74B07D154A4C560F5595A87250E3549E3706A402F3CC879AB051 -796A168E1197187ECF09AC42398AE4085F4C70EFDF98C387C232E3C323C6C496 -5EA1A799D2EC3E9E6C8060ACFFEB714FBBF8210D285D871A40DE8C39DF37FE1F -241491B1B483A0B7D95DEA6E211954DCF49DA353F4A71CD9E0D144E84CE4A426 -8558F4B2BC06A7D44C961B6ADABA9759D1FF06DCFDE125D0947BC6982C375891 -72762550A44639B5E5E19EBD541848342C060714443D5E96537E1A214E9843F0 -5321B2479DFEE8DD1836B48CDDD5A117E20032334F18267B7323BCEDE5896BFC -F0D91FA4B1AD0C4E38D9906ABD7009FB69A77CD280BF9BF43772371975CA6145 -A96F562D335A5B4D1366F728243C521B01D9008E655890AACABA0C45DCB1F45E -BB6CABA51B1D31EA51637D0EE279B49257EE30B587E17DFF959E000AAA048D31 -F998B857205295CBE7177CDF44CC9BDA33CBC918B0AE72187BBB0BC23696F7AB -1BB5A7D3705FE0579F20707008CD2A88D110343AA8B827A5EE6118F5D846F250 -6FDBC37270FB344E37B33F5F6DF16920CE3518BD459A8349CB87F8D9A61F36B8 -B1D26717D4BD4B8E76E283489718D38C66D0B4473D577F373F9A938705E0C620 -CD56F9B105C4E65B56E55CDD6893B3441F8B215C17E35E3EE4E734AF17C48895 -CE02A9B55C7738B8836EFEBE12AC9E6488CE6C828F2422EFBFDB4EBE80FD6E61 -0D0B85F1DFF9B8F319B0B696E90F60312506934F212454E10C673DF013C6F913 -E60BD6301A9AAB7DAFE5D6193731260024AFA425D46B4BEBD55133A3BB27B27E -8837C39FFF999C01E9A3EB8905D2FFD482348BC97C07E7B2256CA33303322A5B -587B1FF198422716A4577CE681B120C4D074EA2B3C275646B853360FC134D674 -0CF1007077B35E3A1D100A3C620BA005BB9F80444DC927E6AAC738DE5B3F87EE -190B2FF31CE1B1A0AD34C19B28DE21136462A3591002EDB5CBDC06E09326733A -8498626848549F36B077DFB2A2FCCBB775BAFC2C46BA20811049B7AF4F34C009 -71468C3641D8ED8616C21D1DC90E21A72AFE14B5F5718A42F11F46F2C3CF3FFA -992DAAA3A3BC90073B3E2765C75F05A5EBDE85F37826131DCE2967089E8F7E69 -F16B41BCFB8914BF2F0B806CB35B133564224C0C9C1D6E3032D276D5464873D9 -0D17CC512E5CFAB6570D61E8D023D2CFE020212DB7B0FBF3D324FA5B3AFE7951 -E8382B7A8FDEBBACAE4B02CDD3D1791C79A78B9D49F20FD6F22B7E55CE36836E -31A5B619B305CDDC722F6AC84CBC0D49835647204BDABCFF59D9F3B5EA22D533 -F316DD5EFC59A7F645AEE0BCDC07193111510563159EF684A739CE67EEB77638 -54F0C3D4E1A54801F4887BAD58EEDA68539B2A43B5B5D79369F74035966F07E1 -3FFD43FFF05F7EBA48DB0F988F34A44A0B15B028508868EFEA89F22C61DBA74C -E04F9DBFD28DEC1EBC536587EF7A8DDD7B0ADAF459C0F22C24DC2D8C797C14B5 -9370504500422265C0AEFA2A8C367AD89ABC057E4B6043D991EA59564C1ABD06 -6C6E9147806C79DEA43EB8B7D0560DEB9C81766B9D79608A91D7AB606A7CD6C6 -276BF4F7E294BD0D0D3F94B321434B1A9CD4206E3146B3CE1113D62E7791BD79 -9AE322A997557EDC27045FA4521AB379253C27A4A234662FB4F73AE398C4C9E0 -2D4B3E7EF5F1E5BEEA50FE62B8AC0D42C131FD507D6D1735FD79F8223516E84E -755930A2E30B80E63A6B24CD4244584BF7E93083EE46EFD9CD19A71A4B8453AB -233710DC0AE68FAB2B1D9E3A17DE97AE09935E0056589BB7B3AFF3672B406CD8 -E914F786600C5B7AC4E8C57BB65B580A02BE8491E0D8E5817A99C4695E1D3A27 -12E5F7A945BFDB67E2CA285C3ABE5C15C870530F588E0B8686A4C551941BB2C4 -9E9A8DA9A4D4834E09A78F824F60A84C4A84B6C5748BA8D752D0CAB8CABDA89D -8E21E4FC69C5994E3E100967DBFFA4D2E12BB0E73ED53EA1AD925855DA1A77BA -1231422722DA75174ADD0F0BD549B6BD08114D32BB6E728DC5DBE05CC0FB960B -F1D35253BA31654C6E6DD306285953AA681E9E1414D5F23CBF08E29A5B38F69D -99C6E44DA0C42FB260F1E6D4E947215A0FF41F756177180D3754737C0BF59083 -C47C302D87268AAED752370EFDBC276D0AD59C5A75CA13B292437DA5A90B1713 -723728166637A3C4805B4A2BA8CA1F20B4FD331043FB69331E485BF48025BE08 -6369DBD8FAF526B08E633223D011E1E81BE662D98BD64917F09BA1F4277BA164 -4611705F5ADD316341366D3BF8CAB85A21C88F54792D05EAB91D985A557B4C99 -0BD3B4C020F20C860A6ED0E8CAD870045D69BC434F345EE42830FFCF7468CAF3 -93BD5666598D5CA7ADEC208006B7CF38AFA1A0BE24190E283841B9A5FD0696C2 -CB6FB04BE6108AB9E4CD3F772D78D7468EB761444A5B7FC8995D53880BF2616C -522EEA33E0F27A5AA1EA25347FD12A1A95F11CF2F3625D56CF8A9FA23A4EC609 -035CD02CA0934BF6CE80DF59E1B60849B9B4A58C11E83D03BEA42A1A4AC10893 -4B92D0B99362180E29AFF2ACF9E0C99A156725071758399F318D720E37FB73DE -9C5958CC9471C424B5F8E0C76FE28193D2C6514D0EACFEDAB7B76B713BC3AE3D -57DA9D62396F7A7675CDBD164CE3320EC81A1ACE77EF63CC8FDD466564B8171F -2157EC631437182AFC083A1B29C223FA944A54930A41824F76E35E5FEF17A836 -4440E9BB793DCDA897B938696458A3BD9C3DED24C2C638C3603939AF44DB144E -5BCA51A7D729DFBE26E0884B22C0C4E3131AB82CDA170474168D89124A65B0BA -91523CD1D67475C9D43CB7525451A27B62723867F123003A99B98F2C3C2A482F -68FB4C42547AA6C4B9B1C8A4259A8A27305A2F0B147BBE39264F510142668128 -FE6610D8D748A20B9F75D48C3692FBFA1EBFE73A3279BD4C38DBDBA0CD429439 -F3C0FE231D0F381D369A1E356917184A4DE9CBB64F400C28B41DFD35F9F74FC1 -57F46400574ECE064CA9AAEA8D70A61F5BE95B5FDFECF87E04D4C45AC7D441A5 -88E6CF0C447DFC832179C012B46B19A7B2542EE40727DED27E08417639D6FDF7 -901CA1AF7385704E7EDF49D8A9AC990CE68A8898B02D618F8700D04426A5692F -24640B4311C917D9D0B86E45D9D43B99DC81836AE454C14242D107BCE8E4B989 -D8CAA8C401A56CFA611923072B72EF56284AE467BB8E2B04AF81D1C968321611 -B4D1A07B8E2CD4ADA29A8DBE695BCB6F022C8C53E9F0210A0D08F9A531FBAF0A -902E31DA6B2A3EC290F1A0EB4A5FA4FD504530AF768C15E3EB857849824EE965 -94E2F1974A60615DEDEBC4F4D8D70CA6A4385A45ECEBAC78C945ABFA42B90EA1 -17C59E615272A91488161C2B7B23A8B1F2C7119A49EB7226BEEB3A4C7CDB67DF -11F945CF22FFED4DDCDDE1E9AD88C63A6A271883F9104CD7F596AA77CCACA8B9 -D5D772A3C0ABDE3F7BBFFD678744DB7540FBF0BDC9D00A0C7E9170A127D21C72 -4B81D78F949773598921A5D3F756CF5823ECE57613DDBEE58F3428BD29BFAC3F -1EA57663472AEAAD48260EAC5912FC7273F102D1217BF43D6E52CFA93A991B74 -8C6489D7ABD79227C82F85E06D736602AFF3F497C64644DF79F460569F2C3BA2 -250D48D0C0EF5B4A3668BEDD804CD134A0E26FCA4BF071FEA9EB46D5AA52D66B -4F954E3AB2BA1EA71EB9BE254AD0C5C39A408AF4D287AA24C533BE9BFC0853AC -C31C43D8C419F5CD294ED38E56645A31FE4AB2C60D4486493ED8199461483F82 -EBDF44F1792BB87CE851105BF44213B35EA812CE967FBAF7304703315F2D126F -12460B0EB045BC8E196C7816B105259BFDE8C8EC49A751B0DBD7367C0661EA7D -1A79053C371DE08C233E1774998F8C86F78E4FF7E9239524A784509254D65002 -F9BE0D2A40488E0BE2DE6F336BB7337750F57F94B20764111594B2EAC17391ED -3C20C8F3277E1E431D55893EA0CAB659ADBC502D85B75DE299044985575C09D6 -C2D275221C738B967F1C92E73FE4E43353845D74B103D6B57B442DDAB3A46B7A -EF6E776D82B5B9873EF5B3AA77A18FA7069429441BB791123974281B720E6EB2 -6472549EB921883170FCFE289C00A159EAE56B9A8515482CBD5161B70B643718 -92D7BB3FC8E9E45F3635B242BD08FBD958C297205ED7FC812B7B70F65E979BA5 -73E7A7A348FB656843988DA4518F13814A14C336A4F2A610B5D9AD65CE1135F3 -3ACB2594B4204A0A852841F6D3EC52B4262AF8FD7B1E7A860105C85CB95D94D5 -C3BA8374B1DA93F493A25920058409C83B7529FFA6B3FFE79D7EA6F57E2E12F2 -A210EF27BF52F1A366C1B193821BD775FC92335B42854C7C11B253A653A74A7B -D213A63B69BD0B1FFB4DFBAEBD66C1096C6F2C9B065B5F20E9B02478D1CB8595 -0F68DADA125FA3EB8B7602E94A31750DFCCDED8759E4D87110D7F7B05EC9604E -364A9BE1D94E15B807C74E2ADC03047EE296179FD4F2C8BA93122598435D2D5F -D3C824E327629F16631BEA2FEABEA5F49E5A9C4AE2F44D5390CE0628A6915660 -C177B8F431D31410DC7709D57275C7FC45F5EB14F71132FB3BC77C2A7B2EE446 -CEE143193419B97A5B25D1756FA017E17848159CB5FF55E5D240B4E01C83161D -F3DC8D5D72000BDFE5F53F037CAF57994ACC60FF66417D6B5B6C9287323E201E -A13DB21DCAE0AFBD2149E8620B22EC21144BFAED02E1B16980897218538DE59C -E9B8009A4E0708802905AFDB35CC605097EB8CC6C48C73243364F184861B11D5 -070EBA71620C255AE2FBF270941222C302E8F0DA166423B88C3854C352B9E792 -ECD12B40F0B0A5A334695B6DC4360B0476E7993730524AB92DC9F8A74DBEA699 -F9F2C31D4DA3F4426595E729F9B7C88E7B46CC3172168F00EF3F60458D5475A0 -F1B42CDDD171E7E8C98C620CB5548F7CEB4E5BB758C197A09CCB3893D3117350 -F42328EAEB3F0034419A838D5ADCA8483BDF72F02E8821CFADC50E9A09A616E7 -4CE5E6CF698C3F919FD0110F5BFCA55E98753C67168AA91EFCDC2A4AB4CC6C18 -1DA72667621CD578C1E449F0E660B35F43244F09DE26C4ED62360AC69C8F8DAF -DA76554E6E0F012CA451F0B946462FC564B1AEAB508EBD2B1A1E43D1E7136DB7 -8173F6C2D2837F0FBCA8864AB719C09898108A4273ADD74721F47AFB2850E12B -CF897301AAA1432DEC0080B2D555BE3C4CE6E652C4806066CB2C19262F219291 -EBB6206B25A12120B1FB077E4638D675B3C50DE867E2C69D9B6BCA9394CA8B5F -AA2D002D9FB8ECEFA144DBD51905024AB54D6EC3F82A0D625AFBBEEEF6C854F2 -7344A10BE1C8CA785D8C3B2DE606D00D19CFDBE7BF781AA177E651EB07705E1C -2DD4A54DBB0ABBF1B57A1BA564FE5A9B12E39E346A387E05C4C3986D9CA23C2B -B2E6A3B4CFD3AD177FC5366B55F11CE924691A1B4DF73830A44E67D750DACBEF -1893527DABFB8970C3D8ADA24918158142D3EC5730F9202A7B9F61C4FFF4B09C -C09DE278B71CA6A061396C3671D3F48E85D1E958E7AE94C0706B90B6906C7587 -CE5DC4A9EF4882C314CC987BCAD4A789A09E4D51F370DE4D4484652836363966 -C80CEDEA41FA816AD86C2D792B5B8D04489DE99F06B3C5CC0110C9F24BA5E95A -E2D78D7FCAFB013BD160BADF4CF2D89F37EEAD80702E440CA21997CA213B96AA -531A385C254518FD23F710EE0573E86499DFCAF6F038D74C9E617446DA8EF87F -0861C3BB2FDF70EE95BAA0BD6728E9B4D9381C2B33E17D17BA54AA45DBDB8413 -CE1589C3E63AD7217F9C6B44FDBCAD121D3219A978EA2DBA90A27CF814B313DC -58C578DF4381F5235499009FEB3CA7D0B4EB8F0839602341D676CD827449D24A -D9E8223C40B5D34B0846BD9615090EAE3CB77D0B8725A3BD5B0A46558BDA5868 -3A00194345114644BD144EA11F49478FF77E259534791C200B0F98B2DDFF2106 -BB10EDDEBDEA6910C4B897B2BC1791DA -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMTT9 -%!PS-AdobeFont-1.1: CMTT9 1.0 -%%CreationDate: 1991 Aug 20 16:46:24 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTT9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -end readonly def -/FontName /CMTT9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 49 /one put -dup 51 /three put -dup 59 /semicolon put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 70 /F put -dup 71 /G put -dup 73 /I put -dup 76 /L put -dup 78 /N put -dup 80 /P put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -readonly def -/FontBBox{-6 -233 542 698}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E -2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279 -650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35 -F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A -D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E -F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1 -4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A -438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD -BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B -A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641 -AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74 -D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB -CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A -082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980 -9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0 -4BA1EBFAFDBEC531EA13DFBD6700E53818CE04D23886B8AE75DCC36BCD3189B1 -0D55FAE27D0D126E82AEF31D7B5DF27E58C30BB0867D6D7AC1DA9EFB8A2DF095 -B5B934A68EE122DA0A83B36C952431586B957990206194E89339048AA6EE4C53 -703763505ED57C494DD907D0EEA04F6B1D4C8F3BA778F4E7AA832AAB4D75F024 -61E91C6D25FD6823CB24FC863D3836C77A7D349AFA8525388E252386788B28B5 -E463F5448C9A287140C4F5FBE612C8F2C2749196D12097233794F702BE49897A -6DB52147CE35CFED4CC9F38BF3C4AA917D990F007357194F51FF6B77E97C5208 -AE6CB3AC6AF0B5DFD252847C5F1793F5896655EC8D617DFA7FFD9CD861631156 -D178F8C3B2045AE1B4D702708822F2238A29934A870273858FDDD2B9CC74EB9A -4F610646943F34ACF7707568F66F7CD9F3293060431C2A7AD92904FDD44E8079 -80D54755DFA1FFA2A42C954AC6DE1CBB7BD95B11999FA46F57C467CC5E4ABC3D -965925F0572DC4368E8D5F5777A11255BFFF91E833F42339775D1BAB2137B328 -59666E88912D609777309A032B3725AC11BF5CF5EC760438BE5303A48DF475FE -BB57771CB82751F8AE79B3D72CB9B65B192D21E1E3388AC0C9500E132F4017D2 -B6A8BFF48342C94359DCA32D9CE12D6C30011EDA9E28A57A854482FDEA0B6D15 -4574BAD94C43538D87E8DD1FA03AF5FD965C473EF1371A3F125592A0094BE7EE -CAA3E94F48E86E66D203F3AED59CE58AA1EFE006A136D55545B506172CA14C70 -6452DD81DBC1B3721922DDCF2DF6914E354FBBE00D3CBFE8A0AB309FCC3B8B6A -6F9F858984D90E731C80F9B050F48E670CA19D05F5D77441E15F304666154B53 -CBAE581CE6091CAC6485522E795B76C9FC509705F3EB4EF36B7CDF757A509617 -D116D7B97C1A3B7334AEF807C23F9F1B150C895E12F73265E5578C24CCBFD2F6 -3BEF1311E0E015D354F3D18BD4BA1757D95C9C583CD60057385A8BE4D14A730C -BA4DC18D4494D7E765A4CE24E17125FCBECA981F4C2CB4A360B6441A6DB73363 -44F62B470EBD387F1918A814A7B268623F7ADE9229AD314BFA0EC784071190A4 -99FB32985881E32FAD162E8EFFEB6B33E646F97FA94B2AA53F869AA563E519A4 -2EE643CB14B64AD6FC75125203E17826E81F352F5AAA616505D10F7F123EF3E3 -8BC7C41FDE75F110629B87ECC42A3CF2A13308A737D994DBDF999E7496F9B78D -01BC7889B7BCC46A95887C4C5C34A2BF484068B2B5A40FB408FA8A2F6BE6C3E4 -672116535B37825FDDE04CB8B873D9C022955F4AD86D33E836264BD2B907A86E -48647DB50B10327E47259BF9262D2573BB34DC48A9D4731E58CB3617D02004ED -5ACF344C15FF73AD804A871DAF364E51C8907FA058501B08FDD944077C49E44B -8BAB387A220228E5239CAD4856FF52BB67F4FE3916890521F62C9A015162A0E6 -1D9333C4307B1AA0E049783917E2A8E59F47C80861EAC6C277835BDCE9A2AD9D -8F3CA78D928D70843707E4CEA121E2AB97841F9184C7AB1D8D3EEC941FBF1213 -9A03AA68069161FFE31C367F80FE36625EC4524CAC0FDC8647558A1303DFCDE7 -B82D289ACEEDDA1227ADA57600B53C1B8C35D3F011B4B15680C2956E91E5604E -FD866E976DC441EE935D223AE58A57E5AD0F563FCE23DB6D5E03CB0924AF8487 -7A78A88D97581E4F038690F8FE2095C2641CEDE7660EB009B7C2D1A21E425EF0 -CAA97367F222A0E230787CC239F0288E3CE2E97E88B316F57B0238C7E84A84DF -A636A78892873B8FEB525049AEF96A04F90FDEA521DAA5315FE6090F40F34B7F -EC8BAECC2790D7FC35EAA4034F4E95ACDA31608C24075C658750CFA390839E34 -1EA429EE352A5A77DC57AD3467E5704FA3568F1021FB4A0587B16284C3CA9918 -E342156D8675ABBC9A18865926748EE6ED03858C53F4CF5F1D08EE1C43E194CA -4A0DFF7484F620EEAB133D8CEA80A1CEA837B7194FD9964E9C38FB3A4B41593B -30D6B59B1A0CE6775E9A416D97987BEB3930C88E9AA25119BE8DA9F400A6C096 -ABFEF4732C562FB06C963154CE19580639CC09450196616EDB99B6B7ACA1200B -5093FB118CD91AAC60410D522BF73D60BE20C8518A2D242576CDAC5B0FE3E337 -AFE60C493DF2DE758B10A4CA8128CB077C4E73329CC1F3BA0F2E2F2396C19384 -0C2B81621D4712A7BB68EC6163DDD4466BA03A7EC26E54881C05036CB957FD23 -57BF528E13370217A4889F3BADE81CC3658CB9EB356DE450887761DD7BB19C59 -31F8C46886EED761CC1E950086FE1A7BC469FF88780B218F2202A4F1FE006743 -4A5BCCA6D1EB301544E55172485105CF04E05E5A892D2EC0D26B4C1C65162ACD -D0E1E922DE12FB4EE9A1C285F873E0210C756557568BA77FE33770B59197ADCE -ADA771B078D746F5E2E096E3DA6E7FB9659819789AF94FA9A8133940EC2AAC28 -AE8DF11DEB67F5E28A8EDB6700E9D2E39F90C1975A2BD58B67BC3C64CC9CD71C -A0CDAE7E535A207F87523C6B204BB480BC34E9E0CF52C79B6F5D0CAFBA30576A -523D331EEABCBBFAD18B979696C7210BD5B4AE34BB106D7C9A2A84D95B22885D -18542BFA65D9791DB2A84DFE88251BDB7C907C373B3C2E116ECB8EC2B7FDBB12 -4E40313348A394A58589C1E23C66A9024BF2057719A198D1F0FF01929FB15C46 -DDAF40B4DCF2F16BE69532711C49A0B670442C0FE53C404703610369C3E6B6C7 -22AEE42C0D314AAA1E0EA01594F9F8694C5A16F44476C42C6E07307BD9940490 -E89A6E30111B2BC725C51F5917885D5375F0A4B4F32720A6F364A6AE68B55B84 -35CA3F4215DB779C15EFD82D21129399F699F5815BA34A139A76F5EFA9774820 -51379E30298252B6CD7DFCB140E9AED951C6A527A3E59923F725A32AB2FADA37 -25AAE28C4F0FA92538D60ED5D26939090EF43A89A70104C5D6C7A26CB9E070D8 -C2F2C1BDD073814033B5325532DEEAA46FED75CE884080F4DBAD326DC98309CA -81589FF76AC06C0FB447132349DB7886966F674B1DC3FAB46BC1BC8D4CC3D32E -1D7A6F1EA0E77E65261552F0087FFF05A68049420D02A6C005FABCF9C975867E -B8335E379DD474540EC81EFD7953A432E5932EC6EFEC3675CEE49848BE80618A -A45477C9237F4F2DA7D37C6777EABBAF1B1C53DE47C4536D603E905E6C0A7E0E -E30E854E2DA543976B97907DF179223D91D0E53094A9664C721E593958A3FDBB -A91F79F4AACAE75408D31333293CFDE40332CBBEB470FA9CA803FDEF80D5FBE5 -8DF12584626DC7F4C1AC5B58BA2070CC29E7292324B111AA158EDC483FBD675F -135A04191543C6CF33449EC04458A4A07B72FD2D3530B3DAD847B6F1627C2A69 -DC68BA7143D2A614574F17EC31D46326F85677F5DA9A6BEC19167EBB7FBFA0D0 -495669797774D6532FAAC83E1D587885F11F947689C745284DBB2AAA34E7E9E2 -2024A5C2BE3973DB40C1FA23352300ABDE8AC895555A432F3C068EB24D16797D -CD48C62C308015C3BEDE20231C2DEEA689EBC3B82933FAD0E0F44BE307027B23 -4338B870F04CDDA8CE8770E02B71186B6AB50490C1811F3FA178663BDC8FBC18 -C8BA28F090A60F04FA34AA13BCB2158560B2506A2A458984E9DDD7756B84A527 -B52A76E24B0440B1DAB33DAE996020C737B01976BBF32E9FF3AE69EFFD597841 -60FE04A632FD3023EF6F66D94FCD983D2B418DC31BDCA7ED38D89BB61C598824 -9B028A89A1AF9B3D5DF82FE4AC81AF89D7B3944CAB85FF3432050917403DAC0C -0E66EE586A3E4714CCF623C865D54FAE1F943B1C8BF2DD7396806C22F8E1F7C8 -0B644A2FE78D6FA1DBEE7B5EDC9643565D0B435BF6867843A0AA2C530ED06BAC -91E3612069C9E45760DB8D862ACE47856D74610F3FEA376CF2C841B8A55DDB4C -C6A00428119023F900F1E61CE840425A3BFB31DACFC751065F3E8F50602C8DAD -2B1E213810BF12F28870C97A14574AC1D0EF2A2FF21EBA2C62D113BECD741475 -8E226A77C0E9B52AA70CC8606A72CE70063C2DEF10FE37EAC6B553076A6A77D8 -46563F37009714CDC333A46E2A4FF4E4663546CE102B1DA7F673F3766F86D82A -2FDA1B71D681A105CB35F48DE3159D34D00EE2F26519E6FC322022D82AE2262C -6292B221E1F3CF1712702D5C46E1C379AD2DE59E14B905C8D933CDB400376578 -A7C8134FD801216231CCB286678214E036802260DCB46EC504F055CC23779C56 -EF6674A78092CB4F700DADBC3DF9F43009A2770B9AB98F1D4E5B15CD7A1024AE -8E612E7A5C3C964A8A21B9EED14C035E673D0FAFA8D11172C216EC721F5AA841 -69851049D93C04977246A2D21FFB7EB6ACE1DE6366D202D05046DE2CDB3E0ED4 -231828154A202C43E63BA97313AAB34B1FB9DC40E8588E2ACB81700A03CF6CA9 -178B673A2A5AA0A6A25096DA0444FFBDF89FE56EE129B725A1251936AE79A715 -4829296422CB1EFEDBCD5D1A67C38EA209B8C4C86E669B3D9303AFE9A73AB5B4 -751FCB6E2EBD6E94E7D6D94F61DA1DBEBE7DB352341400BE02367A01618DFB09 -4635C3BE9A4DAC48E689C6AE09DE15BE92B9D9A9219FB25CA900D7D3710BFF63 -1D5392049F8BA435D4DCD77DFC998A02207F0DBB34780CE632E2FC0283D4DC17 -2EF91FAC1C1027DB0CCED0389D9AB0A20E4D9BAFA70EA2512BF7BA5D0FEC73EE -DFD4EFDD8507E71D8664527E4B0DAF2033ECE1A2326E21439199A9938D792905 -E5A9B0AD4F79290172D8B20F817247DE6A9F2FD95CB4A4312895634BE440A07A -406D7715F6C1DA42D17577B3F290DFBBE4001EBB1CFECADD3BB4CC93A7B539BC -9DCFD8C66C78B6C4CFB1E9F4F8E37E82878F92DE67864AE93354E78F56D54DAD -6B9DC4CB315BDDF5D032AFC7629E10C084506F7C22CE7CBDC8648A042551DDC5 -A391F65ABB6A890920DF87C71883FA1BAB6317B325AD967EB864640AC8A3C2C8 -E41D68614E058D1CEB140588C8C5BEE436B112E7FB82FBCE2BFF44DFEEC1B587 -E36E96EBBA14930703C5A5EA3D45FF0277C39F5CDB9C4AC3655A161A838FB08F -B0C1AA048E23276A9CB4E8BC114A0E024FAC0BCCFBCA8EFD8A48A2783D7EB4A7 -272737ED343978D2E966DA09A923C93CBB3C3E7F451390430880036479C353D4 -D687759BD75F80DF78349DC28AADEA6FCCA01039431F83E4E864AB54E899D30A -25ADB18891C4D7A679558127B8AC5273FFF1F28BB7E682EECEB208F0C07CEB1F -AED0DB62784BC08DCFF99656DAD754BB352C3994DC46CF27BBD463C6CE1753F7 -93774336051D9F67D95F5315AA6A543BFFC708A75700E0FB6523E576724D4F56 -813C825EAF293DC28C007E4C58353A1D5DB1047DC1B1F1F9558B114D582ECE43 -77A4260E2462BB4494A73FD20F73561123A0BAC258FBD8FEB1028039BAEBC4AC -0E6FC625A4EF0E22AF5726BD88DF2A0AB230411EB5C54980F8B79E80041F944D -190940C2CF0A24DFAB250EF983DC58BCFCFF40B0EAA9303A0BD0D059B6D6F835 -A1E3AD4E45EAFF511985CBED8E6A46657BCBF149089AC659043D5A09F9993ADE -81E9C35A5C047816649E521BEA5EDB2BBC66C31901861182C5F660B80CCA72D5 -3B22D840F62B21ECCD91246233AE25FC860919493B625EC6FC6FADDA3DACC9B5 -A71C5B26E3B1ECD0AD570979BC5EA35A91AB34481CC304A7200C322B8A2AEA42 -C418E91C658D78055F2FAF4B3D68F58A284E571759CCC7F00BE3474132D4D2FE -43DF39479E3A9C4E09AA4A338F26D5C939BD7E1CA50B86413B8E32CE63800EAD -58C7A77A1CB9E135C7BCF1626FFF76734C321EEBEE3B059216CDE6A6912EFF6C -BA03D1EA3EAC1F2AFA3709DC9BCC558224A20716AE930015915A254F1ADBEAC1 -941476889919D64CA0D0E9F43EF614F115A2A93273E4E77AAF46027F525A3E7A -17E1384AB4D41D75E9C0F22C398C6A95B39D3678C55205B38E189382EA03DC4C -21E4F1245053D5CCA7BF2A1F9AF88E0CD7AC63DDCBE447B963B6DFFEAB65EDE5 -5128F8B555D8795B16FBC856208DA44A7F0F043817B21928E257F7DEB8C930A3 -821E7A3643B5B80DA2DB936A927158F5E7BEA32AF2A1EE9F47D1EB8D420E9A9E -C57452ACFEC2718BC31B4F7B061C932F768091271235EF6B2EB65C96E4D1ECC2 -C67C543B1A117C2E34CCE57520CE6A69EE6F89B1AE177E06B63193AD1376F86B -A59B9A385E63EDBDB2005FD2BFB6204FFEC21823E1C5E59F363C760FD3A63F36 -118FCB0FBF612204CED17C7E6C1A30671C591A29BE9F3363DF99657C7D68AFF4 -E0C3F759A361E4D88005FBFD72C464E4F84A773A581BA27C42D9C6BC3DEA42B4 -2F185340BB74CCBB65609965C5636F1D402DFAC5EDFF4B2461FD564E11D7A789 -D391B54B30B129953A4B4F0B34771983D05B271C29855F2E1394CACDCC37DDD6 -47F5AC6123765607F1870F11CFEE08D71FB7458DCEB1AC2D772108FB49D8E71E -9606E4B5F4F84A939EC5DEBB2F9483BD28A3412EAFB80A7351220EEA9D08B664 -4007DA4F70F4312E4F386D91A556EF9E7747454656DCF8AA85DCCCCCD04BE5DA -DFF58B6D73B7A1EE282737061DF380CFB0DDF9A3F2F0938183ACA9F1EBD638CF -C01E67957A3251F3B8663084CA8DF3F794BF4845B2F6D533BF19440CAABD0DEE -C4D219CA5D9ECD045518FC25C2F12106C065AACADBF33A04E54C8268E21EC9A7 -33B0A06C01F2938818BBFD085CD071B7A11DAB70DFCB7B9F460AC2FE36174768 -083749AF773AB8A67F9B58686A1B330474C7E700C7D48A71BFFD540D268B0623 -931732B4A8BCD1C6F6FE8FD8B856214A86A5A5711AAFCFEB9E33EB5D13BAABEA -31CF678C67D32EFAB36319F893CC85C883E22C6080FBB45A10D7DA77E1435546 -A07225F78393688C0BF9A78DD8D8CD3504C72245440144DE12012F75564FACB7 -37F39E330C8FFBDC0BC42D455955EC7F4C28EAE43AD2C57C44ABA40EF5AEFB02 -9D9DC202D3B412BA082C9452BEA8269CD3495BF7377F341AE0215CB7257DD323 -92384A3AE9766B79756AB3D6E586B1CB2A630B806B92A272B5F205683160F1F5 -CE1AAB86C03152782EC5A8C8D3B4E2B3E83ACB3F73E8672491F045116A6E8E3B -33C7C16586D2AB91F7D052CCF0459FD1F597C9EC4095B5D931ACD616E2A9EFBE -9E19458E5AC84F4F3D17E3234DC4229A9AF4FE10108176C9BE30074EDF251281 -8E5EE83A94446A3099836B4174FBD357A75A19AA4B4C77CD5E95B16C5395C043 -33920CEBF2339B436EE1BB5DB191C7336AF977F1385BE15D27BEABA9053DB219 -65B21B2372A7F7BE670FDA8FDA32017EBD664D03391B580C39793A73A35DC39B -8775B92FF05C4F4F6E6AC2F1424F5D93A99214A695D1BCE41E7033AB21C5E228 -9AAA7E581CE9A5C3EB2C978345A424696C74A1BB45B6497F7E9F6D405BAEDBC8 -438CE0A26FEC8683E7E4287A3FCA76D0E5BF872E61F2E39E60D02A8ACF14BC03 -7D59924D482421891ECD4DC904CA3A2B0AA4FA574E7F4D8D090EB424258E122C -EADF399AEDF8189C984282CA9C18D18D282F27670BF95679BAF1EBE92C781D9F -5739F16679F6853BE2ECC51D78C2A568E5FE066AE0AA98A823E5640F420F23FC -3CEA1216760242268B9B4673DB11BB7AC0EC9D567C3B543DFE10C062BBB64C6D -31EA298A98755CCD95107D6B50D477889123E711EA7390C57B3AC5C363BA84A7 -C7C44F0163D7C83539EAFB8C832778C94C53CCFE8CBEDB42F90A0099FA80EB52 -89EA9F32B6CA516470AA826880402A73739CB0E60F2A4812F3B50C40D026F8B6 -F048A37875B3FB4B08C9678DD48FA7852233CD13EC6687AC34D3FFCA66583F52 -26783757F06153F0E385C54C6BF9FD4300CFC1DFC211BCC8132877B4EC99718D -B3274971E26953478AB2AC50750ECF31C05DD41575020DF1AB0757E714D1542A -7065D4F034000F77F9917D87665866D842CC989C6F6A7D953EFAF442A2B6E28A -29BEDC8A940F05DAF7CE8847E136B6596DB70DCA3DB0BA45F74B1616CAC12EBD -6D0100371E80CA9EC19241C31C0ED657F7B6B089B99E0E551FFFA0FD4885FF65 -FFE878EB3F6A77D27271824ABD182CEA177ACB0FE8363AAAF7C86E2517F31263 -0D6E3EA583CC81A62B92A4D2EDC9A8E3064C41687BD8177B56B66D0165021EC3 -AE70BB02C46F31A1DD4C39D49CE8A2592B7FECFE83D60A17C091E772DC12AE4D -49AFB19F85486740A5DDC5CCA7209F8292974E09C2247681F7774EEC8E123DC5 -96F05CD7E98B1B5A98448B78ED6AAD144D24C1CB6F9DC811657A9BD25939B698 -7A90FC7AF543503E869FBBEB0F6FB3E5A2A9DB2841ED565F6DC88F66E5CEA418 -EFE0BA5784A3DA1A31B0F2DDCAFAF3CEEBA9A24670E196CB317D88463C885CB3 -BE980DAA9B8286F81CFCB44DC37A96E078F1C0A7BF5C17B7771A26CE394DACE2 -30586AFC49DD632E0DB344252FF8DBB01E6BD935C36A05FADCB78F11E6D37E99 -8CEC682319472DDB6563E0D91913656B26EF27295753F237B2470BB8DACA7BA5 -891EE3BC4295DB66D024E1D51AFA52C1A5855ABBEC35658CA7DEC65321BD357B -6DEB27E7096A2BB13C1B0CC3EBD6805C154EB74D37B4C7198F13F64C5A743982 -BF5A4575753146173E76E849A2B920FB930537A4E9C9380F8434E0F6FE9488C5 -88E1F24AD6E21F815FC3204734A70AC9D29BC039AD7B6D5AC5F48CAE11DDF2D2 -B8790CA2554A3B7CA37E821F2ACFE8AD7705F1E8935CD63593F61C67C662E97C -31A0A28A2E3E0DDA451C83F8A982C504BB3BD8F78F94FAFAAA2FCCDF11A52389 -E7AF12260C01AD272925D075F7427E5AB739CEF55134BB04369F1104EC776F52 -EA172B4151A580D871CE02295273AF53B02DB76C3339EBFEBC1975811B539A42 -0CDCB3A0637BB1B12CA0A2EA913E255E5860C600A97CFC33C809AFBCC4DE0F30 -23ACA73B56289D705655DF88E79EE020983451D4AE09E80B835508ED28129F43 -B55A7E0C17A5C5A1030C323F1BB349AD695F25F0358DD68ADD8F4F7998A4F3AA -74FA7B7ACA2140A3B5014FF0582766905DAC463D6B8D760CF07620832059B898 -14F9413C58E808FB125DA8C4A9B1971F56643978E1663255F287A1129B291A7D -5F8C7AF137232D3D6B7D4795FD8F5FE9EF9D6B37C0534F9E531D446C52377D04 -13CA29578ED9473A925F6F921F390FB8D126B0946D6F5EBA83725D82E615BC8E -B5F7F865ACA5C0922CAB07F6EA948EF8DE18917126D3B62A7689F8DCF0965954 -CBE9849EDE0C1FC5BF449C9C609DAA0415B9734B4A7D98C0BA6D4EAD04C51AF5 -037FB78A165662CA89F9680622E2997827B409B408F39EBC019C77F45C424C80 -E31A50638E3D4D0273E02685D09CFDA92E07238683860585E6B44819CEB9AE7C -967831543E0E2161A8D1DC312E99D16AE0C84B69880375DF7D0C114A96A576C6 -1BEC6918825EB9AD2B900DB1ED0244343A89C67B1548A85425AF9D08ACF0291B -14C18FAEDCF3C80C124713BC475F3D8788AC04193820AE00F5FF6A118D41DFA6 -D4EF997C5D4D744A7898EA9387C3108EF6FD19628647F9CE7956D4641265BCA4 -770542413AE156AF4BE6DF3EA929843344F2E38951B9EE4D38D2E51A195842E6 -1436C77E7D953CAB3FB8144AFDC371B0DDE968AB88493C15585570F7DE881A17 -24C0CB6E8A3433E6E85320ADC362734A1C81C1EF9CEF1B863A803F96B5F1F61A -05D61B9992E99BE5A52A58 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMR10 -%!PS-AdobeFont-1.1: CMR10 1.00B -%%CreationDate: 1992 Feb 19 19:54:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 34 /quotedblright put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -readonly def -/FontBBox{-251 -250 1009 969}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 -87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F -D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 -92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C -295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 -409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C -4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF -2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E -0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E -B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 -24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B -43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF -D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 -5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC -96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 -7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 -0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 -B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D -AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 -97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 -FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 -20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4 -0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F90A32C4175B6BFB279 -024EAE1B04D721A6C54FD62484F8949B2CE9B87D9CEE04DFF82BF14931B3CA03 -AA5F701B6F80BBCDF2C427C40A51597F0B1BFA25EDD7CE0EAF2EC676BF0059B7 -15DD5462BA30DE78A08DD533DC0E8D85F9DAFC5FD842F417265427E0F1B71834 -D2BF6EFAC3CCC40D3EF3B2E2080F148441BA45E5D0C0F7D8416730AF4BE4FC93 -1E965594E0364F0D4F1EC48004CEBDDAFB1F0EE0A8222358EAC0F62E6BFA3C9F -46875EB4C999219B91E6147A49A668505667030CDF3495682B79C0F614AAEE68 -D976EFCDCB04127C0D7325A2211E49CD316935A0B472D1F9FFC68F7FBEBC7582 -036CB393016193A9783DD08D647E89C5BA4EFC8701BCCB6A5C027C4FA8644C06 -251B9E33FFEBB1B84AC4D4B148205C8CA7AF5EF97F2788EFB0B71473AD0F5EB4 -FC43F46602C53E53F5A6D1E445439F65967C51EAB636178FA377DB2DDE5FEF41 -9E91F3BEBCFBD3B4EBB510A0DF7F4D19C6552BC98F10E25612B1396020D7836F -A3D3C865661DB276E428F09F048A916B4F07D8FD01AC1942A3CA342B0E531BF2 -3E9A7AF265ACE1585E331A8F8B5AE06FF085C1F349215581FC7D68D16395D934 -79B3BD866A4BF33913DEB54B4D00ED5EFF3313FBD1C5E6AC430567872BD935F2 -AF1A3F892266CEAC15DEF43BCB83DB075A69EAD7D2EA53303F65E04C5673411D -EDFB32156120099AC210E623BADDF2991F96813AFBC1126DF53A0A776AF7D61A -6B42225A5AAC1B0AFDDB59C5922143A156EED76E3E1ED01ECC6ED9F61B5711DC -C5709EF5A3CED45628AC1728DFE98F07389777E04A7E407E3B007017C96F6EE7 -D0FCC0426C4D734A0B108FD2BEB48FFB6D107C5AB8EBC3584F13A40E5508AD9D -5A081286BFCE1D5DAF5F3D86515244B4D0D77AF9820A93B7C90420FF4B8D634C -2C5697E3E04802E2CD7B9AB8368F1A9DC214CF893AFC7BA3A8DC24B0E549E106 -F04530708DD03367D8501655B1501645F17E547C1C948DEA7A4814F22E2A1D55 -5AF16C55D6BB4EE9929C9CEE82C4D6A16D70D17AFBBC6551BB2C9D8B69F5DAE2 -5DF6C2187ACEB119EE6087BAF5E79340D115C53E710CC7E4C771F43ADE91D2E1 -1AEF7BB2E6C9ABED010A835514EEB6C9A2C93396FA12E8CD0B2F9045587E51D2 -7E059224A889B3E7620E57AB6CACFD769898B3955661824DD4AFCB9A7B218DF9 -F84B369F52E246723C7D0B26C145DA0AF81C83DAA091143FBBBD2A414114E34C -7C994D8401119D5A46856367EE3FBBBB32155A00E5314641288A6E1FCE47F385 -71C2F7A7602F777C11884DEFEFA560333458DD227E63F3FE68A762CAB0A7308A -FC59C9B293233DFA257E5D10BD5F12B7652C45C4C50F14F17E59A758BD7355EE -A89B1EC954B86642B87F814F936577429C467BC8E97A481ED15E2633AD73830B -DDE3DE50E1EC439204C7FE350C69494823725920719D613907163AD63FE83C6D -1CB6DA81A6C816C747542CA09493306B44A7DCE934B877DD356F38D07D3E0355 -CB149BE6ED646E84DB9DB61859F6FC45BCE13EE42458D1991AC34AAE6EA72320 -3EC6346C38CA87107618ED3C46C331623D8FAACC6CF9292B8F1B407806A0D480 -8F51A5BC97F6B15807F95CA9DC14C0F5FF3AF1881346AF82F65F0C9AC200DD03 -CD20E0C06E8AA4FA8B225DAA01BF6F07ED8B9C9577F5A565755A71A40D2A453B -AEAAB4599F617CFEB0B809856CE021E25399D38570ACF8354798FDC2DA24F0A9 -3AE098F5EB8C400569A5D4178354CCE780B8CDCA570E6051F21ADDAFFE775A26 -F9222A6DEE1BB669795728FE4DC07114AB6A8067C56D909BAB80358F39B257C5 -779834A4261613C8F2EFD82F20C9AE15E072BD78D60D77EAB14430DC51BCAC86 -DD91D1654E340719EF37A8B7C6AC8471C16680FB0FB7ABCAA8555A292AEAD439 -4C6BA6BAFB0B19F9DE59745E45D0B67C1D4DE80CFEA538A2551037E0CE7E8D57 -C10AF598A2E9F8A5F67D793D2A228E7A1ACAFDC75420318FEA23286A45CE9C45 -EA34C3E15634BE1FAA50EABD04E94F6D47CA2B78F2B129C94579D24946A8BF07 -8E870456AD04FB3D0549B59D1CABEE60F9759BA2BC06E068D2DEDDEFD8B2788E -92CBF4B44E04781BC17A58A0A3BA1CFC463145593170F06FB4DDB90460256DBE -572A290F44973D09EABC8D7665E1D18E1B8F5EE44985B498B6E662B87DD610ED -CBFDFFD33F0A0C95765E24A7D071269FF7FA2D47942FBAEAAE065B7DF4A9EAC1 -FD58D7C302F9D15A2ED0969168E2FC4A021C521FC7D9C53ED3DC1A0F9AC63862 -AB2396C14CF8552EB0A8C067AB163FE0DA20E3AE1C7881AD6DB0E1D615F7F2EC -1184C69A430487B861F5CBC52F27C53E1588AAD6FD43CE2C0EA490B257C4A36E -06E21AA6EAB94938E002FA80E1B1295C1322A207C5A87EC49669AA2FF054BB4B -B64B622FEAEE05CC84835178C4DA9DAD113D5C6BA75830CFCAA2077A071069A5 -258AC7E801FEA6778FB7EA7507470AD0AB6BB49210858477F53A831F9CE5CEF8 -B519C07786D0551A22E3EEB5230098FB06B390FAB4C73F0D3D03EB4890C03329 -5A0B9C67F1E16B0E1A9D4389DE67F6A950F322ADA03433E71E1DD8D4E416D9E8 -CC55EFAAE6C94CCF24980BAE71CE23916DDB17DE1E412CA5CFED25AC13109246 -A26A8F568DDC73538ECDD2BB41B9B5B020F0F1D36C8F414C24566F8F9E1352F3 -38A5D47FF00D91F43069137BAA659301C2A1EBA1AC6623DA8773643A29E498E2 -33C33DA49C290B5719BAA7E9CD8D00C803624BE63EB0100D6D093E3A1A86D653 -A3CAE4459EC25EE9D59D4AFF27CD3FE4BE831C0C31EAF27F364247114E896CD1 -6395D9516ECF3DA7D9A6B4F36245021C9CD6C332182441B79365164B1E40C5DB -9E4B5A69DB4AD7D79979E6013435C7D70BB7E910B75F28449CFAD0443645DF30 -5AE363FD581271F587E53FA6DB88B28FE6B80F8A5CD58BE57B6B386896BF7A4A -D1A36057CB2CC346697B21A5CAAE37A68E62BA46568F0CEC8EABCA7D1A08E7FC -72622305F10E7BECD696DB80A170CB09BC5E27BE68733943C72A163C88485457 -D47FEA6B5D20982E5713DB5C4E499DE5DE8C2090F3006242516349955D8D7857 -0DB51BFFF42BCB28DDBEA8C2AB5431DCD10DDF05F0B59D00F65BECAD61ACCE82 -1454C36AFF83685C530C8E3A5016665E2A50287558A44E43BE485C96E3DC24E1 -8B291399BD9C9D105377497D085FE5F9037B984104E915DB9E76DDA3BD5A83CC -ECB3DB2A2E14B90760C207F2D53D9389EA03AC1F5A6AC61E1F538DAB42800822 -BBB425E322947A26F51B3E81D2B3D0CF214D2410BE2B0F12CD978C1943A025E9 -C9E5B403936A6B7928966EEE19504D9F7994861A4A73BB3A63719DE764BE9182 -494E70BFAAC3C26CF422727BA3A2660F1B2394CD361886FDB734AA49614F4C61 -565831EA21D56CCFF58F29F2EBDB513E9D3601F405B94FC7F5FCBA22CC3E47B6 -5F71C0768FA87DA0BA8F5390C0EBB0EF2242FC8FA3AC0C3108F6772237BFEFD8 -61F3DBAB78F70D8801A2F4C615D86D011537BCB2B5ADF4A13EDF0C8BFBBBCA0C -2C0A139999ADE8FD695D2954C79A86D885E70CD72EAEF05430AEF1A15C9F1771 -F10BC3B8C9EF931147E5EDD3EB5C8F459077AA3407829FA8092F61A909A6B67F -B6AFC3F35F065420DD6CE2E0FE0227B06A203F334EB8B7EE4C6F27C394B86EE5 -75D6200E98B1F37F1A977B8E92BDF6C4532879A6EC1D68BE998EF2B57C50F06E -5F30DCFAB85B51ACD1B127161A73E0BD1DA354F3025B3F92C054031D03ACF16A -158B45606BE9E306B633061654527B904E99D6D8FC61D7D1CC69D18D94D977D4 -402BAE1BC49DD45F8772709A4F148476F9302E38BBF6F6843FC56CDFCF7F74F9 -983100F8FF980CA805AC80511BDEDA1138F12733EF1FCB50D0F60EC06D6BE1B0 -9F908DDB1278340BC780A31752A809A0B6651C5B3E5E0F2017F092849B1162BF -2188145EEDDCD96CDF5C00AC05385492038EB2F10358D853509706635412F19B -DA6041053C8F41970BCEDF162C1347DEDE920819734B47FD99CD38E1BEF7A7E8 -8150B295BA78BB5EEB055571F49B848E5A85175DD39DDA6364B7BD0C9C3FC42D -EFB45AC4E52351213740B3CE676A43DBFD4D04B1691D5EEAC147DA471A3D7A00 -93CC624819D3BE17DE9D8F07FAEE4F54EDCDEB4134D9F39C3BC33857BC8A08BD -82E23B5564415A3410CDF25ED8C3D443A0F5A9CCE3D75C5AD55DD3DD28EEC633 -82882118F09251A0DCC8349AFCA61603ABC621894DA5C1BF308399A9CCB8283B -6F54E096CE3F2D3C11373E5356570403B418B84B06FBEE27B63D8B678FA39186 -81605E6B09B02037FC124776DAD7AE3EDF993C064EAC0DD678E13D8D78F74DC5 -22BDD780DDE77AEF1C2E2CD2239EBA6A9E8E9AF9F4F4605ABDCF22902055AB90 -3C5CECEE9B92B52EDAD5D29C3FA6964A7A7A2EECD8F9EAE1CC81D9825E8411DF -058A838F2C335860FB3B063C824FD45825ED5481B9320FF99B60F17ED8A1C1CB -A7E12EEF35A40266C7DE2E1DEC31AADE7626C5FC57DF545933F602F283A27D9F -0E2C77A1BD5394944566497E01CACAF62542EC93D16CD80D4647435B6C905A31 -B94C5CC9F43D6492BB70A5E8867C7B0F58D75240B496DEBFA6DB94D8CA775A7E -53237BB081D1A189124E6880B6D964867804BA33E0BFA961A562836F7FA1E98F -EE78ACCF16B330473D69D52D011AB174EB440746ABAC7DD7D9AABA70ED2891D2 -47E2AB24669280D11FD453BBE591642A3FCE09EBCAF62F8E27FF0782216E6E87 -AFC464F2316DDBFF0B6736D42577AD10754C6936B6EAFB18AB6AA3AFB316B179 -B19A0561A157E90035FD26B8FDC72C2892C94957D3257C38F8B1BF14CC7C6AEB -6FA1C4AC6F22C627BDB1CE6AC63D656D5E7410F7E516813CA3BC9EF02EE8ED4F -B02D57B303875A7F3E1B8176892C2149C39060E2AAB5C4DEEE429B7AE36CCF51 -997C547147B3CB8DAF1E8C8B160F00A869E5FE90F8302E081307F4C92EE0B374 -EFD848E3F943E04245B6393060B126C7E2A2728F9878D7CCE3DA74525AF11C66 -3BBA0749AEEFD5B190A4A0A729784D15665A8150FDE7A8EA5CC4CF0092B2AB09 -CF8659711E84D057DEFFF2696BBB20E16D9E4B1D4D4EAF69F3BF07644B90C94F -D11E9CF3E66CD3368E808DF69DEB6C6A3233A88D558BE5037ED5B42EDA0070DA -3D29F04CBFF58BE922CF4C8F9688A20EA7CB644B080D2C01A2715A69D3D8B7D9 -5C0914DD83C9490E465DF0EF013B6473BC28E937C6E13A2F08CCC8B6F35544F5 -9F79AA89481CD0AAD87C6CA2391BB69A39B090208EFE1A0FF5BEC74923193F6E -B2AED1DCDF644351089CD7460AC4987789B2D92D851E3F58B41BFD281D717863 -5CEC8AEA5CB14F52F6EA6F5156F08A1CED2312CDBD2B18BF01FE503AB86DA440 -F892BAF54438A5FA847DC0FC7121F2EB829DD00D2DF2BE54EDCC42187840D8B4 -1CE8DF33B574EF36701E2873D5824C37C6BD7DA4AC7BE64D12A21FF2A23CB9B4 -1C6FFA7D8B927745000345B5AAC5825D89E617FFC97B6C7FDE0509DE3FC6F2E2 -1508278734B33F4550D4F565B0A23C2615B49BD17B6741E086DFD50E1E6CE979 -558741605E2A314C325BC4216C2F0F809F492B1898431AC7AB4579E76A3A0F63 -E8CADD4AED7CC6C56AA12867A43CB25187686ADBD4591DD35638F5C79C961085 -BBCF38D48E756C295A0FA4E59BC1CFAEE016686A8F91CC56E37E4A8312F39837 -09A926B3713EBCCD1D82DF9DFF36C0C024975F531B42E7F61D830E2FB51BAE2D -9A05BE87E8F052E748F8B4201C8869A64BBBD42CA4974E230E59CE541EC0C743 -7292203798D2E11AEF67156FEA12C22964785FEB4CFF473A710A5D7F97A07A40 -D5E9A182D7A96A083823DBF8B1726E8B71F0D751D506DFBC20EDD53A0368D098 -59453D360568B76B5168254027AB71D2480C63D486E855050B1F480BEDE9B4E8 -3379C0B539E33AF2E286C2A02A5D73148114F88898D7C01F408844CA50574D1D -2B513E63ED04011F179512384C647100C1870937BBA5F404E80B6C8BBA52F6FB -DAD5343B530919E5AE54E0C859591769580B82911BDF290777B825E417D4EFB2 -FA60EED5786B27E3109CBCCE391B855ED46262FC16A663E63E9A19CAA6C6F58A -72AECBF5234E25B5C49D143F1084F0B571BB424A1952AB4B26366ACF83A29BEF -75D9307731FCD44EEF157A59117360402DC446F9B58388AD66AD88B8C82631FE -31E99E3158C25D152EF626EE76B2AAFECA33CC0B9A571C7253D3AB32DCCC1A2C -11DED910482250F8A84E0C55FB76264A1C4F434CDD85A347B1DF702C8347CF3C -5461B2F76AE34887964985AEAC9B7ACF13700B60B7C1446ECA269B2E5146AA31 -0F0556C5435B68B92274A4E5B554B0B7A163E15F8D4A0391F1389C3D7BAC8EC7 -A1AEE0C8C79ECD8F6C2A6011BB0FB966134FD1F75C32F515F63F6A5C15323304 -EB0F0C267F5FA8FF55D2E4D64F5184320756B78F8C043B10D267A548EB1E0CD8 -04E106687542C3231D1E8C157A9BBBB053ACA2FC0DE6413D52360CFF6ADA686B -F2676FCD629ADFFFFE6F818EF61E5E90B2A077790B2B06E0BC1E0B9163982691 -2EC03BC185E8114DBB76298230FE8B82BFB09FE562A0D96C696784D365CAECE3 -A89A1643257B0298449320C35F91980B364D7E589DD82D69C8379B33CEEF951E -851250D66FFA0F664D6C2A8F61F2C97E925A46547FB698321FC84CD623CC7C94 -223D2B874D39A65264E9B45EE4646BB830F2F62F8B7F391BF70CC3A9C099B7C2 -559F46ADB70B967DBA1B74300C79738BCEE6FCB3C6D9BE839A22D8C7F4930376 -82D2CA6DA3AA63ADAE47FEF0F0812A6E8D6CE62C60181E71DDA511DF008C38B7 -6741FE1D1FDB1244D04809C4DAFACD75070C10CC0937B7FBA274F64252654907 -7BFCDCB0A8095D5BA8687C93BBD90B2AA3085C047DCB8A095640310E0ED49B31 -93DD65DB30F49E3CC07AF9FD1A6EFC7D5DEE306121CF7442C0ED5A1EB49DADBD -5A0AE4F838C46C78DDE83BAD2AA31EE6E6DD7405970CF09FA9EB5DC00889EC81 -0E42612CD085D64C74C0784C04257F0E708DD74A8D8C06F8845C2B2966FA2358 -4D5DDD2157A00C184E11300D34097737B1CB714CC71070FB05F7385CCABFECDD -A035DBF8F2FD9B67F7402BA8F589A5AD61A5476178B404188FB908D591E4948B -FD39377D0AEF18B82D001514B03A123F7FDD63812FD45D62EC971E93EFE90BD3 -9496C49174F0EF0F513C2BA16F6A6507968C5199519BA9D713DEE4D0C2D427C4 -078F347B5120552E2556A42E0FC37BFC7FE8181F17A01B449CF71E093695BFA2 -D53857C0E3DB972244943B67A07D5AF4FE7F6E04C8033EBD20EB55C38AFF58B0 -D04FF4AC82937A650818A480F2A40ABC3F4A26B7F4C17CDF1A7B056EA67E0D29 -01BDBF1DE76DD59523DDFBF39774AD9E4A04CFF23CE673197C6A17015449D65C -45C56079351A5A16ED030E96D24A755B2C14B6B925D8C30A16B77981B92D2171 -1E77C0C11DBF9ADEFFA03178411F841A109EC7DC45C4C8E133725B7ADF0DA136 -4A46840677A020BE6897A9FD9AB322F27AD0B55B5500D2B48B71D4AAEFB10774 -8553F99DFCB01FC07508200B9367E6C8145D7F1248335E90D32D9E528C4B955E -B8DEA684A010BF454070B7DAA128C0BDF6AD29810C4CCE310A30080AD36E7799 -9FD52B074E044EE02FA248087EF3D690FD6DA1AB501CCA44D132049479919EC1 -9401487835D2CAF0A89FDFFF635EFA444E8098D4CE6E2C892482F45D002C28EA -8879170E7A34FD6AEFF140B1EA77C009F30E60B2857609EF8345A0F20F8085AD -5E78AF3F6EE20F363468B49FC735FF32AC6382F638006B83FC283AB7ECEB0DC7 -0B67505FD5F97105EA4BA11B18AECCA6E5D7EA36C538401F16832183A17BCAF6 -BFB047542E014E2941BE29F8747E6DD07AB13B374AFA63ECA73D4134FD950C03 -DA939E892C35543DB6AE960A18D57490686E0F758061AEE74D40BBEAC328A905 -7A29FEB1EB40ECF45593C6B2829445541DB58D0E8697CCA09C47D6C86B730015 -8E920228398E492FF70A3DB13248033A61DB5542B8327797951A89317C96E68A -5EF8784D8848222DEF31FE30A9F9E4C12D42D0DE930898DC4446509988E39196 -792F97BFC9A60C717D78D8901C5190899165A1389835DE21EA49EE01B584787B -8849FDF0146111811047FBC3ABFFE2307E16518093AADA08DF73FDE6227D2BE0 -5DF2071FAB4F7E825B563B3059F8615DA305F51AA2B9906F1516040BD883DEE3 -922D1D905EC34D3F0400CE2492E93BDFEDD8F3230838EB248C0CEFB5ECF929DF -D707A953953722436BEA6F5DA51A56F7668CD083E9CD7FCC8B736EF8B08442C8 -AC1AFF6DA974FE5E50D1694B3D07B2E47C0238801E7528C04C967023698E5B1B -23DB992777B22E7448697F2B78A20B98B78A79635104930A408C18C7E6B1577F -425F2073EE5E17A8998A38DEA4BB12834B6E842835BC711BBBB04B371CC8E532 -2490A6431876346A3A263683C153D77A5BB9B32E3D91B952172DD05C38F72F3F -A5140DF292545E31C25B27E2791205641375EC542589D61290504CD73B560B2B -0C2A8AE31CAACCE8BAED61AC04652F2E0977BE269D860034C429B0164585B658 -29EB62078B9B802B4E214FBE0198A76F5C9CDF072D3C3675583E44130306B5D7 -7D2F147BA926C70749525B60374CF6763E273F30F2532469BF6A7A3965E26046 -EA9E93F7D393F8EC2C021987D33A9AB30930764D1534AF53E361EA65B2B64B9B -4E93768EA25ABF534761CF567552B0B6D52C8C53BCF5E3414A0B653FF21C8F65 -2C6132916466A286C7E498A2897C237AD5568FEBA57B72C7A87A416035CC03BC -D1EB9DACE25516AFB3A6B6CAE2C70665002FE2DF14C2850662E43C5F05252031 -BBD84960EE0A86C8410082F441B8B594E001133C4D9DFAD9B4F38BC878C29AEC -5EDDAA290F7FD74C9228995E107A975C70A7A37EF8E01856E978F284F1BB1453 -A44320130DAF09D7064D9867D27A55E3425F5D25B99F553C9202EE42FE8D3AD2 -6C1D34416C520E0483CC2B87ED9D9F39E563A9A0DC421C04B3B9CA8582DADC5D -323DBCAA108F28E8F11DDB3D0F0B10D4A62C93FF9E2CED79214641160DFE8447 -93ACC0D72E8D30DFA0E368DE8E56C566D7E15E559C409EA8D913BBB18E4BBA89 -3246FD9DAACAC4C5DA87EF5B9A91D10F10D7252F7531FCBC343ECD3D2B674982 -8F0BE87B3E1CA86112FF617A8E63BA92175913CC403038265C5E35621001B6AF -EBA934372CB68E99920797A6B154557FAA7C3C696A15EC66348E209BDF87943C -A9F4281847F5C3C8F340C80240F1A93916880670C350B3A9E651EBA7E62F5D50 -9BE78BCDE8E0599FCB7FD9874E87E957D1117CEEC67A63B8862278E015856F2C -E31898E7FA1436AF76FF20AF5A7E5BBAB5C23E8C0E66C975A290AB6EECC07F04 -C8A37224EBA5D046C7746168EC081B93E0EED2DA80D9754050617DA4CBD3D5AB -C9C57C0FA2767E7FD633288652C3C4A2C8095D9E8E2A18C887B4D765B2578215 -64EE4227B2A8B3990DE2E0A4361E0C05B145837D58C4BA15CBAB0E79221759F4 -F17BB5097988872A957479DE4734BE905DDE5B8DB9A31FB9C235114974520D2C -CB6D6284C199A880217364EDEB160F5FB7FC762819E4509FD20E27A5F865EECD -B893551A9ED16D5E809B49B9AC67763CB67F877EC21D8E2B8A0D06E9936E84B3 -A6181D5831D67A8F2A466A71F5A4DCEF0DD7387CD5B248F2D5981A9F63D8A260 -88B568E1773B13256E440FACF2DE1041CB99397F8B4CDC8CC87447FA6FA0D670 -5B99D0BC94ECB1AD7BAB0DCC66D278E256CC3689DD3B2F036A6A3DCC8FA77FCB -0A88AB3A3D50C245AAE20ACCEE7ADCD9FC5C9FD53B405F0FAB220385F7D92011 -E527BC0789261AAE6197377DC5BBC9F5BAE3683700F85C63C0DC59B02BF8B65A -800DE3BB27A3E75A87F6A550C787F67B1430369268BB61CF5FA66D8F5221543F -2CEE65CAC0BC2996F73B71783E5BB43B030C90A5FB13CD66BC659A3AC2E897C4 -500CA657F16F70759F0DA8D712F4E94BAFD3DBA866DFA8D7310A44F240522200 -C8F14C7CBF9BBC33276B623C746F7D0A4D76AB13E39DA19E1308EED0A388A23F -D9336D3532151A416C720052128793385DF6B68D3BDDAADF8F7FFB53260B81DB -321B33EB566593E390158B80DC631545A66C3CC2BDDB61446A6298D884389303 -E2E55D64F430F35271060417EA4350B783041A7607D44DA3452D304797C03864 -DE4CA134F33471E959A74DE4A8403BD5A1A381BE22221ADF76F0B71F29C7DE1C -9FD94E0F158182F6DE7689A96C555D2D9F1FF664111F56B147B650BCA6FA1FAD -9ECA4488EA201C8BB72F63BDDFBE7239F13C46C492F320B4F06F34A668F657C5 -CDD4FC447C67E1BAC54C99666DAA9E96ABC836BDF0980239245D48227C14E811 -FEA8C345C2BEE84300C746016F98893E12D296C64C2119208E4C203A8EABDFB6 -699EC1F750DB57FCBC535E0929123F36A0113E6CDAC09149CE5865B9B1DAB041 -A74C6EB8EF0E8FDD6DED8C67B849324EAB11FA732BA2EF27E11190027F657912 -31A49FDF69D97032A07C66B79FE3F39594FD7DD3BB4570A90747E908D0121A05 -27D12831D23C466F31E31C5B3CC636880DEB158BB4A2AC34114299987E9F8F53 -B0A28EEFC3A259F49CBAD20BD7BB4ACB07726033CB8ADF88E7FE0A0DBFDB10B6 -21669AE4942A298072C72522D34E16987ABB7FF0236EF31B00EF6094024AED38 -CF83EA391CA265E5C6B8B63CE728CBF008756D4F1CF35E0E39B7B17A0608FC37 -78CB7864BA7EE90401AC2CDBFE9AAE8E3F726B41DA0BBFD7E503BC01ECDDE23D -15A1954FCAE479BC85DF88D0044F2403A75F26276D16F8F125BBA3D166DAE700 -8F0C3A51CDB950B603FC44DCEE18028B36282DA5D7C4CC9C79EF2C879A86A1AF -467CAA95AF247AC7EC18B7282E5A9863473871C679368C9438FE626962BA0D02 -AB329F7F03BA30FBC62A855DCEC3C4099A003F8D6F6FC94D5B7FF9DA05331BE9 -21B06F9CD00C1E2C5F694307ED8D81D474E70BDED837C8973AF6405115C85E57 -7D64640D85C0FA0FED12BDC55DCA2285DF9DA4F9E48361C00AF5F61C57E4E1C9 -60FC8DEA6C2EFF9654CD220D626CBE75E183368BB8B093FC64BF13B90F935756 -F87FC508F719472F96A7E9732C2B8100354A59C88BD82BD12E485EA7680EC9A7 -FFE0A6636C8D0A423D0432561649BA335E8BACBC5126BB4F796EFCE6DF8B00F7 -01DB1C7FB57D15AFC69470774A735CFD876711AE3AF1EF970A1FE154927A0A00 -A68D4CA6899CE12A1A26CF5393446B436F40D5A47238C053F3248C5929C2B5FA -EA441400AD4B928537A636AB45FEE4F298DCEA28FD29641C41E51926C2FA4F12 -BB1187C4F050FCD171A9EF0954EEADFD2807956D09CD6EE2A4F4B88B54F3BF6E -653A02FCC95A3BDCE0A0FD9F3F6E74222A52E2D424857E9A4973104842E1C308 -215467C9F5F9943126BA74589C900B74CD8FCBE53DD73FC9063A5B4BFB708DD5 -B8E30211679F57FBC99D651918A04071C6163EC8205AA0BF84BAF8CE8B05193E -DC677B30A87722E97F961F3F7024FDD5E0A54A30855E8B7A27715DD055F396F4 -E3DA37B23D51C0430D159EAE4116ADEAE6CCC19669593DB3EAFA37E960D63B0D -34E00C124CA2A621A4D13E2EECE188BD060714E0A5D38EDB57D0FE37E01A3166 -9DAE1B44103702832F003CDC90632C47720FB444223824A893172441238C11DA -87D57D945EFE864C0FAF9DB4019041D5BCA4B7CABAEE9264F7D0664089252A10 -142B31D8ACEB1D9C8A46A1EAD878C189BC82179911717C4D6DE3A4DDDB117D94 -851A5F735F8F64F6343B92C0C697963DEDC4FECF1D6ABC5276D6156A40C4E53C -93559EC3E3518A3CFAA0E4F1B296E9CDCCE30FF6D429A927F85980F3A424A719 -050EE1E6DDAA47E6705E996A65E1F805333B9728F4E9E7C8B3B3E29AA68D95C9 -124F5036334D202E1E4A520F47FAEA47FD2AA761E99029365E00447F13FAD190 -DEC04F8356327345FDEB37C79E467BFF87218A40217598D40965C5E06ED0F93D -AA40CC9445A2649F9D6D8C90FAEA395733E71F8ADE555E2166892B3FCF84C749 -268430344C7E70ED90C9858A74428382BE6E04D39174C1A52FD6727CCEDF3FA4 -55083E08ACE62339128CB8687F00C8DEAD4B7C7F2176154C5A2D2A854B72E3FC -9EA3320B701637A137EBC3C819CB06F372B543C0E929BFF3383DF0C4B093589A -40417511C97C3CAB64C88C26743683534320F8CD312E9B48E5683E4E05FC1A22 -7CA3CF17F181D1B581FBAD827964CE1F911F6C48CD868A9F6F1250215C1BE545 -48F29F82CF164AC3376AC9CE8485D2DEE18D515F12726E501AB86E2A904AC445 -5B3859CE24028493A520F8118834427341C7167FDC4731449E9080400929C0E0 -97328ACBC1CAED6C5042AC37E84F5A122DBBF261049BE6D7AB0E688CFA9E457D -DCB4004DE6E5EF19D57409062F918C6FB0F09B434F30C8E609A11071BCB2B5DA -A22F9AEA81C48989A244E8BE97BA8CF9A09E9611D47A9F77948B3FF43CE6F378 -71BB181A69867B6E6E01725992C9DD2FA6EE02107375D0C5876FCE49A3E1F3B1 -6A15DFF1BF3DB92ED9162BD4A36AEB4F3FF40E7E71B2B81FC4E372C941243F90 -C959651A8F98C0441B854097EFA8D66FC76FFD29CE9E786AFA3AF08B5C83660D -7FE132D95866BEEE0E475F04367343112880F80DF8532D14D8EE4991858B0CFC -2974C53D70C60BA9C6707307699397C30EE5044208F391809C2B7884D74C77EE -52A34E2D9EBED8C9AD77F8EAF56676AF405E9A162D5970AD68959AA0C01AFDB2 -AF2E7641A58B894E5EE279E723C7BEC3ABD82D5C1BA27F68394652E942E47061 -C2C8B460209A3D141F23E97AEB68872AA946B5D8C65FBB792A8F9A456B755A95 -18434B1A9CD425243A2056307B26386E64BDA30500018C74B38D9CC6BFC7D87E -52BAEF36B97B8C41FA46F38B4D37813EE37584E5B36FE9DDBECC8C6BF6646194 -59BF4AB637100456713A84BD505FBE9833956C028AD7C521E8C5BDA9E7088760 -1DEB596FFB35100C01D7EB2660A048F2F6AF924CA0A7C1FEE2987A590D9D5C11 -B0F7B5DECD35F54B4CCFCC7BF8370B7A3184A91ED8B963CF9D180CBC7BD83339 -66866C3B335DFDAB771A7C476650F6AA7925E12B2223EA09E7D2BF80E584298E -3B114466520D713D3D14D73CCE9BF05DB6870D48564C12CAED2A003BCD295E3B -0872B5FF1896822188C70CD5D25A039C49D49453AD7D379EA749A3FD3B119D1C -68E98559EEACF0E6BE1DA9D4BEA3A827BCD4BC75AE6013EF1402F744624FFC00 -C17DD16B4E1C44B8B0FA8791FBAA3C3B6E60561523BBF45357BE6A550302D720 -11DDC010C02178E35528C3D6A40078C6ED2E0AE8F1E9C14D9769C3BE991FBC2C -3F615E83420B9CF206A6B3C9DC5415BDE571BC3B9444BFD5269092D0EC2791C1 -2FCFDE8CACBC5729582143F36DA9CE6D36C5C66854FCE9C29F3189AEB11694B8 -08873FE32E8292FD57B9CE6E4F6B1DC76FEA98EFEBFCED91001B7FC2A78211B1 -F30DD80DF6F6973211A5D76E000D4F73DD012C62E760732C8D2A94FE6404165A -513EAAE7958D8E80D47F8E4CCAA1C8822944ED82CDDF945E3C990F075CD530D2 -45E0143743A9310C6E493C5E8D4C6D2672C1834AAF7D570C53347AAB358B217A -65C336328D667D6CEA6BB97EE648EDD4AB856BF8736E036B559A2BB0D476CF60 -F559841C95C1D8DC962F85E63B2C19D55B106D93B896D87D10B1AA94E36433F7 -17EFB0655E5119BA27D08E75DB75DC2895E922EA7463EE9D5FD7E2DA9B0D10D1 -9F31FF30539C079965DA102B2B61E026BF4F425AF25203F62C6606C904C35A3A -F766B098EED1991E893128512DF0F35E2C0C196601889B6380CAC542BDAFEC17 -11C265A9C773BD7AFF7483FFACDCEA528E66DEB207D5AD57DB3D2CB955A14B1C -75190E70CE5B650B021757BC64C5D45FA12239041ED5374147540F7E1E06ACCA -B06DE83B2FF3CAEA93CBC27D37AFDC748881BEDC30BE2118F542ABC14C6F58F0 -A9D6E9FE325657A14462B4D67BF2EB05E5458B120821A75EA86D102DDB92E9CC -9DF84F5905A7A3A011C8A7A62F556BB2712AE28CE5AA49295717B08727FC6BA8 -E06C6ABAD51FA0AD08E1821C547C599B4134D6DA36E10A6679425C2E6C56BB5C -CD56CF0CF5069400F9396411AE4F4BF55988646FDFF2290935252C290153044C -E30C6FFE0A623A697A5EA25C34FBEE0A9D429B88D1512C21E55CFC5715F76027 -1F863D57EA37AD55F910E131A7A7F7C52F4CCAE4434F300461F77305EAEDE26E -A782B9FE2D4DADF5044F4B912B09B0AF19EDD486C433D682914650AA408C965F -2CE16EA10005C4F63E23C5E26939C04FBE91C6C021989AB11BC1E9BAEC5ED9A2 -43F8A29BEC53480EE5841392FC2A89CB596589BE8F2F63A56B17B053C2189EDB -1372F17B54C2CED7D1701AB04395AF3B36DA19D6B2316ADC443E068CEF52477B -369B931C69579CCF750BB165D6BEF4205CAA35014EA9A678E4891AC0B9B28110 -D9436F71FFD26EB44053A0DC8A846CC31F1B42096CFD3CD3EF42628517FCAFF7 -FC7B26526B9CADEB536A0B583988637177F5A38370643DC4902AD7C65389676B -2AC2E025A6BDFE6728151DD4C639847C47F00281B382CFBB9FD0833315A7B381 -03327EE5C2E7B4E107EF3685481B63676B0081BE25A5366BD5BC5E06CAC15A60 -25A2EBBB8C9FF37B73E75253EE0CECDDB404779EA69D2332EBFEE235808DE06D -66BFE466BC0306A120701FE469606DC96BBB1549AD053D06840D530DC1928FB0 -2D8AFA1129EB725B62982248437715E44ED3C0BE04951EC65ACF23F433AF7067 -60FF11CC949E4B5E1F5C8143B8DACEBB520A490AE110F2E0148D10F2B7B9D7D8 -9B445CDCE2A80240DD31A57FBCBB1C99652E4CEEEFC56ED9A4A02A87BAF808D2 -F2F3413A885F57548170B80E001BA0BDC645F3D55BF251EAEB93141359C10BBF -69FA01583A539E5A76D55EF88B9249487EEED62396103F854F573F91C04FC363 -B3AF64C1244BB7563E4E4837AADFB652BF189D3AC0A8454FA57CE6FF252EAED5 -E3EE3714BB613DD8BDC6128C13A0E8E0CCF2AEEF10063E32FAB2E54918FBEF3E -1986208B7986F4084768DE289A4AF319C863FD5CF564A72EB7F437DB8DA6DA80 -D33DA28F7987F9C86547904B0F49F351D18F705C4A178B468ED43E179C43C276 -26E5054AA42CC7B5B00FC14C61C25B11A9D5A5DB3B1806F60248CBAEC06C068C -ECC0AA85F07856F5F73C0AD13308E6FF55C6C7649B96FD3E4B291B9188ABF764 -34610CE0A73EFC9E52357A2BECB4E6ABCC3C5EF8B1350CE3B1907A104690C865 -4D6FB2A1293B00533867EECBF8B1831B753DDE5C683153533A89FC6E3FC0700B -61CB7C10C37800B8DF5A40732F17322F4464E7057166C966F1BFDA555129648F -CFD85AD185410961C086CD5B6FA08619FC943100369C186BA5F3E5D2D4B00CF7 -CE3D23D6166F5F2AA31B0B4CFE98CF190841F69AEFF503E7E49838E4BEB81E0E -9DC3104632B0FB4A6A04D87D02E9C15AA4F046D39B670F5E37827EF6DA926CA2 -3686FC4E27F14D5755B9312D947096C5EB2F1277DB6E843A168261C4E36F36ED -98B4825791F6335BB8397DB9B5A3C0561621CA93B143AC978B6549AAC5AA047D -63F39B84E353120DB184F52CAA1E2CCE76F15AFC6CB7F3C507B2944B354E182B -225E43C25A92C6396C9CDBDDC93E8F5FA2ECB9B9399CA05CA7CCBEC2A9CE968A -D089CD94001FBD5F8B1E4060B6B55A7DCCF5B1972E3B532C98C555B000CD28AD -D93033AAA45346EAD38E49B3CD0F272B5CC2609A26677761131815F64753C5A9 -CC335864E866D94ACFB45EFB67692F31C126B256B4112ABCE4C6EC415AE492AF -B68C14AF756ACA050F179E2DC1144A744C12121F92E3985962791540BD21B304 -864BEE24C5DF20BE89A70E0D4B797338364993D66A1FE2232ADB3D1374111A63 -DCA4B98912B7E3A6E35A457185418835A5B9675C53752B8D5F53E9C01E0F6E77 -51A6350D29C04E22BA5897CCCB579DD5F90FC8482307030DBB6E8561BADFD1F1 -5FC063DEFE5178BCC1A5F4DE534704AE0E43BD1535A12CCDB14AA1D0C74B641D -658DAACF0059A434EE6282078C1E80F85A34C3228F5F7FF83F89603613B84478 -EE02C184414F84FE7970785ECC2EDDCAAD88FF94E70D3DA9D4747F95080A3C1A -2EEDFAF5D4ADE27B99436F2E22E18EC8D061E3DD90EC70948BD50D1EE2C8C4E3 -A0D988D36146419C05EDBA0DA61FC95218CFEED1FCBCC91F419FAE7B43D4077B -44C025532B9AEF5C2D00F08FD4B0CC118222EA16039E16B2B21674F66AB6CD6F -6E1F1F54DACC75DD1734EF3318D1364F840E10B44842EA2D710D2A36F3528458 -2C68D67B737B90617D3598125CC89EEC39851131EDD077DDFA9CFCD9DD7FBBF9 -DB8470B9E0DCAB56428F1508E3BDE08CB9F91630BE44D6729AB44D3F9CC25BD0 -5358EA6386EF07D8FAA843A187A9FDE319AE69E85801E6901D6CA87D8CFB171B -FB248FF2EEF1C6AC56D9A36D648348385ADB4B8A7D614794D8F422972A9D4C80 -3F8E33F1B2FC23C480B27E3388B19FE3544AC9461525199447BE809A04714F7C -F3E80752A16AFEB451720ED3F5DBDAAB5E4B118ACCA148ACB99AE24DC09523E0 -BFA40A88965E69C047E7F00C8A01A0588EB3B47E99293C9284599DBDD099D52A -A0C2033D88BAE5984261681C024174906F98B99466F38D0DC29337F69B14D3F3 -50843FCBEEFD2BDB556068FD7FC654F087886E1CB17FA2279C3986A3966611C7 -DE7EC1CB51937AF2501369166E96A4DD0B124BEC75588C348B22DADE47B6BAD7 -D1F7C5AC2122B02CFD2218D962C305B2953F7B6D36E4316450A8DCE29866EDB8 -5D3B93CF031A439C48BC55A217BD7A6617E09F5677DC5986AECE3EF80FD633BF -56D49E21D1E672027461FAD4858BAEAF550D408E71FB357886DCA559931B5149 -8CFFA9C48713600FF392D880B1002C70EA2085E64E217453F873BCC05E5F7CEE -E5DE1C0ACC95275D4DD32E55147E507150FB2607DDB5E6D3A54F89B3CFB40232 -0D6F40457D714A60AF7DE113F9A0A2DD661FB351B58DF3B626754DCF3D51701F -BF8B731A4A8F3A143F6782C5F0ACEF6F0774A7C07BC4554C28F2F2D080EC9183 -CD210B3E29032E28F01FA1C16832671DD1699DF342EF00452C34B2779BEC9124 -3C64C978950398237F1AA8D66A3A39A0D7088B271C054A9143D65ACDC3E1F0C7 -7E9F868F07083F55A6386337793D9E8EF88E6CB1FE850F0116B2E1088E1DF2C7 -4AC396C84CF0F35E635140E7A6A19E5E39902A2B52499071247BC39266519B64 -52F027A9EF68DA6F805C47C5B6ECC0A9ED5DB79CB1901AF8CAD2F7B9CE609BD9 -3EC6057888FA4D0AAC5B0DEF146124789E8B6903BB4EF9C05A4EF964EDEB91C1 -4CC2614FCB772D3C72B6DC4D056F185FF3C9F7C96018FBFBD40A636C33810DB4 -47FC8CBDC9962A72404AF156B17D69CBAD1F07B4E75CF402F68097E7588D78BD -3C9DD1122ED7916C4C56D908F84B2218450E35209DE1A30E71B416898AFB1F3F -25242B70EE33FCDBD00C2A103A3590AE3B63C5900696365B0F018B80618D0F72 -EB994FD8DCFDDA7EA3CACCF393872EFF39BAEEC6BEDEA67D03AE98F2249E84F3 -6ED37EE5E993EB96F282D0270C794F2FE622434EE5C99C8677B572D1FCE4EC13 -A1B171193307A7C8A81DED947154D90E58E2BF5281C56892201F6C8D287DDCC0 -11AB85EC27554BE0040FD227E027F74847B16D6BA060F75208D12CCE7FA44044 -A08917508036BEAF1D9B9D940C1CDB2298793700F940333A98BCD90147DCF127 -C6B99F4BF49EE656CADA2F4C7EA905A755879E7F692F4F39ADF6EAB7AEABC171 -2A72D147F1CDC0C864B12EE0816399FA7D125CAF57AF89A440D25333D568845F -B4D6B8EBC58A521073BFBB6D9F860980767343CADF8414D5EC167D9C7BC40B5C -97FBDD69B3DAC25E87C4D167F376472AD826A4EA0511278C8D9DD9E47F687108 -7C53C4721AEA016627E47487C871A6A6B1FA52CA703169AD6C785415CF63E06F -CCC95C2FC29097A3F114B5BFE53D0D0D15AAAE7A81211510A28B8DDD2E9D3F5F -9585367A2FE0E43F1CAAC3BF4D89BF38CD362B57667F97E202289EE40ACD4E76 -247E1C2BB25F65F2BF20745FE3A19CD048228ACC97CB8F66EEDE564758535AF8 -3DECCA4F5251099F649C7F296C068A69EC6EC2ABB93876CF4DB6C9D1B924570A -5124C65A88FEC62E1DAA87BF2F22F179033EFE247A114ED8753A12F642B32D96 -7EF019414141E494C1A98B7396EDF2427C235EBE37B47A8CB2D6A9F1947A52EB -D437C9354185B43A4AC299C20AC267FA110508FA24DF66E2EF53A781B0000D06 -2B3589A4E8FC4277A956BC7EF8CAF57FE644C44198499F566DC3843EE31E17A1 -E63B14A615A3B89AD5F16B34EFE495493112F536ABA91750DDB8FD1F558BC74B -199FF3A48D9BD0DE21B54E3387805AD1B9F105E511569AD44D1191207557AAE5 -CDD74D81C65FC06598248A72A91E9865E736FEB8526E1532620BFEFD7CDBA684 -70F0EAACDB044A1FC37BF155BC61500A207BA16200F7A7EF5C98F7C0BA0CE63D -DAAF59F0FD04BE25E822AC796F52829BB0048393AADDD343D25734A256C6CA04 -F3F5F041264034247668EBF3C859103930B3B08C595BF890CA60C1E429233A39 -E996C06BE6EB32CD6A1560BB6378C435A1736AFDAE01C0A13F37B8E9C3334DC3 -C385AF8FE1AAE8ABB777EC8555DE3E74A433D47217F9D05CC291D9936CB04652 -9E3DC449849E4E8A012E8DF58F8DB4D3B042445DB2A5F3E98B2005746950F402 -A22085D5DDC5FEF15D8D38DDBC6E5F8261506E3C508EFF3B7C08C1EE8E4B1349 -A845343908E5B9F93CA25ECE6AF6F3AACF4BF3350C703C582842F59CEEE1025A -406082C780B92205B359155B095CCE851DFE85D83D6842238E0E15DE2DA0BCC9 -F03921E124EE06E5A282DF6F82B2ADD92D0BA0ADB809BBEEAF5DDF399B26A608 -7E89D51E25EC5E70277FA6A96C4F786BA1BB8478A975989F4014887BC73F16E7 -335179472B4B623F160CE46ACFA8CC210652093E8361DE1735A2AD37D923A906 -838167A8060DC4B749F6B62381ADB5B8932502DC3FB47236FD7837172F22FFF1 -2C33897F244B9873F88A29F222299D7E08F79D07FEE3E4ED09F5F9DD29E9E7CE -450FAC5DDFD241F896AF6680B45011D095CACD10C395966A9C6DA794EF0E81DE -68298ED97FAFBE0ACE1430713BF604E55CBD770F5B120828AF486B25776581AF -F6D733602666FEA868B6AE2818B77E7FD71F06A4EE3CB15D19DDF679DEAF17EF -E0DF14CDDA21C09B4A6FB966CFF6F8B58C042A7F0BD75DBB6DB7EB81C1C134DE -D84BCF8E507600DFA6D5AB32E9A27BF4DB8EDB419C4D94C6B934B1FD9462E7F9 -CFBAFEF8FCB7D86FFDED8A7470A0A4D8113FE70EA8DE74E19C5F5ADC4B01D4C1 -B27E1393D3449B1285D6F0F0A9041B936A41C3218941B33D3472F46DDA0DEC84 -A0339B5218CBE53DE3516774BA6DEA013C9FB3039BF4DA71BD5D6A5C5CA415C8 - -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMBX12 -%!PS-AdobeFont-1.1: CMBX12 1.0 -%%CreationDate: 1991 Aug 20 16:34:54 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBX12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMBX12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 44 /comma put -dup 46 /period put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 58 /colon put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 87 /W put -dup 89 /Y put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -readonly def -/FontBBox{-53 -251 1139 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712 -B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99 -AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26 -7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF -20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390 -B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D -68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809 -D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E -26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D -F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26 -77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299 -BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E -C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8 -30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5 -148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C -E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D -E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23 -337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598 -0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6 -472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E -A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26 -3318B32500F76B1038FA6122C2AF6261B025BDD519D349966A067FB190E26763 -A5C6B1AEA2A47EAB8EB272BAE2EE33A622E85A7BDB149A6C7C3BDDFB840280EB -3099FD3BC4081E2426D68C12D6D360F1EF8FEC18E227A4D43CC27E05ABCBA6DE -A980A2228625FD33C772C6DB7F803DC69A967891E8D28BA667D8B04CA8A788D7 -C7C5D84B37DD98CCCD946655A12B8B5F9C3B590A001F1EFAE13F739F45C8C6B4 -257C6AA4D133412B2F9E25226E2E9CA4A3C4D31884E143A6207CCC7644C7C30E -C870AE94C8DAA632A8B3FB90E4A67ABFDE4904E8417CD16EE5D8BDC5483E80AD -4DE4AB6F0FE123427DB32A8BE5E0BDAFC6281D56CD83997354829EFA338991AB -0F4ED89C6941BA491B68D608301AE9E608C34A9A035DC3E86CDB4A64EE6F4629 -315A91184FCBDFD727AF7F9A9EDB604A1A13DAFC7C46A730E8CFFFC3FFFB1E89 -9A06F637911BE1BA30E4FBF5A0C5F504004672E5609BBDA6D6308606EB8752FE -AAD27C809B4F0DC9E5B834433115EACC92A17E214C5341A5C7D42375816F5083 -9E29261577500737B690F0D73EADFDCED50E6482414481F24216C2E7DB0677A3 -991EC0F265B919B8651C16CBB83B6016DCF8071C6E3A8D627BC4416109CCE5F8 -EA954C91C2918D804CA758C5F70551CDB5886FCC4785DEE80412A6CCDF7CE64A -3328A3D3F38393DB98C4D02F36E0E162C161160BF721AB1947FA3B8C7AE170E9 -61AE9F8B46766E2FCE33DCE39622C4525B4F48B58C2BFEA8E96C5637785713E6 -5D550881BA5DDFDBBE0EA786C8DE9375B694ABCFDEEE060FD93620FA2FA7C80C -CAAC497C0433736D80221CA7C96B72E2494F1B3CAEB1FD27F83682F04DAA0A3E -DF102513E3303337E028040AB7B4117037B72AAD9A1E491B705F67361A557B57 -FE15839A3B1664CCFCC8589E2F144E7FE28E3DB055A7AF6B3C329010C2AE8FE5 -D6C32C3DB0A2FED004AF13C6C7884D921DEF0C55C5E8EFD765299C95F7869119 -DEBD617AC908DA15C2665B025BC4D5FE081B2F842C3965F2207A05E21BDAFBB2 -8B8B7018EA48AD4823695C944AA76189F8D3AF3459E1EEBFA9442AA9B845FA25 -3BDB2D6842EC70AE87EFF1A0A241D19BC3349A9F04C5A25C966D2350DDCF5C0C -1F707723956D01B3EF7B09C7A37081AEDD0DF85D1E4392A73EEC493C85B8F1FC -C59B1B2A1B91CB642D968B09D4178D36300E85B5E2CED0C18392DC2D498ACF2B -45A1ADA07CFA3C0F3EDFA7B39B1F8442144C4EEA714A67CAC59A76B78C25F6BA -49712594A8C82D3199083C9237A69B55678013A886FA4A6E5296071361E4B780 -467CA1EB1838818552E1E03256AD14E0AE84CF2034DC139ABB2D29BE20EFFB21 -4338D4CE010F1BB45767F72088554BD33BEE2AF94ACB6CE894AAAD575F2BD390 -9F6D3DDF9BA8A4EA17244774F2648C9F60464136B6382485626854EBAFC4A2F2 -996399BF2F97C7381BC50057040537F19967890E69691B6BAFC04608DF8DAE15 -EA853EC865E3A88E16276DBB11983BBFF5FBC013AAE53FDFFC0F884A82AE0701 -FBC6B117EF3A45B6959E93D0F811A85243DC3FB13219CD14106B12608CD7336B -CD26EE6F3A13AD6EAFF464ABBFE54515FF2C44D27EEAD7FDAE9CC5BBBC71F7F2 -6B0F21E1D28B7562BE8A81E0B942467AB3AD918209A02C85048149633794F3EC -9A4170F3994042671B63BBA3D7E1562EE494BCF10A46B5305D9AF0EDACDD6D9F -B31FB080C264278AC82C9683EA626A191AACCEBB88E2CE31FBD5D0A7A32C90C9 -03C17D842450976AF1FD86B29CAE0ED6104E017723B18B849344A92E348C8AFB -53DDBB08E31AB5F82283DD8EE248E691C1FE0CD9E2E57FC66D42856393B83207 -AF58C7265445940B8CF8C3A9F6356FA06255CFF230298068D0C0B51173C10B95 -90134D7CD4F54BBDB4F9FA66FE4855DAA0CB58962DC9EEF28931766F866A1F15 -0A80FE86DD8B38343A03BD67489B7A1D08A28B5E776405DC35A11D4EC08822F5 -DD00FA83DFC9EFC62217E5DCBB775AD0EDC26FFE1EE275E496B92A6E0FAEB92C -6ECFE9E4F778ED08D0F2BE1571D988424DE1B50A8BB534748FF1ECB464C9A085 -206EEE7A0DE7CC4D5335A40AC51106CD3FC6D75A5E400CA9A0BB610F677D1816 -1BC717F63E3FB497800684E212F8DC5047B00E0F8EDAFBD5D3F1ECEB1F951B23 -C18E0CC93DE2B369B21950C4DF4981DC69725872081E9C1B4556779428603DFE -1339BB8F5569E649CCAFD9F354344782498B8755D881B07E9C0FE50ACF956141 -6E4A36301DA057C7078D52FFB8D213D3E9086F91BE387CFB33C7744950F62C97 -1589728691863E297CF0894E6C69B3C2981664F69F095933762BFBAA6D5DDD1C -DD1D090F0C4381B28F07E61403AB616858A86E9BB765D09B30B28277EFFF409C -FC8009CB393B3AE2D2890A808CFEAA804FFE8C42C0E05C67959E5A23D4B2D3D6 -7CF35FA9650B37A25EC2853E9259AE291DFCFEE4822B9DC9F68EC86A1312283A -9A789FD180C3ED673D706352785AAF7E8DF79EB323C769DD86E78FEF1D074FC7 -F501DC0D268040A74C54752A5FB0648BBD0A7D3A594C2DB890145C6B74ED5FC2 -D41466AF4F10D74E161BC5EA1C274D222AAD86F1C0EA9D51F6CB7D5FE1A6FCA1 -BA0DDEE4588814A09E5794E6BB1994F7E5CD35E3649601CE6466C8157C87377F -3D096CCBAC9DB3B66BA616BCE5B8D44062AC65236F294C199017CBFB8BD6505B -AA7A22D146DD002D36772C4F5162D109227CA4B92E9EE314E43B52174C593F79 -C532E1B4C5E72CD0872DC9891FDC532CD5774EFB23F82FA10B6449FC05EEE066 -2D083C30C5F288B452FBFD5BEA23B7A19EE07083CBCA87A2503B6AC0FFF65497 -6929F65E9E88B6388A84408CDCEB2874BDC72D06B033B886F448948AF3F9E581 -C4EDB3DBF7C4F22FCAA0C54B3C9CBFF77235D5E8F6CB55B48CCC5B7EE1F56358 -25B9E72DDEF7598FF08036634989CB8A416205A8A9532E2F3071A8921B2CCD4C -370B29DB1D9406BEEE4C93C2022E3075D4D5A94292212EAA9E260ECED28A438D -2CD8711837287D130D76A5132C8E6E09DC1AAFA65CE31C376A7DF9062AA3E3E5 -F7AC561729F9D3FC358DA3CE1D296662ACCCD3AB2779F13C8FEB5E2F0566C1DA -9269FAF2CFF44AD65F18BD6ACE9608898139AD229F73B4C1A310890BE0775C52 -A51486A8D721E0BA5E6C2126EADFCDE9AC9CF25EC0CBAD7208C921933EF4765E -EC4172C9E2DCD6711D770085A752283C785124317DBD66DCA7384FE9764A7CDC -A4109FC5278C13E2646034478D6A1781FDAF21D9CD3104A2261C412E9072B617 -65294BF1E3E1994BE3670A0A51E4C8AB05B18E337808A386E1FA85C3FA4E9108 -3ADFFE6AE72E28CBC0A8DF3BFED6777390591D1261F774444885730A5B3E6C67 -5CCC8CF984129C4408BB0EB714EB4DFDCF5F8EEF9F4872518F54EB58987CEA33 -F4C2241CCAFDF2566DD874D6050C094A7969BD831EDE4E40B138824196B460AB -15E6014BA2311D103ACF26DB9CB79CAB968943F4873D92370D367FFA082C93B4 -B4461D199ABA8129AFFFDCD69E98F5C27E1F849EF22FF0FF625D561EBC90F182 -8271DCC654627C1035B5DA0E0BD56830AC185520533EE701638D74FA392403D6 -24A9350C7A695186F896D514AA511063B2B668D8E7C1DAD8EFAD88B78B90986B -93F59E3F3375CC2F5A84C17D43857455404193CFE58DCD7CB725C71B24844B46 -8C63970C22366756B6B0CF8AF0F5F78080CC6B1E96207E232918719B23329EC0 -0171C78C0E5DEAE224C9FCADFB6A5AAEF93DB384F44C35B5CAE6FB41736B0DD7 -77DCDB5C06CE91E862327056CA27BB2D512AC904295188EDF9DBFEBE4175F55B -37A3CDFB2E84A9EBF74761A345363A7F10F3E99DE38D1F3B9BBE32B28588B40A -9D8A5267B485E38C489ECC00B4C81B92DC72B5C7051448766FF9D1FAC49A7BBF -28E672021BA5CAA75CFEDC9A2439D47D0936DD4E7D870ED4B4F4FB7A85EB21FA -AE2A93065233AB5256BC1B97DCDADFEEE49B4317EDA13FA14F6F5B0516535981 -046AA626A560CE8ACBF67EF302115944EEA6C17E6FC19EAAF1E46231F9B8607F -B6B1CFF13E0F2B8CB7258151CDEACB85FE82DE96F72347E6349AFA9F4DAEB0A4 -AF8D5D14E2F34C4A9C51AB1989DE4C4B164D356C30302C77053ADC1CDB5A55A2 -A20957CC440FDECF7D32C208E3F2840D37D65E817D1F677C812CD16B67933CC5 -F3DA679DC7B150CD17BF41F89687EC6B4FB201FFB8B819C5B990BD7CE655A4F8 -DF77295082E3087AA86DAC4C16B145E85ED81D45A504E39389DD1EF62E7C5432 -B66D9BA1F8E2FF7D85F83DDF43FD9AAE7E60AFF215A22F79BF128CA5019EF7AE -7DA8501754C0D1FDF05FD87E32E4FC3F1A4A681A7CA04237B072BF59FBBB75C8 -69F6837210B528BDD8F9E9788946458347161F55D26B52AAD431606632884829 -B3B9B60191C15E89FA1F20E9CF10A1158EB130E937E79EEAF943B747AA3A3554 -01F3C8F2A7195C32A85BF892753C0AF336ABFDB001C178D00631084D35257355 -44413849A5D963EDD74F7BFE9A9EAE9B7BDE07F3CBAA5B9998F792C6F4BA0055 -3406E4839974EFF70C3774E63E317636594CCA6C14A3772CF8B4032281B76F77 -33E1034E27BF474F0968F299C17DD2C2B8A0EA3ACD5201598B41518B14CB7092 -D79F08BE6870DBF673F60F816C69F440F112035C6BD22126CB013AA67492D9F2 -126970A7A8A0F058BF7588AB4D8BD180B8CF063623AAFDD7879E98EABE7019F7 -FD0F80D4002C7258F53E3EA9B8887D9D5794A7B3423200143FCF2DB62DFFB0D4 -B58C2C91A112924AF820541F7C4D85857926245E47EE4D1A08F9CBEFA442A8B9 -46028B56C398406BFAA30BD67421C96E096E870416A6C2B7E0A2F4A61294CFB1 -568EF5C36C6F91EEFECD67671213BBC7878455DB996EA4177790E5CE860A6A1F -38B82FE2BFA86436ED46E60BDD900B4674358CBAFF643901AEA043F330790F9D -E5257D95ECD588145CA9CE752EECCBFAE874AEEFFD9EA12A334FB63D6DC6B0CD -E0B86A4889736F24BBEEF7FD381AE7C4A3337BB08C650B2A8B7C89CF13D9B620 -C5149075325CEBEEF152A4409F53A3AA3EC9ADBFEF6A16C7CC4671CDEC51006F -E5C543189EF555778D3581D735880162627CED42B13E4F2FEE33C419AA518884 -E2DFB6D6F1C9759B260E7346814DC0A7A001F33A6372F945D060222DA5D7A57B -440CF0C215F125B9D327FBF3742C7F74A850FE6BAE73CA89B17A598CBB738AC4 -564AC942698A45A9F81008164DD56A6497751C55F1BF3D1F90851DD8E2F8C43B -542EEF57CB577FC9733C254D44E9A1CAA3102503031F638E68A59BAE6AC1C7BC -3A34C7D84AD76D55C7B096F6AD59E94BCC1674FA04CBC0E549C968A814632C46 -C632C393FAE776A024C3262DCF08347C4ED40D259ED7B0DA5E89B688B3F35E02 -6015A9303964EA2D5F4AA60ED1A39BABCBEA725E3504741B5E36D9E63E248F05 -A908DCA18AE5D6ADED8026CDC356D70EAD9BC7690B632752079C0C45098DF5DB -0E3D771E61D21B20B0360530DE3A32279D16DDB6B16EA1631979CEC0065E1B28 -3C4D59FECD235B616737229EEF4F35814A51D66E2119F6EAAC11BC90A26FC3F2 -804357330EF1763CD4B456B179D133533DCB37AC701CF7E8E0BC088A154FF096 -CB67B3FAF7E2580BD4AA600CE885F7BBB02327093C1FC596AB60981141031792 -EBF76D709C573F7202BC8F8C5F19876671062C7A3F13FEB3E1BC9B4D20B0D1A2 -D1CCCD0D8AAC6490BB3D412F3DD0740BFEFE8C9EB8D8303957D68688DCA33166 -6CB2E1E15CF38094933FF947E357D9759F240006B6B64A8B8BA46A6E43D4D26E -7A54531E3A3A900FC427887043367A14D88D5D85CC010193DAB07C2D4914DD8B -8BC94F066A8680337453DCFC19207627515CD5B3FFD2A5C6EB109B503B353CD9 -03BE5110D30C2356D9F751A4D777425ABBBEE997A0C37809989410B5988AE768 -8F1F6E76709C1DAF36C91CB44D3DFC812D289D2F470DEE365D2F3D3A8375CD7B -28DDF31CE000B7F885DB7286E06975EA1ECF72006765EABA9F75EE34D138E941 -80EC363FDE8B122621A1C18124202F274345C2D2DB2E7075541860DD2531A66F -71386B3387C2788E5F0BC9CC472CAF6A8F7BBE0A0B004D85A7A5BFA067EBE167 -C5B672A4DE0DF0A39467094774E472854E19EFB3D743ECEB342180E5A97A9254 -44FA677D4440CDC88101A4113CBBE7931433D7FC85AC2FB59AEE3175F22D9270 -1813D82E1608629C5D62E5344D672B8604E7206ABFC39F00A66100E4D560D7D7 -ED8FCF0368E48F3F8551B8CF1D8011C079E20F93A37840D969583A12F4632E63 -8273C351C4803F0E1E99AEB36D69E7DB704365791F4208139FFF42CC0C355812 -9AED12F62F6F61087D7550CDF95A5DEBD271F415CB72A13010A792F81D0A78DB -E7E03325A4832848112CF0F4DE539A06FBDDB6CA46B78E59DAA89D061F39463C -44B80A9B8283CFEA9C258D2F2CADEB36BD58C5DA2EE26D4E08F39C48E0204E64 -536E8078BC73D3EF26D9D249F20628784E3C8CC40A54B2C25555473CF727D387 -9D3F2D4BD0CDB02F41F597DC51B74D078271F71806E48EBCDE350040F8B76174 -3D4E6C8202ADD34E5B7319733EF19BEBA4BD57011A60C954FA1ACA3B14CD28FE -7BE9B4062277F681EA3F10AC9F9835B5FACBE7B918F2C93049B3F23CE9D99E51 -B1295363F246128C2923F8A7859FCCBB211B7426B3B19658FAD95E3467B89165 -630A85BD1542B5AEE76C7D6EF46FCC2C933407ED1FD864C9116F2F1F3CA39BC8 -32C0DB66A7E31B9C17BA34EAF0C64FE043D7FC8B512C8A79AA3374A78DC6D558 -602AC803FA2833118F5EF378A54F70A14B6DCC65CFC0760870E829176BFCC9D7 -F9F6B3219BF6835B42EFE93141C72CEBD230657B1CDF41F74DAB153694FA2FBC -039FE701EE119540F6E7C7F7B5A303A6CF48696495B902A8EBAEDB378BF291DE -1D9BBE8F9F82C20EFA58EB948CF5D8EDE0F1C18484534CCF51BCF65CFC833C27 -0DA24723ADA64769F7A9756B57409B3A8D0417CF7379AFC924D683B05BE96319 -4595214CC1203744C828F37B4A03F0345A3A28C87733D1A8D80F8E09C2E43A7E -AEA179623A29B4DC070B700D3EAC2B00555DC2ED46C834D80690A64E14A8DEF9 -17F06944A47B8C800F25CBD3FC4AE700CFC30459755D57EDBEB3AB92A62F5744 -B5D19C2B6E5EA782440088C609979595F13299AD237A00CFCD8B05A1569395EC -8D152AD848EAD77EBE4DD9F43E6A6320299823872D2095B90D65FCC36C3A28C6 -81C54FA91BDC185A6A4DDF63F76D68C79052D4B73A5DB18C5D867E69A446F4AF -7768F227B3B85D336EA06C78535D44AC8C862BE38E135477FF0E13DFA18D957A -5C576AE1D3290C6C79B7D95C201D1FDE254D9EB2494B3EAC175EAA43AFFFA682 -0C0A0FC25E362525154D9A0E869E2591C885E2FF480AF885B115956A5197DD9C -D206EE00C4742D4AC78B80A6B7B3503050093C7E4E00685CBDD042E9DF3A416B -250584D8849B7DE26A378BDD8199BA91295C7081F563D65D8A768A936F3FC310 -A98915827CD8F40AA0DEE30A63B2CB9FA1FDB58B1C7DA3F0F1AFFAA6226A13A4 -56A1FCC427844A3BA1EACCA1964E9293D3EC2AABD04E5963F5E3B1144B0796C1 -A12FB28FA42F6D68C4811582A79A341F84343DBE17B6299F538C89919C618260 -CF0D632AD2F14235BEE555BF5F70BDF168AFB7DE2433424C4124B9FC314B5F37 -8679077441C0FC4F8B2D8E4F13243AA1952E8B5A3A035328EE7C8C09800B531E -0F70026C7E68189D7C94BE0BDAA917ECCA799E1405CF618FC6CB26053DACF36D -DFC3ACA8EB6D20F2BC5E679D61505D23047A7C93EDB79034C2829ED267E82A82 -49BD89672F310A69B949AA35FD8CBF3CDB387C48646F81F51B909B3B86A8CF51 -1FA1637F574722576198D8AECD2CD9185481FFEFC722D929B573E1FD54B7B8E8 -CBC86FF89C45548CB06014E68CDECAADB8369B39A2ACEF79D964FAF4D821E4F6 -EF6810D72718708E1E64CE6936E58A4DC928D3E9E4AA5FCF04BB2E27353DA3C9 -7E84D43E59307E078013700155356B5F134F1D5FEB290C6EBF21DDB7E46CB54A -5E6D4FB62C00950B02741D5344E0C265211BB6F6C55E83C27348F8D6D2761DC1 -2098A0B68DBC1C5CE163A21ED18BDFC84144E364FCEAE6A9243609DBD1B4363E -877F2E26AF42F34E13B6C2E1E485C8BB9C7F1391122A682B9E9D5F00868EA0F2 -8080D7EEAF14E89DFCC25942E8BB917A5DEE2246DDE18F485667B2430056AF40 -524E708DCDB14DA6EA1269AF4BA225AB7BD49C86EE3B9AEBA2C8B1530A8D72FB -7FF7602257F185DC18F8C41765CEA7BD9C054DD0CAE1C7E725D2D8D9F0195516 -555596010C69833A45506984745E6321F2C7218C07828F2D52D9A54D042B0673 -9EC77314B4877225EEF527056982395EBEB7BE86DB016ABF99C941914BB8F89E -BAB0FBD6D390D2AACB75E4A1C0E81BF8918579E91BDCDF21DAEBA4A3B7F1A144 -C603DB6B498B5639BA86FDB53E381D3BD62BE5FA1127DAC61852A980D26A6794 -D1534DAA3240798581929CED645AC2D5B0B64850B1B4CCDEB7F8E5116990D862 -430A4C5A282AA682FA09EE612E6912405EE9B7A1AD2F329A0068CFD84E3114C0 -895DC2A112F482DE127F4825FD0C0B1A38A548596431E23099DD454A7BD9EEEF -24DDF1E299A3C0AF869AD77DB0382A32AF58542903E9E773CB7A2847C0598855 -C372BCB4BAFB7AEC7276AEB101602415D50C021A3144CAC78EF339CAC4713A34 -20C435062AA9AD9088B3F72CF88D541B8A2914A2144D4E3BAAF8FBC29ED32C52 -EA0A4B8CE949610FE35D78D1A1195D64EE01AF77418C9D49FD7F3DC2D6B6AC03 -0712C54E2ECDF64319343C5A544AEA526EC66F956117FF7C7DB4B171F6ECCA9F -02DC60EFEA273E3EA814B810BB44BE1A2A9FCC6126DD9312F55095D09891ACE0 -42839B6E743F729BFCF055EFEF6B49395B39A9D937AD3DD6DDC133AA88421EC1 -38118D5339EE09008149BE8D2CBD7D522595D53F0A7FCFFB00D61FFA185F653F -0765F9C61C732E1B6EA5FD070DDC048C1F9864A31886C0E68BA6616A34D3FF27 -49922B75F719EDD3A2C083C973C5A5756016393AFB68D0E8759628170B0641E7 -7B851DCBA6090DEB21F6B805EB66234E6BA5A3D1FECE2721648747568E01D01F -60F0147F20EE9EFAA3A5C6EFA8B72203836467EE18382EDD8723ADAC84C7AB5E -ED8774E3A3A94CD5D6806A93CEF48CF1B50EC9B387B40C2A29F0543DC9F70425 -1C18913567DD72E7811B907FE0AB9149AE3540ED2C51B6EEC62A08BB66B29C90 -7D09797FD3EE73E9E6047DB4A02A70B974F0C1F65E94D6817F9963A8E669B036 -0ED7655B15DA44DC802AF0F667EEE2C9A0BCBD3353F6BB5DBFB3B6EEDD712274 -2DFCE6BD0253A9F42CCA1A3DE7C49D39F1FB313FBC823D21CC2B598BF4D5FA4E -9BFA1E4DE80D12182C38F424C271F8BBCDF82253E448A59719A13E80E3DFB1DC -B0A3E4540043FDED9EC93A66287149B751883044F673492E625F4B09F79236E9 -CD69ABE887FFE13FC076DE57C84023C77673D69E2016A8343DCB2C60CF457A85 -086C8B6602F7F1885E1C21891BA9046E0396707B7E6C28CD4383ACE90D189077 -312C10E3E5E72BD1971148429565D3E87FA4CE5D3ACAF4F8D942CF7D6265E11E -0AE49A2DCC9A25536F272EE9E49779B158A4212F060395EBB011FF00A86070D6 -5B25B9A7028C12B7423F50F7C6B42316DA90A769B9AF0A954AB962CD8889CC11 -41CA39142313F4B953B79261D7F0BFDAD9F07C17E8B82A5E0CEE6CBC357D6E28 -6CDE8C65EF662E95B9E3B86B97DA7FBFEC49766808FBB0A8DC78B81DCB8332D0 -E47303767CC0122F4C7FB3C8749A995E72AB1D31572D4D3F688F685C32171295 -A71B398B524E50C59C64F3E8AC9EE15D7122A3689DCD293D7BE7E7D42E508150 -31A359793D72EC27ED3F367F9777587CAB3BEFE14DC2888E1F43B828618DBD02 -88B10C7EB71DA8818CE5407101D00C4E457E53A2FEC98707F407EA519BF1D45D -9C4184939FDA36445FA204D572FA795D9FF4FB7797D50FD67931007A73FAE4C7 -234A28CAE7EBEA14B545EF35C08FE94D5D75463B8FC02ECEEECB9D65B418F2BE -B7C6AE5C12943265ED0258F9B06E7120A59575F0DFCAA167AC38A306F7C67875 -5A8AC63E125DD07BB43909A3C6DB9D28DB0B89B2C76A007670A22403FD8D47B5 -AF8FFBF331374F803A164A0A52EF5F4380F30BB4D81C892C46A5E75F6B10DC44 -FFD825A545C957EB39F4662A5C313D2A4609E680B46BE4C1F6EE4C0DD44C9DE5 -9B03436297794A81473D9A5E4665420C6A392E98E62258155F63F5F4C43638E5 -60FFA20829DF6056B10D647F1EB2CB956A3208D6BF939A646700958F2E2DEDEE -DA5259D90360BD586FA73F0DC23DDF7640578BBB4F8ED37D19C5AD282DF493E7 -5E1CEE7F172221CB588EB3EFB4C2F1F6889C65EA47242250B28E67C86FD054AA -946335046D1D686849FCC3A6E1E3142BA920303B1B0884648CCC03BA7C288F3F -000304F1BD486DDDA1D6B03E6FC5F8D98A0702ED31E043C40CB6F8FAD751CA59 -EE49D32A26A70D96AC1D18F1FF57F22F0DF11C7A7596AC01814BE9F8569BBEC4 -80072664548BBB66EB0AECD471408284E98A297D15505E8A09A4A18687B0292E -683095D5868329B4D1BC6D44D8ECCE3E0CBE1BE8EEB80BC8CC72DE4B8AE3F4E9 -C946BD645857CFA918545309318A9064DBF3E706909E1BA3B05082CA9BE71186 -99F9E5723FA347879A8DF1B90AA81920F4784CB2B812B0666C5143FA24DB3128 -B6DC3ABA582941AD2D087063F470E120DA9410F8C219CF0FCE60996175F85FE1 -B89BD179F58D75440D7354410B03BD566AE2E5EC520B9E3452A6A71FAFFA5C28 -8AADDB077561CA7429AEB1F6864C06E5707962D4A1993D445A587FC5BC497739 -237635C313B9A65D1A6B53B129439D42C31373AAA8F7D687A4F988D7C82D4C81 -932A09B76C29A27716BCD438D4D08BA2B467FE0E2C3B50E82DC04A4B0E351B26 -2C3D421BA2C7403A5D587C62DAA65899DCDA98BDF2BE0554AEA617CFAA1298BC -1420CDE9EA38C1EA87DCA25E25F6BB1E6279258A96BCFDED6BB2F98BE47354CB -FAA54B69E2E74E8B7D09F7E43E3101CC7133B51159B971D566FF27B6F4EFDB38 -86C3CA1D5F2CD03D0DD7024F6CE4FA5C8F3298F4C3E58F086DD2F7B0DA9CE34C -B0477FC7AD5C1A4ED5B94EA6E145C0FD195736527C9A2727655E134CF5EC08E5 -C0ACC6BBE2D09FD95EFC123A77D1428765CCB7F8A8529205CC4E1EE8AB4BF3BD -66448CAF34110D7A84EAD50BC8D60CB3C37A86DC0045F5F3B87F08ED2D4AE659 -94A75FA7F021997AD683FFF284CDC8A5D2F0AFE9827F6E28BE008EB1F773B7C0 -B161996761142A37673674F1A6B0AF2C5AE6B981FFA447F1C4016CDCFEEE533F -A95296CB5B6D53F76F3F39F01ED4552FB98B24177E385B26B180E6586A63E815 -E45E2FD4C49E9F8E0238CA0701071C2B65580E0477683257F5167F5AA91051D5 -90D70DD37239 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSL10 -%!PS-AdobeFont-1.1: CMSL10 1.0 -%%CreationDate: 1991 Aug 20 16:40:20 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSL10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -9.46 def -/isFixedPitch false def -end readonly def -/FontName /CMSL10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 45 /hyphen put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 72 /H put -dup 73 /I put -dup 75 /K put -dup 76 /L put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 87 /W put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 119 /w put -dup 120 /x put -dup 121 /y put -readonly def -/FontBBox{-62 -250 1123 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142 -08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C -30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF -C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A -BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78 -5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D -43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1 -374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23 -DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4 -B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83 -63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B -89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A -5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2 -C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5 -7A5FD1B49560969BF5C44F3749370663A04776F749DDD7B50674D93254426C4B -EFE264BEE7810EC93784B7C01A7F29EFD92547E13A2C7851A2E709FBD5B87850 -4A44F08F56A542DBE072D2FBC58D9E6468E1AB858DC35240E30D31C7AC13D6C5 -7D2BB634BEE96FA0E10F842B11A789F72A333DD6DDCB1BC23227EBC406E50B40 -30AF0C48E6359AB0C46898CDAF1118E46BFF8B00F54EACBC2AC262AB898C42B9 -2E080C10DE923C18AF86D75FCFFAAC63768D4F985185710865FA3225EF531068 -487FB30531B1C2A4B4AB83F8C1494E6D72B1F6A012E10A2A4ED6658E5B081DCA -1A3FA683903F4354E3F6808212A7B2765AE1F7BFBA912B153A0C7051A50BC080 -C9DFC891A623F1F8EC6223CB3B1F2F7CA0C0E1922A3BD031801B31F970493F3A -9954C467A04D1D826C9C17155D6D441F123FA232B0908F15EFD9BDB4B8D53E0D -0ABD89C56213BB393753AA61EA26272566D164A8BCCD6331AA9F20393FEBF998 -E8EE3A54FB522C5ED971A45428116679B75E438CD522CE02F372141B456394F1 -D3D9B8B226AD7911D9B71F419E6B4EA2680F41EF3835715528C2338652222CF5 -07EB1831C27272592E0D7FE16F87710F2C50AB7C4F10626F7203D68FF23CC4D7 -B81B3922914942AC520B3183603EF0198C0A10957302E97A907F8CA7D499B85D -1F849566DA34D8690ADE3A4DAF7A97E1BF2C2CC784F97F4313DD69F9F06255E4 -B15E5FF86E48FC4644A59BD7D396B64EC5DB796D909A75711742C6706229DD25 -D775B208B14D7E2C129AB980CF9359AE105504F77BFB4ACE3649995C8C5234F9 -0D312AD195458F9F751C62901AB81EADB1762D31C769D55E9FCDC64A7EE3C59A -A13401859F5EF336EDF438E85B8E7E0EE5127B59ADED11E4075657A5E7111067 -50243C97F57BB93CE988C547F4370BFCB852D4571A3F24D0DDD387F8C366F031 -1C8188B7502BBF0DE92C5E1A2425ECF70E4F8CFF80E60680903871D565CB9B73 -12AAF237EECF3F6A4DB19FAE884D02436B2A4CFAA75B7C0787AC2C4FFE2A0CEA -522EA455BB048CAD8C89A42361C81475EEB3C2AD1C4104C3CAB9E94C1C932A40 -6B6A582FB7CB0C7776630D3266665A275A9AA25939B6ECD5EDB28A301EA5C475 -C9BF1E6A1841D887358166BD353C506BC26D813DDF90271698E84BFFD2D71FE6 -39F6BCDFD90D5127F385BFD9C0588CB64A2D6EC213FC46DD481B990F022F42DB -7CCBA22C48489FAF12E89524E9990C5BB71D6A8DBECDB453D4D85D3BD7BBF72F -33D40A451DED6AA8AC14A6AEA2E0C2B300F96DF9E94ED2CE865224C5E8DFDE38 -BCF426323F00E47B62726021CE7991089BA2327C8356C32267EBA52AD586CF82 -E9A7B46857CCF56CA461B902183012FDF684C649F656CFC2284B5B7C315FAECC -AB4E9F43EBBB945DB6E0EFD7ED536D672830F7B588592504BA5D9AC1DCFAA3E6 -94DDB28C5BDDCF3B88C6AF36DA732C2F8128AC6C6363D2AC2D62912F5736DF85 -20F2F403D712BD25932EFDD1158AD393676F41CA17F624619FC8D45F6A3A7754 -5ED156AD3BB137B036E5ABC5638260E6EEA46372771AFE123F331B4C9B2CEDB2 -C3F2196245EA2C5CC76800F336259FC8BEF686AEB4F3B1EC48BD2BF903985988 -5554AE3D7D810E2C12A6667BBB93F5CFDB223D1594E37D680CF0EC6A49F2F13B -590B9376A0597EAE084EC0742B17C52D0214E634764CBC2289B072A7D7BF7E42 -E21F3F33DBB9B3F0DBEE1D9B4830F3893A80A6374ECD4A265D13C2950BFD73F9 -ED3867FD35A5156DA284BDD6D0540FE242E72EB708480240F876C66739EB8500 -1285AC4CCB214850B45FBE616160EF568F3F7E2A905D3D7B97B04429DC4E6E3A -0CDB03A0238DA527F0E53F72ACA15149AA4BC4245B13BD2458B46C286C8FB1AF -F2B8536B90A608E857B522230D32CFBD0677650DF1F48E419634A288D5120D87 -AF8648593973A460DF22B9DAB20966754EBA97A8ACA98C1F95C6C2B74E390536 -3FD20B0AADE98306888F17B41822B5FB6C7C0A9E6D7B2F6B4AC4387A645F6620 -0A24144292CF6DC22C80CC7CB653D804A33025DCD98D2856ACFBF6B5004205D6 -1AB0AA4C3AA1701897501C53291787DF77700F153E3F3FE9AF8CF7C27D371B74 -DCE77974D266CD81CCAEFF573083BCD7FBDCF9030D08D9A903D4F302471D08EB -7A4C9A356821D436F9D612FD574ECD6FE5CAB70A1E732538BE79F53AA7FBD568 -F6CC89149DB8BB9B7427E8894DA272513251336D74D7FCB5D8B7F895667DE628 -7888E5E1EE45019B86966913C5C81ED6531649E4AC3277AF8732D51B1A0F26D3 -30DE8E8F8575F1D13348F08D76EB61275C5BC636A81A462A65E23D56C5487157 -68693587B3505F4FCE2AFEDA2E10BD7461C276BBA43DEC9271AB4F814915414F -F7537E32A5A53B636754F1DA3F3E14DE5D18D7D57332C2F83E70D9D39450FADF -A6D705C4A394E0DF31BD26C1130700579B61E2FC30A10ABB11098EE70506C68A -1A1B03AEE61C841063A9ACF4A64B44B1168527B7DA12A00DECC26E9122384782 -6A8D34002A244F5BFE9D26A9ECECFDB475FFF537351BB0CF5400814B3B0083E4 -6C83B60EBE0C106125A5D95CA52857847E7E3EBF983FC00F2026E51BDD81D015 -09DF78C69D2D842009E05CBD4CBC40E1B52929E73F01922E8416C3A8DCE65673 -06D8BC8A6F08C4AF791D0154666D7945CC0904247399C216752EF57113DA6AFB -86463D3E5820EF7F73B6459E160BD79B509BCFD02E6346F42A69B43ACCF56334 -71B053140539FDC4F1DA19CAF0691D6F81C21BAFC0B173FE185FA352E7DB9008 -AAB5F0E00BF6DB69CFAF548F51DCED2B737949C20CEDCB5A2DEB72A9BCE98B24 -3610D1CB43A1368044F7DB21215BB899AB3BD138D0DEA278F27FF808F37CE15B -E3976C5A54C69D54EA7D5BB5E9785D8064C44DC4BDDA4F4B8B1AB4450C6468B1 -B2BEF80BE3329BDC0AD7D12F53C4AF12E248CAD37C709982DD1C256AC8B548EF -9B2CECA35089376E92731458C5BC0DE099F17950D6F04522093D2B7BB5ACFBD3 -993A0D4254A9C70820A5D894035A8850E449DE7ED7912273F19BAE6244EC1EF4 -AC66BAF2950ACD6714252DB1A0DBB64FEB0E65F32DC52F541219D73EBB3B66B8 -A2CFCC124B4710CA9F0D734057E658040A42D1724E5F6E3DFCD83DE7BAD51FCC -B70D8025C343242D7176F5D733DF6D439A33DA3834CAD95DC7C992FA6797F572 -FEE1DA81A9DB18F47C780F06AD6CEC736305AA41F8BA41A0F1153E8283BD1E17 -FCD9C2AA203F3835C9328FEF20459E58C595745F872DE784E8547AC485531D81 -EB2636D7D630F28D83B9F0A77CC9CA5DD2FFDACA4B178D961D08D2A18FF05D0C -0F7CEAE2CA6DB6E11D0CD966E496B2D234F253AE97DABD9F55220EBF886B6DA0 -D60108BCC2AFE066BCBF51E69514EDF5528ADF86CC9534A6BDE291D6BEFA20A7 -F293FBFFA1C0F4A37F92C064D5F3B0623575D1002C6F70CAD0608A67E2840827 -4E9E45AE544ECD99B9DC909BEC3A45C8279A3A971BB17870FF93BD3C1ED35D3D -E11F99DCEDB6FFF77FEC6DE3734B3607D4D49DB7DBFEA7E3BD4E9906B7F99FBC -55309B394046AD63F2E59D568113C109D9CF04DCD2B1B0C15F71763F6C531B2C -83B7E96E0DB04952A9241E71B75DBA88C19109C4ABD60FF7DE9B23E991F14A63 -8827593DBB7E248992E302D6C4AB51B665FA7F66520D67F15E9A221324AF89AE -8C67B418D06A6B4B6128B149F8069DF7CBE3DA963B110442724A9E16BA691D72 -F3613865CB566D7B3B22F19292C7F39F70BA29D9EBA147B0A72D4F7FB6D07944 -33721F94B04FF9507E82DB7C2E5682A2441610C70D9D8672F3F31ACD9BB583A9 -D1585B5D2D5229A1C99F8CCD16B6CA6C1AD5FCB0254D64EBCC72867CE6C9EEDF -BDC5538AB3E02C835C2A135D8712307A338880EA270661CFB8E03EC3944D8247 -2CF9CD961C3C0B6CF8FDD8C3AADF769FD19E357142C793D0FBC6D5CBD69D9ECA -AE8A3F266932466EEE0DD3D32E9913BF8699F2014D1442DC5BF61A3449A6D366 -1B7F4AF08B5DF7072048C4A2DB7E527259AD046C2AC08A202D3741801C6768E9 -3465CAF7CFD73C50C019C7E60C14510FDC51832DDA6FFE385A596F69CCD153D5 -3AB08D09BD5C3AB6BB5908E460921921281F8CF6700E66BFAE45F547DA7E109A -2526164AD366CCE796A18E73DDC09F0E0E3B480D27E2049661E435564020935C -EBDF2079886FEEA8B84226936A59F4419F4D10045509C17A8602AFD588080586 -ADDCC0B401D1600247CC2C9A482482883192A4EACD89D3E37D475B7067275175 -399CB330DA1B148686CBF57D8A8EB10AE7DEBBF437EDF24E2ED1968F0C03B91E -45EA897ACD82550C2316D49017655061D0D92A21FE8B23B23A895CE16DC9528C -7624F3D349982CCE20ED8DF66446742B1DA0945D87BDE9905865BE3CE8A7B41F -03066CFE9FE10C2A84751CBADBED2BD074450E130548D58A07FD4119160A081E -987F4CF71B68DFE39A6DB5562E6368ED7D2A67165EB605E4F7B50073B822C7BB -5568F8434880D1835090D0F0737B0726E661623A2971F6AFB2BA86C82051F794 -1035D35D34FE0071AA2BFC13ADEF981B63BF6F647422A2DDDFEB9900FFA8DB91 -06A08010A9428D1C52CB2636BEF03605BA3F148851CA6262B4963BABBD015FEE -2A6F888BC9D19917C5DE5F730725D03E95B951B2DB240A74883123D40CD2788E -3F22D9F517664D4E20AECA03AD05F6481176E37B5E68383D070A9EE5CD5578F6 -713F5720EE1BDBC20242BAE097C55605A9BE333FC2A67DEF096A6EF03723D702 -562A8031828B4A22B06C4B31626BAA2E90DB509E1FEBD522F2F288FA4075873E -2C2769DF4942DF150032010767DA0984A2EA10FFC05D5AFFC654C16B4EDC812D -EB8DA97B59B28583D7C7C5981A704B25886EA32D2094006AD52CE372D211A51D -D34E86C0ACCB53966B3E4BA9793DABF6E0AEF06757BB30C141982E55017DB1F2 -A9A0BF2751B1C03E276690146B5A6D5A664D74D597EE88545DC5132C61ED4EDB -51B4743C6C9777CBF428C4FEEBDA8D860D33121DECA25792BA03125B3A8BCB82 -8D33D87B5F0AF0DDB979A79240BE8B99285E8CA00D80570457BA6154B711D5F4 -613F0F48C6778264C938B08BDC0416510D0A17684593996690B86A4F5FF2438A -1377231FF3B1E27E279BF7CEE12DA82B6E7C45B86CC5EB311211BF7AE6B51A51 -F84E990B2405C9EE8F9F3490008B9E6977B1820A13FA829507D9C6B9B1CB5EF7 -BDC181FDEE7C1A8E48B48BE985A036B153A6A486084B82AD3E72F919BBC149AB -FD4346DDE9C577315A7A8C498BEA3C5C4744B9E35BCC7449F98568794D9E4F8C -F1A6FC967F6EFDBDE2D3BA012F12771843637DBC36CD96DCFD211A702E316152 -E9B7A792F94C50DB2CEF650588CF1BD3A612227B09BE1FCC99EEA4DB9266001D -DE800C3DFCF92F1BC2CECAFEBD6E0FFF8CFB71D644CBD75EDE2470B25DBF4382 -183DFCF9AE2B6E9DE049E17FD7CB5D5E75F69D2A5E1B456AED863F862AEFACF0 -B9A18BA25125934D99E1D68832376640271D9BF3BDE78191C286A1EA5EB52684 -3EB6EC3D1DCF031584113B0EC8BFD77A85969C11032745A8138F0C0E46ECE1B8 -A14D8FAAA919955A7D476E956DD11556EBBF0A093B5493E631BFB38DAC211615 -EDE56ADEBD3EDF75BD1BD87A90F273D4D0E221A1458552A0414A82FA53239798 -85BAE93A73DFA0C78B10F726E3D8DF94BBFA3FBC98817851DD701C778EEE1557 -26499A30C842BC1A194A764F995AA7043F7F91065A2380C846393C7CA6B9274B -B15C45F7FC74D449769F20A7C57049AA4925158DFDB916872120333C998C496F -73731B7B055F642EFE27DABE4C3A9411929F78C4AD869FA00E6CB649AD915206 -138C6EDD92F116E34EEC551E7ED1279C454F41E815484AEA44E5CCE017269AB2 -6430C6C3EB0589A247C163315DEE3BD11525FBE7F17490306CD1D9E68F574AA6 -37A1459E4C44F1B7963A7726357F42CBB30E5C2C4558EDB9A5BC066CEE26F18C -63C0B37113A4481EF346C46EB5160CDFA6F8CABA14422FDBAD2C21E91F697CBD -A2E38CC8E4B64A00E4A4A046EB1C10310EFC9249DB8303FF599CBA910DE000C7 -5BF7229CF4F475198971421DF4C7D0BF565537497E3E701E7DAFB766E722FEDE -3EFBCA1D24776F14E988CF494CBF99B58CAE07BE36D678305AA742A4622EF268 -5F44347F7312730FFE21993C15E15188DBA3B137B997B7F0DBB323CE9B244ED5 -3409C50DE3F798AE64B703C8160BB009B40A05A6173240FDE6C9B01476D20E83 -3F9108DAA1AB3BAC0EAE04549DB2F8A7AC7FA78FA81A448F6549596BF6667947 -48326A07281D2EE40BAA1252C79FEABD510D72D53F45CF25BF7BE5858926A465 -C71CCA6927EFB422B8C23C0BD6FEFEB66FA1375B0B8C772CEE1C7C72D6DDD5F5 -7702E88ED8BA354A889A171C1304106BB08012428B5A792F9C94B8C43B6F2090 -37CDB8793C95F2310222BFCC7E1A66AF164D524F49D54A206A2E31AFD481F751 -CB4981B6916D0C624657909761348FA49DFECB3E40C22B3768D1949126EED61F -6336803CE8329861202E2E44BDA2000286C2BD8E915CF155E27D22C53453FFF8 -46B15E1A6FB0B360BF3CEF320293A0CAE1F37A9C1123EC78B94999D8DAF0CC4C -A69F129B1206A0CD5CE5C4C3F701B335C2CE6372A8A2E6E07A5D95C10E8D1E1A -FFC85AB9D4D3E5A956E8116D3732001F444BBF29C59AD4BACA82D0BF6C143FCB -E9898A6596FB71747723DA5E1F3BDD041238FBF91DDABC81CA4FC9CBFF5DE5F4 -058710E5246B8469EC1B97965D2E809DAAEEEA9DA2DAFC83672989E2A798FDC3 -A731DC25D33BA638C90CFC36250AB855E25F873981C1C134DE9E40F45CFBE0AE -1656638D45537D94ABA65A99A66AECEC7854514DB7D2EF752B0265A0EA1E503F -125B18BE0E1F2537F4B98DCBAA19F820088AA18752C806B74FF9E65E3F2F66C6 -ABA7B44EC7729000A951C5D470B0FDDE2D774F82D34E766069C3D242AAFCE6ED -1E68D95FA3E18770A99040289DF75F4604CB036A67AE7D158D0A07FBBA7B64F6 -6B1F750191AC9F2291A2439DD398434D84F91C4D0ED3B457E53C7B5D8E730716 -6DB507367FC947C7DFF700504E7B5001FB683ED86B75D7326E16F40ECF8ED7E0 -76ED443BEC5337DC2A776776A0C266670378E9134EB595AE449D0D48F9BCAD81 -7147F6B3203DFD0A38227376F0696D0ADEC9BC7F06B66DFD8116FD51982019BB -F463F6BE6563D173085A1C2A777621801FFC3220F459C77BD1302C1F6BD834B3 -742FDB9BCFB1342931DDE4CF94CD2E9F7A443A67268232853803BF62913B5BD0 -0AD7F4AEF1BBBF89961BA4282D227B1969050802DBC9A788C00E1580C4FA9A71 -ACEA2700E5A71D327345FD65F329177BF2BC1CB7111C6B46ACC4F5795B0C9AA1 -34B39915FB16EF49BCC0F3D2DA4D33F7EDD1E5707B0FF5DAAC677D2DE279A7BF -D034EF78D146789A2D4BD929F59CD9F208236D6FD4895BCEB920A2316B520B28 -87EAC2F6889F9B53103BC5B959444884CA28D37738298600CACB58C5ABE97F0D -D49C2C684A46B04D628A28D519BF0917E1A691921A227403D4D0C219F33CD495 -E15C5720BB584D770343520D00C15BE696642AE43B035737E29C4356BEC12269 -5B3E6D14F37011DA04B724299159BB62AE708644099CD6EB298CA66D1C0DE25E -BB2D83615F3EE99542F0C6C82C9106F9E8284828353D5DBB4B525781F288E9EE -C208F9355958794D41EB1350FFB308094A68C09F2E2F8CBC77385B7337A4DB71 -A37149024FCDFD6DA887243F71F48101B70665F850BA7F733EF90407BBA8CF8C -52ECA8D93406BC12800CF57F1DC12B355A10483AE4ECE41F9EEA5840672423E2 -1D75F2306012063AF3CE75677BCAF8F048756C3D3170E256C2F863BD1E0B78E8 -6ABB9F135BD4F0EA2216B631A392B2A0064CF9166FC9A73EB7142440821029EC -A31BD024C4262BA37BFA3FC5527772604547E09EAD0B23B7CA97FF613B340347 -D7233CEE647221C363F0F534D934CD179DE2BEA2A508DFD1313BA51136C7944B -7253C1AFF379611C58D41EF51EF55297129294D9FC25F593E2092E83F4346A2C -2A5E7FD1AC5823E2FDA0222D4FB31B16CA235005530012EF7DF63A7E1AC6AD24 -0629EBA16DB9943399C88201C10DA43C158D5CEF40821F3C7474846DC44A2803 -321F258F5D553D03F5B171A722CBCE7AFD8FE2F4E29B0FCF35EBF0D5ACC1A7C1 -E25934498D044430F545111A7E371F7E3A521661A47B9D525D81350305653D33 -C35E4231BC182DB7C5E9E3FBFA93D6F29C6A714F2E8D7FF27518245F05B13FE7 -12D77D9677E551F80A65F0D058BAC7E0036BEB3DCB6425D19D9AE6347C0F008D -177F55FE1D89D4FE6ADD4CE00084B944E8F249B421D3D2778198A5AE996DCFE4 -F6BDAD4D1581BC25BCC621C07DA2C8027DBD0211E975F80A0FC73D42C1FA335F -96573E9C69F023200B0FD6CE61797A88DCAE042B4C82CB3CF74309A392DEB8CF -0054009E777DF45B649ABD9E549E61D66439A66FDE06CAA712EAE20EA2233E05 -D4BFC80600F8E1C4EA899874CD019D4E514CF8945E022B3F0288F7C89BD9B32B -F683AA7BE2EDFF16C851A82CA15DC2E9A9FCC3297FFF9117522BD9741201BA93 -F471535EED70599310B05569A4241755A25D080F99F1704321708C6A4AEB60D0 -70AACAEF1675C67086021CCC3AD12979280F8999CCA21DD006462C83B88E98C9 -C785171F08636A58004A2609F4B6E58719215DF7EEABE2E9E2A33D7E38E4036A -A48FB0EE221C10668B482E9422BF3753ADB09FEAE829E35FC8004958C576AE86 -FAF18B1BC2B15E15955661E262D6D7190744DB9105151F2DF569DF2FA2153377 -0D5B1DC947C08EB11951D5CBFB941F1892F2AD72AB54333468C0B5967A1BE22D -2CF668465ED282FD7B3826D0BFCBE569D543EA0BC146865AB50FBE4A4800E8E3 -3E86A443F3D786BDE8FB2FB0313D8623E7895E1FE1EF78835444269AC3B55AC3 -352D7946E6032A32A86DE3F7E315AA09DB7D677EAB2B327C9A63F8FE89603707 -EFE8704ADB66CA6FAF412EB99AFE47C73CCFE17A6C6CD994E542EA044FD48A8C -84D4EA0BC1CE5C2F997232869F0F2A3D206DCB6DAFA49ACCEDDECBC380C73592 -FD44AFBEE9392DC921CC31E8F9181AE15DCFDAD134346E25492BAB25AD450EF4 -BA0FC540E9A26744147BDD9D187B6C1CE6768086894C05017B5A70629C3F24E4 -CADB7D762E9B4168F5340D10DA9EA293889BE0590FB91EFBFE73D51348E505B9 -37A517756A19D1C720566407306BD1A97144C6FB8A9F50386D09321399C0A8B7 -BA893A54C2F514984ED7D95F3F555862A60A6A02881EECF007A59FD8BC7A05F6 -55064C5FE3EF5BA371413125EB92025F144AF939965FF75A59D9D2E154261A5A -2FA9BA49716889B4202149988B1BF84F64AFE278E079C06F6E177AD07011A258 -FEF05A860299FDCA8AF7D6264C4881601C1E30B29A82CFC7C6D4AAB7883210EC -2E9C5E1A1F4340CF1419E015B09B5F7E26024B40383F710C534D721C74C2D5F2 -FCBE7B48928C31D2086D769646222FC2C382C72404BB3C5461D55004B27180E8 -E82BD7C3CC78C6F220798058F15776288493570D177E250005449A6E0310957E -F45B7D859026A071FFFFEA238915639A98B5C79FB693C37F43E4838FA8E4A8C9 -7F5EDE1DC63014DC81F7620C8A2119E8E5828B8D175FF91B87FE1F68DC817E91 -FF01989160665315034669B45A59BFC2F6E17D151476058FC8B4F0E2E2018ABA -053085E4B95E8674E9738AE36295FC923D8F058ECA7467736609B738806DA807 -847D2F92D02E0597BBB24B0F28D6BA9D281B0635079662ACDE0293BBB8698B58 -A80F23EAA8BFC44262F260D932223131B47F3D94218CFB21DAC1908B6A31AC7E -FAABBC90A3C3C3394D86ADF67D227D8CEE1876B2E343923017B1703635D3AE9E -9DB6DC06E52745795255065A5321D22CDC5EC2B2B9F824C23E409B8ECC6B4490 -3D0EA2CC23BCB3CA8A60958541695F97F2D940223BA42C3B49844B628225ADCA -6930D5783B6FA6EC5E472BA243C0FFA71AA738825EE334975A364548853F824F -9D5149EB346E8F2D074F4715B29764F114AC0DD2B777C170AF827B157D02C2CF -199D61FB4566D74CF4FC7B31CF5D3C2353117E7B39233E4B84B98C4535FFAD79 -8FE8593B490B484EC730B9CA552A45388103E8AAFE7E62A86C8B24A642C8BAD3 -C9919FA9619CB718AACCCB0F07945D336BA8CC7478DE959DD738441DEC374E9F -79D2B328211873D480E5CD0ACD94AE8F57FF0E0E3B235FEB865F680A0C817A16 -7D795B8ED5CD3B5EBCBCF748DB6BC52BEFF719714E9B93C5A0800E380542DB76 -4B12A2580D76CF3996B61FCE2C5C34D06487FF1595628E977D3EBC395C6BEE24 -5EFF7388468EE52154F1030AE786DFAE691564EFDD81BF390B9DDCF1F84BC16F -DB2E2BC4ECF193352B3C6B4BE06025BC43D0A97856D66661B80C460FA48BCB8A -F7E7BE633E1CC52EDE7EF01258A3693D8746574B0AEC82A2618856B0B5CA131E -B6D624ACE129E935D8C3674715D542AF4F0084B0D7C993E2B0691BB1FEFBB735 -0C0802658BF289C32EFD28BA582941B6552ABD8E03A4651AAA797475898BF848 -01BE7FEDF3CCBD26C235BC02C6F907DBD964ADDFCD1A5B0FCD45FBCD6AA6D940 -6B955CD5DCE4CFED6DE9AED7019A44EEEE1D64771F934A56C18BD5714E1E6CE8 -A39CA252042D8174B1CC1A93810BE59DD9F203A7D9075FB74FDB5CAD7B12C1D6 -1475E3C78D29D96D84030F5175074C436415A1E6AD9FA26E4C3F9C9F318AEA82 -E98B6B507FE1FCEB57E57FA712DC259C43A1121685948BFE52398DEB4E472CFF -C09DC6C20B0D6415BBD93B3F5FA82C03B7F3E7268F9C1CD8F8A7214FD78AC592 -8391A6FB967ABD42A63ADA78B700FCFC4817C4ACE54D8EE4FEB20490B5667469 -3B105470A08E956A71389CAFBF2E96AB9D445AAC58F5597990B0FB65A8306355 -37921A387625F7BF046E9D4D11A18F6FF8E664FC1326E9AD1E4E7696D17A4AE3 -F2767EEF4968983FB8DFD7F731D2065593488D21D2CE61DD0F106E0CA36C7616 -376464D5847B3CAF77B257C6A3D6805C154EB81B614E9DE2D314E8664F3F2928 -7DBBBE43A95B071CF577FC1D4700514C0FA042ED08AA4FEEBCECC59B730A686A -75072DBE884EECB3B6056A56A7EFF016290E52CD4E6926D0E631D454AA21CDB1 -9B355ADD5AF08D01F58A0EBF61D137CA9DEEDD270DB62FE952B457D65AE2A9F7 -70BD2AFCAF5F02F24B3B1AB9A257137CE6AD6C8415BFFDD7EF318EDA8F16C04B -92F3BFFCE429051D035726DDBB9BE7560BD44294D6B5AB3D2D470563F9221728 -25327CE19D7E770536AFA9806E0AE707BAE02B2F1D86D102EFE83389CE027FF4 -432C4117D6C8D253C17B49871015CBA55BD6046119D7A956693B2F32A4DBD2C5 -7501EF1C8A277A4FD42347F07CDFD37EC54FA6AFB26742671D66EB4A746DBE28 -791B6E63C25111FEA59E1A0F239A2E041148E2773A491E01DB47D67611F40C4B -3C862975C0A379DA1D15EF87A840008E02305455E6E13847 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMTI10 -%!PS-AdobeFont-1.1: CMTI10 1.00B -%%CreationDate: 1992 Feb 19 19:56:16 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMTI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 12 /fi put -dup 103 /g put -dup 105 /i put -dup 110 /n put -dup 114 /r put -dup 115 /s put -dup 116 /t put -readonly def -/FontBBox{-163 -250 1146 969}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F -21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6 -06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF -55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5 -B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86 -0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9 -1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961 -7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A -7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402 -356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B -19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2 -C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F -244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B -AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95 -5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9 -C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785 -EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512 -998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0 -B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70 -CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE -C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B -6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5 -8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917 -6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D -E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F6BCC38A -2A052EC4018AE3189DC1963BA39ACDED8F0C60C83F8873FBBF0302010956C520 -A7F3F8ECD0F177EDF5F4D5522C5984A3678FF32EEEB570B69C142AB89467641F -917155D646DAF3352E27BF2AA0746E062E48532256AF364EFC0F0AAE376F3017 -C712E89991FE883E0F1E1B613606E9AF74B88F5F6DA73D0D404213E34649F769 -0FD57EE53BA3AB1BE898A36A6C69C105794080673F792207DCCC4A2B4C286FA8 -0312B33A9868E0363A5F747EB5B1BD8C74C4F7409F719383A76416713D1C1CD5 -B6FEE2AC58A9F7C7BC2AB5BDFE432FFFD415BC5E2C87281D5AFB7F305BFB233F -C94F2976074ADCA686329630F76FE55103638B3E6789D16715124F74E738F65F -2C20A1BAA10DE8D7999BD71C25D9617996ABAC8D9D236DDFE3EC5BD58C0E23B5 -1718F4ED8FB93B5755B14432B34FBD200C85A27A8D57CA278EE5F2011424ADC2 -5EA98120F3BD3E9A5417343DE3CEAB46CD06753B4DC9748A63A1F81778E50ADD -4D11D2674990DDBD0FA549B493D2B14A328ED349A294743BBDAA591900502401 -B2EBAB6D10E6DDC915875482CEF1C8D380396CB0C9BADAA9E16AE65B90E451E4 -31164B2EF7D6FE6B01D3F51FD511FF8B0B473A15D1FA6A3F93AAB6693F514FEC -CD1DC7E680D2A4DC1F68FDC28DAF728260F61351AC7B0A94B0E41FBE9C0656A9 -74DFA32C245062C413EDB11F347A4FB0191947A7822960D1D433551BBD9B80B2 -4C455F4BD466FBEAA5172A9D6BE51BFDC5A00EB941A239DE2FA934B449F57F4D -B5E8937C4F33FB22BF6D75E896E374F6777083AE87F0AD0B589BCB37B37C77B9 -DF15CB0E26A3A6A30B38B3542CFE21E1D03B98F68FB4991823714A78D1D6C723 -02BABF34BD67A073E70AFC66CC845FF87225510DCD5173F68808C3FF59FA8AE3 -B6379AB7338F1252EA8DECF059B5348BD217A31A5EB825A92DFBC3CBC7B6C092 -08821077F26B161219EC0A31B47079DC1C596A059645E62A8407D40088F7CABE -A0E295F663A614767FAEB2DC4A54ED4DB9123B5A4038F958302D17CA2122273C -6874C6B8A0680EB2143DAA63658748D8D6D18FEA07FD9E588DE6B14E329386C8 -A1E6E605044902C17AD8C88AA4B887489AA5817944AA6061CF7AD4177AB24BD8 -D093EE6E729CC62B89B0EBAF8EF9F1E2EA2605151E3F6FFBF26FFEEA24071ADF -189E34D48D53FF6215F564954D7AECCA4BF90490DF52925650B794F41364DC35 -7E8FBC7318444A3BF37B5712AABF22D65B540EBB1D2558F1CFC742383D7A0235 -290164F4013B700C9BC36E79BFF016BD37CDC719172B808AB2E6635D6397433F -96B5419A16849E79C090293F392F325F8621595D48A3945A6EB8822FDDB24300 -9C90929A3FEC02EF47788E17C790828418D8113197B771BA8DAA9AF0FBF2E181 -B45318FF2415743DEF5FA61ED8BC3187B1BE5EE1E3A3C57363BE4D70B2A4443C -2551167A58FD9A6D4748145E7E2BAD9CB5B3862C922A2EFEDB9AFAFA7686C566 -76976BAD66FD5415E432C1E009EB49D7BF70588D598E37C6E35A47363821A9E8 -30CD209E39F5ACFA9B7F61213D7727799D110C0C007E43638DD294534D544B58 -CDDF225AFF4EDD16C38B00B4C7D42A726B855CE25217272EDF4AABC97E17BF2F -2AD297530683FDCB7FD992200028CB6B8AC77BFDD48DE6F571716DC90CD26169 -F97FB7442E07E31B71F6A20FBC47797F656E598B7F9CB395CC8417A3928C78C8 -D07AB0CFB33225AD19D886B72C9241B46E3E2F7336B4E463EB616C7A37907A56 -6FAA23BB33A5A0CC604ECC307CA975E3EFEDAB1CFA5062D54602F283272DE03E -6E9553F57CB7AA46306644B260B668BB80BCE0A4AEAD96E351A3588192579DF9 -EFE673F35B8B760FCE15FCA79A8DF1B0DDFE6F909A69B1F66517E5993D160D03 -38F36CDB4A671A4823A1BFD6F1691E09C97946A628144B376B7BC4DB13A214D5 -0C710605C5A51E2959A37E3B458BFCBD8586F9DF414E64EACE1FD2E47D5AB25F -70927E04146395F6B4F5B68B6852B9D60C8962F9E0C5E4B6954AEA6970FEFC72 -7B4B324BF21A2CB2ABD997CC48B687E529F622AF45E72557157125FC4D1C58D8 -F2E84AB96B15CBC25FDFC63D30CA8679EB0821975FD333DDC43A7B80ED69ABDB -CE8F667B2F234A12481CDDD18D6E5B468D5A5B87655D8AD2EDB8BCB88FA87E30 -A033421CB1AC2AA7C0FD0DEC85133E760A7178E7C8DC5FD394541B1796E6697B -E9C692407D0098F2259FA18D136A3E5D4124EE15B2A396D0E24E1C3790FCA795 -FE794744F4349CDF895ACFFA5A4021D582006F2BD77FC69F81640507F7553CC5 -F5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMCSC10 -%!PS-AdobeFont-1.1: CMCSC10 1.0 -%%CreationDate: 1991 Aug 18 17:46:49 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMCSC10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMCSC10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 97 /a put -dup 99 /c put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 105 /i put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 115 /s put -dup 117 /u put -dup 120 /x put -readonly def -/FontBBox{14 -250 1077 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337 -900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA -87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98 -076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518 -9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A -FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD -B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9 -CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30 -40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D -C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B -7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5 -FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC -81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D -5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90 -CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6877C1B3D2 -24030F377820DA58F4B95CFE645109F3F1B80DB5FACFD7D05AE2909EEFCF95AD -9CB286C8B6C075CA2267C101B736139863186C193E31085E7C9FD88EF8BBECE3 -933542C85309013325B4BBFE9A5B606780C8580ABDA2F5D0064EBFC23939B307 -08568C3B7F5F053BF367DEBA349FABB9F760C44D100BDEEFBB01F27BFC61FCD3 -64512116F2751A1B95D2439E266074DB3B9FC76ED319B2851588B1F38F46C8FE -040793C860F05E26700B72A766D0BF3F6F2EDEE06A26866BF0207CEF2841BCD2 -84F5873A147D5BAD18FD74DF7B77B8CF1913AD882DC1F4A94020B2A8A73237BB -222E6B78BD1C4C0975B9B6683B5DFBFA693970DD53FB5D5CA5805B7728C11D6F -92E6293F82E628C9FDD901010DEC199055B6682D6B2A688E3EE8759F7E592F54 -43E63699F1D60CD915365B85B8713DC4EB3EC4D2860880035348966F004FBE18 -9299E1DD0D491A5D542D450C8945321BFB9E823E18D1F33178BECAADD34378BF -6FDE26691802F24E43CFA4ED1FB81C824F808A049085FA95CA518D9F4EE91D78 -26A8B8B461486419D598E7E341E9D43CED2402BF225B2C75CEE127D8B8633FC3 -6F4F69DBAF7134D4F3D669B35822FA701A441E5FBA3DC1F02A00B25C583EDB52 -4D4D488C6A810128777654B956C3CCE8FFB0D1985AE2A2735BA415941D1CAD5D -62D9DBBF01CC979B8E1509F5DDD3BA6E87B14879955F978209CB398825E40199 -2B1C7D2C55251F321BAC0764D40B80D7AE1B787E5690CB5907719044B2AC832C -C002C181088BA15AEFDA44D2305E6327358D1DC1D9B93AB1802FE9F24CF49739 -9863288D0195F5610441122648F5E38208E1AE5F01D1966DE10B8AAC02EF9F2E -27D2383BC6D5BF9DA8F9018BABA01B70755FCA281588B85BB705FB7016F6D7D6 -8607BD0739433B54DFB87614A76902A3C122F39A21E80CC1970C5A6932C6046A -771484EA9BD04CF0963E1D372B456C50625807B3557384F5368C520E757716F0 -16EF17F3A58F2F7EA42C9BFE2A64AE786F49213CC47B496B8F127696EDD017A2 -A07FD72357F4D847CE1EC8103EECDE35AA194F9CE466E733F66515749B3C36DB -6F7E83B31034687CE18CBD15342723FC21689731B45C72DA278994FF8C5824A0 -EFE9F8D734D75C3C263F9D4BEACDD86406567055B1A8A5EF73ACAB4A09255E39 -BE9AD89DBF4624E686541E2FF03742C99BE71E7CE3B4756A22CA4B0121E1FC6D -D62BB37F46B6EDA0AC3669802D1DF75B0F9F61976B2FA2DFB5AE2274CF08A000 -AB716CF047D7770A76B6577C75D806D878BC185C4117FD7BBE29E767E028633D -257C34395F8988DE13F0F9083823F028E05D16BAB6B3E9002F01AD5039CA62BD -07AE9C5FA71D6F234899382F90EBCC371C5501FE01E38646BC3C734C7E2C1AA2 -11355703BE46724DD85F5DB4051F65E48A3E8DA4CF8845BB4B3F39C47000E871 -AD2FB60C3161437D8C76A10377B98456BC205F3676D02132B174AC046658D059 -5E506F3C4178C400AD4E721AD613199FD1395413EC7AE6960F96849D6A26F695 -B78395941D62A7F7B6E25CD6824E78804A8CFA780E9919BA860C2951EB88DB5B -C2F9E9AF635BD2C95C7D6AD4BA85E4B85483EEA4EF1908E3D5451AF6EE9176C2 -BA3F1622024250AC2A1F8E66811EE9C1608FDE0E91287AFBEFB43800212C90C1 -6D2D8066C742EAC7D611CB9F0590AB2AA66C17340FC81E55C339FE83B68D060B -33A10B037B3370E351168E98E9DC4E8AB2B909879566CC28DD053B6EEB04A3EE -6016A02EBB0E8D0BDB7F0B1B3BEC8C559F48448AFBBFFF5E11051516E9CB5F45 -6F38CEADF429570FB2DEC6E13CFB2A59D5FFBF0A2396FE9F7B3A0836C76B06CF -9B9D99035BFF40EA918DC4A8CBF4576809F49DF330A9F742AB2FB385C9382076 -6FA8BB32BA81FA3E57E91BB6757C6E98047E9537A0595EC0F2A9BB2D3E093294 -023360099DC1D4EBE77960AB4E26211D1A75ADE1C764E5C2E80EC234F678159E -3E64331306FB3E2BE3AE0CFEED0FC3F583E875A98694742C3DEDC35CCD9D45B5 -D4200D69F93C5B730AF952EA0DCC88EE1F6D50B9477E249C6274EA0FD849B537 -BA497FBD6617943E7BE06CAF71A0F6B13CFFBB51AEF3E042F28BFCAD6CBA2DBA -CECBDB7BB399AF5D80487592A820F82A7255B46A0D7C739CCF16B7F60B709651 -0B91A26FF4854483DEF0336B7633C1E053BA889F4306F7398D85C3EBE21A5A41 -B7DB32141ACA892DDD4C0FE0C95328A70F53DD95940017CFA865D15FB0BB281A -13E2CF735AB238D278FE175EB8B72337218B5F66B62FFD912FCCD0E180AA69D4 -23701D46D44EC2E80D3C4275DC7B5848F50682394C4E67ED98A2E6B41C348263 -EABA9705AA74CD35EC6E1D9DD55634102C6633ED9117DD472DA7F41705DC5772 -72A3C2D8BF6B308567D07153BC750C8CE867E40355C3D50747B757E52F7575DF -9B5B913AF7FC3FDBEB317DA46DB498C7C044F83E46BAA00321A84DAE2DF14604 -12031AF813C994414F098824C30FC07E9B5307EFD8D01B56481BBD2EF648A69E -7507FED42C6605B09EA047F09DFA9BE15B59B93395DF192C0FB33F6F31F325E4 -DCC9A5DFAA157D1D5B4E5BF811F6F5B0FD1E69ED7EE1A6FBC2CE14D11D6FA699 -255370376844BFF3C2BE814A1FEDD0B0854647B9B193B4984394C8602820A17C -62704CEEC824C3C745BC615C54EE5DF86EBD79E874CC3522F8B8954C8E4A6FB4 -F715EE641A3D52C06574E8D7DCFCE83F3F8809D08A3C9C70C962D33F5B3D6128 -16EF2DCD4D6DCF0DD055AEA2293E10C1B7C2399C0DE4928F0A47E0BA652943B1 -004568BBA7CE62F12C7B58966BBF7B0327481DCCFC56218E7C4B9F0761063BA3 -BEA01AD1BC99DB3C1FE550DED79B243A7A554F2B1752F18FEE94120B708FE4DB -5948387091DF4198859CF49ECAC3AB49CE2E5F0451EA4EDF9BD49633C9826026 -BC9E7E1544A0318C545ED1C37C64176504D175B83CF974B4ACC39F5790E24B11 -85F01604144C0E694DB7206941933B60651A800DF182E19C3BF2862E72F25F2F -2D9BD71056559C0FE547D0C752640DD4DC6110A849CF9557FCB0643A1EE77855 -512015F57A80140FC06B8CDEABC5580B89F9F30A489696AEF2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI10 -%!PS-AdobeFont-1.1: CMMI10 1.100 -%%CreationDate: 1996 Jul 23 07:53:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 58 /period put -readonly def -/FontBBox{-32 -250 1048 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 -990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E -6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB -DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 -59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 -D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF -8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 -6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 -1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE -03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 -95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 -74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 -3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 -47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 -AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 -42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 -40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 -B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 -9560176676ABB71BBD0EE56B4CC492C0652750227CEC6CBEEE374709231B00CD -0DE83AFDE295B314F6C8B1FFD32251C1925D96A64D739FF1DA4926460B28B3DE -E949AA0BA3DDB16534FBA30C32092D5F712B5E8C8D5142F35AF2906E6C219D2C -7FD9A368C193E0EB9C7E25FF03C546B6ED993F964CEDB1B8537C617170787F37 -88D6F2AD02384B01067FE3F98257BAB958BB3BCD1001090A4502DA0638080EC6 -DB784CC8AC37CDC01B29BC481D6A05ADC6188785262358C1BF1D694BBF31C1F1 -AF117C1ACED44AAC6EB4B9A2511A6762DDE8FCCBA5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI12 -%!PS-AdobeFont-1.1: CMMI12 1.100 -%%CreationDate: 1996 Jul 27 08:57:55 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 58 /period put -readonly def -/FontBBox{-30 -250 1026 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 -5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC -4391C9DF440285B8FC159D0E98D4258FC57892DCC57F7903449E07914FBE9E67 -3C15C2153C061EB541F66C11E7EE77D5D77C0B11E1AC55101DA976CCACAB6993 -EED1406FBB7FF30EAC9E90B90B2AF4EC7C273CA32F11A5C1426FF641B4A2FB2F -4E68635C93DB835737567FAF8471CBC05078DCD4E40E25A2F4E5AF46C234CF59 -2A1CE8F39E1BA1B2A594355637E474167EAD4D97D51AF0A899B44387E1FD933A -323AFDA6BA740534A510B4705C0A15647AFBF3E53A82BF320DD96753639BE49C -2F79A1988863EF977B800C9DB5B42039C23EB86953713F730E03EA22FF7BB2C1 -D97D33FD77B1BDCC2A60B12CF7805CFC90C5B914C0F30A673DF9587F93E47CEA -5932DD1930560C4F0D97547BCD805D6D854455B13A4D7382A22F562D7C55041F -0FD294BDAA1834820F894265A667E5C97D95FF152531EF97258F56374502865D -A1E7C0C5FB7C6FB7D3C43FEB3431095A59FBF6F61CEC6D6DEE09F4EB0FD70D77 -2A8B0A4984C6120293F6B947944BE23259F6EB64303D627353163B6505FC8A60 -00681F7A3968B6CBB49E0420A691258F5E7B07B417157803FCBE9B9FB1F80FD8 -CA0DA1186446DD565542BCCC7D339A1EB34C7F49246E8D72E987EB477C6DB757 -99AF86CEBCD7605C487A00CD2CD093098182DC57B20D78ECE0BECF3A0BF88EBA -C866DB19F34BBBED6634AFC0F08D2AFB2A92578A6F8B4ADCD6594737FF6EED7D -5B536DA9E3E2CADB40DB7C600EA4D100D33C3B92B1CF857E012C4EB370BA8295 -55B50047CC8911C98FE1A7BA6CDEA82D34476286E710776823690AD333DD3A49 -335002F4680DBE1C21174BF016B0DF799B01EB9D6988479A8334BBA2F8DC7146 -BC0DAE9DE3A6453B181808E68A89E0C02DAC6264D002B422EBC1CF14F65D9888 -15EE6D514D3457F7F3C6A3D17EE1DA076F73ECC392D349174DA9E4680F29CE10 -0157E42CA35F5DBFF56BFC3AA07E61A78DBE882C5AB388220C19750D3643E7C8 -23D6673027CE568A4ACCE1D12B1D9E5A43507F4AF9BC873237F65A6B95078DD2 -378007CF0F0DE7CCEF760E19D6D1D7B412EC5D4972 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSY10 -%!PS-AdobeFont-1.1: CMSY10 1.0 -%%CreationDate: 1991 Aug 15 07:20:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSY10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.035 def -/isFixedPitch false def -end readonly def -/FontName /CMSY10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 13 /circlecopyrt put -readonly def -/FontBBox{-29 -960 1116 775}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 -7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 -A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 -E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A -221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A -27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF -5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 -0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 -DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A -71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 -4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C -515DB70A8D4F6146FE068DC1E5DE8BC5703711DA090312BA3FC00A08C453C609 -C627A8BFEF75B4DEFAF34B44B356A516B765AFCDD3F5475B1F928731D09D2170 -B97E40F12CCEDF4F6BB3756C4734F6E98D74B7E942A954B1BAAB83D4AD727FF6 -DF6DC50B2223BCB5568A73A112E4860AD490554E64E780073FF3399CB4688D33 -9E8829667CD6EAEF25E0C7D2D44F2BBFA40E999325F9561514844221B50BC8FC -4C7AD68CA7220D69125C2AF06849A3E068D18733276F0C0A6A2936D3C2C87CDE -59CD1AF148C44F85784A5DAD569F5FF53C061056C067CE29AEF1E3BD1FD8B0B8 -71A0A638CDAC6AEEDBD5337D4683C084BB60B1859E600F59CB4E19C5FC5C6327 -EC544A68134496A9BD0B87D83AF6FDA3CB62FBF0B54FACE1F0E6A2D84B467AFF -0F62DB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMTT10 -%!PS-AdobeFont-1.1: CMTT10 1.00B -%%CreationDate: 1992 Apr 26 10:42:42 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTT10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -end readonly def -/FontName /CMTT10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 33 /exclam put -dup 34 /quotedbl put -dup 35 /numbersign put -dup 36 /dollar put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 53 /five put -dup 55 /seven put -dup 56 /eight put -dup 58 /colon put -dup 60 /less put -dup 61 /equal put -dup 62 /greater put -dup 63 /question put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 89 /Y put -dup 91 /bracketleft put -dup 92 /backslash put -dup 93 /bracketright put -dup 95 /underscore put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /braceleft put -dup 125 /braceright put -dup 126 /asciitilde put -readonly def -/FontBBox{-4 -235 731 800}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19 -38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF -D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204 -EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727 -A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593 -F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714 -4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA -6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E -A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B -E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F -1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438 -452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF -8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369 -5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA -DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9 -BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19 -741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79 -E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712 -E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7 -D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE -C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA -726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227 -CEBEF0C9440DC034DAD9C19FB27A350233112B0A339366B7373CE058456E0E1F -139936F6CC9B50441C2F5994977426AD7DC8C717E737F8C201EA55AD94908336 -FFE9568C0E6EF3202D8CD7B7A6CC203EC601F9A7E2A4395ABA3406503DECAC56 -B03219CEBD0E465EA0F635F26D984F5942E4FB186AB874F3E74CC2F2E378BD83 -57CD1B63C9DE9963587B7457D56024D95645ADE0D95DEA748A6ECC6809C2A7E8 -6A568F83BFB184B31349A771DD72ED3FFE8D16E3138EC49EC6D7524E611331C6 -DB2E16059C9A12512C7208E3B30F04273E20BAF41EF8C96BA4B17F31572BDD15 -3FB7D15CE31684D721083208D7698A31D07160927C9A7CF8B7EBE81A83C0BD46 -9CA06245FDA37F0F2DF7948A20D121660A73E079F4ABDD8F90367BDBBA323957 -062438FF3B28A3880380CDC76A055096D30FABA4AECAF238ABC2513F089A6C4D -67EA0050A34F5DBE5FE32D9E75E67F4C87AD8115DBFC00124DB4D3F4CB62CA02 -59BFE46E90DE9ED306D6CDC51005C233BD39F41B264E2892AD23E8F93C8C61A0 -B5C5CC1021411DAB515039DCAC06E1FAEFA259E6AB07135CBB345E90E2BD64AE -37B9A46934BEB383D3AB1787A2656FCCEA6467ECC2582807E7DED181C53829A7 -1818C3FB17567D81D1A833E0559798D06163781D7895C31B1D81CC439AD51CA0 -5E33E96253064B684F3261EF86AA8452B32E9C5907153BBD692BF8BD4AC45E3D -7161488C716CEFAA695877B03781F64840D49C9C1BCE9D5E759BF1812712F2EE -054A34F2153AD6C953E795B6F40AFAB115C5FCDD1864A85C1AEF5DAF40337068 -08730BA7AC580213881F8AF1F76FC830EC76BE4CE6E090A1F91618595AB6D1FB -A885D04A4E73C9C7A923D813275810DD2B2A3AB4FAE4BDA24FC170A4BCF46E05 -572529A19B09E5ADEAADD071EAC20C5DA884C7D414F5AC5206E87E53989B7378 -BADCEEC6FCDD4B4EA03EA994FDF6A80A2E232B1A007B7554471FC1DA24901896 -9CA84283A02FA1D9176026BC1529147F19D07521A4997B70258FFC03821EED0C -D44BC9C2E67C3CD9971954C58BF1775D61115B75E26AFCC3B7CE6E5ECB8CCDFB -640DE440334737D63F539385F83BBF603B631AB2F750DBAE707F5D008591A05E -9D532C165FA35B580D690138463047F77F10FD4FDC8F724367545C0F5B6AF978 -B6AFA49624EC2AEBCB2D19E9652CC920EEE40ACB479E99C7B615DD7300225276 -D45A24AA2A607E5C90C1835AA562597FBBD42465DB1AF4867E8A1A750F1E462E -D2615B3A9E2AE194DB25B21527307997F12B45F442817D221773CF53AB0063A0 -4B188C90FC3C03EE095014485F988D8663C0EC7E1C7B99FA1CC791DD44C7CECA -600806FE76707EB7D9355A1CF21C4325E2C83651A6FD8399C79CEE9816A4BB2F -FC454A4A800E96D4E964627ECB39A108D418DAA5B57E6C0A3F191BE83A4B4BC7 -48A4B83F4EA66B0E2F6AF0F99FBBC9BD5A53B06967B36222AC42F2F25664E39D -5BBB794C37EEF11E43949250AF8F207CAF47DC0E02E93F9B41C9C11BBD7146C0 -C8994D6927D054BBE65A85AB565027CC9581619D26BF75C397AA56BE2A8DE89C -7A0E4B8E05D6A74092C5625E59BA23F65F1404A17A9DC4843A08B58234AD7592 -7BD68D345385E2B005F2B983FFCEDCE78417C904E181F3B6CF8E5CF236F23611 -D9CBE545AA643C7D1B28EBFBD2E1171057A3C8FDB9D7DABF20558C7ADE8A6B3A -FF9878B26EDA16B0F9DA421281F849A44C76D117F4AB566FE241B0A6CCAFE2BB -9A6436322D1CC54CFB602C0466B70565F9A7F9370BDB1C70F0C33E529CC280F2 -3C8E23EB2C0D25829496B005E711F5BA8E4680EB3CDF115E4D0F89C4B5DE8842 -12CC80649077D5B844B61BF557D316A59513F58FECE657F2A7EF3B0D320E4C33 -B4877334EFC38A29352B0240EE736EDF805C434ACAA59F32204DE64B85CF3D65 -24F0AEACE2F703252AC9A3FCB2F628928CFAA788221C41B6AC639655E39188D7 -A8118CE6697A20F3FBDA3564355DA3DE10EDDDD22BFF4690630E99A77C663AF1 -5D38A0827E81D805507A1260ABA8374501A2CB4F07E2354B2DB7E77921B6DC57 -926415E85A35379E6A0016993926231AB1DE35178E16839574A97E50DE7C1179 -0946A61E65BE962E7AB2A584F8972A2E3CF319EE4C59B82DFF6CBFDCEE8004C6 -1B7BCD417103A82B34665045DAD49A228E9A3F63F1194B952B67F89C32E68814 -705CA69F88EDEF44916D40C22C16F58BEA7A0082D4A579B7562319750BB14BEF -0CFB256E9EA333F3AEBEDA8665E67809576D7F1892260E43C764963B70FEEBA4 -1EBAA29B62BC37AFC35AA6BF57E504ED00650B4EC61A82B6A26EE97D71FDA25E -1358E3BDE969F1B4D04009D55D1B19DB3C8BD1671280394A19D90893347C92D0 -E4D5EABBC0E5ECB168D32491C0CBA1379E12F1E6E160290115C60706AE8C3355 -A88DDB64EC5CC2FA7539E37CCF6941F66C3275273D38DE8C370034D89BB92D1A -B965CEE8D92E4BC4A2733E61B8C766EE4E8C5F5670DDA0CFBD8D2C76B1F9F174 -23B97C475C8B9CA7EF89A2BE521F8BC3B8C8B3AF782AF6B1EB86EEE7A64C4314 -F1E2801D117BF864C72F04BFBBA8D47535772CFBE2EE0F14D699AA33FA7D3EA2 -8AD0718637E0C3027DA0B4EA7F3CB852811E620836A18C70283DC59D90F28CD1 -C6A8668A33304BA0B01C7AEAAC07DF77EF7D21A60CED0347A0C763572CC62DB8 -6F471ECC67B78D065762D99B540F2B45BDE96D18DD1F21B52EF54C3FA1F59C08 -E919E78EFF5EA634394A90131E66165B2F5657D4650B7B716CEC85F70EF33260 -72789B321F587D277D458B6EED9010B8C29B8FD82BEB1990A0C7EAF5A763FDF0 -F3AF986BDBCB86834412CA0929D98AB3FF21D401E9A6E816587F4F98BBBF78A5 -95DFE08D14A7B4B922A49AF62B6F1852F01A593975A06878D34A3925F1650CFF -A8232E51F57565371E0D28303F6240D95D3D948C0A2E27DC60EC9159502709E0 -CEAFE520F27409FE135DE680EB730F3F558F36079EB4189E4750B46154AC9B70 -13CA2182E44A20F4CFD8FB7F8E2FB368233040997C0E5659DE1E0619EF05CBDC -1D2363243BD573BA0A80BCADA2DEEFAE08A83CFADEBEE198C34F76ABE83FA5C2 -F05C1B86A1E1171071975C56CB4C7C0EA35D8449F6D2948F38DE52E67E136311 -51D137A1A58C1098336E57B1FC0A17067CD6689206E12E3AFC15E3577C10CC6A -82D177CB016609881AB665B0B5F6A1A3A9488F3C01E834D91B38DD6BF1B2B044 -837ECA3D07B8B512B4394E28B24B7477D710C8B0CEBB46F703EE77D5E56BEFDD -1F19BB594C69802B39DB67169EC082340A20EC63382EA62A93310E58C201ED68 -D805355BA00FB8695160EC7CD16F3208E69C32BD6A0A965D0EBF2C8F4D54B096 -A82C5571064EED0F461F5A6A88F1A81A30CC9F9C8FC6CB464EB348261A5483EE -1CF21254D894FBED7C83867CA3868DD97A273411FF8BC1DE955FA12BCD72C16B -B5C7F36967FC770FC35C8B8E8C91C2045B1EABCDB0ADFE148E173503195BA1B2 -435323775EC6E37099C6ED935DD7E3737AD6F112D9890019F9B949C6B20185BA -75E892A5481CC5F8F63E0ED8ADA4E501B451F6E491FB7326539C369A3A0790F0 -2F32ED0E882AF2D05F786E2F65531DCE206DFDFE1A477C71A97CDA763E33F864 -78CF67C33B0FC431BD601225ED92B2B986832A94362A9AB4D49F3FA46A82DC3A -58EFEE09DE84EC7B7246160B867A8507A6BB985261A20F4EDD2D764429084294 -C185B5EDF9F60C4C15BB718C2732AD751549006A5B359C03C15CC605591700A2 -603B101F6A6D1F9BE767D7BB0C1454BF78274CD777525C2966A4C396A3598838 -D0C417953CC8B46A560DD721B2938E8FE23ED056DDCD5DC371983BBDDFC76DA7 -FD598F62B0433936305BC861EA69A4E32B417AB2E9049ABCC46C4345F9669741 -8A0357D30D35D3EBD33CD11D021F5BEDDEC8E62ABC7F356E1C6FD7E1AE402AB5 -C0D624F0E5CBA67779F2460E2808F3ACB78164D8C1F23058C7F3E364ACA8BB30 -49F58FE6DA46AD4241D62EDC34099D29DBE9CBC13907D51374F757C907AC9D3E -113B7DBFF94040600E03D24728D49FBC5E5BFEB7F179C27EA0D6CE7197701703 -44B7A2B3ABAE0EED765B9C57E28612316B9B6D56CEBAECC05D478AB41C685641 -D12AE8A5AF427FA4E4C75E0221B0E2271F3A49BE14C3B97E36E80D8A77D45BEC -C09D87DEB41CC5C1112410901ADA51B2F0852C5FF9CBADB47946B3DED2B6C3BD -264BAF27319ED478EB6A3146C0E50E186FD80E7858675481F9DF4A4BC5015AE3 -4E05A1BECAD22851660E20507E7D600AB1CE3C1AA48BFC5F050ECF2AE550856E -4B99C1D665A6A7FA28A9C329073A478EE162499032FB51E4B3D5830EDAF10623 -DD8D478FA68B06420C29F484BB8DE89763AA12B685462B56D6945401BD0AD7ED -0590DF4EACB677982F261448D1D35C72A1BD8D2FD85393CF57E33AACAB30A809 -B092DF30CA7F7E7B80E423009DE411182E63A73D6D14BD0E47CF571E5440FF1A -D8AEA199831A918E485EF589A422BB7A4F6A2CF5EAFC028277F28016693DD955 -D0B2B171C1803C7FF2BEBFB96DF72A4256F40CA88A27B7C174826DF26BE0E9F4 -52742FB8ED72D10EBC3378C3D4F75DD787684AAC74055930E53AA52DB9212C27 -514134DABBD2C488B047460AC2E9E3468671A716D790EDCBCA4158B48D590D69 -6852E057D4CA5116BC532420BC32950BA2900C8E641D63951163C34CC89C644C -54AD91CDC59660B4AAF0700AC478222387F3DC5E249C62E4433D3C6DC997EEF9 -45784FF75384D73CA044F7A6B1ECC5F1202C2C7DBE5DD4ACD5E8D7CF5A057D58 -0BAD218558F76ECC99251B11D2FB92487FD6D7A3AA8F16FBF489A046487C8001 -64A8FD9C2D0373BB751188335332516C2F999BBED75DC6AD90CE3971706180F9 -55D8D457BF68CAE5F0BCF71EDB20B02A5A2EC92CAD3B971E9F5854BC5ACD0B5F -DE882EB372814DA4E91EFC31FD0DA662AAAA1A69EED664ABB5E418A19A459625 -E12E85E52FCD8ACE314947162767E89D9F150BAB26CF80123938D8CDD901CC42 -BC72035A3A5EC261111A576106798BCE708FCC8EE214F2946813D955535B65C7 -FF875911B2242E7042AB34CC8A722637D8F324C6FDDB25D9DB2FD2C666244F39 -74541C5C716DCB61CAD8423C8B3402D6C6E003200A4883C213E8580734F41451 -18ECB1AF8FF6505FE28D5DB6BC742BFF13C229813196277DD6499B9D0313EA3C -2F44DD9CDA19E20898D6B74A93FABC51BFDD49B5F4998A273C31468BB89BE757 -BDAE0DA6BD022AAA2F0584C916F7C837F0E0883F6B94823180F9FF55EDE706D1 -21CDCC806D00BA61D4A4AE33029B4F640E9D8226B8BC0670C5E6DF2EB062DE71 -2C57FFDD35CF8502B07A52B52D6D14886A010B5567185B790207D5214ECAFC0A -0A55803E08C9BA4B8D002C7310D22F256B8232DE47B30A131720AC4870E4B85B -6F56F74FC851E5709E914E6E46793748CB758DEBF3ADB83DE06EDD7EE36C7A21 -01A5355221898484015CEF9F9EF6F66803DA073C38CB4406BB738F57D1AA4E8B -6002E213E26A1F3206E8B10B7AF2FB5CDFA840891CD12C816E7EB41D1A7EF62C -D92D51C085EDA95874333A1ED73F63386D5A9AF817F7E94DC3BC489A36730800 -8DADACACB5CB2749D8E5F8389F93C1B596242C2B9317E26533414367AE8739FB -3C7097058371BFA929594E972CD18837C892DCDDB4384DD2133622BD0E48B1F4 -3426A7EC61CF550A6CE1BF747B7FD53DDFC95CBC5F50112B97CFEC1406816763 -B2321D3B3A9168FAA4D888BD4CEEF539B4DE1810F77C0201FD5151270D8FA365 -6D58734CDEFB41A6F0F26BCB78F83A189A91B7982F5C16973E407A50BFEE424B -AF4F1956EB06FD15BDED6C6A10F7CDEE426FDFA4B03D15BFB1CBB5919EF8DCF3 -FD3D7CA45C2DD173060FCC4AD5EAF86B1966A449B2BD255759B16D0BBDC3EB32 -9B0A9C7CA05D6D5232BB0441D182E52895FB7BFAEA92FA1DB585C78A8EAF1DD0 -13AE43CFBB182EA0ABFAD44FF4EFA5D3BFFB53945A7D36AB480645046F8A032B -12DD38DAE64C6A6B628BEFE7E3A60FE551E7AB07A65F3C57D4BFCE9A8B5BF8AA -F754FEA7EB86867029836D9EB89E75E154E34814E86036E279DE57BD2DB024F9 -EAE8E0DB7A36D6E01484AE6A42560189A24269CFC2EFFE3FAD0F200411D75591 -52F7FEECAF445BB88C3989B0E095C6C50A74F66221A16D990C5EABE9C2E979C9 -7A71EF59C049DAA808A09955BB8E5D3F5A266F552A9C97FBB969F87348A87CE0 -79BF91312198EC39246CFB3F30EE757AFE025B54C5880A6DCB85F67A36DE92B0 -8791F5955BEEBA9EAA842005D2A1078016D7ABE4E350553A2777E050E769A7EB -2E91FDB7BA1D89306D0D0CB2089DC7CB2E6E8587E71A96B8DA4DD6281E20C1B1 -5F09FA228F6B99518815C0CD67795991006DF4EC59C62F083F11513434C0B469 -0F899EE4DE7481E18EDD0FD4808F0E29179EDCE6A85A87081F060AB738A0B834 -CDC1F889127395EBC582D8EB68391D779D4F25AD0E38945D53A836733F9B4B6C -8874506F34DA3F1BE2999FDCF0D830A01CA0511605EBBA9F5002B2F0065ECC89 -9231086688B187E0742C2745CF291313FE6C95B2A8F09F38686B9CD8F15A3BD9 -683139DCA0CB799A8BBD4DEC071D17119B80C1B15D9AA564187F46DB9DC5C885 -05D4CF7593FEED08AE35852F6F233B8A3888E1029F5F60E39891A7CA92196429 -645CC8545C24A0EF4B71F86266F1C03D578D66662C560B54F219052433C99E20 -C7476D5BB198568B6282908A6B972589FD9DF13B291FAA6BF80AA07EBAE0DADB -2A5C290163EE73C4F159DB4465797447517183D3016560167789B3FB8DDF3680 -0AD0D46B59B05BD0F8E291A970F856C9797AFE19FE207F124D65A987E6BAA0C3 -9824D499C3A9E0EBFCED03B7E8AC0EEB7EC4B26487A864E8514F91A4B993BF0A -D2DBAE348926515E92CAAB6950B867701101DA64B59DA1246441399AD08E8926 -D49440109403612C41427CB4C3450CA80EB07D8674AD84F7899AB32A18C3351A -1645ADBCE41C2B7BF5CFB9376F38F865FB980B94C042AF0D1D8476FC567E7114 -CB300784A257F39D85CC8EA614EA0C48AD378BF4DF1A2767E6842234389AB724 -60AB73BC51F84542B59A5DB53B664D181AC5A1A5CFF2F3971CD910F5E5A5CD38 -D09CEC52616232E8E20C4255EBCAAEF1F9192F10EBFB34AB54C8D5B8D36B579A -5421CBAE787A0655FFACF05AD8E8E8F689B36064F058BBB26D0E6454C703B39C -F795FECBA78C88842B44842049E90883A88039633D876ABFE54202F35BD9F9D3 -70A3E0C31AA08CF8A8966D1FCADCB91EBC5FDC24ECC9CAB104828A931F338C4E -AE87AE252D0F3403E14600B4FA5CD4CEE37DF8C7A901444F70E3EEBB2C4137C6 -9E3EC4FB00D1313C6EC1C2BC5380F3434CF5F2635D424DA21E6316EA75FBA5CF -7EC2CE9631201BEDF7D7982D476ACCABBC5A452B0C1C76A00B1B6AD23001C1A3 -C494E6B82B98EED261F19255CAB52A09448FDE4E523E89F2B2773863EFDBF526 -F6415FD6DF91BCFC3D93E95EBC6A53D3AB8EED7563939DFD84BF364798E656AE -FF4D41430D9FCE65BD2F85125E5E42C1193D0235108E6312C7B97C1FEB7FCD6A -3D79F70BE07093FDE9DC099B282F3B7F2A41C67FE72E86EC7818DD66BCE93E46 -DD9AEB93A25FB47AC96DEEAFD80BBC7114DA109FCAE205B1D08A3AD8641A400F -F2B471D677402C2B3890EA01F971C511FB4DF6F5AF9C68FA87E44977072A29CD -4257AB3F7EC5B6804C20D4B127F02832FDD5666AC4FDD2C0005649CC6E4F914A -9196BE5AC7D85D4767796CB01542EFDFBFD1E51C9C415371E4A5F3D68BE2536F -F8EDBAE2521FCFC34A4274497638D4B9B39C14CD6E31C95F32A2CDC9F78917F7 -0C004ABA38A32EFF4DA64623A454C9755A43047355D0F187A779275B00FE5764 -30E1208D1E12CF6D908D84758F236BA6185333B56AFCB2C1B4677A7B6642D4FE -E229F34ECAC2C9DE021B051C5E7D6DECF456D161EF9E3888C38E7F477CDEFC01 -97920D696B2722340A5951953B2BDDF103C6D0C690CD04445F241CD531C81838 -ECA1A02C4ED91032106D142AA4B899ACBB21177D905B42D04A280C0B61A0F8CD -B510DFC46E922E8FEFFF31EE58AC1BE7AF1C70D2BF11727FF8C66D628695067E -E6EABBA97AA5A75F955FD9E9A1B21E71A8078418766FC4AF8431B4E7C674A6F8 -4E82447B81F15D6703074BE8A13BF13399722CA91E136A552E9764333F41FD8E -2DABA04817F8DE361C2E7BC23E9A963DECE999A6CBBEC7DE08652A8888AA1137 -EE0A0E4032A4B400C9A2488A55D8E25166A8E9805CC80E7D6C2D1E7C071C2E9B -F2E652536A4591576D99BF1DD118244BA09A8255CEBBD18FEE5C0175D4177524 -9309626DE05FF0144BE9F2EB05FB51CE924EDC4A5C6376C758A7138BEFAF9BAD -C89BC9834A8DF3790256119864AE0652E92FDAAE5A132557910C307C8C0C3FDE -EE3E0C17D32CB28B6A21B8DC6ED6525F8D25EE0270704828DB9006F514EFB75D -0671DD3B138DCFB01156B43D5B775B78AA95CF109628F5FC501927741031E60A -D46466203CFA84D9A8EF065C43101E8FE1BA60E82E01A9CA67D7329B93A11260 -4CE84119FA0CD0E41EA3B645CA3F06059E7895526876F7C2110264C84B7681ED -0784F82E6A160B7D3A6C520E430452B18DE47224A861D1CD872433844D7BEC16 -514AA67319F17771D796C88C2A928514D4907A1E58FBC561EE444292AB0A4759 -F809BE67A4EA7F152BA841FF3C838B9725F8F89C5EF28802C586A542131F9B93 -DF668AF74A34287FD1914BCCC8B3D2C698A8109D21BFAF245274BA33AA71D9C8 -531695BB46EA91917C40FF37F46A2A69D0AD619CF7EAE936FA1EF33CB85FFF35 -A9E78CEA2C74AC6148E612E880A58DD4FE573D6A10A0EEECA7E5DFC219E89E0D -90843757F05759785D04F6F3E7DA269888170A90488097B5A3DD1B61CF3B618D -05C68B2940DE15065AF933A83BB9145629BB3759B49F7C86D70E5282B52D3CC0 -331FE4C8208DA7005C2E44E683E24FD0188655DA87D01C8313FB35AC1EE14448 -B1681BD5ED81F7CA640248552B7A3EFB65ACA6DC132D09BE6B608E439A9DD0AB -ADF752BAA226A75986D226714DA5F1AD47B8BEAC12E7E32A0992CDC54CC054B5 -4287D8531E25C390CD8293776D82149E60597DAE8B2E6D332D04AD39A8786E38 -6045D1417B3E88BE4467A0BBB146C04632E5C0B7693B0BFA5512101462605402 -E089EEAEBA41666BA74FC026C200A6DCDC7781DD9A3D184C71CABDCF53CDDDBB -84A4926F982FA96E3A14FC3ECDAD8D9C1851CADE2BB68F88E736B4F6231366E2 -D31364FF60950EE333B36A0F02A35A355B4271C4A6B067C979E440BFF3FC69FB -CE0998138FBE60ACB07A24261DC334C900BB422328D3EEB99B8D01FBEED832D0 -2D44948433DE5A22F0701447E03E7E6280273B87BC477C8C90AABA2883C2155E -F130A10ABB57C94E43AEE5D9D65DA7D816C3289A2FC470215F4F9C42699E52E4 -D3FAD53FE861435C255B887D7AA50176BD2E93418BD0D53BB0F86D267207282C -41E2AD75BF872A2FA4C39A9DF160244E592FD344BDB3BA471DD7A8EF658605D5 -51223D007026DB71F97D9AC1AB7955015C9A4C4317E9F9E219B77E2C46F97741 -78ADE503EFEAD4243473D329B84C60BB96ED07D171C49D2801762C40EA7BD7C3 -B216A1401727CB6E7E7233B23CFCDE2C3D62462FF15AB69568A0BAA15E10FC2C -C33EC5E22A4FFE258E73B59D28BE7AC90A9DE63D329353B165087D8B58194815 -9BD0A3A335E7DAC0C49B880C7D85A242D5D562F2AB1087E1A46DD94F895B074B -F632CC49C3765B417D6CA0DC7A355C672EA4F91DFB751B468FED48090BEB0232 -0959CE3E6E40C197DF33C03DE81999F0435D46E6225EAD2226438A0E19458BE5 -579699FBEA9BE41F3D997DC4CFF1C7591289617BC2F2AA7B3A895F025E2137EF -B9FA6565C04E516228C59DE70340C275670404E519409BC8BAA33B2802992DA3 -A721FE0B5717181621A0161811DEAB802897A06B807B2035297A7A419D3D0998 -B30D68F6B4D586FF370A0EDED183A45ECF4C517B786A67E15FFE4B6A83CA0C8B -6F9A740281F668009D1918BB427D1B34C7355EC2D4833778CF284A21A753EEED -664A4F84173CEA11870081F1628850457EB8AD54823C01DF2D15A1CF4B33E0A7 -4B3F3310011E6625CBBBB8E775A650F0E0631F8897988BC2EFEECB8876B48DAB -156CFD14BBD7BDF14489A025703DACEE33A25C9D9E552FC10EB121BD990A093A -D9BDB0334A8396E6B58E9C9285F88FB9E4E990E347F532AF0827D9F0970FCC93 -6D17A43BF518CDE57DDDC9FA18381304AC09C7E255F76D26447A1217C70258DE -6D3078E3128216FFC5EC01A82BE8D3958300065A227F77D236B6067222E8CFD6 -208EE7ED58446D94989279689241038F67A891614078D312E5F90783906578A2 -C818ACE8990471741AD58A7CF126C552AB44027B6AADC2501AFA286B5D65C7A5 -B6463E73BC9E888A0B231351F9A90E5991C4F0E2920107B3D966ECDE01763FFD -DF9D0635327242732B6AE089A3D7FDE1742A7D74BD0749684602447B490BE0EF -E01BBA07497B817CF0F73D4D2F14A1B29505311D52ED90F0812EEE440D815B14 -CE44F3BCD5EA5B822073A775C137A59DEED383F80C16CF859D8187335220FB73 -217A045C39B0C3C6661A4D536880DDE06366F403F27DD632BF659435E2411A08 -C30016C471B4206531776F98DCCDF313E62F08E93EEC8FADA4C6B5EB22D5D832 -FBB0DE8BCE851FE3D6D70504242B2E720F74AE49F0DE3CFF787E9CCD3D1502FE -1622E86CBF9088F3B65E844145C879B2CE74AE24FDE843B657F9B8876DAF23DF -81F133F5AB4652331126F0ABF1C2CA21127CC1062C06D1C430A12740DE92A00C -B95A50696164F5AE380C643BBC7E4982881F17BCC8F9A8E3B5E38E6F4E32419B -19CD0D69F986F5D80B7620E42509FF0A3E4EF0D7826E543D0D8D80F3D3C0A699 -4B5CDD02272D224A0B02CBADB71524EBBA68FB57FE024A54B9DD7A74BB6BA892 -EC5241A5C20D5BDA591AFE863BFD64B63F02C77B74EC2AD5D39589AAE2245F0C -90AB09FB11A832F0791FB9FD8F892ADAAFB519BD8EE3756E6A5E1FE67735C694 -08E7996275F52F4AFDB24FD73E8F5C1B34296D4F41CF111FF08E88E3AF691122 -F196D4DEC545F68C76A68E4DE57C2CC706D0EB631367F288A4077044979D9E5F -9EEE710C2130FA491D114A742D3C0EA68D50AA44B88C66EFC1F281AB320F2C8C -800B1A4A4708B96CCFBC1B4726787096D3018AA87B2DC422E563BC4751D30E2E -63554771794D0F4F055C20F20ED3CC9E20ADF726A6C5E84D7743B5F0FA99A0EE -4958B8D53948E195ADDB8B8E4F40E387B36C14806025A5D96DB4F6B9ECAF177A -1A0492B360759EF671DD4616E25746919511057F40FE14F69E4F4BD67BF11EAE -E89026AC1DED805FF27846D642EAFC51E37C8E94C6B4141170988E314D8988F2 -00D56A9D1A89D3EAE006C604060B43F328A08DCA73991776A314C20441FAA4FE -077CA7F6ED2FE421E90E83ECEBBEB42187DB5D3EB5003A27D69DE33C56AFCB9B -25BAFF5F4F03E8CE5AB1A619B5973FF9FA4F0AC0DD867F7C0682609FFD7F10F3 -B7E6ADF7A62368DDC8E4CA4CEE3DDD15F02281672E41FD6C2FBB00E08EB201D3 -233E7AF3718BB51996C5EAA6B848E1076A825D8C5B0CCA4A2852A6C9352137B7 -D40F18FAFD9085155798496DE75F33E972B040B6197692E3E6D43CBFBE9FE71B -700B062083A2099E74D90F3E05D60AC091D0EA1B4C17F383ECEF98D6A50B1D91 -A82741FD6D9AFEE053B38B7CE59DD5F2782B5B360CFF78A09DC6C2093FF58127 -CD74355F7FB083746618FF6B61ED1E12E07582FEE7C78195C625BC7E90262C52 -8FC10144B4B6F99303ADDD66CCC93ABB0387E1E61C90CEFFCE16DD8CE4F6B6B4 -4F7ADBB0111456B7C2DAA99C5FF8B04FFA77DBC0D8063796296D8B8700544437 -0897BA71750E947209330045EC9DFAA919E64BCB8F1B56985D15DBA491E8E2EA -14FC8B31CD552DC96FA440AE98D04954D3E7E5BDA0681FA27F32F9BFD5D4C365 -128BBC8AF47FAE2039F90D0F30D3DCC141B99DDA8151E0DB243E6210A1835CF1 -7154C96DBC2C723A7576580747AA18452EC87ECC2F55F41935C8FEB80A690351 -5D3F3E67970FA93DBBD626A519EFFF4756B33641F56F7D16B7712FD09C726572 -0932166A7BAADA3B47E725D74564A155E0BC1CF8E5BC05F2D4970ADF60BFF161 -01F6E31EF577F8FB7560B2CDF775834A2DEB6B337D096EC2BDF113ACF27E2A79 -6E670C2F1739206DF052D43619D20461E52DFEEFD7A7A7F31690B71EF062EF31 -C9FF3205FDBD1A2A3DEA550BD3B6373C59F4CE5CB845F9C6297FE5641EB90231 -D4F6A2F919164779CD527F1C142AD7E47A63ABC26DACAC5C278EF4AB6B4121CF -793443E1E171870E95A2ABE098CE0A147CD373660BB20BF4ADADEFF4642FA1C7 -398796EA9FF642270D6176ABF5DFF5BB002C2C01A9C42DC3FBA1453B6632AD67 -A7EAC9074CD11D2CD46675DA0F910CB13BF42A155DFA30FE582D4FB19C6D45B1 -2F3C92947A8A2B26B81CC97421A1F5946C42171675F0A19464758E0D64A9D324 -3E3C45CE9E556FC942572D4508485E9543239F26C084D0D659D5B301928F014D -D8574A69D9046A2A4FBA6C993341C118E0AA7366CBC7C45EF717D6233B9D3F19 -C46ED705D06962E80383E102896587999E2A9F04F020348A0EE5EE61054810C0 -26C53DFD608E885B6F2F2E2AB9E8FD67E6057D42440102D5CE2AA06982B16A3A -6A9284F59E13EFD3EA8A5B1679864E055A8783FE74E4B2A28C5B968401836C83 -0B94AD89084B0A31B577E1CCF157851885E41FE7FF0D5D218EAECEE2D2130A32 -2FEDEDEC8B9F9223CA33A47B8CE042DD7BD35B5B24BB9F115F5D5204BCC0857F -CE329655D72CAE8C8E15F53740727441F8B2855126BBE70F144E989C327173AB -6996AEDAC678F5BDD16A92C2837C4EFCDCF43804BD2A145DD54170B0941BCE81 -A17771E520388AC4D0E22D6084BAA83F1F4EB1D8B2E0CB84954EDDC8E9B3A616 -ED3A91CEDDB972848E83E3AC3ECE3BA865BEC7C96A4586955682E4680B4C2364 -8054ED58647C18A3CDB8AF5C736C1E5036CB7A09CAEBBC6FA47B698DDF0AC81B -2407B47FE67EB74B7DDAEC1AA8F0327BB005D4E375150D8FC69444FDB6D7B68C -39CABE4C7A0FC3CD161843EEFB1A3003F109C7F187781E19CB060054FEFA21D4 -C9778A937812E8F06DD70C56424D57B4441A8D118769587B1E49F090CD179081 -3C33AA3309F3CBC69108104C7F68BA89C8C1D503507DE3A2FD2C81491DB1D511 -9876EB1AD7E66FCCC675DA4BF25F150BD3D0F622AD73C6C805F3DA6B265CBAE1 -83AEDFF42461D63EA338502AE6261988068E1C52E5EFC5BE1D0E017C2AB7FF2F -B27E42A4A7D8CE86CB6F36F7C218CB880230EA737CC971E8D70825C7520E5E33 -C2110E3E26F51D30B8F058228E5D2C45966D9107725141908E74BBB213339E7D -7437EECEAEBAC39BAD6A5595EF66E6B4BCE2C565596B0FC5069CFC1CF8B39600 -EF3B2BA9222991BEE9C55D4434AD761684DA2B61EA399A2B53A2D2E89CEFB6B9 -D3606854873444F53CE1A2230E3836B1DD652464551AB8ECB94CDD297C2AC906 -35B980680E12A891D6F39DBB7DCADF853394CF46FECCF0C80D8FD0A82009256B -22926139A5CF6A06FFE6F4EF6D1843436DA4F3F2ECB504D3C91961DCB8F78ADF -6A8D05D40225E125F7ACE0530B28BD86BEE2499AA4B62FB53329AEF6D66B1428 -6731C3E6A5AF5926F9D407E9999FCBF9580627F25AAE06DD34BDA8CBA179634C -8558B9E23E3CDE30053F8763BC64CF595B25E8CDCEBE15915E791E7387A2F979 -20A0EACC18A38055AAF917E6C768981BFD94380D7C33EB04086236ED74FB3B50 -56B9892412BCA67DCDD27CC508CC94AD51F7FEE2D6133BB310293BA9E36DEC27 -E014283EBB9A46DA887CAEC8B98E64F9A4441D254DFB203D7897FEA54E8B6A95 -2F2D00B75E4AB45881DC1361C37AC1031AB89F280929DFB9FA92BCD87E065F50 -7D0FFF1309AD49D259D59AFA825F892EE7FB303DE51AED493436B5B0BADC8941 -D5AF414E47B3D949C5411A47E5872731E797B385AA807D2D6651A78E45A998DC -21DD8B1F94370ED46CF165915E884537DD1B64489BDE456028592EF0C6041E59 -DC634B564B96B3A5861497DBEA1F6F06EBC125E74C94BB85022343A2BBB7B725 -C2AE27BA791FA69EEFF1B0DD3BC5B80B7CF56B52729BAE6E54810AC9D00C29B9 -C9455F039CB5EDAABA887F8598EB390D5D28AD387F429321A8D5FAF61BD8DCA8 -A25ACC7130C80D9EFEF633D47BA80022AA9CF477EC073D2FC3CBC4D685CBD238 -28E9E89BE648DEA20B1467FCFC4838141BC6ABFC046C5A80C250663637CB356A -B58080178FCF7B78E552415D071D11625081AF4708E78D843737B7357E638DA9 -501BCEF113EE961C84339E91202E5E2AC57BE8C636141F03A9CE8E97C7C8F374 -6AFA335DCE0B6B68C7D94C1B6D0C73DFF832580B2D1B1193427578DDC1895DC7 -1A9D8B9CE3157FFD118CF111BA33F1FBD445DBEBC1D7CDA5713858CF4CDA224F -38201BE52F2947D08F028378E787A2837AAFB1EB738EBEF4EBF2B34BCA1F0526 -8295CBC517E30CE49B86F196C26D982FFE650BC2B276583D716D1DCAF24267E7 -A551006687684174D71D920D7C1E2FA12A7C8F6B5CD4E77942D6A96A112070A8 -BCB56BCBEF93A1CE255984B93E92AA8854690A8AE7D416450869534787FDCC5C -23AAE383E05AA31581E3F2F31531A41F516DFFCCA33BD147F100CE8C11D3D3C4 -CAB8E10DF7425F2FB07B105F60BBCB8F7429201180B4ADBBF92B992038394E5F -346A7D4B3C12CD9A2A50884D1A465BCC81EDA8D081108DFF1D8BE67BC9C39812 -12B65A712D3ACD7527976CFE1276BEFF410D08043FA52A3EB2C6E363D5E86D24 -3D464A688F9482A7937D9F6F468B2ACAD117378FC99D98238AE59DBC628C2EDD -04B9D0A1199A8979BDC68D0B820C22E65937CE89170483FDF9C4B3BD8B17DA90 -377561E6D1F40ADC6549A5FD336DB23AB4852E4B696DD1DF77D9C0F70F61335A -811EC0B0D8D9C3C37CD98A906F5A2B4489C29DF8F47FD4D3E8961458135F6AA6 -77EDB4F176F23CC16D18FEC0B3911F6C75AC0909D42974887641F376E5B3EBE3 -B20B18FF22225F0C21F795D202B5F942547F427617618993AAA2B32A817F6572 -69B1FE76FACD292337F7F1432236C168A0F0D51CC6507CA9D7C8F77C784C50DE -BD2DB783C82D68EBA9943D389E442D231DDB44F37C185B7957B623E2196CDE38 -7BBE1072868E5D91D6EF1F06BCAC2469686B7155FA86710AF9513641E0F8E260 -464C85B44E51A7C3FB93F99465D4668F996643EB238E3E550610246E00216666 -A49A3FDD0CAA12DAD03A3F6222E97CF41FAD4AC3687CE9311C742E1E7B4988E6 -F6CD130CC8187873CD106317C2217E590710FEE707DA5F2DCA5D913344E2E499 -74D0D0C519DFB8B734EE6CBDA83B09AAD538CCECFB665FF3187EF0F649EFF80C -4498A585716BCB9EEB79CE45FC74A25D59F9F254C0F1901A655FF43F72BEE91B -123E2CC86388FAE4E2B00C53B6137C649650D097763816B60ABD8ED1DE810EF4 -F1A080341F88874B09C1B0693653566681BB35553CD0BF07EC5322228555D459 -AC9C0E77D320C0AFB57FAC1525347AE502D6862897B7CBB9C35B7799D18EFF32 -6DE271A2C8D8B7C0929E69477A77F37858ABC14BCE690230AF617BF8AB621689 -D2C9676B355C672EA4FF369617DD0D36845DB212AB7E35FA521F8F2309228F8A -A8C47A01259D8E4B7AC730D853357689F0654969C4FF6E8CB5331710735672AB -CFE17A87DC58953C778736AE0CC5DB0D7CFE41AF06EF6DE0CF11B025D85999C1 -AF52A405F3081103D5A219ED332444BAB77D418B6080A7A4A932000009A60745 -AF4239B9E19485FF61A1FF624621718A798C370AE385F6F30CB522ABD981278D -A771E952399ABFA74DB1E7505ED748DF4A794333C135AEEA368AE4FB80280565 -09BCEBC737FA30D660117415EBF6D883CCE0B9B52562424D2B874B1B70787222 -BD13ED345A6CB186F1B3686561D4E757758DE9E3A0B3287635BDDC69A3A33F27 -5BD1C166309961307C4C3FDA4D8BDE6E08D03B941FDC40105FFF53226742613F -A43AF882FD2D142187D698B81571374A3EA501F6E6750261D2AF3C737532FA87 -7988FFAFA6A95706BB79E6D01A8114E48DC93BE207CA1037D83881F29591DE1C -AF9098347780DC77F393469C7012C42D31A1D9CE4AE2FAD4E3948E2A50AAAE30 -292BAFA6F980DFA687FFBF8F72B4A0DA16671AD2CFD65DC351D3FE3AF51D666D -3E0D56B5DE2A0AF4C432243E37BCA75428F6DDF078ED501F9190D1B13085EE00 -C65067368012314DD1CFC7BC946F626F8C1339A7922FE1FE7A69ECB6DD695FDD -1D988652EE8707D2909C5D8E0CE9B4998CDD755044450F314D760CE3128CB512 -F852E26DF056F7B5E3A2A54DDAAF6351193DD4BA2923EF40D6388324AA7913A8 -49B4EAB2E6E552DE7829C0CC6FD60C0F9109411B9EDCC8ECE40E96422F0A871A -8B2EBC60F3D77F9F25802CCEBA7418E8C1B9D9B9D64503F96CAC529082AAE772 -2B0A0A7E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -TeXDict begin 39139632 55387786 1000 300 300 (rluserman.dvi) -@start /Fa 134[20 3[20 20 20 20 2[20 20 20 20 2[20 20 -2[20 3[20 97[{}13 37.3599 /CMSLTT10 rf /Fb 134[20 20 -20 20 20 20 20 20 1[20 20 20 20 20 20 1[20 20 20 20 20 -20 20 20 20 20 9[20 20 20 20 2[20 1[20 1[20 2[20 1[20 -20 1[20 20 20 20 5[20 7[20 1[20 1[20 20 20 20 2[20 20 -20 39[{}48 37.3599 /CMTT9 rf /Fc 167[31 3[30 23 2[28 -1[31 38 26 1[21 1[31 33 27 1[32 30 67[{}13 41.511 /CMR10 -rf /Fd 134[32 32 1[32 34 24 24 25 1[34 31 34 51 17 32 -1[17 34 31 19 28 34 27 34 30 7[46 4[43 34 46 3[48 58 -37 48 1[23 48 1[39 40 1[44 44 46 8[31 31 31 31 31 31 -31 31 2[17 46[{}46 54.5455 /CMBX12 rf /Fe 134[24 24 33 -1[25 18 18 18 24 25 23 25 38 13 24 1[13 25 23 14 20 1[20 -25 23 9[47 1[34 33 25 33 1[31 35 34 1[28 35 1[16 34 1[30 -31 35 33 32 34 19[15 45[{}41 45.4545 /CMSL10 rf /Ff 139[15 -19 19 3[26 4[14 1[21 90[26 12[{}7 45.4545 /CMTI10 rf -/Fg 134[24 24 24 24 24 1[24 24 24 1[24 24 1[24 24 24 -24 1[24 24 24 24 1[24 24 1[24 2[24 14[24 24 1[24 1[24 -2[24 24 24 17[24 24 2[24 5[24 39[{}33 45.4545 /CMSLTT10 -rf /Fh 135[28 2[28 1[21 2[25 29 28 4[14 1[29 24 25 1[27 -1[28 97[{}12 45.4545 /CMCSC10 rf /Fi 197[13 58[{}1 45.4545 -/CMMI10 rf /Fj 197[16 58[{}1 59.7758 /CMMI12 rf /Fk 135[43 -2[45 31 32 33 1[45 40 45 67 22 2[22 1[40 25 37 45 36 -45 39 11[62 56 5[63 1[48 4[63 51 53 62 58 1[61 15[40 -49[{}29 71.731 /CMBX12 rf /Fl 242[45 13[{}1 45.4545 /CMSY10 -rf /Fm 134[35 35 49 35 37 26 27 27 1[37 34 37 56 19 2[19 -37 34 21 31 37 30 37 33 9[69 1[52 1[37 50 3[53 64 40 -2[25 53 53 42 44 52 49 48 51 6[19 4[34 34 34 34 34 2[19 -1[19 44[{}46 59.7758 /CMBX12 rf /Fn 129[24 24 1[24 24 -24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 -24 24 24 24 24 24 24 1[24 1[24 24 24 1[24 3[24 24 24 -24 24 24 24 24 24 24 24 1[24 24 24 24 24 24 24 24 24 -24 24 24 24 24 1[24 1[24 24 1[24 3[24 24 24 24 24 24 -1[24 24 24 24 2[24 24 24 24 33[{}77 45.4545 /CMTT10 rf -/Fo 131[45 23 20 24 24 33 24 25 18 18 18 24 25 23 25 -38 13 24 14 13 25 23 14 20 25 20 25 23 13 2[13 23 13 -28 34 34 47 34 34 33 25 33 35 31 35 34 42 28 35 23 16 -34 36 30 31 35 33 32 34 5[13 13 23 23 23 23 23 23 23 -23 23 23 23 13 15 13 2[18 18 13 4[23 20[25 25 27 11[{}81 -45.4545 /CMR10 rf /Fp 134[51 4[38 38 40 3[54 1[27 2[27 -2[30 44 54 43 54 47 11[74 2[72 3[76 1[58 2[36 1[76 71[{}19 -86.0772 /CMBX12 rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 300dpi -TeXDict begin -%%PaperSize: A4 - end -%%EndSetup -%%Page: 1 1 -TeXDict begin 1 0 bop 75 659 a Fp(GNU)33 b(Readline)f(Library)f(User)i -(In)m(terface)p 75 709 1800 17 v 936 757 a Fo(Edition)15 -b(6.2,)e(for)i Fn(Readline)f(Library)g Fo(V)l(ersion)h(6.2.)1559 -811 y(Septem)o(b)q(er)h(2010)75 2467 y Fm(Chet)22 b(Ramey)-6 -b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75 -2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 -b(oundation)p 75 2570 1800 9 v eop end -%%Page: 2 2 -TeXDict begin 2 1 bop 75 1512 a Fo(This)19 b(man)o(ual)f(describ)q(es)i -(the)g(end)g(user)f(in)o(terface)g(of)g(the)g(GNU)g(Readline)h(Library) -f(\(v)o(ersion)f(6.2,)75 1567 y(Septem)o(b)q(er)e(6)f(2010\),)f(a)h -(library)f(whic)o(h)h(aids)g(in)g(the)g(consistency)h(of)e(user)i(in)o -(terface)f(across)f(discrete)75 1621 y(programs)g(whic)o(h)h(pro)o -(vide)g(a)g(command)g(line)g(in)o(terface.)75 1689 y(Cop)o(yrigh)o(t) -301 1688 y(c)289 1689 y Fl(\015)g Fo(1988{2011)e(F)l(ree)i(Soft)o(w)o -(are)f(F)l(oundation,)g(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted) -h(to)f(mak)o(e)h(and)g(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g -(man)o(ual)f(pro)o(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h -(and)g(this)g(p)q(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f -(copies.)195 1878 y(P)o(ermission)i(is)h(gran)o(ted)g(to)g(cop)o(y)l(,) -h(distribute)f(and/or)g(mo)q(dify)g(this)g(do)q(cumen)o(t)h(under)195 -1933 y(the)h(terms)f(of)h(the)g(GNU)g(F)l(ree)g(Do)q(cumen)o(tation)f -(License,)i(V)l(ersion)f(1.3)f(or)g(an)o(y)h(later)195 -1988 y(v)o(ersion)13 b(published)h(b)o(y)g(the)g(F)l(ree)f(Soft)o(w)o -(are)g(F)l(oundation;)g(with)g(no)g(In)o(v)m(arian)o(t)h(Sections,)195 -2042 y(with)h(the)g(F)l(ron)o(t-Co)o(v)o(er)e(texts)i(b)q(eing)h(\\A)f -(GNU)g(Man)o(ual",)f(and)h(with)g(the)g(Bac)o(k-Co)o(v)o(er)195 -2097 y(T)l(exts)h(as)g(in)g(\(a\))f(b)q(elo)o(w.)23 b(A)16 -b(cop)o(y)g(of)g(the)g(license)g(is)g(included)h(in)f(the)g(section)g -(en)o(titled)195 2152 y(\\GNU)f(F)l(ree)g(Do)q(cumen)o(tation)f -(License".)195 2219 y(\(a\))g(The)h(FSF's)g(Bac)o(k-Co)o(v)o(er)f(T)l -(ext)h(is:)k(Y)l(ou)c(are)g(free)g(to)g(cop)o(y)g(and)g(mo)q(dify)g -(this)f(GNU)195 2274 y(man)o(ual.)19 b(Buying)c(copies)g(from)f(GNU)h -(Press)g(supp)q(orts)g(the)g(FSF)g(in)g(dev)o(eloping)f(GNU)195 -2329 y(and)h(promoting)f(soft)o(w)o(are)g(freedom.")75 -2451 y(Published)h(b)o(y)h(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l -(oundation)75 2506 y(59)h(T)l(emple)g(Place,)f(Suite)i(330,)75 -2560 y(Boston,)e(MA)h(02111-1307)75 2615 y(USA)p eop -end -%%Page: -1 3 -TeXDict begin -1 2 bop 1862 -58 a Fo(i)75 149 y Fk(T)-7 -b(able)28 b(of)e(Con)n(ten)n(ts)75 320 y Fm(1)67 b(Command)22 -b(Line)h(Editing)17 b Fj(:)10 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)39 -b Fm(1)137 389 y Fo(1.1)45 b(In)o(tro)q(duction)15 b(to)f(Line)i -(Editing)t Fi(:)7 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)18 b Fo(1)137 444 y(1.2)45 b(Readline)15 -b(In)o(teraction)5 b Fi(:)i(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)19 -b Fo(1)200 499 y(1.2.1)43 b(Readline)16 b(Bare)f(Essen)o(tials)5 -b Fi(:)h(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)19 b Fo(1)200 553 y(1.2.2)43 b(Readline)16 b(Mo)o(v)o(emen)o(t)e -(Commands)5 b Fi(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)19 -b Fo(2)200 608 y(1.2.3)43 b(Readline)16 b(Killing)e(Commands)d -Fi(:)6 b(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25 -b Fo(2)200 663 y(1.2.4)43 b(Readline)16 b(Argumen)o(ts)7 -b Fi(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)21 b Fo(3)200 718 y(1.2.5)43 b(Searc)o(hing)15 -b(for)g(Commands)g(in)g(the)g(History)6 b Fi(:)g(:)h(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)20 -b Fo(3)137 773 y(1.3)45 b(Readline)15 b(Init)g(File)d -Fi(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)27 b Fo(4)200 -827 y(1.3.1)43 b(Readline)16 b(Init)f(File)f(Syn)o(tax)9 -b Fi(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23 -b Fo(4)200 882 y(1.3.2)43 b(Conditional)14 b(Init)h(Constructs)e -Fi(:)8 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 -b Fo(10)200 937 y(1.3.3)43 b(Sample)16 b(Init)f(File)7 -b Fi(:)f(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)22 b Fo(11)137 992 y(1.4)45 -b(Bindable)15 b(Readline)h(Commands)7 b Fi(:)f(:)h(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)22 b Fo(14)200 1046 y(1.4.1)43 -b(Commands)15 b(F)l(or)g(Mo)o(ving)5 b Fi(:)h(:)h(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)20 b Fo(14)200 -1101 y(1.4.2)43 b(Commands)15 b(F)l(or)g(Manipulating)e(The)j(History) -10 b Fi(:)c(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -25 b Fo(14)200 1156 y(1.4.3)43 b(Commands)15 b(F)l(or)g(Changing)f(T)l -(ext)e Fi(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)27 b Fo(16)200 -1211 y(1.4.4)43 b(Killing)14 b(And)i(Y)l(anking)c Fi(:)c(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)27 -b Fo(17)200 1266 y(1.4.5)43 b(Sp)q(ecifying)16 b(Numeric)f(Argumen)o -(ts)10 b Fi(:)c(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)24 b Fo(18)200 -1320 y(1.4.6)43 b(Letting)15 b(Readline)h(T)o(yp)q(e)f(F)l(or)g(Y)l(ou) -7 b Fi(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)22 b Fo(18)200 -1375 y(1.4.7)43 b(Keyb)q(oard)16 b(Macros)c Fi(:)6 b(:)h(:)g(:)h(:)f(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)26 -b Fo(19)200 1430 y(1.4.8)43 b(Some)16 b(Miscellaneous)e(Commands)f -Fi(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fo(19)137 1485 -y(1.5)45 b(Readline)15 b(vi)g(Mo)q(de)c Fi(:)c(:)h(:)f(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)26 b Fo(21)75 1606 y Fm(App)r(endix)d(A)80 -b(GNU)22 b(F)-6 b(ree)23 b(Do)r(cumen)n(tation)e(License)223 -1672 y Fj(:)10 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 -b Fm(22)p eop end -%%Page: 1 4 -TeXDict begin 1 3 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(1)75 149 y Fk(1)41 b(Command)28 b(Line)f(Editing)75 -266 y Fo(This)15 b(c)o(hapter)g(describ)q(es)h(the)f(basic)g(features)g -(of)f(the)i Fh(gnu)f Fo(command)g(line)g(editing)f(in)o(terface.)75 -382 y Fm(1.1)33 b(In)n(tro)r(duction)23 b(to)f(Line)h(Editing)75 -462 y Fo(The)15 b(follo)o(wing)e(paragraphs)i(describ)q(e)h(the)f -(notation)f(used)h(to)g(represen)o(t)g(k)o(eystrok)o(es.)137 -529 y(The)k(text)e Fg(C-k)h Fo(is)f(read)i(as)e(`Con)o(trol-K')f(and)j -(describ)q(es)f(the)h(c)o(haracter)e(pro)q(duced)i(when)g(the)f -Fn(k)75 584 y Fo(k)o(ey)d(is)g(pressed)h(while)e(the)h(Con)o(trol)f(k)o -(ey)h(is)g(depressed.)137 651 y(The)h(text)g Fg(M-k)f -Fo(is)h(read)g(as)f(`Meta-K')g(and)h(describ)q(es)h(the)f(c)o(haracter) -f(pro)q(duced)i(when)g(the)f(Meta)75 705 y(k)o(ey)g(\(if)g(y)o(ou)g(ha) -o(v)o(e)g(one\))h(is)f(depressed,)h(and)g(the)g Fn(k)f -Fo(k)o(ey)g(is)g(pressed.)25 b(The)17 b(Meta)e(k)o(ey)i(is)f(lab)q -(eled)g Fn(ALT)75 760 y Fo(on)f(man)o(y)f(k)o(eyb)q(oards.)20 -b(On)15 b(k)o(eyb)q(oards)g(with)f(t)o(w)o(o)f(k)o(eys)i(lab)q(eled)g -Fn(ALT)f Fo(\(usually)g(to)g(either)h(side)f(of)h(the)75 -815 y(space)g(bar\),)f(the)h Fn(ALT)g Fo(on)g(the)g(left)f(side)h(is)g -(generally)f(set)h(to)f(w)o(ork)g(as)h(a)f(Meta)g(k)o(ey)l(.)20 -b(The)c Fn(ALT)e Fo(k)o(ey)h(on)75 870 y(the)f(righ)o(t)e(ma)o(y)h -(also)g(b)q(e)h(con\014gured)g(to)f(w)o(ork)g(as)g(a)g(Meta)g(k)o(ey)g -(or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)g(other)75 -925 y(mo)q(di\014er,)i(suc)o(h)g(as)g(a)g(Comp)q(ose)g(k)o(ey)g(for)g -(t)o(yping)f(accen)o(ted)i(c)o(haracters.)137 992 y(If)d(y)o(ou)f(do)g -(not)g(ha)o(v)o(e)f(a)h(Meta)g(or)f Fn(ALT)h Fo(k)o(ey)l(,)h(or)e -(another)h(k)o(ey)g(w)o(orking)f(as)h(a)g(Meta)f(k)o(ey)l(,)i(the)f -(iden)o(tical)75 1047 y(k)o(eystrok)o(e)h(can)i(b)q(e)f(generated)h(b)o -(y)f(t)o(yping)f Fn(ESC)h Ff(\014rst)p Fo(,)f(and)i(then)f(t)o(yping)g -Fn(k)p Fo(.)19 b(Either)14 b(pro)q(cess)g(is)g(kno)o(wn)75 -1101 y(as)h Fe(metafying)j Fo(the)d Fn(k)g Fo(k)o(ey)l(.)137 -1169 y(The)21 b(text)e Fg(M-C-k)h Fo(is)g(read)g(as)f(`Meta-Con)o -(trol-k')f(and)i(describ)q(es)h(the)f(c)o(haracter)g(pro)q(duced)h(b)o -(y)75 1223 y Fe(metafying)d Fg(C-k)p Fo(.)137 1290 y(In)h(addition,)e -(sev)o(eral)h(k)o(eys)f(ha)o(v)o(e)h(their)g(o)o(wn)f(names.)28 -b(Sp)q(eci\014cally)l(,)19 b Fn(DEL)p Fo(,)f Fn(ESC)p -Fo(,)g Fn(LFD)p Fo(,)g Fn(SPC)p Fo(,)g Fn(RET)p Fo(,)75 -1345 y(and)f Fn(TAB)g Fo(all)f(stand)h(for)g(themselv)o(es)g(when)h -(seen)f(in)g(this)g(text,)g(or)g(in)g(an)g(init)f(\014le)i(\(see)f -(Section)g(1.3)75 1400 y([Readline)e(Init)g(File],)e(page)h(4\).)20 -b(If)15 b(y)o(our)f(k)o(eyb)q(oard)h(lac)o(ks)f(a)g Fn(LFD)h -Fo(k)o(ey)l(,)f(t)o(yping)g Fn(C-j)h Fo(will)e(pro)q(duce)j(the)75 -1455 y(desired)f(c)o(haracter.)20 b(The)15 b Fn(RET)g -Fo(k)o(ey)g(ma)o(y)f(b)q(e)i(lab)q(eled)f Fn(Return)g -Fo(or)f Fn(Enter)h Fo(on)g(some)g(k)o(eyb)q(oards.)75 -1571 y Fm(1.2)33 b(Readline)21 b(In)n(teraction)75 1651 -y Fo(Often)c(during)f(an)g(in)o(teractiv)o(e)f(session)g(y)o(ou)h(t)o -(yp)q(e)h(in)f(a)g(long)f(line)h(of)g(text,)g(only)g(to)f(notice)h -(that)g(the)75 1705 y(\014rst)g(w)o(ord)f(on)h(the)h(line)f(is)f(missp) -q(elled.)23 b(The)16 b(Readline)h(library)e(giv)o(es)g(y)o(ou)h(a)g -(set)g(of)g(commands)g(for)75 1760 y(manipulating)d(the)i(text)g(as)f -(y)o(ou)h(t)o(yp)q(e)g(it)f(in,)g(allo)o(wing)f(y)o(ou)i(to)f(just)h -(\014x)g(y)o(our)f(t)o(yp)q(o,)g(and)h(not)g(forcing)75 -1815 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s(jorit)o(y)e(of)i(the)g -(line.)19 b(Using)14 b(these)g(editing)f(commands,)h(y)o(ou)g(mo)o(v)o -(e)f(the)h(cursor)75 1870 y(to)i(the)i(place)f(that)f(needs)i -(correction,)f(and)g(delete)g(or)g(insert)f(the)i(text)e(of)h(the)g -(corrections.)25 b(Then,)75 1924 y(when)13 b(y)o(ou)f(are)g -(satis\014ed)g(with)g(the)h(line,)f(y)o(ou)g(simply)g(press)g -Fn(RET)p Fo(.)19 b(Y)l(ou)12 b(do)h(not)f(ha)o(v)o(e)g(to)g(b)q(e)h(at) -f(the)g(end)75 1979 y(of)k(the)h(line)f(to)g(press)h -Fn(RET)p Fo(;)g(the)f(en)o(tire)g(line)h(is)f(accepted)h(regardless)f -(of)g(the)h(lo)q(cation)e(of)i(the)f(cursor)75 2034 y(within)e(the)i -(line.)75 2133 y Fd(1.2.1)30 b(Readline)20 b(Bare)g(Essen)n(tials)75 -2207 y Fo(In)d(order)e(to)h(en)o(ter)g(c)o(haracters)f(in)o(to)g(the)h -(line,)g(simply)f(t)o(yp)q(e)h(them.)23 b(The)16 b(t)o(yp)q(ed)g(c)o -(haracter)g(app)q(ears)75 2262 y(where)g(the)h(cursor)f(w)o(as,)f(and)h -(then)h(the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o -(t.)22 b(If)17 b(y)o(ou)f(mist)o(yp)q(e)f(a)75 2317 y(c)o(haracter,)f -(y)o(ou)h(can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g -(up)g(and)h(delete)f(the)g(mist)o(yp)q(ed)g(c)o(haracter.)137 -2384 y(Sometimes)g(y)o(ou)g(ma)o(y)g(mist)o(yp)q(e)g(a)g(c)o(haracter,) -f(and)i(not)f(notice)g(the)g(error)g(un)o(til)g(y)o(ou)g(ha)o(v)o(e)g -(t)o(yp)q(ed)75 2438 y(sev)o(eral)f(other)g(c)o(haracters.)19 -b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fg(C-b)f -Fo(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)g(and)75 -2493 y(then)i(correct)e(y)o(our)h(mistak)o(e.)k(Afterw)o(ards,)13 -b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)f -(with)g Fg(C-f)p Fo(.)137 2560 y(When)j(y)o(ou)f(add)g(text)g(in)g(the) -h(middle)f(of)g(a)f(line,)h(y)o(ou)g(will)f(notice)h(that)g(c)o -(haracters)f(to)h(the)g(righ)o(t)75 2615 y(of)e(the)g(cursor)g(are)g -(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h(ro)q(om)g(for)f(the)i(text)f -(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)20 b(Lik)o(ewise,)75 -2670 y(when)f(y)o(ou)g(delete)g(text)f(b)q(ehind)i(the)f(cursor,)g(c)o -(haracters)f(to)g(the)h(righ)o(t)e(of)h(the)h(cursor)g(are)f(`pulled)p -eop end -%%Page: 2 5 -TeXDict begin 2 4 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(2)75 149 y(bac)o(k')11 b(to)g(\014ll)f(in)i(the)f -(blank)g(space)h(created)f(b)o(y)h(the)f(remo)o(v)m(al)f(of)h(the)h -(text.)18 b(A)11 b(list)f(of)h(the)h(bare)f(essen)o(tials)75 -204 y(for)k(editing)f(the)h(text)g(of)g(an)g(input)g(line)g(follo)o -(ws.)75 281 y Fg(C-b)168 b Fo(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o -(haracter.)75 358 y Fg(C-f)168 b Fo(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h -(c)o(haracter.)75 434 y Fn(DEL)g Fo(or)f Fn(Backspace)315 -489 y Fo(Delete)h(the)g(c)o(haracter)g(to)f(the)h(left)g(of)g(the)g -(cursor.)75 566 y Fg(C-d)168 b Fo(Delete)15 b(the)g(c)o(haracter)g -(underneath)h(the)f(cursor.)75 642 y(Prin)o(ting)f(c)o(haracters)315 -697 y(Insert)h(the)h(c)o(haracter)e(in)o(to)g(the)i(line)f(at)f(the)h -(cursor.)75 774 y Fg(C-_)g Fo(or)f Fg(C-x)h(C-u)315 829 -y Fo(Undo)i(the)g(last)e(editing)h(command.)25 b(Y)l(ou)17 -b(can)g(undo)g(all)e(the)i(w)o(a)o(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 -884 y(line.)75 960 y(\(Dep)q(ending)f(on)g(y)o(our)f(con\014guration,)g -(the)h Fn(Backspace)e Fo(k)o(ey)i(b)q(e)g(set)g(to)f(delete)h(the)g(c)o -(haracter)f(to)g(the)75 1015 y(left)j(of)h(the)g(cursor)g(and)g(the)h -Fn(DEL)e Fo(k)o(ey)h(set)g(to)g(delete)g(the)g(c)o(haracter)g -(underneath)g(the)h(cursor,)f(lik)o(e)75 1070 y Fg(C-d)p -Fo(,)c(rather)h(than)g(the)g(c)o(haracter)g(to)f(the)i(left)e(of)h(the) -g(cursor.\))75 1166 y Fd(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i -(Commands)75 1240 y Fo(The)14 b(ab)q(o)o(v)o(e)g(table)f(describ)q(es)h -(the)g(most)f(basic)h(k)o(eystrok)o(es)f(that)g(y)o(ou)g(need)i(in)f -(order)f(to)g(do)h(editing)f(of)75 1295 y(the)k(input)f(line.)23 -b(F)l(or)16 b(y)o(our)g(con)o(v)o(enience,)h(man)o(y)f(other)g -(commands)h(ha)o(v)o(e)f(b)q(een)h(added)h(in)e(addition)75 -1349 y(to)h Fg(C-b)p Fo(,)g Fg(C-f)p Fo(,)g Fg(C-d)p -Fo(,)g(and)h Fn(DEL)p Fo(.)26 b(Here)18 b(are)f(some)g(commands)h(for)e -(mo)o(ving)h(more)g(rapidly)g(ab)q(out)g(the)75 1404 -y(line.)75 1481 y Fg(C-a)168 b Fo(Mo)o(v)o(e)14 b(to)h(the)g(start)f -(of)h(the)g(line.)75 1558 y Fg(C-e)168 b Fo(Mo)o(v)o(e)14 -b(to)h(the)g(end)h(of)f(the)g(line.)75 1634 y Fg(M-f)168 -b Fo(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h -(is)g(comp)q(osed)g(of)g(letters)f(and)i(digits.)75 1711 -y Fg(M-b)168 b Fo(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75 -1788 y Fg(C-l)168 b Fo(Clear)14 b(the)i(screen,)f(reprin)o(ting)f(the)h -(curren)o(t)g(line)g(at)g(the)g(top.)137 1864 y(Notice)d(ho)o(w)g -Fg(C-f)g Fo(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)g -Fg(M-f)g Fo(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18 -b(It)13 b(is)f(a)g(lo)q(ose)75 1919 y(con)o(v)o(en)o(tion)i(that)g(con) -o(trol)g(k)o(eystrok)o(es)g(op)q(erate)h(on)f(c)o(haracters)h(while)f -(meta)g(k)o(eystrok)o(es)g(op)q(erate)h(on)75 1974 y(w)o(ords.)75 -2071 y Fd(1.2.3)30 b(Readline)20 b(Killing)h(Commands)75 -2144 y Fe(Killing)16 b Fo(text)d(means)g(to)g(delete)g(the)g(text)g -(from)g(the)g(line,)g(but)h(to)e(sa)o(v)o(e)h(it)f(a)o(w)o(a)o(y)g(for) -h(later)f(use,)i(usually)75 2199 y(b)o(y)f Fe(y)o(anking)k -Fo(\(re-inserting\))12 b(it)h(bac)o(k)g(in)o(to)g(the)g(line.)19 -b(\(`Cut')12 b(and)i(`paste')e(are)h(more)h(recen)o(t)f(jargon)g(for)75 -2254 y(`kill')g(and)j(`y)o(ank'.\))137 2319 y(If)g(the)f(description)f -(for)h(a)g(command)g(sa)o(ys)f(that)h(it)f(`kills')f(text,)h(then)i(y)o -(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o(ou)75 2374 y(can)h(get)g(the)g -(text)g(bac)o(k)g(in)g(a)g(di\013eren)o(t)f(\(or)h(the)g(same\))g -(place)g(later.)137 2440 y(When)d(y)o(ou)g(use)g(a)f(kill)f(command,)i -(the)g(text)f(is)g(sa)o(v)o(ed)g(in)h(a)f Fe(kill-ring)p -Fo(.)17 b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75 -2495 y(kills)j(sa)o(v)o(e)h(all)f(of)h(the)h(killed)f(text)g(together,) -f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)g(bac)o(k,)g(y)o(ou)g(get)g -(it)g(all.)20 b(The)75 2549 y(kill)15 b(ring)h(is)f(not)h(line)g(sp)q -(eci\014c;)h(the)f(text)g(that)f(y)o(ou)h(killed)g(on)g(a)g(previously) -f(t)o(yp)q(ed)i(line)f(is)f(a)o(v)m(ailable)75 2604 y(to)g(b)q(e)g(y)o -(ank)o(ed)g(bac)o(k)h(later,)d(when)j(y)o(ou)f(are)g(t)o(yping)f -(another)h(line.)137 2670 y(Here)h(is)e(the)i(list)e(of)g(commands)h -(for)g(killing)f(text.)p eop end -%%Page: 3 6 -TeXDict begin 3 5 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(3)75 149 y Fg(C-k)168 b Fo(Kill)14 b(the)i(text)e(from) -h(the)g(curren)o(t)g(cursor)g(p)q(osition)f(to)h(the)g(end)h(of)f(the)g -(line.)75 230 y Fg(M-d)168 b Fo(Kill)12 b(from)h(the)g(cursor)g(to)f -(the)i(end)g(of)e(the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)f(b)q(et)o(w)o -(een)i(w)o(ords,)e(to)h(the)315 285 y(end)j(of)f(the)g(next)g(w)o(ord.) -k(W)l(ord)c(b)q(oundaries)h(are)f(the)g(same)g(as)g(those)f(used)i(b)o -(y)f Fg(M-f)p Fo(.)75 366 y Fg(M-DEL)120 b Fo(Kill)14 -b(from)h(the)g(cursor)g(the)h(start)e(of)h(the)g(curren)o(t)g(w)o(ord,) -f(or,)h(if)f(b)q(et)o(w)o(een)i(w)o(ords,)e(to)h(the)315 -421 y(start)j(of)h(the)g(previous)g(w)o(ord.)31 b(W)l(ord)19 -b(b)q(oundaries)g(are)g(the)h(same)e(as)h(those)g(used)h(b)o(y)315 -476 y Fg(M-b)p Fo(.)75 557 y Fg(C-w)168 b Fo(Kill)17 -b(from)f(the)i(cursor)f(to)g(the)h(previous)f(whitespace.)27 -b(This)17 b(is)g(di\013eren)o(t)f(than)i Fg(M-DEL)315 -611 y Fo(b)q(ecause)e(the)f(w)o(ord)g(b)q(oundaries)g(di\013er.)137 -693 y(Here)21 b(is)g(ho)o(w)f(to)g Fe(y)o(ank)j Fo(the)e(text)f(bac)o -(k)h(in)o(to)f(the)g(line.)37 b(Y)l(anking)20 b(means)h(to)f(cop)o(y)h -(the)g(most-)75 748 y(recen)o(tly-killed)14 b(text)h(from)f(the)i(kill) -e(bu\013er.)75 829 y Fg(C-y)168 b Fo(Y)l(ank)15 b(the)h(most)e(recen)o -(tly)h(killed)f(text)h(bac)o(k)g(in)o(to)f(the)i(bu\013er)f(at)f(the)i -(cursor.)75 910 y Fg(M-y)168 b Fo(Rotate)17 b(the)g(kill-ring,)f(and)h -(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)f(do)g(this)g -(if)f(the)i(prior)315 965 y(command)d(is)g Fg(C-y)g Fo(or)f -Fg(M-y)p Fo(.)75 1066 y Fd(1.2.4)30 b(Readline)20 b(Argumen)n(ts)75 -1139 y Fo(Y)l(ou)g(can)f(pass)h(n)o(umeric)f(argumen)o(ts)g(to)g -(Readline)h(commands.)32 b(Sometimes)19 b(the)h(argumen)o(t)e(acts)75 -1194 y(as)i(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)f(it)h(is)f(the)h -Ff(sign)j Fo(of)c(the)h(argumen)o(t)g(that)f(is)h(signi\014can)o(t.)33 -b(If)20 b(y)o(ou)75 1249 y(pass)d(a)f(negativ)o(e)g(argumen)o(t)g(to)g -(a)g(command)h(whic)o(h)g(normally)e(acts)h(in)h(a)f(forw)o(ard)g -(direction,)g(that)75 1304 y(command)i(will)e(act)h(in)h(a)f(bac)o(kw)o -(ard)g(direction.)26 b(F)l(or)17 b(example,)h(to)f(kill)g(text)g(bac)o -(k)g(to)g(the)h(start)e(of)75 1359 y(the)f(line,)g(y)o(ou)g(migh)o(t)f -(t)o(yp)q(e)h(`)p Fn(M--)f(C-k)p Fo('.)137 1427 y(The)h(general)e(w)o -(a)o(y)g(to)h(pass)g(n)o(umeric)g(argumen)o(ts)f(to)g(a)h(command)g(is) -g(to)f(t)o(yp)q(e)h(meta)g(digits)f(b)q(efore)75 1482 -y(the)j(command.)k(If)c(the)f(\014rst)g(`digit')f(t)o(yp)q(ed)h(is)g(a) -h(min)o(us)f(sign)g(\(`)p Fn(-)p Fo('\),)e(then)j(the)f(sign)g(of)g -(the)h(argumen)o(t)75 1537 y(will)i(b)q(e)i(negativ)o(e.)30 -b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)f -(to)g(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75 -1592 y(can)c(t)o(yp)q(e)f(the)h(remainder)f(of)g(the)g(digits,)f(and)i -(then)g(the)f(command.)20 b(F)l(or)13 b(example,)h(to)g(giv)o(e)g(the)g -Fg(C-d)75 1646 y Fo(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f -(could)h(t)o(yp)q(e)g(`)p Fn(M-1)14 b(0)h(C-d)p Fo(',)k(whic)o(h)f -(will)f(delete)i(the)g(next)g(ten)75 1701 y(c)o(haracters)14 -b(on)i(the)f(input)g(line.)75 1802 y Fd(1.2.5)30 b(Searc)n(hing)21 -b(for)f(Commands)h(in)f(the)h(History)75 1875 y Fo(Readline)11 -b(pro)o(vides)f(commands)h(for)f(searc)o(hing)g(through)g(the)h -(command)f(history)g(for)g(lines)g(con)o(taining)75 1930 -y(a)15 b(sp)q(eci\014ed)h(string.)j(There)c(are)g(t)o(w)o(o)f(searc)o -(h)h(mo)q(des:)20 b Fe(incremen)o(tal)c Fo(and)g Fe(non-incremen)o(tal) -p Fo(.)137 1999 y(Incremen)o(tal)d(searc)o(hes)g(b)q(egin)g(b)q(efore)g -(the)g(user)g(has)g(\014nished)g(t)o(yping)f(the)h(searc)o(h)g(string.) -18 b(As)13 b(eac)o(h)75 2054 y(c)o(haracter)k(of)g(the)h(searc)o(h)g -(string)e(is)h(t)o(yp)q(ed,)i(Readline)f(displa)o(ys)e(the)i(next)g(en) -o(try)f(from)g(the)h(history)75 2108 y(matc)o(hing)11 -b(the)h(string)f(t)o(yp)q(ed)h(so)g(far.)18 b(An)13 b(incremen)o(tal)e -(searc)o(h)h(requires)f(only)h(as)g(man)o(y)f(c)o(haracters)g(as)75 -2163 y(needed)16 b(to)d(\014nd)j(the)e(desired)h(history)e(en)o(try)l -(.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)i(the)f(history)f(for)h -(a)g(particular)75 2218 y(string,)f(t)o(yp)q(e)i Fg(C-r)p -Fo(.)k(T)o(yping)c Fg(C-s)f Fo(searc)o(hes)h(forw)o(ard)e(through)h -(the)h(history)l(.)k(The)c(c)o(haracters)f(presen)o(t)75 -2273 y(in)19 b(the)g(v)m(alue)g(of)g(the)g Fn(isearch-terminators)d -Fo(v)m(ariable)i(are)h(used)h(to)e(terminate)g(an)h(incremen)o(tal)75 -2328 y(searc)o(h.)35 b(If)20 b(that)f(v)m(ariable)h(has)g(not)g(b)q -(een)h(assigned)f(a)g(v)m(alue,)h(the)f Fn(ESC)g Fo(and)g -Fg(C-J)g Fo(c)o(haracters)f(will)75 2382 y(terminate)h(an)h(incremen)o -(tal)g(searc)o(h.)37 b Fg(C-g)21 b Fo(will)f(ab)q(ort)h(an)g(incremen)o -(tal)f(searc)o(h)h(and)g(restore)g(the)75 2437 y(original)13 -b(line.)19 b(When)c(the)f(searc)o(h)g(is)g(terminated,)g(the)g(history) -g(en)o(try)g(con)o(taining)f(the)i(searc)o(h)f(string)75 -2492 y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 2560 -y(T)l(o)g(\014nd)i(other)e(matc)o(hing)f(en)o(tries)h(in)h(the)f -(history)g(list,)f(t)o(yp)q(e)h Fg(C-r)g Fo(or)g Fg(C-s)g -Fo(as)h(appropriate.)j(This)75 2615 y(will)12 b(searc)o(h)h(bac)o(kw)o -(ard)f(or)g(forw)o(ard)g(in)h(the)g(history)f(for)h(the)g(next)g(en)o -(try)g(matc)o(hing)f(the)h(searc)o(h)g(string)75 2670 -y(t)o(yp)q(ed)19 b(so)g(far.)30 b(An)o(y)19 b(other)f(k)o(ey)h -(sequence)h(b)q(ound)g(to)e(a)h(Readline)g(command)f(will)g(terminate)g -(the)p eop end -%%Page: 4 7 -TeXDict begin 4 6 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(4)75 149 y(searc)o(h)13 b(and)f(execute)i(that)e -(command.)19 b(F)l(or)12 b(instance,)h(a)f Fn(RET)g Fo(will)g -(terminate)f(the)i(searc)o(h)g(and)g(accept)75 204 y(the)i(line,)f -(thereb)o(y)h(executing)f(the)h(command)g(from)f(the)g(history)g(list.) -k(A)d(mo)o(v)o(emen)o(t)f(command)g(will)75 259 y(terminate)g(the)h -(searc)o(h,)g(mak)o(e)g(the)g(last)f(line)h(found)h(the)f(curren)o(t)g -(line,)f(and)i(b)q(egin)f(editing.)137 323 y(Readline)j(remem)o(b)q -(ers)f(the)h(last)e(incremen)o(tal)h(searc)o(h)g(string.)26 -b(If)17 b(t)o(w)o(o)f Fg(C-r)p Fo(s)h(are)g(t)o(yp)q(ed)h(without)75 -378 y(an)o(y)g(in)o(terv)o(ening)f(c)o(haracters)h(de\014ning)g(a)g -(new)h(searc)o(h)f(string,)f(an)o(y)h(remem)o(b)q(ered)h(searc)o(h)f -(string)f(is)75 433 y(used.)137 498 y(Non-incremen)o(tal)23 -b(searc)o(hes)g(read)h(the)f(en)o(tire)g(searc)o(h)g(string)f(b)q -(efore)i(starting)e(to)g(searc)o(h)i(for)75 552 y(matc)o(hing)c -(history)h(lines.)37 b(The)22 b(searc)o(h)f(string)f(ma)o(y)h(b)q(e)h -(t)o(yp)q(ed)f(b)o(y)h(the)f(user)h(or)e(b)q(e)i(part)f(of)g(the)75 -607 y(con)o(ten)o(ts)15 b(of)f(the)i(curren)o(t)f(line.)75 -718 y Fm(1.3)33 b(Readline)21 b(Init)i(File)75 797 y -Fo(Although)e(the)h(Readline)h(library)d(comes)i(with)f(a)h(set)f(of)h -(Emacs-lik)o(e)f(k)o(eybindings)g(installed)g(b)o(y)75 -852 y(default,)12 b(it)g(is)g(p)q(ossible)g(to)g(use)g(a)g(di\013eren)o -(t)g(set)g(of)g(k)o(eybindings.)19 b(An)o(y)12 b(user)h(can)f -(customize)g(programs)75 907 y(that)21 b(use)i(Readline)f(b)o(y)h -(putting)e(commands)h(in)g(an)g Fe(inputrc)j Fo(\014le,)f(con)o(v)o(en) -o(tionally)c(in)i(his)g(home)75 962 y(directory)l(.)c(The)12 -b(name)g(of)f(this)g(\014le)h(is)f(tak)o(en)g(from)g(the)h(v)m(alue)g -(of)f(the)h(en)o(vironmen)o(t)f(v)m(ariable)g Fn(INPUTRC)p -Fo(.)75 1017 y(If)17 b(that)g(v)m(ariable)f(is)h(unset,)g(the)g -(default)g(is)g(`)p Fn(~/.inputrc)p Fo('.)23 b(If)17 -b(that)g(\014le)g(do)q(es)g(not)g(exist)g(or)f(cannot)75 -1071 y(b)q(e)g(read,)f(the)g(ultimate)f(default)h(is)f(`)p -Fn(/etc/inputrc)p Fo('.)137 1136 y(When)h(a)g(program)f(whic)o(h)g -(uses)h(the)g(Readline)g(library)f(starts)f(up,)i(the)g(init)f(\014le)h -(is)f(read,)h(and)g(the)75 1191 y(k)o(ey)g(bindings)g(are)g(set.)137 -1255 y(In)f(addition,)f(the)g Fn(C-x)i(C-r)e Fo(command)g(re-reads)h -(this)f(init)f(\014le,)i(th)o(us)f(incorp)q(orating)f(an)o(y)h(c)o -(hanges)75 1310 y(that)h(y)o(ou)h(migh)o(t)f(ha)o(v)o(e)h(made)g(to)g -(it.)75 1404 y Fd(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)75 -1477 y Fo(There)g(are)f(only)g(a)g(few)h(basic)f(constructs)g(allo)o(w) -o(ed)f(in)h(the)h(Readline)f(init)g(\014le.)36 b(Blank)20 -b(lines)g(are)75 1532 y(ignored.)35 b(Lines)21 b(b)q(eginning)g(with)e -(a)i(`)p Fn(#)p Fo(')e(are)h(commen)o(ts.)35 b(Lines)21 -b(b)q(eginning)g(with)f(a)g(`)p Fn($)p Fo(')f(indicate)75 -1587 y(conditional)g(constructs)i(\(see)f(Section)h(1.3.2)e -([Conditional)g(Init)h(Constructs],)h(page)f(10\).)36 -b(Other)75 1642 y(lines)15 b(denote)g(v)m(ariable)g(settings)f(and)h(k) -o(ey)g(bindings.)75 1716 y(V)l(ariable)f(Settings)315 -1771 y(Y)l(ou)20 b(can)h(mo)q(dify)f(the)g(run-time)g(b)q(eha)o(vior)g -(of)f(Readline)i(b)o(y)f(altering)f(the)h(v)m(alues)g(of)315 -1826 y(v)m(ariables)c(in)h(Readline)g(using)f(the)h Fn(set)g -Fo(command)f(within)g(the)h(init)f(\014le.)25 b(The)17 -b(syn)o(tax)315 1880 y(is)e(simple:)435 1945 y Fn(set)23 -b Fg(variable)28 b(value)315 2009 y Fo(Here,)14 b(for)f(example,)g(is)g -(ho)o(w)g(to)g(c)o(hange)h(from)f(the)h(default)f(Emacs-lik)o(e)g(k)o -(ey)g(binding)h(to)315 2064 y(use)i Fn(vi)e Fo(line)h(editing)g -(commands:)435 2129 y Fn(set)23 b(editing-mode)g(vi)315 -2193 y Fo(V)l(ariable)17 b(names)g(and)h(v)m(alues,)g(where)f -(appropriate,)g(are)g(recognized)h(without)e(regard)315 -2248 y(to)f(case.)k(Unrecognized)d(v)m(ariable)f(names)g(are)g -(ignored.)315 2312 y(Bo)q(olean)d(v)m(ariables)g(\(those)g(that)g(can)g -(b)q(e)i(set)e(to)g(on)g(or)g(o\013)t(\))f(are)h(set)h(to)f(on)g(if)g -(the)h(v)m(alue)f(is)315 2367 y(n)o(ull)g(or)f(empt)o(y)l(,)h -Fe(on)h Fo(\(case-insensitiv)o(e\),)d(or)i(1.)19 b(An)o(y)12 -b(other)g(v)m(alue)g(results)f(in)h(the)h(v)m(ariable)315 -2422 y(b)q(eing)i(set)g(to)g(o\013.)315 2486 y(A)g(great)g(deal)f(of)h -(run-time)g(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)i(follo)o -(wing)c(v)m(ariables.)315 2560 y Fn(bell-style)555 2615 -y Fo(Con)o(trols)20 b(what)i(happ)q(ens)h(when)f(Readline)g(w)o(an)o -(ts)f(to)g(ring)h(the)g(termi-)555 2670 y(nal)c(b)q(ell.)30 -b(If)19 b(set)f(to)g(`)p Fn(none)p Fo(',)g(Readline)h(nev)o(er)g(rings) -f(the)g(b)q(ell.)30 b(If)19 b(set)g(to)p eop end -%%Page: 5 8 -TeXDict begin 5 7 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(5)555 149 y(`)p Fn(visible)p Fo(',)15 -b(Readline)h(uses)h(a)f(visible)g(b)q(ell)h(if)f(one)g(is)g(a)o(v)m -(ailable.)23 b(If)16 b(set)h(to)555 204 y(`)p Fn(audible)p -Fo(')g(\(the)h(default\),)h(Readline)g(attempts)f(to)g(ring)g(the)h -(terminal's)555 259 y(b)q(ell.)315 332 y Fn(bind-tty-special-chars)555 -387 y Fo(If)k(set)f(to)g(`)p Fn(on)p Fo(',)h(Readline)g(attempts)f(to)g -(bind)h(the)f(con)o(trol)g(c)o(haracters)555 442 y(treated)17 -b(sp)q(ecially)g(b)o(y)h(the)g(k)o(ernel's)f(terminal)f(driv)o(er)h(to) -g(their)h(Readline)555 496 y(equiv)m(alen)o(ts.)315 570 -y Fn(comment-begin)555 624 y Fo(The)d(string)e(to)h(insert)h(at)e(the)i -(b)q(eginning)g(of)f(the)h(line)f(when)h(the)g Fn(insert-)555 -679 y(comment)f Fo(command)h(is)g(executed.)21 b(The)15 -b(default)g(v)m(alue)g(is)g Fn("#")p Fo(.)315 752 y Fn -(completion-display-width)555 807 y Fo(The)21 b(n)o(um)o(b)q(er)g(of)g -(screen)g(columns)f(used)i(to)e(displa)o(y)g(p)q(ossible)g(matc)o(hes) -555 862 y(when)15 b(p)q(erforming)f(completion.)19 b(The)14 -b(v)m(alue)h(is)f(ignored)g(if)g(it)g(is)g(less)g(than)555 -917 y(0)f(or)f(greater)h(than)g(the)g(terminal)f(screen)h(width.)19 -b(A)13 b(v)m(alue)g(of)g(0)g(will)f(cause)555 971 y(matc)o(hes)j(to)f -(b)q(e)i(displa)o(y)o(ed)f(one)g(p)q(er)h(line.)j(The)d(default)e(v)m -(alue)i(is)f(-1.)315 1044 y Fn(completion-ignore-case)555 -1099 y Fo(If)f(set)f(to)g(`)p Fn(on)p Fo(',)g(Readline)h(p)q(erforms)f -(\014lename)h(matc)o(hing)f(and)h(completion)555 1154 -y(in)h(a)g(case-insensitiv)o(e)f(fashion.)20 b(The)15 -b(default)g(v)m(alue)g(is)g(`)p Fn(off)p Fo('.)315 1227 -y Fn(completion-map-case)555 1282 y Fo(If)c(set)g(to)g(`)p -Fn(on)p Fo(',)f(and)h Fe(completion-ignore-case)i Fo(is)e(enabled,)h -(Readline)f(treats)555 1337 y(h)o(yphens)16 b(\(`)p Fn(-)p -Fo('\))e(and)i(underscores)g(\(`)p Fn(_)p Fo('\))d(as)j(equiv)m(alen)o -(t)f(when)h(p)q(erforming)555 1391 y(case-insensitiv)o(e)e(\014lename)i -(matc)o(hing)e(and)h(completion.)315 1465 y Fn -(completion-prefix-display-)o(length)555 1519 y Fo(The)h(length)f(in)h -(c)o(haracters)f(of)g(the)h(common)f(pre\014x)h(of)f(a)h(list)e(of)h(p) -q(ossible)555 1574 y(completions)f(that)g(is)g(displa)o(y)o(ed)g -(without)g(mo)q(di\014cation.)19 b(When)c(set)g(to)f(a)555 -1629 y(v)m(alue)f(greater)f(than)h(zero,)f(common)h(pre\014xes)g -(longer)f(than)h(this)f(v)m(alue)h(are)555 1684 y(replaced)i(with)g(an) -g(ellipsis)f(when)i(displa)o(ying)e(p)q(ossible)h(completions.)315 -1757 y Fn(completion-query-items)555 1812 y Fo(The)e(n)o(um)o(b)q(er)h -(of)e(p)q(ossible)h(completions)g(that)f(determines)h(when)h(the)f -(user)555 1866 y(is)h(ask)o(ed)h(whether)g(the)f(list)g(of)g(p)q -(ossibilities)f(should)i(b)q(e)g(displa)o(y)o(ed.)k(If)c(the)555 -1921 y(n)o(um)o(b)q(er)f(of)f(p)q(ossible)g(completions)f(is)h(greater) -g(than)g(this)g(v)m(alue,)h(Readline)555 1976 y(will)e(ask)h(the)g -(user)h(whether)f(or)g(not)g(he)g(wishes)g(to)g(view)g(them;)g -(otherwise,)555 2031 y(they)f(are)g(simply)g(listed.)18 -b(This)12 b(v)m(ariable)f(m)o(ust)h(b)q(e)h(set)f(to)f(an)h(in)o(teger) -g(v)m(alue)555 2086 y(greater)g(than)g(or)g(equal)g(to)g(0.)18 -b(A)13 b(negativ)o(e)e(v)m(alue)i(means)f(Readline)h(should)555 -2140 y(nev)o(er)i(ask.)20 b(The)15 b(default)g(limit)f(is)g -Fn(100)p Fo(.)315 2213 y Fn(convert-meta)555 2268 y Fo(If)d(set)g(to)g -(`)p Fn(on)p Fo(',)f(Readline)h(will)f(con)o(v)o(ert)g(c)o(haracters)h -(with)f(the)h(eigh)o(th)g(bit)f(set)555 2323 y(to)15 -b(an)h Fh(asci)q(i)f Fo(k)o(ey)h(sequence)h(b)o(y)f(stripping)f(the)h -(eigh)o(th)f(bit)h(and)g(pre\014xing)555 2378 y(an)c -Fn(ESC)g Fo(c)o(haracter,)g(con)o(v)o(erting)f(them)h(to)f(a)h -(meta-pre\014xed)h(k)o(ey)f(sequence.)555 2433 y(The)j(default)g(v)m -(alue)h(is)e(`)p Fn(on)p Fo('.)315 2506 y Fn(disable-completion)555 -2560 y Fo(If)19 b(set)f(to)f(`)p Fn(On)p Fo(',)h(Readline)h(will)e -(inhibit)g(w)o(ord)h(completion.)28 b(Completion)555 -2615 y(c)o(haracters)12 b(will)g(b)q(e)i(inserted)f(in)o(to)f(the)h -(line)f(as)h(if)g(they)g(had)g(b)q(een)h(mapp)q(ed)555 -2670 y(to)h Fn(self-insert)p Fo(.)j(The)d(default)g(is)g(`)p -Fn(off)p Fo('.)p eop end -%%Page: 6 9 -TeXDict begin 6 8 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(6)315 149 y Fn(editing-mode)555 204 y -Fo(The)15 b Fn(editing-mode)d Fo(v)m(ariable)i(con)o(trols)f(whic)o(h)h -(default)g(set)g(of)g(k)o(ey)g(bind-)555 259 y(ings)e(is)g(used.)20 -b(By)12 b(default,)h(Readline)f(starts)g(up)h(in)f(Emacs)g(editing)g -(mo)q(de,)555 314 y(where)j(the)f(k)o(eystrok)o(es)g(are)g(most)g -(similar)f(to)g(Emacs.)20 b(This)14 b(v)m(ariable)g(can)555 -369 y(b)q(e)i(set)f(to)f(either)h(`)p Fn(emacs)p Fo(')f(or)h(`)p -Fn(vi)p Fo('.)315 442 y Fn(echo-control-characters)555 -496 y Fo(When)h(set)e(to)h(`)p Fn(on)p Fo(',)f(on)h(op)q(erating)f -(systems)h(that)f(indicate)h(they)g(supp)q(ort)555 551 -y(it,)g(readline)g(ec)o(ho)q(es)h(a)g(c)o(haracter)f(corresp)q(onding)h -(to)f(a)g(signal)g(generated)555 606 y(from)f(the)i(k)o(eyb)q(oard.)k -(The)15 b(default)g(is)f(`)p Fn(on)p Fo('.)315 679 y -Fn(enable-keypad)555 734 y Fo(When)e(set)f(to)h(`)p Fn(on)p -Fo(',)e(Readline)i(will)f(try)g(to)g(enable)h(the)g(application)e(k)o -(eypad)555 789 y(when)k(it)e(is)h(called.)19 b(Some)13 -b(systems)g(need)h(this)f(to)g(enable)g(the)h(arro)o(w)e(k)o(eys.)555 -844 y(The)j(default)g(is)g(`)p Fn(off)p Fo('.)315 917 -y Fn(enable-meta-key)555 971 y Fo(When)20 b(set)g(to)f(`)p -Fn(on)p Fo(',)h(Readline)g(will)e(try)i(to)f(enable)h(an)o(y)g(meta)f -(mo)q(di\014er)555 1026 y(k)o(ey)i(the)g(terminal)e(claims)h(to)g(supp) -q(ort)h(when)h(it)e(is)g(called.)37 b(On)21 b(man)o(y)555 -1081 y(terminals,)16 b(the)i(meta)f(k)o(ey)h(is)f(used)h(to)f(send)h -(eigh)o(t-bit)e(c)o(haracters.)27 b(The)555 1136 y(default)15 -b(is)f(`)p Fn(on)p Fo('.)315 1209 y Fn(expand-tilde)555 -1264 y Fo(If)g(set)g(to)f(`)p Fn(on)p Fo(',)f(tilde)i(expansion)f(is)h -(p)q(erformed)g(when)g(Readline)g(attempts)555 1318 y(w)o(ord)h -(completion.)k(The)c(default)g(is)f(`)p Fn(off)p Fo('.)315 -1391 y Fn(history-preserve-point)555 1446 y Fo(If)21 -b(set)g(to)f(`)p Fn(on)p Fo(',)h(the)g(history)f(co)q(de)h(attempts)f -(to)g(place)h(the)g(p)q(oin)o(t)f(\(the)555 1501 y(curren)o(t)d(cursor) -h(p)q(osition\))e(at)h(the)h(same)f(lo)q(cation)f(on)i(eac)o(h)g -(history)e(line)555 1556 y(retriev)o(ed)i(with)f Fn(previous-history)f -Fo(or)i Fn(next-history)p Fo(.)27 b(The)18 b(default)555 -1611 y(is)d(`)p Fn(off)p Fo('.)315 1684 y Fn(history-size)555 -1738 y Fo(Set)20 b(the)f(maxim)o(um)g(n)o(um)o(b)q(er)h(of)f(history)f -(en)o(tries)h(sa)o(v)o(ed)g(in)g(the)h(history)555 1793 -y(list.)25 b(If)17 b(set)g(to)g(zero,)g(the)g(n)o(um)o(b)q(er)h(of)f -(en)o(tries)f(in)h(the)g(history)g(list)f(is)g(not)555 -1848 y(limited.)315 1921 y Fn(horizontal-scroll-mode)555 -1976 y Fo(This)i(v)m(ariable)f(can)h(b)q(e)g(set)g(to)f(either)h(`)p -Fn(on)p Fo(')f(or)g(`)p Fn(off)p Fo('.)27 b(Setting)18 -b(it)f(to)g(`)p Fn(on)p Fo(')555 2031 y(means)c(that)f(the)i(text)e(of) -h(the)g(lines)g(b)q(eing)g(edited)g(will)f(scroll)g(horizon)o(tally)555 -2086 y(on)k(a)f(single)g(screen)i(line)e(when)i(they)f(are)f(longer)g -(than)h(the)g(width)f(of)h(the)555 2140 y(screen,)e(instead)e(of)h -(wrapping)f(on)o(to)g(a)h(new)g(screen)h(line.)19 b(By)13 -b(default,)g(this)555 2195 y(v)m(ariable)i(is)f(set)h(to)g(`)p -Fn(off)p Fo('.)315 2268 y Fn(input-meta)555 2323 y Fo(If)h(set)f(to)g -(`)p Fn(on)p Fo(',)f(Readline)i(will)f(enable)g(eigh)o(t-bit)g(input)g -(\(it)g(will)f(not)h(clear)555 2378 y(the)20 b(eigh)o(th)f(bit)g(in)h -(the)g(c)o(haracters)f(it)g(reads\),)h(regardless)f(of)h(what)f(the)555 -2433 y(terminal)g(claims)g(it)g(can)h(supp)q(ort.)34 -b(The)20 b(default)g(v)m(alue)g(is)g(`)p Fn(off)p Fo('.)33 -b(The)555 2487 y(name)15 b Fn(meta-flag)f Fo(is)h(a)g(synon)o(ym)g(for) -f(this)h(v)m(ariable.)315 2560 y Fn(isearch-terminators)555 -2615 y Fo(The)26 b(string)f(of)g(c)o(haracters)g(that)g(should)h -(terminate)f(an)h(incremen)o(tal)555 2670 y(searc)o(h)12 -b(without)g(subsequen)o(tly)g(executing)h(the)f(c)o(haracter)g(as)g(a)g -(command)p eop end -%%Page: 7 10 -TeXDict begin 7 9 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(7)555 149 y(\(see)22 b(Section)g(1.2.5)f([Searc)o -(hing],)i(page)f(3\).)40 b(If)23 b(this)f(v)m(ariable)f(has)h(not)555 -204 y(b)q(een)d(giv)o(en)e(a)g(v)m(alue,)i(the)f(c)o(haracters)e -Fn(ESC)i Fo(and)g Fg(C-J)f Fo(will)f(terminate)h(an)555 -259 y(incremen)o(tal)d(searc)o(h.)315 344 y Fn(keymap)96 -b Fo(Sets)19 b(Readline's)h(idea)f(of)g(the)g(curren)o(t)h(k)o(eymap)f -(for)f(k)o(ey)i(binding)f(com-)555 399 y(mands.)41 b(Acceptable)22 -b Fn(keymap)g Fo(names)g(are)f Fn(emacs)p Fo(,)i Fn(emacs-standard)p -Fo(,)555 454 y Fn(emacs-meta)p Fo(,)49 b Fn(emacs-ctlx)p -Fo(,)g Fn(vi)p Fo(,)h Fn(vi-move)p Fo(,)f Fn(vi-command)p -Fo(,)g(and)555 509 y Fn(vi-insert)p Fo(.)31 b Fn(vi)20 -b Fo(is)f(equiv)m(alen)o(t)g(to)g Fn(vi-command)p Fo(;)g -Fn(emacs)g Fo(is)g(equiv)m(alen)o(t)555 563 y(to)c Fn(emacs-standard)p -Fo(.)20 b(The)d(default)e(v)m(alue)h(is)g Fn(emacs)p -Fo(.)21 b(The)16 b(v)m(alue)g(of)g(the)555 618 y Fn(editing-mode)e -Fo(v)m(ariable)g(also)g(a\013ects)h(the)g(default)g(k)o(eymap.)315 -703 y Fn(mark-directories)555 758 y Fo(If)k(set)g(to)g(`)p -Fn(on)p Fo(',)f(completed)h(directory)g(names)g(ha)o(v)o(e)f(a)h(slash) -g(app)q(ended.)555 813 y(The)c(default)g(is)g(`)p Fn(on)p -Fo('.)315 898 y Fn(mark-modified-lines)555 953 y Fo(This)j(v)m -(ariable,)f(when)i(set)e(to)h(`)p Fn(on)p Fo(',)f(causes)h(Readline)g -(to)f(displa)o(y)g(an)h(as-)555 1008 y(terisk)e(\(`)p -Fn(*)p Fo('\))f(at)i(the)f(start)g(of)h(history)e(lines)i(whic)o(h)f -(ha)o(v)o(e)h(b)q(een)h(mo)q(di\014ed.)555 1063 y(This)d(v)m(ariable)f -(is)h(`)p Fn(off)p Fo(')f(b)o(y)h(default.)315 1148 y -Fn(mark-symlinked-directories)555 1203 y Fo(If)23 b(set)f(to)f(`)p -Fn(on)p Fo(',)i(completed)f(names)h(whic)o(h)f(are)g(sym)o(b)q(olic)g -(links)f(to)h(di-)555 1258 y(rectories)g(ha)o(v)o(e)h(a)g(slash)f(app)q -(ended)j(\(sub)s(ject)e(to)f(the)i(v)m(alue)f(of)g Fn(mark-)555 -1312 y(directories)p Fo(\).)18 b(The)d(default)g(is)g(`)p -Fn(off)p Fo('.)315 1398 y Fn(match-hidden-files)555 1452 -y Fo(This)c(v)m(ariable,)g(when)g(set)g(to)g(`)p Fn(on)p -Fo(',)f(causes)h(Readline)h(to)e(matc)o(h)h(\014les)g(whose)555 -1507 y(names)22 b(b)q(egin)g(with)g(a)f(`)p Fn(.)p Fo(')h(\(hidden)g -(\014les\))g(when)g(p)q(erforming)g(\014lename)555 1562 -y(completion.)35 b(If)21 b(set)g(to)f(`)p Fn(off)p Fo(',)g(the)h -(leading)f(`)p Fn(.)p Fo(')g(m)o(ust)g(b)q(e)h(supplied)g(b)o(y)555 -1617 y(the)c(user)g(in)g(the)g(\014lename)h(to)e(b)q(e)i(completed.)25 -b(This)17 b(v)m(ariable)f(is)h(`)p Fn(on)p Fo(')f(b)o(y)555 -1672 y(default.)315 1757 y Fn(menu-complete-display-pref)o(ix)555 -1812 y Fo(If)h(set)g(to)f(`)p Fn(on)p Fo(',)f(men)o(u)i(completion)f -(displa)o(ys)g(the)h(common)f(pre\014x)i(of)e(the)555 -1866 y(list)i(of)g(p)q(ossible)g(completions)g(\(whic)o(h)h(ma)o(y)f(b) -q(e)h(empt)o(y\))f(b)q(efore)h(cycling)555 1921 y(through)c(the)g -(list.)k(The)c(default)g(is)g(`)p Fn(off)p Fo('.)315 -2006 y Fn(output-meta)555 2061 y Fo(If)j(set)f(to)g(`)p -Fn(on)p Fo(',)g(Readline)h(will)f(displa)o(y)g(c)o(haracters)f(with)i -(the)f(eigh)o(th)g(bit)555 2116 y(set)h(directly)g(rather)f(than)h(as)g -(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555 -2171 y(default)15 b(is)f(`)p Fn(off)p Fo('.)315 2256 -y Fn(page-completions)555 2311 y Fo(If)j(set)g(to)f(`)p -Fn(on)p Fo(',)g(Readline)h(uses)h(an)e(in)o(ternal)g -Fn(more)p Fo(-lik)o(e)g(pager)h(to)f(displa)o(y)555 2366 -y(a)g(screenful)g(of)g(p)q(ossible)g(completions)f(at)h(a)g(time.)22 -b(This)16 b(v)m(ariable)f(is)h(`)p Fn(on)p Fo(')555 2420 -y(b)o(y)f(default.)315 2506 y Fn(print-completions-horizont)o(ally)555 -2560 y Fo(If)d(set)g(to)f(`)p Fn(on)p Fo(',)h(Readline)g(will)e(displa) -o(y)i(completions)f(with)g(matc)o(hes)g(sorted)555 2615 -y(horizon)o(tally)20 b(in)h(alphab)q(etical)g(order,)i(rather)e(than)g -(do)o(wn)h(the)g(screen.)555 2670 y(The)15 b(default)g(is)g(`)p -Fn(off)p Fo('.)p eop end -%%Page: 8 11 -TeXDict begin 8 10 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(8)315 149 y Fn(revert-all-at-newline)555 -204 y Fo(If)15 b(set)g(to)f(`)p Fn(on)p Fo(',)f(Readline)i(will)f(undo) -h(all)f(c)o(hanges)g(to)h(history)e(lines)i(b)q(efore)555 -259 y(returning)f(when)h Fn(accept-line)e Fo(is)g(executed.)21 -b(By)14 b(default,)g(history)f(lines)555 314 y(ma)o(y)20 -b(b)q(e)i(mo)q(di\014ed)f(and)g(retain)f(individual)g(undo)i(lists)d -(across)i(calls)f(to)555 369 y Fn(readline)p Fo(.)f(The)c(default)g(is) -g(`)p Fn(off)p Fo('.)315 451 y Fn(show-all-if-ambiguous)555 -506 y Fo(This)g(alters)e(the)j(default)e(b)q(eha)o(vior)h(of)f(the)h -(completion)f(functions.)20 b(If)15 b(set)555 560 y(to)e(`)p -Fn(on)p Fo(',)g(w)o(ords)g(whic)o(h)g(ha)o(v)o(e)h(more)f(than)g(one)h -(p)q(ossible)g(completion)f(cause)555 615 y(the)20 b(matc)o(hes)f(to)f -(b)q(e)j(listed)d(immediately)g(instead)h(of)g(ringing)g(the)g(b)q -(ell.)555 670 y(The)c(default)g(v)m(alue)h(is)e(`)p Fn(off)p -Fo('.)315 752 y Fn(show-all-if-unmodified)555 807 y Fo(This)19 -b(alters)f(the)i(default)e(b)q(eha)o(vior)h(of)g(the)h(completion)e -(functions)h(in)g(a)555 862 y(fashion)12 b(similar)f(to)g -Fe(sho)o(w-all-if-am)o(biguous)r Fo(.)17 b(If)c(set)f(to)g(`)p -Fn(on)p Fo(',)f(w)o(ords)h(whic)o(h)555 917 y(ha)o(v)o(e)j(more)g(than) -g(one)h(p)q(ossible)f(completion)f(without)h(an)o(y)g(p)q(ossible)g -(par-)555 971 y(tial)20 b(completion)g(\(the)h(p)q(ossible)g -(completions)f(don't)h(share)g(a)f(common)555 1026 y(pre\014x\))15 -b(cause)h(the)f(matc)o(hes)g(to)f(b)q(e)i(listed)e(immediately)g -(instead)h(of)f(ring-)555 1081 y(ing)h(the)g(b)q(ell.)20 -b(The)15 b(default)g(v)m(alue)g(is)g(`)p Fn(off)p Fo('.)315 -1163 y Fn(skip-completed-text)555 1218 y Fo(If)i(set)f(to)g(`)p -Fn(on)p Fo(',)f(this)h(alters)f(the)i(default)f(completion)f(b)q(eha)o -(vior)h(when)h(in-)555 1273 y(serting)d(a)g(single)g(matc)o(h)g(in)o -(to)f(the)i(line.)k(It's)14 b(only)g(activ)o(e)g(when)h(p)q(erform-)555 -1328 y(ing)i(completion)f(in)h(the)h(middle)f(of)g(a)g(w)o(ord.)25 -b(If)18 b(enabled,)g(readline)f(do)q(es)555 1382 y(not)j(insert)g(c)o -(haracters)f(from)h(the)g(completion)f(that)h(matc)o(h)g(c)o(haracters) -555 1437 y(after)e(p)q(oin)o(t)g(in)g(the)g(w)o(ord)g(b)q(eing)h -(completed,)g(so)f(p)q(ortions)f(of)h(the)h(w)o(ord)555 -1492 y(follo)o(wing)14 b(the)h(cursor)h(are)g(not)f(duplicated.)22 -b(F)l(or)15 b(instance,)g(if)h(this)f(is)g(en-)555 1547 -y(abled,)21 b(attempting)e(completion)g(when)i(the)f(cursor)g(is)g -(after)g(the)g(`)p Fn(e)p Fo(')f(in)555 1601 y(`)p Fn(Makefile)p -Fo(')e(will)g(result)h(in)h(`)p Fn(Makefile)p Fo(')e(rather)h(than)h(`) -p Fn(Makefilefile)p Fo(',)555 1656 y(assuming)e(there)h(is)f(a)g -(single)g(p)q(ossible)g(completion.)27 b(The)18 b(default)f(v)m(alue) -555 1711 y(is)e(`)p Fn(off)p Fo('.)315 1793 y Fn(visible-stats)555 -1848 y Fo(If)h(set)g(to)f(`)p Fn(on)p Fo(',)g(a)h(c)o(haracter)f -(denoting)g(a)h(\014le's)g(t)o(yp)q(e)g(is)f(app)q(ended)j(to)d(the)555 -1903 y(\014lename)g(when)h(listing)e(p)q(ossible)h(completions.)j(The)e -(default)f(is)f(`)p Fn(off)p Fo('.)75 1985 y(Key)i(Bindings)315 -2040 y(The)21 b(syn)o(tax)f(for)h(con)o(trolling)e(k)o(ey)i(bindings)f -(in)h(the)g(init)f(\014le)h(is)g(simple.)37 b(First)19 -b(y)o(ou)315 2095 y(need)c(to)e(\014nd)h(the)g(name)g(of)g(the)f -(command)h(that)f(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19 -b(The)14 b(follo)o(wing)315 2149 y(sections)j(con)o(tain)h(tables)f(of) -g(the)h(command)g(name,)g(the)g(default)g(k)o(eybinding,)g(if)f(an)o(y) -l(,)315 2204 y(and)e(a)g(short)g(description)g(of)f(what)h(the)g -(command)g(do)q(es.)315 2273 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g -(of)g(the)g(command,)g(simply)f(place)h(on)g(a)f(line)h(in)g(the)g -(init)315 2328 y(\014le)f(the)g(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f -(wish)h(to)f(bind)h(the)g(command)g(to,)f(a)g(colon,)h(and)g(then)315 -2382 y(the)f(name)g(of)g(the)g(command.)22 b(There)17 -b(can)f(b)q(e)h(no)f(space)g(b)q(et)o(w)o(een)h(the)f(k)o(ey)g(name)g -(and)315 2437 y(the)k(colon)g({)g(that)g(will)f(b)q(e)i(in)o(terpreted) -f(as)g(part)g(of)g(the)h(k)o(ey)f(name.)35 b(The)21 b(name)f(of)315 -2492 y(the)d(k)o(ey)g(can)h(b)q(e)g(expressed)g(in)f(di\013eren)o(t)f -(w)o(a)o(ys,)h(dep)q(ending)h(on)f(what)g(y)o(ou)g(\014nd)h(most)315 -2547 y(comfortable.)315 2615 y(In)h(addition)e(to)g(command)h(names,)g -(readline)g(allo)o(ws)e(k)o(eys)i(to)f(b)q(e)i(b)q(ound)g(to)e(a)h -(string)315 2670 y(that)c(is)h(inserted)g(when)h(the)f(k)o(ey)g(is)g -(pressed)h(\(a)e Fe(macro)r Fo(\).)p eop end -%%Page: 9 12 -TeXDict begin 9 11 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1075 b(9)315 149 y Fe(k)o(eyname)s Fo(:)19 b -Fe(function-name)f Fo(or)d Fe(macro)555 204 y(k)o(eyname)i -Fo(is)d(the)g(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)h(out)f(in)g -(English.)19 b(F)l(or)13 b(example:)675 271 y Fn(Control-u:)22 -b(universal-argument)675 325 y(Meta-Rubout:)g(backward-kill-word)675 -380 y(Control-o:)g(">)i(output")555 447 y Fo(In)c(the)f(ab)q(o)o(v)o(e) -g(example,)h Fg(C-u)f Fo(is)g(b)q(ound)h(to)f(the)g(function)g -Fn(universal-)555 501 y(argument)p Fo(,)f Fg(M-DEL)h -Fo(is)f(b)q(ound)i(to)e(the)h(function)g Fn(backward-kill-word)p -Fo(,)555 556 y(and)h Fg(C-o)f Fo(is)g(b)q(ound)h(to)f(run)h(the)f -(macro)g(expressed)h(on)g(the)f(righ)o(t)g(hand)555 611 -y(side)c(\(that)f(is,)h(to)f(insert)h(the)g(text)g(`)p -Fn(>)f(output)p Fo(')g(in)o(to)h(the)g(line\).)555 677 -y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)g(c)o(haracter)g(names)g -(are)g(recognized)h(while)f(pro-)555 732 y(cessing)11 -b(this)f(k)o(ey)g(binding)h(syn)o(tax:)17 b Fe(DEL)p -Fo(,)10 b Fe(ESC)t Fo(,)h Fe(ESCAPE)s Fo(,)f Fe(LFD)r -Fo(,)g Fe(NEW-)555 787 y(LINE)s Fo(,)15 b Fe(RET)s Fo(,)h -Fe(RETURN)5 b Fo(,)15 b Fe(R)o(UBOUT)s Fo(,)h Fe(SP)l(A)o(CE)s -Fo(,)e Fe(SPC)t Fo(,)h(and)g Fe(T)l(AB)s Fo(.)315 865 -y Fn(")p Fe(k)o(eyseq)q Fn(")p Fo(:)20 b Fe(function-name)d -Fo(or)e Fe(macro)555 920 y(k)o(eyseq)i Fo(di\013ers)d(from)h -Fe(k)o(eyname)j Fo(ab)q(o)o(v)o(e)d(in)h(that)e(strings)h(denoting)g -(an)g(en-)555 975 y(tire)h(k)o(ey)h(sequence)h(can)f(b)q(e)g(sp)q -(eci\014ed,)h(b)o(y)f(placing)f(the)h(k)o(ey)g(sequence)h(in)555 -1029 y(double)d(quotes.)k(Some)c Fh(gnu)g Fo(Emacs)f(st)o(yle)g(k)o(ey) -h(escap)q(es)g(can)g(b)q(e)g(used,)g(as)555 1084 y(in)i(the)g(follo)o -(wing)d(example,)j(but)g(the)g(sp)q(ecial)g(c)o(haracter)f(names)h(are) -f(not)555 1139 y(recognized.)675 1205 y Fn("\\C-u":)23 -b(universal-argument)675 1260 y("\\C-x\\C-r":)f(re-read-init-file)675 -1315 y("\\e[11~":)h("Function)f(Key)i(1")555 1381 y Fo(In)33 -b(the)f(ab)q(o)o(v)o(e)g(example,)k Fg(C-u)c Fo(is)g(again)f(b)q(ound)i -(to)f(the)g(function)555 1436 y Fn(universal-argument)19 -b Fo(\(just)j(as)f(it)g(w)o(as)g(in)h(the)g(\014rst)f(example\),)i(`)p -Fg(C-x)555 1491 y(C-r)p Fo(')14 b(is)h(b)q(ound)h(to)f(the)g(function)g -Fn(re-read-init-file)p Fo(,)d(and)k(`)p Fn(ESC)e([)h(1)g(1)555 -1546 y(~)p Fo(')g(is)f(b)q(ound)j(to)d(insert)h(the)g(text)g(`)p -Fn(Function)e(Key)i(1)p Fo('.)315 1624 y(The)g(follo)o(wing)e -Fh(gnu)h Fo(Emacs)h(st)o(yle)f(escap)q(e)i(sequences)g(are)e(a)o(v)m -(ailable)g(when)h(sp)q(ecifying)315 1679 y(k)o(ey)g(sequences:)315 -1757 y Fg(\\C-)168 b Fo(con)o(trol)14 b(pre\014x)315 -1835 y Fg(\\M-)168 b Fo(meta)15 b(pre\014x)315 1913 y -Fg(\\e)192 b Fo(an)15 b(escap)q(e)h(c)o(haracter)315 -1991 y Fg(\\\\)192 b Fo(bac)o(kslash)315 2069 y Fg(\\)p -Fn(")g(")p Fo(,)15 b(a)g(double)g(quotation)f(mark)315 -2147 y Fg(\\')192 b Fn(')p Fo(,)15 b(a)g(single)f(quote)h(or)g(ap)q -(ostrophe)315 2225 y(In)f(addition)f(to)h(the)f Fh(gnu)h -Fo(Emacs)g(st)o(yle)e(escap)q(e)j(sequences,)g(a)e(second)i(set)e(of)h -(bac)o(kslash)315 2280 y(escap)q(es)i(is)f(a)o(v)m(ailable:)315 -2358 y Fn(\\a)192 b Fo(alert)14 b(\(b)q(ell\))315 2436 -y Fn(\\b)192 b Fo(bac)o(kspace)315 2514 y Fn(\\d)g Fo(delete)315 -2592 y Fn(\\f)g Fo(form)14 b(feed)315 2670 y Fn(\\n)192 -b Fo(newline)p eop end -%%Page: 10 13 -TeXDict begin 10 12 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(10)315 149 y Fn(\\r)192 b Fo(carriage)14 -b(return)315 226 y Fn(\\t)192 b Fo(horizon)o(tal)14 b(tab)315 -302 y Fn(\\v)192 b Fo(v)o(ertical)14 b(tab)315 378 y -Fn(\\)p Fg(nnn)144 b Fo(the)17 b(eigh)o(t-bit)f(c)o(haracter)h(whose)g -(v)m(alue)h(is)e(the)i(o)q(ctal)e(v)m(alue)i Fe(nnn)g -Fo(\(one)f(to)555 433 y(three)e(digits\))315 509 y Fn(\\x)p -Fg(HH)144 b Fo(the)20 b(eigh)o(t-bit)e(c)o(haracter)h(whose)h(v)m(alue) -g(is)f(the)h(hexadecimal)f(v)m(alue)h Fe(HH)555 564 y -Fo(\(one)15 b(or)g(t)o(w)o(o)f(hex)h(digits\))315 640 -y(When)k(en)o(tering)f(the)h(text)f(of)g(a)h(macro,)f(single)g(or)g -(double)h(quotes)g(m)o(ust)f(b)q(e)h(used)h(to)315 695 -y(indicate)10 b(a)h(macro)f(de\014nition.)18 b(Unquoted)11 -b(text)f(is)h(assumed)f(to)h(b)q(e)g(a)f(function)h(name.)18 -b(In)315 750 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o(kslash)f -(escap)q(es)h(describ)q(ed)h(ab)q(o)o(v)o(e)e(are)g(expanded.)20 -b(Bac)o(kslash)315 804 y(will)f(quote)g(an)o(y)h(other)g(c)o(haracter)f -(in)h(the)g(macro)f(text,)h(including)g(`)p Fn(")p Fo(')f(and)h(`)p -Fn(')p Fo('.)34 b(F)l(or)315 859 y(example,)13 b(the)g(follo)o(wing)d -(binding)j(will)f(mak)o(e)g(`)p Fg(C-x)i Fn(\\)p Fo(')f(insert)f(a)h -(single)f(`)p Fn(\\)p Fo(')g(in)o(to)g(the)h(line:)435 -925 y Fn("\\C-x\\\\":)23 b("\\\\")75 1021 y Fd(1.3.2)30 -b(Conditional)20 b(Init)g(Constructs)75 1094 y Fo(Readline)f(implemen)o -(ts)e(a)h(facilit)o(y)f(similar)f(in)i(spirit)g(to)f(the)i(conditional) -e(compilation)f(features)i(of)75 1149 y(the)d(C)h(prepro)q(cessor)f -(whic)o(h)g(allo)o(ws)f(k)o(ey)h(bindings)g(and)h(v)m(ariable)e -(settings)h(to)f(b)q(e)i(p)q(erformed)g(as)f(the)75 1204 -y(result)g(of)f(tests.)20 b(There)15 b(are)g(four)g(parser)g(directiv)o -(es)f(used.)75 1280 y Fn($if)168 b Fo(The)16 b Fn($if)f -Fo(construct)g(allo)o(ws)f(bindings)i(to)f(b)q(e)h(made)g(based)g(on)f -(the)h(editing)f(mo)q(de,)h(the)315 1335 y(terminal)i(b)q(eing)h(used,) -h(or)f(the)g(application)f(using)g(Readline.)32 b(The)19 -b(text)g(of)f(the)i(test)315 1390 y(extends)c(to)e(the)h(end)h(of)f -(the)g(line;)g(no)g(c)o(haracters)f(are)h(required)h(to)e(isolate)g -(it.)315 1466 y Fn(mode)144 b Fo(The)11 b Fn(mode=)e -Fo(form)h(of)g(the)h Fn($if)f Fo(directiv)o(e)f(is)h(used)h(to)f(test)g -(whether)h(Readline)555 1521 y(is)j(in)h Fn(emacs)f Fo(or)g -Fn(vi)g Fo(mo)q(de.)20 b(This)15 b(ma)o(y)f(b)q(e)h(used)g(in)g -(conjunction)g(with)f(the)555 1575 y(`)p Fn(set)g(keymap)p -Fo(')f(command,)g(for)h(instance,)f(to)g(set)h(bindings)f(in)h(the)g -Fn(emacs-)555 1630 y(standard)d Fo(and)i Fn(emacs-ctlx)e -Fo(k)o(eymaps)h(only)h(if)f(Readline)g(is)g(starting)f(out)555 -1685 y(in)k Fn(emacs)g Fo(mo)q(de.)315 1761 y Fn(term)144 -b Fo(The)14 b Fn(term=)e Fo(form)h(ma)o(y)g(b)q(e)h(used)g(to)f -(include)h(terminal-sp)q(eci\014c)f(k)o(ey)g(bind-)555 -1816 y(ings,)18 b(p)q(erhaps)h(to)e(bind)h(the)h(k)o(ey)e(sequences)j -(output)e(b)o(y)g(the)g(terminal's)555 1871 y(function)12 -b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)f(side)g(of)h -(the)g(`)p Fn(=)p Fo(')f(is)g(tested)h(against)555 1926 -y(b)q(oth)j(the)g(full)g(name)g(of)f(the)h(terminal)f(and)h(the)g(p)q -(ortion)g(of)f(the)h(terminal)555 1980 y(name)i(b)q(efore)g(the)g -(\014rst)f(`)p Fn(-)p Fo('.)24 b(This)16 b(allo)o(ws)f -Fn(sun)h Fo(to)g(matc)o(h)h(b)q(oth)f Fn(sun)h Fo(and)555 -2035 y Fn(sun-cmd)p Fo(,)d(for)g(instance.)315 2111 y -Fn(application)555 2166 y Fo(The)d Fe(application)f Fo(construct)h(is)f -(used)i(to)e(include)h(application-sp)q(eci\014c)g(set-)555 -2221 y(tings.)18 b(Eac)o(h)12 b(program)f(using)i(the)f(Readline)h -(library)e(sets)h(the)g Fe(application)555 2276 y(name)s -Fo(,)f(and)h(y)o(ou)f(can)h(test)e(for)h(a)g(particular)f(v)m(alue.)19 -b(This)11 b(could)h(b)q(e)g(used)g(to)555 2331 y(bind)17 -b(k)o(ey)f(sequences)i(to)d(functions)i(useful)f(for)g(a)g(sp)q -(eci\014c)h(program.)23 b(F)l(or)555 2385 y(instance,)16 -b(the)h(follo)o(wing)d(command)j(adds)f(a)g(k)o(ey)h(sequence)g(that)f -(quotes)555 2440 y(the)f(curren)o(t)g(or)g(previous)g(w)o(ord)f(in)i -(Bash:)675 2506 y Fn($if)23 b(Bash)675 2560 y(#)h(Quote)f(the)g -(current)g(or)h(previous)f(word)675 2615 y("\\C-xq":)g -("\\eb\\"\\ef\\"")675 2670 y($endif)p eop end -%%Page: 11 14 -TeXDict begin 11 13 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(11)75 149 y Fn($endif)96 b Fo(This)15 -b(command,)f(as)h(seen)h(in)f(the)g(previous)g(example,)g(terminates)f -(an)h Fn($if)f Fo(command.)75 229 y Fn($else)120 b Fo(Commands)15 -b(in)g(this)f(branc)o(h)i(of)e(the)i Fn($if)e Fo(directiv)o(e)h(are)g -(executed)h(if)f(the)g(test)g(fails.)75 309 y Fn($include)48 -b Fo(This)21 b(directiv)o(e)g(tak)o(es)g(a)h(single)f(\014lename)h(as)f -(an)h(argumen)o(t)f(and)h(reads)f(commands)315 364 y(and)e(bindings)h -(from)e(that)h(\014le.)32 b(F)l(or)19 b(example,)h(the)f(follo)o(wing)e -(directiv)o(e)i(reads)g(from)315 418 y(`)p Fn(/etc/inputrc)p -Fo(':)435 486 y Fn($include)k(/etc/inputrc)75 585 y Fd(1.3.3)30 -b(Sample)20 b(Init)h(File)75 659 y Fo(Here)13 b(is)g(an)g(example)g(of) -g(an)g Fe(inputrc)j Fo(\014le.)k(This)12 b(illustrates)g(k)o(ey)h -(binding,)g(v)m(ariable)g(assignmen)o(t,)f(and)75 714 -y(conditional)i(syn)o(tax.)p eop end -%%Page: 12 15 -TeXDict begin 12 14 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(12)195 204 y Fn(#)24 b(This)f(file)g(controls)g(the)h -(behaviour)e(of)i(line)f(input)g(editing)g(for)195 259 -y(#)h(programs)e(that)i(use)f(the)h(GNU)f(Readline)g(library.)47 -b(Existing)195 314 y(#)24 b(programs)e(include)h(FTP,)h(Bash,)f(and)g -(GDB.)195 369 y(#)195 423 y(#)h(You)f(can)h(re-read)f(the)g(inputrc)g -(file)g(with)h(C-x)f(C-r.)195 478 y(#)h(Lines)f(beginning)g(with)g('#') -g(are)h(comments.)195 533 y(#)195 588 y(#)g(First,)f(include)g(any)g -(systemwide)g(bindings)f(and)i(variable)195 643 y(#)g(assignments)e -(from)h(/etc/Inputrc)195 697 y($include)g(/etc/Inputrc)195 -807 y(#)195 862 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.) -195 971 y(set)g(editing-mode)g(emacs)195 1081 y($if)g(mode=emacs)195 -1191 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the) -f(function)g(name)g(is)h(ignored)p 1986 1201 21 38 v -195 1300 a(#)195 1355 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195 -1410 y(#)195 1465 y(#"\\M-OD":)190 b(backward-char)195 -1519 y(#"\\M-OC":)g(forward-char)195 1574 y(#"\\M-OA":)g -(previous-history)195 1629 y(#"\\M-OB":)g(next-history)195 -1684 y(#)195 1738 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195 -1793 y(#)195 1848 y("\\M-[D":)190 b(backward-char)195 -1903 y("\\M-[C":)g(forward-char)195 1958 y("\\M-[A":)g -(previous-history)195 2012 y("\\M-[B":)g(next-history)195 -2067 y(#)195 2122 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode) -195 2177 y(#)195 2232 y(#"\\M-\\C-OD":)165 b(backward-char)195 -2286 y(#"\\M-\\C-OC":)g(forward-char)195 2341 y(#"\\M-\\C-OA":)g -(previous-history)195 2396 y(#"\\M-\\C-OB":)g(next-history)195 -2451 y(#)195 2506 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode) -195 2560 y(#)195 2615 y(#"\\M-\\C-[D":)165 b(backward-char)195 -2670 y(#"\\M-\\C-[C":)g(forward-char)p eop end -%%Page: 13 16 -TeXDict begin 13 15 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(13)195 149 y Fn(#"\\M-\\C-[A":)165 b(previous-history) -195 204 y(#"\\M-\\C-[B":)g(next-history)195 314 y(C-q:)23 -b(quoted-insert)195 423 y($endif)195 533 y(#)h(An)f(old-style)g -(binding.)47 b(This)23 b(happens)g(to)g(be)h(the)f(default.)195 -588 y(TAB:)g(complete)195 697 y(#)h(Macros)f(that)g(are)h(convenient)e -(for)h(shell)h(interaction)195 752 y($if)f(Bash)195 807 -y(#)h(edit)f(the)g(path)195 862 y("\\C-xp":)g -("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195 917 y(#)h(prepare)f(to)g -(type)h(a)f(quoted)g(word)h(--)195 971 y(#)g(insert)f(open)g(and)h -(close)f(double)g(quotes)195 1026 y(#)h(and)f(move)g(to)h(just)f(after) -h(the)f(open)g(quote)195 1081 y("\\C-x\\"":)g("\\"\\"\\C-b")195 -1136 y(#)h(insert)f(a)g(backslash)g(\(testing)g(backslash)g(escapes)195 -1191 y(#)h(in)f(sequences)g(and)g(macros\))195 1245 y("\\C-x\\\\":)g -("\\\\")195 1300 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)195 -1355 y("\\C-xq":)g("\\eb\\"\\ef\\"")195 1410 y(#)h(Add)f(a)h(binding)f -(to)g(refresh)g(the)h(line,)f(which)g(is)h(unbound)195 -1465 y("\\C-xr":)f(redraw-current-line)195 1519 y(#)h(Edit)f(variable)g -(on)g(current)g(line.)195 1574 y("\\M-\\C-v":)f -("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)o(")195 1629 y($endif)195 -1738 y(#)i(use)f(a)h(visible)f(bell)g(if)h(one)f(is)h(available)195 -1793 y(set)f(bell-style)g(visible)195 1903 y(#)h(don't)f(strip)g -(characters)g(to)g(7)h(bits)f(when)h(reading)195 1958 -y(set)f(input-meta)g(on)195 2067 y(#)h(allow)f(iso-latin1)f(characters) -h(to)g(be)h(inserted)f(rather)195 2122 y(#)h(than)f(converted)g(to)g -(prefix-meta)g(sequences)195 2177 y(set)g(convert-meta)g(off)195 -2286 y(#)h(display)f(characters)f(with)h(the)h(eighth)f(bit)g(set)h -(directly)195 2341 y(#)g(rather)f(than)g(as)h(meta-prefixed)e -(characters)195 2396 y(set)h(output-meta)g(on)195 2506 -y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g(completions)f -(for)195 2560 y(#)i(a)f(word,)h(ask)f(the)h(user)f(if)g(he)h(wants)f -(to)h(see)f(all)h(of)f(them)195 2615 y(set)g(completion-query-items)e -(150)p eop end -%%Page: 14 17 -TeXDict begin 14 16 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(14)195 149 y Fn(#)24 b(For)f(FTP)195 -204 y($if)g(Ftp)195 259 y("\\C-xg":)g("get)g(\\M-?")195 -314 y("\\C-xt":)g("put)g(\\M-?")195 369 y("\\M-.":)g(yank-last-arg)195 -423 y($endif)75 539 y Fm(1.4)33 b(Bindable)22 b(Readline)f(Commands)75 -618 y Fo(This)12 b(section)h(describ)q(es)g(Readline)g(commands)g(that) -f(ma)o(y)g(b)q(e)i(b)q(ound)f(to)g(k)o(ey)f(sequences.)20 -b(Command)75 673 y(names)15 b(without)f(an)h(accompan)o(ying)g(k)o(ey)g -(sequence)h(are)f(un)o(b)q(ound)i(b)o(y)e(default.)137 -740 y(In)f(the)f(follo)o(wing)e(descriptions,)i Fe(p)q(oin)o(t)g -Fo(refers)g(to)g(the)g(curren)o(t)g(cursor)f(p)q(osition,)h(and)g -Fe(mark)i Fo(refers)75 795 y(to)k(a)g(cursor)g(p)q(osition)f(sa)o(v)o -(ed)h(b)o(y)h(the)f Fn(set-mark)g Fo(command.)32 b(The)20 -b(text)f(b)q(et)o(w)o(een)g(the)h(p)q(oin)o(t)f(and)75 -850 y(mark)c(is)f(referred)i(to)e(as)h(the)g Fe(region)p -Fo(.)75 948 y Fd(1.4.1)30 b(Commands)21 b(F)-5 b(or)19 -b(Mo)n(ving)75 1034 y Fn(beginning-of-line)13 b(\(C-a\))315 -1089 y Fo(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g(curren)o(t)g -(line.)75 1167 y Fn(end-of-line)f(\(C-e\))315 1222 y -Fo(Mo)o(v)o(e)g(to)h(the)g(end)h(of)f(the)g(line.)75 -1301 y Fn(forward-char)f(\(C-f\))315 1356 y Fo(Mo)o(v)o(e)g(forw)o(ard) -g(a)h(c)o(haracter.)75 1434 y Fn(backward-char)e(\(C-b\))315 -1489 y Fo(Mo)o(v)o(e)h(bac)o(k)h(a)g(c)o(haracter.)75 -1568 y Fn(forward-word)f(\(M-f\))315 1623 y Fo(Mo)o(v)o(e)g(forw)o(ard) -g(to)g(the)i(end)g(of)e(the)h(next)h(w)o(ord.)j(W)l(ords)c(are)f(comp)q -(osed)i(of)f(letters)f(and)315 1678 y(digits.)75 1756 -y Fn(backward-word)f(\(M-b\))315 1811 y Fo(Mo)o(v)o(e)j(bac)o(k)g(to)h -(the)f(start)g(of)g(the)h(curren)o(t)g(or)f(previous)h(w)o(ord.)24 -b(W)l(ords)16 b(are)h(comp)q(osed)315 1866 y(of)e(letters)f(and)h -(digits.)75 1945 y Fn(clear-screen)f(\(C-l\))315 2000 -y Fo(Clear)e(the)i(screen)g(and)f(redra)o(w)g(the)g(curren)o(t)g(line,) -g(lea)o(ving)g(the)g(curren)o(t)g(line)g(at)g(the)g(top)315 -2054 y(of)i(the)g(screen.)75 2133 y Fn(redraw-current-line)e(\(\))315 -2188 y Fo(Refresh)j(the)f(curren)o(t)g(line.)20 b(By)15 -b(default,)g(this)f(is)h(un)o(b)q(ound.)75 2287 y Fd(1.4.2)30 -b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f(History)75 -2372 y Fn(accept-line)14 b(\(Newline)g(or)h(Return\))315 -2427 y Fo(Accept)j(the)g(line)f(regardless)g(of)g(where)h(the)g(cursor) -f(is.)26 b(If)18 b(this)f(line)g(is)h(non-empt)o(y)l(,)g(it)315 -2482 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)f(list)f(for)i -(future)g(recall)f(with)g Fn(add_history\(\))p Fo(.)20 -b(If)d(this)315 2536 y(line)e(is)g(a)f(mo)q(di\014ed)i(history)e(line,) -h(the)g(history)f(line)h(is)g(restored)f(to)h(its)f(original)g(state.) -75 2615 y Fn(previous-history)f(\(C-p\))315 2670 y Fo(Mo)o(v)o(e)h -(`bac)o(k')h(through)f(the)i(history)e(list,)f(fetc)o(hing)i(the)g -(previous)g(command.)p eop end -%%Page: 15 18 -TeXDict begin 15 17 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(15)75 149 y Fn(next-history)14 b(\(C-n\))315 -204 y Fo(Mo)o(v)o(e)g(`forw)o(ard')f(through)i(the)h(history)e(list,)f -(fetc)o(hing)i(the)g(next)h(command.)75 286 y Fn(beginning-of-history)c -(\(M-<\))315 341 y Fo(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)g(in)g -(the)g(history)l(.)75 423 y Fn(end-of-history)e(\(M->\))315 -478 y Fo(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)g(history)l(,)f -(i.e.,)g(the)h(line)g(curren)o(tly)g(b)q(eing)g(en)o(tered.)75 -560 y Fn(reverse-search-history)d(\(C-r\))315 615 y Fo(Searc)o(h)k(bac) -o(kw)o(ard)e(starting)g(at)h(the)h(curren)o(t)f(line)h(and)f(mo)o(ving) -g(`up')g(through)g(the)h(his-)315 670 y(tory)e(as)h(necessary)l(.)20 -b(This)15 b(is)g(an)g(incremen)o(tal)f(searc)o(h.)75 -752 y Fn(forward-search-history)e(\(C-s\))315 807 y Fo(Searc)o(h)j -(forw)o(ard)e(starting)g(at)i(the)f(curren)o(t)h(line)f(and)h(mo)o -(ving)f(`do)o(wn')g(through)g(the)h(the)315 862 y(history)f(as)h -(necessary)l(.)20 b(This)15 b(is)g(an)g(incremen)o(tal)f(searc)o(h.)75 -944 y Fn(non-incremental-reverse-se)o(arch-hi)o(story)e(\(M-p\))315 -999 y Fo(Searc)o(h)k(bac)o(kw)o(ard)e(starting)g(at)h(the)h(curren)o(t) -f(line)h(and)f(mo)o(ving)g(`up')g(through)g(the)h(his-)315 -1054 y(tory)h(as)h(necessary)g(using)g(a)f(non-incremen)o(tal)h(searc)o -(h)g(for)f(a)h(string)f(supplied)h(b)o(y)g(the)315 1108 -y(user.)75 1191 y Fn(non-incremental-forward-se)o(arch-hi)o(story)12 -b(\(M-n\))315 1245 y Fo(Searc)o(h)j(forw)o(ard)e(starting)g(at)i(the)f -(curren)o(t)h(line)f(and)h(mo)o(ving)f(`do)o(wn')g(through)g(the)h(the) -315 1300 y(history)d(as)h(necessary)h(using)f(a)g(non-incremen)o(tal)g -(searc)o(h)g(for)g(a)g(string)f(supplied)i(b)o(y)f(the)315 -1355 y(user.)75 1437 y Fn(history-search-forward)f(\(\))315 -1492 y Fo(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)g(for)g -(the)h(string)f(of)g(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315 -1547 y(start)16 b(of)h(the)h(curren)o(t)g(line)f(and)g(the)h(p)q(oin)o -(t.)27 b(This)17 b(is)g(a)g(non-incremen)o(tal)g(searc)o(h.)27 -b(By)315 1601 y(default,)14 b(this)h(command)g(is)g(un)o(b)q(ound.)75 -1684 y Fn(history-search-backward)d(\(\))315 1738 y Fo(Searc)o(h)18 -b(bac)o(kw)o(ard)e(through)h(the)h(history)e(for)h(the)g(string)g(of)g -(c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1793 y(start)e(of)h(the)h -(curren)o(t)g(line)f(and)g(the)h(p)q(oin)o(t.)27 b(This)17 -b(is)g(a)g(non-incremen)o(tal)g(searc)o(h.)27 b(By)315 -1848 y(default,)14 b(this)h(command)g(is)g(un)o(b)q(ound.)75 -1930 y Fn(yank-nth-arg)f(\(M-C-y\))315 1985 y Fo(Insert)19 -b(the)f(\014rst)h(argumen)o(t)e(to)h(the)h(previous)f(command)g -(\(usually)g(the)h(second)g(w)o(ord)315 2040 y(on)d(the)g(previous)g -(line\))f(at)g(p)q(oin)o(t.)22 b(With)15 b(an)h(argumen)o(t)f -Fe(n)p Fo(,)h(insert)f(the)h Fe(n)p Fo(th)g(w)o(ord)g(from)315 -2095 y(the)i(previous)f(command)g(\(the)g(w)o(ords)g(in)g(the)h -(previous)f(command)g(b)q(egin)h(with)f(w)o(ord)315 2149 -y(0\).)33 b(A)20 b(negativ)o(e)f(argumen)o(t)g(inserts)g(the)h -Fe(n)p Fo(th)g(w)o(ord)f(from)g(the)h(end)g(of)f(the)h(previous)315 -2204 y(command.)k(Once)17 b(the)g(argumen)o(t)e Fe(n)i -Fo(is)f(computed,)h(the)f(argumen)o(t)g(is)g(extracted)g(as)g(if)315 -2259 y(the)f(`)p Fn(!)p Fg(n)5 b Fo(')15 b(history)f(expansion)h(had)g -(b)q(een)i(sp)q(eci\014ed.)75 2341 y Fn(yank-last-arg)c(\(M-.)i(or)g -(M-_\))315 2396 y Fo(Insert)j(last)e(argumen)o(t)h(to)g(the)g(previous) -h(command)f(\(the)g(last)g(w)o(ord)g(of)g(the)g(previous)315 -2451 y(history)f(en)o(try\).)24 b(With)16 b(a)g(n)o(umeric)h(argumen)o -(t,)f(b)q(eha)o(v)o(e)h(exactly)f(lik)o(e)g Fn(yank-nth-arg)p -Fo(.)315 2506 y(Successiv)o(e)d(calls)e(to)h Fn(yank-last-arg)f -Fo(mo)o(v)o(e)g(bac)o(k)i(through)f(the)g(history)g(list,)f(inserting) -315 2560 y(the)g(last)g(w)o(ord)f(\(or)h(the)g(w)o(ord)g(sp)q -(eci\014ed)h(b)o(y)f(the)h(argumen)o(t)e(to)h(the)g(\014rst)g(call\))f -(of)h(eac)o(h)g(line)315 2615 y(in)18 b(turn.)29 b(An)o(y)18 -b(n)o(umeric)g(argumen)o(t)g(supplied)g(to)g(these)g(successiv)o(e)h -(calls)e(determines)315 2670 y(the)g(direction)g(to)g(mo)o(v)o(e)g -(through)g(the)g(history)l(.)26 b(A)17 b(negativ)o(e)g(argumen)o(t)f -(switc)o(hes)h(the)p eop end -%%Page: 16 19 -TeXDict begin 16 18 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(16)315 149 y(direction)11 b(through)g(the)g(history)g -(\(bac)o(k)g(or)g(forw)o(ard\).)17 b(The)11 b(history)g(expansion)g -(facilities)315 204 y(are)i(used)i(to)e(extract)g(the)h(last)e(argumen) -o(t,)h(as)h(if)f(the)h(`)p Fn(!$)p Fo(')e(history)h(expansion)h(had)g -(b)q(een)315 259 y(sp)q(eci\014ed.)75 364 y Fd(1.4.3)30 -b(Commands)21 b(F)-5 b(or)19 b(Changing)i(T)-5 b(ext)75 -452 y Fn(delete-char)14 b(\(C-d\))315 507 y Fo(Delete)19 -b(the)h(c)o(haracter)e(at)h(p)q(oin)o(t.)32 b(If)20 b(p)q(oin)o(t)f(is) -g(at)f(the)i(b)q(eginning)g(of)f(the)g(line,)h(there)315 -562 y(are)e(no)h(c)o(haracters)e(in)i(the)f(line,)h(and)g(the)f(last)g -(c)o(haracter)f(t)o(yp)q(ed)i(w)o(as)f(not)g(b)q(ound)i(to)315 -617 y Fn(delete-char)p Fo(,)13 b(then)j(return)f Fh(eof)p -Fo(.)75 701 y Fn(backward-delete-char)d(\(Rubout\))315 -756 y Fo(Delete)j(the)g(c)o(haracter)f(b)q(ehind)i(the)g(cursor.)j(A)c -(n)o(umeric)g(argumen)o(t)f(means)i(to)e(kill)g(the)315 -811 y(c)o(haracters)g(instead)h(of)g(deleting)g(them.)75 -896 y Fn(forward-backward-delete-ch)o(ar)d(\(\))315 951 -y Fo(Delete)19 b(the)g(c)o(haracter)f(under)i(the)f(cursor,)h(unless)f -(the)g(cursor)g(is)g(at)f(the)h(end)h(of)f(the)315 1005 -y(line,)c(in)h(whic)o(h)g(case)f(the)h(c)o(haracter)g(b)q(ehind)g(the)g -(cursor)g(is)f(deleted.)22 b(By)16 b(default,)g(this)315 -1060 y(is)f(not)g(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 1145 -y Fn(quoted-insert)e(\(C-q)i(or)g(C-v\))315 1200 y Fo(Add)j(the)f(next) -g(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)e(v)o(erbatim.)25 -b(This)17 b(is)f(ho)o(w)h(to)g(insert)f(k)o(ey)315 1255 -y(sequences)g(lik)o(e)f Fg(C-q)p Fo(,)f(for)h(example.)75 -1339 y Fn(tab-insert)f(\(M-TAB\))315 1394 y Fo(Insert)h(a)g(tab)g(c)o -(haracter.)75 1479 y Fn(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o -(\))315 1534 y Fo(Insert)g(y)o(ourself.)75 1618 y Fn(transpose-chars)e -(\(C-t\))315 1673 y Fo(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h -(cursor)e(forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g -(cursor,)315 1728 y(mo)o(ving)h(the)g(cursor)h(forw)o(ard)e(as)i(w)o -(ell.)26 b(If)18 b(the)g(insertion)f(p)q(oin)o(t)g(is)g(at)g(the)h(end) -h(of)e(the)315 1783 y(line,)11 b(then)g(this)g(transp)q(oses)f(the)h -(last)f(t)o(w)o(o)g(c)o(haracters)g(of)h(the)g(line.)18 -b(Negativ)o(e)10 b(argumen)o(ts)315 1838 y(ha)o(v)o(e)15 -b(no)g(e\013ect.)75 1922 y Fn(transpose-words)e(\(M-t\))315 -1977 y Fo(Drag)i(the)h(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)g(past)g(the)g -(w)o(ord)f(after)h(p)q(oin)o(t,)f(mo)o(ving)g(p)q(oin)o(t)h(past)g -(that)315 2032 y(w)o(ord)d(as)h(w)o(ell.)19 b(If)14 b(the)g(insertion)g -(p)q(oin)o(t)f(is)h(at)g(the)g(end)h(of)e(the)i(line,)e(this)h(transp)q -(oses)g(the)315 2087 y(last)g(t)o(w)o(o)g(w)o(ords)g(on)i(the)f(line.) -75 2172 y Fn(upcase-word)f(\(M-u\))315 2226 y Fo(Upp)q(ercase)j(the)f -(curren)o(t)g(\(or)f(follo)o(wing\))e(w)o(ord.)22 b(With)15 -b(a)h(negativ)o(e)f(argumen)o(t,)g(upp)q(er-)315 2281 -y(case)g(the)g(previous)g(w)o(ord,)g(but)g(do)g(not)g(mo)o(v)o(e)f(the) -i(cursor.)75 2366 y Fn(downcase-word)d(\(M-l\))315 2421 -y Fo(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))e(w)o -(ord.)17 b(With)10 b(a)h(negativ)o(e)f(argumen)o(t,)g(lo)o(w)o(ercase) -315 2476 y(the)15 b(previous)g(w)o(ord,)f(but)i(do)f(not)g(mo)o(v)o(e)f -(the)h(cursor.)75 2560 y Fn(capitalize-word)e(\(M-c\))315 -2615 y Fo(Capitalize)c(the)i(curren)o(t)f(\(or)g(follo)o(wing\))e(w)o -(ord.)18 b(With)10 b(a)g(negativ)o(e)g(argumen)o(t,)g(capitalize)315 -2670 y(the)15 b(previous)g(w)o(ord,)f(but)i(do)f(not)g(mo)o(v)o(e)f -(the)h(cursor.)p eop end -%%Page: 17 20 -TeXDict begin 17 19 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(17)75 149 y Fn(overwrite-mode)13 b(\(\))315 -204 y Fo(T)l(oggle)i(o)o(v)o(erwrite)g(mo)q(de.)24 b(With)16 -b(an)g(explicit)g(p)q(ositiv)o(e)g(n)o(umeric)g(argumen)o(t,)g(switc)o -(hes)315 259 y(to)10 b(o)o(v)o(erwrite)f(mo)q(de.)19 -b(With)10 b(an)h(explicit)f(non-p)q(ositiv)o(e)g(n)o(umeric)h(argumen)o -(t,)f(switc)o(hes)h(to)315 314 y(insert)k(mo)q(de.)20 -b(This)15 b(command)g(a\013ects)g(only)g Fn(emacs)f Fo(mo)q(de;)h -Fn(vi)g Fo(mo)q(de)h(do)q(es)g(o)o(v)o(erwrite)315 369 -y(di\013eren)o(tly)l(.)j(Eac)o(h)c(call)f(to)h Fn(readline\(\))f -Fo(starts)f(in)j(insert)e(mo)q(de.)315 436 y(In)h(o)o(v)o(erwrite)e(mo) -q(de,)i(c)o(haracters)f(b)q(ound)h(to)f Fn(self-insert)f -Fo(replace)i(the)f(text)h(at)e(p)q(oin)o(t)315 491 y(rather)20 -b(than)h(pushing)g(the)g(text)f(to)g(the)h(righ)o(t.)35 -b(Characters)20 b(b)q(ound)i(to)e Fn(backward-)315 546 -y(delete-char)14 b Fo(replace)h(the)g(c)o(haracter)g(b)q(efore)g(p)q -(oin)o(t)g(with)f(a)h(space.)315 613 y(By)g(default,)g(this)f(command)h -(is)g(un)o(b)q(ound.)75 714 y Fd(1.4.4)30 b(Killing)20 -b(And)h(Y)-5 b(anking)75 800 y Fn(kill-line)14 b(\(C-k\))315 -855 y Fo(Kill)g(the)i(text)e(from)h(p)q(oin)o(t)g(to)f(the)h(end)h(of)f -(the)g(line.)75 935 y Fn(backward-kill-line)e(\(C-x)h(Rubout\))315 -990 y Fo(Kill)g(bac)o(kw)o(ard)h(to)f(the)i(b)q(eginning)f(of)g(the)g -(line.)75 1070 y Fn(unix-line-discard)e(\(C-u\))315 1125 -y Fo(Kill)h(bac)o(kw)o(ard)h(from)f(the)i(cursor)e(to)h(the)g(b)q -(eginning)h(of)e(the)i(curren)o(t)f(line.)75 1205 y Fn(kill-whole-line) -e(\(\))315 1260 y Fo(Kill)k(all)h(c)o(haracters)f(on)h(the)h(curren)o -(t)f(line,)g(no)g(matter)g(where)g(p)q(oin)o(t)g(is.)28 -b(By)19 b(default,)315 1315 y(this)c(is)f(un)o(b)q(ound.)75 -1395 y Fn(kill-word)g(\(M-d\))315 1450 y Fo(Kill)g(from)g(p)q(oin)o(t)g -(to)g(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)f(b)q(et)o -(w)o(een)h(w)o(ords,)e(to)i(the)f(end)315 1505 y(of)h(the)g(next)g(w)o -(ord.)20 b(W)l(ord)14 b(b)q(oundaries)i(are)f(the)g(same)g(as)g -Fn(forward-word)p Fo(.)75 1585 y Fn(backward-kill-word)e(\(M-DEL\))315 -1640 y Fo(Kill)h(the)g(w)o(ord)g(b)q(ehind)h(p)q(oin)o(t.)20 -b(W)l(ord)14 b(b)q(oundaries)g(are)g(the)h(same)f(as)g -Fn(backward-word)p Fo(.)75 1720 y Fn(unix-word-rubout)f(\(C-w\))315 -1775 y Fo(Kill)i(the)h(w)o(ord)f(b)q(ehind)i(p)q(oin)o(t,)e(using)h -(white)f(space)h(as)g(a)f(w)o(ord)g(b)q(oundary)l(.)23 -b(The)16 b(killed)315 1830 y(text)f(is)f(sa)o(v)o(ed)h(on)g(the)h -(kill-ring.)75 1910 y Fn(unix-filename-rubout)c(\(\))315 -1965 y Fo(Kill)17 b(the)i(w)o(ord)e(b)q(ehind)i(p)q(oin)o(t,)f(using)g -(white)g(space)g(and)h(the)f(slash)g(c)o(haracter)f(as)h(the)315 -2020 y(w)o(ord)d(b)q(oundaries.)20 b(The)15 b(killed)g(text)f(is)h(sa)o -(v)o(ed)g(on)g(the)g(kill-ring.)75 2100 y Fn(delete-horizontal-space)d -(\(\))315 2155 y Fo(Delete)j(all)f(spaces)h(and)h(tabs)e(around)i(p)q -(oin)o(t.)j(By)c(default,)g(this)f(is)h(un)o(b)q(ound.)75 -2235 y Fn(kill-region)f(\(\))315 2290 y Fo(Kill)g(the)i(text)e(in)h -(the)h(curren)o(t)f(region.)k(By)c(default,)g(this)f(command)h(is)g(un) -o(b)q(ound.)75 2370 y Fn(copy-region-as-kill)e(\(\))315 -2425 y Fo(Cop)o(y)j(the)i(text)e(in)h(the)g(region)f(to)h(the)g(kill)e -(bu\013er,)i(so)g(it)f(can)h(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)f(a)o(w)o -(a)o(y)l(.)315 2480 y(By)f(default,)g(this)f(command)h(is)g(un)o(b)q -(ound.)75 2560 y Fn(copy-backward-word)e(\(\))315 2615 -y Fo(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)g(to)f(the)i -(kill)e(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)g(are)g(the)315 -2670 y(same)c(as)g Fn(backward-word)p Fo(.)j(By)d(default,)f(this)h -(command)g(is)g(un)o(b)q(ound.)p eop end -%%Page: 18 21 -TeXDict begin 18 20 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(18)75 149 y Fn(copy-forward-word)13 b(\(\))315 -204 y Fo(Cop)o(y)i(the)h(w)o(ord)e(follo)o(wing)g(p)q(oin)o(t)h(to)g -(the)g(kill)g(bu\013er.)20 b(The)c(w)o(ord)f(b)q(oundaries)h(are)f(the) -315 259 y(same)g(as)g Fn(forward-word)p Fo(.)j(By)d(default,)g(this)f -(command)h(is)g(un)o(b)q(ound.)75 342 y Fn(yank)g(\(C-y\))315 -397 y Fo(Y)l(ank)g(the)h(top)f(of)f(the)i(kill)e(ring)g(in)o(to)g(the)i -(bu\013er)f(at)f(p)q(oin)o(t.)75 479 y Fn(yank-pop)g(\(M-y\))315 -534 y Fo(Rotate)j(the)g(kill-ring,)f(and)h(y)o(ank)g(the)h(new)f(top.) -26 b(Y)l(ou)17 b(can)h(only)f(do)g(this)g(if)f(the)i(prior)315 -589 y(command)d(is)g Fn(yank)f Fo(or)h Fn(yank-pop)p -Fo(.)75 692 y Fd(1.4.5)30 b(Sp)r(ecifying)20 b(Numeric)h(Argumen)n(ts) -75 779 y Fn(digit-argument)13 b(\()p Fg(M-0)p Fn(,)i -Fg(M-1)p Fn(,)f(...)h Fg(M--)p Fn(\))315 834 y Fo(Add)f(this)f(digit)f -(to)h(the)h(argumen)o(t)e(already)h(accum)o(ulating,)f(or)h(start)f(a)h -(new)h(argumen)o(t.)315 889 y Fg(M--)h Fo(starts)f(a)h(negativ)o(e)f -(argumen)o(t.)75 971 y Fn(universal-argument)f(\(\))315 -1026 y Fo(This)f(is)h(another)f(w)o(a)o(y)g(to)g(sp)q(ecify)h(an)g -(argumen)o(t.)18 b(If)13 b(this)f(command)h(is)f(follo)o(w)o(ed)f(b)o -(y)i(one)315 1081 y(or)h(more)h(digits,)e(optionally)g(with)h(a)h -(leading)f(min)o(us)g(sign,)g(those)h(digits)e(de\014ne)j(the)f(ar-)315 -1136 y(gumen)o(t.)k(If)c(the)g(command)f(is)g(follo)o(w)o(ed)f(b)o(y)i -(digits,)e(executing)h Fn(universal-argument)315 1191 -y Fo(again)h(ends)h(the)g(n)o(umeric)g(argumen)o(t,)f(but)h(is)g -(otherwise)f(ignored.)21 b(As)16 b(a)g(sp)q(ecial)f(case,)315 -1245 y(if)h(this)g(command)g(is)g(immediately)f(follo)o(w)o(ed)g(b)o(y) -h(a)g(c)o(haracter)g(that)g(is)g(neither)g(a)g(digit)315 -1300 y(or)d(min)o(us)h(sign,)f(the)h(argumen)o(t)g(coun)o(t)f(for)h -(the)g(next)g(command)g(is)f(m)o(ultiplied)g(b)o(y)h(four.)315 -1355 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)g(initially)f(one,)i(so)f -(executing)h(this)f(function)h(the)f(\014rst)h(time)315 -1410 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g -(time)f(mak)o(es)h(the)g(argumen)o(t)f(coun)o(t)g(six-)315 -1465 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)g(this)f(is)h(not)g -(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1567 y Fd(1.4.6)30 -b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5 -b(ou)75 1655 y Fn(complete)14 b(\(TAB\))315 1709 y Fo(A)o(ttempt)c(to)h -(p)q(erform)g(completion)g(on)g(the)g(text)g(b)q(efore)h(p)q(oin)o(t.) -18 b(The)11 b(actual)g(completion)315 1764 y(p)q(erformed)k(is)g -(application-sp)q(eci\014c.)20 b(The)15 b(default)g(is)g(\014lename)g -(completion.)75 1847 y Fn(possible-completions)d(\(M-?\))315 -1902 y Fo(List)17 b(the)g(p)q(ossible)g(completions)g(of)g(the)g(text)g -(b)q(efore)h(p)q(oin)o(t.)25 b(When)18 b(displa)o(ying)e(com-)315 -1957 y(pletions,)f(Readline)i(sets)f(the)g(n)o(um)o(b)q(er)h(of)e -(columns)h(used)h(for)f(displa)o(y)f(to)h(the)g(v)m(alue)g(of)315 -2011 y Fn(completion-display-width)p Fo(,)f(the)k(v)m(alue)f(of)g(the)g -(en)o(vironmen)o(t)g(v)m(ariable)f Fn(COLUMNS)p Fo(,)315 -2066 y(or)e(the)g(screen)h(width,)e(in)h(that)g(order.)75 -2149 y Fn(insert-completions)e(\(M-*\))315 2204 y Fo(Insert)j(all)e -(completions)g(of)h(the)g(text)g(b)q(efore)h(p)q(oin)o(t)e(that)h(w)o -(ould)g(ha)o(v)o(e)g(b)q(een)h(generated)315 2258 y(b)o(y)f -Fn(possible-completions)p Fo(.)75 2341 y Fn(menu-complete)e(\(\))315 -2396 y Fo(Similar)d(to)i Fn(complete)p Fo(,)f(but)h(replaces)g(the)g(w) -o(ord)f(to)g(b)q(e)i(completed)e(with)h(a)f(single)h(matc)o(h)315 -2451 y(from)18 b(the)h(list)f(of)g(p)q(ossible)h(completions.)30 -b(Rep)q(eated)20 b(execution)f(of)g Fn(menu-complete)315 -2506 y Fo(steps)h(through)g(the)g(list)f(of)h(p)q(ossible)g -(completions,)g(inserting)f(eac)o(h)h(matc)o(h)f(in)h(turn.)315 -2560 y(A)o(t)e(the)g(end)h(of)f(the)h(list)e(of)h(completions,)g(the)g -(b)q(ell)h(is)e(rung)i(\(sub)s(ject)f(to)f(the)i(setting)315 -2615 y(of)f Fn(bell-style)p Fo(\))e(and)i(the)g(original)e(text)i(is)f -(restored.)28 b(An)19 b(argumen)o(t)e(of)g Fe(n)i Fo(mo)o(v)o(es)e -Fe(n)315 2670 y Fo(p)q(ositions)f(forw)o(ard)g(in)i(the)f(list)f(of)h -(matc)o(hes;)h(a)f(negativ)o(e)f(argumen)o(t)h(ma)o(y)g(b)q(e)h(used)g -(to)p eop end -%%Page: 19 22 -TeXDict begin 19 21 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(19)315 149 y(mo)o(v)o(e)18 b(bac)o(kw)o(ard)h(through)g -(the)g(list.)30 b(This)19 b(command)g(is)g(in)o(tended)g(to)g(b)q(e)h -(b)q(ound)g(to)315 204 y Fn(TAB)p Fo(,)14 b(but)i(is)e(un)o(b)q(ound)j -(b)o(y)e(default.)75 277 y Fn(menu-complete-backward)d(\(\))315 -332 y Fo(Iden)o(tical)17 b(to)g Fn(menu-complete)p Fo(,)f(but)i(mo)o(v) -o(es)e(bac)o(kw)o(ard)h(through)g(the)h(list)e(of)h(p)q(ossible)315 -387 y(completions,)d(as)h(if)f Fn(menu-complete)g Fo(had)h(b)q(een)h -(giv)o(en)f(a)g(negativ)o(e)f(argumen)o(t.)75 459 y Fn -(delete-char-or-list)f(\(\))315 514 y Fo(Deletes)g(the)g(c)o(haracter)g -(under)h(the)g(cursor)f(if)g(not)g(at)g(the)g(b)q(eginning)h(or)f(end)h -(of)f(the)g(line)315 569 y(\(lik)o(e)g Fn(delete-char)p -Fo(\).)18 b(If)d(at)f(the)h(end)g(of)f(the)g(line,)g(b)q(eha)o(v)o(es)h -(iden)o(tically)e(to)h Fn(possible-)315 624 y(completions)p -Fo(.)k(This)d(command)g(is)g(un)o(b)q(ound)h(b)o(y)f(default.)75 -716 y Fd(1.4.7)30 b(Keyb)r(oard)20 b(Macros)75 799 y -Fn(start-kbd-macro)13 b(\(C-x)i(\(\))315 854 y Fo(Begin)g(sa)o(ving)f -(the)i(c)o(haracters)e(t)o(yp)q(ed)i(in)o(to)e(the)h(curren)o(t)g(k)o -(eyb)q(oard)g(macro.)75 926 y Fn(end-kbd-macro)e(\(C-x)i(\)\))315 -981 y Fo(Stop)f(sa)o(ving)e(the)i(c)o(haracters)f(t)o(yp)q(ed)h(in)o -(to)e(the)i(curren)o(t)g(k)o(eyb)q(oard)f(macro)g(and)h(sa)o(v)o(e)f -(the)315 1036 y(de\014nition.)75 1109 y Fn(call-last-kbd-macro)g(\(C-x) -h(e\))315 1164 y Fo(Re-execute)19 b(the)f(last)e(k)o(eyb)q(oard)i -(macro)f(de\014ned,)i(b)o(y)e(making)g(the)h(c)o(haracters)e(in)i(the) -315 1218 y(macro)c(app)q(ear)i(as)f(if)f(t)o(yp)q(ed)i(at)e(the)i(k)o -(eyb)q(oard.)75 1311 y Fd(1.4.8)30 b(Some)20 b(Miscellaneous)h -(Commands)75 1394 y Fn(re-read-init-file)13 b(\(C-x)h(C-r\))315 -1448 y Fo(Read)e(in)e(the)h(con)o(ten)o(ts)g(of)f(the)h -Fe(inputrc)j Fo(\014le,)d(and)h(incorp)q(orate)e(an)o(y)g(bindings)h -(or)g(v)m(ariable)315 1503 y(assignmen)o(ts)j(found)i(there.)75 -1576 y Fn(abort)e(\(C-g\))315 1631 y Fo(Ab)q(ort)f(the)g(curren)o(t)h -(editing)e(command)h(and)h(ring)e(the)i(terminal's)d(b)q(ell)i(\(sub)s -(ject)g(to)g(the)315 1685 y(setting)h(of)h Fn(bell-style)p -Fo(\).)75 1758 y Fn(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p -Fg(x)5 b Fn(,)15 b(...\))315 1813 y Fo(If)f(the)g(meta\014ed)g(c)o -(haracter)f Fe(x)k Fo(is)c(lo)o(w)o(ercase,)g(run)h(the)g(command)f -(that)h(is)f(b)q(ound)i(to)e(the)315 1868 y(corresp)q(onding)i(upp)q -(ercase)h(c)o(haracter.)75 1941 y Fn(prefix-meta)e(\(ESC\))315 -1995 y Fo(Metafy)k(the)h(next)g(c)o(haracter)f(t)o(yp)q(ed.)30 -b(This)19 b(is)f(for)g(k)o(eyb)q(oards)h(without)f(a)g(meta)g(k)o(ey)l -(.)315 2050 y(T)o(yping)d(`)p Fn(ESC)f(f)p Fo(')h(is)f(equiv)m(alen)o -(t)h(to)g(t)o(yping)f Fg(M-f)p Fo(.)75 2123 y Fn(undo)h(\(C-_)f(or)h -(C-x)g(C-u\))315 2178 y Fo(Incremen)o(tal)g(undo,)g(separately)g(remem) -o(b)q(ered)h(for)e(eac)o(h)h(line.)75 2250 y Fn(revert-line)f(\(M-r\)) -315 2305 y Fo(Undo)j(all)e(c)o(hanges)i(made)f(to)g(this)g(line.)24 -b(This)16 b(is)g(lik)o(e)g(executing)g(the)h Fn(undo)f -Fo(command)315 2360 y(enough)g(times)e(to)h(get)f(bac)o(k)h(to)g(the)g -(b)q(eginning.)75 2433 y Fn(tilde-expand)f(\(M-~\))315 -2488 y Fo(P)o(erform)g(tilde)h(expansion)g(on)g(the)g(curren)o(t)g(w)o -(ord.)75 2560 y Fn(set-mark)f(\(C-@\))315 2615 y Fo(Set)i(the)h(mark)f -(to)f(the)i(p)q(oin)o(t.)23 b(If)17 b(a)f(n)o(umeric)g(argumen)o(t)g -(is)f(supplied,)i(the)g(mark)e(is)h(set)315 2670 y(to)f(that)f(p)q -(osition.)p eop end -%%Page: 20 23 -TeXDict begin 20 22 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(20)75 149 y Fn(exchange-point-and-mark)12 -b(\(C-x)j(C-x\))315 204 y Fo(Sw)o(ap)g(the)h(p)q(oin)o(t)f(with)g(the)h -(mark.)k(The)c(curren)o(t)f(cursor)h(p)q(osition)e(is)h(set)h(to)f(the) -g(sa)o(v)o(ed)315 259 y(p)q(osition,)f(and)h(the)h(old)e(cursor)h(p)q -(osition)f(is)h(sa)o(v)o(ed)g(as)g(the)g(mark.)75 355 -y Fn(character-search)e(\(C-]\))315 410 y Fo(A)f(c)o(haracter)g(is)g -(read)h(and)f(p)q(oin)o(t)g(is)g(mo)o(v)o(ed)g(to)g(the)g(next)h(o)q -(ccurrence)g(of)f(that)g(c)o(haracter.)315 465 y(A)j(negativ)o(e)g -(coun)o(t)g(searc)o(hes)g(for)f(previous)h(o)q(ccurrences.)75 -561 y Fn(character-search-backward)d(\(M-C-]\))315 616 -y Fo(A)22 b(c)o(haracter)g(is)g(read)g(and)h(p)q(oin)o(t)f(is)g(mo)o(v) -o(ed)g(to)g(the)g(previous)g(o)q(ccurrence)i(of)e(that)315 -671 y(c)o(haracter.)d(A)c(negativ)o(e)g(coun)o(t)g(searc)o(hes)g(for)f -(subsequen)o(t)i(o)q(ccurrences.)75 767 y Fn(skip-csi-sequence)d(\(\)) -315 822 y Fo(Read)h(enough)g(c)o(haracters)f(to)g(consume)h(a)g(m)o -(ulti-k)o(ey)e(sequence)j(suc)o(h)f(as)f(those)h(de\014ned)315 -877 y(for)k(k)o(eys)g(lik)o(e)g(Home)h(and)g(End.)30 -b(Suc)o(h)19 b(sequences)h(b)q(egin)f(with)f(a)g(Con)o(trol)f(Sequence) -315 932 y(Indicator)h(\(CSI\),)g(usually)f(ESC-[.)29 -b(If)19 b(this)f(sequence)h(is)f(b)q(ound)h(to)f Fn("\\)p -Fo(e[)p Fn(")p Fo(,)g(k)o(eys)g(pro-)315 987 y(ducing)e(suc)o(h)h -(sequences)g(will)d(ha)o(v)o(e)i(no)g(e\013ect)g(unless)g(explicitly)e -(b)q(ound)j(to)f(a)f(readline)315 1041 y(command,)h(instead)f(of)h -(inserting)f(stra)o(y)f(c)o(haracters)i(in)o(to)f(the)h(editing)f -(bu\013er.)22 b(This)15 b(is)315 1096 y(un)o(b)q(ound)h(b)o(y)g -(default,)e(but)h(usually)g(b)q(ound)h(to)f(ESC-[.)75 -1193 y Fn(insert-comment)e(\(M-#\))315 1247 y Fo(Without)k(a)g(n)o -(umeric)h(argumen)o(t,)f(the)h(v)m(alue)g(of)g(the)f -Fn(comment-begin)f Fo(v)m(ariable)i(is)f(in-)315 1302 -y(serted)f(at)f(the)h(b)q(eginning)g(of)f(the)h(curren)o(t)g(line.)21 -b(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)g(supplied,)315 -1357 y(this)j(command)g(acts)g(as)f(a)h(toggle:)25 b(if)18 -b(the)g(c)o(haracters)g(at)f(the)i(b)q(eginning)f(of)g(the)g(line)315 -1412 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)h(of)f Fn(comment-begin)p -Fo(,)e(the)i(v)m(alue)h(is)f(inserted,)f(otherwise)h(the)315 -1467 y(c)o(haracters)k(in)h Fn(comment-begin)e Fo(are)i(deleted)h(from) -e(the)h(b)q(eginning)g(of)g(the)g(line.)34 b(In)315 1521 -y(either)15 b(case,)g(the)g(line)g(is)g(accepted)g(as)g(if)g(a)g -(newline)g(had)g(b)q(een)i(t)o(yp)q(ed.)75 1618 y Fn(dump-functions)c -(\(\))315 1673 y Fo(Prin)o(t)f(all)g(of)h(the)g(functions)g(and)h -(their)f(k)o(ey)g(bindings)g(to)f(the)i(Readline)f(output)g(stream.)315 -1727 y(If)j(a)g(n)o(umeric)f(argumen)o(t)g(is)h(supplied,)g(the)g -(output)f(is)h(formatted)e(in)i(suc)o(h)g(a)g(w)o(a)o(y)f(that)315 -1782 y(it)f(can)i(b)q(e)g(made)f(part)f(of)h(an)g Fe(inputrc)j -Fo(\014le.)i(This)15 b(command)g(is)g(un)o(b)q(ound)h(b)o(y)f(default.) -75 1879 y Fn(dump-variables)e(\(\))315 1934 y Fo(Prin)o(t)d(all)f(of)h -(the)h(settable)f(v)m(ariables)g(and)h(their)f(v)m(alues)h(to)f(the)h -(Readline)g(output)f(stream.)315 1988 y(If)16 b(a)g(n)o(umeric)f -(argumen)o(t)g(is)h(supplied,)g(the)g(output)f(is)h(formatted)e(in)i -(suc)o(h)g(a)g(w)o(a)o(y)f(that)315 2043 y(it)f(can)i(b)q(e)g(made)f -(part)f(of)h(an)g Fe(inputrc)j Fo(\014le.)i(This)15 b(command)g(is)g -(un)o(b)q(ound)h(b)o(y)f(default.)75 2140 y Fn(dump-macros)f(\(\))315 -2194 y Fo(Prin)o(t)i(all)g(of)g(the)h(Readline)g(k)o(ey)g(sequences)h -(b)q(ound)g(to)e(macros)g(and)h(the)g(strings)f(they)315 -2249 y(output.)26 b(If)18 b(a)f(n)o(umeric)g(argumen)o(t)g(is)g -(supplied,)h(the)f(output)g(is)g(formatted)f(in)i(suc)o(h)f(a)315 -2304 y(w)o(a)o(y)d(that)g(it)h(can)g(b)q(e)g(made)g(part)g(of)f(an)h -Fe(inputrc)j Fo(\014le.)i(This)14 b(command)h(is)g(un)o(b)q(ound)h(b)o -(y)315 2359 y(default.)75 2455 y Fn(emacs-editing-mode)d(\(C-e\))315 -2510 y Fo(When)j(in)f Fn(vi)f Fo(command)i(mo)q(de,)f(this)f(causes)i -(a)f(switc)o(h)f(to)h Fn(emacs)f Fo(editing)h(mo)q(de.)75 -2606 y Fn(vi-editing-mode)e(\(M-C-j\))315 2661 y Fo(When)j(in)f -Fn(emacs)f Fo(editing)h(mo)q(de,)g(this)f(causes)i(a)f(switc)o(h)f(to)h -Fn(vi)f Fo(editing)h(mo)q(de.)p eop end -%%Page: 21 24 -TeXDict begin 21 23 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h -(Editing)1053 b(21)75 149 y Fm(1.5)33 b(Readline)21 b(vi)i(Mo)r(de)75 -229 y Fo(While)15 b(the)h(Readline)g(library)f(do)q(es)h(not)f(ha)o(v)o -(e)g(a)h(full)f(set)h(of)f Fn(vi)g Fo(editing)g(functions,)h(it)f(do)q -(es)h(con)o(tain)75 284 y(enough)h(to)g(allo)o(w)e(simple)h(editing)h -(of)f(the)i(line.)25 b(The)17 b(Readline)g Fn(vi)g Fo(mo)q(de)g(b)q -(eha)o(v)o(es)g(as)g(sp)q(eci\014ed)h(in)75 339 y(the)d -Fh(posix)g Fo(standard.)137 406 y(In)g(order)g(to)f(switc)o(h)f(in)o -(teractiv)o(ely)g(b)q(et)o(w)o(een)i Fn(emacs)e Fo(and)i -Fn(vi)f Fo(editing)g(mo)q(des,)h(use)f(the)h(command)75 -461 y Fg(M-C-j)j Fo(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)h(when)g -(in)g Fn(vi)g Fo(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)h(in)g -Fn(emacs)75 516 y Fo(mo)q(de\).)h(The)15 b(Readline)h(default)f(is)f -Fn(emacs)h Fo(mo)q(de.)137 583 y(When)h(y)o(ou)e(en)o(ter)h(a)g(line)g -(in)f Fn(vi)h Fo(mo)q(de,)g(y)o(ou)g(are)f(already)h(placed)g(in)g -(`insertion')e(mo)q(de,)i(as)g(if)f(y)o(ou)75 638 y(had)h(t)o(yp)q(ed)g -(an)g(`)p Fn(i)p Fo('.)j(Pressing)c Fn(ESC)h Fo(switc)o(hes)f(y)o(ou)g -(in)o(to)g(`command')g(mo)q(de,)g(where)h(y)o(ou)g(can)f(edit)h(the)75 -692 y(text)h(of)h(the)g(line)f(with)h(the)g(standard)f -Fn(vi)h Fo(mo)o(v)o(emen)o(t)f(k)o(eys,)g(mo)o(v)o(e)g(to)h(previous)f -(history)g(lines)h(with)75 747 y(`)p Fn(k)p Fo(')d(and)i(subsequen)o(t) -f(lines)g(with)g(`)p Fn(j)p Fo(',)f(and)h(so)g(forth.)p -eop end -%%Page: 22 25 -TeXDict begin 22 24 bop 75 -58 a Fo(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(22)75 149 -y Fk(App)r(endix)26 b(A)41 b(GNU)27 b(F)-7 b(ree)26 b(Do)r(cumen)n -(tation)j(License)679 251 y Fo(V)l(ersion)15 b(1.3,)f(3)h(No)o(v)o(em)o -(b)q(er)g(2008)195 318 y(Cop)o(yrigh)o(t)421 317 y(c)409 -318 y Fl(\015)g Fo(2000,)f(2001,)f(2002,)h(2007,)g(2008)g(F)l(ree)h -(Soft)o(w)o(are)f(F)l(oundation,)g(Inc.)195 373 y Fn(http://fsf.org/) -195 482 y Fo(Ev)o(ery)o(one)h(is)f(p)q(ermitted)h(to)g(cop)o(y)g(and)g -(distribute)g(v)o(erbatim)f(copies)195 537 y(of)h(this)f(license)i(do)q -(cumen)o(t,)f(but)g(c)o(hanging)g(it)f(is)h(not)g(allo)o(w)o(ed.)100 -603 y(0.)29 b(PREAMBLE)165 670 y(The)19 b(purp)q(ose)g(of)f(this)g -(License)i(is)e(to)g(mak)o(e)g(a)g(man)o(ual,)g(textb)q(o)q(ok,)h(or)f -(other)g(functional)g(and)165 725 y(useful)d(do)q(cumen)o(t)h -Fe(free)h Fo(in)e(the)g(sense)h(of)f(freedom:)k(to)c(assure)g(ev)o(ery) -o(one)f(the)i(e\013ectiv)o(e)e(freedom)165 780 y(to)h(cop)o(y)h(and)g -(redistribute)f(it,)f(with)h(or)g(without)g(mo)q(difying)g(it,)g -(either)g(commercially)f(or)i(non-)165 834 y(commercially)l(.)25 -b(Secondarily)l(,)17 b(this)g(License)h(preserv)o(es)f(for)g(the)g -(author)g(and)h(publisher)f(a)g(w)o(a)o(y)165 889 y(to)g(get)h(credit)g -(for)f(their)h(w)o(ork,)f(while)h(not)g(b)q(eing)g(considered)g(resp)q -(onsible)g(for)g(mo)q(di\014cations)165 944 y(made)d(b)o(y)g(others.) -165 1010 y(This)c(License)i(is)e(a)g(kind)h(of)f(\\cop)o(yleft",)f -(whic)o(h)i(means)f(that)g(deriv)m(ativ)o(e)g(w)o(orks)g(of)g(the)h(do) -q(cumen)o(t)165 1065 y(m)o(ust)k(themselv)o(es)h(b)q(e)h(free)e(in)h -(the)g(same)g(sense.)26 b(It)16 b(complemen)o(ts)h(the)g(GNU)g(General) -f(Public)165 1120 y(License,)g(whic)o(h)f(is)f(a)h(cop)o(yleft)g -(license)g(designed)g(for)g(free)g(soft)o(w)o(are.)165 -1187 y(W)l(e)g(ha)o(v)o(e)f(designed)h(this)g(License)g(in)g(order)f -(to)g(use)h(it)f(for)h(man)o(uals)e(for)h(free)h(soft)o(w)o(are,)e(b)q -(ecause)165 1241 y(free)21 b(soft)o(w)o(are)e(needs)j(free)f(do)q -(cumen)o(tation:)31 b(a)21 b(free)g(program)f(should)h(come)g(with)g -(man)o(uals)165 1296 y(pro)o(viding)13 b(the)i(same)f(freedoms)g(that)g -(the)g(soft)o(w)o(are)f(do)q(es.)20 b(But)14 b(this)g(License)h(is)f -(not)g(limited)g(to)165 1351 y(soft)o(w)o(are)g(man)o(uals;)g(it)g(can) -i(b)q(e)g(used)g(for)e(an)o(y)h(textual)g(w)o(ork,)f(regardless)g(of)h -(sub)s(ject)g(matter)f(or)165 1406 y(whether)i(it)f(is)g(published)h -(as)g(a)f(prin)o(ted)h(b)q(o)q(ok.)21 b(W)l(e)16 b(recommend)g(this)f -(License)i(principally)e(for)165 1461 y(w)o(orks)f(whose)h(purp)q(ose)h -(is)f(instruction)f(or)h(reference.)100 1527 y(1.)29 -b(APPLICABILITY)17 b(AND)e(DEFINITIONS)165 1594 y(This)20 -b(License)g(applies)g(to)f(an)o(y)h(man)o(ual)f(or)g(other)h(w)o(ork,)g -(in)g(an)o(y)f(medium,)i(that)e(con)o(tains)g(a)165 1648 -y(notice)h(placed)h(b)o(y)g(the)g(cop)o(yrigh)o(t)e(holder)i(sa)o(ying) -f(it)g(can)h(b)q(e)g(distributed)f(under)i(the)f(terms)165 -1703 y(of)d(this)g(License.)32 b(Suc)o(h)19 b(a)g(notice)f(gran)o(ts)f -(a)i(w)o(orld-wide,)f(ro)o(y)o(alt)o(y-free)f(license,)i(unlimited)f -(in)165 1758 y(duration,)23 b(to)f(use)h(that)f(w)o(ork)g(under)h(the)g -(conditions)f(stated)g(herein.)42 b(The)23 b(\\Do)q(cumen)o(t",)165 -1813 y(b)q(elo)o(w,)14 b(refers)g(to)f(an)o(y)h(suc)o(h)g(man)o(ual)g -(or)f(w)o(ork.)19 b(An)o(y)14 b(mem)o(b)q(er)h(of)e(the)i(public)f(is)g -(a)g(licensee,)g(and)165 1868 y(is)e(addressed)h(as)f(\\y)o(ou".)18 -b(Y)l(ou)13 b(accept)g(the)f(license)h(if)f(y)o(ou)g(cop)o(y)l(,)h(mo)q -(dify)f(or)g(distribute)f(the)i(w)o(ork)165 1922 y(in)i(a)g(w)o(a)o(y)f -(requiring)h(p)q(ermission)f(under)i(cop)o(yrigh)o(t)e(la)o(w.)165 -1989 y(A)j(\\Mo)q(di\014ed)g(V)l(ersion")f(of)g(the)h(Do)q(cumen)o(t)g -(means)g(an)o(y)f(w)o(ork)g(con)o(taining)g(the)h(Do)q(cumen)o(t)f(or) -165 2044 y(a)i(p)q(ortion)g(of)h(it,)f(either)h(copied)g(v)o(erbatim,)f -(or)g(with)g(mo)q(di\014cations)g(and/or)g(translated)g(in)o(to)165 -2099 y(another)d(language.)165 2165 y(A)e(\\Secondary)g(Section")g(is)f -(a)h(named)g(app)q(endix)h(or)e(a)h(fron)o(t-matter)e(section)h(of)h -(the)g(Do)q(cumen)o(t)165 2220 y(that)d(deals)g(exclusiv)o(ely)g(with)g -(the)h(relationship)e(of)i(the)f(publishers)h(or)f(authors)g(of)g(the)h -(Do)q(cumen)o(t)165 2275 y(to)18 b(the)h(Do)q(cumen)o(t's)f(o)o(v)o -(erall)f(sub)s(ject)h(\(or)g(to)g(related)g(matters\))f(and)i(con)o -(tains)f(nothing)g(that)165 2329 y(could)i(fall)f(directly)h(within)f -(that)g(o)o(v)o(erall)g(sub)s(ject.)34 b(\(Th)o(us,)21 -b(if)f(the)g(Do)q(cumen)o(t)g(is)g(in)g(part)f(a)165 -2384 y(textb)q(o)q(ok)12 b(of)f(mathematics,)g(a)g(Secondary)h(Section) -g(ma)o(y)f(not)h(explain)f(an)o(y)h(mathematics.\))17 -b(The)165 2439 y(relationship)12 b(could)i(b)q(e)g(a)g(matter)e(of)i -(historical)d(connection)j(with)f(the)h(sub)s(ject)f(or)h(with)f -(related)165 2494 y(matters,)k(or)g(of)g(legal,)g(commercial,)g -(philosophical,)g(ethical)g(or)g(p)q(olitical)f(p)q(osition)h -(regarding)165 2549 y(them.)165 2615 y(The)c(\\In)o(v)m(arian)o(t)f -(Sections")g(are)h(certain)f(Secondary)h(Sections)g(whose)g(titles)e -(are)i(designated,)f(as)165 2670 y(b)q(eing)i(those)f(of)g(In)o(v)m -(arian)o(t)f(Sections,)h(in)h(the)f(notice)g(that)f(sa)o(ys)h(that)g -(the)g(Do)q(cumen)o(t)g(is)g(released)p eop end -%%Page: 23 26 -TeXDict begin 23 25 bop 75 -58 a Fo(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(23)165 149 -y(under)15 b(this)e(License.)20 b(If)14 b(a)g(section)f(do)q(es)h(not)g -(\014t)f(the)h(ab)q(o)o(v)o(e)g(de\014nition)g(of)f(Secondary)h(then)g -(it)f(is)165 204 y(not)j(allo)o(w)o(ed)e(to)h(b)q(e)i(designated)f(as)f -(In)o(v)m(arian)o(t.)21 b(The)c(Do)q(cumen)o(t)e(ma)o(y)h(con)o(tain)f -(zero)h(In)o(v)m(arian)o(t)165 259 y(Sections.)j(If)12 -b(the)h(Do)q(cumen)o(t)f(do)q(es)h(not)f(iden)o(tify)f(an)o(y)h(In)o(v) -m(arian)o(t)g(Sections)g(then)h(there)f(are)g(none.)165 -334 y(The)19 b(\\Co)o(v)o(er)e(T)l(exts")g(are)h(certain)g(short)g -(passages)g(of)f(text)h(that)g(are)g(listed,)g(as)g(F)l(ron)o(t-Co)o(v) -o(er)165 389 y(T)l(exts)12 b(or)g(Bac)o(k-Co)o(v)o(er)g(T)l(exts,)g(in) -h(the)f(notice)g(that)g(sa)o(ys)g(that)g(the)g(Do)q(cumen)o(t)h(is)f -(released)g(under)165 444 y(this)g(License.)20 b(A)13 -b(F)l(ron)o(t-Co)o(v)o(er)e(T)l(ext)i(ma)o(y)f(b)q(e)i(at)e(most)g(5)h -(w)o(ords,)f(and)h(a)g(Bac)o(k-Co)o(v)o(er)f(T)l(ext)h(ma)o(y)165 -499 y(b)q(e)j(at)e(most)h(25)f(w)o(ords.)165 574 y(A)k(\\T)l(ransparen) -o(t")e(cop)o(y)i(of)f(the)h(Do)q(cumen)o(t)g(means)f(a)h(mac)o -(hine-readable)f(cop)o(y)l(,)h(represen)o(ted)165 629 -y(in)g(a)f(format)g(whose)g(sp)q(eci\014cation)h(is)g(a)o(v)m(ailable)e -(to)h(the)h(general)g(public,)g(that)f(is)g(suitable)h(for)165 -684 y(revising)d(the)h(do)q(cumen)o(t)g(straigh)o(tforw)o(ardly)d(with) -i(generic)h(text)f(editors)g(or)g(\(for)g(images)g(com-)165 -738 y(p)q(osed)d(of)g(pixels\))f(generic)h(pain)o(t)f(programs)g(or)g -(\(for)g(dra)o(wings\))g(some)g(widely)g(a)o(v)m(ailable)g(dra)o(wing) -165 793 y(editor,)j(and)g(that)g(is)g(suitable)g(for)g(input)g(to)g -(text)g(formatters)f(or)h(for)g(automatic)f(translation)g(to)165 -848 y(a)g(v)m(ariet)o(y)g(of)g(formats)f(suitable)g(for)h(input)h(to)e -(text)h(formatters.)18 b(A)13 b(cop)o(y)h(made)f(in)g(an)h(otherwise) -165 903 y(T)l(ransparen)o(t)k(\014le)h(format)e(whose)i(markup,)g(or)g -(absence)g(of)g(markup,)g(has)f(b)q(een)i(arranged)f(to)165 -958 y(th)o(w)o(art)12 b(or)g(discourage)h(subsequen)o(t)h(mo)q -(di\014cation)f(b)o(y)g(readers)g(is)g(not)g(T)l(ransparen)o(t.)18 -b(An)c(image)165 1012 y(format)i(is)h(not)f(T)l(ransparen)o(t)h(if)g -(used)g(for)g(an)o(y)g(substan)o(tial)e(amoun)o(t)i(of)f(text.)26 -b(A)17 b(cop)o(y)g(that)f(is)165 1067 y(not)f(\\T)l(ransparen)o(t")f -(is)h(called)f(\\Opaque".)165 1143 y(Examples)26 b(of)g(suitable)g -(formats)f(for)h(T)l(ransparen)o(t)g(copies)g(include)h(plain)f -Fh(asci)q(i)g Fo(without)165 1197 y(markup,)18 b(T)l(exinfo)g(input)g -(format,)f(LaT)879 1207 y(E)905 1197 y(X)h(input)g(format,)f -Fc(SGML)h Fo(or)f Fc(XML)i Fo(using)e(a)h(publicly)165 -1252 y(a)o(v)m(ailable)h Fc(DTD)p Fo(,)g(and)h(standard-conforming)f -(simple)g Fc(HTML)p Fo(,)h(P)o(ostScript)f(or)g Fc(PDF)i -Fo(designed)165 1307 y(for)e(h)o(uman)g(mo)q(di\014cation.)31 -b(Examples)19 b(of)f(transparen)o(t)h(image)f(formats)g(include)h -Fc(PNG)p Fo(,)g Fc(X)o(CF)165 1362 y Fo(and)i Fc(JPG)p -Fo(.)f(Opaque)h(formats)e(include)i(proprietary)e(formats)g(that)g(can) -i(b)q(e)g(read)f(and)h(edited)165 1417 y(only)26 b(b)o(y)h(proprietary) -f(w)o(ord)g(pro)q(cessors,)j Fc(SGML)d Fo(or)h Fc(XML)g -Fo(for)f(whic)o(h)g(the)h Fc(DTD)g Fo(and/or)165 1471 -y(pro)q(cessing)j(to)q(ols)g(are)g(not)g(generally)g(a)o(v)m(ailable,)i -(and)f(the)g(mac)o(hine-generated)f Fc(HTML)p Fo(,)165 -1526 y(P)o(ostScript)14 b(or)h Fc(PDF)g Fo(pro)q(duced)h(b)o(y)f(some)g -(w)o(ord)g(pro)q(cessors)g(for)f(output)h(purp)q(oses)h(only)l(.)165 -1601 y(The)h(\\Title)f(P)o(age")g(means,)i(for)e(a)h(prin)o(ted)g(b)q -(o)q(ok,)g(the)g(title)f(page)h(itself,)g(plus)g(suc)o(h)g(follo)o -(wing)165 1656 y(pages)d(as)f(are)h(needed)h(to)e(hold,)h(legibly)l(,)e -(the)i(material)e(this)i(License)g(requires)g(to)f(app)q(ear)h(in)g -(the)165 1711 y(title)e(page.)19 b(F)l(or)13 b(w)o(orks)f(in)h(formats) -f(whic)o(h)h(do)g(not)g(ha)o(v)o(e)g(an)o(y)g(title)f(page)h(as)g(suc)o -(h,)h(\\Title)e(P)o(age")165 1766 y(means)j(the)h(text)e(near)i(the)f -(most)g(prominen)o(t)f(app)q(earance)i(of)f(the)g(w)o(ork's)f(title,)g -(preceding)i(the)165 1821 y(b)q(eginning)f(of)g(the)g(b)q(o)q(dy)h(of)f -(the)g(text.)165 1896 y(The)j(\\publisher")e(means)i(an)o(y)f(p)q -(erson)g(or)g(en)o(tit)o(y)f(that)h(distributes)g(copies)g(of)g(the)g -(Do)q(cumen)o(t)165 1951 y(to)e(the)g(public.)165 2026 -y(A)g(section)f(\\En)o(titled)g(XYZ")g(means)h(a)g(named)g(subunit)g -(of)f(the)h(Do)q(cumen)o(t)g(whose)g(title)e(either)165 -2081 y(is)g(precisely)h(XYZ)g(or)f(con)o(tains)g(XYZ)h(in)g(paren)o -(theses)g(follo)o(wing)d(text)j(that)f(translates)f(XYZ)i(in)165 -2136 y(another)e(language.)18 b(\(Here)13 b(XYZ)f(stands)g(for)g(a)g -(sp)q(eci\014c)i(section)e(name)g(men)o(tioned)g(b)q(elo)o(w,)h(suc)o -(h)165 2191 y(as)h(\\Ac)o(kno)o(wledgemen)o(ts",)e(\\Dedications",)h -(\\Endorsemen)o(ts",)g(or)g(\\History".\))18 b(T)l(o)13 -b(\\Preserv)o(e)165 2245 y(the)k(Title")e(of)i(suc)o(h)g(a)f(section)h -(when)g(y)o(ou)f(mo)q(dify)h(the)g(Do)q(cumen)o(t)f(means)h(that)f(it)g -(remains)g(a)165 2300 y(section)f(\\En)o(titled)f(XYZ")g(according)h -(to)g(this)f(de\014nition.)165 2375 y(The)g(Do)q(cumen)o(t)g(ma)o(y)f -(include)h(W)l(arran)o(t)o(y)e(Disclaimers)g(next)i(to)g(the)g(notice)f -(whic)o(h)h(states)f(that)165 2430 y(this)j(License)i(applies)f(to)f -(the)h(Do)q(cumen)o(t.)25 b(These)17 b(W)l(arran)o(t)o(y)e(Disclaimers) -h(are)g(considered)i(to)165 2485 y(b)q(e)h(included)h(b)o(y)f -(reference)g(in)g(this)f(License,)i(but)f(only)f(as)h(regards)f -(disclaiming)f(w)o(arran)o(ties:)165 2540 y(an)o(y)h(other)g -(implication)f(that)h(these)g(W)l(arran)o(t)o(y)f(Disclaimers)g(ma)o(y) -g(ha)o(v)o(e)h(is)g(v)o(oid)g(and)h(has)f(no)165 2595 -y(e\013ect)d(on)g(the)g(meaning)g(of)g(this)g(License.)100 -2670 y(2.)29 b(VERBA)l(TIM)16 b(COPYING)p eop end -%%Page: 24 27 -TeXDict begin 24 26 bop 75 -58 a Fo(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(24)165 149 -y(Y)l(ou)19 b(ma)o(y)g(cop)o(y)f(and)i(distribute)e(the)h(Do)q(cumen)o -(t)g(in)g(an)o(y)g(medium,)g(either)g(commercially)e(or)165 -204 y(noncommercially)l(,)k(pro)o(vided)g(that)g(this)g(License,)i(the) -e(cop)o(yrigh)o(t)f(notices,)i(and)g(the)f(license)165 -259 y(notice)d(sa)o(ying)e(this)i(License)g(applies)g(to)f(the)h(Do)q -(cumen)o(t)g(are)f(repro)q(duced)i(in)f(all)f(copies,)h(and)165 -314 y(that)13 b(y)o(ou)g(add)g(no)g(other)g(conditions)g(whatso)q(ev)o -(er)f(to)h(those)g(of)g(this)g(License.)20 b(Y)l(ou)13 -b(ma)o(y)g(not)g(use)165 369 y(tec)o(hnical)j(measures)g(to)g(obstruct) -g(or)g(con)o(trol)f(the)h(reading)g(or)g(further)h(cop)o(ying)f(of)g -(the)g(copies)165 423 y(y)o(ou)c(mak)o(e)g(or)f(distribute.)19 -b(Ho)o(w)o(ev)o(er,)11 b(y)o(ou)h(ma)o(y)g(accept)g(comp)q(ensation)g -(in)g(exc)o(hange)h(for)e(copies.)165 478 y(If)16 b(y)o(ou)g -(distribute)f(a)h(large)f(enough)i(n)o(um)o(b)q(er)f(of)g(copies)g(y)o -(ou)g(m)o(ust)f(also)g(follo)o(w)g(the)h(conditions)165 -533 y(in)f(section)g(3.)165 600 y(Y)l(ou)c(ma)o(y)e(also)h(lend)g -(copies,)h(under)g(the)g(same)f(conditions)f(stated)h(ab)q(o)o(v)o(e,)h -(and)f(y)o(ou)g(ma)o(y)g(publicly)165 655 y(displa)o(y)k(copies.)100 -722 y(3.)29 b(COPYING)16 b(IN)f(QUANTITY)165 789 y(If)e(y)o(ou)f -(publish)h(prin)o(ted)f(copies)h(\(or)e(copies)i(in)f(media)h(that)e -(commonly)h(ha)o(v)o(e)g(prin)o(ted)h(co)o(v)o(ers\))e(of)165 -844 y(the)16 b(Do)q(cumen)o(t,)g(n)o(um)o(b)q(ering)f(more)h(than)g -(100,)e(and)i(the)g(Do)q(cumen)o(t's)g(license)g(notice)f(requires)165 -898 y(Co)o(v)o(er)h(T)l(exts,)h(y)o(ou)g(m)o(ust)g(enclose)g(the)g -(copies)g(in)g(co)o(v)o(ers)g(that)f(carry)l(,)h(clearly)f(and)i -(legibly)l(,)e(all)165 953 y(these)k(Co)o(v)o(er)e(T)l(exts:)29 -b(F)l(ron)o(t-Co)o(v)o(er)18 b(T)l(exts)h(on)g(the)h(fron)o(t)f(co)o(v) -o(er,)g(and)h(Bac)o(k-Co)o(v)o(er)f(T)l(exts)g(on)165 -1008 y(the)c(bac)o(k)f(co)o(v)o(er.)19 b(Both)14 b(co)o(v)o(ers)g(m)o -(ust)g(also)g(clearly)g(and)g(legibly)g(iden)o(tify)g(y)o(ou)g(as)g -(the)h(publisher)165 1063 y(of)i(these)g(copies.)26 b(The)17 -b(fron)o(t)f(co)o(v)o(er)h(m)o(ust)f(presen)o(t)i(the)f(full)f(title)g -(with)h(all)f(w)o(ords)g(of)h(the)g(title)165 1117 y(equally)e -(prominen)o(t)g(and)g(visible.)20 b(Y)l(ou)c(ma)o(y)e(add)i(other)f -(material)e(on)j(the)f(co)o(v)o(ers)g(in)g(addition.)165 -1172 y(Cop)o(ying)i(with)h(c)o(hanges)g(limited)f(to)g(the)h(co)o(v)o -(ers,)g(as)g(long)f(as)h(they)g(preserv)o(e)g(the)g(title)f(of)h(the) -165 1227 y(Do)q(cumen)o(t)g(and)h(satisfy)e(these)i(conditions,)f(can)h -(b)q(e)g(treated)f(as)h(v)o(erbatim)e(cop)o(ying)h(in)g(other)165 -1282 y(resp)q(ects.)165 1349 y(If)f(the)f(required)h(texts)e(for)h -(either)g(co)o(v)o(er)g(are)g(to)q(o)g(v)o(oluminous)f(to)h(\014t)g -(legibly)l(,)f(y)o(ou)h(should)h(put)165 1404 y(the)g(\014rst)f(ones)g -(listed)g(\(as)f(man)o(y)h(as)g(\014t)h(reasonably\))e(on)h(the)h -(actual)f(co)o(v)o(er,)f(and)i(con)o(tin)o(ue)f(the)165 -1458 y(rest)f(on)o(to)f(adjacen)o(t)h(pages.)165 1525 -y(If)f(y)o(ou)f(publish)h(or)f(distribute)f(Opaque)j(copies)e(of)g(the) -h(Do)q(cumen)o(t)f(n)o(um)o(b)q(ering)h(more)f(than)g(100,)165 -1580 y(y)o(ou)h(m)o(ust)f(either)h(include)g(a)g(mac)o(hine-readable)g -(T)l(ransparen)o(t)f(cop)o(y)h(along)f(with)g(eac)o(h)h(Opaque)165 -1635 y(cop)o(y)l(,)k(or)f(state)g(in)g(or)g(with)g(eac)o(h)g(Opaque)i -(cop)o(y)e(a)g(computer-net)o(w)o(ork)g(lo)q(cation)f(from)h(whic)o(h) -165 1690 y(the)12 b(general)g(net)o(w)o(ork-using)f(public)h(has)g -(access)g(to)g(do)o(wnload)f(using)h(public-standard)g(net)o(w)o(ork) -165 1745 y(proto)q(cols)18 b(a)h(complete)h(T)l(ransparen)o(t)e(cop)o -(y)i(of)f(the)g(Do)q(cumen)o(t,)h(free)g(of)f(added)h(material.)31 -b(If)165 1799 y(y)o(ou)19 b(use)h(the)f(latter)f(option,)i(y)o(ou)f(m)o -(ust)g(tak)o(e)f(reasonably)h(pruden)o(t)h(steps,)g(when)g(y)o(ou)f(b)q -(egin)165 1854 y(distribution)f(of)g(Opaque)i(copies)f(in)g(quan)o(tit) -o(y)l(,)g(to)f(ensure)i(that)e(this)h(T)l(ransparen)o(t)f(cop)o(y)h -(will)165 1909 y(remain)c(th)o(us)f(accessible)h(at)g(the)g(stated)g -(lo)q(cation)e(un)o(til)i(at)f(least)g(one)i(y)o(ear)e(after)g(the)i -(last)e(time)165 1964 y(y)o(ou)k(distribute)g(an)g(Opaque)h(cop)o(y)f -(\(directly)g(or)g(through)g(y)o(our)g(agen)o(ts)f(or)h(retailers\))f -(of)h(that)165 2019 y(edition)d(to)f(the)h(public.)165 -2086 y(It)i(is)g(requested,)h(but)f(not)g(required,)h(that)e(y)o(ou)h -(con)o(tact)g(the)g(authors)g(of)f(the)i(Do)q(cumen)o(t)f(w)o(ell)165 -2140 y(b)q(efore)e(redistributing)e(an)o(y)h(large)f(n)o(um)o(b)q(er)i -(of)e(copies,)h(to)g(giv)o(e)g(them)g(a)g(c)o(hance)h(to)e(pro)o(vide)h -(y)o(ou)165 2195 y(with)h(an)g(up)q(dated)h(v)o(ersion)e(of)h(the)g(Do) -q(cumen)o(t.)100 2262 y(4.)29 b(MODIFICA)l(TIONS)165 -2329 y(Y)l(ou)13 b(ma)o(y)f(cop)o(y)h(and)g(distribute)f(a)g(Mo)q -(di\014ed)h(V)l(ersion)g(of)f(the)h(Do)q(cumen)o(t)f(under)i(the)f -(conditions)165 2384 y(of)d(sections)g(2)g(and)h(3)f(ab)q(o)o(v)o(e,)h -(pro)o(vided)f(that)g(y)o(ou)g(release)g(the)h(Mo)q(di\014ed)g(V)l -(ersion)f(under)h(precisely)165 2439 y(this)j(License,)h(with)f(the)g -(Mo)q(di\014ed)h(V)l(ersion)f(\014lling)g(the)h(role)e(of)i(the)f(Do)q -(cumen)o(t,)g(th)o(us)h(licensing)165 2493 y(distribution)h(and)h(mo)q -(di\014cation)f(of)h(the)g(Mo)q(di\014ed)g(V)l(ersion)g(to)f(who)q(ev)o -(er)h(p)q(ossesses)h(a)e(cop)o(y)h(of)165 2548 y(it.)i(In)d(addition,)e -(y)o(ou)h(m)o(ust)f(do)h(these)h(things)f(in)g(the)g(Mo)q(di\014ed)g(V) -l(ersion:)178 2615 y(A.)30 b(Use)17 b(in)f(the)g(Title)f(P)o(age)h -(\(and)g(on)h(the)f(co)o(v)o(ers,)g(if)f(an)o(y\))h(a)g(title)f -(distinct)h(from)f(that)h(of)g(the)255 2670 y(Do)q(cumen)o(t,)h(and)g -(from)f(those)h(of)f(previous)h(v)o(ersions)f(\(whic)o(h)g(should,)h -(if)g(there)g(w)o(ere)f(an)o(y)l(,)p eop end -%%Page: 25 28 -TeXDict begin 25 27 bop 75 -58 a Fo(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(25)255 149 -y(b)q(e)16 b(listed)f(in)h(the)g(History)e(section)h(of)g(the)h(Do)q -(cumen)o(t\).)21 b(Y)l(ou)16 b(ma)o(y)f(use)h(the)g(same)f(title)f(as) -255 204 y(a)h(previous)g(v)o(ersion)f(if)h(the)g(original)e(publisher)j -(of)f(that)f(v)o(ersion)g(giv)o(es)h(p)q(ermission.)180 -273 y(B.)30 b(List)15 b(on)g(the)g(Title)g(P)o(age,)f(as)h(authors,)f -(one)h(or)g(more)g(p)q(ersons)g(or)g(en)o(tities)f(resp)q(onsible)i -(for)255 328 y(authorship)d(of)f(the)h(mo)q(di\014cations)f(in)h(the)g -(Mo)q(di\014ed)h(V)l(ersion,)f(together)f(with)g(at)h(least)f(\014v)o -(e)255 382 y(of)g(the)g(principal)f(authors)g(of)h(the)g(Do)q(cumen)o -(t)g(\(all)e(of)i(its)f(principal)g(authors,)h(if)f(it)g(has)h(few)o -(er)255 437 y(than)j(\014v)o(e\),)g(unless)g(they)g(release)g(y)o(ou)g -(from)f(this)h(requiremen)o(t.)180 506 y(C.)29 b(State)15 -b(on)g(the)h(Title)e(page)h(the)h(name)f(of)g(the)g(publisher)h(of)f -(the)g(Mo)q(di\014ed)h(V)l(ersion,)f(as)g(the)255 560 -y(publisher.)178 629 y(D.)29 b(Preserv)o(e)15 b(all)f(the)h(cop)o -(yrigh)o(t)f(notices)h(of)g(the)g(Do)q(cumen)o(t.)181 -697 y(E.)30 b(Add)16 b(an)g(appropriate)f(cop)o(yrigh)o(t)f(notice)h -(for)g(y)o(our)g(mo)q(di\014cations)g(adjacen)o(t)h(to)f(the)g(other) -255 752 y(cop)o(yrigh)o(t)f(notices.)183 821 y(F.)29 -b(Include,)15 b(immediately)e(after)g(the)h(cop)o(yrigh)o(t)e(notices,) -i(a)f(license)h(notice)g(giving)f(the)h(public)255 875 -y(p)q(ermission)e(to)f(use)i(the)f(Mo)q(di\014ed)h(V)l(ersion)f(under)h -(the)f(terms)g(of)f(this)h(License,)h(in)f(the)h(form)255 -930 y(sho)o(wn)i(in)g(the)g(Addendum)i(b)q(elo)o(w.)177 -999 y(G.)29 b(Preserv)o(e)11 b(in)g(that)g(license)g(notice)h(the)f -(full)g(lists)f(of)h(In)o(v)m(arian)o(t)g(Sections)g(and)g(required)h -(Co)o(v)o(er)255 1054 y(T)l(exts)j(giv)o(en)g(in)g(the)g(Do)q(cumen)o -(t's)g(license)g(notice.)178 1122 y(H.)30 b(Include)16 -b(an)f(unaltered)h(cop)o(y)f(of)f(this)h(License.)196 -1191 y(I.)30 b(Preserv)o(e)16 b(the)g(section)g(En)o(titled)f -(\\History",)f(Preserv)o(e)h(its)h(Title,)e(and)j(add)f(to)f(it)h(an)g -(item)255 1245 y(stating)d(at)g(least)g(the)h(title,)f(y)o(ear,)g(new)i -(authors,)e(and)h(publisher)g(of)g(the)g(Mo)q(di\014ed)g(V)l(ersion)255 -1300 y(as)h(giv)o(en)g(on)h(the)g(Title)e(P)o(age.)21 -b(If)16 b(there)g(is)f(no)h(section)f(En)o(titled)f(\\History")g(in)i -(the)g(Do)q(cu-)255 1355 y(men)o(t,)h(create)g(one)h(stating)e(the)h -(title,)g(y)o(ear,)g(authors,)g(and)g(publisher)h(of)f(the)g(Do)q -(cumen)o(t)255 1410 y(as)h(giv)o(en)f(on)h(its)f(Title)g(P)o(age,)h -(then)h(add)f(an)g(item)f(describing)h(the)g(Mo)q(di\014ed)g(V)l -(ersion)g(as)255 1465 y(stated)d(in)g(the)g(previous)g(sen)o(tence.)189 -1533 y(J.)30 b(Preserv)o(e)16 b(the)g(net)o(w)o(ork)f(lo)q(cation,)g -(if)h(an)o(y)l(,)g(giv)o(en)g(in)g(the)g(Do)q(cumen)o(t)g(for)g(public) -g(access)h(to)255 1588 y(a)e(T)l(ransparen)o(t)g(cop)o(y)h(of)f(the)g -(Do)q(cumen)o(t,)h(and)f(lik)o(ewise)g(the)g(net)o(w)o(ork)g(lo)q -(cations)f(giv)o(en)h(in)255 1643 y(the)h(Do)q(cumen)o(t)g(for)f -(previous)g(v)o(ersions)g(it)g(w)o(as)g(based)i(on.)k(These)c(ma)o(y)e -(b)q(e)h(placed)g(in)g(the)255 1697 y(\\History")11 b(section.)18 -b(Y)l(ou)13 b(ma)o(y)f(omit)f(a)h(net)o(w)o(ork)g(lo)q(cation)f(for)h -(a)g(w)o(ork)g(that)g(w)o(as)f(published)255 1752 y(at)17 -b(least)g(four)h(y)o(ears)f(b)q(efore)h(the)g(Do)q(cumen)o(t)g(itself,) -f(or)g(if)h(the)f(original)f(publisher)i(of)g(the)255 -1807 y(v)o(ersion)c(it)h(refers)g(to)f(giv)o(es)h(p)q(ermission.)177 -1875 y(K.)30 b(F)l(or)11 b(an)o(y)h(section)f(En)o(titled)g(\\Ac)o(kno) -o(wledgemen)o(ts")g(or)g(\\Dedications",)f(Preserv)o(e)i(the)g(Title) -255 1930 y(of)h(the)g(section,)g(and)g(preserv)o(e)h(in)f(the)g -(section)g(all)f(the)i(substance)f(and)h(tone)f(of)g(eac)o(h)g(of)g -(the)255 1985 y(con)o(tributor)h(ac)o(kno)o(wledgemen)o(ts)g(and/or)h -(dedications)f(giv)o(en)h(therein.)184 2054 y(L.)30 b(Preserv)o(e)17 -b(all)g(the)h(In)o(v)m(arian)o(t)f(Sections)g(of)h(the)f(Do)q(cumen)o -(t,)h(unaltered)g(in)f(their)h(text)f(and)255 2108 y(in)h(their)f -(titles.)27 b(Section)18 b(n)o(um)o(b)q(ers)g(or)g(the)g(equiv)m(alen)o -(t)f(are)h(not)g(considered)g(part)f(of)h(the)255 2163 -y(section)d(titles.)171 2232 y(M.)29 b(Delete)15 b(an)o(y)g(section)g -(En)o(titled)f(\\Endorsemen)o(ts".)20 b(Suc)o(h)c(a)f(section)g(ma)o(y) -f(not)h(b)q(e)h(included)255 2286 y(in)f(the)g(Mo)q(di\014ed)h(V)l -(ersion.)178 2355 y(N.)30 b(Do)14 b(not)f(retitle)g(an)o(y)h(existing)f -(section)h(to)g(b)q(e)g(En)o(titled)g(\\Endorsemen)o(ts")f(or)h(to)f -(con\015ict)h(in)255 2410 y(title)g(with)g(an)o(y)h(In)o(v)m(arian)o(t) -g(Section.)177 2478 y(O.)30 b(Preserv)o(e)15 b(an)o(y)g(W)l(arran)o(t)o -(y)e(Disclaimers.)165 2560 y(If)k(the)g(Mo)q(di\014ed)g(V)l(ersion)f -(includes)h(new)g(fron)o(t-matter)e(sections)h(or)g(app)q(endices)i -(that)e(qualify)165 2615 y(as)e(Secondary)g(Sections)g(and)g(con)o -(tain)f(no)h(material)e(copied)i(from)f(the)h(Do)q(cumen)o(t,)g(y)o(ou) -f(ma)o(y)h(at)165 2670 y(y)o(our)i(option)f(designate)h(some)g(or)f -(all)g(of)h(these)h(sections)e(as)h(in)o(v)m(arian)o(t.)22 -b(T)l(o)15 b(do)i(this,)e(add)h(their)p eop end -%%Page: 26 29 -TeXDict begin 26 28 bop 75 -58 a Fo(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(26)165 149 -y(titles)16 b(to)h(the)h(list)f(of)g(In)o(v)m(arian)o(t)g(Sections)h -(in)f(the)h(Mo)q(di\014ed)g(V)l(ersion's)f(license)h(notice.)27 -b(These)165 204 y(titles)14 b(m)o(ust)h(b)q(e)g(distinct)g(from)f(an)o -(y)h(other)g(section)g(titles.)165 275 y(Y)l(ou)21 b(ma)o(y)g(add)g(a)g -(section)g(En)o(titled)f(\\Endorsemen)o(ts",)h(pro)o(vided)g(it)g(con)o -(tains)f(nothing)h(but)165 330 y(endorsemen)o(ts)15 b(of)f(y)o(our)h -(Mo)q(di\014ed)g(V)l(ersion)f(b)o(y)h(v)m(arious)f(parties|for)g -(example,)h(statemen)o(ts)e(of)165 385 y(p)q(eer)h(review)f(or)h(that)e -(the)i(text)f(has)h(b)q(een)g(appro)o(v)o(ed)g(b)o(y)f(an)h -(organization)d(as)j(the)f(authoritativ)o(e)165 440 y(de\014nition)i -(of)g(a)g(standard.)165 511 y(Y)l(ou)f(ma)o(y)g(add)g(a)g(passage)g(of) -f(up)i(to)e(\014v)o(e)i(w)o(ords)e(as)h(a)g(F)l(ron)o(t-Co)o(v)o(er)e -(T)l(ext,)i(and)g(a)g(passage)g(of)f(up)165 566 y(to)g(25)g(w)o(ords)g -(as)g(a)g(Bac)o(k-Co)o(v)o(er)g(T)l(ext,)g(to)g(the)g(end)i(of)e(the)g -(list)g(of)g(Co)o(v)o(er)f(T)l(exts)i(in)f(the)h(Mo)q(di\014ed)165 -621 y(V)l(ersion.)28 b(Only)18 b(one)g(passage)f(of)h(F)l(ron)o(t-Co)o -(v)o(er)e(T)l(ext)i(and)g(one)g(of)f(Bac)o(k-Co)o(v)o(er)g(T)l(ext)h -(ma)o(y)f(b)q(e)165 675 y(added)d(b)o(y)g(\(or)f(through)g(arrangemen)o -(ts)g(made)h(b)o(y\))f(an)o(y)h(one)g(en)o(tit)o(y)l(.)k(If)c(the)g(Do) -q(cumen)o(t)g(already)165 730 y(includes)j(a)g(co)o(v)o(er)f(text)h -(for)f(the)h(same)g(co)o(v)o(er,)f(previously)g(added)i(b)o(y)f(y)o(ou) -g(or)f(b)o(y)h(arrangemen)o(t)165 785 y(made)h(b)o(y)f(the)h(same)f(en) -o(tit)o(y)g(y)o(ou)g(are)g(acting)g(on)g(b)q(ehalf)h(of,)g(y)o(ou)f(ma) -o(y)g(not)g(add)h(another;)g(but)165 840 y(y)o(ou)f(ma)o(y)f(replace)h -(the)g(old)g(one,)g(on)g(explicit)f(p)q(ermission)g(from)h(the)g -(previous)g(publisher)g(that)165 895 y(added)f(the)f(old)g(one.)165 -966 y(The)e(author\(s\))e(and)i(publisher\(s\))f(of)h(the)g(Do)q(cumen) -o(t)f(do)h(not)f(b)o(y)h(this)f(License)i(giv)o(e)e(p)q(ermission)165 -1021 y(to)j(use)g(their)g(names)g(for)f(publicit)o(y)h(for)f(or)h(to)f -(assert)h(or)f(imply)h(endorsemen)o(t)g(of)g(an)o(y)g(Mo)q(di\014ed)165 -1075 y(V)l(ersion.)100 1147 y(5.)29 b(COMBINING)16 b(DOCUMENTS)165 -1218 y(Y)l(ou)k(ma)o(y)e(com)o(bine)h(the)h(Do)q(cumen)o(t)f(with)g -(other)g(do)q(cumen)o(ts)g(released)h(under)g(this)f(License,)165 -1273 y(under)h(the)f(terms)g(de\014ned)h(in)f(section)g(4)f(ab)q(o)o(v) -o(e)h(for)g(mo)q(di\014ed)g(v)o(ersions,)g(pro)o(vided)g(that)f(y)o(ou) -165 1328 y(include)13 b(in)f(the)h(com)o(bination)f(all)f(of)h(the)h -(In)o(v)m(arian)o(t)f(Sections)h(of)f(all)f(of)i(the)f(original)f(do)q -(cumen)o(ts,)165 1382 y(unmo)q(di\014ed,)j(and)g(list)e(them)h(all)g -(as)g(In)o(v)m(arian)o(t)f(Sections)i(of)f(y)o(our)f(com)o(bined)i(w)o -(ork)e(in)h(its)g(license)165 1437 y(notice,)h(and)i(that)e(y)o(ou)h -(preserv)o(e)g(all)g(their)f(W)l(arran)o(t)o(y)g(Disclaimers.)165 -1508 y(The)h(com)o(bined)h(w)o(ork)e(need)i(only)e(con)o(tain)h(one)g -(cop)o(y)g(of)g(this)f(License,)i(and)f(m)o(ultiple)f(iden)o(tical)165 -1563 y(In)o(v)m(arian)o(t)i(Sections)g(ma)o(y)f(b)q(e)i(replaced)g -(with)e(a)h(single)g(cop)o(y)l(.)23 b(If)16 b(there)h(are)f(m)o -(ultiple)f(In)o(v)m(arian)o(t)165 1618 y(Sections)e(with)g(the)g(same)g -(name)h(but)f(di\013eren)o(t)g(con)o(ten)o(ts,)g(mak)o(e)g(the)g(title) -f(of)h(eac)o(h)h(suc)o(h)f(section)165 1673 y(unique)18 -b(b)o(y)e(adding)h(at)g(the)g(end)g(of)g(it,)f(in)h(paren)o(theses,)g -(the)g(name)g(of)g(the)g(original)e(author)h(or)165 1728 -y(publisher)d(of)f(that)g(section)g(if)g(kno)o(wn,)g(or)g(else)g(a)h -(unique)g(n)o(um)o(b)q(er.)19 b(Mak)o(e)12 b(the)g(same)h(adjustmen)o -(t)165 1782 y(to)f(the)g(section)g(titles)f(in)h(the)g(list)f(of)h(In)o -(v)m(arian)o(t)f(Sections)h(in)g(the)h(license)f(notice)g(of)g(the)g -(com)o(bined)165 1837 y(w)o(ork.)165 1908 y(In)21 b(the)g(com)o -(bination,)f(y)o(ou)h(m)o(ust)f(com)o(bine)g(an)o(y)g(sections)h(En)o -(titled)e(\\History")g(in)i(the)f(v)m(ari-)165 1963 y(ous)c(original)e -(do)q(cumen)o(ts,)i(forming)f(one)i(section)e(En)o(titled)g -(\\History";)g(lik)o(ewise)f(com)o(bine)i(an)o(y)165 -2018 y(sections)f(En)o(titled)g(\\Ac)o(kno)o(wledgemen)o(ts",)g(and)h -(an)o(y)f(sections)h(En)o(titled)e(\\Dedications".)21 -b(Y)l(ou)165 2073 y(m)o(ust)15 b(delete)g(all)f(sections)h(En)o(titled) -f(\\Endorsemen)o(ts.")100 2144 y(6.)29 b(COLLECTIONS)17 -b(OF)e(DOCUMENTS)165 2215 y(Y)l(ou)h(ma)o(y)f(mak)o(e)h(a)f(collection) -g(consisting)g(of)g(the)h(Do)q(cumen)o(t)g(and)g(other)g(do)q(cumen)o -(ts)g(released)165 2270 y(under)22 b(this)f(License,)i(and)e(replace)g -(the)g(individual)g(copies)g(of)g(this)f(License)i(in)f(the)g(v)m -(arious)165 2325 y(do)q(cumen)o(ts)h(with)e(a)h(single)g(cop)o(y)g -(that)f(is)h(included)h(in)f(the)g(collection,)h(pro)o(vided)f(that)f -(y)o(ou)165 2380 y(follo)o(w)d(the)h(rules)h(of)f(this)g(License)h(for) -f(v)o(erbatim)f(cop)o(ying)h(of)g(eac)o(h)h(of)f(the)h(do)q(cumen)o(ts) -g(in)f(all)165 2434 y(other)d(resp)q(ects.)165 2506 y(Y)l(ou)h(ma)o(y)f -(extract)g(a)g(single)g(do)q(cumen)o(t)h(from)f(suc)o(h)h(a)g -(collection,)e(and)i(distribute)f(it)g(individu-)165 -2560 y(ally)h(under)j(this)e(License,)h(pro)o(vided)f(y)o(ou)g(insert)g -(a)h(cop)o(y)f(of)g(this)g(License)h(in)o(to)f(the)g(extracted)165 -2615 y(do)q(cumen)o(t,)g(and)f(follo)o(w)e(this)i(License)h(in)f(all)g -(other)f(resp)q(ects)i(regarding)f(v)o(erbatim)f(cop)o(ying)g(of)165 -2670 y(that)f(do)q(cumen)o(t.)p eop end -%%Page: 27 30 -TeXDict begin 27 29 bop 75 -58 a Fo(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(27)100 149 -y(7.)29 b(A)o(GGREGA)l(TION)15 b(WITH)h(INDEPENDENT)e(W)o(ORKS)165 -221 y(A)g(compilation)e(of)i(the)g(Do)q(cumen)o(t)g(or)f(its)h(deriv)m -(ativ)o(es)f(with)g(other)h(separate)f(and)i(indep)q(enden)o(t)165 -275 y(do)q(cumen)o(ts)i(or)f(w)o(orks,)g(in)g(or)g(on)h(a)f(v)o(olume)g -(of)g(a)h(storage)e(or)h(distribution)g(medium,)g(is)g(called)165 -330 y(an)f(\\aggregate")e(if)h(the)i(cop)o(yrigh)o(t)d(resulting)h -(from)h(the)g(compilation)e(is)i(not)f(used)i(to)e(limit)g(the)165 -385 y(legal)e(righ)o(ts)g(of)h(the)g(compilation's)f(users)h(b)q(ey)o -(ond)h(what)f(the)g(individual)f(w)o(orks)h(p)q(ermit.)19 -b(When)165 440 y(the)g(Do)q(cumen)o(t)g(is)g(included)h(in)f(an)g -(aggregate,)f(this)h(License)h(do)q(es)g(not)e(apply)h(to)g(the)g -(other)165 495 y(w)o(orks)14 b(in)h(the)g(aggregate)f(whic)o(h)h(are)g -(not)g(themselv)o(es)g(deriv)m(ativ)o(e)f(w)o(orks)g(of)h(the)g(Do)q -(cumen)o(t.)165 566 y(If)d(the)f(Co)o(v)o(er)f(T)l(ext)i(requiremen)o -(t)f(of)g(section)g(3)g(is)g(applicable)f(to)h(these)h(copies)f(of)g -(the)g(Do)q(cumen)o(t,)165 621 y(then)h(if)e(the)i(Do)q(cumen)o(t)f(is) -f(less)h(than)g(one)h(half)e(of)h(the)g(en)o(tire)g(aggregate,)f(the)h -(Do)q(cumen)o(t's)g(Co)o(v)o(er)165 675 y(T)l(exts)i(ma)o(y)g(b)q(e)h -(placed)f(on)g(co)o(v)o(ers)g(that)f(brac)o(k)o(et)h(the)g(Do)q(cumen)o -(t)g(within)g(the)g(aggregate,)f(or)h(the)165 730 y(electronic)k(equiv) -m(alen)o(t)g(of)g(co)o(v)o(ers)g(if)g(the)h(Do)q(cumen)o(t)f(is)g(in)g -(electronic)g(form.)27 b(Otherwise)17 b(they)165 785 -y(m)o(ust)e(app)q(ear)g(on)g(prin)o(ted)g(co)o(v)o(ers)g(that)f(brac)o -(k)o(et)h(the)g(whole)g(aggregate.)100 856 y(8.)29 b(TRANSLA)l(TION)165 -928 y(T)l(ranslation)18 b(is)i(considered)g(a)g(kind)g(of)f(mo)q -(di\014cation,)h(so)g(y)o(ou)g(ma)o(y)f(distribute)g(translations)165 -982 y(of)j(the)g(Do)q(cumen)o(t)g(under)h(the)f(terms)g(of)g(section)f -(4.)41 b(Replacing)22 b(In)o(v)m(arian)o(t)g(Sections)g(with)165 -1037 y(translations)f(requires)h(sp)q(ecial)h(p)q(ermission)f(from)g -(their)g(cop)o(yrigh)o(t)f(holders,)j(but)f(y)o(ou)g(ma)o(y)165 -1092 y(include)13 b(translations)d(of)i(some)g(or)f(all)g(In)o(v)m -(arian)o(t)h(Sections)g(in)g(addition)g(to)f(the)h(original)f(v)o -(ersions)165 1147 y(of)k(these)h(In)o(v)m(arian)o(t)f(Sections.)22 -b(Y)l(ou)15 b(ma)o(y)g(include)i(a)e(translation)f(of)h(this)g -(License,)h(and)g(all)f(the)165 1201 y(license)21 b(notices)f(in)g(the) -h(Do)q(cumen)o(t,)g(and)g(an)o(y)f(W)l(arran)o(t)o(y)f(Disclaimers,)h -(pro)o(vided)g(that)g(y)o(ou)165 1256 y(also)f(include)h(the)g -(original)f(English)g(v)o(ersion)g(of)h(this)f(License)i(and)f(the)g -(original)e(v)o(ersions)h(of)165 1311 y(those)e(notices)f(and)i -(disclaimers.)24 b(In)18 b(case)f(of)f(a)h(disagreemen)o(t)f(b)q(et)o -(w)o(een)i(the)f(translation)e(and)165 1366 y(the)j(original)d(v)o -(ersion)i(of)g(this)g(License)i(or)e(a)g(notice)g(or)g(disclaimer,)g -(the)h(original)d(v)o(ersion)i(will)165 1421 y(prev)m(ail.)165 -1492 y(If)e(a)f(section)f(in)i(the)f(Do)q(cumen)o(t)g(is)g(En)o(titled) -f(\\Ac)o(kno)o(wledgemen)o(ts",)g(\\Dedications",)g(or)g(\\His-)165 -1547 y(tory",)f(the)h(requiremen)o(t)g(\(section)f(4\))h(to)f(Preserv)o -(e)h(its)g(Title)f(\(section)g(1\))h(will)f(t)o(ypically)f(require)165 -1601 y(c)o(hanging)k(the)g(actual)f(title.)100 1673 y(9.)29 -b(TERMINA)l(TION)165 1744 y(Y)l(ou)15 b(ma)o(y)f(not)h(cop)o(y)l(,)f -(mo)q(dify)l(,)h(sublicense,)g(or)f(distribute)g(the)h(Do)q(cumen)o(t)g -(except)h(as)e(expressly)165 1799 y(pro)o(vided)19 b(under)h(this)f -(License.)33 b(An)o(y)19 b(attempt)f(otherwise)h(to)f(cop)o(y)l(,)i(mo) -q(dify)l(,)g(sublicense,)g(or)165 1854 y(distribute)14 -b(it)h(is)g(v)o(oid,)f(and)h(will)f(automatically)f(terminate)h(y)o -(our)g(righ)o(ts)g(under)i(this)f(License.)165 1925 y(Ho)o(w)o(ev)o -(er,)g(if)h(y)o(ou)g(cease)g(all)f(violation)f(of)i(this)g(License,)h -(then)f(y)o(our)g(license)g(from)f(a)h(particular)165 -1980 y(cop)o(yrigh)o(t)h(holder)g(is)h(reinstated)f(\(a\))g(pro)o -(visionally)l(,)f(unless)i(and)g(un)o(til)f(the)h(cop)o(yrigh)o(t)e -(holder)165 2034 y(explicitly)j(and)i(\014nally)e(terminates)h(y)o(our) -f(license,)j(and)e(\(b\))g(p)q(ermanen)o(tly)l(,)h(if)f(the)g(cop)o -(yrigh)o(t)165 2089 y(holder)d(fails)f(to)h(notify)f(y)o(ou)h(of)g(the) -g(violation)e(b)o(y)i(some)g(reasonable)g(means)g(prior)f(to)h(60)f(da) -o(ys)165 2144 y(after)e(the)i(cessation.)165 2215 y(Moreo)o(v)o(er,)e -(y)o(our)h(license)h(from)f(a)g(particular)g(cop)o(yrigh)o(t)f(holder)i -(is)f(reinstated)g(p)q(ermanen)o(tly)g(if)165 2270 y(the)f(cop)o(yrigh) -o(t)f(holder)g(noti\014es)h(y)o(ou)f(of)h(the)g(violation)e(b)o(y)h -(some)h(reasonable)f(means,)h(this)f(is)h(the)165 2325 -y(\014rst)g(time)f(y)o(ou)g(ha)o(v)o(e)h(receiv)o(ed)g(notice)f(of)h -(violation)e(of)h(this)h(License)g(\(for)f(an)o(y)h(w)o(ork\))f(from)g -(that)165 2380 y(cop)o(yrigh)o(t)i(holder,)g(and)h(y)o(ou)g(cure)g(the) -g(violation)e(prior)i(to)f(30)g(da)o(ys)h(after)f(y)o(our)g(receipt)h -(of)g(the)165 2434 y(notice.)165 2506 y(T)l(ermination)d(of)g(y)o(our)g -(righ)o(ts)g(under)h(this)f(section)h(do)q(es)g(not)f(terminate)g(the)h -(licenses)f(of)h(parties)165 2560 y(who)19 b(ha)o(v)o(e)g(receiv)o(ed)g -(copies)g(or)f(righ)o(ts)g(from)g(y)o(ou)h(under)h(this)e(License.)33 -b(If)19 b(y)o(our)g(righ)o(ts)e(ha)o(v)o(e)165 2615 y(b)q(een)d -(terminated)e(and)i(not)e(p)q(ermanen)o(tly)h(reinstated,)f(receipt)h -(of)g(a)g(cop)o(y)g(of)f(some)h(or)f(all)g(of)h(the)165 -2670 y(same)i(material)e(do)q(es)j(not)f(giv)o(e)f(y)o(ou)h(an)o(y)g -(righ)o(ts)f(to)g(use)i(it.)p eop end -%%Page: 28 31 -TeXDict begin 28 30 bop 75 -58 a Fo(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(28)77 149 -y(10.)29 b(FUTURE)15 b(REVISIONS)j(OF)d(THIS)h(LICENSE)165 -217 y(The)21 b(F)l(ree)g(Soft)o(w)o(are)e(F)l(oundation)h(ma)o(y)g -(publish)h(new,)h(revised)f(v)o(ersions)f(of)g(the)h(GNU)g(F)l(ree)165 -271 y(Do)q(cumen)o(tation)15 b(License)i(from)e(time)g(to)h(time.)21 -b(Suc)o(h)c(new)f(v)o(ersions)g(will)e(b)q(e)j(similar)d(in)i(spirit) -165 326 y(to)h(the)g(presen)o(t)g(v)o(ersion,)g(but)g(ma)o(y)f -(di\013er)h(in)g(detail)f(to)h(address)g(new)g(problems)g(or)g -(concerns.)165 381 y(See)f Fn(http://www.gnu.org/copyle)o(ft/)p -Fo(.)165 448 y(Eac)o(h)f(v)o(ersion)e(of)i(the)g(License)g(is)f(giv)o -(en)g(a)h(distinguishing)e(v)o(ersion)h(n)o(um)o(b)q(er.)20 -b(If)15 b(the)g(Do)q(cumen)o(t)165 503 y(sp)q(eci\014es)23 -b(that)f(a)h(particular)e(n)o(um)o(b)q(ered)j(v)o(ersion)d(of)i(this)f -(License)h(\\or)f(an)o(y)g(later)g(v)o(ersion")165 558 -y(applies)16 b(to)f(it,)h(y)o(ou)g(ha)o(v)o(e)g(the)g(option)f(of)h -(follo)o(wing)e(the)i(terms)g(and)g(conditions)g(either)g(of)g(that)165 -613 y(sp)q(eci\014ed)k(v)o(ersion)e(or)h(of)f(an)o(y)h(later)f(v)o -(ersion)g(that)g(has)h(b)q(een)h(published)g(\(not)e(as)g(a)h(draft\))f -(b)o(y)165 667 y(the)e(F)l(ree)h(Soft)o(w)o(are)e(F)l(oundation.)22 -b(If)17 b(the)g(Do)q(cumen)o(t)f(do)q(es)g(not)g(sp)q(ecify)h(a)f(v)o -(ersion)g(n)o(um)o(b)q(er)g(of)165 722 y(this)h(License,)h(y)o(ou)f(ma) -o(y)f(c)o(ho)q(ose)i(an)o(y)e(v)o(ersion)h(ev)o(er)g(published)h(\(not) -e(as)h(a)g(draft\))f(b)o(y)i(the)f(F)l(ree)165 777 y(Soft)o(w)o(are)e -(F)l(oundation.)21 b(If)16 b(the)g(Do)q(cumen)o(t)g(sp)q(eci\014es)h -(that)e(a)h(pro)o(xy)f(can)h(decide)h(whic)o(h)f(future)165 -832 y(v)o(ersions)f(of)h(this)g(License)h(can)f(b)q(e)h(used,)g(that)f -(pro)o(xy's)f(public)h(statemen)o(t)g(of)g(acceptance)g(of)g(a)165 -887 y(v)o(ersion)e(p)q(ermanen)o(tly)h(authorizes)g(y)o(ou)g(to)f(c)o -(ho)q(ose)i(that)e(v)o(ersion)g(for)h(the)g(Do)q(cumen)o(t.)77 -954 y(11.)29 b(RELICENSING)165 1021 y(\\Massiv)o(e)17 -b(Multiauthor)g(Collab)q(oration)f(Site")i(\(or)g(\\MMC)g(Site"\))f -(means)i(an)o(y)f(W)l(orld)g(Wide)165 1076 y(W)l(eb)g(serv)o(er)g(that) -f(publishes)h(cop)o(yrigh)o(table)e(w)o(orks)h(and)h(also)f(pro)o -(vides)h(prominen)o(t)f(facilities)165 1131 y(for)c(an)o(yb)q(o)q(dy)h -(to)f(edit)h(those)f(w)o(orks.)19 b(A)14 b(public)f(wiki)g(that)g(an)o -(yb)q(o)q(dy)h(can)g(edit)g(is)f(an)h(example)f(of)165 -1186 y(suc)o(h)k(a)g(serv)o(er.)24 b(A)17 b(\\Massiv)o(e)e(Multiauthor) -g(Collab)q(oration")g(\(or)h(\\MMC"\))f(con)o(tained)h(in)h(the)165 -1240 y(site)e(means)g(an)o(y)g(set)g(of)f(cop)o(yrigh)o(table)g(w)o -(orks)g(th)o(us)h(published)h(on)f(the)g(MMC)g(site.)165 -1308 y(\\CC-BY-SA")j(means)f(the)h(Creativ)o(e)e(Commons)h(A)o -(ttribution-Share)f(Alik)o(e)h(3.0)g(license)g(pub-)165 -1362 y(lished)c(b)o(y)h(Creativ)o(e)e(Commons)g(Corp)q(oration,)g(a)h -(not-for-pro\014t)g(corp)q(oration)f(with)h(a)g(principal)165 -1417 y(place)g(of)f(business)i(in)f(San)g(F)l(rancisco,)f(California,)f -(as)h(w)o(ell)g(as)h(future)g(cop)o(yleft)f(v)o(ersions)g(of)h(that)165 -1472 y(license)i(published)h(b)o(y)f(that)g(same)f(organization.)165 -1539 y(\\Incorp)q(orate")h(means)g(to)g(publish)g(or)g(republish)g(a)g -(Do)q(cumen)o(t,)g(in)g(whole)g(or)g(in)g(part,)g(as)g(part)165 -1594 y(of)g(another)g(Do)q(cumen)o(t.)165 1661 y(An)e(MMC)g(is)f -(\\eligible)g(for)g(relicensing")h(if)f(it)h(is)f(licensed)i(under)g -(this)e(License,)i(and)f(if)g(all)f(w)o(orks)165 1716 -y(that)20 b(w)o(ere)h(\014rst)g(published)g(under)h(this)e(License)i -(somewhere)f(other)g(than)g(this)f(MMC,)g(and)165 1771 -y(subsequen)o(tly)e(incorp)q(orated)e(in)i(whole)f(or)g(in)g(part)g(in) -o(to)f(the)h(MMC,)f(\(1\))h(had)g(no)h(co)o(v)o(er)f(texts)165 -1826 y(or)e(in)o(v)m(arian)o(t)e(sections,)i(and)g(\(2\))f(w)o(ere)h -(th)o(us)g(incorp)q(orated)g(prior)f(to)h(No)o(v)o(em)o(b)q(er)g(1,)f -(2008.)165 1893 y(The)21 b(op)q(erator)e(of)h(an)g(MMC)f(Site)h(ma)o(y) -g(republish)h(an)f(MMC)f(con)o(tained)h(in)g(the)h(site)e(under)165 -1948 y(CC-BY-SA)d(on)f(the)g(same)g(site)f(at)h(an)o(y)f(time)h(b)q -(efore)g(August)g(1,)g(2009,)e(pro)o(vided)i(the)g(MMC)f(is)165 -2002 y(eligible)g(for)h(relicensing.)p eop end -%%Page: 29 32 -TeXDict begin 29 31 bop 75 -58 a Fo(App)q(endix)16 b(A:)f(GNU)g(F)l -(ree)g(Do)q(cumen)o(tation)g(License)802 b(29)75 149 -y Fm(ADDENDUM:)20 b(Ho)n(w)h(to)h(use)g(this)g(License)g(for)g(y)n(our) -h(do)r(cumen)n(ts)75 229 y Fo(T)l(o)17 b(use)h(this)e(License)i(in)g(a) -f(do)q(cumen)o(t)g(y)o(ou)g(ha)o(v)o(e)g(written,)g(include)g(a)g(cop)o -(y)g(of)g(the)h(License)g(in)f(the)75 284 y(do)q(cumen)o(t)f(and)f(put) -g(the)h(follo)o(wing)d(cop)o(yrigh)o(t)g(and)j(license)f(notices)g -(just)g(after)f(the)h(title)f(page:)234 340 y Fb(Copyright)i(\(C\))38 -b Fa(year)k(your)19 b(name)t Fb(.)234 384 y(Permission)d(is)j(granted)e -(to)i(copy,)e(distribute)f(and/or)h(modify)h(this)g(document)234 -427 y(under)g(the)g(terms)g(of)h(the)f(GNU)h(Free)f(Documenta)o(tio)o -(n)e(License,)h(Version)g(1.3)234 471 y(or)i(any)g(later)e(version)g -(published)f(by)j(the)g(Free)f(Software)e(Foundation)o(;)234 -514 y(with)i(no)h(Invariant)d(Sections,)g(no)j(Front-Cove)o(r)e(Texts,) -g(and)h(no)h(Back-Cover)234 558 y(Texts.)37 b(A)19 b(copy)f(of)h(the)g -(license)e(is)h(included)f(in)i(the)f(section)f(entitled)g(``GNU)234 -601 y(Free)h(Documentat)o(ion)e(License'')o(.)137 669 -y Fo(If)k(y)o(ou)g(ha)o(v)o(e)g(In)o(v)m(arian)o(t)f(Sections,)h(F)l -(ron)o(t-Co)o(v)o(er)f(T)l(exts)g(and)h(Bac)o(k-Co)o(v)o(er)f(T)l -(exts,)i(replace)f(the)75 724 y(\\with)s(.)10 b(.)g(.)5 -b(T)l(exts.")20 b(line)15 b(with)f(this:)273 780 y Fb(with)19 -b(the)f(Invariant)e(Sections)h(being)g Fa(list)h(their)g(titles)t -Fb(,)f(with)273 823 y(the)i(Front-Cov)o(er)d(Texts)i(being)g -Fa(list)t Fb(,)g(and)g(with)g(the)h(Back-Cove)o(r)d(Texts)273 -867 y(being)i Fa(list)t Fb(.)137 934 y Fo(If)g(y)o(ou)f(ha)o(v)o(e)h -(In)o(v)m(arian)o(t)f(Sections)g(without)g(Co)o(v)o(er)f(T)l(exts,)i -(or)f(some)g(other)g(com)o(bination)g(of)g(the)75 989 -y(three,)e(merge)g(those)g(t)o(w)o(o)f(alternativ)o(es)f(to)i(suit)f -(the)h(situation.)137 1056 y(If)d(y)o(our)g(do)q(cumen)o(t)g(con)o -(tains)f(non)o(trivial)f(examples)i(of)f(program)g(co)q(de,)i(w)o(e)f -(recommend)g(releasing)75 1111 y(these)22 b(examples)f(in)g(parallel)g -(under)h(y)o(our)f(c)o(hoice)g(of)g(free)h(soft)o(w)o(are)e(license,)i -(suc)o(h)g(as)g(the)f(GNU)75 1166 y(General)15 b(Public)g(License,)g -(to)g(p)q(ermit)g(their)f(use)i(in)f(free)g(soft)o(w)o(are.)p -eop end -%%Trailer - -userdict /end-hook known{end-hook}if -%%EOF diff --git a/lib/readline/doc/rluserman.texinfo b/lib/readline/doc/rluserman.texinfo deleted file mode 100644 index 89abe31ae..000000000 --- a/lib/readline/doc/rluserman.texinfo +++ /dev/null @@ -1,94 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@comment %**start of header (This is for running Texinfo on a region.) -@setfilename rluserman.info -@settitle GNU Readline Library -@comment %**end of header (This is for running Texinfo on a region.) -@setchapternewpage odd - -@include manvers.texinfo - -@ifinfo -@dircategory Libraries -@direntry -* RLuserman: (rluserman). The GNU readline library User's Manual. -@end direntry - -This document describes the end user interface of the GNU Readline Library, -a utility which aids in the consistency of user interface across discrete -programs that need to provide a command line interface. - -Copyright (C) 1988-2002 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -pare preserved on all copies. - -@ignore -Permission is granted to process this file through TeX and print the -results, provided the printed document carries copying permission -notice identical to this one except for the removal of this paragraph -(this paragraph not being relevant to the printed manual). -@end ignore - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Free Software Foundation. -@end ifinfo - -@titlepage -@title GNU Readline Library User Interface -@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}. -@subtitle @value{UPDATE-MONTH} -@author Brian Fox, Free Software Foundation -@author Chet Ramey, Case Western Reserve University - -@page -This document describes the end user interface of the GNU Readline Library, -a utility which aids in the consistency of user interface across discrete -programs that need to provide a command line interface. - -Published by the Free Software Foundation @* -59 Temple Place, Suite 330, @* -Boston, MA 02111 USA - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Free Software Foundation. - -@vskip 0pt plus 1filll -Copyright @copyright{} 1988-2002 Free Software Foundation, Inc. -@end titlepage - -@ifinfo -@node Top -@top GNU Readline Library - -This document describes the end user interface of the GNU Readline Library, -a utility which aids in the consistency of user interface across discrete -programs that need to provide a command line interface. - -@menu -* Command Line Editing:: GNU Readline User's Manual. -@end menu -@end ifinfo - -@include rluser.texinfo - -@contents -@bye diff --git a/lib/readline/doc/rluserman.tmp b/lib/readline/doc/rluserman.tmp deleted file mode 100644 index 2c4c42ee8..000000000 --- a/lib/readline/doc/rluserman.tmp +++ /dev/null @@ -1,26 +0,0 @@ - -This manual describes the end user interface of the GNU Readline Library -(version @value{VERSION}, @value{UPDATED}), a library which aids in the -consistency of user interface across discrete programs which provide -a command line interface. - -Copyright @copyright{} 1988--2011 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -@quotation -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', -and with the Back-Cover Texts as in (a) below. A copy of the license is -included in the section entitled ``GNU Free Documentation License''. - -(a) The FSF's Back-Cover Text is: You are free to copy and modify -this GNU manual. Buying copies from GNU Press supports the FSF in -developing GNU and promoting software freedom.'' - -@end quotation -@endinput diff --git a/lib/readline/doc/rluserman.toc b/lib/readline/doc/rluserman.toc deleted file mode 100644 index 86c63f85a..000000000 --- a/lib/readline/doc/rluserman.toc +++ /dev/null @@ -1,23 +0,0 @@ -@numchapentry{Command Line Editing}{1}{Command Line Editing}{1} -@numsecentry{Introduction to Line Editing}{1.1}{Introduction and Notation}{1} -@numsecentry{Readline Interaction}{1.2}{Readline Interaction}{1} -@numsubsecentry{Readline Bare Essentials}{1.2.1}{Readline Bare Essentials}{1} -@numsubsecentry{Readline Movement Commands}{1.2.2}{Readline Movement Commands}{2} -@numsubsecentry{Readline Killing Commands}{1.2.3}{Readline Killing Commands}{2} -@numsubsecentry{Readline Arguments}{1.2.4}{Readline Arguments}{3} -@numsubsecentry{Searching for Commands in the History}{1.2.5}{Searching}{3} -@numsecentry{Readline Init File}{1.3}{Readline Init File}{4} -@numsubsecentry{Readline Init File Syntax}{1.3.1}{Readline Init File Syntax}{4} -@numsubsecentry{Conditional Init Constructs}{1.3.2}{Conditional Init Constructs}{10} -@numsubsecentry{Sample Init File}{1.3.3}{Sample Init File}{11} -@numsecentry{Bindable Readline Commands}{1.4}{Bindable Readline Commands}{14} -@numsubsecentry{Commands For Moving}{1.4.1}{Commands For Moving}{14} -@numsubsecentry{Commands For Manipulating The History}{1.4.2}{Commands For History}{14} -@numsubsecentry{Commands For Changing Text}{1.4.3}{Commands For Text}{16} -@numsubsecentry{Killing And Yanking}{1.4.4}{Commands For Killing}{17} -@numsubsecentry{Specifying Numeric Arguments}{1.4.5}{Numeric Arguments}{18} -@numsubsecentry{Letting Readline Type For You}{1.4.6}{Commands For Completion}{18} -@numsubsecentry{Keyboard Macros}{1.4.7}{Keyboard Macros}{19} -@numsubsecentry{Some Miscellaneous Commands}{1.4.8}{Miscellaneous Commands}{19} -@numsecentry{Readline vi Mode}{1.5}{Readline vi Mode}{21} -@appentry{GNU Free Documentation License}{A}{GNU Free Documentation License}{22} diff --git a/lib/readline/doc/rluserman.tp b/lib/readline/doc/rluserman.tp deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/readline/doc/rluserman.vr b/lib/readline/doc/rluserman.vr deleted file mode 100644 index 362ac56f0..000000000 --- a/lib/readline/doc/rluserman.vr +++ /dev/null @@ -1,31 +0,0 @@ -\entry{bell-style}{4}{\code {bell-style}} -\entry{bind-tty-special-chars}{5}{\code {bind-tty-special-chars}} -\entry{comment-begin}{5}{\code {comment-begin}} -\entry{completion-display-width}{5}{\code {completion-display-width}} -\entry{completion-ignore-case}{5}{\code {completion-ignore-case}} -\entry{completion-map-case}{5}{\code {completion-map-case}} -\entry{completion-prefix-display-length}{5}{\code {completion-prefix-display-length}} -\entry{completion-query-items}{5}{\code {completion-query-items}} -\entry{convert-meta}{5}{\code {convert-meta}} -\entry{disable-completion}{5}{\code {disable-completion}} -\entry{editing-mode}{6}{\code {editing-mode}} -\entry{enable-keypad}{6}{\code {enable-keypad}} -\entry{expand-tilde}{6}{\code {expand-tilde}} -\entry{history-preserve-point}{6}{\code {history-preserve-point}} -\entry{history-size}{6}{\code {history-size}} -\entry{horizontal-scroll-mode}{6}{\code {horizontal-scroll-mode}} -\entry{input-meta}{6}{\code {input-meta}} -\entry{meta-flag}{6}{\code {meta-flag}} -\entry{isearch-terminators}{6}{\code {isearch-terminators}} -\entry{keymap}{7}{\code {keymap}} -\entry{mark-modified-lines}{7}{\code {mark-modified-lines}} -\entry{mark-symlinked-directories}{7}{\code {mark-symlinked-directories}} -\entry{match-hidden-files}{7}{\code {match-hidden-files}} -\entry{menu-complete-display-prefix}{7}{\code {menu-complete-display-prefix}} -\entry{output-meta}{7}{\code {output-meta}} -\entry{page-completions}{7}{\code {page-completions}} -\entry{revert-all-at-newline}{8}{\code {revert-all-at-newline}} -\entry{show-all-if-ambiguous}{8}{\code {show-all-if-ambiguous}} -\entry{show-all-if-unmodified}{8}{\code {show-all-if-unmodified}} -\entry{skip-completed-text}{8}{\code {skip-completed-text}} -\entry{visible-stats}{8}{\code {visible-stats}} diff --git a/lib/readline/doc/rluserman.vrs b/lib/readline/doc/rluserman.vrs deleted file mode 100644 index 69a72b543..000000000 --- a/lib/readline/doc/rluserman.vrs +++ /dev/null @@ -1,44 +0,0 @@ -\initial {B} -\entry {\code {bell-style}}{4} -\entry {\code {bind-tty-special-chars}}{5} -\initial {C} -\entry {\code {comment-begin}}{5} -\entry {\code {completion-display-width}}{5} -\entry {\code {completion-ignore-case}}{5} -\entry {\code {completion-map-case}}{5} -\entry {\code {completion-prefix-display-length}}{5} -\entry {\code {completion-query-items}}{5} -\entry {\code {convert-meta}}{5} -\initial {D} -\entry {\code {disable-completion}}{5} -\initial {E} -\entry {\code {editing-mode}}{6} -\entry {\code {enable-keypad}}{6} -\entry {\code {expand-tilde}}{6} -\initial {H} -\entry {\code {history-preserve-point}}{6} -\entry {\code {history-size}}{6} -\entry {\code {horizontal-scroll-mode}}{6} -\initial {I} -\entry {\code {input-meta}}{6} -\entry {\code {isearch-terminators}}{6} -\initial {K} -\entry {\code {keymap}}{7} -\initial {M} -\entry {\code {mark-modified-lines}}{7} -\entry {\code {mark-symlinked-directories}}{7} -\entry {\code {match-hidden-files}}{7} -\entry {\code {menu-complete-display-prefix}}{7} -\entry {\code {meta-flag}}{6} -\initial {O} -\entry {\code {output-meta}}{7} -\initial {P} -\entry {\code {page-completions}}{7} -\initial {R} -\entry {\code {revert-all-at-newline}}{8} -\initial {S} -\entry {\code {show-all-if-ambiguous}}{8} -\entry {\code {show-all-if-unmodified}}{8} -\entry {\code {skip-completed-text}}{8} -\initial {V} -\entry {\code {visible-stats}}{8} diff --git a/lib/readline/examples/rlptytest.c b/lib/readline/examples/rlptytest.c deleted file mode 100644 index 79257db40..000000000 --- a/lib/readline/examples/rlptytest.c +++ /dev/null @@ -1,337 +0,0 @@ -/* - * - * Another test harness for the readline callback interface. - * - * Author: Bob Rossi - */ - -#if defined (HAVE_CONFIG_H) -#include -#endif - -#include -#include -#include -#include - -#include -#include - -#include - -#if 0 /* LINUX */ -#include -#else -#include -#endif - -#ifdef READLINE_LIBRARY -# include "readline.h" -#else -# include -#endif - -/** - * Master/Slave PTY used to keep readline off of stdin/stdout. - */ -static int masterfd = -1; -static int slavefd; - -void -sigint (s) - int s; -{ - tty_reset (STDIN_FILENO); - close (masterfd); - close (slavefd); - printf ("\n"); - exit (0); -} - -static int -user_input() -{ - int size; - const int MAX = 1024; - char *buf = (char *)malloc(MAX+1); - - size = read (STDIN_FILENO, buf, MAX); - if (size == -1) - return -1; - - size = write (masterfd, buf, size); - if (size == -1) - return -1; - - return 0; -} - -static int -readline_input() -{ - const int MAX = 1024; - char *buf = (char *)malloc(MAX+1); - int size; - - size = read (masterfd, buf, MAX); - if (size == -1) - { - free( buf ); - buf = NULL; - return -1; - } - - buf[size] = 0; - - /* Display output from readline */ - if ( size > 0 ) - fprintf(stderr, "%s", buf); - - free( buf ); - buf = NULL; - return 0; -} - -static void -rlctx_send_user_command(char *line) -{ - /* This happens when rl_callback_read_char gets EOF */ - if ( line == NULL ) - return; - - if (strcmp (line, "exit") == 0) { - tty_reset (STDIN_FILENO); - close (masterfd); - close (slavefd); - printf ("\n"); - exit (0); - } - - /* Don't add the enter command */ - if ( line && *line != '\0' ) - add_history(line); -} - -static void -custom_deprep_term_function () -{ -} - -static int -init_readline (int inputfd, int outputfd) -{ - FILE *inputFILE, *outputFILE; - - inputFILE = fdopen (inputfd, "r"); - if (!inputFILE) - return -1; - - outputFILE = fdopen (outputfd, "w"); - if (!outputFILE) - return -1; - - rl_instream = inputFILE; - rl_outstream = outputFILE; - - /* Tell readline what the prompt is if it needs to put it back */ - rl_callback_handler_install("(rltest): ", rlctx_send_user_command); - - /* Set the terminal type to dumb so the output of readline can be - * understood by tgdb */ - if ( rl_reset_terminal("dumb") == -1 ) - return -1; - - /* For some reason, readline can not deprep the terminal. - * However, it doesn't matter because no other application is working on - * the terminal besides readline */ - rl_deprep_term_function = custom_deprep_term_function; - - using_history(); - read_history(".history"); - - return 0; -} - -static int -main_loop(void) -{ - fd_set rset; - int max; - - max = (masterfd > STDIN_FILENO) ? masterfd : STDIN_FILENO; - max = (max > slavefd) ? max : slavefd; - - for (;;) - { - /* Reset the fd_set, and watch for input from GDB or stdin */ - FD_ZERO(&rset); - - FD_SET(STDIN_FILENO, &rset); - FD_SET(slavefd, &rset); - FD_SET(masterfd, &rset); - - /* Wait for input */ - if (select(max + 1, &rset, NULL, NULL, NULL) == -1) - { - if (errno == EINTR) - continue; - else - return -1; - } - - /* Input received through the pty: Handle it - * Wrote to masterfd, slave fd has that input, alert readline to read it. - */ - if (FD_ISSET(slavefd, &rset)) - rl_callback_read_char(); - - /* Input received through the pty. - * Readline read from slavefd, and it wrote to the masterfd. - */ - if (FD_ISSET(masterfd, &rset)) - if ( readline_input() == -1 ) - return -1; - - /* Input received: Handle it, write to masterfd (input to readline) */ - if (FD_ISSET(STDIN_FILENO, &rset)) - if ( user_input() == -1 ) - return -1; - } - - return 0; -} - -/* The terminal attributes before calling tty_cbreak */ -static struct termios save_termios; -static struct winsize size; -static enum { RESET, TCBREAK } ttystate = RESET; - -/* tty_cbreak: Sets terminal to cbreak mode. Also known as noncanonical mode. - * 1. Signal handling is still turned on, so the user can still type those. - * 2. echo is off - * 3. Read in one char at a time. - * - * fd - The file descriptor of the terminal - * - * Returns: 0 on sucess, -1 on error - */ -int tty_cbreak(int fd){ - struct termios buf; - int ttysavefd = -1; - - if(tcgetattr(fd, &save_termios) < 0) - return -1; - - buf = save_termios; - buf.c_lflag &= ~(ECHO | ICANON); - buf.c_iflag &= ~(ICRNL | INLCR); - buf.c_cc[VMIN] = 1; - buf.c_cc[VTIME] = 0; - -#if defined (VLNEXT) && defined (_POSIX_VDISABLE) - buf.c_cc[VLNEXT] = _POSIX_VDISABLE; -#endif - -#if defined (VDSUSP) && defined (_POSIX_VDISABLE) - buf.c_cc[VDSUSP] = _POSIX_VDISABLE; -#endif - - /* enable flow control; only stty start char can restart output */ -#if 0 - buf.c_iflag |= (IXON|IXOFF); -#ifdef IXANY - buf.c_iflag &= ~IXANY; -#endif -#endif - - /* disable flow control; let ^S and ^Q through to pty */ - buf.c_iflag &= ~(IXON|IXOFF); -#ifdef IXANY - buf.c_iflag &= ~IXANY; -#endif - - if(tcsetattr(fd, TCSAFLUSH, &buf) < 0) - return -1; - - ttystate = TCBREAK; - ttysavefd = fd; - - /* set size */ - if(ioctl(fd, TIOCGWINSZ, (char *)&size) < 0) - return -1; - -#ifdef DEBUG - err_msg("%d rows and %d cols\n", size.ws_row, size.ws_col); -#endif - - return (0); -} - -int -tty_off_xon_xoff (int fd) -{ - struct termios buf; - int ttysavefd = -1; - - if(tcgetattr(fd, &buf) < 0) - return -1; - - buf.c_iflag &= ~(IXON|IXOFF); - - if(tcsetattr(fd, TCSAFLUSH, &buf) < 0) - return -1; - - return 0; -} - -/* tty_reset: Sets the terminal attributes back to their previous state. - * PRE: tty_cbreak must have already been called. - * - * fd - The file descrioptor of the terminal to reset. - * - * Returns: 0 on success, -1 on error - */ -int tty_reset(int fd) -{ - if(ttystate != TCBREAK) - return (0); - - if(tcsetattr(fd, TCSAFLUSH, &save_termios) < 0) - return (-1); - - ttystate = RESET; - - return 0; -} - -int -main() -{ - int val; - val = openpty (&masterfd, &slavefd, NULL, NULL, NULL); - if (val == -1) - return -1; - - val = tty_off_xon_xoff (masterfd); - if (val == -1) - return -1; - - val = init_readline (slavefd, slavefd); - if (val == -1) - return -1; - - val = tty_cbreak (STDIN_FILENO); - if (val == -1) - return -1; - - signal (SIGINT, sigint); - - val = main_loop (); - - tty_reset (STDIN_FILENO); - - if (val == -1) - return -1; - - return 0; -} diff --git a/lib/readline/examples/x b/lib/readline/examples/x deleted file mode 100644 index 239dcab6b..000000000 --- a/lib/readline/examples/x +++ /dev/null @@ -1 +0,0 @@ -N 3149) 5/1 To: peggy.gup@c Re: FW: Phone for Mike Dailey (2413 chars)N 3150) 5/1 Jason Cutcher RE: Phone for Mike Dailey (34705 chars)N 3151) 5/1 Wizards *****SPAM***** Relief (7291 chars)N 3152) 5/1 FCG Help Desk Case HD0000002533519, Medium, h (2537 chars)N 3153) 5/1 To: jrw11@case. HD0000002533519 (2247 chars)N 3154) 5/1 Peggy Watts Gup RE: [tis-staff] Boxes back to m (12903 chars)N 3155) 5/1 Debbie Andrews [firewall-changes] Firewa diff --git a/lib/readline/rlptytest.c b/lib/readline/rlptytest.c deleted file mode 100644 index ee351a944..000000000 --- a/lib/readline/rlptytest.c +++ /dev/null @@ -1,301 +0,0 @@ -/* - * - * Another test harness for the readline callback interface. - * - * Author: Bob Rossi - */ - -#if defined (HAVE_CONFIG_H) -#include -#endif - -#include -#include -#include -#include - -#include -#include - -#include - -#if 0 /* LINUX */ -#include -#else -#include -#endif - -#ifdef READLINE_LIBRARY -# include "readline.h" -#else -# include -#endif - -/** - * Master/Slave PTY used to keep readline off of stdin/stdout. - */ -static int masterfd = -1; -static int slavefd; - -void -sigint (s) - int s; -{ - tty_reset (STDIN_FILENO); - close (masterfd); - close (slavefd); - printf ("\n"); - exit (0); -} - -static int -user_input() -{ - int size; - const int MAX = 1024; - char *buf = (char *)malloc(MAX+1); - - size = read (STDIN_FILENO, buf, MAX); - if (size == -1) - return -1; - - size = write (masterfd, buf, size); - if (size == -1) - return -1; - - return 0; -} - -static int -readline_input() -{ - const int MAX = 1024; - char *buf = (char *)malloc(MAX+1); - int size; - - size = read (masterfd, buf, MAX); - if (size == -1) - { - free( buf ); - buf = NULL; - return -1; - } - - buf[size] = 0; - - /* Display output from readline */ - if ( size > 0 ) - fprintf(stderr, "%s", buf); - - free( buf ); - buf = NULL; - return 0; -} - -static void -rlctx_send_user_command(char *line) -{ - /* This happens when rl_callback_read_char gets EOF */ - if ( line == NULL ) - return; - - if (strcmp (line, "exit") == 0) { - tty_reset (STDIN_FILENO); - close (masterfd); - close (slavefd); - printf ("\n"); - exit (0); - } - - /* Don't add the enter command */ - if ( line && *line != '\0' ) - add_history(line); -} - -static void -custom_deprep_term_function () -{ -} - -static int -init_readline (int inputfd, int outputfd) -{ - FILE *inputFILE, *outputFILE; - - inputFILE = fdopen (inputfd, "r"); - if (!inputFILE) - return -1; - - outputFILE = fdopen (outputfd, "w"); - if (!outputFILE) - return -1; - - rl_instream = inputFILE; - rl_outstream = outputFILE; - - /* Tell readline what the prompt is if it needs to put it back */ - rl_callback_handler_install("(rltest): ", rlctx_send_user_command); - - /* Set the terminal type to dumb so the output of readline can be - * understood by tgdb */ - if ( rl_reset_terminal("dumb") == -1 ) - return -1; - - /* For some reason, readline can not deprep the terminal. - * However, it doesn't matter because no other application is working on - * the terminal besides readline */ - rl_deprep_term_function = custom_deprep_term_function; - - using_history(); - read_history(".history"); - - return 0; -} - -static int -main_loop(void) -{ - fd_set rset; - int max; - - max = (masterfd > STDIN_FILENO) ? masterfd : STDIN_FILENO; - max = (max > slavefd) ? max : slavefd; - - for (;;) - { - /* Reset the fd_set, and watch for input from GDB or stdin */ - FD_ZERO(&rset); - - FD_SET(STDIN_FILENO, &rset); - FD_SET(slavefd, &rset); - FD_SET(masterfd, &rset); - - /* Wait for input */ - if (select(max + 1, &rset, NULL, NULL, NULL) == -1) - { - if (errno == EINTR) - continue; - else - return -1; - } - - /* Input received through the pty: Handle it - * Wrote to masterfd, slave fd has that input, alert readline to read it. - */ - if (FD_ISSET(slavefd, &rset)) - rl_callback_read_char(); - - /* Input received through the pty. - * Readline read from slavefd, and it wrote to the masterfd. - */ - if (FD_ISSET(masterfd, &rset)) - if ( readline_input() == -1 ) - return -1; - - /* Input received: Handle it, write to masterfd (input to readline) */ - if (FD_ISSET(STDIN_FILENO, &rset)) - if ( user_input() == -1 ) - return -1; - } - - return 0; -} - -/* The terminal attributes before calling tty_cbreak */ -static struct termios save_termios; -static struct winsize size; -static enum { RESET, TCBREAK } ttystate = RESET; - -/* tty_cbreak: Sets terminal to cbreak mode. Also known as noncanonical mode. - * 1. Signal handling is still turned on, so the user can still type those. - * 2. echo is off - * 3. Read in one char at a time. - * - * fd - The file descriptor of the terminal - * - * Returns: 0 on sucess, -1 on error - */ -int tty_cbreak(int fd){ - struct termios buf; - int ttysavefd = -1; - - if(tcgetattr(fd, &save_termios) < 0) - return -1; - - buf = save_termios; - buf.c_lflag &= ~(ECHO | ICANON); - buf.c_iflag &= ~(ICRNL | INLCR); - buf.c_cc[VMIN] = 1; - buf.c_cc[VTIME] = 0; - -#if defined (VLNEXT) && defined (_POSIX_VDISABLE) - buf.c_cc[VLNEXT] = _POSIX_VDISABLE; -#endif - -#if defined (VDSUSP) && defined (_POSIX_VDISABLE) - buf.c_cc[VDSUSP] = _POSIX_VDISABLE; -#endif - - if(tcsetattr(fd, TCSAFLUSH, &buf) < 0) - return -1; - - ttystate = TCBREAK; - ttysavefd = fd; - - /* set size */ - if(ioctl(fd, TIOCGWINSZ, (char *)&size) < 0) - return -1; - -#ifdef DEBUG - err_msg("%d rows and %d cols\n", size.ws_row, size.ws_col); -#endif - - return (0); -} - -/* tty_reset: Sets the terminal attributes back to their previous state. - * PRE: tty_cbreak must have already been called. - * - * fd - The file descrioptor of the terminal to reset. - * - * Returns: 0 on success, -1 on error - */ -int tty_reset(int fd){ - if(ttystate != TCBREAK) - return (0); - - if(tcsetattr(fd, TCSAFLUSH, &save_termios) < 0) - return (-1); - - ttystate = RESET; - - return 0; -} - -int -main() -{ - int val; - val = openpty (&masterfd, &slavefd, NULL, NULL, NULL); - if (val == -1) - return -1; - - val = init_readline (slavefd, slavefd); - if (val == -1) - return -1; - - val = tty_cbreak (STDIN_FILENO); - if (val == -1) - return -1; - - signal (SIGINT, sigint); - - val = main_loop (); - - tty_reset (STDIN_FILENO); - - if (val == -1) - return -1; - - return 0; -} diff --git a/lib/termcap/grot/COPYING b/lib/termcap/grot/COPYING deleted file mode 100644 index 2b940a412..000000000 --- a/lib/termcap/grot/COPYING +++ /dev/null @@ -1,347 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -The Free Software Foundation has exempted Bash from the requirement of -Paragraph 2c of the General Public License. This is to say, there is -no requirement for Bash to print a notice when it is started -interactively in the usual way. We made this exception because users -and standards expect shells not to print such messages. This -exception applies to any program that serves as a shell and that is -based primarily on Bash as opposed to other GNU software. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program 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 of the License, or - (at your option) any later version. - - This program 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 this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/lib/termcap/grot/ChangeLog b/lib/termcap/grot/ChangeLog deleted file mode 100644 index e8c475120..000000000 --- a/lib/termcap/grot/ChangeLog +++ /dev/null @@ -1,137 +0,0 @@ -Wed Aug 16 20:45:44 1995 David J. MacKenzie - - * version.c: Version 1.3. - - * termcap.c (tgetent): Use the user-supplied buffer even if we - don't find a matching terminal, so the program can set the buffer - if they want (`less' does this). From Bob Pegram - . - -Wed Jul 26 11:44:51 1995 David J. MacKenzie - - * termcap.c: TERMCAP_NAME -> TERMCAP_FILE. - - * configure.in: Add --enable-install-termcap and --with-termcap - options. - - * Makefile.in: Add hooks for new configure options. - - * Makefile.in (DISTFILES): Add termcap.src. - (DEFS): Remove -DNO_ARG_ARRAY. - (install-data, uninstall-data): New targets. - - * tparam.c (tparam): Remove arg array version and the #ifdef. - - * termcap.c: Move #define of bcopy to after #include . - - * termcap.h: Prototype the arg to the tputs outfun arg. - - * Makefile.in: realclean -> maintainer-clean. Use @prefix@ and - @exec_prefix@. - - * Makefile.in (DISTFILES): Add install-sh. - -Fri Apr 7 14:57:45 1995 Richard Stallman - - * termcap.c (tgetent): Don't try to return the allocated address. - Always return 1 if successful. - -Tue Feb 14 02:34:43 1995 Richard Stallman - - * termcap.c (speeds): Make it ints. Add some higher speeds. - (tputs) [emacs]: If speed is high, convert to smaller units. - (tputs): Really use SPEED to calculate PADCOUNT. - -Sat Dec 17 07:20:24 1994 Richard Stallman - - * termcap.c (tgetst1): Let ^? stand for DEL character. - -Thu Jun 30 04:35:50 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * configure.in: Use AC_HAVE_HEADERS instead of AC_UNISTD_H. - Add AC_PROG_RANLIB. - * Makefile.in (AR, RANLIB): New variables. - (install, libtermcap.a): Use them instead of hard-wired commands. - -Sat Jun 4 12:21:41 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * termcap.c [HAVE_CONFIG_H]: Include , and include - #ifdef USG5, so we get O_* defns. - -Wed May 25 19:05:30 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * termcap.c (O_RDONLY): Define to 0 if not already defined. - (tgetent): Use O_RDONLY instead of explicit 0 in call to open. - -Wed Jan 5 22:20:15 1993 Morten Welinder (terra@diku.dk) - - * termcap.c (tgetent) [INTERNAL_TERMINAL]: Fake internal terminal - without reading any files. - (valid_file_name, tgetent) [MSDOS]: Drive letter support. - (tgetent) [MSDOS]: Use text mode for database. - -Fri Dec 17 00:22:43 1993 Mike Long (mike.long@analog.com) - - * termcap.c (tgetent): Replaced literal filenames for termcap - database with preprocessor symbol TERMCAP_NAME. - (TERMCAP_NAME): Define if not defined. - -Fri Sep 10 00:35:07 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * Makefile.in (.c.o): Put -I. before -I$(srcdir). - * termcap.c: Include instead of "config.h". - * tparam.c: Likewise. - -Thu Jul 29 20:53:30 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) - - * Makefile.in (config.status): Run config.status --recheck, not - configure, to get the right args passed. - -Thu Apr 15 12:45:10 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) - - * Version 1.2. - - * tparam.c [!emacs] (xmalloc, xrealloc, memory_out): New functions. - (tparam1): Use them. - - * termcap.c, tparam.c: Use NULL or '\0' where appropriate - instead of 0. Rename some vars. - * termcap.c (tgetent): If EOF is reached on termcap file, - free allocated resources before returning. - - * termcap.c (tgetent): Use /etc/termcap if TERMCAP is an entry - for a term type other than TERM. - From pjr@jet.UK (Paul J Rippin). - -Sat Apr 10 23:55:12 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * tparam.c (tparam1): Don't set the 0200 bit on a non-0 character code. - From junio@twinsun.COM (Junio Hamano). - -Tue Dec 8 22:02:15 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) - - * termcap.c, tparam.c: Use HAVE_STRING_H instead of USG. - -Thu Dec 3 13:47:56 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * termcap.c, tparam.c [HAVE_CONFIG_H]: Include config.h. - -Fri Oct 23 12:35:29 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * termcap.h [__STDC__]: Add consts. From Franc,ois Pinard. - -Tue Oct 13 15:52:21 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * Version 1.1. - -Tue Sep 29 21:04:39 1992 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) - - * termcap.[ch], tparam.c: Fix some lint. - - * version.c: New file. - -Local Variables: -mode: indented-text -left-margin: 8 -version-control: never -End: diff --git a/lib/termcap/grot/INSTALL b/lib/termcap/grot/INSTALL deleted file mode 100644 index 95d84c820..000000000 --- a/lib/termcap/grot/INSTALL +++ /dev/null @@ -1,176 +0,0 @@ -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. - diff --git a/lib/termcap/grot/Makefile.in b/lib/termcap/grot/Makefile.in deleted file mode 100644 index e6f06ae6d..000000000 --- a/lib/termcap/grot/Makefile.in +++ /dev/null @@ -1,138 +0,0 @@ -# Makefile for GNU termcap library. -# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. - -# This program 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. - -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. - -#### Start of system configuration section. #### - -srcdir = @srcdir@ -VPATH = @srcdir@ - -CC = @CC@ -AR = ar -RANLIB = @RANLIB@ - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -MAKEINFO = makeinfo - -DEFS = @DEFS@ -DTERMCAP_FILE=\"$(termcapfile)\" - -CFLAGS = -g - -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -# Directory in which to install libtermcap.a. -libdir = $(exec_prefix)/lib - -# Directory in which to install termcap.h. -includedir = $(prefix)/include - -# Directory in which to optionally also install termcap.h, -# so compilers besides gcc can find it by default. -# If it is empty or not defined, termcap.h will only be installed in -# includedir. -oldincludedir = /usr/include - -# Directory in which to install the documentation info files. -infodir = $(prefix)/info - -# File to which `install-data' should install the data file -# if --enable-install-termcap was given. -termcapfile = @termcapfile@ - -#### End of system configuration section. #### - -SHELL = /bin/sh - -SRCS = termcap.c tparam.c version.c -OBJS = termcap.o tparam.o version.o -HDRS = termcap.h -DISTFILES = $(SRCS) $(HDRS) ChangeLog COPYING README INSTALL NEWS \ -termcap.src termcap.texi termcap.info* \ -texinfo.tex Makefile.in configure configure.in mkinstalldirs install-sh - -all: libtermcap.a info - -.c.o: - $(CC) -c $(CPPFLAGS) $(DEFS) -I. -I$(srcdir) $(CFLAGS) $< - -install: all installdirs @installdata@ - $(INSTALL_DATA) libtermcap.a $(libdir)/libtermcap.a - -$(RANLIB) $(libdir)/libtermcap.a - cd $(srcdir); $(INSTALL_DATA) termcap.h $(includedir)/termcap.h - -cd $(srcdir); test -z "$(oldincludedir)" || \ - $(INSTALL_DATA) termcap.h $(oldincludedir)/termcap.h - cd $(srcdir); for f in termcap.info*; \ - do $(INSTALL_DATA) $$f $(infodir)/$$f; done - -uninstall: @uninstalldata@ - rm -f $(libdir)/libtermcap.a $(includedir)/termcap.h - test -z "$(oldincludedir)" || rm -f $(oldincludedir)/termcap.h - rm -f $(infodir)/termcap.info* - -# These are separate targets to avoid trashing the user's existing -# termcap file unexpectedly. -install-data: - $(INSTALL_DATA) ${srcdir}/termcap.src ${termcapfile} - -uninstall-data: - rm -f ${termcapfile} - -installdirs: - $(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(libdir) \ - $(includedir) $(infodir) - -Makefile: Makefile.in config.status - $(SHELL) config.status -config.status: configure - $(SHELL) config.status --recheck -configure: configure.in - cd $(srcdir) && autoconf - -libtermcap.a: $(OBJS) - $(AR) rc $@ $(OBJS) - -$(RANLIB) $@ - -info: termcap.info - -termcap.info: termcap.texi - $(MAKEINFO) $(srcdir)/termcap.texi --output=$@ - -TAGS: $(SRCS) - etags $(SRCS) - -clean: - rm -f *.a *.o core - -mostlyclean: clean - -distclean: clean - rm -f Makefile config.status config.cache config.log - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "rebuilding the deleted files requires makeinfo." - rm -f TAGS *.info* - -dist: $(DISTFILES) - echo termcap-`sed -e '/version_string/!d' -e 's/[^0-9]*\([0-9a-z.]*\).*/\1/' -e q version.c` > .fname - rm -rf `cat .fname` - mkdir `cat .fname` - ln $(DISTFILES) `cat .fname` - tar chzf `cat .fname`.tar.gz `cat .fname` - rm -rf `cat .fname` .fname diff --git a/lib/termcap/grot/NEWS b/lib/termcap/grot/NEWS deleted file mode 100644 index e5d58b9ea..000000000 --- a/lib/termcap/grot/NEWS +++ /dev/null @@ -1,20 +0,0 @@ -Major changes in release 1.3: - -Termcap data file is now included in distribution and may optionally - be installed, or used in a non-default location. -Support for a fake internal terminal (no external files). -Higher tty speeds supported. -Portability tweaks. - -Major changes in release 1.2: - -For `%.', only set the high bit on NUL. -Fix a file descriptor and memory leak. -Add const in termcap.h prototypes. -Configuration improvements. - -Major changes in release 1.1: - -Fix portability problems. -Improve configuration and installation. -Fix compiler warnings. diff --git a/lib/termcap/grot/README b/lib/termcap/grot/README deleted file mode 100644 index ba1a19c93..000000000 --- a/lib/termcap/grot/README +++ /dev/null @@ -1,34 +0,0 @@ -This is the GNU termcap library -- a library of C functions that -enable programs to send control strings to terminals in a way -independent of the terminal type. The GNU termcap library does not -place an arbitrary limit on the size of termcap entries, unlike most -other termcap libraries. - -Most of this package is also distributed with GNU Emacs, but it is -available in this separate distribution to make it easier to install -as -ltermcap. However, use of termcap is discouraged. Termcap is -being phased out in favor of the terminfo-based ncurses library, which -contains an emulation of the termcap library routines in addition to -an excellent curses implementation. ncurses is available from the -usual GNU archive sites. - -See the file INSTALL for compilation and installation instructions. -Additionally: - -This package contains termcap.src, the latest official termcap data -file. By default, it is not installed. The current version contains -some entries that are more than 1023 bytes long, which is the largest -value that is safe to use with the many historical applications that -only allocate a 1024 byte termcap buffer (telnet, for example). If -you make sure that all of your programs allocate buffers of at least -2500 bytes, or let the termcap library do it by passing a NULL -pointer, then it is safe to install the new termcap file, as described -below. - -You can give configure two special options: - --enable-install-termcap install the termcap data file - --with-termcap=FILE use data file FILE instead of /etc/termcap - -Please report any bugs in this library to bug-gnu-emacs@prep.ai.mit.edu. -You can check which version of the library you have by using the RCS -`ident' command on libtermcap.a. diff --git a/lib/termcap/grot/configure b/lib/termcap/grot/configure deleted file mode 100755 index 8a885fa5b..000000000 --- a/lib/termcap/grot/configure +++ /dev/null @@ -1,998 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.4 -# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: -ac_help="$ac_help - --enable-install-termcap install the termcap data file" -ac_help="$ac_help - --with-termcap=FILE use data file FILE instead of /etc/termcap" - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE - -# Initialize some other variables. -subdirs= - -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 - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -build | --build | --buil | --bui | --bu | --b) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*) - build="$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" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) 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) - # 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 << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=PREFIX install architecture-dependent files in PREFIX - [same as prefix] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR ---enable and --with options recognized:$ac_help -EOF - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$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) - 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 ;; - - -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 ;; - - -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" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.4" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - 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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LANG+set}" = set; then LANG=C; export LANG; fi - -# 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 - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=termcap.h - -# 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_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - 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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# 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 "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5' - -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -# Check whether --enable-install-termcap or --disable-install-termcap was given. -enableval="$enable_install_termcap" -if test -n "$enableval"; then - if test $enableval = yes; then - installdata=install-data uninstalldata=uninstall-data - fi -fi - - -# Check whether --with-termcap or --without-termcap was given. -withval="$with_termcap" -if test -n "$withval"; then - termcapfile=$withval -else - termcapfile=/etc/termcap -fi - - -# Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5 | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 -if test $ac_cv_prog_gcc = yes; then - GCC=yes - if test "${CFLAGS+set}" != set; then - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_gcc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_gcc_g=yes -else - ac_cv_prog_gcc_g=no -fi -rm -f conftest* - -fi - echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6 - if test $ac_cv_prog_gcc_g = yes; then - CFLAGS="-g -O" - else - CFLAGS="-O" - fi - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - -# Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; 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 - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - -# 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 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - for ac_prog in ginstall installbsd scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - # OSF/1 installbsd also uses dspmsg, but is usable. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_ifs" - # As a last resort, use the slow shell script. - test -z "$ac_cv_path_install" && ac_cv_path_install="$ac_install_sh" -fi - INSTALL="$ac_cv_path_install" -fi -echo "$ac_t""$INSTALL" 1>&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_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then -if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - # This must be in double quotes, not single quotes, because CPP may get - # substituted into the Makefile and "${CC-cc}" will confuse make. - CPP="${CC-cc} -E" - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. - cat > conftest.$ac_ext < -Syntax Error -EOF -eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - rm -rf conftest* - CPP="${CC-cc} -E -traditional-cpp" - cat > conftest.$ac_ext < -Syntax Error -EOF -eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - rm -rf conftest* - CPP=/lib/cpp -fi -rm -f conftest* -fi -rm -f conftest* - ac_cv_prog_CPP="$CPP" -fi - CPP="$ac_cv_prog_CPP" -else - ac_cv_prog_CPP="$CPP" -fi -echo "$ac_t""$CPP" 1>&6 - -for ac_hdr in string.h unistd.h -do -ac_safe=`echo "$ac_hdr" | tr './\055' '___'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -EOF -eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | tr '[a-z]./\055' '[A-Z]___'` - cat >> confdefs.h <&6 -fi -done - -# If we cannot run a trivial program, we must be cross compiling. -echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_c_cross'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_cross=yes -else -cat > conftest.$ac_ext </dev/null; then - ac_cv_c_cross=no -else - ac_cv_c_cross=yes -fi -fi -rm -fr conftest* -fi -cross_compiling=$ac_cv_c_cross -echo "$ac_t""$ac_cv_c_cross" 1>&6 - -echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#include -#include -#include -EOF -eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - rm -rf conftest* - ac_cv_header_stdc=yes -else - echo "$ac_err" >&5 - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - rm -rf conftest* - 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 < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - rm -rf conftest* - 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 - ac_cv_header_stdc=no -else -cat > conftest.$ac_ext < -#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#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); } - -EOF -eval $ac_link -if test -s conftest && (./conftest; exit) 2>/dev/null; then - : -else - ac_cv_header_stdc=no -fi -fi -rm -fr conftest* -fi -fi -echo "$ac_t""$ac_cv_header_stdc" 1>&6 -if test $ac_cv_header_stdc = yes; then - cat >> confdefs.h <<\EOF -#define STDC_HEADERS 1 -EOF - -fi - - -trap '' 1 2 15 -cat > confcache <<\EOF -# 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. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# 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 | - sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \ - >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.4" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 - -# Protect against being on the right side of a sed subst in config.status. -sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; - s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF -$ac_vpsub -$extrasub -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@installdata@%$installdata%g -s%@uninstalldata@%$uninstalldata%g -s%@termcapfile@%$termcapfile%g -s%@CC@%$CC%g -s%@RANLIB@%$RANLIB%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@CPP@%$CPP%g - -CEOF -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust relative srcdir, etc. for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file -fi; done -rm -f conftest.subs - - - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/lib/termcap/grot/configure.in b/lib/termcap/grot/configure.in deleted file mode 100644 index f3f944f9c..000000000 --- a/lib/termcap/grot/configure.in +++ /dev/null @@ -1,23 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(termcap.h) - -AC_ARG_ENABLE(install-termcap, -[ --enable-install-termcap install the termcap data file], -[if test $enableval = yes; then - installdata=install-data uninstalldata=uninstall-data - fi]) -AC_SUBST(installdata)dnl -AC_SUBST(uninstalldata)dnl - -AC_ARG_WITH(termcap, -[ --with-termcap=FILE use data file FILE instead of /etc/termcap], -termcapfile=$withval, termcapfile=/etc/termcap) -AC_SUBST(termcapfile)dnl - -AC_PROG_CC -AC_PROG_RANLIB -AC_PROG_INSTALL -AC_HAVE_HEADERS(string.h unistd.h) -AC_STDC_HEADERS - -AC_OUTPUT(Makefile) diff --git a/lib/termcap/grot/termcap.info b/lib/termcap/grot/termcap.info deleted file mode 100644 index f663195a3..000000000 --- a/lib/termcap/grot/termcap.info +++ /dev/null @@ -1,80 +0,0 @@ -This is Info file ./termcap.info, produced by Makeinfo-1.55 from the -input file ./termcap.texi. - - This file documents the termcap library of the GNU system. - - Copyright (C) 1988 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation approved by the Foundation. - - -Indirect: -termcap.info-1: 874 -termcap.info-2: 47411 -termcap.info-3: 90390 -termcap.info-4: 138827 - -Tag Table: -(Indirect) -Node: Top874 -Node: Introduction4105 -Node: Library5832 -Node: Preparation6851 -Node: Find8034 -Node: Interrogate11492 -Node: Initialize16800 -Node: Padding18440 -Node: Why Pad19146 -Node: Not Enough20768 -Node: Describe Padding23336 -Node: Output Padding24826 -Node: Parameters28441 -Node: Encode Parameters30101 -Node: Using Parameters36185 -Node: tparam36780 -Node: tgoto38806 -Node: Data Base41361 -Node: Format42257 -Node: Capability Format44346 -Node: Naming47411 -Node: Inheriting51980 -Node: Changing54224 -Node: Capabilities55388 -Node: Basic58127 -Node: Screen Size62180 -Node: Cursor Motion63920 -Node: Wrapping74062 -Node: Scrolling77091 -Node: Windows82980 -Node: Clearing83714 -Node: Insdel Line85478 -Node: Insdel Char90390 -Node: Standout100375 -Node: Underlining109433 -Node: Cursor Visibility111852 -Node: Bell112600 -Node: Keypad113149 -Node: Meta Key117864 -Node: Initialization118818 -Node: Pad Specs121369 -Node: Status Line123422 -Node: Half-Line125306 -Node: Printer126108 -Node: Summary127787 -Node: Var Index138114 -Node: Cap Index138827 -Node: Index145991 - -End Tag Table diff --git a/lib/termcap/grot/termcap.info-1 b/lib/termcap/grot/termcap.info-1 deleted file mode 100644 index a5b5da0bb..000000000 --- a/lib/termcap/grot/termcap.info-1 +++ /dev/null @@ -1,1114 +0,0 @@ -This is Info file ./termcap.info, produced by Makeinfo-1.55 from the -input file ./termcap.texi. - - This file documents the termcap library of the GNU system. - - Copyright (C) 1988 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: termcap.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) - -* Menu: - -* Introduction:: What is termcap? Why this manual? -* Library:: The termcap library functions. -* Data Base:: What terminal descriptions in `/etc/termcap' look like. -* Capabilities:: Definitions of the individual terminal capabilities: - how to write them in descriptions, and how to use - their values to do display updating. -* Summary:: Brief table of capability names and their meanings. -* Var Index:: Index of C functions and variables. -* Cap Index:: Index of termcap capabilities. -* Index:: Concept index. - - -- The Detailed Node Listing -- - -The Termcap Library - -* Preparation:: Preparing to use the termcap library. -* Find:: Finding the description of the terminal being used. -* Interrogate:: Interrogating the description for particular capabilities. -* Initialize:: Initialization for output using termcap. -* Padding:: Outputting padding. -* Parameters:: Encoding parameters such as cursor positions. - -Padding - -* Why Pad:: Explanation of padding. -* Not Enough:: When there is not enough padding. -* Describe Padding:: The data base says how much padding a terminal needs. -* Output Padding:: Using `tputs' to output the needed padding. - -Filling In Parameters - -* Encode Parameters:: The language for encoding parameters. -* Using Parameters:: Outputting a string command with parameters. - -Sending Display Commands with Parameters - -* tparam:: The general case, for GNU termcap only. -* tgoto:: The special case of cursor motion. - -The Format of the Data Base - -* Format:: Overall format of a terminal description. -* Capability Format:: Format of capabilities within a description. -* Naming:: Naming conventions for terminal types. -* Inheriting:: Inheriting part of a description from -a related terminal type. -* Changing:: When changes in the data base take effect. - -Definitions of the Terminal Capabilities - -* Basic:: Basic characteristics. -* Screen Size:: Screen size, and what happens when it changes. -* Cursor Motion:: Various ways to move the cursor. -* Wrapping:: What happens if you write a character in the last column. -* Scrolling:: Pushing text up and down on the screen. -* Windows:: Limiting the part of the window that output affects. -* Clearing:: Erasing one or many lines. -* Insdel Line:: Making new blank lines in mid-screen; deleting lines. -* Insdel Char:: Inserting and deleting characters within a line. -* Standout:: Highlighting some of the text. -* Underlining:: Underlining some of the text. -* Cursor Visibility:: Making the cursor more or less easy to spot. -* Bell:: Attracts user's attention; not localized on the screen. -* Keypad:: Recognizing when function keys or arrows are typed. -* Meta Key:: META acts like an extra shift key. -* Initialization:: Commands used to initialize or reset the terminal. -* Pad Specs:: Info for the kernel on how much padding is needed. -* Status Line:: A status line displays "background" information. -* Half-Line:: Moving by half-lines, for superscripts and subscripts. -* Printer:: Controlling auxiliary printers of display terminals. - - -File: termcap.info, Node: Introduction, Next: Library, Prev: Top, Up: Top - -Introduction -************ - - "Termcap" is a library and data base that enables programs to use -display terminals in a terminal-independent manner. It originated in -Berkeley Unix. - - The termcap data base describes the capabilities of hundreds of -different display terminals in great detail. Some examples of the -information recorded for a terminal could include how many columns wide -it is, what string to send to move the cursor to an arbitrary position -(including how to encode the row and column numbers), how to scroll the -screen up one or several lines, and how much padding is needed for such -a scrolling operation. - - The termcap library is provided for easy access this data base in -programs that want to do terminal-independent character-based display -output. - - This manual describes the GNU version of the termcap library, which -has some extensions over the Unix version. All the extensions are -identified as such, so this manual also tells you how to use the Unix -termcap. - - The GNU version of the termcap library is available free as source -code, for use in free programs, and runs on Unix and VMS systems (at -least). You can find it in the GNU Emacs distribution in the files -`termcap.c' and `tparam.c'. - - This manual was written for the GNU project, whose goal is to -develop a complete free operating system upward-compatible with Unix -for user programs. The project is approximately two thirds complete. -For more information on the GNU project, including the GNU Emacs editor -and the mostly-portable optimizing C compiler, send one dollar to - - Free Software Foundation - 675 Mass Ave - Cambridge, MA 02139 - - -File: termcap.info, Node: Library, Next: Data Base, Prev: Introduction, Up: Top - -The Termcap Library -******************* - - The termcap library is the application programmer's interface to the -termcap data base. It contains functions for the following purposes: - - * Finding the description of the user's terminal type (`tgetent'). - - * Interrogating the description for information on various topics - (`tgetnum', `tgetflag', `tgetstr'). - - * Computing and performing padding (`tputs'). - - * Encoding numeric parameters such as cursor positions into the - terminal-specific form required for display commands (`tparam', - `tgoto'). - -* Menu: - -* Preparation:: Preparing to use the termcap library. -* Find:: Finding the description of the terminal being used. -* Interrogate:: Interrogating the description for particular capabilities. -* Initialize:: Initialization for output using termcap. -* Padding:: Outputting padding. -* Parameters:: Encoding parameters such as cursor positions. - - -File: termcap.info, Node: Preparation, Next: Find, Up: Library - -Preparing to Use the Termcap Library -==================================== - - To use the termcap library in a program, you need two kinds of -preparation: - - * The compiler needs declarations of the functions and variables in - the library. - - On GNU systems, it suffices to include the header file `termcap.h' - in each source file that uses these functions and variables. - - On Unix systems, there is often no such header file. Then you must - explictly declare the variables as external. You can do likewise - for the functions, or let them be implicitly declared and cast - their values from type `int' to the appropriate type. - - We illustrate the declarations of the individual termcap library - functions with ANSI C prototypes because they show how to pass the - arguments. If you are not using the GNU C compiler, you probably - cannot use function prototypes, so omit the argument types and - names from your declarations. - - * The linker needs to search the library. Usually either - `-ltermcap' or `-ltermlib' as an argument when linking will do - this. - - -File: termcap.info, Node: Find, Next: Interrogate, Prev: Preparation, Up: Library - -Finding a Terminal Description: `tgetent' -========================================= - - An application program that is going to use termcap must first look -up the description of the terminal type in use. This is done by calling -`tgetent', whose declaration in ANSI Standard C looks like: - - int tgetent (char *BUFFER, char *TERMTYPE); - -This function finds the description and remembers it internally so that -you can interrogate it about specific terminal capabilities (*note -Interrogate::.). - - The argument TERMTYPE is a string which is the name for the type of -terminal to look up. Usually you would obtain this from the environment -variable `TERM' using `getenv ("TERM")'. - - If you are using the GNU version of termcap, you can alternatively -ask `tgetent' to allocate enough space. Pass a null pointer for -BUFFER, and `tgetent' itself allocates the storage using `malloc'. -There is no way to get the address that was allocated, and you -shouldn't try to free the storage. - - With the Unix version of termcap, you must allocate space for the -description yourself and pass the address of the space as the argument -BUFFER. There is no way you can tell how much space is needed, so the -convention is to allocate a buffer 2048 characters long and assume that -is enough. (Formerly the convention was to allocate 1024 characters and -assume that was enough. But one day, for one kind of terminal, that was -not enough.) - - No matter how the space to store the description has been obtained, -termcap records its address internally for use when you later -interrogate the description with `tgetnum', `tgetstr' or `tgetflag'. If -the buffer was allocated by termcap, it will be freed by termcap too if -you call `tgetent' again. If the buffer was provided by you, you must -make sure that its contents remain unchanged for as long as you still -plan to interrogate the description. - - The return value of `tgetent' is -1 if there is some difficulty -accessing the data base of terminal types, 0 if the data base is -accessible but the specified type is not defined in it, and some other -value otherwise. - - Here is how you might use the function `tgetent': - - #ifdef unix - static char term_buffer[2048]; - #else - #define term_buffer 0 - #endif - - init_terminal_data () - { - char *termtype = getenv ("TERM"); - int success; - - if (termtype == 0) - fatal ("Specify a terminal type with `setenv TERM '.\n"); - - success = tgetent (term_buffer, termtype); - if (success < 0) - fatal ("Could not access the termcap data base.\n"); - if (success == 0) - fatal ("Terminal type `%s' is not defined.\n", termtype); - } - -Here we assume the function `fatal' prints an error message and exits. - - If the environment variable `TERMCAP' is defined, its value is used -to override the terminal type data base. The function `tgetent' checks -the value of `TERMCAP' automatically. If the value starts with `/' -then it is taken as a file name to use as the data base file, instead -of `/etc/termcap' which is the standard data base. If the value does -not start with `/' then it is itself used as the terminal description, -provided that the terminal type TERMTYPE is among the types it claims -to apply to. *Note Data Base::, for information on the format of a -terminal description. - - -File: termcap.info, Node: Interrogate, Next: Initialize, Prev: Find, Up: Library - -Interrogating the Terminal Description -====================================== - - Each piece of information recorded in a terminal description is -called a "capability". Each defined terminal capability has a -two-letter code name and a specific meaning. For example, the number -of columns is named `co'. *Note Capabilities::, for definitions of all -the standard capability names. - - Once you have found the proper terminal description with `tgetent' -(*note Find::.), your application program must "interrogate" it for -various terminal capabilities. You must specify the two-letter code of -the capability whose value you seek. - - Capability values can be numeric, boolean (capability is either -present or absent) or strings. Any particular capability always has -the same value type; for example, `co' always has a numeric value, -while `am' (automatic wrap at margin) is always a flag, and `cm' -(cursor motion command) always has a string value. The documentation -of each capability says which type of value it has. - - There are three functions to use to get the value of a capability, -depending on the type of value the capability has. Here are their -declarations in ANSI C: - - int tgetnum (char *NAME); - int tgetflag (char *NAME); - char *tgetstr (char *NAME, char **AREA); - -`tgetnum' - Use `tgetnum' to get a capability value that is numeric. The - argument NAME is the two-letter code name of the capability. If - the capability is present, `tgetnum' returns the numeric value - (which is nonnegative). If the capability is not mentioned in the - terminal description, `tgetnum' returns -1. - -`tgetflag' - Use `tgetflag' to get a boolean value. If the capability NAME is - present in the terminal description, `tgetflag' returns 1; - otherwise, it returns 0. - -`tgetstr' - Use `tgetstr' to get a string value. It returns a pointer to a - string which is the capability value, or a null pointer if the - capability is not present in the terminal description. - - There are two ways `tgetstr' can find space to store the string - value: - - * You can ask `tgetstr' to allocate the space. Pass a null - pointer for the argument AREA, and `tgetstr' will use - `malloc' to allocate storage big enough for the value. - Termcap will never free this storage or refer to it again; you - should free it when you are finished with it. - - This method is more robust, since there is no need to guess - how much space is needed. But it is supported only by the GNU - termcap library. - - * You can provide the space. Provide for the argument AREA the - address of a pointer variable of type `char *'. Before - calling `tgetstr', initialize the variable to point at - available space. Then `tgetstr' will store the string value - in that space and will increment the pointer variable to - point after the space that has been used. You can use the - same pointer variable for many calls to `tgetstr'. - - There is no way to determine how much space is needed for a - single string, and no way for you to prevent or handle - overflow of the area you have provided. However, you can be - sure that the total size of all the string values you will - obtain from the terminal description is no greater than the - size of the description (unless you get the same capability - twice). You can determine that size with `strlen' on the - buffer you provided to `tgetent'. See below for an example. - - Providing the space yourself is the only method supported by - the Unix version of termcap. - - Note that you do not have to specify a terminal type or terminal -description for the interrogation functions. They automatically use the -description found by the most recent call to `tgetent'. - - Here is an example of interrogating a terminal description for -various capabilities, with conditionals to select between the Unix and -GNU methods of providing buffer space. - - char *tgetstr (); - - char *cl_string, *cm_string; - int height; - int width; - int auto_wrap; - - char PC; /* For tputs. */ - char *BC; /* For tgoto. */ - char *UP; - - interrogate_terminal () - { - #ifdef UNIX - /* Here we assume that an explicit term_buffer - was provided to tgetent. */ - char *buffer - = (char *) malloc (strlen (term_buffer)); - #define BUFFADDR &buffer - #else - #define BUFFADDR 0 - #endif - - char *temp; - - /* Extract information we will use. */ - cl_string = tgetstr ("cl", BUFFADDR); - cm_string = tgetstr ("cm", BUFFADDR); - auto_wrap = tgetflag ("am"); - height = tgetnum ("li"); - width = tgetnum ("co"); - - /* Extract information that termcap functions use. */ - temp = tgetstr ("pc", BUFFADDR); - PC = temp ? *temp : 0; - BC = tgetstr ("le", BUFFADDR); - UP = tgetstr ("up", BUFFADDR); - } - -*Note Padding::, for information on the variable `PC'. *Note Using -Parameters::, for information on `UP' and `BC'. - - -File: termcap.info, Node: Initialize, Next: Padding, Prev: Interrogate, Up: Library - -Initialization for Use of Termcap -================================= - - Before starting to output commands to a terminal using termcap, an -application program should do two things: - - * Initialize various global variables which termcap library output - functions refer to. These include `PC' and `ospeed' for padding - (*note Output Padding::.) and `UP' and `BC' for cursor motion - (*note tgoto::.). - - * Tell the kernel to turn off alteration and padding of - horizontal-tab characters sent to the terminal. - - To turn off output processing in Berkeley Unix you would use `ioctl' -with code `TIOCLSET' to set the bit named `LLITOUT', and clear the bits -`ANYDELAY' using `TIOCSETN'. In POSIX or System V, you must clear the -bit named `OPOST'. Refer to the system documentation for details. - - If you do not set the terminal flags properly, some older terminals -will not work. This is because their commands may contain the -characters that normally signify newline, carriage return and -horizontal tab--characters which the kernel thinks it ought to modify -before output. - - When you change the kernel's terminal flags, you must arrange to -restore them to their normal state when your program exits. This -implies that the program must catch fatal signals such as `SIGQUIT' and -`SIGINT' and restore the old terminal flags before actually terminating. - - Modern terminals' commands do not use these special characters, so -if you do not care about problems with old terminals, you can leave the -kernel's terminal flags unaltered. - - -File: termcap.info, Node: Padding, Next: Parameters, Prev: Initialize, Up: Library - -Padding -======= - - "Padding" means outputting null characters following a terminal -display command that takes a long time to execute. The terminal -description says which commands require padding and how much; the -function `tputs', described below, outputs a terminal command while -extracting from it the padding information, and then outputs the -padding that is necessary. - -* Menu: - -* Why Pad:: Explanation of padding. -* Not Enough:: When there is not enough padding. -* Describe Padding:: The data base says how much padding a terminal needs. -* Output Padding:: Using `tputs' to output the needed padding. - - -File: termcap.info, Node: Why Pad, Next: Not Enough, Up: Padding - -Why Pad, and How ----------------- - - Most types of terminal have commands that take longer to execute -than they do to send over a high-speed line. For example, clearing the -screen may take 20msec once the entire command is received. During -that time, on a 9600 bps line, the terminal could receive about 20 -additional output characters while still busy clearing the screen. -Every terminal has a certain amount of buffering capacity to remember -output characters that cannot be processed yet, but too many slow -commands in a row can cause the buffer to fill up. Then any additional -output that cannot be processed immediately will be lost. - - To avoid this problem, we normally follow each display command with -enough useless charaters (usually null characters) to fill up the time -that the display command needs to execute. This does the job if the -terminal throws away null characters without using up space in the -buffer (which most terminals do). If enough padding is used, no output -can ever be lost. The right amount of padding avoids loss of output -without slowing down operation, since the time used to transmit padding -is time that nothing else could be done. - - The number of padding characters needed for an operation depends on -the line speed. In fact, it is proportional to the line speed. A 9600 -baud line transmits about one character per msec, so the clear screen -command in the example above would need about 20 characters of padding. -At 1200 baud, however, only about 3 characters of padding are needed -to fill up 20msec. - - -File: termcap.info, Node: Not Enough, Next: Describe Padding, Prev: Why Pad, Up: Padding - -When There Is Not Enough Padding --------------------------------- - - There are several common manifestations of insufficient padding. - - * Emacs displays `I-search: ^Q-' at the bottom of the screen. - - This means that the terminal thought its buffer was getting full of - display commands, so it tried to tell the computer to stop sending - any. - - * The screen is garbled intermittently, or the details of garbling - vary when you repeat the action. (A garbled screen could be due - to a command which is simply incorrect, or to user option in the - terminal which doesn't match the assumptions of the terminal - description, but this usually leads to reproducible failure.) - - This means that the buffer did get full, and some commands were - lost. Many changeable factors can change which ones are lost. - - * Screen is garbled at high output speeds but not at low speeds. - Padding problems nearly always go away at low speeds, usually even - at 1200 baud. - - This means that a high enough speed permits commands to arrive - faster than they can be executed. - - Although any obscure command on an obscure terminal might lack -padding, in practice problems arise most often from the clearing -commands `cl' and `cd' (*note Clearing::.), the scrolling commands `sf' -and `sr' (*note Scrolling::.), and the line insert/delete commands `al' -and `dl' (*note Insdel Line::.). - - Occasionally the terminal description fails to define `sf' and some -programs will use `do' instead, so you may get a problem with `do'. If -so, first define `sf' just like `do', then add some padding to `sf'. - - The best strategy is to add a lot of padding at first, perhaps 200 -msec. This is much more than enough; in fact, it should cause a -visible slowdown. (If you don't see a slowdown, the change has not -taken effect; *note Changing::..) If this makes the problem go away, -you have found the right place to add padding; now reduce the amount -until the problem comes back, then increase it again. If the problem -remains, either it is in some other capability or it is not a matter of -padding at all. - - Keep in mind that on many terminals the correct padding for -insert/delete line or for scrolling is cursor-position dependent. If -you get problems from scrolling a large region of the screen but not -from scrolling a small part (just a few lines moving), it may mean that -fixed padding should be replaced with position-dependent padding. - - -File: termcap.info, Node: Describe Padding, Next: Output Padding, Prev: Not Enough, Up: Padding - -Specifying Padding in a Terminal Description --------------------------------------------- - - In the terminal description, the amount of padding required by each -display command is recorded as a sequence of digits at the front of the -command. These digits specify the padding time in milliseconds (msec). -They can be followed optionally by a decimal point and one more digit, -which is a number of tenths of msec. - - Sometimes the padding needed by a command depends on the cursor -position. For example, the time taken by an "insert line" command is -usually proportional to the number of lines that need to be moved down -or cleared. An asterisk (`*') following the padding time says that the -time should be multiplied by the number of screen lines affected by the -command. - - :al=1.3*\E[L: - -is used to describe the "insert line" command for a certain terminal. -The padding required is 1.3 msec per line affected. The command itself -is `ESC [ L'. - - The padding time specified in this way tells `tputs' how many pad -characters to output. *Note Output Padding::. - - Two special capability values affect padding for all commands. -These are the `pc' and `pb'. The variable `pc' specifies the character -to pad with, and `pb' the speed below which no padding is needed. The -defaults for these variables, a null character and 0, are correct for -most terminals. *Note Pad Specs::. - - -File: termcap.info, Node: Output Padding, Prev: Describe Padding, Up: Padding - -Performing Padding with `tputs' -------------------------------- - - Use the termcap function `tputs' to output a string containing an -optional padding spec of the form described above (*note Describe -Padding::.). The function `tputs' strips off and decodes the padding -spec, outputs the rest of the string, and then outputs the appropriate -padding. Here is its declaration in ANSI C: - - char PC; - short ospeed; - - int tputs (char *STRING, int NLINES, int (*OUTFUN) ()); - - Here STRING is the string (including padding spec) to be output; -NLINES is the number of lines affected by the operation, which is used -to multiply the amount of padding if the padding spec ends with a `*'. -Finally, OUTFUN is a function (such as `fputchar') that is called to -output each character. When actually called, OUTFUN should expect one -argument, a character. - - The operation of `tputs' is controlled by two global variables, -`ospeed' and `PC'. The value of `ospeed' is supposed to be the -terminal output speed, encoded as in the `ioctl' system call which gets -the speed information. This is needed to compute the number of padding -characters. The value of `PC' is the character used for padding. - - You are responsible for storing suitable values into these variables -before using `tputs'. The value stored into the `PC' variable should be -taken from the `pc' capability in the terminal description (*note Pad -Specs::.). Store zero in `PC' if there is no `pc' capability. - - The argument NLINES requires some thought. Normally, it should be -the number of lines whose contents will be cleared or moved by the -command. For cursor motion commands, or commands that do editing -within one line, use the value 1. For most commands that affect -multiple lines, such as `al' (insert a line) and `cd' (clear from the -cursor to the end of the screen), NLINES should be the screen height -minus the current vertical position (origin 0). For multiple insert -and scroll commands such as `AL' (insert multiple lines), that same -value for NLINES is correct; the number of lines being inserted is not -correct. - - If a "scroll window" feature is used to reduce the number of lines -affected by a command, the value of NLINES should take this into -account. This is because the delay time required depends on how much -work the terminal has to do, and the scroll window feature reduces the -work. *Note Scrolling::. - - Commands such as `ic' and `dc' (insert or delete characters) are -problematical because the padding needed by these commands is -proportional to the number of characters affected, which is the number -of columns from the cursor to the end of the line. It would be nice to -have a way to specify such a dependence, and there is no need for -dependence on vertical position in these commands, so it is an obvious -idea to say that for these commands NLINES should really be the number -of columns affected. However, the definition of termcap clearly says -that NLINES is always the number of lines affected, even in this case, -where it is always 1. It is not easy to change this rule now, because -too many programs and terminal descriptions have been written to follow -it. - - Because NLINES is always 1 for the `ic' and `dc' strings, there is -no reason for them to use `*', but some of them do. These should be -corrected by deleting the `*'. If, some day, such entries have -disappeared, it may be possible to change to a more useful convention -for the NLINES argument for these operations without breaking any -programs. - - -File: termcap.info, Node: Parameters, Prev: Padding, Up: Library - -Filling In Parameters -===================== - - Some terminal control strings require numeric "parameters". For -example, when you move the cursor, you need to say what horizontal and -vertical positions to move it to. The value of the terminal's `cm' -capability, which says how to move the cursor, cannot simply be a -string of characters; it must say how to express the cursor position -numbers and where to put them within the command. - - The specifications of termcap include conventions as to which -string-valued capabilities require parameters, how many parameters, and -what the parameters mean; for example, it defines the `cm' string to -take two parameters, the vertical and horizontal positions, with 0,0 -being the upper left corner. These conventions are described where the -individual commands are documented. - - Termcap also defines a language used within the capability -definition for specifying how and where to encode the parameters for -output. This language uses character sequences starting with `%'. -(This is the same idea as `printf', but the details are different.) -The language for parameter encoding is described in this section. - - A program that is doing display output calls the functions `tparam' -or `tgoto' to encode parameters according to the specifications. These -functions produce a string containing the actual commands to be output -(as well a padding spec which must be processed with `tputs'; *note -Padding::.). - -* Menu: - -* Encode Parameters:: The language for encoding parameters. -* Using Parameters:: Outputting a string command with parameters. - - -File: termcap.info, Node: Encode Parameters, Next: Using Parameters, Up: Parameters - -Describing the Encoding ------------------------ - - A terminal command string that requires parameters contains special -character sequences starting with `%' to say how to encode the -parameters. These sequences control the actions of `tparam' and -`tgoto'. - - The parameters values passed to `tparam' or `tgoto' are considered -to form a vector. A pointer into this vector determines the next -parameter to be processed. Some of the `%'-sequences encode one -parameter and advance the pointer to the next parameter. Other -`%'-sequences alter the pointer or alter the parameter values without -generating output. - - For example, the `cm' string for a standard ANSI terminal is written -as `\E[%i%d;%dH'. (`\E' stands for ESC.) `cm' by convention always -requires two parameters, the vertical and horizontal goal positions, so -this string specifies the encoding of two parameters. Here `%i' -increments the two values supplied, and each `%d' encodes one of the -values in decimal. If the cursor position values 20,58 are encoded -with this string, the result is `\E[21;59H'. - - First, here are the `%'-sequences that generate output. Except for -`%%', each of them encodes one parameter and advances the pointer to -the following parameter. - -`%%' - Output a single `%'. This is the only way to represent a literal - `%' in a terminal command with parameters. `%%' does not use up a - parameter. - -`%d' - As in `printf', output the next parameter in decimal. - -`%2' - Like `%02d' in `printf': output the next parameter in decimal, and - always use at least two digits. - -`%3' - Like `%03d' in `printf': output the next parameter in decimal, and - always use at least three digits. Note that `%4' and so on are - *not* defined. - -`%.' - Output the next parameter as a single character whose ASCII code is - the parameter value. Like `%c' in `printf'. - -`%+CHAR' - Add the next parameter to the character CHAR, and output the - resulting character. For example, `%+ ' represents 0 as a space, - 1 as `!', etc. - - The following `%'-sequences specify alteration of the parameters -(their values, or their order) rather than encoding a parameter for -output. They generate no output; they are used only for their side -effects on the parameters. Also, they do not advance the "next -parameter" pointer except as explicitly stated. Only `%i', `%r' and -`%>' are defined in standard Unix termcap. The others are GNU -extensions. - -`%i' - Increment the next two parameters. This is used for terminals that - expect cursor positions in origin 1. For example, `%i%d,%d' would - output two parameters with `1' for 0, `2' for 1, etc. - -`%r' - Interchange the next two parameters. This is used for terminals - whose cursor positioning command expects the horizontal position - first. - -`%s' - Skip the next parameter. Do not output anything. - -`%b' - Back up one parameter. The last parameter used will become once - again the next parameter to be output, and the next output command - will use it. Using `%b' more than once, you can back up any - number of parameters, and you can refer to each parameter any - number of times. - -`%>C1C2' - Conditionally increment the next parameter. Here C1 and C2 are - characters which stand for their ASCII codes as numbers. If the - next parameter is greater than the ASCII code of C1, the ASCII - code of C2 is added to it. - -`%a OP TYPE POS' - Perform arithmetic on the next parameter, do not use it up, and do - not output anything. Here OP specifies the arithmetic operation, - while TYPE and POS together specify the other operand. - - Spaces are used above to separate the operands for clarity; the - spaces don't appear in the data base, where this sequence is - exactly five characters long. - - The character OP says what kind of arithmetic operation to - perform. It can be any of these characters: - - `=' - assign a value to the next parameter, ignoring its old value. - The new value comes from the other operand. - - `+' - add the other operand to the next parameter. - - `-' - subtract the other operand from the next parameter. - - `*' - multiply the next parameter by the other operand. - - `/' - divide the next parameter by the other operand. - - The "other operand" may be another parameter's value or a constant; - the character TYPE says which. It can be: - - `p' - Use another parameter. The character POS says which - parameter to use. Subtract 64 from its ASCII code to get the - position of the desired parameter relative to this one. Thus, - the character `A' as POS means the parameter after the next - one; the character `?' means the parameter before the next - one. - - `c' - Use a constant value. The character POS specifies the value - of the constant. The 0200 bit is cleared out, so that 0200 - can be used to represent zero. - - The following `%'-sequences are special purpose hacks to compensate -for the weird designs of obscure terminals. They modify the next -parameter or the next two parameters but do not generate output and do -not use up any parameters. `%m' is a GNU extension; the others are -defined in standard Unix termcap. - -`%n' - Exclusive-or the next parameter with 0140, and likewise the - parameter after next. - -`%m' - Complement all the bits of the next parameter and the parameter - after next. - -`%B' - Encode the next parameter in BCD. It alters the value of the - parameter by adding six times the quotient of the parameter by ten. - Here is a C statement that shows how the new value is computed: - - PARM = (PARM / 10) * 16 + PARM % 10; - -`%D' - Transform the next parameter as needed by Delta Data terminals. - This involves subtracting twice the remainder of the parameter by - 16. - - PARM -= 2 * (PARM % 16); - - -File: termcap.info, Node: Using Parameters, Prev: Encode Parameters, Up: Parameters - -Sending Display Commands with Parameters ----------------------------------------- - - The termcap library functions `tparam' and `tgoto' serve as the -analog of `printf' for terminal string parameters. The newer function -`tparam' is a GNU extension, more general but missing from Unix -termcap. The original parameter-encoding function is `tgoto', which is -preferable for cursor motion. - -* Menu: - -* tparam:: The general case, for GNU termcap only. -* tgoto:: The special case of cursor motion. - - -File: termcap.info, Node: tparam, Next: tgoto, Up: Using Parameters - -`tparam' -........ - - The function `tparam' can encode display commands with any number of -parameters and allows you to specify the buffer space. It is the -preferred function for encoding parameters for all but the `cm' -capability. Its ANSI C declaration is as follows: - - char *tparam (char *CTLSTRING, char *BUFFER, int SIZE, int PARM1,...) - - The arguments are a control string CTLSTRING (the value of a terminal -capability, presumably), an output buffer BUFFER and SIZE, and any -number of integer parameters to be encoded. The effect of `tparam' is -to copy the control string into the buffer, encoding parameters -according to the `%' sequences in the control string. - - You describe the output buffer by its address, BUFFER, and its size -in bytes, SIZE. If the buffer is not big enough for the data to be -stored in it, `tparam' calls `malloc' to get a larger buffer. In -either case, `tparam' returns the address of the buffer it ultimately -uses. If the value equals BUFFER, your original buffer was used. -Otherwise, a new buffer was allocated, and you must free it after you -are done with printing the results. If you pass zero for SIZE and -BUFFER, `tparam' always allocates the space with `malloc'. - - All capabilities that require parameters also have the ability to -specify padding, so you should use `tputs' to output the string -produced by `tparam'. *Note Padding::. Here is an example. - - { - char *buf; - char buffer[40]; - - buf = tparam (command, buffer, 40, parm); - tputs (buf, 1, fputchar); - if (buf != buffer) - free (buf); - } - - If a parameter whose value is zero is encoded with `%.'-style -encoding, the result is a null character, which will confuse `tputs'. -This would be a serious problem, but luckily `%.' encoding is used only -by a few old models of terminal, and only for the `cm' capability. To -solve the problem, use `tgoto' rather than `tparam' to encode the `cm' -capability. - - -File: termcap.info, Node: tgoto, Prev: tparam, Up: Using Parameters - -`tgoto' -....... - - The special case of cursor motion is handled by `tgoto'. There are -two reasons why you might choose to use `tgoto': - - * For Unix compatibility, because Unix termcap does not have - `tparam'. - - * For the `cm' capability, since `tgoto' has a special feature to - avoid problems with null characters, tabs and newlines on certain - old terminal types that use `%.' encoding for that capability. - - Here is how `tgoto' might be declared in ANSI C: - - char *tgoto (char *CSTRING, int HPOS, int VPOS) - - There are three arguments, the terminal description's `cm' string and -the two cursor position numbers; `tgoto' computes the parametrized -string in an internal static buffer and returns the address of that -buffer. The next time you use `tgoto' the same buffer will be reused. - - Parameters encoded with `%.' encoding can generate null characters, -tabs or newlines. These might cause trouble: the null character because -`tputs' would think that was the end of the string, the tab because the -kernel or other software might expand it into spaces, and the newline -becaue the kernel might add a carriage-return, or padding characters -normally used for a newline. To prevent such problems, `tgoto' is -careful to avoid these characters. Here is how this works: if the -target cursor position value is such as to cause a problem (that is to -say, zero, nine or ten), `tgoto' increments it by one, then compensates -by appending a string to move the cursor back or up one position. - - The compensation strings to use for moving back or up are found in -global variables named `BC' and `UP'. These are actual external C -variables with upper case names; they are declared `char *'. It is up -to you to store suitable values in them, normally obtained from the -`le' and `up' terminal capabilities in the terminal description with -`tgetstr'. Alternatively, if these two variables are both zero, the -feature of avoiding nulls, tabs and newlines is turned off. - - It is safe to use `tgoto' for commands other than `cm' only if you -have stored zero in `BC' and `UP'. - - Note that `tgoto' reverses the order of its operands: the horizontal -position comes before the vertical position in the arguments to -`tgoto', even though the vertical position comes before the horizontal -in the parameters of the `cm' string. If you use `tgoto' with a -command such as `AL' that takes one parameter, you must pass the -parameter to `tgoto' as the "vertical position". - - -File: termcap.info, Node: Data Base, Next: Capabilities, Prev: Library, Up: Top - -The Format of the Data Base -*************************** - - The termcap data base of terminal descriptions is stored in the file -`/etc/termcap'. It contains terminal descriptions, blank lines, and -comments. - - A terminal description starts with one or more names for the -terminal type. The information in the description is a series of -"capability names" and values. The capability names have standard -meanings (*note Capabilities::.) and their values describe the terminal. - -* Menu: - -* Format:: Overall format of a terminal description. -* Capability Format:: Format of capabilities within a description. -* Naming:: Naming conventions for terminal types. -* Inheriting:: Inheriting part of a description from -a related terminal type. -* Changing:: When changes in the data base take effect. - - -File: termcap.info, Node: Format, Next: Capability Format, Up: Data Base - -Terminal Description Format -=========================== - - Aside from comments (lines starting with `#', which are ignored), -each nonblank line in the termcap data base is a terminal description. -A terminal description is nominally a single line, but it can be split -into multiple lines by inserting the two characters `\ newline'. This -sequence is ignored wherever it appears in a description. - - The preferred way to split the description is between capabilities: -insert the four characters `: \ newline tab' immediately before any -colon. This allows each sub-line to start with some indentation. This -works because, after the `\ newline' are ignored, the result is `: tab -:'; the first colon ends the preceding capability and the second colon -starts the next capability. If you split with `\ newline' alone, you -may not add any indentation after them. - - Here is a real example of a terminal description: - - dw|vt52|DEC vt52:\ - :cr=^M:do=^J:nl=^J:bl=^G:\ - :le=^H:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:\ - :cm=\EY%+ %+ :co#80:li#24:\ - :nd=\EC:ta=^I:pt:sr=\EI:up=\EA:\ - :ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=^H: - - Each terminal description begins with several names for the terminal -type. The names are separated by `|' characters, and a colon ends the -last name. The first name should be two characters long; it exists -only for the sake of very old Unix systems and is never used in modern -systems. The last name should be a fully verbose name such as "DEC -vt52" or "Ann Arbor Ambassador with 48 lines". The other names should -include whatever the user ought to be able to specify to get this -terminal type, such as `vt52' or `aaa-48'. *Note Naming::, for -information on how to choose terminal type names. - - After the terminal type names come the terminal capabilities, -separated by colons and with a colon after the last one. Each -capability has a two-letter name, such as `cm' for "cursor motion -string" or `li' for "number of display lines". - - -File: termcap.info, Node: Capability Format, Next: Naming, Prev: Format, Up: Data Base - -Writing the Capabilities -======================== - - There are three kinds of capabilities: flags, numbers, and strings. -Each kind has its own way of being written in the description. Each -defined capability has by convention a particular kind of value; for -example, `li' always has a numeric value and `cm' always a string value. - - A flag capability is thought of as having a boolean value: the value -is true if the capability is present, false if not. When the -capability is present, just write its name between two colons. - - A numeric capability has a value which is a nonnegative number. -Write the capability name, a `#', and the number, between two colons. -For example, `...:li#48:...' is how you specify the `li' capability for -48 lines. - - A string-valued capability has a value which is a sequence of -characters. Usually these are the characters used to perform some -display operation. Write the capability name, a `=', and the -characters of the value, between two colons. For example, -`...:cm=\E[%i%d;%dH:...' is how the cursor motion command for a -standard ANSI terminal would be specified. - - Special characters in the string value can be expressed using -`\'-escape sequences as in C; in addition, `\E' stands for ESC. `^' is -also a kind of escape character; `^' followed by CHAR stands for the -control-equivalent of CHAR. Thus, `^a' stands for the character -control-a, just like `\001'. `\' and `^' themselves can be represented -as `\\' and `\^'. - - To include a colon in the string, you must write `\072'. You might -ask, "Why can't `\:' be used to represent a colon?" The reason is that -the interrogation functions do not count slashes while looking for a -capability. Even if `:ce=ab\:cd:' were interpreted as giving the `ce' -capability the value `ab:cd', it would also appear to define `cd' as a -flag. - - The string value will often contain digits at the front to specify -padding (*note Padding::.) and/or `%'-sequences within to specify how -to encode parameters (*note Parameters::.). Although these things are -not to be output literally to the terminal, they are considered part of -the value of the capability. They are special only when the string -value is processed by `tputs', `tparam' or `tgoto'. By contrast, `\' -and `^' are considered part of the syntax for specifying the characters -in the string. - - Let's look at the VT52 example again: - - dw|vt52|DEC vt52:\ - :cr=^M:do=^J:nl=^J:bl=^G:\ - :le=^H:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:\ - :cm=\EY%+ %+ :co#80:li#24:\ - :nd=\EC:ta=^I:pt:sr=\EI:up=\EA:\ - :ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=^H: - - Here we see the numeric-valued capabilities `co' and `li', the flags -`bs' and `pt', and many string-valued capabilities. Most of the -strings start with ESC represented as `\E'. The rest contain control -characters represented using `^'. The meanings of the individual -capabilities are defined elsewhere (*note Capabilities::.). - diff --git a/lib/termcap/grot/termcap.info-2 b/lib/termcap/grot/termcap.info-2 deleted file mode 100644 index 6098d62df..000000000 --- a/lib/termcap/grot/termcap.info-2 +++ /dev/null @@ -1,974 +0,0 @@ -This is Info file ./termcap.info, produced by Makeinfo-1.55 from the -input file ./termcap.texi. - - This file documents the termcap library of the GNU system. - - Copyright (C) 1988 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: termcap.info, Node: Naming, Next: Inheriting, Prev: Capability Format, Up: Data Base - -Terminal Type Name Conventions -============================== - - There are conventions for choosing names of terminal types. For one -thing, all letters should be in lower case. The terminal type for a -terminal in its most usual or most fundamental mode of operation should -not have a hyphen in it. - - If the same terminal has other modes of operation which require -different terminal descriptions, these variant descriptions are given -names made by adding suffixes with hyphens. Such alternate descriptions -are used for two reasons: - - * When the terminal has a switch that changes its behavior. Since - the computer cannot tell how the switch is set, the user must tell - the computer by choosing the appropriate terminal type name. - - For example, the VT-100 has a setup flag that controls whether the - cursor wraps at the right margin. If this flag is set to "wrap", - you must use the terminal type `vt100-am'. Otherwise you must use - `vt100-nam'. Plain `vt100' is defined as a synonym for either - `vt100-am' or `vt100-nam' depending on the preferences of the - local site. - - The standard suffix `-am' stands for "automatic margins". - - * To give the user a choice in how to use the terminal. This is done - when the terminal has a switch that the computer normally controls. - - For example, the Ann Arbor Ambassador can be configured with many - screen sizes ranging from 20 to 60 lines. Fewer lines make bigger - characters but more lines let you see more of what you are editing. - As a result, users have different preferences. Therefore, termcap - provides terminal types for many screen sizes. If you choose type - `aaa-30', the terminal will be configured to use 30 lines; if you - choose `aaa-48', 48 lines will be used, and so on. - - Here is a list of standard suffixes and their conventional meanings: - -`-w' - Short for "wide". This is a mode that gives the terminal more - columns than usual. This is normally a user option. - -`-am' - "Automatic margins". This is an alternate description for use when - the terminal's margin-wrap switch is on; it contains the `am' - flag. The implication is that normally the switch is off and the - usual description for the terminal says that the switch is off. - -`-nam' - "No automatic margins". The opposite of `-am', this names an - alternative description which lacks the `am' flag. This implies - that the terminal is normally operated with the margin-wrap switch - turned on, and the normal description of the terminal says so. - -`-na' - "No arrows". This terminal description initializes the terminal to - keep its arrow keys in local mode. This is a user option. - -`-rv' - "Reverse video". This terminal description causes text output for - normal video to appear as reverse, and text output for reverse - video to come out as normal. Often this description differs from - the usual one by interchanging the two strings which turn reverse - video on and off. - - This is a user option; you can choose either the "reverse video" - variant terminal type or the normal terminal type, and termcap will - obey. - -`-s' - "Status". Says to enable use of a status line which ordinary - output does not touch (*note Status Line::.). - - Some terminals have a special line that is used only as a status - line. For these terminals, there is no need for an `-s' variant; - the status line commands should be defined by default. On other - terminals, enabling a status line means removing one screen line - from ordinary use and reducing the effective screen height. For - these terminals, the user can choose the `-s' variant type to - request use of a status line. - -`-NLINES' - Says to operate with NLINES lines on the screen, for terminals - such as the Ambassador which provide this as an option. Normally - this is a user option; by choosing the terminal type, you control - how many lines termcap will use. - -`-NPAGESp' - Says that the terminal has NPAGES pages worth of screen memory, - for terminals where this is a hardware option. - -`-unk' - Says that description is not for direct use, but only for - reference in `tc' capabilities. Such a description is a kind of - subroutine, because it describes the common characteristics of - several variant descriptions that would use other suffixes in - place of `-unk'. - - -File: termcap.info, Node: Inheriting, Next: Changing, Prev: Naming, Up: Data Base - -Inheriting from Related Descriptions -==================================== - - When two terminal descriptions are similar, their identical parts do -not need to be given twice. Instead, one of the two can be defined in -terms of the other, using the `tc' capability. We say that one -description "refers to" the other, or "inherits from" the other. - - The `tc' capability must be the last one in the terminal description, -and its value is a string which is the name of another terminal type -which is referred to. For example, - - N9|aaa|ambassador|aaa-30|ann arbor ambassador/30 lines:\ - :ti=\E[2J\E[30;0;0;30p:\ - :te=\E[60;0;0;30p\E[30;1H\E[J:\ - :li#30:tc=aaa-unk: - -defines the terminal type `aaa-30' (also known as plain `aaa') in terms -of `aaa-unk', which defines everything about the Ambassador that is -independent of screen height. The types `aaa-36', `aaa-48' and so on -for other screen heights are likewise defined to inherit from `aaa-unk'. - - The capabilities overridden by `aaa-30' include `li', which says how -many lines there are, and `ti' and `te', which configure the terminal -to use that many lines. - - The effective terminal description for type `aaa' consists of the -text shown above followed by the text of the description of `aaa-unk'. -The `tc' capability is handled automatically by `tgetent', which finds -the description thus referenced and combines the two descriptions -(*note Find::.). Therefore, only the implementor of the terminal -descriptions needs to think about using `tc'. Users and application -programmers do not need to be concerned with it. - - Since the reference terminal description is used last, capabilities -specified in the referring description override any specifications of -the same capabilities in the reference description. - - The referring description can cancel out a capability without -specifying any new value for it by means of a special trick. Write the -capability in the referring description, with the character `@' after -the capability name, as follows: - - NZ|aaa-30-nam|ann arbor ambassador/30 lines/no automatic-margins:\ - :am@:tc=aaa-30: - - -File: termcap.info, Node: Changing, Prev: Inheriting, Up: Data Base - -When Changes in the Data Base Take Effect -========================================= - - Each application program must read the terminal description from the -data base, so a change in the data base is effective for all jobs -started after the change is made. - - The change will usually have no effect on a job that have been in -existence since before the change. The program probably read the -terminal description once, when it was started, and is continuing to -use what it read then. If the program does not have a feature for -reexamining the data base, then you will need to run it again (probably -killing the old job). - - If the description in use is coming from the `TERMCAP' environment -variable, then the data base file is effectively overridden, and -changes in it will have no effect until you change the `TERMCAP' -variable as well. For example, some users' `.login' files -automatically copy the terminal description into `TERMCAP' to speed -startup of applications. If you have done this, you will need to -change the `TERMCAP' variable to make the changed data base take effect. - - -File: termcap.info, Node: Capabilities, Next: Summary, Prev: Data Base, Up: Top - -Definitions of the Terminal Capabilities -**************************************** - - This section is divided into many subsections, each for one aspect of -use of display terminals. For writing a display program, you usually -need only check the subsections for the operations you want to use. -For writing a terminal description, you must read each subsection and -fill in the capabilities described there. - - String capabilities that are display commands may require numeric -parameters (*note Parameters::.). Most such capabilities do not use -parameters. When a capability requires parameters, this is explicitly -stated at the beginning of its definition. In simple cases, the first -or second sentence of the definition mentions all the parameters, in -the order they should be given, using a name in upper case for each -one. For example, the `rp' capability is a command that requires two -parameters; its definition begins as follows: - - String of commands to output a graphic character C, repeated N - times. - - In complex cases or when there are many parameters, they are -described explicitly. - - When a capability is described as obsolete, this means that programs -should not be written to look for it, but terminal descriptions should -still be written to provide it. - - When a capability is described as very obsolete, this means that it -should be omitted from terminal descriptions as well. - -* Menu: - -* Basic:: Basic characteristics. -* Screen Size:: Screen size, and what happens when it changes. -* Cursor Motion:: Various ways to move the cursor. -* Wrapping:: What happens if you write a character in the last column. -* Scrolling:: Pushing text up and down on the screen. -* Windows:: Limiting the part of the window that output affects. -* Clearing:: Erasing one or many lines. -* Insdel Line:: Making new blank lines in mid-screen; deleting lines. -* Insdel Char:: Inserting and deleting characters within a line. -* Standout:: Highlighting some of the text. -* Underlining:: Underlining some of the text. -* Cursor Visibility:: Making the cursor more or less easy to spot. -* Bell:: Attracts user's attention; not localized on the screen. -* Keypad:: Recognizing when function keys or arrows are typed. -* Meta Key:: META acts like an extra shift key. -* Initialization:: Commands used to initialize or reset the terminal. -* Pad Specs:: Info for the kernel on how much padding is needed. -* Status Line:: A status line displays "background" information. -* Half-Line:: Moving by half-lines, for superscripts and subscripts. -* Printer:: Controlling auxiliary printers of display terminals. - - -File: termcap.info, Node: Basic, Next: Screen Size, Up: Capabilities - -Basic Characteristics -===================== - - This section documents the capabilities that describe the basic and -nature of the terminal, and also those that are relevant to the output -of graphic characters. - -`os' - Flag whose presence means that the terminal can overstrike. This - means that outputting a graphic character does not erase whatever - was present in the same character position before. The terminals - that can overstrike include printing terminals, storage tubes (all - obsolete nowadays), and many bit-map displays. - -`eo' - Flag whose presence means that outputting a space erases a - character position even if the terminal supports overstriking. If - this flag is not present and overstriking is supported, output of - a space has no effect except to move the cursor. - - (On terminals that do not support overstriking, you can always - assume that outputting a space at a position erases whatever - character was previously displayed there.) - -`gn' - Flag whose presence means that this terminal type is a generic type - which does not really describe any particular terminal. Generic - types are intended for use as the default type assigned when the - user connects to the system, with the intention that the user - should specify what type he really has. One example of a generic - type is the type `network'. - - Since the generic type cannot say how to do anything interesting - with the terminal, termcap-using programs will always find that the - terminal is too weak to be supported if the user has failed to - specify a real terminal type in place of the generic one. The - `gn' flag directs these programs to use a different error message: - "You have not specified your real terminal type", rather than - "Your terminal is not powerful enough to be used". - -`hc' - Flag whose presence means this is a hardcopy terminal. - -`rp' - String of commands to output a graphic character C, repeated N - times. The first parameter value is the ASCII code for the desired - character, and the second parameter is the number of times to - repeat the character. Often this command requires padding - proportional to the number of times the character is repeated. - This effect can be had by using parameter arithmetic with - `%'-sequences to compute the amount of padding, then generating - the result as a number at the front of the string so that `tputs' - will treat it as padding. - -`hz' - Flag whose presence means that the ASCII character `~' cannot be - output on this terminal because it is used for display commands. - - Programs handle this flag by checking all text to be output and - replacing each `~' with some other character(s). If this is not - done, the screen will be thoroughly garbled. - - The old Hazeltine terminals that required such treatment are - probably very rare today, so you might as well not bother to - support this flag. - -`CC' - String whose presence means the terminal has a settable command - character. The value of the string is the default command - character (which is usually ESC). - - All the strings of commands in the terminal description should be - written to use the default command character. If you are writing - an application program that changes the command character, use the - `CC' capability to figure out how to translate all the display - commands to work with the new command character. - - Most programs have no reason to look at the `CC' capability. - -`xb' - Flag whose presence identifies Superbee terminals which are unable - to transmit the characters ESC and `Control-C'. Programs which - support this flag are supposed to check the input for the code - sequences sent by the F1 and F2 keys, and pretend that ESC or - `Control-C' (respectively) had been read. But this flag is - obsolete, and not worth supporting. - - -File: termcap.info, Node: Screen Size, Next: Cursor Motion, Prev: Basic, Up: Capabilities - -Screen Size -=========== - - A terminal description has two capabilities, `co' and `li', that -describe the screen size in columns and lines. But there is more to -the question of screen size than this. - - On some operating systems the "screen" is really a window and the -effective width can vary. On some of these systems, `tgetnum' uses the -actual width of the window to decide what value to return for the `co' -capability, overriding what is actually written in the terminal -description. On other systems, it is up to the application program to -check the actual window width using a system call. For example, on BSD -4.3 systems, the system call `ioctl' with code `TIOCGWINSZ' will tell -you the current screen size. - - On all window systems, termcap is powerless to advise the application -program if the user resizes the window. Application programs must deal -with this possibility in a system-dependent fashion. On some systems -the C shell handles part of the problem by detecting changes in window -size and setting the `TERMCAP' environment variable appropriately. -This takes care of application programs that are started subsequently. -It does not help application programs already running. - - On some systems, including BSD 4.3, all programs using a terminal get -a signal named `SIGWINCH' whenever the screen size changes. Programs -that use termcap should handle this signal by using `ioctl TIOCGWINSZ' -to learn the new screen size. - -`co' - Numeric value, the width of the screen in character positions. - Even hardcopy terminals normally have a `co' capability. - -`li' - Numeric value, the height of the screen in lines. - - -File: termcap.info, Node: Cursor Motion, Next: Wrapping, Prev: Screen Size, Up: Capabilities - -Cursor Motion -============= - - Termcap assumes that the terminal has a "cursor", a spot on the -screen where a visible mark is displayed, and that most display -commands take effect at the position of the cursor. It follows that -moving the cursor to a specified location is very important. - - There are many terminal capabilities for different cursor motion -operations. A terminal description should define as many as possible, -but most programs do not need to use most of them. One capability, -`cm', moves the cursor to an arbitrary place on the screen; this by -itself is sufficient for any application as long as there is no need to -support hardcopy terminals or certain old, weak displays that have only -relative motion commands. Use of other cursor motion capabilities is an -optimization, enabling the program to output fewer characters in some -common cases. - - If you plan to use the relative cursor motion commands in an -application program, you must know what the starting cursor position -is. To do this, you must keep track of the cursor position and update -the records each time anything is output to the terminal, including -graphic characters. In addition, it is necessary to know whether the -terminal wraps after writing in the rightmost column. *Note Wrapping::. - - One other motion capability needs special mention: `nw' moves the -cursor to the beginning of the following line, perhaps clearing all the -starting line after the cursor, or perhaps not clearing at all. This -capability is a least common denominator that is probably supported -even by terminals that cannot do most other things such as `cm' or `do'. -Even hardcopy terminals can support `nw'. - -`cm' - String of commands to position the cursor at line L, column C. - Both parameters are origin-zero, and are defined relative to the - screen, not relative to display memory. - - All display terminals except a few very obsolete ones support `cm', - so it is acceptable for an application program to refuse to - operate on terminals lacking `cm'. - -`ho' - String of commands to move the cursor to the upper left corner of - the screen (this position is called the "home position"). In - terminals where the upper left corner of the screen is not the - same as the beginning of display memory, this command must go to - the upper left corner of the screen, not the beginning of display - memory. - - Every display terminal supports this capability, and many - application programs refuse to operate if the `ho' capability is - missing. - -`ll' - String of commands to move the cursor to the lower left corner of - the screen. On some terminals, moving up from home position does - this, but programs should never assume that will work. Just - output the `ll' string (if it is provided); if moving to home - position and then moving up is the best way to get there, the `ll' - command will do that. - -`cr' - String of commands to move the cursor to the beginning of the line - it is on. If this capability is not specified, many programs - assume they can use the ASCII carriage return character for this. - -`le' - String of commands to move the cursor left one column. Unless the - `bw' flag capability is specified, the effect is undefined if the - cursor is at the left margin; do not use this command there. If - `bw' is present, this command may be used at the left margin, and - it wraps the cursor to the last column of the preceding line. - -`nd' - String of commands to move the cursor right one column. The - effect is undefined if the cursor is at the right margin; do not - use this command there, not even if `am' is present. - -`up' - String of commands to move the cursor vertically up one line. The - effect of sending this string when on the top line is undefined; - programs should never use it that way. - -`do' - String of commands to move the cursor vertically down one line. - The effect of sending this string when on the bottom line is - undefined; programs should never use it that way. - - Some programs do use `do' to scroll up one line if used at the - bottom line, if `sf' is not defined but `sr' is. This is only to - compensate for certain old, incorrect terminal descriptions. (In - principle this might actually lead to incorrect behavior on other - terminals, but that seems to happen rarely if ever.) But the - proper solution is that the terminal description should define - `sf' as well as `do' if the command is suitable for scrolling. - - The original idea was that this string would not contain a newline - character and therefore could be used without disabling the - kernel's usual habit of converting of newline into a - carriage-return newline sequence. But many terminal descriptions - do use newline in the `do' string, so this is not possible; a - program which sends the `do' string must disable output conversion - in the kernel (*note Initialize::.). - -`bw' - Flag whose presence says that `le' may be used in column zero to - move to the last column of the preceding line. If this flag is - not present, `le' should not be used in column zero. - -`nw' - String of commands to move the cursor to start of next line, - possibly clearing rest of line (following the cursor) before - moving. - -`DO', `UP', `LE', `RI' - Strings of commands to move the cursor N lines down vertically, up - vertically, or N columns left or right. Do not attempt to move - past any edge of the screen with these commands; the effect of - trying that is undefined. Only a few terminal descriptions provide - these commands, and most programs do not use them. - -`CM' - String of commands to position the cursor at line L, column C, - relative to display memory. Both parameters are origin-zero. - This capability is present only in terminals where there is a - difference between screen-relative and memory-relative addressing, - and not even in all such terminals. - -`ch' - String of commands to position the cursor at column C in the same - line it is on. This is a special case of `cm' in which the - vertical position is not changed. The `ch' capability is provided - only when it is faster to output than `cm' would be in this - special case. Programs should not assume most display terminals - have `ch'. - -`cv' - String of commands to position the cursor at line L in the same - column. This is a special case of `cm' in which the horizontal - position is not changed. The `cv' capability is provided only - when it is faster to output than `cm' would be in this special - case. Programs should not assume most display terminals have `cv'. - -`sc' - String of commands to make the terminal save the current cursor - position. Only the last saved position can be used. If this - capability is present, `rc' should be provided also. Most - terminals have neither. - -`rc' - String of commands to make the terminal restore the last saved - cursor position. If this capability is present, `sc' should be - provided also. Most terminals have neither. - -`ff' - String of commands to advance to the next page, for a hardcopy - terminal. - -`ta' - String of commands to move the cursor right to the next hardware - tab stop column. Missing if the terminal does not have any kind of - hardware tabs. Do not send this command if the kernel's terminal - modes say that the kernel is expanding tabs into spaces. - -`bt' - String of commands to move the cursor left to the previous hardware - tab stop column. Missing if the terminal has no such ability; many - terminals do not. Do not send this command if the kernel's - terminal modes say that the kernel is expanding tabs into spaces. - - The following obsolete capabilities should be included in terminal -descriptions when appropriate, but should not be looked at by new -programs. - -`nc' - Flag whose presence means the terminal does not support the ASCII - carriage return character as `cr'. This flag is needed because - old programs assume, when the `cr' capability is missing, that - ASCII carriage return can be used for the purpose. We use `nc' to - tell the old programs that carriage return may not be used. - - New programs should not assume any default for `cr', so they need - not look at `nc'. However, descriptions should contain `nc' - whenever they do not contain `cr'. - -`xt' - Flag whose presence means that the ASCII tab character may not be - used for cursor motion. This flag exists because old programs - assume, when the `ta' capability is missing, that ASCII tab can be - used for the purpose. We use `xt' to tell the old programs not to - use tab. - - New programs should not assume any default for `ta', so they need - not look at `xt' in connection with cursor motion. Note that `xt' - also has implications for standout mode (*note Standout::.). It - is obsolete in regard to cursor motion but not in regard to - standout. - - In fact, `xt' means that the terminal is a Teleray 1061. - -`bc' - Very obsolete alternative name for the `le' capability. - -`bs' - Flag whose presence means that the ASCII character backspace may be - used to move the cursor left. Obsolete; look at `le' instead. - -`nl' - Obsolete capability which is a string that can either be used to - move the cursor down or to scroll. The same string must scroll - when used on the bottom line and move the cursor when used on any - other line. New programs should use `do' or `sf', and ignore `nl'. - - If there is no `nl' capability, some old programs assume they can - use the newline character for this purpose. These programs follow - a bad practice, but because they exist, it is still desirable to - define the `nl' capability in a terminal description if the best - way to move down is *not* a newline. - - -File: termcap.info, Node: Wrapping, Next: Scrolling, Prev: Cursor Motion, Up: Capabilities - -Wrapping -======== - - "Wrapping" means moving the cursor from the right margin to the left -margin of the following line. Some terminals wrap automatically when a -graphic character is output in the last column, while others do not. -Most application programs that use termcap need to know whether the -terminal wraps. There are two special flag capabilities to describe -what the terminal does when a graphic character is output in the last -column. - -`am' - Flag whose presence means that writing a character in the last - column causes the cursor to wrap to the beginning of the next line. - - If `am' is not present, writing in the last column leaves the - cursor at the place where the character was written. - - Writing in the last column of the last line should be avoided on - terminals with `am', as it may or may not cause scrolling to occur - (*note Scrolling::.). Scrolling is surely not what you would - intend. - - If your program needs to check the `am' flag, then it also needs - to check the `xn' flag which indicates that wrapping happens in a - strange way. Many common terminals have the `xn' flag. - -`xn' - Flag whose presence means that the cursor wraps in a strange way. - At least two distinct kinds of strange behavior are known; the - termcap data base does not contain anything to distinguish the two. - - On Concept-100 terminals, output in the last column wraps the - cursor almost like an ordinary `am' terminal. But if the next - thing output is a newline, it is ignored. - - DEC VT-100 terminals (when the wrap switch is on) do a different - strange thing: the cursor wraps only if the next thing output is - another graphic character. In fact, the wrap occurs when the - following graphic character is received by the terminal, before the - character is placed on the screen. - - On both of these terminals, after writing in the last column a - following graphic character will be displayed in the first column - of the following line. But the effect of relative cursor motion - characters such as newline or backspace at such a time depends on - the terminal. The effect of erase or scrolling commands also - depends on the terminal. You can't assume anything about what - they will do on a terminal that has `xn'. So, to be safe, you - should never do these things at such a time on such a terminal. - - To be sure of reliable results on a terminal which has the `xn' - flag, output a `cm' absolute positioning command after writing in - the last column. Another safe thing to do is to output - carriage-return newline, which will leave the cursor at the - beginning of the following line. - -`LP' - Flag whose presence means that it is safe to write in the last - column of the last line without worrying about undesired - scrolling. `LP' indicates the DEC flavor of `xn' strangeness. - - -File: termcap.info, Node: Scrolling, Next: Windows, Prev: Wrapping, Up: Capabilities - -Scrolling -========= - - "Scrolling" means moving the contents of the screen up or down one or -more lines. Moving the contents up is "forward scrolling"; moving them -down is "reverse scrolling". - - Scrolling happens after each line of output during ordinary output -on most display terminals. But in an application program that uses -termcap for random-access output, scrolling happens only when -explicitly requested with the commands in this section. - - Some terminals have a "scroll region" feature. This lets you limit -the effect of scrolling to a specified range of lines. Lines outside -the range are unaffected when scrolling happens. The scroll region -feature is available if either `cs' or `cS' is present. - -`sf' - String of commands to scroll the screen one line up, assuming it is - output with the cursor at the beginning of the bottom line. - -`sr' - String of commands to scroll the screen one line down, assuming it - is output with the cursor at the beginning of the top line. - -`do' - A few programs will try to use `do' to do the work of `sf'. This - is not really correct--it is an attempt to compensate for the - absence of a `sf' command in some old terminal descriptions. - - Since these terminal descriptions do define `sr', perhaps at one - time the definition of `do' was different and it could be used for - scrolling as well. But it isn't desirable to combine these two - functions in one capability, since scrolling often requires more - padding than simply moving the cursor down. Defining `sf' and - `do' separately allows you to specify the padding properly. Also, - all sources agree that `do' should not be relied on to do - scrolling. - - So the best approach is to add `sf' capabilities to the - descriptions of these terminals, copying the definition of `do' if - that does scroll. - -`SF' - String of commands to scroll the screen N lines up, assuming it is - output with the cursor at the beginning of the bottom line. - -`SR' - String of commands to scroll the screen N lines down, assuming it - is output with the cursor at the beginning of the top line. - -`cs' - String of commands to set the scroll region. This command takes - two parameters, START and END, which are the line numbers - (origin-zero) of the first line to include in the scroll region - and of the last line to include in it. When a scroll region is - set, scrolling is limited to the specified range of lines; lines - outside the range are not affected by scroll commands. - - Do not try to move the cursor outside the scroll region. The - region remains set until explicitly removed. To remove the scroll - region, use another `cs' command specifying the full height of the - screen. - - The cursor position is undefined after the `cs' command is set, so - position the cursor with `cm' immediately afterward. - -`cS' - String of commands to set the scroll region using parameters in - different form. The effect is the same as if `cs' were used. - Four parameters are required: - - 1. Total number of lines on the screen. - - 2. Number of lines above desired scroll region. - - 3. Number of lines below (outside of) desired scroll region. - - 4. Total number of lines on the screen, the same as the first - parameter. - - This capability is a GNU extension that was invented to allow the - Ann Arbor Ambassador's scroll-region command to be described; it - could also be done by putting non-Unix `%'-sequences into a `cs' - string, but that would have confused Unix programs that used the - `cs' capability with the Unix termcap. Currently only GNU Emacs - uses the `cS' capability. - -`ns' - Flag which means that the terminal does not normally scroll for - ordinary sequential output. For modern terminals, this means that - outputting a newline in ordinary sequential output with the cursor - on the bottom line wraps to the top line. For some obsolete - terminals, other things may happen. - - The terminal may be able to scroll even if it does not normally do - so. If the `sf' capability is provided, it can be used for - scrolling regardless of `ns'. - -`da' - Flag whose presence means that lines scrolled up off the top of the - screen may come back if scrolling down is done subsequently. - - The `da' and `db' flags do not, strictly speaking, affect how to - scroll. But programs that scroll usually need to clear the lines - scrolled onto the screen, if these flags are present. - -`db' - Flag whose presence means that lines scrolled down off the bottom - of the screen may come back if scrolling up is done subsequently. - -`lm' - Numeric value, the number of lines of display memory that the - terminal has. A value of zero means that the terminal has more - display memory than can fit on the screen, but no fixed number of - lines. (The number of lines may depend on the amount of text in - each line.) - - Any terminal description that defines `SF' should also define `sf'; -likewise for `SR' and `sr'. However, many terminals can only scroll by -one line at a time, so it is common to find `sf' and not `SF', or `sr' -without `SR'. - - Therefore, all programs that use the scrolling facilities should be -prepared to work with `sf' in the case that `SF' is absent, and -likewise with `sr'. On the other hand, an application program that -uses only `sf' and not `SF' is acceptable, though slow on some -terminals. - - When outputting a scroll command with `tputs', the NLINES argument -should be the total number of lines in the portion of the screen being -scrolled. Very often these commands require padding proportional to -this number of lines. *Note Padding::. - - -File: termcap.info, Node: Windows, Next: Clearing, Prev: Scrolling, Up: Capabilities - -Windows -======= - - A "window", in termcap, is a rectangular portion of the screen to -which all display operations are restricted. Wrapping, clearing, -scrolling, insertion and deletion all operate as if the specified -window were all the screen there was. - -`wi' - String of commands to set the terminal output screen window. This - string requires four parameters, all origin-zero: - 1. The first line to include in the window. - - 2. The last line to include in the window. - - 3. The first column to include in the window. - - 4. The last column to include in the window. - - Most terminals do not support windows. - - -File: termcap.info, Node: Clearing, Next: Insdel Line, Prev: Windows, Up: Capabilities - -Clearing Parts of the Screen -============================ - - There are several terminal capabilities for clearing parts of the -screen to blank. All display terminals support the `cl' string, and -most display terminals support all of these capabilities. - -`cl' - String of commands to clear the entire screen and position the - cursor at the upper left corner. - -`cd' - String of commands to clear the line the cursor is on, and all the - lines below it, down to the bottom of the screen. This command - string should be used only with the cursor in column zero; their - effect is undefined if the cursor is elsewhere. - -`ce' - String of commands to clear from the cursor to the end of the - current line. - -`ec' - String of commands to clear N characters, starting with the - character that the cursor is on. This command string is expected - to leave the cursor position unchanged. The parameter N should - never be large enough to reach past the right margin; the effect - of such a large parameter would be undefined. - - Clear to end of line (`ce') is extremely important in programs that -maintain an updating display. Nearly all display terminals support this -operation, so it is acceptable for a an application program to refuse to -work if `ce' is not present. However, if you do not want this -limitation, you can accomplish clearing to end of line by outputting -spaces until you reach the right margin. In order to do this, you must -know the current horizontal position. Also, this technique assumes -that writing a space will erase. But this happens to be true on all -the display terminals that fail to support `ce'. - - -File: termcap.info, Node: Insdel Line, Next: Insdel Char, Prev: Clearing, Up: Capabilities - -Insert/Delete Line -================== - - "Inserting a line" means creating a blank line in the middle of the -screen, and pushing the existing lines of text apart. In fact, the -lines above the insertion point do not change, while the lines below -move down, and one is normally lost at the bottom of the screen. - - "Deleting a line" means causing the line to disappear from the -screen, closing up the gap by moving the lines below it upward. A new -line appears at the bottom of the screen. Usually this line is blank, -but on terminals with the `db' flag it may be a line previously moved -off the screen bottom by scrolling or line insertion. - - Insertion and deletion of lines is useful in programs that maintain -an updating display some parts of which may get longer or shorter. -They are also useful in editors for scrolling parts of the screen, and -for redisplaying after lines of text are killed or inserted. - - Many terminals provide commands to insert or delete a single line at -the cursor position. Some provide the ability to insert or delete -several lines with one command, using the number of lines to insert or -delete as a parameter. Always move the cursor to column zero before -using any of these commands. - -`al' - String of commands to insert a blank line before the line the - cursor is on. The existing line, and all lines below it, are - moved down. The last line in the screen (or in the scroll region, - if one is set) disappears and in most circumstances is discarded. - It may not be discarded if the `db' is present (*note - Scrolling::.). - - The cursor must be at the left margin before this command is used. - This command does not move the cursor. - -`dl' - String of commands to delete the line the cursor is on. The - following lines move up, and a blank line appears at the bottom of - the screen (or bottom of the scroll region). If the terminal has - the `db' flag, a nonblank line previously pushed off the screen - bottom may reappear at the bottom. - - The cursor must be at the left margin before this command is used. - This command does not move the cursor. - -`AL' - String of commands to insert N blank lines before the line that - the cursor is on. It is like `al' repeated N times, except that - it is as fast as one `al'. - -`DL' - String of commands to delete N lines starting with the line that - the cursor is on. It is like `dl' repeated N times, except that - it is as fast as one `dl'. - - Any terminal description that defines `AL' should also define `al'; -likewise for `DL' and `dl'. However, many terminals can only insert or -delete one line at a time, so it is common to find `al' and not `AL', -or `dl' without `DL'. - - Therefore, all programs that use the insert and delete facilities -should be prepared to work with `al' in the case that `AL' is absent, -and likewise with `dl'. On the other hand, it is acceptable to write -an application that uses only `al' and `dl' and does not look for `AL' -or `DL' at all. - - If a terminal does not support line insertion and deletion directly, -but does support a scroll region, the effect of insertion and deletion -can be obtained with scrolling. However, it is up to the individual -user program to check for this possibility and use the scrolling -commands to get the desired result. It is fairly important to implement -this alternate strategy, since it is the only way to get the effect of -line insertion and deletion on the popular VT100 terminal. - - Insertion and deletion of lines is affected by the scroll region on -terminals that have a settable scroll region. This is useful when it is -desirable to move any few consecutive lines up or down by a few lines. -*Note Scrolling::. - - The line pushed off the bottom of the screen is not lost if the -terminal has the `db' flag capability; instead, it is pushed into -display memory that does not appear on the screen. This is the same -thing that happens when scrolling pushes a line off the bottom of the -screen. Either reverse scrolling or deletion of a line can bring the -apparently lost line back onto the bottom of the screen. If the -terminal has the scroll region feature as well as `db', the pushed-out -line really is lost if a scroll region is in effect. - - When outputting an insert or delete command with `tputs', the NLINES -argument should be the total number of lines from the cursor to the -bottom of the screen (or scroll region). Very often these commands -require padding proportional to this number of lines. *Note Padding::. - - For `AL' and `DL' the NLINES argument should *not* depend on the -number of lines inserted or deleted; only the total number of lines -affected. This is because it is just as fast to insert two or N lines -with `AL' as to insert one line with `al'. - diff --git a/lib/termcap/grot/termcap.info-3 b/lib/termcap/grot/termcap.info-3 deleted file mode 100644 index d5b309f21..000000000 --- a/lib/termcap/grot/termcap.info-3 +++ /dev/null @@ -1,1480 +0,0 @@ -This is Info file ./termcap.info, produced by Makeinfo-1.55 from the -input file ./termcap.texi. - - This file documents the termcap library of the GNU system. - - Copyright (C) 1988 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: termcap.info, Node: Insdel Char, Next: Standout, Prev: Insdel Line, Up: Capabilities - -Insert/Delete Character -======================= - - "Inserting a character" means creating a blank space in the middle -of a line, and pushing the rest of the line rightward. The character -in the rightmost column is lost. - - "Deleting a character" means causing the character to disappear from -the screen, closing up the gap by moving the rest of the line leftward. -A blank space appears in the rightmost column. - - Insertion and deletion of characters is useful in programs that -maintain an updating display some parts of which may get longer or -shorter. It is also useful in editors for redisplaying the results of -editing within a line. - - Many terminals provide commands to insert or delete a single -character at the cursor position. Some provide the ability to insert -or delete several characters with one command, using the number of -characters to insert or delete as a parameter. - - Many terminals provide an insert mode in which outputting a graphic -character has the added effect of inserting a position for that -character. A special command string is used to enter insert mode and -another is used to exit it. The reason for designing a terminal with -an insert mode rather than an insert command is that inserting -character positions is usually followed by writing characters into -them. With insert mode, this is as fast as simply writing the -characters, except for the fixed overhead of entering and leaving -insert mode. However, when the line speed is great enough, padding may -be required for the graphic characters output in insert mode. - - Some terminals require you to enter insert mode and then output a -special command for each position to be inserted. Or they may require -special commands to be output before or after each graphic character to -be inserted. - - Deletion of characters is usually accomplished by a straightforward -command to delete one or several positions; but on some terminals, it -is necessary to enter a special delete mode before using the delete -command, and leave delete mode afterward. Sometimes delete mode and -insert mode are the same mode. - - Some terminals make a distinction between character positions in -which a space character has been output and positions which have been -cleared. On these terminals, the effect of insert or delete character -runs to the first cleared position rather than to the end of the line. -In fact, the effect may run to more than one line if there is no -cleared position to stop the shift on the first line. These terminals -are identified by the `in' flag capability. - - On terminals with the `in' flag, the technique of skipping over -characters that you know were cleared, and then outputting text later -on in the same line, causes later insert and delete character -operations on that line to do nonstandard things. A program that has -any chance of doing this must check for the `in' flag and must be -careful to write explicit space characters into the intermediate -columns when `in' is present. - - A plethora of terminal capabilities are needed to describe all of -this complexity. Here is a list of them all. Following the list, we -present an algorithm for programs to use to take proper account of all -of these capabilities. - -`im' - String of commands to enter insert mode. - - If the terminal has no special insert mode, but it can insert - characters with a special command, `im' should be defined with a - null value, because the `vi' editor assumes that insertion of a - character is impossible if `im' is not provided. - - New programs should not act like `vi'. They should pay attention - to `im' only if it is defined. - -`ei' - String of commands to leave insert mode. This capability must be - present if `im' is. - - On a few old terminals the same string is used to enter and exit - insert mode. This string turns insert mode on if it was off, and - off it it was on. You can tell these terminals because the `ei' - string equals the `im' string. If you want to support these - terminals, you must always remember accurately whether insert mode - is in effect. However, these terminals are obsolete, and it is - reasonable to refuse to support them. On all modern terminals, you - can safely output `ei' at any time to ensure that insert mode is - turned off. - -`ic' - String of commands to insert one character position at the cursor. - The cursor does not move. - - If outputting a graphic character while in insert mode is - sufficient to insert the character, then the `ic' capability - should be defined with a null value. - - If your terminal offers a choice of ways to insert--either use - insert mode or use a special command--then define `im' and do not - define `ic', since this gives the most efficient operation when - several characters are to be inserted. *Do not* define both - strings, for that means that *both* must be used each time - insertion is done. - -`ip' - String of commands to output following an inserted graphic - character in insert mode. Often it is used just for a padding - spec, when padding is needed after an inserted character (*note - Padding::.). - -`IC' - String of commands to insert N character positions at and after - the cursor. It has the same effect as repeating the `ic' string - and a space, N times. - - If `IC' is provided, application programs may use it without first - entering insert mode. - -`mi' - Flag whose presence means it is safe to move the cursor while in - insert mode and assume the terminal remains in insert mode. - -`in' - Flag whose presence means that the terminal distinguishes between - character positions in which space characters have been output and - positions which have been cleared. - - An application program can assume that the terminal can do character -insertion if *any one of* the capabilities `IC', `im', `ic' or `ip' is -provided. - - To insert N blank character positions, move the cursor to the place -to insert them and follow this algorithm: - - 1. If an `IC' string is provided, output it with parameter N and you - are finished. Otherwise (or if you don't want to bother to look - for an `IC' string) follow the remaining steps. - - 2. Output the `im' string, if there is one, unless the terminal is - already in insert mode. - - 3. Repeat steps 4 through 6, N times. - - 4. Output the `ic' string if any. - - 5. Output a space. - - 6. Output the `ip' string if any. - - 7. Output the `ei' string, eventually, to exit insert mode. There is - no need to do this right away. If the `mi' flag is present, you - can move the cursor and the cursor will remain in insert mode; - then you can do more insertion elsewhere without reentering insert - mode. - - To insert N graphic characters, position the cursor and follow this -algorithm: - - 1. If an `IC' string is provided, output it with parameter N, then - output the graphic characters, and you are finished. Otherwise - (or if you don't want to bother to look for an `IC' string) follow - the remaining steps. - - 2. Output the `im' string, if there is one, unless the terminal is - already in insert mode. - - 3. For each character to be output, repeat steps 4 through 6. - - 4. Output the `ic' string if any. - - 5. Output the next graphic character. - - 6. Output the `ip' string if any. - - 7. Output the `ei' string, eventually, to exit insert mode. There is - no need to do this right away. If the `mi' flag is present, you - can move the cursor and the cursor will remain in insert mode; - then you can do more insertion elsewhere without reentering insert - mode. - - Note that this is not the same as the original Unix termcap -specifications in one respect: it assumes that the `IC' string can be -used without entering insert mode. This is true as far as I know, and -it allows you be able to avoid entering and leaving insert mode, and -also to be able to avoid the inserted-character padding after the -characters that go into the inserted positions. - - Deletion of characters is less complicated; deleting one column is -done by outputting the `dc' string. However, there may be a delete -mode that must be entered with `dm' in order to make `dc' work. - -`dc' - String of commands to delete one character position at the cursor. - If `dc' is not present, the terminal cannot delete characters. - -`DC' - String of commands to delete N characters starting at the cursor. - It has the same effect as repeating the `dc' string N times. Any - terminal description that has `DC' also has `dc'. - -`dm' - String of commands to enter delete mode. If not present, there is - no delete mode, and `dc' can be used at any time (assuming there is - a `dc'). - -`ed' - String of commands to exit delete mode. This must be present if - `dm' is. - - To delete N character positions, position the cursor and follow these -steps: - - 1. If the `DC' string is present, output it with parameter N and you - are finished. Otherwise, follow the remaining steps. - - 2. Output the `dm' string, unless you know the terminal is already in - delete mode. - - 3. Output the `dc' string N times. - - 4. Output the `ed' string eventually. If the flag capability `mi' is - present, you can move the cursor and do more deletion without - leaving and reentering delete mode. - - As with the `IC' string, we have departed from the original termcap -specifications by assuming that `DC' works without entering delete mode -even though `dc' would not. - - If the `dm' and `im' capabilities are both present and have the same -value, it means that the terminal has one mode for both insertion and -deletion. It is useful for a program to know this, because then it can -do insertions after deletions, or vice versa, without leaving -insert/delete mode and reentering it. - - -File: termcap.info, Node: Standout, Next: Underlining, Prev: Insdel Char, Up: Capabilities - -Standout and Appearance Modes -============================= - - "Appearance modes" are modifications to the ways characters are -displayed. Typical appearance modes include reverse video, dim, bright, -blinking, underlined, invisible, and alternate character set. Each -kind of terminal supports various among these, or perhaps none. - - For each type of terminal, one appearance mode or combination of -them that looks good for highlighted text is chosen as the "standout -mode". The capabilities `so' and `se' say how to enter and leave -standout mode. Programs that use appearance modes only to highlight -some text generally use the standout mode so that they can work on as -many terminals as possible. Use of specific appearance modes other -than "underlined" and "alternate character set" is rare. - - Terminals that implement appearance modes fall into two general -classes as to how they do it. - - In some terminals, the presence or absence of any appearance mode is -recorded separately for each character position. In these terminals, -each graphic character written is given the appearance modes current at -the time it is written, and keeps those modes until it is erased or -overwritten. There are special commands to turn the appearance modes -on or off for characters to be written in the future. - - In other terminals, the change of appearance modes is represented by -a marker that belongs to a certain screen position but affects all -following screen positions until the next marker. These markers are -traditionally called "magic cookies". - - The same capabilities (`so', `se', `mb' and so on) for turning -appearance modes on and off are used for both magic-cookie terminals -and per-character terminals. On magic cookie terminals, these give the -commands to write the magic cookies. On per-character terminals, they -change the current modes that affect future output and erasure. Some -simple applications can use these commands without knowing whether or -not they work by means of cookies. - - However, a program that maintains and updates a display needs to know -whether the terminal uses magic cookies, and exactly what their effect -is. This information comes from the `sg' capability. - - The `sg' capability is a numeric capability whose presence indicates -that the terminal uses magic cookies for appearance modes. Its value is -the number of character positions that a magic cookie occupies. Usually -the cookie occupies one or more character positions on the screen, and -these character positions are displayed as blank, but in some terminals -the cookie has zero width. - - The `sg' capability describes both the magic cookie to turn standout -on and the cookie to turn it off. This makes the assumption that both -kinds of cookie have the same width on the screen. If that is not true, -the narrower cookie must be "widened" with spaces until it has the same -width as the other. - - On some magic cookie terminals, each line always starts with normal -display; in other words, the scope of a magic cookie never extends over -more than one line. But on other terminals, one magic cookie affects -all the lines below it unless explicitly canceled. Termcap does not -define any way to distinguish these two ways magic cookies can work. -To be safe, it is best to put a cookie at the beginning of each line. - - On some per-character terminals, standout mode or other appearance -modes may be canceled by moving the cursor. On others, moving the -cursor has no effect on the state of the appearance modes. The latter -class of terminals are given the flag capability `ms' ("can move in -standout"). All programs that might have occasion to move the cursor -while appearance modes are turned on must check for this flag; if it is -not present, they should reset appearance modes to normal before doing -cursor motion. - - A program that has turned on only standout mode should use `se' to -reset the standout mode to normal. A program that has turned on only -alternate character set mode should use `ae' to return it to normal. -If it is possible that any other appearance modes are turned on, use the -`me' capability to return them to normal. - - Note that the commands to turn on one appearance mode, including `so' -and `mb' ... `mr', if used while some other appearance modes are turned -on, may combine the two modes on some terminals but may turn off the -mode previously enabled on other terminals. This is because some -terminals do not have a command to set or clear one appearance mode -without changing the others. Programs should not attempt to use -appearance modes in combination except with `sa', and when switching -from one single mode to another should always turn off the previously -enabled mode and then turn on the new desired mode. - - On some old terminals, the `so' and `se' commands may be the same -command, which has the effect of turning standout on if it is off, or -off it is on. It is therefore risky for a program to output extra `se' -commands for good measure. Fortunately, all these terminals are -obsolete. - - Programs that update displays in which standout-text may be replaced -with non-standout text must check for the `xs' flag. In a per-character -terminal, this flag says that the only way to remove standout once -written is to clear that portion of the line with the `ce' string or -something even more powerful (*note Clearing::.); just writing new -characters at those screen positions will not change the modes in -effect there. In a magic cookie terminal, `xs' says that the only way -to remove a cookie is to clear a portion of the line that includes the -cookie; writing a different cookie at the same position does not work. - - Such programs must also check for the `xt' flag, which means that the -terminal is a Teleray 1061. On this terminal it is impossible to -position the cursor at the front of a magic cookie, so the only two -ways to remove a cookie are (1) to delete the line it is on or (2) to -position the cursor at least one character before it (possibly on a -previous line) and output the `se' string, which on these terminals -finds and removes the next `so' magic cookie on the screen. (It may -also be possible to remove a cookie which is not at the beginning of a -line by clearing that line.) The `xt' capability also has implications -for the use of tab characters, but in that regard it is obsolete (*Note -Cursor Motion::). - -`so' - String of commands to enter standout mode. - -`se' - String of commands to leave standout mode. - -`sg' - Numeric capability, the width on the screen of the magic cookie. - This capability is absent in terminals that record appearance modes - character by character. - -`ms' - Flag whose presence means that it is safe to move the cursor while - the appearance modes are not in the normal state. If this flag is - absent, programs should always reset the appearance modes to - normal before moving the cursor. - -`xs' - Flag whose presence means that the only way to reset appearance - modes already on the screen is to clear to end of line. On a - per-character terminal, you must clear the area where the modes - are set. On a magic cookie terminal, you must clear an area - containing the cookie. See the discussion above. - -`xt' - Flag whose presence means that the cursor cannot be positioned - right in front of a magic cookie, and that `se' is a command to - delete the next magic cookie following the cursor. See discussion - above. - -`mb' - String of commands to enter blinking mode. - -`md' - String of commands to enter double-bright mode. - -`mh' - String of commands to enter half-bright mode. - -`mk' - String of commands to enter invisible mode. - -`mp' - String of commands to enter protected mode. - -`mr' - String of commands to enter reverse-video mode. - -`me' - String of commands to turn off all appearance modes, including - standout mode and underline mode. On some terminals it also turns - off alternate character set mode; on others, it may not. This - capability must be present if any of `mb' ... `mr' is present. - -`as' - String of commands to turn on alternate character set mode. This - mode assigns some or all graphic characters an alternate picture - on the screen. There is no standard as to what the alternate - pictures look like. - -`ae' - String of commands to turn off alternate character set mode. - -`sa' - String of commands to turn on an arbitrary combination of - appearance modes. It accepts 9 parameters, each of which controls - a particular kind of appearance mode. A parameter should be 1 to - turn its appearance mode on, or zero to turn that mode off. Most - terminals do not support the `sa' capability, even among those - that do have various appearance modes. - - The nine parameters are, in order, STANDOUT, UNDERLINE, REVERSE, - BLINK, HALF-BRIGHT, DOUBLE-BRIGHT, BLANK, PROTECT, ALT CHAR SET. - - -File: termcap.info, Node: Underlining, Next: Cursor Visibility, Prev: Standout, Up: Capabilities - -Underlining -=========== - - Underlining on most terminals is a kind of appearance mode, much like -standout mode. Therefore, it may be implemented using magic cookies or -as a flag in the terminal whose current state affects each character -that is output. *Note Standout::, for a full explanation. - - The `ug' capability is a numeric capability whose presence indicates -that the terminal uses magic cookies for underlining. Its value is the -number of character positions that a magic cookie for underlining -occupies; it is used for underlining just as `sg' is used for standout. -Aside from the simplest applications, it is impossible to use -underlining correctly without paying attention to the value of `ug'. - -`us' - String of commands to turn on underline mode or to output a magic - cookie to start underlining. - -`ue' - String of commands to turn off underline mode or to output a magic - cookie to stop underlining. - -`ug' - Width of magic cookie that represents a change of underline mode; - or missing, if the terminal does not use a magic cookie for this. - -`ms' - Flag whose presence means that it is safe to move the cursor while - the appearance modes are not in the normal state. Underlining is - an appearance mode. If this flag is absent, programs should - always turn off underlining before moving the cursor. - - There are two other, older ways of doing underlining: there can be a -command to underline a single character, or the output of `_', the -ASCII underscore character, as an overstrike could cause a character to -be underlined. New programs need not bother to handle these -capabilities unless the author cares strongly about the obscure -terminals which support them. However, terminal descriptions should -provide these capabilities when appropriate. - -`uc' - String of commands to underline the character under the cursor, and - move the cursor right. - -`ul' - Flag whose presence means that the terminal can underline by - overstriking an underscore character (`_'); some terminals can do - this even though they do not support overstriking in general. An - implication of this flag is that when outputting new text to - overwrite old text, underscore characters must be treated - specially lest they underline the old text instead. - - -File: termcap.info, Node: Cursor Visibility, Next: Bell, Prev: Underlining, Up: Capabilities - -Cursor Visibility -================= - - Some terminals have the ability to make the cursor invisible, or to -enhance it. Enhancing the cursor is often done by programs that plan -to use the cursor to indicate to the user a position of interest that -may be anywhere on the screen--for example, the Emacs editor enhances -the cursor on entry. Such programs should always restore the cursor to -normal on exit. - -`vs' - String of commands to enhance the cursor. - -`vi' - String of commands to make the cursor invisible. - -`ve' - String of commands to return the cursor to normal. - - If you define either `vs' or `vi', you must also define `ve'. - - -File: termcap.info, Node: Bell, Next: Keypad, Prev: Cursor Visibility, Up: Capabilities - -Bell -==== - - Here we describe commands to make the terminal ask for the user to -pay attention to it. - -`bl' - String of commands to cause the terminal to make an audible sound. - If this capability is absent, the terminal has no way to make a - suitable sound. - -`vb' - String of commands to cause the screen to flash to attract - attention ("visible bell"). If this capability is absent, the - terminal has no way to do such a thing. - - -File: termcap.info, Node: Keypad, Next: Meta Key, Prev: Bell, Up: Capabilities - -Keypad and Function Keys -======================== - - Many terminals have arrow and function keys that transmit specific -character sequences to the computer. Since the precise sequences used -depend on the terminal, termcap defines capabilities used to say what -the sequences are. Unlike most termcap string-valued capabilities, -these are not strings of commands to be sent to the terminal, rather -strings that are received from the terminal. - - Programs that expect to use keypad keys should check, initially, for -a `ks' capability and send it, to make the keypad actually transmit. -Such programs should also send the `ke' string when exiting. - -`ks' - String of commands to make the keypad keys transmit. If this - capability is not provided, but the others in this section are, - programs may assume that the keypad keys always transmit. - -`ke' - String of commands to make the keypad keys work locally. This - capability is provided only if `ks' is. - -`kl' - String of input characters sent by typing the left-arrow key. If - this capability is missing, you cannot expect the terminal to have - a left-arrow key that transmits anything to the computer. - -`kr' - String of input characters sent by typing the right-arrow key. - -`ku' - String of input characters sent by typing the up-arrow key. - -`kd' - String of input characters sent by typing the down-arrow key. - -`kh' - String of input characters sent by typing the "home-position" key. - -`K1' ... `K5' - Strings of input characters sent by the five other keys in a 3-by-3 - array that includes the arrow keys, if the keyboard has such a - 3-by-3 array. Note that one of these keys may be the - "home-position" key, in which case one of these capabilities will - have the same value as the `kh' key. - -`k0' - String of input characters sent by function key 10 (or 0, if the - terminal has one labeled 0). - -`k1' ... `k9' - Strings of input characters sent by function keys 1 through 9, - provided for those function keys that exist. - -`kn' - Number: the number of numbered function keys, if there are more - than 10. - -`l0' ... `l9' - Strings which are the labels appearing on the keyboard on the keys - described by the capabilities `k0' ... `l9'. These capabilities - should be left undefined if the labels are `f0' or `f10' and `f1' - ... `f9'. - -`kH' - String of input characters sent by the "home down" key, if there is - one. - -`kb' - String of input characters sent by the "backspace" key, if there is - one. - -`ka' - String of input characters sent by the "clear all tabs" key, if - there is one. - -`kt' - String of input characters sent by the "clear tab stop this column" - key, if there is one. - -`kC' - String of input characters sent by the "clear screen" key, if - there is one. - -`kD' - String of input characters sent by the "delete character" key, if - there is one. - -`kL' - String of input characters sent by the "delete line" key, if there - is one. - -`kM' - String of input characters sent by the "exit insert mode" key, if - there is one. - -`kE' - String of input characters sent by the "clear to end of line" key, - if there is one. - -`kS' - String of input characters sent by the "clear to end of screen" - key, if there is one. - -`kI' - String of input characters sent by the "insert character" or "enter - insert mode" key, if there is one. - -`kA' - String of input characters sent by the "insert line" key, if there - is one. - -`kN' - String of input characters sent by the "next page" key, if there is - one. - -`kP' - String of input characters sent by the "previous page" key, if - there is one. - -`kF' - String of input characters sent by the "scroll forward" key, if - there is one. - -`kR' - String of input characters sent by the "scroll reverse" key, if - there is one. - -`kT' - String of input characters sent by the "set tab stop in this - column" key, if there is one. - -`ko' - String listing the other function keys the terminal has. This is a - very obsolete way of describing the same information found in the - `kH' ... `kT' keys. The string contains a list of two-character - termcap capability names, separated by commas. The meaning is - that for each capability name listed, the terminal has a key which - sends the string which is the value of that capability. For - example, the value `:ko=cl,ll,sf,sr:' says that the terminal has - four function keys which mean "clear screen", "home down", "scroll - forward" and "scroll reverse". - - -File: termcap.info, Node: Meta Key, Next: Initialization, Prev: Keypad, Up: Capabilities - -Meta Key -======== - - A Meta key is a key on the keyboard that modifies each character you -type by controlling the 0200 bit. This bit is on if and only if the -Meta key is held down when the character is typed. Characters typed -using the Meta key are called Meta characters. Emacs uses Meta -characters as editing commands. - -`km' - Flag whose presence means that the terminal has a Meta key. - -`mm' - String of commands to enable the functioning of the Meta key. - -`mo' - String of commands to disable the functioning of the Meta key. - - If the terminal has `km' but does not have `mm' and `mo', it means -that the Meta key always functions. If it has `mm' and `mo', it means -that the Meta key can be turned on or off. Send the `mm' string to -turn it on, and the `mo' string to turn it off. I do not know why one -would ever not want it to be on. - - -File: termcap.info, Node: Initialization, Next: Pad Specs, Prev: Meta Key, Up: Capabilities - -Initialization -============== - -`ti' - String of commands to put the terminal into whatever special modes - are needed or appropriate for programs that move the cursor - nonsequentially around the screen. Programs that use termcap to do - full-screen display should output this string when they start up. - -`te' - String of commands to undo what is done by the `ti' string. - Programs that output the `ti' string on entry should output this - string when they exit. - -`is' - String of commands to initialize the terminal for each login - session. - -`if' - String which is the name of a file containing the string of - commands to initialize the terminal for each session of use. - Normally `is' and `if' are not both used. - -`i1' -`i3' - Two more strings of commands to initialize the terminal for each - login session. The `i1' string (if defined) is output before `is' - or `if', and the `i3' string (if defined) is output after. - - The reason for having three separate initialization strings is to - make it easier to define a group of related terminal types with - slightly different initializations. Define two or three of the - strings in the basic type; then the other types can override one - or two of the strings. - -`rs' - String of commands to reset the terminal from any strange mode it - may be in. Normally this includes the `is' string (or other - commands with the same effects) and more. What would go in the - `rs' string but not in the `is' string are annoying or slow - commands to bring the terminal back from strange modes that nobody - would normally use. - -`it' - Numeric value, the initial spacing between hardware tab stop - columns when the terminal is powered up. Programs to initialize - the terminal can use this to decide whether there is a need to set - the tab stops. If the initial width is 8, well and good; if it is - not 8, then the tab stops should be set; if they cannot be set, - the kernel is told to convert tabs to spaces, and other programs - will observe this and do likewise. - -`ct' - String of commands to clear all tab stops. - -`st' - String of commands to set tab stop at current cursor column on all - lines. - -`NF' - Flag whose presence means that the terminal does not support - XON/XOFF flow control. Programs should not send XON (`C-q') or - XOFF (`C-s') characters to the terminal. - - -File: termcap.info, Node: Pad Specs, Next: Status Line, Prev: Initialization, Up: Capabilities - -Padding Capabilities -==================== - - There are two terminal capabilities that exist just to explain the -proper way to obey the padding specifications in all the command string -capabilities. One, `pc', must be obeyed by all termcap-using programs. - -`pb' - Numeric value, the lowest baud rate at which padding is actually - needed. Programs may check this and refrain from doing any - padding at lower speeds. - -`pc' - String of commands for padding. The first character of this - string is to be used as the pad character, instead of using null - characters for padding. If `pc' is not provided, use null - characters. Every program that uses termcap must look up this - capability and use it to set the variable `PC' that is used by - `tputs'. *Note Padding::. - - Some termcap capabilities exist just to specify the amount of -padding that the kernel should give to cursor motion commands used in -ordinary sequential output. - -`dC' - Numeric value, the number of msec of padding needed for the - carriage-return character. - -`dN' - Numeric value, the number of msec of padding needed for the newline - (linefeed) character. - -`dB' - Numeric value, the number of msec of padding needed for the - backspace character. - -`dF' - Numeric value, the number of msec of padding needed for the - formfeed character. - -`dT' - Numeric value, the number of msec of padding needed for the tab - character. - - In some systems, the kernel uses the above capabilities; in other -systems, the kernel uses the paddings specified in the string -capabilities `cr', `sf', `le', `ff' and `ta'. Descriptions of -terminals which require such padding should contain the `dC' ... `dT' -capabilities and also specify the appropriate padding in the -corresponding string capabilities. Since no modern terminals require -padding for ordinary sequential output, you probably won't need to do -either of these things. - - -File: termcap.info, Node: Status Line, Next: Half-Line, Prev: Pad Specs, Up: Capabilities - -Status Line -=========== - - A "status line" is a line on the terminal that is not used for -ordinary display output but instead used for a special message. The -intended use is for a continuously updated description of what the -user's program is doing, and that is where the name "status line" comes -from, but in fact it could be used for anything. The distinguishing -characteristic of a status line is that ordinary output to the terminal -does not affect it; it changes only if the special status line commands -of this section are used. - -`hs' - Flag whose presence means that the terminal has a status line. If - a terminal description specifies that there is a status line, it - must provide the `ts' and `fs' capabilities. - -`ts' - String of commands to move the terminal cursor into the status - line. Usually these commands must specifically record the old - cursor position for the sake of the `fs' string. - -`fs' - String of commands to move the cursor back from the status line to - its previous position (outside the status line). - -`es' - Flag whose presence means that other display commands work while - writing the status line. In other words, one can clear parts of - it, insert or delete characters, move the cursor within it using - `ch' if there is a `ch' capability, enter and leave standout mode, - and so on. - -`ds' - String of commands to disable the display of the status line. This - may be absent, if there is no way to disable the status line - display. - -`ws' - Numeric value, the width of the status line. If this capability is - absent in a terminal that has a status line, it means the status - line is the same width as the other lines. - - Note that the value of `ws' is sometimes as small as 8. - - -File: termcap.info, Node: Half-Line, Next: Printer, Prev: Status Line, Up: Capabilities - -Half-Line Motion -================ - - Some terminals have commands for moving the cursor vertically by -half-lines, useful for outputting subscripts and superscripts. Mostly -it is hardcopy terminals that have such features. - -`hu' - String of commands to move the cursor up half a line. If the - terminal is a display, it is your responsibility to avoid moving - up past the top line; however, most likely the terminal that - supports this is a hardcopy terminal and there is nothing to be - concerned about. - -`hd' - String of commands to move the cursor down half a line. If the - terminal is a display, it is your responsibility to avoid moving - down past the bottom line, etc. - - -File: termcap.info, Node: Printer, Prev: Half-Line, Up: Capabilities - -Controlling Printers Attached to Terminals -========================================== - - Some terminals have attached hardcopy printer ports. They may be -able to copy the screen contents to the printer; they may also be able -to redirect output to the printer. Termcap does not have anything to -tell the program whether the redirected output appears also on the -screen; it does on some terminals but not all. - -`ps' - String of commands to cause the contents of the screen to be - printed. If it is absent, the screen contents cannot be printed. - -`po' - String of commands to redirect further output to the printer. - -`pf' - String of commands to terminate redirection of output to the - printer. This capability must be present in the description if - `po' is. - -`pO' - String of commands to redirect output to the printer for next N - characters of output, regardless of what they are. Redirection - will end automatically after N characters of further output. Until - then, nothing that is output can end redirection, not even the - `pf' string if there is one. The number N should not be more than - 255. - - One use of this capability is to send non-text byte sequences - (such as bit-maps) to the printer. - - Most terminals with printers do not support all of `ps', `po' and -`pO'; any one or two of them may be supported. To make a program that -can send output to all kinds of printers, it is necessary to check for -all three of these capabilities, choose the most convenient of the ones -that are provided, and use it in its own appropriate fashion. - - -File: termcap.info, Node: Summary, Next: Var Index, Prev: Capabilities, Up: Top - -Summary of Capability Names -*************************** - - Here are all the terminal capability names in alphabetical order -with a brief description of each. For cross references to their -definitions, see the index of capability names (*note Cap Index::.). - -`ae' - String to turn off alternate character set mode. - -`al' - String to insert a blank line before the cursor. - -`AL' - String to insert N blank lines before the cursor. - -`am' - Flag: output to last column wraps cursor to next line. - -`as' - String to turn on alternate character set mode.like. - -`bc' - Very obsolete alternative name for the `le' capability. - -`bl' - String to sound the bell. - -`bs' - Obsolete flag: ASCII backspace may be used for leftward motion. - -`bt' - String to move the cursor left to the previous hardware tab stop - column. - -`bw' - Flag: `le' at left margin wraps to end of previous line. - -`CC' - String to change terminal's command character. - -`cd' - String to clear the line the cursor is on, and following lines. - -`ce' - String to clear from the cursor to the end of the line. - -`ch' - String to position the cursor at column C in the same line. - -`cl' - String to clear the entire screen and put cursor at upper left - corner. - -`cm' - String to position the cursor at line L, column C. - -`CM' - String to position the cursor at line L, column C, relative to - display memory. - -`co' - Number: width of the screen. - -`cr' - String to move cursor sideways to left margin. - -`cs' - String to set the scroll region. - -`cS' - Alternate form of string to set the scroll region. - -`ct' - String to clear all tab stops. - -`cv' - String to position the cursor at line L in the same column. - -`da' - Flag: data scrolled off top of screen may be scrolled back. - -`db' - Flag: data scrolled off bottom of screen may be scrolled back. - -`dB' - Obsolete number: msec of padding needed for the backspace - character. - -`dc' - String to delete one character position at the cursor. - -`dC' - Obsolete number: msec of padding needed for the carriage-return - character. - -`DC' - String to delete N characters starting at the cursor. - -`dF' - Obsolete number: msec of padding needed for the formfeed character. - -`dl' - String to delete the line the cursor is on. - -`DL' - String to delete N lines starting with the cursor's line. - -`dm' - String to enter delete mode. - -`dN' - Obsolete number: msec of padding needed for the newline character. - -`do' - String to move the cursor vertically down one line. - -`DO' - String to move cursor vertically down N lines. - -`ds' - String to disable the display of the status line. - -`dT' - Obsolete number: msec of padding needed for the tab character. - -`ec' - String of commands to clear N characters at cursor. - -`ed' - String to exit delete mode. - -`ei' - String to leave insert mode. - -`eo' - Flag: output of a space can erase an overstrike. - -`es' - Flag: other display commands work while writing the status line. - -`ff' - String to advance to the next page, for a hardcopy terminal. - -`fs' - String to move the cursor back from the status line to its - previous position (outside the status line). - -`gn' - Flag: this terminal type is generic, not real. - -`hc' - Flag: hardcopy terminal. - -`hd' - String to move the cursor down half a line. - -`ho' - String to position cursor at upper left corner. - -`hs' - Flag: the terminal has a status line. - -`hu' - String to move the cursor up half a line. - -`hz' - Flag: terminal cannot accept `~' as output. - -`i1' - String to initialize the terminal for each login session. - -`i3' - String to initialize the terminal for each login session. - -`ic' - String to insert one character position at the cursor. - -`IC' - String to insert N character positions at the cursor. - -`if' - String naming a file of commands to initialize the terminal. - -`im' - String to enter insert mode. - -`in' - Flag: outputting a space is different from moving over empty - positions. - -`ip' - String to output following an inserted character in insert mode. - -`is' - String to initialize the terminal for each login session. - -`it' - Number: initial spacing between hardware tab stop columns. - -`k0' - String of input sent by function key 0 or 10. - -`k1 ... k9' - Strings of input sent by function keys 1 through 9. - -`K1 ... K5' - Strings sent by the five other keys in 3-by-3 array with arrows. - -`ka' - String of input sent by the "clear all tabs" key. - -`kA' - String of input sent by the "insert line" key. - -`kb' - String of input sent by the "backspace" key. - -`kC' - String of input sent by the "clear screen" key. - -`kd' - String of input sent by typing the down-arrow key. - -`kD' - String of input sent by the "delete character" key. - -`ke' - String to make the function keys work locally. - -`kE' - String of input sent by the "clear to end of line" key. - -`kF' - String of input sent by the "scroll forward" key. - -`kh' - String of input sent by typing the "home-position" key. - -`kH' - String of input sent by the "home down" key. - -`kI' - String of input sent by the "insert character" or "enter insert - mode" key. - -`kl' - String of input sent by typing the left-arrow key. - -`kL' - String of input sent by the "delete line" key. - -`km' - Flag: the terminal has a Meta key. - -`kM' - String of input sent by the "exit insert mode" key. - -`kn' - Numeric value, the number of numbered function keys. - -`kN' - String of input sent by the "next page" key. - -`ko' - Very obsolete string listing the terminal's named function keys. - -`kP' - String of input sent by the "previous page" key. - -`kr' - String of input sent by typing the right-arrow key. - -`kR' - String of input sent by the "scroll reverse" key. - -`ks' - String to make the function keys transmit. - -`kS' - String of input sent by the "clear to end of screen" key. - -`kt' - String of input sent by the "clear tab stop this column" key. - -`kT' - String of input sent by the "set tab stop in this column" key. - -`ku' - String of input sent by typing the up-arrow key. - -`l0' - String on keyboard labelling function key 0 or 10. - -`l1 ... l9' - Strings on keyboard labelling function keys 1 through 9. - -`le' - String to move the cursor left one column. - -`LE' - String to move cursor left N columns. - -`li' - Number: height of the screen. - -`ll' - String to position cursor at lower left corner. - -`lm' - Number: lines of display memory. - -`LP' - Flag: writing to last column of last line will not scroll. - -`mb' - String to enter blinking mode. - -`md' - String to enter double-bright mode. - -`me' - String to turn off all appearance modes - -`mh' - String to enter half-bright mode. - -`mi' - Flag: cursor motion in insert mode is safe. - -`mk' - String to enter invisible mode. - -`mm' - String to enable the functioning of the Meta key. - -`mo' - String to disable the functioning of the Meta key. - -`mp' - String to enter protected mode. - -`mr' - String to enter reverse-video mode. - -`ms' - Flag: cursor motion in standout mode is safe. - -`nc' - Obsolete flag: do not use ASCII carriage-return on this terminal. - -`nd' - String to move the cursor right one column. - -`NF' - Flag: do not use XON/XOFF flow control. - -`nl' - Obsolete alternative name for the `do' and `sf' capabilities. - -`ns' - Flag: the terminal does not normally scroll for sequential output. - -`nw' - String to move to start of next line, possibly clearing rest of - old line. - -`os' - Flag: terminal can overstrike. - -`pb' - Number: the lowest baud rate at which padding is actually needed. - -`pc' - String containing character for padding. - -`pf' - String to terminate redirection of output to the printer. - -`po' - String to redirect further output to the printer. - -`pO' - String to redirect N characters ofoutput to the printer. - -`ps' - String to print the screen on the attached printer. - -`rc' - String to move to last saved cursor position. - -`RI' - String to move cursor right N columns. - -`rp' - String to output character C repeated N times. - -`rs' - String to reset the terminal from any strange modes. - -`sa' - String to turn on an arbitrary combination of appearance modes. - -`sc' - String to save the current cursor position. - -`se' - String to leave standout mode. - -`sf' - String to scroll the screen one line up. - -`SF' - String to scroll the screen N lines up. - -`sg' - Number: width of magic standout cookie. Absent if magic cookies - are not used. - -`so' - String to enter standout mode. - -`sr' - String to scroll the screen one line down. - -`SR' - String to scroll the screen N line down. - -`st' - String to set tab stop at current cursor column on all lines. - programs. - -`ta' - String to move the cursor right to the next hardware tab stop - column. - -`te' - String to return terminal to settings for sequential output. - -`ti' - String to initialize terminal for random cursor motion. - -`ts' - String to move the terminal cursor into the status line. - -`uc' - String to underline one character and move cursor right. - -`ue' - String to turn off underline mode - -`ug' - Number: width of underlining magic cookie. Absent if underlining - doesn't use magic cookies. - -`ul' - Flag: underline by overstriking with an underscore. - -`up' - String to move the cursor vertically up one line. - -`UP' - String to move cursor vertically up N lines. - -`us' - String to turn on underline mode - -`vb' - String to make the screen flash. - -`ve' - String to return the cursor to normal. - -`vi' - String to make the cursor invisible. - -`vs' - String to enhance the cursor. - -`wi' - String to set the terminal output screen window. - -`ws' - Number: the width of the status line. - -`xb' - Flag: superbee terminal. - -`xn' - Flag: cursor wraps in a strange way. - -`xs' - Flag: clearing a line is the only way to clear the appearance - modes of positions in that line (or, only way to remove magic - cookies on that line). - -`xt' - Flag: Teleray 1061; several strange characteristics. - - -File: termcap.info, Node: Var Index, Next: Cap Index, Prev: Summary, Up: Top - -Variable and Function Index -*************************** - -* Menu: - -* BC: tgoto. -* ospeed: Output Padding. -* PC: Output Padding. -* tgetent: Find. -* tgetflag: Interrogate. -* tgetnum: Interrogate. -* tgetstr: Interrogate. -* tgoto: tgoto. -* tparam: tparam. -* tputs: Output Padding. -* UP: tgoto. - diff --git a/lib/termcap/grot/termcap.info-4 b/lib/termcap/grot/termcap.info-4 deleted file mode 100644 index 4b8bf791c..000000000 --- a/lib/termcap/grot/termcap.info-4 +++ /dev/null @@ -1,220 +0,0 @@ -This is Info file ./termcap.info, produced by Makeinfo-1.55 from the -input file ./termcap.texi. - - This file documents the termcap library of the GNU system. - - Copyright (C) 1988 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: termcap.info, Node: Cap Index, Next: Index, Prev: Var Index, Up: Top - -Capability Index -**************** - -* Menu: - -* ae: Standout. -* al: Insdel Line. -* AL: Insdel Line. -* am: Wrapping. -* as: Standout. -* bc: Cursor Motion. -* bl: Bell. -* bs: Cursor Motion. -* bt: Cursor Motion. -* bw: Cursor Motion. -* CC: Basic. -* cd: Clearing. -* ce: Clearing. -* ch: Cursor Motion. -* cl: Clearing. -* cm: Cursor Motion. -* CM: Cursor Motion. -* co: Screen Size. -* cr: Cursor Motion. -* cS: Scrolling. -* cs: Scrolling. -* ct: Initialization. -* cv: Cursor Motion. -* da: Scrolling. -* dB: Pad Specs. -* db: Scrolling. -* dC: Pad Specs. -* DC: Insdel Char. -* dc: Insdel Char. -* dF: Pad Specs. -* dl: Insdel Line. -* DL: Insdel Line. -* dm: Insdel Char. -* dN: Pad Specs. -* do: Cursor Motion. -* DO: Cursor Motion. -* ds: Status Line. -* dT: Pad Specs. -* ec: Clearing. -* ed: Insdel Char. -* ei: Insdel Char. -* eo: Basic. -* es: Status Line. -* ff: Cursor Motion. -* fs: Status Line. -* gn: Basic. -* hc: Basic. -* hd: Half-Line. -* ho: Cursor Motion. -* hs: Status Line. -* hu: Half-Line. -* hz: Basic. -* i1: Initialization. -* i3: Initialization. -* IC: Insdel Char. -* ic: Insdel Char. -* if: Initialization. -* im: Insdel Char. -* in: Insdel Char. -* ip: Insdel Char. -* is: Initialization. -* it: Initialization. -* K1...K5: Keypad. -* k1...k9: Keypad. -* kA...kT: Keypad. -* ka...ku: Keypad. -* km: Meta Key. -* l0...l9: Keypad. -* le: Cursor Motion. -* LE: Cursor Motion. -* li: Screen Size. -* ll: Cursor Motion. -* lm: Scrolling. -* LP: Wrapping. -* mb: Standout. -* md: Standout. -* me: Standout. -* mh: Standout. -* mi: Insdel Char. -* mk: Standout. -* mm: Meta Key. -* mo: Meta Key. -* mp: Standout. -* mr: Standout. -* ms: Standout. -* ms: Underlining. -* nc: Cursor Motion. -* nd: Cursor Motion. -* NF: Initialization. -* nl: Cursor Motion. -* ns: Scrolling. -* nw: Cursor Motion. -* os: Basic. -* pb: Pad Specs. -* pc: Pad Specs. -* pf: Printer. -* pO: Printer. -* po: Printer. -* ps: Printer. -* rc: Cursor Motion. -* RI: Cursor Motion. -* rp: Basic. -* rs: Initialization. -* sa: Standout. -* sc: Cursor Motion. -* se: Standout. -* SF: Scrolling. -* sf: Scrolling. -* sg: Standout. -* so: Standout. -* SR: Scrolling. -* sr: Scrolling. -* st: Initialization. -* ta: Cursor Motion. -* te: Initialization. -* ti: Initialization. -* ts: Status Line. -* uc: Underlining. -* ue: Underlining. -* ug: Underlining. -* ul: Underlining. -* up: Cursor Motion. -* UP: Cursor Motion. -* us: Underlining. -* vb: Bell. -* ve: Cursor Visibility. -* vi: Cursor Visibility. -* vs: Cursor Visibility. -* wi: Windows. -* ws: Status Line. -* xb: Basic. -* xn: Wrapping. -* xs: Standout. -* xt: Cursor Motion. -* xt: Standout. - - -File: termcap.info, Node: Index, Prev: Cap Index, Up: Top - -Concept Index -************* - -* Menu: - -* %: Encode Parameters. -* appearance modes: Standout. -* bell: Bell. -* clearing the screen: Clearing. -* command character: Basic. -* cursor motion: Cursor Motion. -* delete character: Insdel Char. -* delete line: Insdel Line. -* delete mode: Insdel Char. -* description format: Format. -* erasing: Clearing. -* generic terminal type: Basic. -* home position: Cursor Motion. -* inheritance: Inheriting. -* initialization: Initialization. -* insert character: Insdel Char. -* insert line: Insdel Line. -* insert mode: Insdel Char. -* line speed: Output Padding. -* magic cookie: Standout. -* meta key: Meta Key. -* names of terminal types: Naming. -* overstrike: Basic. -* padding: Pad Specs. -* padding: Padding. -* parameters: Parameters. -* printer: Printer. -* repeat output: Basic. -* reset: Initialization. -* screen size: Screen Size. -* screen size: Naming. -* screen size: Screen Size. -* scrolling: Scrolling. -* standout: Standout. -* status line: Status Line. -* Superbee: Basic. -* tab stops: Initialization. -* termcap: Introduction. -* terminal flags (kernel): Initialize. -* underlining: Underlining. -* visibility: Cursor Visibility. -* visible bell: Bell. -* window: Windows. -* wrapping: Wrapping. -* wrapping: Naming. - - diff --git a/lib/termcap/grot/termcap.src b/lib/termcap/grot/termcap.src deleted file mode 100644 index e214fcc45..000000000 --- a/lib/termcap/grot/termcap.src +++ /dev/null @@ -1,9888 +0,0 @@ -####### TERMINAL TYPE DESCRIPTIONS SOURCE FILE -# -# Version 9.8.1 -# termcap syntax -# -# Eric S. Raymond (current maintainer) -# John Kunze, Berkeley -# Craig Leres, Berkeley -# -# Please e-mail changes to terminfo@ccil.org. The old termcap@berkeley.edu -# address is no longer valid. -# -# PURPOSE OF THIS FILE: -# -# This file describes the capabilities of various character-cell terminals, -# as needed by software such as screen-oriented editors. -# -# Pointers to related resources (including the ncurses distribution) may -# be found at . -# -# FILE FORMAT: -# -# The version you are looking at may be in any of three formats: master -# (terminfo with OT capabilities), stock terminfo, or termcap. You can tell -# which by the format given in the header above. -# -# The master format is accepted and generated by the terminfo tools in the -# ncurses suite; it differs from stock (System V-compatible) terminfo only -# in that it admits a group of capabilities (prefixed `OT') equivalent to -# various obsolete termcap capabilities. You can, thus, convert from master -# to stock terminfo simply by filtering with `sed "/OT[^,]*,/s///"'; but if -# you have ncurses `tic -I' is nicer. -# -# The termcap version is generated automatically from the master version -# using tic -C. This filtering leaves in the OT capabilities under their -# original termcap names. All translated entries fit within the -# 1023-byte string-table limit of archaic termcap libraries except where -# explicitly noted below. -# -# For details on these formats, see terminfo(5) in the ncurses distribution, -# and termcap(5) in the 4.4BSD Unix Programmer's Manual. Be aware that 4.4BSD -# curses has been declared obsolete by the caretakers of the 4.4BSD sources -# as of June 1995; they are encouraging everyone to migrate to ncurses. -# -# Note: unlike some other distributed terminfo files (Novell Unix & SCO's), -# no entry in this file has embedded comments. This is so source translation -# to termcap only has to carry over leading comments. Also, no name field -# contains embedded whitespace (such whitespace confuses rdist). -# -# Further note: older versions of this file were often installed with an editor -# script (reorder) that moved the most common terminal types to the front of -# the file. This should no longer be necessary, as the file is now ordered -# roughly by type frequency with ANSI/VT100 and other common types up front. -# -# CONTINUITY WITH HISTORICAL VERSIONS: -# -# The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94. -# Releases 9 and up are maintained by Eric Raymond as part of the ncurses -# project. -# -# This file contains all the capability information present in John Kunze's -# last version of the termcap master file, except as noted in the change -# comments at end of file. Some information about very ancient obsolete -# capabilities has been moved to comments. Some all-numeric names of older -# terminals have been retired. -# -# The 9.1.0 version of this file was translated from a syntax-corrected copy of -# 8.3, then mechanically checked against 8.3 using Emacs Lisp code written for -# the purpose. Unless the ncurses tic implementation and the Lisp code were -# making perfectly synchronized mistakes which I then failed to catch by -# eyeball, the translation was correct and perfectly information-preserving. -# -# Some information has been merged in from terminfo files distributed by -# USL and SCO (see COPYRIGHTS AND OTHER DELUSIONS below). Much information -# comes from vendors who maintain official terminfos for their hardware -# (notably DEC and Wyse). -# -# A detailed change history is included at the end of this file. -# -# FILE ORGANIZATION: -# -# Comments in this file begin with # - they cannot appear in the middle -# of a terminfo/termcap entry. Individual capabilities are commented out by -# placing a period between the colon and the capability name. -# -# Starting with version 9.0.0, the file is divided up into major sections -# (headed by lines beginning with "########") and minor sections (beginning -# with "####"); do -# -# grep "^####" | more -# -# to see a listing of section headings. The intent of the divisions is -# (a) to make it easier to find things, and (b) to order the database so -# that important and frequently-encountered terminal types are near the -# front (so that you'll get reasonable search efficiency even if you don't -# use reorder). Minor sections usually correspond to manufacturers or -# standard terminal classes. Parenthesized words following manufacturer -# names are type prefixes or product line names used by that manufacturers. -# -# Finally, because this file is released in both terminfo and termcap formats, -# most references to termcap names in comments are bracketed with colons (the -# termcap separator) so they can be distinguished from terminfo capability -# names. -# -# HOW TO READ THE ENTRIES: -# -# The first name in an entry is the canonical name for the model or -# type, last entry is a verbose description. Others are mnemonic synonyms for -# the terminal. -# -# Terminal names look like - -# The part to the left of the dash, if a dash is present, describes the -# particular hardware of the terminal. The part to the right may be used -# for flags indicating special ROMs, extra memory, particular terminal modes, -# or user preferences. -# -# All names should be in lower case, for consistency in typing. -# -# The following are conventionally used suffixes: -# mono suppress color support -# rv Terminal in reverse video mode (black on white) -# 2p Has two pages of memory. Likewise 4p, 8p, etc. -# w Wide - in 132 column mode. -# pp Has a printer port which is used. -# na No arrow keys - termcap ignores arrow keys which are -# actually there on the terminal, so the user can use -# the arrow keys locally. -# nam No auto-margin - suppress am capability -# mc Magic-cookie. Some terminals (notably older Wyses) can -# only support one attribute without magic-cookie lossage. -# Their base entry is usually paired with another that -# uses magic cookies to support multiple attributes. -# vb Use visible bell (flash) rather than beep. -# -# To easily test a new terminal description, put it in $HOME/.termcap -# and programs will look there before looking in /etc/termcap. -# You can also setenv TERMPATH to a list of full pathnames (separated -# by spaces or colons) to be searched by tgetent() in the order listed. -# The TERMCAP environment variable is usually set to the termcap -# entry itself to avoid reading files when starting up a program. -# -# RELEASE 9 COMMENTS: -# -# To avoid search clashes, some older all-numeric names for terminals have -# been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621). -# All primary names of terminals now have alphanumeric prefixes. -# -# Comments marked "esr" are mostly results of applying the termcap-compiler -# code packaged with ncurses and contemplating the resulting error messages. -# In many cases, these indicated obvious fixes to syntax garbled by the -# composers. In a few cases, I was able to deduce corrected forms for garbled -# capabilities by looking at context. All the information in the original -# entries is preserved in the comments. -# -# I changed :MT: to :km: (the 4.4BSD name) everywhere. I commented out some -# capabilities (EP, dF, dT, dV, kn, ko, ma, ml, mu, xr, xx) that are no longer -# used by BSD curses. -# -# Entries derived from XENIX use a termcap-extension set that showed up in -# several entries, notably those for scoansi, ibmpcx, lisa, trs16, fos, and -# the altos terminals. Its signature is the use of GS/GE as an as/ae pair. -# This set of extensions and their translations are described in the extended -# comment at the end of this file. -# -# There is a second, smaller set of extensions used by AT&T terminals and -# also described in the trailing comment. -# -# Besides these and the terminals mentioned above, only the psterm variants, -# zen50, wsiris and minitel had unknown capabilities that weren't obviously -# garbled. -# -# INTERPRETATION OF USER CAPABILITIES -# -# The System V Release 4 and XPG4 terminfo format defines ten string -# capabilities for use by applications, u0...u9. In this file, we use -# certain of these capabilities to describe functions which are not covered -# by terminfo. The mapping is as follows: -# -# u9 terminal enquire string (equivalent to ANSI DA) -# u8 terminal answerback description -# u7 cursor position request (equivalent to VT100 DSR 6) -# u6 cursor position report (equivalent to ANSI CPR) -# -# The terminal enquire string u9 should elicit an answerback response -# from the terminal. Common values for u9 will be ^E (on older ASCII -# terminals) or \E[c (on newer VT100/ANSI-compatible terminals). -# -# The cursor position request (u7) string should elicit a cursor position -# report. A typical value (for ANSI/VT100 terminals) is \E[6n. -# -# The terminal answerback description (u8) must consist of an expected -# answerback string. The string may contain the following scanf(3)-like -# escapes: -# -# %c Accept any character -# %[...] Accept any number of characters in the given set -# -# The cursor position report (u6) string must contain two scanf(3)-style -# %d format elements. The first of these must correspond to the Y coordinate -# and the second to the %d. The typical CPR value is \E[%d;%dR (on VT100/ -# ANSI-compatible terminals). -# -# These capabilities are used by tac(1m), the terminfo action checker soon -# to be distributed with ncurses. -# -# REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL: -# -# As the ANSI standard and variants take firmer hold, and as character-cell -# terminals are increasingly replaced by X displays, much of this file -# is becoming a historical document (this is part of the reason for the -# new organization, which puts ANSI types, xterm, and vt100 up front in -# confidence that this will catch 95% of new hardware). -# -# For the terminal types still alive, I'd like to have manufacturer's -# contact data (Internet address and/or snail-mail + phone). -# -# I'm also interested in enriching the comments so that the latter portions of -# the file do in fact become a potted history of VDT technology as seen by -# UNIX hackers. Ideally, I'd like the headers for each manufacturer to -# include its live/dead/out-of-the-business status, and for as many -# terminal types as possible to be tagged with information like years -# of heaviest use, popularity, and interesting features. -# -# I'm especially interested in identifying the obscure entries listed under -# `Manufacturer unknown' and `Utter unknowns', before the tribal wisdom -# about them gets lost. -# -# If you have been around long enough to contribute, please read the file -# with this in mind and send me your annotations. -# -# COPYRIGHTS AND OTHER DELUSIONS -# -# The BSD ancestor of this file had a standard Regents of the University of -# California copyright with dates from 1980 to 1993. -# -# Some information has been merged in from a terminfo file SCO distributes. -# It has an obnoxious boilerplate copyright which I'm ignoring because they -# took so much of the content from the ancestral BSD versions of this file -# and didn't attribute it, thereby violating the BSD Regents' copyright. -# -# Not that anyone should care. However many valid functions copyrights may -# serve, putting one on a termcap/terminfo file with hundreds of anonymous -# contributors makes about as much sense as copyrighting a wall-full of -# graffiti -- it's legally dubious, ethically bogus, and patently ridiculous. -# -# This file deliberately has no copyright. It belongs to no one and everyone. -# If you claim you own it, you will merely succeed in looking like a fool. -# Use it as you like. Use it at your own risk. Copy and redistribute freely. -# There are no guarantees anywhere. Svaha! - -######## STANDARD AND SPECIAL TYPES -# -# This section describes terminal classes and maker brands that are still -# quite common. -# - -#### Specials -# -# Special "terminals". These are used to label tty lines when you don't -# know what kind of terminal is on it. The characteristics of an unknown -# terminal are the lowest common denominator - they look about like a ti 700. -# The last one, "other", is like unknown but it allows an escape from software -# that insists that a "real" unknown terminal is merely so far unspecified. -# - -dumb:\ - :am:\ - :co#80:\ - :bl=^G:cr=^M:do=^J:sf=^J: -unknown:\ - :gn:\ - :tc=dumb: -other|none of the above, but not exactly unknown:\ - :am:gn:\ - :co#80:\ - :cl=^M^J:do=^J:ho=^M: - -arpanet|bussiplexer|dialup|ethernet|network|net|patch|plugboard|switch|network switch or dialup:\ - :tc=unknown: -lpr|printer|print|printing|line printer:\ - :hc:os:\ - :co#132:li#66:\ - :bl=^G:cr=^M:do=^J:ff=^L:le=^H:sf=^J: - -#### ANSI terminals and terminal emulators -# -# See near the end of this file for details on ANSI conformance. -# Don't mess with these entries! Lots of other entries depend on them! -# -# This section lists entries in a least-capable to most-capable order. -# if you're in doubt about what `ANSI' matches yours, try them in that -# order and back off from the first that breaks. - -# (ansi: changed ":pt:" to ":it#8:" -- esr) -ansi-mini|any ansi terminal with pessimistic assumptions:\ - :am:bs:\ - :co#80:it#8:li#24:\ - :ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:do=\E[B:\ - :ho=\E[H:le=\E[D:nd=\E[C:up=\E[A: - -# Color controls corresponding to the ANSI.SYS de-facto standard -# (This is not a standalone entry) -ansi-pc-color:\ - :Co#8:NC#3:pa#64:\ - :AB=\E[4%p1%dm:AF=\E[3%p1%dm:\ - :..Sb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m:\ - :..Sf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m:\ - :op=\E[37;40m: - -# Procomm and some other ANSI emulations don't recognize all of the ANSI- -# standard capabilities. This entry deletes cuu, cuf, cud, cub, and vpa/hpa -# capabilities, forcing curses to use repetitions of cuu1, cuf1, cud1 and cub1. -# Also deleted ich and ich1, as QModem up to 5.03 doesn't recognize these. -# Finally, we delete rep and ri, which seem to confuse many emulators. -# On the other hand, we can count on these programs doing rmacs/smacs/sgr. -# From: Eric S. Raymond July 25 1995 -pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode):\ - :am:bs:mi:ms:pt:\ - :co#80:it#8:li#24:\ - :ae=\E[10m:al=\E[L:as=\E[12m:bl=^G:bt=\E[Z:cd=\E[J:\ - :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:\ - :dc=\E[P:dl=\E[M:do=\E[B:ho=\E[H:kb=^H:kd=\E[B:\ - :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:\ - :md=\E[1m:me=\E[0m:mk=\E[9m:mr=\E[7m:nd=\E[C:\ - :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m:\ - :se=\E[m:sf=^J:so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\E[A:\ - :us=\E[4m: -pcansi-mono25|ansi25|ibm-pc terminal programs with 25 lines (mono mode):\ - :li#25:\ - :tc=pcansi-mono: -pcansi-mono33|ansi33|ibm-pc terminal programs with 33 lines (mono mode):\ - :li#33:\ - :tc=pcansi-mono: -pcansi-mono43|ansi43|ibm-pc terminal programs with 43 lines (mono mode):\ - :li#43:\ - :tc=pcansi-mono: -# The color versions. All PC emulators do color... -pcansi|ibm-pc terminal programs claiming to be ansi:\ - :tc=ansi-pc-color:tc=pcansi-mono: -pcansi-25|ansi25|ibm-pc terminal programs with 25 lines:\ - :li#25:\ - :tc=pcansi: -pcansi-33|ansi33|ibm-pc terminal programs with 33 lines:\ - :li#33:\ - :tc=pcansi: -pcansi-43|ansi43|ibm-pc terminal programs with 43 lines:\ - :li#43:\ - :tc=pcansi: - -# From: Eric S. Raymond Feb 3 1995 -# ansi-mono -- full X.364 with ANSI.SYS-compatible attributes, no color. -# Function-key mappings aren't in X3.64 but these are pretty standard. -# If you want pound signs rather than dollars, replace `B' with `A' -# in the s?ds capabilities. -ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes:\ - :5i:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[W:\ - :F2=\E[X:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:\ - :SR=\E[%dT:UP=\E[%dA:cb=\E[1K:ch=\E[%dG:ct=\E[2g:\ - :cv=\E[%dd:ec=\E[%dX:ei=:im=:k1=\E[M:k2=\E[N:k3=\E[O:\ - :k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:\ - :k;=\E[V:kB=\E[Z:kI=\E[L:kb=^H:kd=\E[B:kl=\E[D:\ - :kr=\E[C:ku=\E[A:me=\E[0;10m:nw=\r\E[S:pf=\E[4i:\ - :po=\E[5i:..rp=%p1%c\E[%p2%{1}%-%db:s0=\E(B:s1=\E)B:\ - :s2=\E*B:s3=\E+B:\ - :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m:\ - :ta=\E[I:tc=pcansi: - -# ansi -- this terminfo expresses the largest subset of X3.64 that will fit in -# standard terminfo. Assumes ANSI.SYS-compatible attributes and color -# From: Eric S. Raymond Feb 12 1995 -ansi|ansi/pc-term compatible with color:\ - :u6=\E[%d;%dR:u7=\E[6n:..u8=\E[?%[;0123456789]c:\ - :u9=\E[c:tc=ansi-pc-color:tc=ansi-mono: - -# -# ANSI.SYS entries -# -# Cannot use :pt:, it does not work (why?). :ho: seems required (why?). [gts] -# Caution: 4.3 BSD tset does not pass li#25 to stty rows except during login? -# :cl: clears attributes and sets wrap at margin before clearing the screen. -# (ansi.sys: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) -# From: greg small -ansi.sys|ansisys|PC-DOS 3.1 ANSI.SYS:\ - :am:bs:ms:\ - :co#80:li#25:\ - :ae=\E[10:as=\E[12:ce=\E[K:cl=\E[m\E[7h\E[2J:\ - :cm=\E[%i%d;%dH:ho=\E[H:\ - :is=U1 PC-DOS 3.1 ANSI.SYS 9-23-86\n\E[m\E[7h:kd=^J:\ - :kh=^^:kl=^H:kr=^L:ku=^K:md=\E[1m:me=\E[0;10m:\ - :mr=\E[7m:nd=\E[C:se=\E[m:so=\E[1m:ue=\E[m:up=\E[A:\ - :us=\E[4m: -# -# Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS. -# This should only be used when the terminal emulator cannot redefine the keys. -# Since redefining keys with ansi.sys also affects PC-DOS programs, the key -# definitions must be restored. If the terminal emulator is quit while in vi -# or others using :ks:ke:, the keypad keys will not be defined as per PC-DOS. -# The PgUp and PgDn are prefixed with ESC so that tn3270 can be used on Unix -# (^U and ^D are already defined for tn3270). The ESC is safe for vi but it -# does "beep". ESC ESC i is used for Ins to avoid tn3270 ESC i for coltab. -# Left arrow is always BS, because PC-dos can tolerate this change. -# Caution: vi is limited to 256 string bytes, longer crashes or weirds out vi. -# Consequently the End keypad key could not be set (it is relatively safe and -# actually useful because it sends ^@ O, which beeps and opens a line above). -ansi.sysk|ansisysk|PC-DOS 3.1 ANSI.SYS with keypad redefined for vi:\ - :is=U2 PC-DOS 3.1 ANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p:\ - :ke=\E[;71;0;71p\E[;72;0;72p\E[;73;0;73p\E[;77;0;77p\E[;80;0;80p\E[;81;0;81p\E[;82;0;82p\E[;83;0;83p:\ - :ks=\E[;71;30p\E[;72;11p\E[;73;27;21p\E[;77;12p\E[;80;10p\E[;81;27;4p\E[;82;27;27;105p\E[;83;127p:tc=ansi.sys: -# -# Adds ins/del line/character, hence vi reverse scrolls/inserts/deletes nicer. -nansi.sys|nansisys|PC-DOS Public Domain NANSI.SYS:\ - :al=\E[1L:dc=\E[1P:dl=\E[1M:ei=:ic=\E[1@:im=:\ - :is=U3 PC-DOS Public Domain NANSI.SYS 9-23-86\n:tc=ansi.sys: -# -# See ansi.sysk and nansi.sys above. -nansi.sysk|nansisysk|PC-DOS Public Domain NANSI.SYS with keypad redefined for vi:\ - :al=\E[1L:dc=\E[1P:dl=\E[1M:ei=:ic=\E[1@:im=:\ - :is=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p:tc=ansi.sysk: - -#### ANSI console types -# - -# This entry is good for the 1.1.47 version of the Linux console driver. -# -# It assumes that you want A_PROTECT mapped to the alternate character set -# mode that permits IBM ROM characters to be displayed (this is the assumption -# used by ncurses version 1.9 and after, in order not to collide with the -# internationalization attribute values specified in the XSI Curses standard). -# -# We use \E11m for rmacs rather than \E12m so the acsc string can use the ROM -# graphics for control characters such as the diamond, up arrow and down-arrow. -# This trick could work with other Intel consoles like the att6386 and pc3. -# -# Note: there are numerous broken linux entries out there, which didn't screw -# up BSD termcap but hose ncurses's smarter cursor-movement optimization. -# One common pathology is an incorrect tab length of 4. Also note that the -# hpa=\E[%dG/vpa=\E[%dd capabilities seem not to be reliable. To reproduce -# the bug, re-introduce them and run worm -T 200 212 from the ncurses -# test suite, save the trace, then worm -N -T 200 212. Observe that the first -# run fails to properly delete some worm segments, then diff the trace files. -# -# From: Eric S. Raymond 23 July 1995 -linux|linux console:\ - :am:bs:eo:mi:ms:ut:xn:xo:\ - :Co#8:co#80:it#8:li#25:pa#64:\ - :&7=^Z:@7=\E[4~:AB=\E[4%p1%dm:AF=\E[3%p1%dm:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:F1=\E[23~:F2=\E[24~:\ - :F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:\ - :F8=\E[32~:F9=\E[33~:FA=\E[34~:IC=\E[%d@:K2=\E[G:\ - :S2=\E[11m:S3=\E[10m:Sb=\E[%+(m:Sf=\E[%+^^m:\ - :ac=`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~q\304r\362s_t\303u\264v\301w\302x\263y\371z\372{\373|\374}\375~\376.\031-\030\054\021+^P0\333:\ - :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ - :ic=\E[@:im=\E[4h:k1=\E[[A:k2=\E[[B:k3=\E[[C:\ - :k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ - :k9=\E[20~:k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\ - :kP=\E[5~:kb=^H:kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:\ - :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0;10m:\ - :mr=\E[7m:nd=\E[C:nw=^M^J:op=\E[37;40m:r1=\Ec:rc=\E8:\ - :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;11%;m:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ - :u6=\E[%d;%dR:u7=\E[6n:u8=\E[?6c:u9=\E[c:ue=\E[24m:\ - :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:\ - :vi=\E[?25l: -linux-mono|Linux console, no color:\ - :Co@:pa@:\ - :AB@:Sb@:Sf@:tc=linux: - -# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file -linux-nic|linux with ich/ich1 suppressed for non-curses programs:\ - :IC@:ei=:ic@:im=:tc=linux: - -# SCO console and SOS-Syscons console for 386bsd -# (scoansi: had unknown capabilities -# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\ -# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:RT=^J: -# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\ -# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\ -# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\ -# I renamed GS/GE/HM/EN/PU/PD and mapped ":pt:" to ":it#8:" -- esr) -scoansi|SCO Extended ANSI standard crt:\ - :am:bs:eo:pt:\ - :co#80:it#8:li#25:\ - :@7=\E[F:ae=\E[10m:al=\E[L:as=\E[12m:bt=\E[Z:cd=\E[J:\ - :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:\ - :do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[M:k2=\E[N:\ - :k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:\ - :k9=\E[U:k;=\E[V:kN=\E[G:kP=\E[I:kb=^H:kd=\E[B:\ - :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:mb=\E[5m:md=\E[1m:\ - :me=\E[m:nd=\E[C:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:\ - :ue=\E[m:up=\E[A:us=\E[4m: - -# From: Eric Raymond Wed Jan 18 17:14:34 EST 1995 -att6386|AT386|at386|386AT|386at|AT&T WGS 6386 console:\ - :am:bw:eo:xo:\ - :co#80:it#8:li#25:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\EOZ:\ - :F2=\EOA:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:\ - :SR=\E[%dT:UP=\E[%dA:\ - :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\ - :ae=\E[10m:al=\E[1L:as=\E[12m:bl=^G:bt=\E[Z:cd=\E[J:\ - :ce=\E[K:ch=\E[%i%dG:cl=\E[2J\E[H:cm=\E[%i%d;%dH:\ - :cr=^M:ct=\E[2g:cv=\E[%dd:dc=\E[P:dl=\E[1M:do=\E[B:\ - :ec=\E[%dX:ei=:ho=\E[H:ic=\E[1@:im=:is=\E[0;10;39m:\ - :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:\ - :k7=\EOV:k8=\EOW:k9=\EOX:k;=\EOY:kD=\E[P:kI=\E[@:\ - :kM=\E0:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:\ - :me=\E[0;10m:mk=\E[9m:mr=\E[7m:nd=\E[C:nw=\r\E[S:\ - :..sa=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m:\ - :se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:st=\EH:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m:vb=^G:tc=ansi-pc-color: -# (pc6300plus: ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr) -pc6300plus|6300plus:\ - :am:bs:\ - :co#80:li#24:\ - :al=\E[1L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[H:\ - :cm=\E[%i%2;%2H:cr=^M:ct=\E[3g:dc=\E[1P:dl=\E[1M:\ - :do=\E[B:ei=:ho=\E[H:ic=\E[1@:im=:k1=\EOc:k2=\EOd:\ - :k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:\ - :k9=\EOk:k;=\EOu:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:\ - :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mh=\E[2m:\ - :mk=\E[9m:mr=\E[7m:nd=\E[C:nw=^M^J:se=\E[m:sf=^J:\ - :so=\E[7m:st=\EH:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[=1C:\ - :vi=\E[=C: - -# -# Terminfo entry for the AT&T Unix PC 7300 -# from escape(7) in Unix PC 7300 Manual. -# Somewhat similar to a vt100-am (but different enough -# to redo this from scratch.) -# -# /*************************************************************** -# * -# * FONT LOADING PROGRAM FOR THE UNIX PC -# * -# * This routine loads a font defined in the file ALTFONT -# * into font memory slot #1. Once the font has been loaded, -# * it can be used as an alternative character set. -# * -# * The call to ioctl with the argument WIOCLFONT is the key -# * to this routine. For more information, see window(7) in -# * the PC 7300 documentation. -# ***************************************************************/ -# #include /* needed for strcpy call */ -# #include /* needed for ioctl call */ -# #define FNSIZE 60 /* font name size */ -# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */ -# /* -# * The file /usr/lib/wfont/special.8.ft comes with the -# * standard PC software. It defines a graphics character set -# * similar to that of the Teletype 5425 terminal. To view -# * this or other fonts in /usr/lib/wfont, use the command -# * cfont . For further information on fonts see -# * cfont(1) in the PC 7300 documentation. -# */ -# -# struct altfdata /* structure for alt font data */ -# { -# short altf_slot; /* memory slot number */ -# char altf_name[FNSIZE]; /* font name (file name) */ -# }; -# ldfont() -# { -# int wd; /* window in which altfont will be */ -# struct altfdata altf; -# altf.altf_slot=1; -# strcpy(altf.altf_name,ALTFONT); -# for (wd =1; wd < 12; wd++) { -# ioctl(wd, WIOCLFONT,&altf); -# } -# } -# -att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300:\ - :am:xn:xo:\ - :co#80:it#8:li#24:\ - :!1=\ESV:!3=\EUD:#1=\EHL:#2=\EHM:#3=\ENJ:#4=\EBW:\ - :%0=\Ero:%1=\Ehl:%2=\Emk:%4=\Emv:%5=\Enx:%6=\Eop:\ - :%7=\Eot:%8=\Epv:%9=\Epr:%b=\EMV:%c=\ENX:%d=\EOT:\ - :%e=\EPV:%g=\ERO:%h=\ERP:%i=\EFW:&0=\ECN:&1=\Ere:\ - :&2=\Erf:&3=\Erp:&4=\Ers:&6=\Esv:&8=\Eud:&9=\EBG:\ - :*0=\EFI:*2=\ECP:*3=\ECR:*4=\EDC:*5=\EDL:*6=\Esl:\ - :*7=\EEN:*8=\ECI:@0=\Efi:@1=\Ebg:@2=\Ecn:@3=\Ecl:\ - :@4=\Ecm:@5=\Ecp:@6=\Ecr:@7=\Een:@9=\Eex:AL=\E[%dL:\ - :DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:bt=\E^I:cd=\E[0J:\ - :ce=\E[0K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:dl=\E[M:\ - :do=\E[B:ho=\E[H:i1=^O:k1=\EOP:k2=\EOQ:k3=\EOR:\ - :k4=\EOS:k5=\E5:k6=\E6:k7=\E7:k8=\E8:kB=\E^I:kC=\Ece:\ - :kD=\Edc:kE=\Eci:kF=\Erd:kI=\Eim:kN=\Epg:kP=\EPG:\ - :kR=\Eru:kS=\Ece:kb=^H:kd=\E[B:kh=\Ehm:kl=\E[D:\ - :kr=\E[C:ku=\E[A:md=\E[7m:me=\E[0;10m:mh=\E[2m:\ - :mr=\E[7m:nd=\E[C:nw=\EE:se=\E[0m:sf=^J:so=\E[7m:\ - :sr=\EM:ue=\E[0m:up=\E[A:us=\E[4m: - -# From: -iris-ansi|iris-ansi-net|IRIS emulating ANSI terminal:\ - :am:\ - :co#80:it#8:li#40:\ - :!2=\E[218q:#2=\E[143q:#4=\E[158q:%9=\E[209q:\ - :%f=\E[210q:%i=\E[167q:&7=\E[217q:*4=\E[P:*7=\E[147q:\ - :@7=\E[146q:@8=^M:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:\ - :F1=\EOR:F2=\EOS:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :al=\E[L:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dl=\E[M:do=^J:ho=\E[H:\ - :is=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8:k1=\E[001q:\ - :k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\ - :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\EOP:k;=\EOQ:\ - :kB=\E[Z:kD=\177:kI=\E[139q:kM=\E[146q:kN=\E[154q:\ - :kP=\E[150q:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\ - :ku=\E[A:le=\E[D:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ - :nw=\EE:pk=\EP101;%d.y%s\E\\:rc=\E8:sc=\E7:se=\E[m:\ - :sf=\ED:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\ - :up=\E[A:us=\E[4m:ve=\E[9/y\E[12/y\E[=6l:\ - :vs=\E[10/y\E[=1h\E[=2l\E[=6h: - -# From: Alex R.N. Wetmore -oldpc3|oibmpc3|IBM PC 386BSD Console:\ - :am:bs:bw:eo:\ - :co#80:li#25:\ - :ac=l\332q\304k\277x\263j\331m\300w\302u\264v\301t\303n\305:\ - :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:\ - :ho=\E[;H:kd=\E[B:kh=\E[Y:kl=\E[D:kr=\E[C:ku=\E[A:\ - :md=\E[7m:me=\E[0m\E[1;0x\E[2;7x:nd=\E[C:\ - :se=\E[1;0x\E[2;7x:sf=\E[S:so=\E[1;7x\E[2;0x:sr=\E[T:\ - :ue=\E[1;0x\E[2;7x:up=\E[A:us=\E[1;7x\E[2;0x: - -# BSD/OS console emulator -# The emulator supports many of the additional console features -# listed in the iBSC2 (e.g. color and character-set selection). -# The console will also work with fewer lines after doing -# "stty rows NN", e.g. to use 24 lines. -# (This is the entry BSDI ships) -pc3|ibmpc3|IBM PC BSD/OS Console:\ - :am:bw:eo:km:\ - :co#80:it#8:li#25:\ - :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ - :UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\Ec:\ - :cm=\E[%i%d;%dH:cr=^M:dl=\E[M:do=^J:ho=\E[H:kH=\E[F:\ - :kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\ - :me=\E[0m:mh=\E[=8F:mr=\E[7m:nd=\E[C:nw=^M^J:\ - :rc=\E[=u:sc=\E[=s:se=\E[0m:sf=^J:so=\E[7m:ta=^I:\ - :up=\E[A: -pc3-bold|ibmpc3|IBM PC BSD/OS Console with bold instead of underline:\ - :ue=\E[0m:us=\E[1m:tc=pc3: - -# The following is a version of the ibm-pc entry distributed with PC/IX, -# (Interactive Systems' System 3 for the Big Blue), modified by Richard -# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original, -# (the former is untrue, and the latter failed under UCB/man); standout and -# underline modes have been added. Note: this entry describes the "native" -# capabilities of the PC monochrome display, without ANY emulation; most -# communications packages (but NOT PC/IX connect) do some kind of emulation. -pcix|PC/IX console:\ - :am:bs:bw:eo:\ - :co#80:li#24:\ - :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:\ - :ho=\E[;H:nd=\E[C:se=\E[0m:so=\E[7m:ue=\E[0m:up=\E[A:\ - :us=\E[4m: - -# (ibmx: this entry formerly included the following unknown capabilities: -# :GC=b:GL=v:GR=t:RT=^J:\ -# :GH=\E[196g:GV=\E[179g:\ -# :GU=\E[193g:GD=\E[194g:\ -# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\ -# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\ -# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\ -# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate -# ":kh=\E[Y:" -- esr) -ibmpcx|xenix|ibmx|IBM PC xenix console display:\ - :am:bs:ms:\ - :co#80:li#25:\ - :@7=\E[d:MR=\E[0m:ae=\E[10m:al=\E[L:as=\E[11m:\ - :cd=\E[J:ce=\E[K:cl=^L:cm=\E[%d;%dH:dc=\E[P:dl=\E[M:\ - :do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[K:k2=\E[L:\ - :k3=\E[M:k4=\E[N:kN=\E[e:kP=\E[Z:kb=^H:kd=\E[B:\ - :kh=\E[Y:kl=\E[D:kr=\E[C:ku=\E[A:nd=\E[C:se=\E[0m:\ - :so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m: -ibmc|ibmcpc|IBM PC xenix color console display:\ - :tc=ibmpcx: -ibmcx|ibmcpcx:\ - :tc=ibmpcx: - -pcvt25h|386BSD pcvt rel 2.10 vt220 emulator video driver:\ - :am:km:mi:ms:xn:\ - :it#8:pb#9216:vt#3:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ - :LE=\E[%dD:RI=\E[%dC:SF=\E%dD:SR=\E%dM:UP=\E[%dA:\ - :ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ - :i1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;25r\E[25;1H:\ - :ic=\E[@:im=\E[4h:k1=\E[17~:k2=\E[18~:k3=\E[19~:\ - :k4=\E[20~:k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:\ - :kD=\E[3~:kH=\E[4~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^_:\ - :kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:\ - :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\ - :me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:\ - :r1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ - :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[27m:sf=\ED:\ - :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:\ - :us=\E[4m: - -#### DEC VT100 and compatibles -# -# DEC terminals from the vt100 forward are collected here. Older DEC terminals -# and micro consoles can be found in the `obsolete' section. More details -# on the relationship between the VT100 and ANSI X3.64 may be found near the -# end of this file. -# -# Except where noted, these entries are DEC's official terminfos. -# Contact Bill Hedberg of Terminal Support -# Engineering for more information. Updated terminfos and termcaps -# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps. -# - -# Note that the xenl glitch in vt100 is not quite the same as on the Concept, -# since the cursor is left in a different position while in the -# weird state (concept at beginning of next line, vt100 at end -# of this line) so all versions of vi before 3.7 don't handle -# xenl right on vt100. The correct way to handle xenl is when -# you output the char in column 80, immediately output CR LF -# and then assume you are in column 1 of the next line. If xenl -# is on, am should be on too. -# -# I assume you have smooth scroll off or are at a slow enough baud -# rate that it doesn't matter (1200? or less). Also this assumes -# that you set auto-nl to "on", if you set it off use vt100-nam -# below. -# -# The padding requirements listed here are guesses. It is strongly -# recommended that xon/xoff be enabled, as this is assumed here. -# -# The vt100 uses rs2 and rf rather than is2/tbc/hts because the -# tab settings are in non-volatile memory and don't need to be -# reset upon login. Also setting the number of columns glitches -# the screen annoyingly. You can type "reset" to get them set. -# -# This is how the keypad gets assigned in Application Keypad mode. -# PF1 = kf1 PF2 = kf2 PF3 = kf3 PF4 = kf4 -# 7 = kf9 8 = kf10 9 = kf0 - -# 4 = kf5 5 = kf6 6 = kf7 , = kf8 -# 1 = ka1 2 = kb2 3 = ka3 -# 0 = kc1 . = kc3 ENTER = kent -# -vt100|vt100-am|dec vt100 (w/advanced video):\ - :am:mi:ms:xn:xo:\ - :co#80:it#8:li#24:vt#3:\ - :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:\ - :K5=\EOn:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3g:do=^J:eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:\ - :k8=\EOl:k9=\EOw:k;=\EOx:kb=^H:kd=\EOB:ke=\E[?1l\E>:\ - :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ - :md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ - :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m: - -vt100nam|vt100-nam|vt100 w/no am (w/advanced video):\ - :am@:xn@:\ - :tc=vt100-am: - -# Ordinary vt100 in 132 column ("wide") mode. -vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video):\ - :co#132:li#24:\ - :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-am: -vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video):\ - :co#132:li#14:vt@:\ - :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-nam: - -# vt100 with no advanced video. -vt100-nav|vt100 without advanced video option:\ - :sg#1:\ - :mb@:md@:me@:mr@:sa@:se=\E[m:so=\E[7m:ue@:us@:tc=vt100: -vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option):\ - :co#132:li#14:\ - :tc=vt100-nav: - -# vt100 with one of the 24 lines used as a status line. -# We put the status line on the top. -vt100-s|vt100-s-top|vt100-top-s|vt100 for use with sysline:\ - :es:hs:\ - :li#23:\ - :cl=\E[2;1H\E[J:cm=\E[%i%+^A;%dH:cs=\E[%i%i%d;%dr:\ - :ds=\E7\E[1;24r\E8:fs=\E8:ho=\E[2;1H:\ - :is=\E7\E[2;24r\E8:ts=\E7\E[1;%p1%dH\E[1K:tc=vt100-am: - -# Status line at bottom. -# Clearing the screen will clobber status line. -vt100-s-bot|vt100-bot-s|vt100 for use with sysline:\ - :es:hs:\ - :li#23:\ - :ds=\E7\E[1;24r\E8:fs=\E8:is=\E[1;23r\E[23;1H:\ - :ts=\E7\E[24;%p1%dH\E[1K:tc=vt100-am: - -# DEC VT100 with Advanced Video Option -- NOT DEC'S ENTRY!!! -# This may be used as an alternate vt102 entry; it's probably better than the -# stock one if you can live with XON/XOFF. All the AVO gave you was smul/rmul. -# From: Doug Gwyn 25 Jan 93 -# The following SET-UP modes are assumed for normal operation: -# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS -# WRAP_AROUND_ON -# Other SET-UP modes may be set for operator convenience or communication -# requirements; I recommend -# SMOOTH_SCROLL AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF -# SHIFTED_3_# -# Unless you have a graphics add-on such as Digital Engineering's VT640 -# (and even then, whenever it can be arranged!) you should set -# INTERLACE_OFF -# Hardware tabs are assumed to be set every 8 columns; they can be set up -# by the "reset", "tset", or "tabs" utilities (use vt100-x, 132 columns, for -# this). I have included some compatible code in "rs" for the VT640 if you -# have one. No delays are specified; use "stty ixon -ixany" to enable DC3/DC1 -# flow control! -# Thanks to elsie!ado (Arthur David Olson) for numerous improvements. -vt100-avo|DEC VT100 with AVO:\ - :ms:xo:\ - :co#80:it#8:li#24:vt#3:\ - :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:as=^N:\ - :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:ho=\E[H:\ - :is=\E<\E)0:k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:kb=^H:\ - :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ - :ku=\EOA:l0=PF1:l1=PF2:l2=PF3:l3=PF4:le=^H:ll=\E[24H:\ - :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:\ - :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:\ - :ta=^I:te=150\E[?7h:ti=\E[?7l:ue=\E[m:up=\EM:\ - :us=\E[4m: - -# Most of the `vt100' emulators out there actually emulate a vt102 -# This entry (or vt102-nsgr) is probably the right thing to use for -# these. -vt102|dec vt102:\ - :mi:\ - :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:tc=vt100: - -# Many brain-dead PC comm programs that pretend to be `vt100-compatible' -# fail to interpret the ^O and ^N escapes properly. Symptom: the sgr0 -# string in the canonical vt100 entry above leaves the screen littered -# with little snowflake or star characters (IBM PC ROM character \017 = ^O) -# after highlight turnoffs. This entry should fix that, and even leave -# ACS support working, at the cost of making multiple-highlight changes -# slightly more expensive. -# From: Eric S. Raymond July 22 1995 -vt102-nsgr|dec vt102 with ACS support disabled:\ - :me=\E[m:sa@:tc=vt102: - -# VT125 Graphics CRT. Clear screen also erases graphics -vt125|vt125 graphics terminal:\ - :cl=\E[;H\E[2J\EPpS(E)\E\\:tc=vt100: - -# vt132 - like vt100 but slower and has ins/del line and such. -# I'm told that smir/rmir are backwards in the terminal from the -# manual and from the ANSI standard, this describes the actual -# terminal. I've never actually used a vt132 myself, so this -# is untested. -# -vt132|DEC vt132:\ - :xn:\ - :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4h:im=\E[4l:ip=:sf=\n:tc=vt100: - -# vt220: -# This vt220 description maps F5--F9 to the second block of function keys -# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict -# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping. -# PF1--PF4 are used as F1--F4. -# -vt220|DEC VT220 in vt100 emulation mode:\ - :am:mi:xn:xo:\ - :co#80:li#24:vt#3:\ - :@7=\E[4~:ac=kkllmmjjnnwwqquuttvvxx:ae=\E(B:al=\E[L:\ - :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:\ - :do=\E[B:ei=\E[4l:ho=\E[H:if=/usr/lib/tabset/vt100:\ - :im=\E[4h:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:\ - :k3=\EOR:k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:\ - :k8=\E[20~:k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:\ - :kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[1~:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ - :mr=\E[7m:nd=\E[C:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ - :rf=/usr/lib/tabset/vt100:\ - :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;:\ - :sc=\E7:se=\E[m:sf=20\ED:so=\E[7m:sr=14\EM:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: -# -# vt220d: -# This vt220 description regards F6--F10 as the second block of function keys -# at the top of the keyboard. This mapping follows the description given -# in the VT220 Programmer Reference Manual and agrees with the labeling -# on some terminals that emulate the vt220. There is no support for an F5. -# See vt220 for an alternate mapping. -# -vt220d|DEC VT220 in vt100 mode with DEC function key labeling:\ - :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ - :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\ - :k5@:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ - :k;=\E[21~:tc=vt220: - -vt220nam|vt220-nam|v220n|VT220 in vt100 mode with no auto margins:\ - :am@:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220: - -vt220-8|dec vt220 8 bit terminal:\ - :5i:am:mi:ms:xn:xo:\ - :co#80:it#8:li#24:\ - :%0=\E[29~:%1=\E[28~:*6=\E[4~:@0=\E[1~:AL=\E[%dL:\ - :DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:F2=\E[24~:\ - :F3=\E[25~:F4=\E[26~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\ - :FA=\E[34~:IC=\E[%d@:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:\ - :SA=\E[?7h:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E)0:ec=\E[%dX:\ - :ei=\E[4l:ho=\E[H:if=/usr/lib/tabset/vt100:im=\E[4h:\ - :is=\E[?7h\E[>\E[?1h\E F\E[?4l:k1=\EOP:k2=\EOQ:\ - :k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ - :k9=\E[20~:k;=\E[21~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ - :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ - :l1=pf1:l2=pf2:l3=pf3:l4=pf4:le=^H:mb=\E[5m:md=\E[1m:\ - :me=\E[0m:mr=\E[7m:nd=\E[C:nw=\EE:pf=\E[4i:po=\E[5i:\ - :ps=\E[i:r1=\E[?3l:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:\ - :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:\ - :us=\E[4m:vb=\E[?5h\E[?5l: - -vt320|DEC VT320 in vt100 emulation mode:\ - :tc=vt220: -# -# Use v320n for LYRIX -# -vt320nam|vt320-nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode:\ - :am@:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220: - -vt420|DEC VT420:\ - :am:mi:xn:xo:\ - :co#80:li#24:vt#3:\ - :*6=\E[4~:@0=\E[1~:\ - :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ - :cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ - :i2=\E[?67h\E[64;1"p:if=/usr/lib/tabset/vt100:\ - :im=\E[4h:is=\E[1;24r\E[24;1H:k0=\E[29~:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[17~:k6=\E[18~:\ - :k7=\E[19~:k8=\E[20~:k9=\E[21~:k;=\E[29~:kD=\E[3~:\ - :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:\ - :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:\ - :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ - :r3=\E[?67h\E[64;1"p:rc=\E8:rf=/usr/lib/tabset/vt100:\ - :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;:\ - :se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\ - :up=\E[A:us=\E[4m: - -vt420nam|vt420-nam|v420n|DEC VT420 in vt100 emul. mode with NO AUTO WRAP mode:\ - :am@:\ - :tc=vt420: - -# -# DECUDK -# if (key < 16) then value = key; -# else if (key < 21) then value = key + 1; -# else if (key < 25) then value = key + 2; -# else if (key < 27) then value = key + 3; -# else if (key < 30) then value = key + 4; -# else value = key + 5; -# -vt420pc|DEC VT420 w/PC keyboard:\ - :@7=\E[4~:F1=\E[23~:F2=\E[24~:F3=\E[11;2~:\ - :F4=\E[12;2~:F5=\E[13;2~:F6=\E[14;2~:F7=\E[15;2~:\ - :F8=\E[17;2~:F9=\E[18;2~:FA=\E[19;2~:FB=\E[20;2~:\ - :FC=\E[21;2~:FD=\E[23;2~:FE=\E[24;2~:FF=\E[23~:\ - :FG=\E[24~:FH=\E[25~:FI=\E[26~:FJ=\E[28~:FK=\E[29~:\ - :FL=\E[31~:FM=\E[32~:FN=\E[33~:FO=\E[34~:FP=\E[35~:\ - :FQ=\E[36~:FR=\E[23;2~:FS=\E[24;2~:FT=\E[25;2~:\ - :FU=\E[26;2~:FV=\E[28;2~:FW=\E[29;2~:FX=\E[31;2~:\ - :FY=\E[32;2~:FZ=\E[33;2~:Fa=\E[34;2~:Fb=\E[35;2~:\ - :Fc=\E[36;2~:S6=USR_TERM\072vt420pcdos\072:k1=\E[11~:\ - :k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:\ - :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=^_:\ - :kh=\E[H:\ - :..px=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\:tc=vt420: - -vt420pcdos|DEC VT420 w/PC for DOS Merge:\ - :li#25:\ - :S1=%?%p2%{19}%=%t\E\023\021%e%p2%{32}%<%t\E%p2%c%e%p2%{127}%=%t\E\177%e%p2%c%;:\ - :S4=\E[?1;2r\E[34h:\ - :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:S6@:\ - :me=\E[0m:sa@:tc=vt420pc: - -vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys:\ - :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ - :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\ - :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ - :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\ - :kD=^_:kh=\E[H:l1=\EOP:l2=\EOQ:l3=\EOR:l4=\EOS:tc=vt420: - -vt420f-nam|v420fn|DEC VT420 no auto margins:\ - :am@:\ - :tc=vt420f: -vt420pc-nam|v420pcn|DEC VT420 PC keyboard no auto margins:\ - :am@:\ - :tc=vt420pc: - -vt510|DEC VT510:\ - :tc=vt420: -vt510nam|vt510-nam|v510n|DEC VT510 in vt100 emul. mode with NO AUTO WRAP mode:\ - :tc=vt420nam: -vt510pc|DEC VT510 w/PC keyboard:\ - :tc=vt420pc: -vt510pc-nam|v510pcn|DEC VT510 PC keyboard no auto margins:\ - :am@:\ - :tc=vt420pc: -vt510pcdos|DEC VT510 w/PC for DOS Merge:\ - :tc=vt420pcdos: - -# VT520/VT525 -# -# The VT520 is a monochrome text terminal capable of managing up to -# four independent sessions in the terminal. It has multiple ANSI -# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console) -# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950, -# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only. -# -# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or -# [Alt]/[Print Screen] depending upon which keyboard and which -# terminal mode is being used. If Set-Up has been disabled or -# assigned to an unknown key, Set-Up may be entered by pressing -# [F3] as the first key after power up, regardless of keyboard type. -vt520|DEC VT520:\ - :am:mi:xn:xo:\ - :co#80:li#24:vt#3:\ - :*6=\E[4~:@0=\E[1~:\ - :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ - :cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ - :i2=\E[?67h\E[64;1"p:if=/usr/lib/tabset/vt100:\ - :im=\E[4h:is=\E[1;24r\E[24;1H:k0=\E[29~:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[17~:k6=\E[18~:\ - :k7=\E[19~:k8=\E[20~:k9=\E[21~:k;=\E[29~:kD=\E[3~:\ - :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ - :mr=\E[7m:nd=\E[C:\ - :..px=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\:\ - :r3=\E[?67h\E[64;1"p:rc=\E8:rf=/usr/lib/tabset/vt100:\ - :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;:\ - :se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\ - :up=\E[A:us=\E[4m: - -vt520nam|vt520-nam|v520n|DEC VT520 with NO AUTO WRAP:\ - :am@:\ - :tc=vt520: - -vt525|DEC VT525:\ - :am:mi:xn:xo:\ - :co#80:li#24:vt#3:\ - :*6=\E[4~:@0=\E[1~:\ - :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ - :cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ - :i2=\E[?67h\E[64;1"p:if=/usr/lib/tabset/vt100:\ - :im=\E[4h:is=\E[1;24r\E[24;1H:k0=\E[29~:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[17~:k6=\E[18~:\ - :k7=\E[19~:k8=\E[20~:k9=\E[21~:k;=\E[29~:kD=\E[3~:\ - :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ - :mr=\E[7m:nd=\E[C:\ - :..px=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\:\ - :r3=\E[?67h\E[64;1"p:rc=\E8:rf=/usr/lib/tabset/vt100:\ - :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;:\ - :se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\ - :up=\E[A:us=\E[4m: - -vt525nam|vt525-nam|v525n|DEC VT525 with NO AUTO WRAP:\ - :am@:\ - :tc=vt525: - -#### Xterm variants -# - -# X10/6.6 11/7/86, minus alternate screen, plus (csr) -# (xterm: ":MT:" changed to ":km:"; mapped ":pt:" to ":it#8:"; -# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E) -# as these seem not to work -- esr) -x10term|vs100-x10|xterm terminal emulator (X10 window system):\ - :am:bs:km:mi:ms:pt:xn:xo:\ - :co#80:it#8:li#65:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:al=\E[L:cd=\E[J:\ - :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:\ - :dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:im=\E[4h:\ - :is=\E\E[m\E[?7h\E[?1;4l:k1=\EOP:k2=\EOQ:k3=\EOR:\ - :k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\ - :ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:me=\E[m:\ - :mr=\E[7m:nd=\E[C:\ - :rs=\E[r\E<\E[m\E[H\E[2J\E[?7h\E[?1;3;4;6l:se=\E[m:\ - :sf=^J:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m: -# X11R6 xterm. This is known good for the XFree86 version under Linux. -# From: Eric S. Raymond 9 Jul 1995 -# Note: If you use the line-drawing character set, the disable afterwards -# will leave you in US-ASCII. If you live somewhere that wants a pound sign -# at 2/3, change rmacs to "\E(A". Further note: cuf and cub don't seem -# to be reliable under my xterm, so they're commented out. Final note: -# Older versions of this entry set/reset application keypad mode (\EO-prefix -# cursor keys) in the [sr]mkx caps, but it wasn't necessary, and doesn't -# actually fit the terminfo model properly. -xterm|vs100|xterm terminal emulator (X11R6 Window System):\ - :am:bs:km:mi:ms:pt:xn:xo:\ - :co#80:it#8:li#65:\ - :@7=\E[[:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:F1=\E[23~:\ - :F2=\E[24~:IC=\E[%d@:LE=\E[%dD:UP=\E[%dA:\ - :ac=++\054\054..00II--``aaffgghhjjkkllmmnnooqqssttuuvvwwxx~~:\ - :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3k:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ - :ic=\E[@:im=\E[4h:\ - :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\ - :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ - :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\ - :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[@:\ - :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md=\E[1m:me=\E[m:\ - :mr=\E[7m:nd=\E[C:\ - :r2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<:\ - :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ - :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:u6=\E[%d;%dR:\ - :u7=\E[6n:u8=\E[?1;2c:u9=\E[c:ue=\E[m:up=\E[A:\ - :us=\E[4m: -xterm24|vs100-24|xterm terminal emulator (24 lines) (X11R6 window system):\ - :co#80:li#24:\ - :tc=xterm: -xterm25|vs100-25|xterm terminal emulator (25 lines) (X11R6 window system):\ - :co#80:li#25:\ - :tc=xterm: -xterm50|vs100-50|xterm terminal emulator (50 lines) (X11R6 window system):\ - :co#80:li#50:\ - :tc=xterm: -xterms|vs100s|xterm terminal emulator (small) (X11R6 window system):\ - :tc=xterm24: -# (kterm: this had unknown capabilities ":KJ:TY=ascii:" -- esr) -kterm|kterm kanji terminal emulator (X window system):\ - :es:hs:\ - :cs=\E[%i%d;%dr:ds=\E[?H:fs=\E[?F:rc=\E8:sc=\E7:\ - :ts=\E[?E\E[?%i%dT:tc=xterm: - -# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file -xterm-nic|xterm with ich/ich1 suppressed for non-curses programs:\ - :IC@:ei=:ic@:im=:tc=xterm: - -# From: Eric S. Raymond May 4 1995 -# Should work with the color xterm on the X11R6 contrib tape. -xterm-color|xterm with color support:\ - :tc=xterm:tc=ansi-pc-color: - -# From: David J. MacKenzie 20 Apr 1995 -# Here's a termcap entry I've been using for xterm_color, which comes -# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the -# color stuff, I also have a status line defined as the window manager -# title bar. [I have translated it to terminfo -- ESR] -xterm-pcolor|xterm with color used for highlights and status line:\ - :hs:\ - :ws#40:\ - :ds=\E]0;\007:fs=^G:md=\E[1m\E[43m:mr=\E[7m\E[34m:\ - :so=\E[7m\E[31m:ts=\E]0;:us=\E[4m\E[42m:tc=xterm: - -######## UNIX VIRTUAL TERMINALS AND VIRTUAL CONSOLES -# - -# Columbus UNIX virtual terminal. This terminal also appears in -# UNIX 4.0 and successors as line discipline 1 (?), but is -# undocumented and does not really work quite right. -cbunix|cb unix virtual terminal:\ - :am:bs:da:db:\ - :co#80:li#24:lm#0:\ - :al=\EP:bl=^G:cd=\EL:ce=\EK:cl=\EL:cm=\EG%r%.%.:\ - :cr=^M:dc=\EM:dl=\EN:do=^J:ei=:ic=\EO:im=:kd=\EB:\ - :kh=\EE:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:se=\Eb^D:\ - :sf=^J:so=\Ea^D:ue=\Eb^A:up=\EA:us=\Ea^A: -# (vremote: removed obsolete ":nl@:" -- esr) -vremote|virtual remote terminal:\ - :am@:\ - :co#79:\ - :tc=cbunix: -pty|4bsd pseudo teletype:\ - :cm=\EG%+ %+ :se=\Eb$:so=\Ea$:ue=\Eb!:us=\Ea!:tc=cbunix: - -# Entries for use by the FSF's `screen' program. These came with version 3.6.2 -screen|VT 100/ANSI X3.64 virtual terminal:\ - :am:km:mi:ms:xn:\ - :co#80:it#8:li#24:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\ - :F2=\E[24~:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++\054\054hhII00:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ - :im=\E[4h:is=\E)0:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ - :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ - :k;=\E[21~:kD=\E[3~:kH=\E[4~:kI=\E[2~:kN=\E[6~:\ - :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:\ - :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ - :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:r2=\Ec:\ - :rc=\E8:sc=\E7:se=\E[23m:sf=^J:so=\E[3m:sr=\EM:\ - :st=\EH:ta=^I:ue=\E[24m:up=\EM:us=\E[4m: -screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols:\ - :am:km:mi:ms:xn:\ - :co#132:it#8:li#24:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\ - :F2=\E[24~:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++\054\054hhII00:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ - :im=\E[4h:is=\E)0:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ - :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ - :k;=\E[21~:kD=\E[3~:kH=\E[4~:kI=\E[2~:kN=\E[6~:\ - :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:\ - :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ - :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:r2=\Ec:\ - :rc=\E8:sc=\E7:se=\E[23m:sf=^J:so=\E[3m:sr=\EM:\ - :st=\EH:ta=^I:ue=\E[24m:up=\EM:us=\E[4m: - -######## WORKSTATION CONSOLES -# - -#### Sun consoles -# - -# :is: resets scrolling region in case a previous user had used "tset vt100" -# (sun: mapped ":pt:" to ":it#8:" -- esr) -oldsun|Sun Microsystems Workstation console:\ - :am:bs:km:mi:ms:pt:\ - :co#80:it#8:li#34:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:\ - :bl=^G:cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:\ - :dc=\E[P:dl=\E[M:do=\E[B:ei=:ic=\E[@:im=:is=\E[1r:\ - :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:rs=\E[1r:\ - :se=\E[m:sf=^J:so=\E[7m:ta=^I:up=\E[A: -# New entry from vendor -sun|sun1|sun2|Sun Microsystems Inc. workstation:\ - :am:km:ms:\ - :co#80:li#34:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:\ - :bl=^G:cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:\ - :dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:ic=\E[@:im=:\ - :k1=\E[224z:k2=\E[225z:k3=\E[226z:k4=\E[227z:\ - :k5=\E[228z:k6=\E[229z:k7=\E[230z:k8=\E[231z:\ - :k9=\E[232z:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ - :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:r2=\E[s:\ - :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m:\ - :se=\E[m:sf=^J:so=\E[7m:ta=^I:ue=\E[m:up=\E[A:\ - :us=\E[4m: -# From: Tue Sep 24 13:14:44 1985 -sun-s|Sun Microsystems Workstation window with status line:\ - :hs:\ - :ds=\E]l\E\\:fs=\E\\:ts=\E]l:tc=sun: -sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs:\ - :hs:\ - :ds=\E]l\E\\:fs=\E\\:ts=\E]l:tc=sun-e: -sun-48|Sun 48-line window:\ - :co#80:li#48:\ - :tc=sun: -sun-34|Sun 34-line window:\ - :co#80:li#34:\ - :tc=sun: -sun-24|Sun 24-line window:\ - :co#80:li#24:\ - :tc=sun: -sun-17|Sun 17-line window:\ - :co#80:li#17:\ - :tc=sun: -sun-12|Sun 12-line window:\ - :co#80:li#12:\ - :tc=sun: -sun-1|Sun 1-line window for sysline:\ - :es:hs:\ - :co#80:li#1:\ - :ds=^L:fs=\E[K:ts=^M:tc=sun: -sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character:\ - :ei@:ic@:im@:tc=sun: -sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history:\ - :te=\E[>4h:ti=\E[>4l:tc=sun: - -#### Iris consoles -# - -# (wsiris: this had unknown capabilities -# :HS=\E7F2:HE=\E7F7:\ -# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite: -# I mapped ":pt:" to ":it#8:", removed incorrect ":cl=\Ev:" -- esr) -wsiris|iris40|iris emulating a 40 line visual 50 (approximately):\ - :am:bs:pt:\ - :co#80:it#8:li#40:\ - :al=\EL:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :dl=\EM:\ - :ho=\EH:is=\E7B0\E7F7\E7C2\E7R3:k0=\E0:k1=\E1:k2=\E2:\ - :k3=\E3:k4=\E4:k5=\E5:k6=\E6:k7=\E7:k8=\E8:k9=\E9:\ - :kd=\EB:kl=\ED:kr=\EC:ku=\EA:nd=\EC:se=\E0@:so=\E9P:\ - :sr=\EI:ue=\E7R3\E0@:up=\EA:us=\E7R2\E9P:ve=\E>:\ - :vs=\E;: - -#### Masscomp consoles -# - -masscomp2:\ - :co#64:li#21:\ - :tc=masscomp: -masscomp1:\ - :co#104:li#36:\ - :tc=masscomp: -# (masscomp: ":MT:" changed to ":km:"; mapped ":pt:" to ":it#8:" -- esr) -masscomp:\ - :bs:km:mi:pt:\ - :co#80:it#8:li#24:sg#0:\ - :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:\ - :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:im=\E[4h:\ - :is=\EGc\EGb\EGw:kb=^H:kd=\EOB:kl=\EOD:kr=\EOC:\ - :ku=\EOA:nd=\E[C:se=\E[0m:so=\E[7m:ue=\EGau:up=\E[A:\ - :us=\EGu: - -#### NeWS consoles -# -# Console terminal windows under the NeWS (Sun's Display Postscript windowing -# environment). Note: these have nothing to do with Sony's News workstation -# line. -# - -# Entry for NeWS's psterm from Eric Messick & Hugh Daniel -# (psterm: unknown ":sl=\EOl:el=\ENl:" removed; -# mapped ":pt:" to ":it#8:" -- esr) -psterm|psterm-basic|psterm-80x34:\ - :am:bs:hs:km:pt:ul:\ - :co#80:it#8:li#34:\ - :al=\EA:cd=\EB:ce=\EC:cl=^L:cm=\E%d;%d;:cs=\EE%d;%d;:\ - :dc=\EF:dl=\EK:do=\EP:ei=\ENi:fs=\ENl:ho=\ER:im=\EOi:\ - :is=\EN*:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\ET:\ - :ll=\EU:mb=\EOb:md=\EOd:me=\EN*:mr=\EOr:nd=\EV:rc=^\:\ - :rs=\EN*:sc=^]:se=\ENo:sf=\EW:so=\EOo:sr=\EX:te=\ENt:\ - :ti=\EOt:ts=\EOl:ue=\ENu:up=\EY:us=\EOu:vb=\EZ: -psterm-96x48:\ - :co#96:li#48:\ - :tc=psterm: -psterm-90x28:\ - :co#90:li#28:\ - :tc=psterm: -psterm-80x24:\ - :co#80:li#24:\ - :tc=psterm: -# This is a faster termcap for psterm. Warning: if you use this termcap, -# some control characters you type will do strange things to the screen. -# (psterm-fast: unknown ":sl=^Ol:el=^Nl:"; -# removed; mapped ":pt:" to ":it#8:" -- esr) -psterm-fast:\ - :am:bs:hs:km:pt:ul:\ - :co#80:it#8:li#34:\ - :al=^A:cd=^B:ce=^C:cl=^L:cm=\004%d;%d;:cs=\005%d;%d;:\ - :dc=^F:dl=^K:do=^P:ei=^Ni:fs=^Nl:ho=^R:im=^Oi:is=^N*:\ - :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^T:ll=^U:mb=^Ob:\ - :md=^Od:me=^N*:mr=^Or:nd=^V:rc=^\:rs=^N*:sc=^]:\ - :se=^No:sf=^W:so=^Oo:sr=^X:te=^Nt:ti=^Ot:ts=^Ol:\ - :ue=^Nu:up=^Y:us=^Ou:vb=^Z: - -#### Apollo consoles -# -# Apollo got bought by Hewlett-Packard. The Apollo workstations are -# labeled HP700s now. -# - -# From: Gary Darland -apollo:\ - :am:bs:mi:\ - :co#88:li#53:\ - :al=\EI:cd=\EJ:ce=\EK:ch=\EN%d:cl=^L:cm=\EM%+ %d):\ - :cv=\EO+ :dc=\EP:dl=\EL:do=\EB:ei=\ER:im=\EQ:nd=\EC:\ - :se=\ET:sf=\EE:so=\ES:sr=\ED:te=\EX:ti=\EW:ue=\EV:\ - :up=\EA:us=\EU: -apollo_15P|apollo 15 inch display:\ - :dN@:\ - :tc=vt132: -apollo_19L|apollo 19 inch display:\ - :dN@:\ - :tc=vt132: -apollo_color|apollo color display:\ - :dN@:\ - :tc=vt132: - -#### Fortune Systems consoles -# - -# From: Robert Nathanson via tut Wed Oct 5, 1983 -# (This had unknown capabilities -# :rv=\EH:re=\EI:rg=0:\ -# :GG=0:GV=-:GH=&:GU=%:GD=#:G1=(:G2= :G3=":G4=*:CF=\E]:\ -# :CO=\E\\:WL=^Aa\r:WR=^Ab\r:CL=^Ac\r:CR=^Ad\r:DL=^Ae\r:RF=^Af\r:\ -# :RC=^Ag\r:CW=^Ah\r:NU=^Aj\r:EN=^Ak\r:HM=^Al:PL=^Am\r:\ -# :PU=^An\r:PD=^Ao\r:PR=^Ap\r:HP=^A@\r:RT=^Aq\r:TB=\r:CN=\177:MP=\E+F: -# It had both ":bs:" and ":bs=^H:"; I removed the latter. Also, it had -# ":sg=0:" and ":ug=0:"; evidently the composer was trying (unnecessarily) -# to force both magic cookie glitches off. Once upon a time, I -# used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are -# function keys; thus the "Al" value for HM was certainly an error. I renamed -# EN/PD/PU/CO/CF according to the XENIX/TC mappings, but not HM/DL/RF/RC/RT. -# I think rv and re are start and end reverse video and rg is a nonexistent -# "reverse-video-glitch" capability; I have put rv and re in with standard -# names below. I've removed obsolete ":nl=5^J:" as there is a :do: -- esr) -fos|fortune|Fortune system:\ - :am:bs:bw:\ - :co#80:li#25:\ - :@7=^Ak\r:ae=^O:al=\034E:as=\Eo:bl=^G:cd=\034Y:\ - :ce=^\Z:cl=\014:cm=\034C%+ %+ :cr=^M:dc=\034W:\ - :dl=\034R:do=\n:ei=:ho=\036:ic=\034Q:im=:is=^_..:\ - :k1=^Aa\r:k2=^Ab\r:k3=^Ac\r:k4=^Ad\r:k5=^Ae\r:\ - :k6=^Af\r:k7=^Ag\r:k8=^Ah\r:kN=^Ao\r:kP=^An\r:kb=^H:\ - :kd=^Ay\r:kh=^A?\r:kl=^Aw\r:kr=^Az\r:ku=^Ax\r:le=^H:\ - :mb=\EN:me=\EI:mr=\EH:nw=^M^J:se=^\I`:sf=^J:so=^\H`:\ - :ta=^Z:ue=^\IP:up=\013:us=^\HP:ve=\E\\:vi=\E]:\ - :vs=\E\072: - -######## COMMON TERMINAL TYPES -# -# This section describes terminal classes and maker brands that are still -# quite common, but have proprietary command sets not blessed by ANSI. - -#### Altos -# -# Altos descriptions from Ted Mittelstaedt 4 Sep 1993 -# His comments suggest they were shipped with the system. -# - -# (altos2: had unknown capabilities -# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ -# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ -# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ -# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: -# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\ -# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\ -# :HL=^AP\r:SP=\E[i:\ -# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\ -# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\ -# Comparison with the k* capabilities makes it obvious that the c* things are -# shift keys. I have renamed them to keys 32 and up accordingly. Also, -# :sr: was given as a boolean-- esr) -altos2|alt2|altos-2|altos II:\ - :co#80:it#8:li#24:sg#0:\ - :*5=^Am\r:*8=^An\r:DL=\E[M:FM=^A`\r:FN=^Aa\r:\ - :FO=^Ab\r:FP=^Ac\r:FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:\ - :FT=^Ag\r:FU=^Ah\r:FV=^Ai\r:FW=^Aj\r:FX=^Ak\r:\ - :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:do=\E[1B:ei=:ho=\E[H:\ - :ic=\E[@:if=/usr/share/lib/tabset/vt100:im=:\ - :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k0=^AI\r:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:\ - :kB=^AK\r:kC=^AL\r:kD=^AM\r:kE=^AN\r:kF=^AO\r:kb=^H:\ - :kd=\E[B:kh=\E[f:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ - :nd=\E[1C:nw=^M^J:se=\E[m:sf=^J:so=\E[7m:ta=^I:\ - :ue=\E[m:up=\E[1A:us=\E[4m: -# (altos3: had unknown capabilities -# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ -# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ -# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ -# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: -# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\ -# :HL=^AP\r:SP=\E[i:\ -# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\ -# Comparison with the k* capabilities makes it obvious that the c* things are -# shift keys. I have renamed them to keys 32 and up accordingly -- esr) -altos3|alt3|altos-3|altos III:\ - :co#80:it#8:li#24:sg#0:\ - :*5=^Am\r:*8=^An\r:DL=\E[M:FM=^A`\r:FN=^Aa\r:\ - :FO=^Ab\r:FP=^Ac\r:FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:\ - :FT=^Ag\r:FU=^Ah\r:FV=^Ai\r:FW=^Aj\r:FX=^Ak\r:\ - :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:do=\E[1B:ei=:ho=\E[H:\ - :ic=\E[@:if=/usr/share/lib/tabset/vt100:im=:\ - :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k0=^AI\r:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:\ - :kB=^AK\r:kC=^AL\r:kD=^AM\r:kE=^AN\r:kF=^AO\r:kb=^H:\ - :kd=\E[B:kh=\E[f:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ - :mb=\E[5p:me=\E[p:nd=\E[1C:nw=^M^J:se=\E[m:sf=^J:\ - :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[1A:us=\E[4m: -altos4|alt4|altos-4|altos IV:\ - :tc=wy50: -altos5|alt5|altos-5|altos V:\ - :tc=altos3: -# (altos7: had unknown capabilities: -# :GG#0:GS=\EH^B:GE=\EH^C:\ -# :G1=3:G2=2:G3=1:G4=5:GD=0:GU==:GH=\072:\ -# :GV=6:GR=4:GL=9:GC=8:GI=\EH8:GF=\EH7:\ -# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ -# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ -# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ -# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: -# :PD=\EK:PU=\EJ:PN=\Ed#:PS=\EJ:DL=\ER:\ -# Comparison with the k* capabilities makes it obvious that the c* things are -# shift keys. I have renamed them to keys 32 and up accordingly -- esr) -altos7|alt7|altos VII:\ - :am:mi:\ - :co#80:li#24:sg#0:\ - :*5=^Am\r:*8=^An\r:DL=\ER:FM=^A`\r:FN=^Aa\r:FO=^Ab\r:\ - :FP=^Ac\r:FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:FT=^Ag\r:\ - :FU=^Ah\r:FV=^Ai\r:FW=^Aj\r:FX=^Ak\r:al=\EE:cd=\EY:\ - :ce=\ET:cl=\E+^^:cm=\E=%+ %+ :cr=^M:dc=\EW:do=^J:\ - :ei=\Er:ho=^^:im=\Eq:\ - :is=\E`\072\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2:k0=^AI\r:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:\ - :kB=^AK\r:kC=^AL\r:kD=^AM\r:kE=^AN\r:kF=^AO\r:kb=^H:\ - :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mb=\EG2:md=\EGt:\ - :me=\EG0:mh=\EGp:mk=\EG1:mr=\EG4:nd=^L:nw=^M^J:\ - :se=\EG0:sf=^J:so=\EG4:sr=\Ej:ta=^I:ue=\EG0:up=^K:\ - :us=\EG8: -altos7pc|alt7pc|altos PC VII:\ - :@7=\ET:tc=altos7: - -#### Hewlett-Packard (hp) -# -# Hewlett-Packard -# 8000 Foothills Blvd -# Roseville, CA 95747 -# Vox: 1-(916)-785-4363 (Technical response line for VDTs) -# 1-(800)-633-3600 (General customer support) -# - -# Generic HP terminal - this should (hopefully) work on any HP terminal. -hpgeneric|hewlett-packar|hewlettpackard:\ - :am:da:db:mi:xs:\ - :co#80:li#24:lm#0:vt#6:\ - :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:\ - :cm=\E&a%r%dc%dY:cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:\ - :dl=\EM:do=^J:ei=\ER:im=\EQ:kB=\Ei:kb=^H:le=^H:\ - :nd=\EC:se=\E&d@:sf=^J:so=\E&dJ:st=\E1:ta=^I:\ - :ue=\E&d@:up=\EA:us=\E&dD: - -hp110|hewlett-packard model 110 portable:\ - :li#16:\ - :tc=hpgeneric: - -hp+pfk+cr|hp function keys with CR:\ - :k1=\Ep\r:k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:\ - :k6=\Eu\r:k7=\Ev\r:k8=\Ew\r: - -hp+pfk-cr|hp function keys w/o CR:\ - :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:\ - :k8=\Ew: - -# The 2621s use the same keys for the arrows and function keys, -# but not separate escape sequences. These definitions allow the -# user to use those keys as arrow keys rather than as function -# keys. -hp+pfk+arrows|hp alternate arrow definitions:\ - :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:kF=\Er\r:kH=\Eq\r:\ - :kR=\Es\r:kd=\Ew\r:kh=\Ep\r:kl=\Eu\r:kr=\Ev\r:\ - :ku=\Et\r: - -hp+arrows|hp arrow definitions:\ - :kF=\ES:kH=\EF:kR=\ET:kd=\EB:kh=\Eh:kl=\ED:kr=\EC:\ - :ku=\EA: - -# Generic stuff from the HP 262x series -# -hp262x:\ - :xs:\ - :cd=\EJ:dc=\EP:ip=:kA=\EL:kD=\EP:kE=\EK:kF=\ES:\ - :kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:\ - :kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:\ - :ku=\EA:mb=\E&dA:me=\E&d@:mk=\E&dS:mr=\E&dB:\ - :..sa=\E&d%'@'%?%p1%t%'B'%|%;%?%p2%t%'D'%|%;%?%p3%t%'B'%|%;%?%p4%t%'A'%|%;%c:\ - :se=\E&d@:sf=\ES:so=\E&dB:ta=\011:ue=\E&d@:us=\E&dD: -# Note: no "home" on HP's since that homes to top of memory, not screen. -# Due to severe 2621 braindamage, the only way to get the arrow keys to -# transmit anything at all is to turn on the function key labels -# with smkx, and even then the user has to hold down shift! -# The default 2621 turns off the labels except when it has to to -# enable the function keys. If your installation prefers labels -# on all the time, or off all the time (at the "expense" of the -# function keys) move the # 2621-nl or 2621-wl labels to the -# front using reorder. -# Note: there are newer ROMs for 2621's that allow you to set -# strap A so the regular arrow keys xmit \EA, etc, as with the -# 2645. However, even with this strap set, the terminal stops -# xmitting if you reset it, until you unset and reset the strap! -# Since there is no way to set/unset the strap with an escape -# sequence, we don't use it in the default. -# If you like, you can use 2621-ba (braindmaged arrow keys). -hp2621-ba|2621-ba|2621 w/new rom and strap A set:\ - :ke@:ks@:tc=hp+arrows:tc=hp2621: - -# 2621 with function labels. Most of the time they are off, -# but inside vi, the function key labels appear. You have to -# hold down shift to get them to xmit. -hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels:\ - :is=\E&jA\r:ke=\E&jA:tc=hp2621-fl: - -# 2621 with function labels. Most of the time they are off, -# but inside vi, the function key labels appear. You have to -# hold down shift to get them to xmit. -hp2621-fl|2621-fl|hp 2621:\ - :xo:xs@:\ - :pb#19200:\ - :bt=\Ei:cm=\E&a%r%dc%dY:dc=\EP:ip=:is=\E&j@\r:\ - :ke=\E&j@:ks=\E&jB:me=\E&d@:se=\E&d@:so=\E&dD:\ - :ta=\011:ue=\E&d@:us=\E&dD:tc=hp+pfk+cr:tc=hpgeneric: - -# To use 2621p printer, setenv TERM=2621p, PRINTER=2612p -hp2621p|2621p|2621P|hp 2621 with printer:\ - :pf=\E&p13C:po=\E&p11C:tc=hp2621: - -hp2621p-a|2621p-a|hp2621p with fn as arrows:\ - :tc=hp+pfk+arrows:tc=hp2621p: - -# hp2621 with k45 keyboard -hp2621-k45|hp2621k45|2621k45|k45|hp 2621 with 45 keyboard:\ - :kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\ - :ks=\E&s1A:ku=\EA:tc=hp2621: - -# This terminal should be used at 4800 baud or less. It needs padding for -# plain characters at 9600, I guessed at an appropriate cr delay. It really -# wants ^E/^F handshaking, but that doesn't work well even if you write -# software to support it. -hp2645|hp45|hp 264x series:\ - :pb#9600:\ - :cr=\r:kA=\EL:kD=\EP:kE=\EK:kF=\ES:kI=\EQ:kL=\EM:\ - :kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kT=\E1:kd=\EB:\ - :ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:\ - :ku=\EA:mb=\E&dA:me=\E&d@:mh=\E&dH:mr=\E&dB:\ - :..sa=\E&d%'@'%?%p1%t%'B'%|%;%?%p2%t%'D'%|%;%?%p3%t%'B'%|%;%?%p4%t%'A'%|%;%?%p5%t%'H'%|%;%?%p6%t%'B'%|%;%c:\ - :us=\E&dD:tc=hpgeneric: - -# Hp 2624 B with 4 or 10 pages of memory. -# -# Some assumptions are made with this entry. These settings are -# NOT set up by the initialization strings. -# -# Port Configuration -# RecvPace=Xon/Xoff -# XmitPace=Xon/Xoff -# StripNulDel=Yes -# -# Terminal Configuration -# InhHndShk=Yes -# InhDC2=Yes -# XmitFnctn(A)=No -# InhEolWrp=No -# -# Note: the 2624 DOES have a true "home," believe it or not! -# -# The 2624 has an "error line" to which messages can be sent. -# This is CLOSE to what is expected for a "status line". However, -# after a message is sent to the "error line", the next carriage -# return is EATEN and the "error line" is turned back off again! -# So I guess we can't define hs, eslok, wsl, dsl, fsl, tsl -# -# This entry supports emacs (and any other program that uses raw -# mode) at 4800 baud and less. I couldn't get the padding right -# for 9.6. -# -hp2624|hp2624a|hp2624b|hp2624b-4p|2624-4p|2624|2624a|2624b|Hewlett Packard 2624 B:\ - :da:db:\ - :lm#96:\ - :vb=\E&w13F\200\200\200\200\E&w12F\200\200\200\200\E&w13F\200\200\200\200\E&w12F:tc=hp+labels:tc=scrhp: - -# These attributes are not set above: -# -# civis, cmdch, cnorm, csr, cub, cud, cuf, cuu, cvvis, dch, dl, -# ech, eo, eslok, fsl, gn, hc, hd, hu, hz, ich, ich1, if, il, in, -# indn, iprog, is2, is3, it, ka1, ka3, kb2, kc1, kc3, kclr, kf0, -# kf10, khts, km, ktbc, lf0, lf1, lf10, lf2, lf3, lf4, lf5, lf6, -# lf7, lf8, lf9, mc5p, os, pad, pfkey*, pfloc*, pfx*, prot, rc, -# rep, rin, rmcup, rmdc, rmm, rs2, rs3, sc, smcup, smdc, smm, tsl, -# uc, ul, vt, wind, wsl, xenl, xmc, xsb, xt -# -# not needed if tset is used: -# if=/usr/lib/tabset/std, -# -# This hp2626 entry does not use any of the fancy windowing stuff -# of the 2626. -# -# Indeed, terminfo does not yet handle such stuff. Since changing -# any window clears memory, it is probably not possible to use -# this for screen opt. -# -# ed is incredibly slow most of the time - I am guessing at the -# exact padding. Since the terminal uses xoff/xon this is intended -# only for cost computation, so that the terminal will prefer el -# or even dl1 which is probably faster! -# -# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only -# extra slow # on the last line of the window. -# -# The padding probably should be changed. -# -hp2626|hp2626a|hp2626p|2626|2626a|2626p|2626A|2626P|hp 2626:\ - :da:db:\ - :lm#0:pb#19200:\ - :SF=\E&r%dD:SR=\E&r%dU:cd=\ED\EJ\EC:ip=:is=\E&j@\r:tc=hp+pfk+cr:tc=hp+labels:tc=scrhp: - -# This entry is for sysline. It allocates a 23 line window with -# a 115 line workspace for regular use, and a 1 line window for -# the status line. -# -# This assumes port 2 is being used. -# Turn off horizontal line, Create ws #1 with 115 lines, -# Create ws #2 with 1 line, Create window #1 lines 1-23, -# Create window #2 lines 24-24, Attach cursor to workspace #1. -# Note that this clears the tabs so it must be done by tset before -# it sets the tabs. -# -hp2626-s|2626-s|hp 2626 using only 23 lines:\ - :es:hs:\ - :li#23:\ - :fs=\E&d@\E&w7f2p1I\E&w4f1I:\ - :i1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I\n\E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r:\ - :ts=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC:tc=hp2626: -# Force terminal back to 24 lines after being 23. -# -hp2626-ns|2626-ns|hp 2626 using all 24 lines:\ - :i1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I\n\E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r:tc=hp2626: -# Various entries useful for small windows on 2626. -# -hp2626-12|2626-12:\ - :li#12:\ - :tc=hp2626: -hp2626-12x40|2626-12x40:\ - :co#40:li#12:\ - :tc=hp2626: -hp2626-x40|2626-x40:\ - :co#40:\ - :tc=hp2626: -hp2626-12-s|2626-12-s:\ - :li#11:\ - :tc=hp2626-s: -# You should use this terminal at 4800 baud or less. -# -hp2648|hp2648a|2648a|2648A|2648|HP 2648a graphics terminal:\ - :cl=\EH\EJ:cm=\E&a%r%dc%dY:dc=\EP:ip=:tc=hp2645: - -# 2640a doesn't have the Y cursor addressing feature, and C is -# memory relative instead of screen relative, as we need. -# -hp2640a|2640a|hp 2640a:\ - :cm@:ke@:ks@:tc=hp2645: - -hp2640b|hp2644a|hp 264x series:\ - :ke@:ks@:tc=hp2645: - -# 2621 using all 48 lines of memory, only 24 visible at any time. -# -hp2621-48|48 line 2621:\ - :li#48:\ - :cm=\E&a%r%dc%dR:cv=\E&a%dR:ho=\EH:tc=hp2621: - -# 2621 with no labels ever. Also prevents vi delays on escape. -# -hp2621-nl|hp 2621 with no labels:\ - :kd@:ke@:kh@:kl@:kr@:ks@:ku@:tc=hp2621-fl: - -# Needed for UCB ARPAVAX console, since lsi-11 expands tabs -# (wrong). -# -hp2621-nt|hp 2621 w/no tabs:\ - :ta@:tc=hp2621: - -# The HP 150 terminal is a fairly vanilla HP terminal, with the -# clreol standout problem. It also has graphics capabilities and -# a touch screen, which we don't describe here. -hp150|hewlett packard Model 150:\ - :tc=hp2622: - -# Hp 2382a terminals, "the little ones." They don't have any -# alternate character set support and sending out ^N/^O will -# leave the screen blank. -hp2382a|hp2382|hewlett packard 2382a:\ - :da:db:\ - :lh#1:lm#48:\ - :ac@:ae@:as@:me=\E&d@:\ - :..pn=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s:\ - :..sa=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%'@'%+%e%'S'%;%e%?%ga%t%ga%'@'%+%e%'@'%;%;%c:tc=hp+labels:tc=scrhp: - -hp2621-a|hp2621a-a|2621-a|hp2621 with fn as arrows:\ - :tc=hp+pfk+arrows:tc=hp2621-fl: - -# newer hewlett packard terminals - -newhpkeyboard|generic entry for HP extended keyboard:\ - :kA=\EL:kB=\Ei:kC=\EJ:kD=\EP:kE=\EK:kF=\ET:kH=\EF:\ - :kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:kR=\ES:kS=\EJ:\ - :kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\ - :ks=\E&s1A:ku=\EA:tc=hp+pfk-cr: - -newhp|generic entry for new hewlett packard terminals:\ - :am:bw:mi:xo:xs:\ - :co#80:li#24:pb#4800:\ - :ac=T1R!U2S"W3O#V4P$t5u6w7v8\072'9(LQKWlRkT5I3@2[MAJSmFjGdHQ;Y+Z*X\0724>q\\\054x.n/:\ - :ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:cr=^M:\ - :ct=\E3:dc=\EP:dl=\EM:do=^J:ei=\ER:i1=\E&jB:im=\EQ:\ - :ip=:le=^H:mb=\E&dA:md=\E&dF:me=\E&d@\017:mh=\E&dH:\ - :mk=\E&dS:mr=\E&dB:nd=\EC:nw=^M^J:\ - :..pk=\E&f0a%p1%dk0d%p2%l%dL%p2%s:\ - :..pl=\E&f1a%p1%dk0d%p2%l%dL%p2%s:\ - :..px=\E&f2a%p1%dk0d%p2%l%dL%p2%s:r1=\Eg:\ - :..sa=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%'@'%+%e%'S'%;%e%?%ga%t%ga%'@'%+%e%'@'%;%;%c%?%p9%t\016%e\017%;:\ - :se=\E&d@:sf=^J:so=\E&dJ:sr=\ET:st=\E1:ta=\011:\ - :ue=\E&d@:up=\EA:us=\E&dD:tc=newhpkeyboard: - -memhp|memory relative addressing for new HP ttys:\ - :vt#6:\ - :CM=\E&a%p1%dr%p2%dC:DO=\E&a+%dR:LE=\E&a-%dC:\ - :RI=\E&a+%dC:UP=\E&a-%dR:ch=\E&a%dC:cl=\EH\EJ:\ - :cm=\E&a%dr%dC:cv=\E&a%dR:ho=\EH:ll=\E&a23R\r:tc=newhp: - -scrhp|screen relative addressing for new HP ttys:\ - :CM=\E&a%p1%dr%p2%dC:DO=\E&a+%dR:LE=\E&a-%dC:\ - :RI=\E&a+%dC:UP=\E&a-%dR:ch=\E&a%dC:cl=\E&a0c0Y\EJ:\ - :cm=\E&a%dy%dC:cv=\E&a%dY:ho=\E&a0y0C:ll=\E&a0y0C\EA:tc=newhp: - -hp+labels|"standard" label info for new HP ttys:\ - :Nl#8:lh#2:lw#8:\ - :LO=\E&jB:\ - :..pn=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s: - -hp+printer| "standard" printer info for HP ttys:\ - :ff=\E&p4u0C:pf=\E&p13C:po=\E&p11C:ps=\EH\E&p4dF: - - -# The new hp2621b is kind of a cross between the old 2621 and the -# new 262x series of machines. It has dip-switched options. -# The firmware has a bug in it such that if you give it a null -# length label, the following character is eaten! -hp2621b|2621b|hp 2621b with old style keyboard:\ - :Nl#8:lh#1:lm#48:lw#8:\ - :LO=\E&jB:kF=\ET:kH=\EF:kR=\ES:kd=\EB:kh=\Eh:kl=\ED:\ - :kr=\EC:ku=\EA:\ - :..pn=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%'o'%p1%+%c\r:tc=hp2621: - -hp2621b-p|2621b-p|hp 2621b with printer:\ - :tc=hp+printer:tc=hp2621b: - -# hp2621b - new 2621b with new extended keyboard -# these are closer to the new 26xx series than the other 2621b -hp2621b-kx|2621b-kx|hp 2621b with extended keyboard:\ - :tc=newhpkeyboard:tc=hp2621b: - -hp2621b-kx-p|2621b-kx-p|hp 2621b with new keyboard & printer:\ - :tc=hp+printer:tc=hp2621b-kx: - -# Some assumptions are made in the following entries. -# These settings are NOT set up by the initialization strings. -# -# Port Configuration -# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes -# -# Terminal Configuration -# InhHndShk(G)=Yes InhDC2(H)=Yes -# XmitFnctn(A)=No InhEolWrp=No -# -# -# Hp 2622a & hp2623a display and graphics terminals -# -hp2622|hp2622a|2622|2622a|hp 2622:\ - :da:db:\ - :lm#0:pb#19200:\ - :is=\E&dj@\r:tc=hp+pfk+cr:tc=hp+labels:tc=scrhp: - -# The 2623 is a 2622 with extra graphics hardware. -hp2623|hp2623a|2623|2623a|hp 2623:\ - :tc=hp2622: - - -hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer:\ - :tc=hp+printer:tc=hp2624: - -# The hewlett packard B can have an optional extra 6 pages of -# memory. -hp2624-10p|hp2624a-10p|hp2624b-10p|2624-10p|2624a-10p|2624b-10p|hewlett packard 2624 B w/ 10 pages of memory:\ - :lm#240:\ - :tc=hp2624: - -hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer:\ - :lm#240:\ - :tc=hp2624b-p: - -# Color manipulations for HP terminals - -hp+color|hp with colors:\ - :cc:\ - :Co#16:NC#17:pa#7:\ - :..Ip=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a\n%?%p3%{1000}%=%t1%e.%p3%d%;b\n%?%p4%{1000}%=%t1%e.%p4%d%;c\n%?%p5%{1000}%=%t1%e.%p5%d%;x\n%?%p6%{1000}%=%t1%e.%p6%d%;y\n%?%p7%{1000}%=%t1%e.%p7%d%;z\n%p1%dI:\ - :oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I:\ - :op=\E&v0S:sp=\E&v%dS: - -# is2 set screen to be 80 columns wide -hp2397a|2397a|hp2397|2397|hewlett packard 2397A color terminal:\ - :is=\E&w6f80X:tc=memhp:tc=hp+labels:tc=hp+color: - -# HP 700/44 Setup parameters: -# Terminal Mode HP-PCterm -# Inhibit Auto Wrap NO -# Status Line Host Writable -# PC Character Set YES -# Twenty-Five Line Mode YES -# XON/XOFF @128 or 64 (sc) -# Keycode Mode NO or YES (sc) -# Backspace Key BS or BS/DEL -# -# is2 sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; \E\\? -# does not turn off keycode mode -# smsc sets alternate start/stop; keycode on -# -hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode:\ - :am:eo:xn:xo:\ - :co#80:li#25:\ - :@7=\E[4~:S4=\E[>11h\EPO**x0/65;1/67\E\\:\ - :S5=\E[>11l\EP1**x0/11;1/13\E[0m\E\\:XF=g:XN=e:\ - :ac=k\277l\332m\300j\331n\305w\302q\304u\264t\303v\301x\263:\ - :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\ - :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=:\ - :ho=\E[H:ic=\E[@:im=:\ - :is=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\:\ - :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\ - :k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[26~:k;=\E[28~:\ - :kB=\E[Z:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[1~:\ - :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:nd=\E[C:se=\E[m:\ - :sf=^J:so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\ - :ve=\E[?25h:vi=\E[?25l: -# -hp2392|2392|2393|239x series:\ - :co#80:\ - :bt=\Ei:cm=\E&a%dy%dC:cv=\E&a%dY:im=\EQ:k1=\Ep\r:\ - :k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:\ - :k7=\Ev\r:k8=\Ew\r:kF=\EU:kN=\Eu:kP=\Ev:kR=\EV:\ - :kh=\Eh:ue=\E&d@:us=\E&dD:tc=hpsub: - -2392nam|hp2392nam|HP 239x series with no auto margins:\ - :am@:\ - :tc=hp2392: - -hpsub|hp terminals -- capability subset:\ - :am:da:db:mi:xo:xs:\ - :li#24:\ - :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:\ - :cr=^M:dc=\EP:dl=\EM:do=\EB:ei=\ER:\ - :if=/usr/lib/tabset/stdcrt:is=\E&s1A\E<\E&k0\\:kb=^H:\ - :kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:\ - :ku=\EA:le=^H:nd=\EC:se=\E&d@:sf=^J:so=\E&dB:ta=^I:\ - :up=\EA: - -# HP 236 console -# From: -hp236|hp236 internal terminal emulator:\ - :am:bs:\ - :co#80:li#24:\ - :al=\EG:ce=\EK:cl=\EF:cm=\EE%+ %+ :dc=\EJ:dl=\EH:ei=:\ - :ic=\EI:im=:se=\ECI:so=\EBI:up=^K:ve=\EDE:vs=\EDB: - -# This works on a hp300 console running Utah 4.3 BSD -# From: Craig Leres -hp300h|HP Catseye console:\ - :am:bs:da:db:mi:xs:\ - :co#128:li#51:lm#0:sg#0:\ - :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\ - :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:\ - :cv=\E&a%dY:dc=\EP:dl=\EM:do=\EB:ei=\ER:\ - :if=/usr/share/tabset/stdcrt:im=\EQ:kb=^H:kd=\EB:\ - :ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:\ - :le=^H:me=\E&d@:nd=\EC:se=\E&d@:sf=^J:so=\E&dB:ta=^I:\ - :ue=\E&d@:up=\EA:us=\E&dD: -# From: Greg Couch -# (hp9837: removed obsolete ":ko=ce,cd,al,im,dl,dc:"; -# mapped ":pt:" to ":it#8:" -- esr) -hp9837|hp98720|hp98721|HP 9000/300 workstations:\ - :am:bs:da:db:mi:pt:xs:\ - :co#128:it#8:li#46:lm#0:\ - :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\ - :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:ct=\E3:cv=\E&a%dY:\ - :dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:is=\E&v0m1b0i&j@:\ - :kN=\EU:kP=\EV:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:\ - :kr=\EC:ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:\ - :se=\E&v0S:sf=^J:so=\E&v5S:st=\E1:ue=\E&d@:up=\EA:\ - :us=\E&dD: -# From: Charles A. Finnell of MITRE , developed 07SEP90 -# (hp98550: removed obsolete ":kn#12:ko=al,cd,ce,ct,dc,dl,do,ei,im,nd,st,up:"; -# mapped ":pt:" to ":it#8:" -- esr) -hp98550|hp98550a|HP 9000 Series 300 color console:\ - :am:bs:da:db:mi:pt:xs:\ - :co#128:it#8:li#49:lm#0:\ - :ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:\ - :ch=\E&a%dC:cl=\EH\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:\ - :cv=\E&a%dY:dc=\EP:dl=\EM:do=^J:ei=\ER:\ - :if=/usr/share/tabset/9837:im=\EQ:k1=\Ep:k2=\Eq:\ - :k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:\ - :kC=\EJ:kD=\EP:kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:\ - :kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kT=\E1:ka=\E3:\ - :kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\ - :ks=\E&s1A:kt=\E2:ku=\EA:le=^H:mb=\E&dA:md=\E&dJ:\ - :me=\E&d@:mh=\E&dH:mk=\E&ds:mr=\E&dJ:nd=\EC:se=\E&d@:\ - :sf=^J:so=\E&dJ:st=\E1:ta=^I:ue=\E&d@:up=\EA:\ - :us=\E&dD:ve=\E*dQ:vi=\E*dR: -# From: Victor Duchovni -# (hp700-wy: removed obsolete ":ko=cl,ho,ce,bt,ta,im,ei,ce,cd:nl=^J:"; -# mapped ":pt:" to ":it#8:" -- esr) -hp700-wy|HP700/41 emulating wyse30:\ - :am:bs:bw:mi:ms:pt:\ - :co#80:it#8:li#24:sg#1:ug#1:\ - :al=0.7*\EE:bl=^G:bt=\EI:cd=\EY:ce=10\ET:cl=^Z:\ - :cm=\E=%+ %+ :cr=^M:ct=\E0:cv=\E[%+ :dc=\EW:dl=\ER:\ - :do=^V:ei=\Er:ho=^^:if=/usr/share/tabset/hp700-wy:\ - :im=\Eq:is=\E~"\EC\Er\E(\EG0\003\E`9\E`1:kb=\177:\ - :kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:nd=^L:\ - :rs=\E~"\EC\Er\E(\EG0\003\E`9\E`1:se=10\EG0:\ - :so=10\EG4:sr=\Ej:st=\E1:ue=10\EG0:up=^K:us=10\EG8: -hp70092|70092a|70092A|hp70092a|hp70092A|Hewlett-Packard 70092:\ - :am:da:db:xs:\ - :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:\ - :LF=\E&j@:LO=\E&jB:ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:\ - :ce=\EK:ch=\E&a%dC:cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:\ - :cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:do=\EB:ei=\ER:\ - :im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:\ - :k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:kE=\EK:kF=\ES:\ - :kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:kR=\ET:\ - :kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\ - :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:\ - :mb=\E&dA:md=\E&dB:me=\E&d@:mh=\E&dH:mr=\E&dB:nd=\EC:\ - :se=\E&d@:so=\E&dJ:sr=\ET:st=\E1:ta=^I:ue=\E&d@:\ - :up=\EA:us=\E&dD: - -bobcat|sbobcat|HP 9000 model 300 console:\ - :am:da:db:mi:xs:\ - :co#128:it#8:li#47:sg#0:\ - :al=10*\EL:bt=\Ei:cd=\EJ:ce=\EK:ch=6\E&a%dC:\ - :cl=\EH\EJ:cm=6\E&a%dy%dC:cr=^M:cv=6\E&a%dY:dc=\EP:\ - :dl=10*\EM:do=\EB:ei=\ER:im=\EQ:kb=^H:kd=\EB:\ - :ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:\ - :le=^H:nd=\EC:nw=^M^J:se=\E&d@:sf=^J:so=\E&dB:ta=^I:\ - :ue=\E&d@:up=\EA:us=\E&dD: -gator-t|HP 9000 model 237 emulating extra-tall AAA:\ - :bw:km:mi:ul:\ - :co#128:it#8:li#94:\ - :AL=1*\E[%dL:DC=4\E[%dP:DL=1*\E[%dM:IC=4\E[%d@:\ - :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ - :do=^J:ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=^J:kl=^H:\ - :le=^H:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:\ - :..rp=%.\E[%db:se=\E[m:so=\E[7m:ta=^I:ue=\E[m:up=\EM:\ - :us=\E[4m: -gator|HP 9000 model 237 emulating AAA:\ - :bw:km:mi:ul:\ - :co#128:it#8:li#47:\ - :AL=1*\E[%dL:DC=4\E[%dP:DL=1*\E[%dM:IC=4\E[%d@:\ - :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ - :do=^J:ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=^J:kl=^H:\ - :le=^H:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:\ - :..rp=%.\E[%db:se=\E[m:so=\E[7m:ta=^I:ue=\E[m:up=\EM:\ - :us=\E[4m: -gator-52|HP 9000 model 237 emulating VT52:\ - :co#128:it#8:li#47:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:..cm=\EY%+ %+ :cr=^M:\ - :do=^J:ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:\ - :le=^H:nd=\EC:nw=^M^J:sr=\EI:ta=^I:up=\EA: -gator-52t|HP 9000 model 237 emulating extra-tall VT52:\ - :co#128:it#8:li#94:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:..cm=\EY%+ %+ :cr=^M:\ - :do=^J:ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:\ - :le=^H:nd=\EC:nw=^M^J:sr=\EI:ta=^I:up=\EA: - -#### Honeywell-Bull -# -# From: Michael Haardt 11 Jan 93 -# - -# Honeywell Bull terminal. Its cursor and function keys send single -# control characters and it has standout/underline glitch. Most programs -# do not like these features/bugs. This is a dumb mode for this terminal. -# Visual bell is realized by flashing the "keyboard locked" LED. -dku7003-dumb|Honeywell Bull DKU 7003, dumb mode:\ - :co#80:li#25:\ - :cd=^_:ce=\E[K:cl=^]^_:cm=\E[%i%d;%dH:cr=^M:do=^K:\ - :ho=^]:kb=^H:kd=^K:kh=^]:kl=^Y:kr=^X:ku=^Z:le=^Y:\ - :nd=^X:nw=^M^J:sf=^J:ta=^I:up=^Z:vb=\E[2h\E[2l: -# Honeywell Bull terminal. Its cursor and function keys send single -# control characters and it has standout/underline glitch. Most programs -# do not like these features/bugs. The following entry may cause problems -# with some programs. Visual bell is realized by flashing the "keyboard -# locked" LED. -dku7003|Honeywell Bull DKU 7003, all features described:\ - :ms:\ - :co#80:li#25:sg#1:ug#1:\ - :cd=^_:ce=\E[K:cl=^]^_:cm=\E[%i%d;%dH:cr=^M:do=^K:\ - :ho=^]:kb=^H:kd=^K:kh=^]:kl=^Y:kr=^X:ku=^Z:le=^Y:\ - :mb=\E[5m:md=\E[7m:me=\E[0m:mh=\E[2m:mr=\E[7m:nd=^X:\ - :nw=^M^J:se=\E[0m:sf=^J:so=\E[7m:ta=^I:ue=\E[0m:\ - :up=^Z:us=\E[4m:vb=\E[2h\E[2l: - -#### Lear-Siegler (adm) -# -# These guys are long since out of the terminals business, but -# in 1995 many current terminals still have an adm type as one of their -# emulations (usually their stupidest, and usually labelled adm3, though -# these `adm3' emulations normally have adm3a+ capabilities). -# - -adm1a|adm1|lsi adm1a:\ - :am:\ - :co#80:li#24:\ - :bl=^G:cl=\E;:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:le=^H:\ - :nd=^L:sf=^J:up=^K: -adm2|lsi adm2:\ - :am:bs:\ - :co#80:li#24:\ - :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :\ - :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:\ - :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:\ - :up=^K: -# (adm3: removed obsolete ":ma=^K^P:" -- esr) -adm3|lsi adm3:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cl=^Z:cr=^M:do=^J:le=^H:sf=^J: -# The following ADM-3A switch settings are assumed for normal operation: -# SPACE U/L_DISP CLR_SCRN 24_LINE -# CUR_CTL LC_EN AUTO_NL FDX -# Other switches may be set for operator convenience or communication -# requirements. I recommend -# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF -# ETX_OFF EOT_OFF -# (adm3a: removed obsolete ":ma=^K^P:" -- esr) -adm3a|lsi adm3a:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cl=\032:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:le=^H:\ - :nd=^L:sf=^J:up=^K: -adm3a+|adm3aplus:\ - :kd=^J:kl=^H:kr=^L:ku=^K:tc=adm3a: -# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do+^J:" -- esr) -adm5|lsi adm5:\ - :sg#1:\ - :bl=^G:cd=\EY:ce=\ET:cr=^M:do=^J:kb=^H:kh=^^:se=\EG:\ - :so=\EG:tc=adm3a+: -# From: -# (adm11: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) -adm11|lsi adm11:\ - :am:bs:hs:\ - :co#80:li#24:\ - :bl=^G:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:do=^J:\ - :ds=\Eh:fs=\E(\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:\ - :nd=^L:se=\E(:so=\E):ts=\EF\E):up=^K: -# From: Andrew Scott Beals -# Corrected by Olaf Siebert , 11 May 1995 -# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :" -- esr) -adm12|lsi adm12:\ - :am:bs:mi:\ - :co#80:li#24:\ - :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\ - :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:is=\Eq:\ - :k0=^A0\r:k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:\ - :k5=^A5\r:k6=^A6\r:k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^J:\ - :kl=^H:kr=^L:ku=^K:le=^H:mk=\EG1:nd=^L:se=\EG0:\ - :so=\EG4:ue=\EG0:up=^K:us=\EG8: -# (adm20: removed obsolete ":kn#7:"; mapped ":pt:" to ":it#8:" -- esr) -adm20|lear siegler adm20:\ - :am:bs:pt:\ - :co#80:it#8:li#24:\ - :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\ - :cm=\E=%i%r%+^_%+^_:cr=^M:dc=\EW:dl=\ER:ei=:ho=^^:\ - :ic=\EQ:im=:k1=^A:k2=^B:k3=^W:k4=^D:k5=^E:k6=^X:\ - :k7=^Z:nd=^L:se=\E(:so=\E):up=^K: -adm21|lear siegler adm21:\ - :sg#1:ug#1:\ - :al=30*\EE:bl=^G:cd=\EY:ce=\ET:cr=^M:dc=\EW:\ - :dl=30*\ER:do=^J:ei=:ic=\EQ:im=:kb=^H:kd=^J:kh=^^:\ - :kl=^H:kr=^L:ku=^K:se=\EG0:sf=^J:so=\EG4:ue=\EG0:\ - :us=\EG8:tc=adm3a: -# (adm22: ":em=:" was an obvious typo for ":ei=:"; also, -# removed obsolete ":kn#7:ko=ho:ma=j^Jk^P^K^Pl ^R^L^L :" -- esr) -adm22|lsi adm22:\ - :am:bs:\ - :co#80:li#24:\ - :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:\ - :cm=\200\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:\ - :ho=^^:ic=\EQ:im=:\ - :is=\E%\014\014\014\016\003\200\003\002\003\002\200\200\200\200\200\200\200\200\200\200\200:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:\ - :ku=^K:l1=F1:l2=F2:l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:\ - :nd=^L:se=\E(:so=\E):ta=\Ei:up=^K: -# If the adm31 gives you trouble with standout mode, check the DIP switch in -# position 6, bank @c11, 25% from back end of the circuit board. Should be -# OFF. If there is no such switch, you have an old adm31 and must use oadm31. -# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr) -adm31|lsi adm31:\ - :am:bs:mi:\ - :co#80:li#24:\ - :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :\ - :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:\ - :is=\Eu\E0:k0=^A0\r:k1=^A1\r:k2=^A2\r:k3=^A3\r:\ - :k4=^A4\r:k5=^A5\r:k6=^A6\r:k7=^A7\r:k8=^A8\r:\ - :k9=^A9\r:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:\ - :se=\EG0:sf=^J:so=\EG1:ue=\EG0:up=^K:us=\EG1: -oadm31|o31|old adm31:\ - :so=\EG4:ue@:us@:tc=adm31: -# ADM36 in native mode (not VT52 emulation mode) -adm36|lsi adm36:\ - :am:mi:\ - :co#80:li#24:\ - :al=\E[1L:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\ - :cm=\E[%i%d;%dH:dl=\E[1M:ei=\E[4l:im=\E[4h:\ - :is=\E[6;?7h\E[4;20;?1;?3;?6;?4l\E(B\E)B\E>:kd=\EB:\ - :kl=\ED:kr=\EC:ku=\E[A:le=^H:nd=\E[D:up=\E[A: -# (adm42: removed obsolete ":ma=^K^P:" -- esr) -adm42|lsi adm42:\ - :am:bs:\ - :co#80:li#24:\ - :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E;:\ - :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:\ - :im=\Eq:ip=:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ - :nd=^L:pc=\177:se=\EG0:sf=^J:so=\EG4:ta=^I:up=^K:\ - :vs=\EC\E3 \E3(: -# The following termcap for the Lear Siegler ADM-42 leaves the -# "system line" at the bottom of the screen blank (for those who -# find it distracting otherwise) -adm42-nl|lsi adm-42 with no system line:\ - :al=\EE\EF \011:bt=\EI\EF \011:cd=\EY\EF \011:\ - :ce=\ET\EF \011:cl=\E;\EF \011:cm=\E=%+ %+ \EF \011:\ - :dc=\EW\EF \011:dl=\ER\EF \011:ei=\Er\EF \011:\ - :im=\Eq\EF \011:tc=adm42: - -#### Prime -# -# Yes, Prime makes terminals. These entries were posted by Kevin J. Cummings -# on 14 Dec 1992 and lightly edited by esr. - -pt100|pt200|wren|fenix|prime pt100/pt200:\ - :am:bw:mi:ms:\ - :co#80:it#8:li#24:\ - :DC=\E[%dP:DL=\E[M:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ - :UP=\E[%dA:al=\E[L\E[t:bt=\E[Z:cd=\E[J\E[r:\ - :ce=\E[K\E[t:cl=\E?:cm=\E0%+!%+!:cr=^M:dc=\E[P:\ - :do=\ED:ei=\E[4l:ho=\E$B:im=\E[4h:kb=^H:kd=\E[B:\ - :ke=\E[>13l:kh=\E$A:kl=\E[D:kr=\E[C:ks=\E[>13h:\ - :ku=\E[A:le=^H:nd=\E[C:nw=^M^J:se=\E[m:sf=^J:\ - :so=\E[2;7m:ta=^I:\ - :ti=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q:\ - :ue=\E[m:up=\EM:us=\E[4m:\ - :vb=\E$E\200\200\200\200\200\200\200\200\200\200\200\200\200\200\E$P: -pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode:\ - :co#132:\ - :cm=\E[%i%d;%dH:tc=pt100: -pt250|Prime PT250:\ - :so@:tc=pt100: -pt250w|Prime PT250 in 132-column mode:\ - :so@:tc=pt100w: - -#### Qume (qvt) -# -# Qume, Inc. -# 3475-A North 1st Street -# San Jose CA 95134 -# Vox: (800)-457-4447 -# Fax: (408)-473-1510 -# Net: josed@techsupp.wyse.com (Jose D'Oliveira) -# -# Qume was bought by Wyse, but still (as of early 1995) has its own support -# group and production division. -# -# Discontinued Qume models: -# -# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+ -# built to replace them, and a qvt119+ which was a 101+ with available wide -# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations -# and an ANSI-compatible qvt203 that replaced it. Qume started producing -# ANSI-compatible terminals with the qvt323 and qvt61. -# -# Current Qume models (as of February 1995): -# -# All current Qume terminals have ANSI-compatible operation modes. -# Qume is still producing the qvt62, which features emulations for other -# popular lines such as ADDS, and dual-host capabilities. The qvt82 is -# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal -# with many emulatioms including Wyse370, Wyse 325, etc. Their newest -# model is the qvt520, which is vt420-compatible. -# -# There are some ancient printing Qume terminals under `Daisy Wheel Printers' - -qvt101|qvt108|qume qvt 101 and QVT 108:\ - :sg#1:\ - :se=\EG0:so=\EG4:tc=qvt101+: -qvt101+|qvt101p|qume qvt 101 PLUS product:\ - :am:bw:hs:ul:\ - :co#80:li#24:sg#0:\ - :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\ - :cm=\E=%+ %+ :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:\ - :ds=\Eg\Ef\r:ei=:fs=^M:ho=^^:ic=\EQ:im=:k1=^A@\r:\ - :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ - :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:\ - :kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:\ - :kr=^L:ku=^K:le=^H:nd=^L:pf=\EA:po=\E@:se=\E(:sf=^J:\ - :so=\E0P\E):st=\E1:ta=^I:ts=\Eg\Ef:ue=\EG0:up=^K:\ - :us=\EG8:vb=\Eb\Ed:ve=\E.4:vs=\E.2: -qvt102|qume qvt 102 product:\ - :ve=\E.:tc=qvt101: -qvt103|qume qvt 103:\ - :am:xn:xo:\ - :co#80:it#8:li#24:vt#3:\ - :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bl=^G:\ - :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ - :cs=\E[%i%d;%dr:ct=\E[3g:do=^J:ho=\E[H:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:\ - :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ - :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ - :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m: -qvt103-w|qume qvt103 132 cols:\ - :co#132:li#24:\ - :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=qvt103: -qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals:\ - :am:hs:mi:ms:\ - :co#80:li#24:sg#0:\ - :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*1:\ - :cm=\E=%+ %+ :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:\ - :ds=\Eg\Ef\r:ei=\Er:fs=^M:ho=^^:im=\Eq:\ - :is=\EDF\EC\EG0\Er\E(\E%EX:k0=^AI\r:k1=^A@\r:\ - :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ - :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:\ - :kr=^L:ku=^K:le=^H:nd=^L:pf=\EA:po=\E@:se=\EG0:sf=^J:\ - :so=\EG4:sr=\EJ:st=\E1:ta=^I:ts=\Eg\Ef:ue=\EG0:up=^K:\ - :us=\EG8:vb=\En0\En1:ve=\E.4:vs=\E.2: -qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines:\ - :li#25:\ - :tc=qvt119+: -qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode:\ - :co#132:\ - :is=\EDF\EC\EG0\Er\E(\E%\EX\En4:tc=qvt119+: -qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25:\ - :li#25:\ - :tc=qvt119+: -qvt203|qvt203+|qume qvt 203 Plus:\ - :am:xn:xo:\ - :co#80:it#8:li#24:vt#3:\ - :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:\ - :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\ - :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ - :ei=\E[4l:ho=\E[H:im=\E[4h:ip=:k0=\E[29~:k1=\E[17~:\ - :k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:k6=\E[23~:\ - :k7=\E[24~:k8=\E[25~:k9=\E[28~:kb=^H:kd=\EOB:\ - :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:\ - :le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ - :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ - :sc=\E7:se=\E[m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m: -qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video):\ - :co#132:li#24:\ - :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=qvt203: -# -# Since a command is present for enabling 25 data lines, -# a specific terminfo entry may be generated for the 203. -# If one is desired for the QVT 119 PLUS then 25 lines must -# be selected in the status line (setup line 9). -# -qvt203-25|QVT 203 PLUS with 25 by 80 column mode:\ - :co#80:li#25:\ - :is=\E[=40h\E[?3l:tc=qvt203: -qvt203-25-w|QVT 203 PLUS with 25 by 132 columns:\ - :co#132:li#25:\ - :r2=\E[?3h\E[=40h:tc=qvt203: - -#### Televideo (tvi) -# -# TeleVideo -# 550 East Brokaw Road -# PO Box 49048 95161 -# San Jose CA 95112 -# Vox: (408)-954-8333 -# Fax: (408)-954-0623 -# -# -# There are some tvi terminals that require incredible amounts of padding and -# some that don't. I'm assuming 912 and 920 are the old slow ones, -# and 912b, 912c, 920b, 920c are the new ones that don't need padding. -# -# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer -# Televideo terminals are ANSI and PC-ANSI compatible. - -tvi803|televideo 803:\ - :cl=\E*:tc=tvi950: - -# Vanilla tvi910 -- W. Gish 10/29/86 -# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; -# mapped ":pt:" to ":it#8:"; added ":ug#0:" for terminfo translation; -# added khome, cub1, cud1, ind, hpa, vpa, am, msgr from SCO entry -- esr) -tvi910|televideo model 910:\ - :am:bs:ms:pt:\ - :co#80:it#8:li#24:sg#1:ug#0:\ - :bl=^G:bt=\EI:cd=\EY:ce=\ET:ch=\E]%+ :cl=^Z:\ - :cm=\E=%+ %+ :cr=^M:cv=\E[%+ :do=^J:ho=\E=\001\001:\ - :if=/usr/share/tabset/stdcrt:k0=^AI\r:k1=^A@\r:\ - :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ - :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:\ - :kr=^L:ku=^K:le=^H:nd=^L:se=\EG0:sf=^J:so=\EG4:\ - :ue=\EG0:up=^K:us=\EG8: -# From: Alan R. Rogers -# as subsequently hacked over by someone at SCO -# (tvi910+: removed obsolete ":ma=^K^P^L :"; mapped ":pt:" to ":it#8:"; -# added ":ug#0:" for terminfo translation -- esr) -tvi910+|910+|televideo 910+:\ - :am:bs:ms:pt:\ - :co#80:it#8:li#24:sg#1:ug#0:\ - :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:ch=\E]%+ :cl=^Z:\ - :cm=\E=%+ %+ :cr=^M:cv=\E[%+ :dc=\EW:dl=\ER:do=^J:\ - :ei=:ho=^^:ic=\EQ:if=/usr/share/tabset/stdcrt:im=:\ - :k0=^A@\r:k1=^AA\r:k2=^AB\r:k3=^AC\r:k4=^AD\r:\ - :k5=^AE\r:k6=^AF\r:k7=^AG\r:k8=^AH\r:k9=^AI\r:kb=^H:\ - :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^M:ll=\E=7 :nd=^L:\ - :se=\EG0:sf=^J:so=\EG4:ue=\EG0:up=^K:us=\EG8: - -# (tvi912: removed obsolete ":ma=^K^P^L :"; -# mapped ":pt:" to default tabs -- esr) -tvi912|tvi920|old televideo 912:\ - :am:bs:pt:\ - :co#80:li#24:sg#1:ug#1:\ - :al=\EE:bl=^G:cd=\Ey:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\ - :ct=\E3:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:\ - :if=/usr/share/tabset/stdcrt:im=:k0=^AI\r:k1=^A@\r:\ - :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ - :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kl=^H:kr=^L:\ - :ku=^K:le=^H:nd=^L:se=\Ek:sf=^J:so=\Ej:st=\E1:ta=^I:\ - :ue=\Em:up=^K:us=\El: -# the 912 has a key that's like shift: 8 xmits "^A8\r". -# The 920 has this plus real function keys that xmit different things. -# Terminfo makes you use the funct key on the 912 but the real keys on the 920. -tvi912c|tvi912b|912c|912b|tvi|new televideo 912:\ - :al=\EE:dl=\ER:tc=tvi912: -# set to page 1 when entering ex (\E-17 ) -# reset to page 0 when exiting ex (\E-07 ) -tvi912-2p|tvi920-2p|912-2p|920-2p|tvi-2p|televideo w/2 pages:\ - :te=\E-07 :ti=\E-17 :tc=tvi912: -# We got some new tvi912c terminals that act really weird on the regular -# termcap, so one of our gurus worked this up. Seems that cursor -# addressing is broken. -tvi912cc|tvi912 at cowell college:\ - :cm@:tc=tvi912c: - -tvi920b|tvi920c|new televideo 920:\ - :al=\EE:dl=\ER:k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:\ - :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:\ - :k9=^AH\r:tc=tvi912: - -tvi924|televideo tvi924:\ - :am:bw:hs:in:mi:ms:xn:xo:\ - :co#80:it#8:li#24:sg#0:ws#80:\ - :F1=^AK\r:F2=^AL\r:F3=^AM\r:F4=^AN\r:F5=^AO\r:al=\EE:\ - :bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*0:cm=\E=%+ %+ :\ - :cr=^M:cs=\E_%+ %+ :ct=\E3:dc=\EW:dl=\ER:do=^V:\ - :ds=\Es0:ei=:fs=^Y:ho=^^:\ - :i1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0:ic=\EQ:\ - :if=/usr/lib/tabset/stdcrt:im=:k0=^A@\r:k1=^AA\r:\ - :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:\ - :k7=^AG\r:k8=^AH\r:k9=^AI\r:k;=^AJ\r:kA=\EE:kC=\E*0:\ - :kD=\EW:kE=\Et:kI=\EQ:kL=\ER:kS=\Ey:kb=^H:kd=^V:\ - :kh=^^:kl=^H:kr=^L:ku=^K:l0=F1:l1=F2:l2=F3:l3=F4:\ - :l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:l9=F10:la=F11:le=^H:\ - :mb=\EG2:me=\EG0:mk=\EG1:nd=^L:pk=\E|%+1%s\031:\ - :se=\EG0:sf=^J:so=\EG4:sr=\Ej:st=\E1:ta=^I:ts=\Ef:\ - :ue=\EG0:up=^K:us=\EG8:vb=\Eb\Ed:ve=\E.3:vi=\E.0:\ - :vs=\E.1: -tvi924vb|924vb|televideo model 924 visual bells:\ - :vb=\Eb\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\Ed:tc=tvi924: - -tvi925|925|televideo 925:\ - :am:bw:hs:ul:\ - :co#80:li#24:sg#1:ug#1:\ - :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\ - :cm=\E=%+ %+ :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^V:\ - :ds=\Eh:ei=:fs=^M\Eg:ho=^^:ic=\EQ:im=:k0=^AI\r:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kC=^Z:\ - :kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:\ - :kh=^^:kl=^H:kr=^L:ku=^K:le=^H:se=\EG0:sf=^J:so=\EG4:\ - :st=\E1:ta=^I:ts=\Eh\Ef:ue=\EG0:up=^K:us=\EG8:\ - :vb=\Eb\Ed:ve=\E.4:vs=\E.2: -tvi925vb|925vb|televideo model 925 visual bells:\ - :vb=\Eb\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\Ed:tc=tvi925: -# Since the 925 uses a character position to store the escape sequences to go -# in and out of both stand out and underline modes, screen positioning is -# difficult. The following 925 entries don't use these modes. -tvi925n|925n|televideo model 925 no standout or underline:\ - :se@:so@:ue@:us@:tc=tvi925: -tvi925vbn|925vbn|televideo model 925 visual bells no so or ul:\ - :vb=\Eb\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\Ed:tc=tvi925n: - -# From: Tim Curry, Univ. of Central Fla. 5/21/82 -# (tvi925a: removed obsolete ":kn#12:"; mapped ":pt:" to ":it#8:" --esr) -tvi925a|925a|TeleVideo Model 925:\ - :am:bs:bw:pt:\ - :co#80:it#8:li#24:sg#1:ug#1:\ - :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :\ - :dc=\EW:dl=\ER:do=^V:ei=:ic=\EQ:\ - :if=/usr/share/tabset/std:im=:is=\El:kb=^H:kd=^V:\ - :kh=^^:kl=^H:kr=^L:ku=^K:nd=^L:se=\EG0:so=\EG4:\ - :ue=\EG0:up=^K:us=\EG8:\ - :vb=\Eb\200\200\200\200\200\200\200\200\200\200\200\200\200\200\Ed:\ - :ve=\E.4:vs=\E.2: - -# From: Todd Litwin 28 May 1993 -# Originally Tim Curry, Univ. of Central Fla., 5/21/82 -# for additional capabilities, -# The following tvi descriptions from B:pjphar and virus!mike -# is for all 950s. It sets the following attributes: -# full duplex (\EDF) write protect off (\E() -# conversation mode (\EC) graphics mode off (\E%) -# white on black (\Ed) auto page flip off (\Ew) -# turn off status line (\Eg) clear status line (\Ef\r) -# normal video (\E0) monitor mode off (\EX or \Eu) -# edit mode (\Er) load blank char to space (\Ee\040) -# line edit mode (\EO) enable buffer control (^O) -# protect mode off (\E\047) duplex edit keys (\El) -# program unshifted send key to send line all (\E016) -# program shifted send key to send line unprotected (\E004) -# set the following to nulls: -# field delimiter (\Ex0\200\200) -# line delimiter (\Ex1\200\200) -# start-protected field delimiter (\Ex2\200\200) -# end-protected field delimiter (\Ex3\200\200) -# set end of text delimiter to carriage return/null (\Ex4\r\200) -# (tvi950: early versions had ":ko=ic,dc,al,dl,cl,bt,ce,cd:" -# and ":ma=^Vj^Kk^Hh^Ll^^H:". I mapped ":pt:" to ":it#8:"; -# -tvi950|950|televideo950:\ - :am:bs:hs:mi:ms:pt:xn:xo:\ - :co#80:li#24:sg#1:ug#1:\ - :ac=d\rc\014e\nb\011i\013:ae=^X:al=\EE:as=^U:bl=^G:\ - :bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :cr=^M:\ - :ct=\E3:dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:\ - :ho=^^:im=\Eq:\ - :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\200\200\Ex1\200\200\Ex2\200\200\011\Ex3\200\200\Ex4\r\200\Ef\r:\ - :k0=^A0\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ - :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:\ - :kB=\EI:kC=\E*:kD=\EW:kE=\Et:kL=\ER:kS=\Ey:kb=^H:\ - :kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:pf=\Ea:\ - :po=\E`:se=\EG0:sf=^J:so=\EG4:sr=\Ej:st=\E1:ta=^I:\ - :ts=\Eg\Ef:ue=\EG0:up=^K:us=\EG8:\ - :vb=\Eb\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\Ed: -# -# is for 950 with two pages adds the following: -# set 48 line page (\E\\2) -# place cursor at page 0, line 24, column 1 (\E-07 ) -# set local (no send) edit keys (\Ek) -# -# two page 950 adds the following: -# when entering ex, set 24 line page (\E\\1) -# when exiting ex, reset 48 line page (\E\\2) -# place cursor at 0,24,1 (\E-07 ) -# set duplex (send) edit keys (\El) when entering vi -# set local (no send) edit keys (\Ek) when exiting vi -# -tvi950-2p|950-2p|televideo950 w/2 pages:\ - :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\200\200\Ex1\200\200\Ex2\200\200\011\Ex3\200\200\Ex4\r\200\E\\2\E-07 \011:\ - :ke=\Ek:ks=\El:te=\E\\2\E-07 :ti=\E\\1\E-07 :tc=tvi950: -# -# is for 950 with four pages adds the following: -# set 96 line page (\E\\3) -# place cursor at page 0, line 24, column 1 (\E-07 ) -# -# four page 950 adds the following: -# when entering ex, set 24 line page (\E\\1) -# when exiting ex, reset 96 line page (\E\\3) -# place cursor at 0,24,1 (\E-07 ) -# -tvi950-4p|950-4p|televideo950 w/4 pages:\ - :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\200\200\Ex1\200\200\Ex2\200\200\011\Ex3\200\200\Ex4\r\200\E\\3\E-07 \011:\ - :ke=\Ek:ks=\El:te=\E\\3\E-07 :ti=\E\\1\E-07 :tc=tvi950: -# -# is for reverse video 950 changes the following: -# set reverse video (\Ed) -# -# set vb accordingly (\Ed ...nulls... \Eb) -# -tvi950-rv|950-rv|televideo950 rev video:\ - :is=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\200\200\Ex1\200\200\Ex2\200\200\011\Ex3\200\200\Ex4\r\200:\ - :vb=\Ed\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\Eb:tc=tvi950: -# -# uses the appropriate entries from 950-2p and 950-rv -# -tvi950-rv-2p|950-rv-2p|televideo950 rev video w/2 pages:\ - :is=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\200\200\Ex1\200\200\Ex2\200\200\011\Ex3\200\200\Ex4\r\200\E\\2\E-07 :\ - :ke=\Ek:ks=\El:te=\E\\2\E-07 :ti=\E\\1\E-07 :\ - :vb=\Ed\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\Eb:tc=tvi950: -# -# uses the appropriate entries from 950-4p and 950-rv -# -tvi950-rv-4p|950-rv-4p|televideo950 rev video w/4 pages:\ - :is=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\200\200\Ex1\200\200\Ex2\200\200\011\Ex3\200\200\Ex4\r\200\E\\3\E-07 :\ - :ke=\Ek:ks=\El:te=\E\\3\E-07 :ti=\E\\1\E-07 :\ - :vb=\Ed\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\Eb:tc=tvi950: -# From: Andreas Stolcke -# (tvi955: removed obsolete ":ko=ic,dc,al,dl,cl,bt,ce,cd:ma:=^Vj^Kk^Hh^Ll^^H"; -# mapped ":pt:" to ":it#8:"; removed incorrect (and overridden) ":do=^J:"; -# fixed broken continuations in the :rs: string -- esr) -tvi955|televideo955:\ - :5i:am:bs:hs:mi:pt:xn:xo:\ - :co#80:it#8:li#24:\ - :RA=\E[=7l:RX=^N:SA=\E[=7h:SX=^O:\ - :ac=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ:ae=\E%:al=\EE:\ - :as=\E$:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :\ - :ct=\E3:dc=\EW:dl=\ER:do=^V:ds=\Eg\Ef\r:ei=\Er:fs=^M:\ - :ho=^^:im=\Eq:is=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El:\ - :k0=^A0\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ - :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:\ - :kB=\EI:kC=\EY:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kM=\EQ:\ - :kN=\EK:kP=\EJ:kT=\E1:ka=\E3:kb=^H:kd=^V:kh=^^:kl=^H:\ - :kr=^L:kt=\E2:ku=^K:le=^H:mb=\EG2:me=\EG0\E[=5l:\ - :mh=\E[=5h:mk=\EG1:mr=\EG4:nd=^L:pf=\Ea:po=\E`:\ - :ps=\EP:\ - :rs=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\200\E0p\E4\200\Ef\r:\ - :se=\EG0:so=\EG4:sr=\Ej:st=\E1:ts=\Eg\Ef:ue=\EG0:\ - :up=^K:us=\EG8:\ - :vb=\Eb\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\Ed:\ - :ve=\E.2:vi=\E.0:vs=\E.1: -tvi955-w|955-w|televideo955 w/132 cols:\ - :co#132:\ - :cm=\E[%i%d;%dH:is=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El:tc=tvi955: -# use half-intensity as normal mode, full intensity as bold (md) -tvi955-hb|955-hb|televideo955 half-bright:\ - :is=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El:md=\E[=5l:\ - :me=\EG0\E[=5h:mh@:tc=tvi955: -# From: Humberto Appleton , 880521 UT Austin -# (tvi970: removed ":sg#0:"; mapped ":pt:" to ":it#8:" -- esr) -tvi970|televideo970:\ - :bs:da:db:mi:ms:pt:\ - :co#80:it#8:li#24:\ - :ae=\E(B:al=\E[L:as=\E(B:bt=\E[Z:cd=\E[0J:ce=\E[0K:\ - :cl=\E[H\E[2J:cm=\E[%i%d;%df:dc=\E[P:dl=\E[M:do=\ED:\ - :ei=\E[4l:im=\E[4h:\ - :is=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J:\ - :k1=\E?a:k2=\E?b:k3=\E?c:k4=\E?d:k5=\E?e:k6=\E?f:\ - :k7=\E?g:k8=\E?h:k9=\E?i:kb=^H:kd=\E[B:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ku=\E[A:nd=\E[C:se=\E[0m:so=\E[7m:\ - :sr=\EM:ue=\E[0m:up=\EM:us=\E[4m:\ - :vb=\E[5;m\200\200\200\200\200\200\200\200\200\E[0;m:\ - :vs=\E[1Q: -# From Gene Rochlin 9/19/84. -# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars -# per line (rather than 40), Esc K chooses the normal character set. Not sure -# padding is needed, but adapted from the tvi920c termcap. The :so: and :us: -# strings are klutzy, but at least use no screen space. -# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:" -- esr) -tvipt|televideopt:\ - :am:bs:\ - :co#80:li#24:\ - :al=\EE<5*>:bt=\EI:ce=\ET:cl=^Z:cm=\E=%+ %+ :\ - :dl=\ER<5*>:ho=^^:if=/usr/share/tabset/stdcrt:\ - :is=\Ev\Eu\EK:kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:nd=^L:\ - :se=\EF:so=\EG1@A\EH:ue=\EF:up=^K:us=\EG1B@\EH: - -#### Visual (vi) -# - -# (vi50: mapped ":pt:" to default 8-char tabs -- esr) -vi50|visual 50:\ - :am:bs:ms:pt:\ - :co#80:li#24:\ - :al=\EL:bl=^G:cd=\Ek:ce=\EK:cl=^Z:cm=\E=%+ %+ :cr=^M:\ - :dl=\EM:do=^J:ho=\EH:kb=^H:kd=\EB:kh=\EH:kl=\ED:\ - :kr=\EC:ku=\EA:le=^H:nd=^L:se=\ET:sf=^J:so=\EU:ta=^I:\ - :up=^K: -# From: Jeff Siegal -# (vi55: mapped ":pt:" to ":it#8:" -- esr) -vi55|Visual 55:\ - :am:bs:mi:ms:pt:\ - :co#80:it#8:li#24:\ - :al=\EL:cd=\EJ:ce=\EK:cl=\Ev:cm=\EY%+ %+ :\ - :cs=\E_%+A%+A:dc=\Ew:dl=\EM:do=^J:ei=\Eb:ho=\EH:\ - :im=\Ea:is=\Ev\E_AX\Eb\EW\E9P\ET:kb=^H:kd=\EB:kl=\ED:\ - :kr=\EC:ku=\EA:le=^H:nd=\EC:se=\ET:so=\EU:sr=\EI:\ - :up=\EA: - -# The Visual 200 beeps when you type a character in insert mode. -# This is a horribly obnoxious misfeature, and some of the entries -# below try to get around the problem by ignoring the feature or -# turning it off when inputting a character. They are said not to -# work well at 300 baud. (You could always cut the wire to the bell!) -# From: Mon Nov 14 08:34:29 1983 -# (vi200: mapped ":pt:" to default 8-char tabbing -- esr) -vi200|vis200|visual 200 with function keys:\ - :am:bs:pt:\ - :co#80:li#24:\ - :al=\EL:bl=^G:cd=\Ey:ce=\Ex:cl=\Ev:cm=\EY%+ %+ :\ - :cr=^M:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\Ei \010\Ej:\ - :im=:is=\E3\Eb\Ej\E\\\El\EG\Ec\Ek:k0=\EP:k1=\EQ:\ - :k2=\ER:k3=\E :k4=\E!:k5=\E":k6=\E#:k7=\E$:k8=\E%:\ - :k9=\E&:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:\ - :nd=\EC:se=\E3:sf=^J:so=\E4:sr=\EI:ta=^I:up=\EA:\ - :ve=\Ec:vs=\Ed: -vi200-rv-ic|visual 200 reverse video using insert char:\ - :ei=\Ej:ic@:im=\Ei:tc=vi200-rv: -# The older Visuals didn't come with function keys. This entry uses -# ks and ke so that the keypad keys can be used as function keys. -# If your version of vi doesn't support function keys you may want -# to use vi200-f. -# (vi200: mapped ":pt:" to ":it#8:" -- esr) -vi200-f|visual|visual 200 no function keys:\ - :am:bs:pt:\ - :co#80:it#8:li#24:\ - :al=\EL:bl=^G:cd=\Ey:ce=\Ex:cl=\Ev:cm=\EY%+ %+ :\ - :cr=^M:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\Ei \010\Ej:\ - :im=:is=\E3\Eb\Ej\E\\\El\EG\Ed\Ek:k0=\E?p:k1=\E?q:\ - :k2=\E?r:k3=\E?s:k4=\E?t:k5=\E?u:k6=\E?v:k7=\E?w:\ - :k8=\E?x:k9=\E?y:kd=\EB:ke=\E>:kh=\EH:kl=\ED:kr=\EC:\ - :ks=\E=:ku=\EA:le=^H:nd=\EC:sf=^J:sr=\EI:ta=^I:\ - :up=\EA:ve=\Ec:vs=\Ed: -vi200-rv|visual 200 reverse video:\ - :se=\E3:so=\E4:sr@:ve@:vs@:tc=vi200: -vi200-ic|visual 200 using insert char:\ - :ei=\Ej:ic@:im=\Ei:tc=vi200: - -# the function keys are programmable but we don't reprogram -# them to their default values with "is" because programming -# them is very verbose. maybe an "if" file should be made for -# the 300 and they could be stuck in it. -vi300|visual 300 ansi x3.64:\ - :am:bw:mi:xn:\ - :co#80:li#24:\ - :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:\ - :ei=\E[4l:ho=\E[H:im=\E[4h:\ - :is=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s:\ - :k1=\E_A\E\\:k2=\E_B\E\\:k3=\E_C\E\\:k4=\E_D\E\\:\ - :k5=\E_E\E\\:k6=\E_F\E\\:k7=\E_G\E\\:k8=\E_H\E\\:\ - :k9=\E_I\E\\:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ - :le=^H:nd=\E[C:se=\E[m:sf=^J:so=\E[1m:sr=\EM:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m: -vi300-rv|visual 300 reverse video:\ - :bl=^G:cr=^M:do=^J:\ - :is=\E[7s\E[2;3;4;20;?6l\E[12;?5;?7h\E[1Q\E[0;1(D\E[8s:\ - :sf=^J:tc=vi300: -# slow scroll doesn't work that well; if you type on the -# keyboard while the terminal is scrolling it drops characters -vi300-ss|visual 300 slow scroll:\ - :bl=^G:cr=^M:do=^J:sf=^J:ve=\E[?4h:vs=\E[?4l:tc=vi300: -# some of the vi300s have older firmware that has the command -# sequence for setting editing extent reversed. -ovi300|visual 300 old:\ - :bl=^G:cr=^M:do=^J:\ - :is=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s:\ - :sf=^J:tc=vi300: -# if your version of ex/vi doesn't correctly implement xn -# use this termcap for the vi300 -vi300-aw|visual 300 no autowrap:\ - :am@:xn@:\ - :ve=\E[?7h:vs=\E[?7l:tc=vi300: - -# the visual 550 is a visual 300 with tektronix graphics, -# and with 33 lines. clear screen is modified here to -# also clear the graphics. -vi550|visual 550 ansi x3.64:\ - :li#33:\ - :bl=^G:cl=\030\E[H\E[2J:cr=^M:do=^J:sf=^J:tc=vi300: - -# (vi603: this had ":sb=\EM:"; sb is undefined, prob. an error for sr -- esr) -vi603|visual603|visual 603:\ - :hs:mi:\ - :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ - :cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:\ - :ds=\EP2;1~\E\\:ei=\E[4l:fs=\E\\:im=\E[4h:\ - :is=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ - :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ - :rs=\E>\E[?3l\E[?4l\E[?7h\E[?8h:se=\E[27m:sf=\ED:\ - :so=\E[7m:sr=\EM:ts=\EP2~:ue=\E[24m:up=\E[A:us=\E[4m:tc=vt100: - -#### Wyse (wy) -# -# Wyse Technology -# 3471 North First Street -# San Jose, CA 95134 -# Vox: (408)-473-1200 -# Fax: (408) 473-1222 -# -# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at -# (800)-800-WYSE (option 5 gets you a human). -# -# All the following entries until (but not including) wy100q are direct from -# Wyse technical support and represent their best knowledge as of January 1995. -# I made two trivial syntax fixes in the wyse30 entry, added OTbs everywhere -# needed, and merged in OTug#1 entries (as indicated by the termcap version of -# their descriptions). -# -# Note: The wyse75, wyse85, and wyse99 have been discontinued. - -# Although the Wyse 30 can support more than one attribute -# it requires magic cookies to do so. Many applications do not -# function well with magic cookies. The following terminfo uses -# the protect mode to support one attribute (dim) without cookies. -# If more than one attribute is needed then the wy30-mc terminfo -# should be used. -# -wy30|wyse30|Wyse 30:\ - :5i:am:bs:bw:hs:mi:ms:xo:\ - :Nl#8:co#80:lh#1:li#24:lw#8:ma#1:ug#1:ws#45:\ - :#2=\E{:&3=\Er:@8=\E7:LF=\EA11:LO=\EA10:\ - :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:al=\EE:\ - :as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ - :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:\ - :ds=\EF\r:ei=\Er:fs=^M:ho=^^:im=\Eq:ip=:\ - :is=\E'\E(\E^3\E`9\016\024:k1=^A@\r:k2=^AA\r:\ - :k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\ - :k8=^AG\r:kA=\EE:kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:\ - :kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:\ - :ku=^K:le=^H:ll=^^^K:me=\E(\EH\003:mh=\E`7\E):\ - :mp=\E`7\E):nd=^L:nw=^M^J:pf=^T:pn=\Ez%+/%s\r:po=^X:\ - :ps=\EP:px=\Ez%+?%s\177:\ - :..sa=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ - :se=\E(:sf=\n:so=\E`7\E):sr=\Ej:st=\E1:ta=\011:\ - :ts=\EF:up=^K:ve=\E`1:vi=\E`0: -# -# This terminal description uses the non-hidden attribute mode -# (with magic cookie). -# -wy30-mc|wyse30-mc|wyse 30 with magic cookies:\ - :ms@:\ - :ma@:sg#1:ug#1:\ - :ae=\EG0\EH\003:as=\EG0\EH\002:mb=\EG2:\ - :me=\EG0\E(\EH\003:mh=\EGp:mk=\EG1:mp=\EG0\E):\ - :mr=\EG4:\ - :..sa=\EG%'0'%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ - :se=\EG0:so=\EG4:te=\EG0:ue=\EG0:us=\EG8:tc=wy30: -# The manditorary pause used by flash does not work with -# older versions of terminfo. If you see this effect then -# unset xon and delete the / from the delay. -# i.e. change $<100/> to $<100> -wy30-vb|wyse30-vb|wyse 30 visible bell:\ - :vb=\E`8\E`9:tc=wy30: -# -# The Wyse 50 can support one attribute (e.g. Dim, Inverse, -# Normal) without magic cookies by using the protect mode. -# The following description uses this feature, but when more -# than one attribute is put on the screen at once, all attributes -# will be changed to be the same as the last attribute given. -# The Wyse 50 can support more attributes when used with magic -# cookies. The wy50-mc terminal description uses magic cookies -# to correctly handle multiple attributes on a screen. -# -wy50|wyse50|Wyse 50:\ - :5i:am:bs:bw:hs:mi:ms:xo:\ - :Nl#8:co#80:lh#1:li#24:lw#8:ma#1:ws#45:\ - :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:\ - :F3=^AL\r:F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:\ - :LO=\EA10:ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:\ - :al=\EE:as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ - :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:\ - :ds=\EF\r:ei=\Er:fs=^M:ho=^^:i1=\E`\072\E`9:im=\Eq:\ - :ip=:is=\016\024\E'\E(:k1=^A@\r:k2=^AA\r:k3=^AB\r:\ - :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:\ - :k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:kE=\ET:\ - :kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:\ - :kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:me=\E(\EH\003:\ - :mh=\E`7\E):mp=\E`7\E):mr=\E`6\E):nd=^L:nw=^M^J:\ - :pf=^T:pn=\Ez%+/%s\r:po=^X:ps=\EP:px=\Ez%+?%s\177:\ - :..sa=%?%p1%p3%|%t\E`6\E)\n%e%p5%p8%|%t\E`7\E)%e\E(%;\n%?%p9%t\EH\002%e\EH\003%;:\ - :se=\E(:sf=\n:so=\E`6\E):sr=\Ej:st=\E1:ta=^I:ts=\EF:\ - :up=^K:ve=\E`1:vi=\E`0: -# -# This terminal description uses the non-hidden attribute mode -# (with magic cookie). -# -wy50-mc|wyse50-mc|wyse 50 with magic cookies:\ - :ms@:\ - :ma@:sg#1:ug#1:\ - :ae=\EG0\EH\003:as=\EG0\EH\002:mb=\EG2:\ - :me=\EG0\E(\EH\003:mh=\EGp:mk=\EG1:mp=\EG0\E):\ - :mr=\EG4:\ - :..sa=\EG%'0'%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ - :se=\EG0:so=\EGt:te=\EG0:ue=\EG0:us=\EG8:tc=wy50: -# The mandatory pause used by flash does not work with -# older versions of terminfo. If you see this effect then -# unset xon and delete the / from the delay. -# i.e. change $<100/> to $<100> -wy50-vb|wyse50-vb|wyse 50 visible bell:\ - :vb=\E`8\E`9:tc=wy50: -wy50-w|wyse50-w|wyse 50 132-column:\ - :Nl#16:co#132:lw#7:ws#97:\ - :cm=\Ea%i%dR%dC:dc=\EW:i1=\E`;\E`9:tc=wy50: -wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell:\ - :vb=\E`8\E`9:tc=wy50-w: -# -# The Wyse 350 is a Wyse 50 with color. -# Unfortunately this means that it has magic cookies. -# The color attributes are designed to overlap the reverse, dim and -# underline attributes. This is nice for monochrome applications -# because you can make underline stuff green (or any other color) -# but for true color applications it's not so hot because you cannot -# mix color with reverse, dim or underline. -# To further complicate things one of the attributes must be -# black (either the foreground or the background). In reverse video -# the background changes color with black letters. In normal video -# the foreground changes colors on a black background. -# This terminfo uses some of the more advanced features of curses -# to display both color and blink. In the final analysis I am not -# sure that the wy350 runs better with this terminfo than it does -# with the wy50 terminfo (with user adjusted colors). -# -wy350|wyse350|Wyse 350:\ - :5i:am:bs:bw:hs:mi:xo:\ - :Co#8:NC#55:Nl#8:co#80:lh#1:li#24:lw#8:pa#8:sg#1:\ - :ug#1:ws#45:\ - :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:\ - :F3=^AL\r:F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:\ - :LO=\EA10:Sb= :\ - :..Sf=%?%p1%{0}%=%t%{76}\n%e%p1%{1}%=%t%{64}\n%e%p1%{2}%=%t%{8}\n%e%p1%{3}%=%t%{72}\n%e%p1%{4}%=%t%{4}\n%e%p1%{5}%=%t%{68}\n%e%p1%{6}%=%t%{12}\n%e%p1%{7}%=%t%{0}\n%;%PC\n\EG%gC%gA%+%'0'%+%c:\ - :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EG0\EH\003:\ - :al=\EE:as=\EG0\EH\002:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ - :cl=\E+:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:\ - :do=^J:ds=\EF\r:ei=\Er:fs=^M:ho=^^:i1=\E`\072\E`9:\ - :i2=\E%?:im=\Eq:ip=:is=\016\024\E'\E(:k1=^A@\r:\ - :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ - :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:\ - :kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:\ - :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:\ - :mb=\EG2:me=\EG0\E(\EH\003%{0}%PA%{0}%PC:mh=\EGp:\ - :mk=\EG1:mp=\EG0\E):mr=\EG4:nd=^L:nw=^M^J:oc=\E%?:\ - :op=\EG0:pf=^T:pn=\Ez%+/%s\r:po=^X:ps=\EP:\ - :px=\Ez%+?%s\177:\ - :..sa=%{0}%?%p4%t%{2}%|%;\n%?%p7%t%{1}%|%;%PA\n\EG%?%gC%t%gC%e\n%{0}%?%p1%t%{4}%|%;\n%?%p2%t%{8}%|%;\n%?%p3%t%{4}%|%;\n%?%p5%t%{64}%|%;\n%;%gA%+%'0'%+%c\n%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ - :se=\EG0:sf=\n:so=\EG4:sr=\Ej:st=\E1:ta=^I:ts=\EF:\ - :ue=\EG0:up=^K:us=\EG8:ve=\E`1:vi=\E`0: -# The manditorary pause used by flash does not work with -# older versions of terminfo. If you see this effect then -# unset xon and delete the / from the delay. -# i.e. change $<100/> to $<100> -wy350-vb|wyse350-vb|wyse 350 visible bell:\ - :vb=\E`8\E`9:tc=wy350: -wy350-w|wyse350-w|wyse 350 132-column:\ - :Nl#16:co#132:lw#7:ws#97:\ - :cm=\Ea%i%dR%dC:dc=\EW:i1=\E`;\E`9:tc=wy350: -wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell:\ - :vb=\E`8\E`9:tc=wy350-w: -# -# This terminfo description is untested. -# -wy100|wyse 100:\ - :hs:mi:\ - :co#80:li#24:sg#1:ug#1:\ - :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :\ - :cr=^M:dc=\EW:dl=\ER:do=^J:ds=\EA31:ei=\Er:fs=^M:\ - :im=\Eq:is=\Eu\E0:k1=^A@\r:k2=^AA\r:k3=^AB\r:\ - :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:kb=^H:\ - :kd=^J:kh=\E{:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\EG0:\ - :sf=^J:so=\EG4:ts=\EF:ue=\EG0:up=^K:us=\EG8: -# -# The Wyse 120/150 has most of the features of the Wyse 60. -# -# This terminal does not need padding up to 9600 baud! -# -# (msgr) should be set but the clear screen fails when in -# alt-charset mode. Try \EcE \E+ if the screen is really clear -# then set msgr. -# -wy120|wyse120|wy150|wyse150|Wyse 120/150:\ - :5i:am:bs:bw:hs:km:mi:ms:xo:\ - :Nl#8:co#80:it#8:lh#1:li#24:lw#8:pb#9601:ws#45:\ - :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:\ - :F3=^AL\r:F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:\ - :LO=\EA10:RA=\Ed.:RX=\Ec20:SA=\Ed/:SX=\Ec21\ntbc=\E0:\ - :ac=+/\\\054.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~:\ - :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ - :cl=\E+:cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:\ - :ds=\EF\r:ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:\ - :i2=\EwJ\Ew1:im=\Eq:ip=:\ - :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:\ - :kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:\ - :kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ - :ll=^^^K:mb=\EG2:me=\E(\EH\003\EG0\EcD:mh=\EGp:\ - :mk=\EG1:mp=\E):mr=\EG4:nd=^L:nw=\r\n:pf=^T:\ - :pl=\EZ2%+?%s\177:pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:\ - :px=\EZ1%+?%s\177:r1=\E~!\E~4:r2=\EeF\E`\072:\ - :r3=\EwG\Ee(:\ - :..sa=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%'0'%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c:\ - :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=\011:te=\Ew1:\ - :ti=\Ew0:ts=\EF:ue=\EG0:up=^K:us=\EG8:ve=\E`1:\ - :vi=\E`0: -# -wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column:\ - :Nl#16:co#132:lw#7:ws#97:\ - :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy120: -# -wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines:\ - :Nl@:lh@:li#25:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy120: -# -wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines:\ - :Nl@:lh@:li#25:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy120-w: -# -wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell:\ - :vb=\E`8\E`9:tc=wy120: -# -wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell:\ - :vb=\E`8\E`9:tc=wy120-w: -# -# The Wyse 60 is like the Wyse 50 but with more padding. -# The reset strings are slow and the pad times very depending -# on other parameters such as font loading. I have tried -# to follow the following outline: -# rs1 -> set personality -# rs2 -> set number of columns -# rs3 -> set number of lines -# is1 -> select the proper font -# is2 -> do the initialization -# is3 -> set up display memory (2 pages) -# -# The Wyse 60's that have vt100 emulation are slower than the -# older Wyse 60's. This change happened mid-1987. -# The capabilities effected are (dch1) (dl1) (il1) (ind) (ri) -# -# The meta key is only half right. This terminal will return the -# high order bit set when you hit CTRL-function_key -# -# It may be useful to assign two function keys with the -# values \E=(\s look at old data in page 1 -# \E=W, look at bottem of page 1 -# where \s is a space ( ). -# -# Note: -# The Wyse 60 runs faster when the XON/XOFF -# handshake is turned off. -# -wy60|wyse60|Wyse 60:\ - :5i:am:bs:bw:hs:km:mi:ms:\ - :Nl#8:co#80:lh#1:li#24:lw#8:ws#45:\ - :#2=\E{:%9=\EP:&3=\Er:@8=\E7:DK=\E`b:F1=^AJ\r:\ - :F2=^AK\r:F3=^AL\r:F4=^AM\r:F5=^AN\r:F6=^AO\r:\ - :LF=\EA11:LO=\EA10:RA=\Ed.:RC=\E`c:RX=\Ec20:SA=\Ed/:\ - :SX=\Ec21:\ - :ac=+/\\\054.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~:\ - :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ - :cl=\E+:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:\ - :do=^J:ds=\EF\r:ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:\ - :i2=\EwJ\Ew1:im=\Eq:ip=:\ - :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:\ - :kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:\ - :kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ - :ll=^^^K:mb=\EG2:me=\E(\EH\003\EG0\EcD:mh=\EGp:\ - :mk=\EG1:mp=\E):mr=\EG4:nd=^L:nw=\r\n:pf=^T:\ - :pl=\EZ2%+?%s\177:pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:\ - :px=\EZ1%+?%s\177:r1=\E~!\E~4:r2=\EeG:r3=\EwG\Ee(:\ - :..sa=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%'0'%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c:\ - :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=\011:te=\Ew1:\ - :ti=\Ew0:ts=\EF:ue=\EG0:up=^K:us=\EG8:ve=\E`1:\ - :vi=\E`0: -# -wy60-w|wyse60-w|wyse 60 132-column:\ - :Nl#16:co#132:lw#7:ws#97:\ - :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\EeF\E`;:tc=wy60: -# -wy60-25|wyse60-25|wyse 60 80-column 25-lines:\ - :Nl@:lh@:li#25:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy60: -wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines:\ - :Nl@:lh@:li#25:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy60-w: -# -wy60-42|wyse60-42|wyse 60 80-column 42-lines:\ - :li#42:\ - :al=\EE:cd=\Ey:cl=\E+:cm=\E=%+ %+ :dc=\EW:dl=\ER:\ - :i1=\EcB2\EcC3:ip=:nw=\r\n:r3=\Ee*:sf=\n:sr=\Ej:tc=wy60: -wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines:\ - :Nl#16:co#132:lw#7:ws#97:\ - :cd=\Ey:cl=\E+:cm=\Ea%i%dR%dC:dc=\EW:ho=\036:ip=:\ - :nw=\r\n:r2=\EeF\E`;:tc=wy60-42: -# -wy60-43|wyse60-43|wyse 60 80-column 43-lines:\ - :Nl@:lh@:li#43:lw@:\ - :pn@:r3=\Ee+:tc=wy60-42: -wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines:\ - :Nl@:lh@:li#43:lw@:\ - :pn@:r3=\Ee+:tc=wy60-42-w: -# -wy60-vb|wyse60-vb|Wyse 60 visible bell:\ - :vb=\E`8\E`9:tc=wy60: -wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell:\ - :vb=\E`8\E`9:tc=wy60-w: - -# The Wyse-99GT looks at lot like the Wyse 60 except that it -# does not have the 42/43 line mode. In the Wyse-60 the "lines" -# setup parameter controls the number of lines on the screen. -# For the Wyse 99GT the "lines" setup parameter controls the -# number of lines in a page. The screen can display 25 lines max. -# The Wyse-99GT also has personalities for the VT220 and -# Tektronix 4014. But this has no bearing on the native mode. -# -# (msgr) should be set but the clear screen fails when in -# alt-charset mode. Try \EcE \E+ if the screen is really clear -# then set msgr, else use msgr@. -# -# u0 -> enter Tektronix mode -# u1 -> exit Tektronix mode -# -wy99gt|wyse99gt|Wyse 99gt:\ - :ms@:\ - :al=\EE:cd=\Ey:ce=\Et:cl=\E+:dc=\EW:dl=\ER:i2=\Ew0:\ - :ip=:nw@:r2=\E`\072:sf=\n:sr=\Ej:ta=\011:te=\Ew0:\ - :ti=\Ew1:u0=\E~>\E8:u1=\E[42h:tc=wy60: -# -wy99gt-w|wyse99gt-w|wyse 99gt 132-column:\ - :Nl#16:co#132:lw#7:ws#97:\ - :cd=\Ey:cl=\E+:cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy99gt: -# -wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines:\ - :Nl@:lh@:li#25:lw@:\ - :pn@:r2=\E`\072:r3=\EwG\Ee):tc=wy99gt: -# -wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines:\ - :Nl@:lh@:li#25:lw@:\ - :pn@:r2=\E`;:tc=wy99gt-w: -# -wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell:\ - :vb=\E`8\E`9:tc=wy99gt: -# -wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell:\ - :vb=\E`8\E`9:tc=wy99gt-w: -# -# The Wyse 160 is combination of the WY-60 and the WY-99gt. -# The reset strings are slow and the pad times very depending -# on other parameters such as font loading. I have tried -# to follow the following outline: -# rs1 -> set personality -# rs2 -> set number of columns -# rs3 -> set number of lines -# is1 -> select the proper font -# is2 -> do the initialization -# is3 -> set up display memory (2 pages) -# -# The display memory may be used for either text or graphics. -# When "Display Memory = Shared" the terminal will have more pages -# but garbage may be left on the screen when you switch from -# graphics to text. If "Display Memory = Unshared" then the -# text area will be only one page long. -# -wy160|wyse160|Wyse 160:\ - :5i:am:bs:bw:hs:km:mi:ms:\ - :Nl#8:co#80:lh#1:li#24:lw#8:ws#38:\ - :#2=\E{:%9=\EP:&3=\Er:@8=\E7:DK=\E`b:F1=^AJ\r:\ - :F2=^AK\r:F3=^AL\r:F4=^AM\r:F5=^AN\r:F6=^AO\r:\ - :LF=\EA11:LO=\EA10:RA=\Ed.:RC=\E`c:RX=\Ec20:SA=\Ed/:\ - :SX=\Ec21:\ - :ac=+/\\\054.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~:\ - :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ - :cl=\E+:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:\ - :do=^J:ds=\EF\r:ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:\ - :i2=\Ew0:im=\Eq:ip=:\ - :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:\ - :kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:\ - :kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ - :ll=^^^K:mb=\EG2:me=\E(\EH\003\EG0\EcD:mh=\EGp:\ - :mk=\EG1:mp=\E):mr=\EG4:nd=^L:nw=\r\n:pf=^T:\ - :pl=\EZ2%+?%s\177:pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:\ - :px=\EZ1%+?%s\177:r1=\E~!\E~4:r2=\E`\072:r3=\EwG\Ee(:\ - :..sa=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%'0'%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c:\ - :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:te=\Ew0:\ - :ti=\Ew1:ts=\EF:ue=\EG0:up=^K:us=\EG8:ve=\E`1:\ - :vi=\E`0: -# -wy160-w|wyse160-w|wyse 160 132-column:\ - :Nl#16:co#132:lw#7:ws#90:\ - :cm=\Ea%i%dR%dC:dc=\EW:r2=\EeF\E`;:tc=wy160: -# -wy160-25|wyse160-25|wyse 160 80-column 25-lines:\ - :Nl@:lh@:li#25:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy160: -wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines:\ - :Nl@:lh@:li#25:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy160-w: -# -wy160-42|wyse160-42|wyse 160 80-column 42-lines:\ - :li#42:\ - :al=\EE:cd=\Ey:cl=\E+:dl=\ER:i1=\EcB2\EcC3:nw=\r\n:\ - :r3=\Ee*:sf=\n:sr=\Ej:tc=wy160: -wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines:\ - :Nl#16:co#132:lw#7:ws#90:\ - :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\EeF\E`;:tc=wy160-42: -# -wy160-43|wyse160-43|wyse 160 80-column 43-lines:\ - :Nl@:lh@:li#43:lw@:\ - :pn@:r3=\Ee+:tc=wy160-42: -wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines:\ - :Nl@:lh@:li#43:lw@:\ - :pn@:r3=\Ee+:tc=wy160-42-w: -# -wy160-vb|wyse160-vb|Wyse 160 visible bell:\ - :vb=\E`8\E`9:tc=wy160: -wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell:\ - :vb=\E`8\E`9:tc=wy160-w: -# -# The Wyse 75 is a vt100 lookalike without advanced video. -# -# The Wyse 75 can support one attribute (e.g. Dim, Inverse, -# Underline) without magic cookies. The following description -# uses this capability, but when more than one attribute is -# put on the screen at once, all attributes will be changed -# to be the same as the last attribute given. -# The Wyse 75 can support more attributes when used with magic -# cookies. The wy75-mc terminal description uses magic cookies -# to correctly handle multiple attributes on a screen. -# -wy75|wyse75|wyse 75:\ - :5i:am:bs:hs:mi:ms:xn:xo:\ - :co#80:li#24:ma#1:pb#1201:ug#1:ws#78:\ - :%1=\E[28~:%9=\E[?5i:*6=\E[4~:@0=\E[1~:@8=\EOM:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\ - :F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:\ - :F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:FB=\E[35~:\ - :IC=\E[%d@:K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:\ - :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ - :ce=\E[K:ch=\E[%i%dG:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ - :ds=\E[>\\\054\001\001\E[>-\001\001:eA=\E)0:\ - :ec=\E[%dX:ei=\E[4l:fs=^A:ho=\E[H:\ - :i1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h:i2=\E[m:\ - :im=\E[4h:ip=:is=\E>\E(B\E)0\017:k1=\E[?5i:k2=\E[?3i:\ - :k3=\E[2i:k4=\E[@:k5=\E[M:k6=\E[17~:k7=\E[18~:\ - :k8=\E[19~:k9=\E[20~:k;=\E[21~:kA=\E[L:kE=\E[K:\ - :kI=\E[@:kL=\E[M:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:\ - :ke=\E>:kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[?1l\E[?7h\E=:\ - :ku=\E[A:le=^H:me=\E[m\017:mh=\E[0t\E[2m:\ - :mr=\E[1t\E[7m:nd=\E[C:pf=\E[4i:po=\E[5i:ps=\E[0i:\ - :r1=\E[13l\E[3l\E!p:r2=\E[35h\E[?3l:r3=\E[?5l:rc=\E8:\ - :..sa=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=\n:so=\E[1t\E[7m:sr=\EM:st=\EH:\ - :ta=^I:ts=\E[>\\\054\001:ue=\E[m:up=\E[A:\ - :us=\E[2t\E[4m:ve=\E[?25h:vi=\E[?25l: -# -# This terminal description uses the non-hidden attribute mode -# (with magic cookie). -# -wy75-mc|wyse75-mc|wyse 75 with magic cookies:\ - :ms@:\ - :ma@:sg#1:ug#1:\ - :ae=\E[0p\017:as=\E[0p\016:i2=\E[m\E[p:mb=\E[2p:\ - :me=\E[0p\017:mh=\E[1p:mk=\E[4p:mr=\E[16p:\ - :..sa=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;:\ - :se=\E[0p:so=\E[17p:ue=\E[0p:us=\E[8p:tc=wy75: -wy75-vb|wyse75-vb|wyse 75 with visible bell:\ - :pb@:\ - :vb=\E[30h\E\\\054\E[30l:tc=wy75: -wy75-w|wyse75-w|wyse 75 in 132 column mode:\ - :co#132:ws#130:\ - :r2=\E[35h\E[?3h:tc=wy75: -wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns:\ - :pb@:\ - :vb=\E[30h\E\\\054\E[30l:tc=wy75-w: -# -# Wyse 85 emulating a vt220 7 bit mode. -# 24 line screen with status line. -# -# The vt220 mode permits more function keys but it wipes out -# the escape key. I strongly reccomend that f11 be set to -# escape (esc). -# The terminal may have to be set for 8 data bits and 2 stop -# bits for the arrow keys to work. -# The Wyse 85 runs faster with XON/XOFF enabled. Also the -# (dch) and (ich) work best when XON/XOFF is set. (ich) and -# (dch) leave trash on the screen when used without XON/XOFF. -# -wy85|wyse85|wyse 85:\ - :5i:am:bs:hs:mi:ms:xn:xo:\ - :co#80:it#8:li#24:ws#80:\ - :%1=\E[28~:*6=\E[4~:@0=\E[1~:@8=\EOM:AL=\E[%dL:\ - :DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:F2=\E[24~:\ - :F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:\ - :F8=\E[32~:F9=\E[33~:FA=\E[34~:IC=\E[%d@:K1=\EOw:\ - :K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:RA=\E[?7l:\ - :RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ - :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ - :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ - :ds=\E[40l:eA=\E)0:ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:\ - :ho=\E[H:i1=\E[62;1"p\E[?5W:i2=\E>\E(B\E)0\017\E[m:\ - :im=\E[4h:ip=:\ - :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\ - :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ - :k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\E[3~:kI=\E[2~:\ - :kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:kh=\E[26~:\ - :kl=\E[D:kr=\E[C:ks=\E[?1l\E=:ku=\E[A:l1=PF1:l2=PF2:\ - :l3=PF3:l4=PF4:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\ - :mh=\E[2m:mk=\E[8m:mr=\E[7m:nd=\E[C:pf=\E[4i:\ - :po=\E[5i:ps=\E[0i:r1=\E[13l\E[3l\E!p:\ - :r2=\E[35h\E[?3l:r3=\E[?5l:rc=\E8:\ - :..sa=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=\011:\ - :ts=\E[40h\E7\E[25;%i%p1%dH:ue=\E[m:up=\E[A:us=\E[4m:\ - :ve=\E[?25h:vi=\E[?25l: -# -# Wyse 85 with visual bell. -wy85-vb|wyse85-vb|wyse 85 with visible bell:\ - :vb=\E[30h\E\\\054\E[30l:tc=wy85: -# -# Wyse 85 in 132-column mode. -wy85-w|wyse85-w|wyse 85 in 132-column mode:\ - :co#132:ws#132:\ - :r2=\E[35h\E[?3h:tc=wy85: -# -# Wyse 85 in 132-column mode with visual bell. -wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns:\ - :vb=\E[30h\E\\\054\E[30l:tc=wy85-w: -# -# Wyse 185 emulating a vt320 7 bit mode. -# -# This terminal always displays 25 lines. These lines may be used -# as 24 data lines and a terminal status line (top or bottom) or -# 25 data lines. The 48 and 50 line modes change the page size -# and not the number of lines on the screen. -# -# The Compose Character key can be used as a meta key if changed -# by set-up. -# -wy185|wyse185|wyse 185:\ - :5i:am:bs:hs:km:mi:ms:xn:xo:\ - :co#80:it#8:li#24:ws#80:\ - :%1=\E[28~:*6=\E[4~:@0=\E[1~:@8=\EOM:AL=\E[%dL:\ - :DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:F2=\E[24~:\ - :F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:\ - :F8=\E[32~:F9=\E[33~:FA=\E[34~:IC=\E[%d@:K1=\EOw:\ - :K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:RA=\E[?7l:\ - :RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ - :ce=\E[K:ch=\E[%i%d`:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:cv=\E[%i%dd:dc=\E[P:\ - :dl=\E[M:do=^J:ds=\E7\E[99;0H\E[K\E8:eA=\E)0:\ - :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:i1=\E[?5W:\ - :i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\ - :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\ - :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ - :k8=\E[19~:k9=\E[20~:k;=\E[21~:kB=\E[Z:kD=\E[3~:\ - :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:\ - :kh=\E[26~:kl=\E[D:kr=\E[C:ks=\E[?1l\E=:ku=\E[A:\ - :l1=PF1:l2=PF2:l3=PF3:l4=PF4:le=^H:mb=\E[5m:md=\E[1m:\ - :me=\E[m\017:mh=\E[2m:mk=\E[8m:mr=\E[7m:nd=\E[C:\ - :pf=\E[4i:po=\E[5i:ps=\E[0i:\ - :r1=\E[13l\E[3l\E\\\E[63;1"p\E[!p:r2=\E[35h\E[?3l:\ - :r3=\E[?5l\E[47h\E[40l\E[r:rc=\E8:\ - :..sa=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[27m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ - :te=\E[ R:ti=\E[ Q:ts=\E7\E[99;%i%p1%dH:ue=\E[24m:\ - :up=\E[A:us=\E[4m:ve=\E[34h\E[?25h:vi=\E[?25l:\ - :vs=\E[?25h\E[34l: -# -# Wyse 185 with 24 data lines and top status (terminal status) -wy185-24|wyse185-24|wyse 185 with 24 data lines:\ - :hs@:\ - :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy185: -# -# Wyse 185 with visual bell. -wy185-vb|wyse185-vb|wyse 185 with visible bell:\ - :vb=\E[30h\E\\\054\E[30l:tc=wy185: -# -# Wyse 185 in 132-column mode. -wy185-w|wyse185-w|wyse 185 in 132-column mode:\ - :co#132:ws#132:\ - :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:\ - :r2=\E[35h\E[?3h:tc=wy185: -# -# Wyse 185 in 132-column mode with visual bell. -wy185-wvb|wyse185-wvb|wyse 185 with visible bell 132-columns:\ - :vb=\E[30h\E\\\054\E[30l:tc=wy185-w: - -# wy325 terminfo entries -# Done by Joe H. Davis 3-9-92 - -# lines 25 columns 80 -# -wy325|wyse325|Wyse-epc:\ - :5i:am:bs:bw:hs:mi:\ - :Nl#8:co#80:lh#1:li#24:lw#8:pb#9601:ws#45:\ - :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:\ - :F3=^AL\r:F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:\ - :LO=\EA10:RA=\Ed.:SA=\Ed/:\ - :ac=+/\\\054.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~:\ - :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ - :cl=\E+:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:\ - :do=^J:ds=\EF\r:ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:\ - :i2=\Ew0:im=\Eq:ip=:\ - :is=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:\ - :kB=\EI:kD=\EW:kE=\ET:kI=\Eq:kL=\ER:kN=\EK:kP=\EJ:\ - :kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ - :ll=^^^K:mb=\EG2:me=\E(\EH\003\EG0\EcD:mh=\EGp:\ - :mk=\EG1:mp=\E):mr=\EG4:nd=^L:pf=^T:pl=\EZ2%+?%s\177:\ - :pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:px=\EZ1%+?%s\177:\ - :r1=\E~!\E~4:r2=\EeF\E`\072:r3=\EwG\Ee(:\ - :..sa=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%'0'%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c:\ - :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:te=\Ew0:\ - :ti=\Ew1:ts=\EF:ue=\EG0:up=^K:us=\EG8:ve=\E`1:\ - :vi=\E`0: - -# -# lines 24 columns 80 vb -# -wy325-vb|wyse325-vb|wy150-vb:\ - :vb=\E`8\E`9:tc=wy325: - -# -# lines 24 columns 132 -# -wy325-w|wyse325-w|wy325w-24:\ - :Nl#16:co#132:lw#7:ws#97:\ - :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy325: -# -# lines 25 columns 80 -# -wy325-25|wyse325-25|wy325-80:\ - :Nl@:lh@:li#25:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy325: -# -# lines 25 columns 132 -# -wy325-25w|wyse325-25w|wy325 132 columns:\ - :Nl@:lh@:li#25:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy325-w: -# -# lines 25 columns 132 vb -# -wy325-w-vb|wy325-wvb|wyse325-wvb:\ - :vb=\E`8\E`9:tc=wy325-w: - -# -# lines 42 columns 80 -# -wy325-42|wyse325-42:\ - :Nl@:lh@:li#42:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy325: -# -# lines 42 columns 132 -# -wy325-42w|wyse325-42w:\ - :Nl@:lh@:li#42:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy325-w: -# -# lines 42 columns 132 vb -# -wy325-42w-vb|wy325-42wvb:\ - :vb=\E`8\E`9:tc=wy325-w: -# -# lines 43 columns 80 -# -wy325-43|wyse325-43:\ - :Nl@:lh@:li#43:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy325: -# -# lines 43 columns 132 -# -wy325-43w|wyse325-43w:\ - :Nl@:lh@:li#43:lw@:\ - :pn@:r3=\EwG\Ee):tc=wy325-w: -# -# lines 43 columns 132 vb -# -wy325-43w-vb|wy325-43wvb:\ - :vb=\E`8\E`9:tc=wy325-w: -# Wyse 370 -# -# 24 line screen with status line. -# -# The terminal may have to be set for 8 data bits and 2 stop -# bits for the arrow keys to work. -# -# If you change keyboards the terminal will send different -# escape sequences. -# The following definition is for the basic terminal without -# function keys. -# -# u0 -> enter Tektronix 4010/4014 mode -# u1 -> exit Tektronix 4010/4014 mode -# u2 -> enter ASCII mode (from any ANSI mode) -# u3 -> exit ASCII mode (goto native ANSI mode) -# u4 -> enter Tek 4207 ANSI mode (from any ANSI mode) -# u5 -> exit Tek 4207 mode (goto native ANSI mode) -# -# (untranslatable capabilities removed to fit entry within 1023 bytes) -# WARNING: this entry, 1201 bytes long, may core-dump older termcap libraries! -wy370-nk|wyse 370 without function keys:\ - :5i:am:bs:cc:hs:mi:ms:xn:xo:\ - :Co#64:NC#48:co#80:it#8:li#24:pa#64:ws#80:\ - :AL=\E[%dL:DC=\E[%dP:DK=\E[31h:DL=\E[%dM:DO=\E[%dB:\ - :IC=\E[%d@::LE=\E[%dD:RA=\E[?7l:RC=\E[31l:RI=\E[%dC:\ - :SA=\E[?7h:Sb=\E[62;%dw:Sf=\E[61;%dw:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ - :ce=\E[K:ch=\E[%i%d`:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:cv=\E[%i%dd:dc=\E[P:\ - :dl=\E[M:do=^J:ds=\E[40l:eA=\E)0:ec=\E[%dX:ei=\E[4l:\ - :fs=\E[1;24r\E8:ho=\E[H:i1=\E[90;1"p\E[?5W:\ - :i2=\E>\017\E)0\E(B\E[63;0w\E[m:im=\E[4h:ip=:\ - :is=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h:\ - :ke=\E>:ks=\E[?1l\E=:le=^H:mb=\E[5m:md=\E[1m:\ - :me=\E[m\017:mh=\E[2m:mk=\E[8m:mr=\E[7m:nd=\E[C:\ - :oc=\E[60w\E[63;0w\n\E[66;1;4w\n\E[66;2;13w\n\E[66;3;16w\n\E[66;4;49w\n\E[66;5;51w\n\E[66;6;61w\n\E[66;7;64w:\ - :op=\E[m:pf=\E[4i:po=\E[5i:ps=\E[0i:\ - :r1=\E[13l\E[3l\E!p\E[?4i:r2=\E[35h\E[?3l:r3=\E[?5l:\ - :rc=\E8::sc=\E7:se=\E[27m:sf=\n:so=\E[7m:sr=\EM:\ - :st=\EH:ta=\011:te=\E[ R:ti=\E[ Q:\ - :ts=\E[40l\E[40h\E7\E[99;%i%p1%dH:u0=\E[?38h\E8:\ - :u1=\E[?38l\E)0:u2=\E[92;52"p:u3=\E~B:u4=\E[92;76"p::\ - :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[34h\E[?25h:\ - :vi=\E[?25l:vs=\E[?25h\E[34l: -# -# Function key set for the ASCII (wy-50 compatable) keyboard -# -wy370-101k|Wyse 370 with 101 key keyboard:\ - :@8=\EOM:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\ - :F5=\E[28~:F6=\E[29~:k1=\E[?4i:k2=\E[?3i:k3=\E[2i:\ - :k4=\E[@:k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ - :k9=\E[20~:k;=\E[21~:kA=\EOP:kB=\E[Z:kD=\EOQ:kI=\EOP:\ - :kL=\EOQ:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ku=\E[A:tc=wy370-nk: -# -# Function key set for the VT-320 (and wy85) compatable keyboard -# -wy370-105k|Wyse 370 with 105 key keyboard:\ - :%1=\E[28~:*6=\E[4~:@0=\E[1~:@8=\EOM:F1=\E[23~:\ - :F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:\ - :F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:K1=\EOw:\ - :K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:k1=\EOP:k2=\EOQ:\ - :k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ - :k9=\E[20~:k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\ - :kP=\E[5~:kb=^H:kd=\E[B:kh=\E[26~:kl=\E[D:kr=\E[C:\ - :ku=\E[A:l1=PF1:l2=PF2:l3=PF3:l4=PF4:tc=wy370-nk: -# -# Function key set for the PC compatable keyboard -# -wy370-EPC|Wyse 370 with 102 key keyboard:\ - :@7=\E[1~:@8=\EOM:F1=\E[23~:F2=\E[24~:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:k7=\E[18~:\ - :k8=\E[19~:k9=\E[20~:k;=\E[21~:kB=\E[Z:kI=\E[2~:\ - :kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ - :kr=\E[C:ku=\E[A:tc=wy370-nk: -# -# Set up the default WY-370. -# -wy370|wyse370|Wyse 370:\ - :tc=wy370-101k: -# -# Wyse 370 with visual bell. -wy370-vb|Wyse 370 with visible bell:\ - :vb=\E[30h\E\\\054\E[30l:tc=wy370: -# -# Wyse 370 in 132-column mode. -wy370-w|Wyse 370 in 132-column mode:\ - :co#132:ws#132:\ - :r2=\E[35h\E[?3h:tc=wy370: -# -# Wyse 370 in 132-column mode with visual bell. -wy370-wvb|Wyse 370 with visible bell 132-columns:\ - :vb=\E[30h\E\\\054\E[30l:tc=wy370-w: -wy370-rv|Wyse 370 reverse video:\ - :r3=\E[32h\E[?5h:tc=wy370: -# -# Wyse 99gt Tektronix 4010/4014 emulator, -# -wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator:\ - :am:bs:os:\ - :co#74:li#35:\ - :bl=^G:cl=\E^L:\ - :..cm=\035%{3040}%{89}%p1%*%-%Py\n%p2%{55}%*%Px\n%gy%{128}%/%{31}%&%{32}%+%c\n%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c\n%gy%{004}%/%{31}%&%{96}%+%c\n%gx%{128}%/%{31}%&%{32}%+%c\n%gx%{004}%/%{31}%&%{64}%+%c\037:\ - :cr=^M:do=^J:ff=^L:\ - :hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037:\ - :ho=^]7`x @\037:\ - :hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037:\ - :is=\E8:le=^H:nd= :nw=^M^J:u0=\E~>\E8:u1=\E[42h:\ - :up=^K: -# -# Wyse 160 Tektronix 4010/4014 emulator, -# -wy160-tek|Wyse 160 Tektronix 4010/4014 emulator:\ - :..cm=\035%{3103}%{91}%p1%*%-%Py\n%p2%{55}%*%Px\n%gy%{128}%/%{31}%&%{32}%+%c\n%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c\n%gy%{004}%/%{31}%&%{96}%+%c\n%gx%{128}%/%{31}%&%{32}%+%c\n%gx%{004}%/%{31}%&%{64}%+%c\037:\ - :ho=^]8`g @\037:tc=wy99gt-tek: -# -# Wyse 370 Tektronix 4010/4014 emulator, -# -wy370-tek|Wyse 370 Tektronix 4010/4014 emulator:\ - :am:bs:os:\ - :co#80:li#36:\ - :bl=^G:cl=\E^L:\ - :..cm=\035%{775}%{108}%p1%*%{5}%/%-%Py\n%p2%{64}%*%{4}%+%{5}%/%Px\n%gy%{32}%/%{31}%&%{32}%+%c\n%gy%{31}%&%{96}%+%c\n%gx%{32}%/%{31}%&%{32}%+%c\n%gx%{31}%&%{64}%+%c\037:\ - :cr=^M:do=^J:ff=^L:\ - :hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037:\ - :ho=^]8g @\037:\ - :hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037:\ - :is=\E8:kb=^H:kd=^J:kl=^H:kr=^I:ku=^K:le=^H:nd= :\ - :nw=^M^J:u0=\E[?38h\E8:u1=\E[?38l\E)0:up=^K: - -# Vendor-supplied Wyse entries end here. - -# From: Eric Freudenthal -wy100q|Wyse 100 for Quotron:\ - :bs:\ - :co#80:li#24:sg#1:ug#1:\ - :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :\ - :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:\ - :is=\E`\072\200\EC\EDF\E0\E'\E(\EA21:kd=^J:kl=^H:\ - :kr=^L:ku=^K:nd=^L:se=\EG0:so=\EG4:sr=\Ej:ue=\EG0:\ - :up=^K:us=\EG8: - -#### Kermit terminal emulations -# -# Obsolete Kermit versions may be listed in the section describing obsolete -# non-ANSI terminal emulators later in the file. -# - -# KERMIT standard all versions. -# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi. -# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) -# From: greg small 9-25-84 -kermit|standard kermit:\ - :bs:\ - :co#80:li#24:\ - :cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :ho=\EH:\ - :is=K0 Standard Kermit 9-25-84\n:kd=^J:kh=^^:kl=^H:\ - :kr=^L:ku=^K:nd=\EC:up=\EA: -kermitam|standard kermit plus auto-margin:\ - :am:\ - :is=K1 Standard Kermit plus Automatic Margins\n:tc=kermit: -# IBMPC Kermit 1.2. -# Bugs :cd:ce: do not work except at beginning of line! :cl: does not work, -# but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of line). -# From: greg small 8-30-84 -pckermit|pckermit12|UCB IBMPC Kermit 1.2:\ - :am:\ - :li#25:\ - :cd@:ce@:cl=\EH\EJ:\ - :is=K2 UCB IBMPC Kermit 1.2 8-30-84\n:tc=kermit: -# IBMPC Kermit 1.20 -# Cannot use line 25, now acts funny like ansi special scrolling region. -# Initialization must escape from that region by cursor position to line 24. -# Cannot use character insert because 1.20 goes crazy if insert at col 80. -# Does not use am: because autowrap mode lost when kermit dropped and restarted. -# (pckermit: mapped ":pt:" to ":it#8:" -- esr) -# From: greg small 12-19-84 -pckermit120|UCB IBMPC Kermit 1.20:\ - :am@:pt:\ - :it#8:li#24:\ - :al=\EL:dc=\EN:dl=\EM:do=\EB:ei@:im@:\ - :is=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n:\ - :se=\Eq:so=\Ep:vs=\EO\Eq\EEK3:tc=kermit: -# MS-DOS Kermit 2.27 for the IBMPC -# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi. -# Cannot use line 25, now acts funny like ansi special scrolling region. -# Initialization must escape from that region by cursor position to line 24. -# Does not use am: because autowrap mode lost when kermit dropped and restarted. -# Reverse video for standout like H19. -# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:"; -# mapped ":pt:" to ":it#8:" -- esr) -# From: greg small 3-17-85 -msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC:\ - :am@:bs:pt:\ - :co#80:it#8:li#24:\ - :al=\EL:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :dc=\EN:\ - :dl=\EM:do=\EB:ei=\EO:ho=\EH:im=\E@:\ - :is=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n:\ - :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:nd=\EC:rc=\Ek:sc=\Ej:\ - :se=\Eq:so=\Ep:up=\EA:vs=\EO\Eq\EG\EwK4: -# MS-DOS Kermit 2.27 with automatic margins -# From: greg small 3-17-85 -msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins:\ - :am:\ - :is=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n:\ - :vs=\EO\Eq\EG\EvK5:tc=msk227: -# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC -# Automatic margins now default. Use ansi set graphic rendition for standout, -# underline and ul codes (:md:,:me:,:mr:). Define function keys. -# (msk22714: removed obsolete ":kn#10:" -- esr) -# From: greg small 3-17-85 -msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC:\ - :am:\ - :is=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n:\ - :k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:\ - :k7=\E7:k8=\E8:k9=\E9:md=\E[1m:me=\E[m:mr=\E[7m:\ - :se=\E[m:so=\E[1m:ue=\E[m:us=\E[4m:vs=\EO\Eq\EG\EvK6:tc=mskermit227: -# This was designed for a VT320 emulator, but it is probably a good start -# at support for the VT320 itself. -# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu. -vt320-k3|MS-Kermit 3.00's vt320 emulation:\ - :am:es:hs:km:mi:ms:xn:\ - :co#80:it#8:li#49:pb#9600:vt#3:\ - :AL=\E[%dL:CC=\E:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\ - :IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:SR=\E[%dL:UP=\E[%dA:\ - :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ - :ch=\E[%i%dG:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ - :cs=\E[%i%d;%dr:ct=\E[3g:cv=\E[%i%dd:dc=\E[P:dl=\E[M:\ - :do=^J:ds=\E[0$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:\ - :ho=\E[H:im=\E[4h:is=\E>\E F\E[?1l\E[?7h\E[r\E[2$~:\ - :k0=\E[21~:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:\ - :k7=\E[18~:k8=\E[19~:k9=\E[20~:kI=\E[2~:kL=\E[3~:\ - :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:\ - :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ - :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:pf=\E[4i:\ - :po=\E[5i:ps=\E[0i:\ - :r1=\E(B\E)B\E>\E F\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h\E4i\E?4i\E[m\E[r\E[2$~:\ - :rc=\E8:sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:\ - :st=\EH:ta=^I:ts=\E[1$}\r\E[K:ue=\E[24m:up=\E[A:\ - :us=\E[4m:vb=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l:\ - :ve=\E[?25h:vi=\E[?25l: - -######## OLDER TERMINAL TYPES -# -# This section is devoted to older commercial terminal brands that are now -# discontinued, but known to be still in use or represented by emulations. -# - -#### AT&T (att, tty) -# -# This section also includes Teletype-branded VDTs. -# -# The AT&T/Teletype terminals group was sold to SunRiver Data Systems; for -# details, see the header comment on the ADDS section. -# -# These are AT&T's official terminfo entries -# -att2300|ATT2300|sv80|AT&T 2300 Video Information Terminal 80 column mode:\ - :am:eo:mi:ms:xo:\ - :co#80:it#8:li#24:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[11r:\ - :F2=\E[12r:F3=\E[13r:F4=\E[14r:F5=\E[15r:F6=\E[16r:\ - :IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:\ - :bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ - :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\ - :ho=\E[H:im=\E[4h:k1=\E[1r:k2=\E[2r:k3=\E[3r:\ - :k4=\E[4r:k5=\E[5r:k6=\E[6r:k7=\E[7r:k8=\E[8r:\ - :k9=\E[9r:k;=\E[10r:kA=\E[L:kB=\E[Z:kC=\E[J:kD=\E[P:\ - :kI=\E[@:kL=\E[M:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=^H:me=\E[m:mr=\E[7m:nd=\E[C:\ - :pf=\E[4i:po=\E[5i:ps=\E[0i:se=\E[0m:sf=^J:so=\E[7m:\ - :ta=^I:up=\E[A: -att2350|AT&T 2350 Video Information Terminal 80 column mode:\ - :pf@:po@:ps@:tc=att2300: -att2300-x40|sv40|AT&T 2300 Video Information Terminal 40 column mode:\ - :co#40:it#5:li#23:\ - :AL@:al@:tc=att2300: -att2350-x40|ATT2350-x40|AT&T 2350 Video Information Terminal 40 column mode:\ - :co#40:it#5:li#23:\ - :AL@:al@:tc=att2350: - -# Must setup RETURN KEY - CR, REC'VD LF - INDEX. -# Seems upward compatible with vt100, plus ins/del line/char. -# On sgr, the protection parameter is ignored. -# No check is made to make sure that only 3 parameters are output. -# standout= reverse + half-intensity = 3 | 5. -# bold= reverse + underline = 2 | 3. -# note that half-bright blinking doesn't look different from normal blinking. -# NOTE:you must program the function keys first, label second! -att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1:\ - :am:hs:mi:ms:xo:\ - :Nl#8:co#80:it#8:lh#2:li#24:lw#8:ws#80:\ - :ac=``aaffhhggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~00++--\\\054\\\054..:\ - :ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :dc=\E[P:dl=\E[M:do=\E[B:ei=:fs=\E8:ho=\E[H:\ - :i1=\E[?3l\E)0:\ - :i2=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW:\ - :ic=\E[@:im=:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:\ - :k6=\EOU:k7=\EOV:k8=\EOW:kC=\E[2J:kH=\E[24;1H:kb=^H:\ - :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ - :ll=\E[24H:mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:\ - :mk=\E[8m:mr=\E[7m:nd=\E[C:nw=^M^J:\ - :..pn=\E[%p1%d;00q%p2%\072-16s:\ - :..px=\E[%p1%1d;%p2%l%2.2dq f%p1%1d %p2%s:\ - :r2=\Ec\E[?3l\E[2;0y:rc=\E8:\ - :..sa=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ - :ts=\E7\E[25;%p1%{1}%+%dH:ue=\E[m:up=\E[A:us=\E[4m: - -att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1:\ - :co#132:ws#132:\ - :i1=\E[?3h\E)0:r2=\Ec\E[?3h\E[2;0y:tc=att5410v1: - -att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2:\ - :..px=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s:tc=att5410v1: - -att4410-nfk|att5410-nfk|4410-nfk|tty5410-nfk|5410-nfk|version 1 AT&T 4410/5410 entry without function keys:\ - :i3@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:pn@:tc=att4410: - -att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode:\ - :co#132:ws#132:\ - :i1=\E[?3h\E)0:r2=\Ec\E[?3h\E[2;0y:tc=att4410: - -att5410-nsl|4410-nsl|att4410-nsl|ATT4410-nsl|tty5410-nsl|tty5410 entry without pln defined:\ - :pn@:tc=att4410: - -otty5410|teletype 5410 for S5R2 curses:\ - :ts=\E7\E[25;%p1%{1}%+%dH:tc=att4410: - -# 5410 in terms of a vt100 -v5410|5410 in terms of a vt100:\ - :am:mi:ms:xo:\ - :co#80:it#8:li#24:vt#3:\ - :@8=\EOM:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=:\ - :ho=\E[H:ic=\E[@:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\ - :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:\ - :k;=\EOx:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\ - :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\ - :me=\E[m\017:mr=\E[7m:nd=\E[C:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ - :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m: - -# -# Teletype Model 5420 -- A souped up 5410, with multiple windows, -# even! the 5420 has three modes: scroll, window or page mode -# this terminfo should work in scroll or window mode, but doesn't -# take advantage of any of the differences between them. -# -# Has memory below (2 lines!) -# 3 pages of memory (plus some spare) -# The 5410 sequences for cup,cvvis,dch,dl,ech,flash,home,hpa,hts would work -# for these, but these work in both scroll and window mode... -# Unset insert character so insert mode works -# is1 sets 80 column mode, -# is2 escape sequence: -# 1) turn off all fonts -# 2) function keys off, keyboard lock off, control display off, -# insert mode off, erasure mode off, -# 3) full duplex, monitor mode off, send graphics off, nl on lf off -# 4) reset origin mode -# 5) set line wraparound -# 6) exit erasure mode, positional attribute mode, and erasure extent mode -# 7) clear margins -# 8) program ENTER to transmit ^J, -# We use \212 to program the ^J because a bare ^J will get translated by -# UNIX into a CR/LF. The enter key is needed for AT&T uOMS. -# 1 2 3 4 5 6 7 8 -# is3 set screen color to black, -# No representation in terminfo for the delete word key: kdw1=\Ed -# Key capabilities assume the power-up send sequence... -# This rmcup is not strictly necessary, but it helps maximize -# memory usefulness: rmcup=\Ez, -# Alternate sgr0: sgr0=\E[0m\EW^O, -# Alternate sgr: sgr=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;, -# smkx programs the SYS PF keys to send a set sequence. -# It also sets up labels f1, f2, ..., f8, and sends edit keys. -# This string causes them to send the strings kf1-kf8 -# when pressed in SYS PF mode. -att4415|tty5420|att5420|AT&T 4415/5420 80 columns:\ - :db:mi:xo:\ - :Nl#8:lh#2:lm#78:lw#8:ws#55:\ - :@1=\Et:@7=\Ez:@8=\Eent:AL=\E[%dL:\ - :CM=\E[%i%p1%d;%p2%dt:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\ - :IC=\E[%d@:LE=\E[%dD:LF=\E|:LO=\E~:RI=\E[%dC:\ - :SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:bt=\E[Z:ch=\E[%+^AG:\ - :cl=\E[x\E[J:cm=\E[%i%d;%dx:ct=\E[3g:cv=\E[%+^Ad:\ - :ec=\E[%ds\E[%dD:ei=\E[4l:ho=\E[x:i1=\E[?3l:\ - :i2=\E[?5l:ic@:im=\E[4h:\ - :is=\E[0m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212:\ - :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:\ - :k7=\EOi:k8=\EOj:kA=\E[L:kB=\E[Z:kD=\E[P:kE=\E[2K:\ - :kF=\E[T:kH=\Eu:kI=\E[4h:kL=\E[M:kN=\E[U:kP=\E[V:\ - :kR=\E[S:ke=\E[19;0j\E[21;1j\212:\ - :ks=\E[19;1j\E[21;4j\Eent:l1=F1:l2=F2:l3=F3:l4=F4:\ - :l5=F5:l6=F6:l7=F7:l8=F8:ll=\Ew:me=\E[0m\017:mp=\EV:\ - :pf=\E[?9i:..pn=\E[%p1%d;0;0;0q%p2%\072-16.16s:\ - :po=\E[?4i:ps=\E[?2i:\ - :..px=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s:\ - :..sa=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ - :st=\EH:ts=\E7\E[25;%p1%{8}%+%dH:vb=\E[?5h\E[?5l:\ - :ve=\E[11;0j:vs=\E[11;1j:tc=att4410: - -att4415-w|tty5420-w|att5420-w|5420-w|AT&T model 4415/5420 in 132 column mode:\ - :co#132:lm#54:ws#97:\ - :i1=\E[?3h:tc=att4415: - -att4415-rv|tty5420-rv|att5420-rv|AT&T model 4415/5420 80 columns in reverse video:\ - :i2=\E[?5h:vb=\E[?5l\E[?5h:tc=att4415: - -att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T model 4415/5420 132 columns in reverse video:\ - :co#132:lm#54:ws#97:\ - :i1=\E[?3h:i2=\E[?5h:vb=\E[?5l\E[?5h:tc=att4415: - -# Note that this mode permits programming USER PF KEYS and labels -# However, when you program user pf labels you have to reselect -# user pf keys to make them appear! -att4415+nl|4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels:\ - :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ - :..pn=\E[%p1%d;0;0;1q%p2%\072-16.16s:\ - :..px=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s: - -att4415-nl|4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels:\ - :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:tc=att4415+nl:tc=att4415: - -att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels:\ - :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:tc=att4415+nl:tc=att4415-rv: - -att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels:\ - :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:tc=att4415+nl:tc=att4415-w: - -att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels:\ - :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:tc=att4415+nl:tc=att4415-w-rv: - -otty5420|teletype 5420 for SVR2 curses on the 3B-20's:\ - :ch=\E[%+^AG:cv=\E[%+^Ad:tc=tty5420: - -att5420_2|AT&T 5420 model 2 in 80 column mode:\ - :am:db:hs:mi:ms:xo:\ - :Nl#8:co#80:it#8:lh#2:li#24:lm#78:lw#8:ws#55:\ - :@1=\Et:@7=\Ez:@8=^J:AL=\E[%dL:CM=\E[%i%p1%d;%p2%dt:\ - :DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:LE=\E[%dD:LF=\E|:\ - :LO=\E~:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:\ - :ae=^O:al=\E[L:as=^N:bt=\E[1Z:cb=\E[1K:cd=\E[0J:\ - :ce=\E[0K:ch=\E[%+^AG:cl=\EH\EJ:cm=\E[%i%d;%dH:\ - :cr=\EG:cs=\E[%i%d;%dr:ct=\E[3g:cv=\E[%+^Ad:dc=\E[P:\ - :dl=\E[M:do=\E[1B:ec=\E[%ds\E[%dD:ei=:fs=\E8:ho=\E[H:\ - :i1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r:\ - :ic=\E[@:im=:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:\ - :k6=\EOh:k7=\EOi:k8=\EOj:kA=\E[L:kB=\E[Z:kC=\E[2J:\ - :kD=\E[P:kE=\E[2K:kF=\E[T:kH=\Eu:kI=\E[4h:kL=\E[M:\ - :kN=\E[U:kP=\E[V:kR=\E[S:kb=^H:kd=\E[B:ke=\E[19;0j:\ - :kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[19;1j:ku=\E[A:l1=F1:\ - :l2=F2:l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:l8=F8:le=^H:\ - :ll=\Ew:mb=\E[5m:me=\E[0m\017:mh=\E[2m:mk=\E[8m:\ - :mp=\EV:mr=\E[7m:nd=\E[1C:nw=^M^J:pf=\E[4i:\ - :..pn=\E[%p1%d;0;0;0q%p2%\072-16.16s\E~:po=\E[5i:\ - :ps=\E[?;2i:\ - :..px=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s\E~:\ - :r2=\Ec\E[?3l\E[2;0y:rc=\E8:\ - :..sa=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ - :ts=\E7\E[25;%p1%{8}%+%dH:ue=\E[m:us=\E[4m:\ - :vb=\E[?5h\E[?5l:ve=\E[11;0j:vs=\E[11;1j: -att5420_2-w|AT&T 5420 model 2 in 132 column mode:\ - :co#132:\ - :i1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r:tc=att5420_2: - -att4418|att5418|ATT5418|AT&T 5418 in 80 column mode:\ - :am:xo:\ - :co#80:li#24:\ - :@8=\E[:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\ - :F1=\E[n:F2=\E[o:F3=\E[H:F4=\E[I:F5=\E[J:F8=\E[K:\ - :F9=\E[L:FA=\E[E:FB=\E[_:FC=\E[M:FD=\E[N:FE=\E[O:\ - :IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:\ - :al=\E[1L:as=^N:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[M:do=\E[B:ei=:\ - :ho=\E[H:i1=\E[?3l:ic=\E[1@:im=:is=\E)0\E?6l\E?5l:\ - :k1=\E[h:k2=\E[i:k3=\E[j:k6=\E[k:k7=\E[l:k8=\E[f:\ - :k9=\E[w:k;=\E[m:kC=\E[%:kd=\EU:kh=\Ec:kl=\E@:kr=\EA:\ - :ku=\ES:le=\E[D:mb=\E[5m:me=\E[0m\017:mh=\E[2m:\ - :mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[0m:sf=^J:\ - :so=\E[7m:ue=\E[0m:up=\E[A:us=\E[4m: -att4418-w|att5418-w|AT&T 5418 in 132 column mode:\ - :co#132:\ - :i1=\E[?3h:tc=att5418: - -tty4420|teletype 4420:\ - :da:db:eo:ms:ul:xo:\ - :co#80:li#24:lm#72:\ - :al=\EL:bl=^G:cd=\EJ:ce=\Ez:cl=\EH\EJ:cm=\EY%+ %+ :\ - :cr=\EG:dc=\EP:dl=\EM:dm@:do=\EB:ed@:ho=\EH:k0=\EU:\ - :k3=\E@:kA=\EL:kB=\EO:kC=\EJ:kD=\EP:kF=\ES:kI=\E^:\ - :kL=\EM:kR=\ET:kd=\EB:kh=\EH:kl=^H:kr=\EC:ku=\EA:\ - :l0=segment advance:l3=cursor tab:le=\ED:nd=\EC:\ - :se=\E~:sf=\EH\EM\EY7 :so=\E}:ue=\EZ:up=\EA:us=\E\\: - -# The following is a termcap entry for the Teletype 4424 -# asynchronous keyboard-display terminal. It supports -# the vi editor. The terminal must be "set up" as follows, -# -# HIGHLIGHT DEFINITION 3-TONE -# DISPLAY FUNCTION GROUP III -# -# The second entry below provides limited (a la adm3a) -# operation under GROUP II. -# -# This must be used with DISPLAY FUNCTION GROUP I or III -# and HIGHLIGHT DEFINITION 3-TONE -# The terminal has either bold or blink, depending on options -# -att4424|tty4424|4424-3|teletype 4424:\ - :am:xo:\ - :co#80:li#24:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ - :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=\E(B:al=\EL:\ - :as=\E(0:bl=^G:bt=\EO:cd=\EJ:ce=\Ez:cl=\E[H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\EF:dc=\EP:\ - :dl=\EM:do=\EB:ei=:ho=\E[H:ic=\E^:im=:\ - :is=\E[20l\E[?7h:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ - :kC=\EJ:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\ - :ku=\E[A:le=^H:mb=\E3:md=\E3:me=\EX\E~\EZ\E4\E(B:\ - :mh=\EW:mr=\E}:nd=\EC:nw=\EE:\ - :..sa=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m:\ - :se=\E~:sf=^J:so=\E}:sr=\ET:st=\EH:ta=^I:ti=\E[1m:\ - :ue=\EZ:up=\EA:us=\E\\: - -att4424-1|tty4424-1|teletype 4424 in display function group I:\ - :kC@:kd=\EB:kh@:kl=\ED:kr=\EC:ku=\EA:tc=att4424: - -# The Teletype 5425 is really version 2 of the Teletype 5420. It -# is quite similar, except for some minor differences. No page -# mode, for example, so all of the cup sequences used above have -# to change back to what's being used for the 5410. Many of the -# option settings have changed their numbering as well. -# -# This has been tested on a preliminary model. -# -att5425|tty5425|att4425|AT&T 4425/5425:\ - :am:da:db:hs:mi:ms:xn:xo:\ - :Nl#8:co#80:it#8:lh#2:li#24:lm#78:lw#8:ws#55:\ - :@1=\Et:@7=\Ez:@8=\Eent:AL=\E[%dL:DC=\E[%dP:\ - :DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:LF=\E|:\ - :LO=\E~:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ - :ce=\E[K:ch=\E[%+^AG:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:cv=\E[%+^Ad:dc=\E[P:\ - :dl=\E[M:do=^J:eA=\E(B\E)0:ec=\E[%ds\E[%dD:ei=\E[4l:\ - :fs=\E8:ho=\E[H:i1=\E<\E[?3l:i2=\E[?5l:im=\E[4h:\ - :is=\E[0m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212:\ - :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:\ - :k7=\EOi:k8=\EOj:kA=\E[L:kB=\E[Z:kC=\E[J:kD=\E[P:\ - :kE=\E[2K:kF=\E[T:kI=\E[4h:kL=\E[M:kR=\E[S:kb=^H:\ - :kd=\E[B:ke=\E[21;0j\E[25;1j\212:kh=\E[H:kl=\E[D:\ - :kr=\E[C:ks=\E[21;1j\E[25;4j\Eent\E~:ku=\E[A:le=^H:\ - :ll=\E[24H:mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:\ - :mk=\E[8m:mp=\EV:mr=\E[7m:nd=\E[C:nw=^M^J:pf=\E[?9i:\ - :..pn=\E[%p1%d;0;0;0q%p2%\072-16.16s:po=\E[?4i:\ - :ps=\E[?2i:\ - :..px=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s:\ - :r2=\Ec\E[?3l\E[2;0y:rc=\E8:\ - :..sa=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ - :ts=\E7\E[25;%p1%{8}%+%dH:ue=\E[m:up=\E[A:us=\E[4m:\ - :vb=\E[?5h\E[?5l:ve=\E[12;0j:vs=\E[12;1j: - -att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels:\ - :ks=\E[21;1j\E[25;4j\Eent:tc=att4425: - -att5425-nl-w|tty5425-nl-w|att4425-nl-w|AT&T 4425/5425 132 columns no labels:\ - :ks=\E[21;1j\E[25;4j\Eent:tc=att4425-w: - -tty5425-fk|att4425-fk|AT&T 4425/5425 without function keys:\ - :ke@:ks@:tc=att5425: - -att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode:\ - :co#132:lm#54:ws#97:\ - :i1=\E[?3h:tc=tty5425: - -tty5425-w-fk|att4425-w-fk|att5425-w-fk|AT&T 4425/5425 without function keys in wide mode:\ - :ke@:ks@:tc=att5425-w: - - -# This had bogus capabilities: ri=\EM, ri=\E[1U, -att4426|tty4426|teletype 4426S:\ - :am:da:db:xo:\ - :co#80:li#24:lm#48:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ - :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ - :ae=\E(B:al=\EL:as=\E(0:bl=^G:cd=\E[J:ce=\E[0K:\ - :ch=\E[%dG:cl=\E[H\E[2J\E[1U\E[H\E[2J\E[1V:\ - :cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:cv=\E[%dd:dc=\EP:\ - :dl=\E[M:do=\E[B:ei=:ho=\E[H:i1=\Ec\E[?7h:ic=\E^:im=:\ - :is=\E[m\E[1;24r:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ - :k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:kB=\EO:kC=\E[2J:\ - :kH=\E[24;1H:kb=^H:kd=\EB:kh=\E[H:kl=\ED:kr=\EC:\ - :ku=\EA:le=\E[D:ll=\E[24H:md=\E[5m:me=\E[0m\E(B:\ - :mr=\E[7m:nd=\E[C:nw=^M^J:r2=\Ec\E[?3l\E[2;0y:rc=\E8:\ - :sc=\E7:se=\E[0m:sf=^J:so=\E[5m:sr=\ET:st=\E1:ta=^I:\ - :ue=\E[m:up=\EA:us=\E[4m: - - -# Terminfo entry for the AT&T 510 A Personal Terminal -# Function keys 9 - 16 are available only after the -# screen labeled (soft keys/action blocks) are labeled. Function key -# 9 corresponds to the leftmost touch target on the screen, -# function key 16 corresponds to the rightmost. -# -# This entry is based on one done by Ernie Rice at Summit, NJ and -# changed by Anne Gallup, Skokie, IL, ttrdc!anne -att510a|510a|bct510a|510A|AT&T 510A Personal Terminal:\ - :am:mi:ms:xn:xo:\ - :Nl#8:co#80:lh#2:li#24:lw#7:\ - :#4=\E[u:%i=\E[v:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ - :DO=\E[%dB:F1=\EOe:F2=\EOf:F3=\EOg:F4=\EOh:F5=\EOi:\ - :F6=\EOj:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :ac=hrisjjkkllmmnnqqttuuvvwwxx{{||}}~~-f\\\054h.e+g`b:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[0J:\ - :ce=\E[0K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ - :dc=\E[P:dl=\E[M:do=\E[1B:eA=\E(B\E)1:ff=^L:ho=\E[H:\ - :i1=\E(B\E)1\E[2l:i2=\E[21;1|\212:k1=\EOm:k2=\EOV:\ - :k3=\EOu:k4=\ENj:k5=\ENe:k6=\ENf:k7=\ENh:k8=\E[H:\ - :k9=\EOc:k;=\EOd:kB=\E[Z:kF=\E[S:kR=\E[T:kb=^H:\ - :kd=\E[B:ke=\E[19;0|:kl=\E[D:kr=\E[C:ks=\E[19;1|:\ - :ku=\E[A:le=^H:mb=\E[5m:md=\E[2;7m:me=\E[m\017:\ - :mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:pf=\E[?8i:\ - :..pn=\E[%p1%dp%p2%\072-16s:po=\E[?4i:ps=\E[0i:\ - :rc=\E8:\ - :..sa=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[11;3|:vi=\E[11;0|:\ - :vs=\E[11;2|: - -# Terminfo entry for the AT&T 510 D Personal Terminal -# Function keys 9 through 16 are accessed by bringing up the -# system blocks. -# Function key 9 corresponds to the leftmost touch target on the screen, -# function key 16 corresponds to the rightmost. -# -# There are problems with soft key labeling. These are due to -# strangenesses in the native terminal that are impossible to -# describe in a terminfo. -att510d|510d|bct510d|510D|AT&T 510D Personal Terminal:\ - :am:da:db:mi:ms:xn:xo:\ - :Nl#8:co#80:lh#2:li#24:lm#48:lw#7:\ - :#4=\E[u:%i=\E[v:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ - :DO=\E[%dB:F1=\EOe:F2=\EOf:F3=\EOg:F4=\EOh:F5=\EOi:\ - :F6=\EOj:IC=\E[%d@:LE=\E[%dD:LF=\E<:LO=\E?:MC=\E\072:\ - :ML=\E4:MR=\E5:RI=\E[%dC:RX=\E[29;1|:SF=\E[%dS:\ - :SR=\E[%dT:SX=\E[29;0|:UP=\E[%dA:\ - :ac=hrisjjkkllmmnnqqttuuvvwwxx{{||}}~~-f\\\054h.e+g`b:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[0J:\ - :ce=\E[0K:ch=\E[%+^AG:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cr=^M:ct=\E[3g:cv=\E[%+^Ad:dc=\E[P:dl=\E[M:do=\E[1B:\ - :eA=\E(B\E)1:ei=\E[4l:ff=^L:ho=\E[H:\ - :i1=\E(B\E)1\E[5;0|:i2=\E[21;1|\212:im=\E[4h:k1=\EOm:\ - :k2=\EOV:k3=\EOu:k4=\ENj:k5=\ENe:k6=\ENf:k7=\ENh:\ - :k8=\E[H:k9=\EOc:k;=\EOd:kB=\E[Z:kF=\E[S:kR=\E[T:\ - :kb=^H:kd=\E[B:ke=\E[19;0|:kl=\E[D:kr=\E[C:\ - :ks=\E[19;1|:ku=\E[A:le=^H:ll=\E#2:mb=\E[5m:\ - :md=\E[2;7m:me=\E[m\017:mh=\E[2m:mk=\E[8m:mr=\E[7m:\ - :nd=\E[C:nw=\EE:pf=\E[?8i:..pn=\E[%p1%dp%p2%\072-16s:\ - :po=\E[?4i:ps=\E[0i:r2=\E[5;0|:rc=\E8:\ - :..rp=%p1%c\E[%p2%{1}%-%db:\ - :..sa=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[11;3|:vs=\E[11;2|: - -# (untranslatable capabilities removed to fit entry within 1023 bytes) -# WARNING: this entry, 1245 bytes long, may core-dump older termcap libraries! -att513|att513-page|513-page|attis513-pfk|513bct|AT&T 513 Terminal using page mode:\ - :HC:am:mi:ms:xn:xo:\ - :Nl#8:co#80:lh#2:li#24:lw#8:\ - :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:#2=\ENM:#3=\ENJ:\ - :#4=\ENK:%0=\EOt:%1=\EOm:%2=\ENi:%3=\EOl:%4=\ENc:\ - :%5=\ENh:%6=\EOv:%7=\EOr:%8=\ENg:%9=\EOz:%a=\EOL:\ - :%b=\ENC:%c=\ENH:%d=\EOR:%e=\ENG:%f=\EOZ:%g=\EOT:\ - :%h=\EOY:%i=\ENL:%j=\EOQ:&0=\EOW:&1=\EOb:&2=\ENa:\ - :&3=\EOy:&4=\EOB:&5=\EOq:&6=\EOo:&7=\EOp:&8=\EOs:\ - :&9=\ENB:*0=\EOX:*1=\EOU:*2=\END:*3=\EON:*4=\ENF:\ - :*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:*9=\EOK:@0=\EOx:\ - :@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:@5=\ENd:@6=\EOn:\ - :@7=\E0:@8=\Eent:@9=\EOk:AL=\E[%dL:DC=\E[%dP:\ - :DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:LF=\E<:\ - :LO=\E?:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:\ - :ac=hrisjjkkllmmnnqqttuuvvwwxx{{||}}~~-f\\\054h.e+g`b:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ - :ce=\E[K:ch=\E[%+^AG:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:cv=\E[%+^Ad:dc=\E[P:\ - :dl=\E[M:do=^J:eA=\E(B\E)1:ei=\E[4l:ho=\E[H:\ - :i1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l:\ - :im=\E[4h:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:\ - :k6=\EOh:k7=\EOi:k8=\EOj:kB=\E[Z:kC=\E[J:kD=\ENf:\ - :kE=\EOa:kF=\E[S:kI=\ENj:kL=\ENe:kN=\E[U:kP=\E[V:\ - :kR=\E[T:kb=^H:kd=\E[B:ke=\E[19;0|\E[21;1|\212:\ - :kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[19;1|\E[21;4|\Eent:\ - :ku=\E[A:le=^H:ll=\E#2:mb=\E[5m:md=\E[2;7m:\ - :me=\E[m\017:mh=\E[2m:mk=\E[8m:mr=\E[7m:nd=\E[C:\ - :nw=\EE:pf=\E[?98l\E[?8i::::po=\E[?98l\E[?4i:\ - :ps=\E[?98l\E[0i::\ - :r1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l:\ - :r2=\E[5;0|:rc=\E8:::sc=\E7:se=\E[m:sf=^J:so=\E[7m:\ - :sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\ - :ve=\E[11;0|:vs=\E[11;1|: - -att500|bct500|500|AT&T-IS 500 terminal:\ - :tc=att513: - -# 01-07-88 -# printer must be set to EMUL ANSI to accept ESC codes -# cuu1 stops at top margin -# is1 sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font -# and alt font ascii,wrap on,tabs cleared -# is2 disables newline on LF,Emphasized off -# The u0 capability sets form length -# (untranslatable capabilities removed to fit entry within 1023 bytes) -# WARNING: this entry, 1034 bytes long, may core-dump older termcap libraries! -att5320|AT&T Model 5320 matrix printer:\ - :YA:YD:\ - :Ya#8192:Yi#10:Yj#12:Yk#100:Yl#72:Ym#120:co#132:it#8:\ - :li#66:\ - :DO=\E[%de:RI=\E[%da:\ - :ZA=%?%p1%{10}%=%t\E[w%e%p1%{12}%=%t\E[2w%e%p1%{5}%=%t\E[5w%e%p1%{13}%=%p1%{14}%=%O%t\E[3w%e%p1%{16}%=%p1%{17}%=%O%t\E[4w%e%p1%{6}%=%t\E[6w%e%p1%{7}%=%t\E[7w%e%p1%{8}%=%t\E[8w%;:\ - :ZB=%?%p1%{2}%=%t\E[4z%e%p1%{3}%=%t\E[5z%e%p1%{4}%=%t\E[6z%e%p1%{6}%=%t\E[z%e%p1%{8}%=%t\E[2z%e%p1%{12}%=%t\E[3z%;:\ - :ZM=\E[5m:ZU=\E[m:\ - :Zj=%?%p1%{0}%=%t\E(B%e%p1%{1}%=%t\E(A%e%p1%{2}%=%t\E(C%e%p1%{3}%=%t\E(D%e%p1%{4}%=%t\E(E%e%p1%{5}%=%t\E(H%e%p1%{6}%=%t\E(K%e%p1%{7}%=%t\E(R%e%p1%{8}%=%t\E(Q%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(Z%e%p1%{11}%=%t\E(0%e%p1%{12}%=%t\E(1%e%p1%{13}%=%t\E(3%e%p1%{14}%=%ttM:\ - :Zl=\E[;%dr:Zm=\E[%+^As:Zn=\E[;%+^As:Zp=\E[%dr:\ - :Zy=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfinnish%e%p1%{3}%=%tjapanese%e%p1%{4}%=%tnorwegian%e%p1%{5}%=%tswedish%e%p1%{6}%=%tgermanic%e%p1%{7}%=%tfrench%e%p1%{8}%=%tcanadian_french%e%p1%{9}%=%titalian%e%p1%{10}%=%tspanish%e%p1%{11}%=%tline%e%p1%ÆM:\ - :ch=\E[%d`:cr=^M:cv=\E[%dd:do=^J:ff=^L:i1=\Ec:\ - :is=\E[20l\r:nd= :ta=^I:u0=\E[%dt:up=\EM: - -att5310|AT&T 5310 matrix printer:\ - :co#80:\ - :tc=att5320: - -# 5620 terminfo (2.0 or later ROMS with char attributes) -# assumptions: ind (scroll forward one line) is only done at screen bottom -att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns:\ - :NL:NP:am:xo:\ - :co#88:it#8:li#70:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:SF=\E[%dS:\ - :SR=\E[%dT:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ - :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=:\ - :ho=\E[H:ic=\E[@:im=:kC=\E[2J:kH=\E[70;1H:kb=^H:\ - :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ - :md=\E[2m:me=\E[0m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^J:\ - :..px=\E[%p1%d;%p2%l%dq%p2%s:r1=\Ec:rc=\E8:sc=\E7:\ - :se=\E[0m:sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:ue=\E[0m:\ - :up=\E[A:us=\E[4m: - -att5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer:\ - :li#24:\ - :tc=att5620: - -att5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer:\ - :li#34:\ - :tc=att5620: - -# Entries for kf15 thru kf28 refer to the shifted system pf keys. -# -# Entries for kf29 thru kf46 refer to the alternate keypad mode -# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER -att605|605bct|AT&T 605 80 column 102key keyboard:\ - :am:eo:xo:\ - :Nl#8:co#80:li#24:lw#8:ws#80:\ - :#4=\E[ A:%i=\E[ @:@7=\E[24;1H:DC=\E[%dP:DL=\E[%dM:\ - :F1=\ENq:F2=\ENr:F3=\ENs:F4=\ENt:F5=\EOC:F6=\EOD:\ - :F7=\EOE:F8=\EOF:F9=\EOG:FA=\EOH:FB=\EOI:FC=\EOJ:\ - :FD=\ENO:FE=\ENP:FF=\ENQ:FG=\ENR:FH=\ENS:FI=\ENT:\ - :FJ=\EOP:FK=\EOQ:FL=\EOR:FM=\EOS:FN=\EOw:FO=\EOx:\ - :FP=\EOy:FQ=\EOm:FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:\ - :FV=\EOq:FW=\EOr:FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:\ - :IC=\E[%d@:LF=\E[2p:LO=\E[p:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=\E)0\016:bl=^G:bt=\E[Z:cb=\E[1K:\ - :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ - :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:\ - :i1=\E[8;0|\E[?\E[13;20l\E[?\E[12h:ic=\E[@:im=\E[4h:\ - :is=\E[0m\017:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:\ - :k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:k;=\ENp:\ - :kA=\E[L:kB=\E[Z:kC=\E[2J:kD=\E[P:kF=\E[S:kI=\E[@:\ - :kL=\E[M:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:mb=\E[5m:\ - :md=\E[1m:me=\E[m\017:mh=\E[2m:mk=\E[8m:mr=\E[7m:\ - :nd=\E[C:nw=\EE:pf=\E[?4i:\ - :..pn=\E[%p1%d;0;0;0q%p2%\072-16.16s:po=\E[?5i:\ - :..px=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s:\ - :r2=\Ec\E[?3l:rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:\ - :ta=^I:ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:us=\E[4m: -att605-pc|605bct-pc|ATT 605 in pc term mode:\ - :@7=\E[F:AL=\E[L:S4=250\E[?11l\E[50;1|:\ - :S5=400\E[50;0|:XF=g:XN=e:\ - :ac=k\277l\332m\300j\331n\305w\302q\304u\264t\303v\301x\263:\ - :al=\E[L:bt=\E[Z:dc=\E[P:dl=\E[M:do=\E[B:ei=:ic=\E[@:\ - :im=:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:\ - :k7=\E[S:k8=\E[T:k9=\E[U:k;=\E[V:kB=\E[Z:kD=\E[P:\ - :kI=\E[@:kL=\E[M:kN=\E[G:kP=\E[I:kd=\E[B:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:nd=\E[C:up=\E[A:tc=att605: -att605-w|605bct-w|AT&T 605-w 132 column 102 key keyboard:\ - :co#132:ws#132:\ - :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0:tc=att605: -att610|610bct|AT&T 610; 80 column; 98key keyboard:\ - :am:es:hs:mi:ms:xn:xo:\ - :Nl#8:co#80:it#8:lh#2:li#24:lw#8:ws#80:\ - :#4=\E[ @:%i=\E[ A:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ - :DO=\E[%dB:F1=\ENq:F2=\ENr:F3=\ENs:F4=\ENt:IC=\E[%d@:\ - :LE=\E[%dD:LF=\E[2p:LO=\E[p:RI=\E[%dC:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ - :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ - :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\ - :fs=\E8:ho=\E[H:\ - :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0:\ - :i2=\E(B\E)0:im=\E[4h:is=\E[0m\017:k1=\EOc:k2=\EOd:\ - :k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:\ - :k9=\ENo:k;=\ENp:kB=\E[Z:kC=\E[2J:kF=\E[S:kR=\E[T:\ - :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ - :ll=\E[24H:mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:\ - :mk=\E[8m:mr=\E[7m:nd=\E[C:nw=\EE:pf=\E[?4i:\ - :..pn=\E[%p1%d;0;0;0q%p2%\072-16.16s:po=\E[?5i:\ - :..px=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s:\ - :r2=\Ec\E[?3l:rc=\E8:\ - :..sa=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:\ - :ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:us=\E[4m:\ - :vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ - :vs=\E[?12;25h: -att610-w|610bct-w|AT&T 610; 132 column; 98key keyboard:\ - :co#132:ws#132:\ - :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att610: - -att610-103k|610-103k|610bct-103k|AT&T 610; 80 column; 103key keyboard:\ - :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:%0=\EOt:%1=\EOm:\ - :%2=\ENi:%3=\EOl:%4=\ENc:%5=\ENh:%6=\EOv:%7=\EOr:\ - :%8=\ENg:%9=\EOz:%a=\EOL:%b=\ENC:%c=\ENH:%d=\EOR:\ - :%e=\ENG:%f=\EOZ:%g=\EOT:%h=\EOY:%j=\EOQ:&0=\EOW:\ - :&1=\EOb:&2=\ENa:&3=\EOy:&4=\EOB:&5=\EOq:&6=\EOo:\ - :&7=\EOp:&8=\EOs:&9=\ENB:*0=\EOX:*1=\EOU:*2=\END:\ - :*3=\EON:*4=\ENF:*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:\ - :*9=\EOK:@0=\EOx:@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:\ - :@5=\ENd:@6=\EOn:@7=\E0:@8=^M:@9=\EOk:F1@:F2@:F3@:\ - :F4@:k9@:k;@:kD=\ENf:kE=\EOa:kI=\ENj:kL=\ENe:kM=\ENj:\ - :kN=\E[U:kP=\E[V:tc=att610: -att610-103k-w|610-103k-w|610bct-103k-w|AT&T 610; 132 column; 103key keyboard:\ - :co#132:ws#132:\ - :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att610-103k: -att615|615mt|AT&T 615; 80 column; 98key keyboard:\ - :#4=\E[ A:%i=\E[ @:F5=\EOC:F6=\EOD:F7=\EOE:F8=\EOF:\ - :F9=\EOG:FA=\EOH:FB=\EOI:FC=\EOJ:FD=\ENO:FE=\ENP:\ - :FF=\ENQ:FG=\ENR:FH=\ENS:FI=\ENT:FJ=\EOP:FK=\EOQ:\ - :FL=\EOR:FM=\EOS:FN=\EOw:FO=\EOx:FP=\EOy:FQ=\EOm:\ - :FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:FV=\EOq:FW=\EOr:\ - :FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:tc=att610: -att615-w|615-w|615mt-w|AT&T 615; 132 column; 98key keyboard:\ - :#4=\E[ A:%i=\E[ @:F5=\EOC:F6=\EOD:F7=\EOE:F8=\EOF:\ - :F9=\EOG:FA=\EOH:FB=\EOI:FC=\EOJ:FD=\ENO:FE=\ENP:\ - :FF=\ENQ:FG=\ENR:FH=\ENS:FI=\ENT:FJ=\EOP:FK=\EOQ:\ - :FL=\EOR:FM=\EOS:FN=\EOw:FO=\EOx:FP=\EOy:FQ=\EOm:\ - :FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:FV=\EOq:FW=\EOr:\ - :FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:tc=att610-w: -att615-103k|615-103k|615mt-103k|AT&T 615; 80 column; 103key keyboard:\ - :#4=\E[ A:%i=\E[ @:tc=att610-103k: -att615-103k-w|615-103k-w|615mt-103k-w|AT&T 615; 132 column; 103key keyboard:\ - :#4=\E[ A:%i=\E[ @:tc=att610-103k-w: -att620|620mtg|AT&T 620; 80 column; 98key keyboard:\ - :am:es:hs:mi:ms:xn:xo:\ - :Nl#8:co#80:it#8:lh#2:li#24:lw#8:ws#80:\ - :#4=\E[ A:%i=\E[ @:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ - :DO=\E[%dB:F1=\ENq:F2=\ENr:F3=\ENs:F4=\ENt:F5=\EOC:\ - :F6=\EOD:F7=\EOE:F8=\EOF:F9=\EOG:FA=\EOH:FB=\EOI:\ - :FC=\EOJ:FD=\ENO:FE=\ENP:FF=\ENQ:FG=\ENR:FH=\ENS:\ - :FI=\ENT:FJ=\EOP:FK=\EOQ:FL=\EOR:FM=\EOS:FN=\EOw:\ - :FO=\EOx:FP=\EOy:FQ=\EOm:FR=\EOt:FS=\EOu:FT=\EOv:\ - :FU=\EOl:FV=\EOq:FW=\EOr:FX=\EOs:FY=\EOp:FZ=\EOn:\ - :Fa=\EOM:IC=\E[%d@:LE=\E[%dD:LF=\E[2p:LO=\E[p:\ - :RI=\E[%dC:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=\E(B\017:al=\E[L:as=\E)0\016:bl=^G:bt=\E[Z:\ - :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:\ - :ei=\E[4l:fs=\E8:ho=\E[H:\ - :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h:\ - :i2=\E(B\E)0:im=\E[4h:is=\E[0m\017:k1=\EOc:k2=\EOd:\ - :k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:\ - :k9=\ENo:k;=\ENp:kB=\E[Z:kC=\E[2J:kF=\E[S:kR=\E[T:\ - :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ - :ll=\E[24H:mb=\E[5m:md=\E[1m:me=\E[m\E(B\017:\ - :mh=\E[2m:mk=\E[8m:mr=\E[7m:nd=\E[C:nw=\EE:pf=\E[?4i:\ - :..pn=\E[%p1%d;0;0;0q%p2%\072-16.16s:po=\E[?5i:\ - :..px=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s:\ - :r2=\Ec\E[?3l:rc=\E8:\ - :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:\ - :ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:us=\E[4m:\ - :vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ - :vs=\E[?12;25h: -att620-w|620-w|620mtg-w|AT&T 620; 132 column; 98key keyboard:\ - :co#132:ws#132:\ - :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att620: -att620-103k|620-103k|620mtg-103k|AT&T 620; 80 column; 103key keyboard:\ - :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:%0=\EOt:%1=\EOm:\ - :%2=\ENi:%3=\EOl:%4=\ENc:%5=\ENh:%6=\EOv:%7=\EOr:\ - :%8=\ENg:%9=\EOz:%a=\EOL:%b=\ENC:%c=\ENH:%d=\EOR:\ - :%e=\ENG:%f=\EOZ:%g=\EOT:%h=\EOY:%j=\EOQ:&0=\EOW:\ - :&1=\EOb:&2=\ENa:&3=\EOy:&4=\EOB:&5=\EOq:&6=\EOo:\ - :&7=\EOp:&8=\EOs:&9=\ENB:*0=\EOX:*1=\EOU:*2=\END:\ - :*3=\EON:*4=\ENF:*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:\ - :*9=\EOK:@0=\EOx:@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:\ - :@5=\ENd:@6=\EOn:@7=\E0:@8=^M:@9=\EOk:F1@:F2@:F3@:\ - :F4@:F5@:F6@:F7@:F8@:F9@:FA@:FB@:FC@:FD@:FE@:FF@:FG@:\ - :FH@:FI@:FJ@:FK@:FL@:FM@:FN@:FO@:FP@:FQ@:FR@:FS@:FT@:\ - :FU@:FV@:FW@:FX@:FY@:FZ@:Fa@:k9@:k;@:kD=\ENf:kE=\EOa:\ - :kI=\ENj:kL=\ENe:kM=\ENj:kN=\E[U:kP=\E[V:tc=att620: - -att620-103k-w|620-103k-w|620mtg-103k-w|AT&T 620; 132 column; 103key keyboard:\ - :co#132:ws#132:\ - :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att620-103k: - -# 630 short descriptions without \E -att630|5630|5630DMD|630MTG|AT&T 630 windowing terminal:\ - :NP:am:da:db:mi:ms:xo:\ - :co#80:it#8:li#60:lm#0:\ - :@8=^M:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\ - :F1=\ENq:F2=\ENr:F3=\ENs:F4=\ENt:F5=\ENu:F6=\ENv:\ - :F7=\ENw:F8=\ENx:F9=\ENy:FA=\ENz:FB=\EN{:FC=\EN|:\ - :FD=\EN}:FE=\EN~:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:\ - :SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:al=\E[L:bl=^G:bt=\E[Z:\ - :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ - :im=\E[4h:is=\E[m:k9=\ENo:k;=\ENp:kA=\E[L:kB=\E[Z:\ - :kC=\E[2J:kD=\E[P:kI=\E[@:kL=\E[M:kb=^H:kd=\E[B:\ - :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:\ - :mr=\E[7m:nd=\E[C:nw=^M^J:pf=\E[?4i:po=\E[?5i:\ - :..px=\E[%p1%d;%p2%l%dq%p2%s:r2=\Ec:rc=\E8:\ - :..sa=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m:\ - :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\ - :up=\E[A:us=\E[4m: - - -att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines:\ - :li#24:\ - :tc=att630: - -# This entry was modified 3/13/90 by JWE. -# fixes include additions of enacs, correcting rep, and modification -# of kHOM. (See comments below) -# has status line of 80 chars -# These were commented out: indn=\E[%p1%dS, rin=\E[%p1%dT, -# the k25 and up keys are used for shifted system Fkeys -# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is -# currently the same as khome (unshifted HOME or \E[H). On the 102, 102+1 -# and 122 key keyboards, the 730's translation is \E[2J. For consistency -# kHOM has been commented out. The user can uncomment kHOM if using the -# 102, 102+1, or 122 key keyboards -# kHOM=\E[2J, -# (untranslatable capabilities removed to fit entry within 1023 bytes) -# WARNING: this entry, 1063 bytes long, may core-dump older termcap libraries! -att730|730MTG|AT&T 730 windowing terminal Version:\ - :NP:am:da:db:es:hs:mi:ms:xn:xo:\ - :Nl#24:co#80:it#8:lh#2:li#60:lm#0:lw#8:ws#80:\ - :#4=\E[ @:%i=\E[ A:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ - :DO=\E[%dB:F1=\ENq:F2=\ENr:F3=\ENs:F4=\ENt:F5=\ENu:\ - :F6=\ENv:F7=\ENw:F8=\ENx:F9=\ENy:FA=\ENz:FB=\EN{:\ - :FC=\EN|:FD=\EN}:FE=\EN~:FF=\EOC:FG=\EOD:FH=\EOE:\ - :FI=\EOF:FJ=\EOG:FK=\EOH:FL=\EOI:FM=\EOJ:FN=\ENO:\ - :FO=\ENP:FP=\ENQ:FQ=\ENR:FR=\ENS:FS=\ENT:FT=\EOU:\ - :FU=\EOV:FV=\EOW:FW=\EOX:FX=\EOY:FY=\EOZ:FZ=\EO[:\ - :Fa=\EO :Fb=\EO]:Fc=\EO^:IC=\E[%d@:LE=\E[%dD:\ - :LF=\E[?13h:LO=\E[?13l:RI=\E[%dC:RX=\E[?21l:\ - :SX=\E[?21h:UP=\E[%dA:ZF=\E#6:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ - :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ - :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:eA=\E(B\E)0:\ - :ei=\E[4l:fs=\E8:ho=\E[H:\ - :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B:\ - :i2=\E(B\E)0:im=\E[4h:is=\E[0m\017:k1=\EOc:k2=\EOd:\ - :k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:\ - :k9=\ENo:k;=\ENp:kA=\E[L:kB=\E[Z:kC=\E[2J:kF=\E[S:\ - :kI=\E[@:kR=\E[T:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\ - :mh=\E[2m:mk=\E[8m:mr=\E[7m:nd=\E[C:nw=\EE:pf=\E[?4i:\ - ::po=\E[?5i:ps=\E[?19h\E[0i::r2=\Ec\E[?3l:rc=\E8:::\ - :sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:\ - :ts=\E7\E[;%i%p1%dx:ue=\E[24m:up=\E[A:us=\E[4m:\ - :vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ - :vs=\E[?12;25h:: - -att730-41|730MTG-41|AT&T 730-41 windowing terminal Version:\ - :li#41:\ - :tc=att730: - -att730-24|730MTG-24|AT&T 730-24 windowing terminal Version:\ - :li#24:\ - :tc=att730: - -att730r|730MTGr|AT&T 730 rev video windowing terminal Version:\ - :i1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B:\ - :vb=\E[?5l\E[?5h:tc=att730: - -att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version:\ - :li#41:\ - :tc=att730r: - -att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version:\ - :li#24:\ - :tc=att730r: - - -# 05-Aug-86: -# The following Terminfo entry describes functions which are supported by -# the AT&T 5430/pt505 terminal software version 2 and later. -# -# The following represents the screen layout along with the associated -# bezel buttons for the 5430/pt505 terminal. The "kf" designations do -# not appear on the screen but are shown to reference the bezel buttons. -# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate -# position relative to the screen. -# -# -# -# +----------------------------------------------------------------+ -# | | -# XXXX | kf0 kf24 | XXXX -# | | -# | | -# XXXX | kf1 kf23 | XXXX -# | | -# | | -# XXXX | kf2 kf22 | XXXX -# | | -# | | -# XXXX | kf3 kf21 | XXXX -# | | -# | | -# XXXX | kf4 kf20 | XXXX -# | | -# | | -# XXXX | kf5 kf19 | XXXX -# | | -# | | -# XXXX | kf6 kf18 | XXXX -# | | -# | | -# XXXX | | XXXX -# | | -# | | -# +----------------------------------------------------------------+ -# -# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX -# -# Note: XXXX represents the screen buttons -# CMD REDRAW -# -# MAIL -# -# Depression of the "CMD" key sends \E! (kcmd) -# Depression of the "MAIL" key sends \E[26s (kf26) -# "REDRAW" same as "REFRESH" (krfr) -# -# "kf" functions adds carriage return to output string if terminal is in -# 'new line' mode. -# -# The following are functions not covered in the table above: -# -# Set keyboard character (SKC): \EPn1;Pn2w -# Pn1= 0 Back Space key -# Pn1= 1 Break key -# Pn2= Program char (hex) -# -# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t -# Pn1= Window number (1-39) -# Pn2-Pn5= Y;X;Y;X coordinates -# -# Screen Selection (SSL): \E[Pnu -# Pn= Window number -# -# Set Terminal Modes (SM): \E[Pnh -# Pn= 3 Graphics mode -# Pn= > Cursor blink -# Pn= < Enter new line mode -# Pn= = Enter reverse insert/replace mode -# Pn= ? Enter no scroll mode -# -# Reset Terminal Mode (RM): \E[Pnl -# Pn= 3 Exit graphics mode -# Pn= > Exit cursor blink -# Pn= < Exit new line mode -# Pn= = Exit reverse insert/replace mode -# Pn= ? Exit no scroll mode -# -# Screen Status Report (SSR): \E[Pnp -# Pn= 0 Request current window number -# Pn= 1 Request current window dimensions -# -# Device Status Report (DSR): \E[6n Request cursor position -# -# Call Status Report (CSR): \E[Pnv -# Pn= 0 Call failed -# Pn= 1 Call successful -# -# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string -# Pn1= Button number to be loaded -# Pn2= Character count of "string" -# Pn3= Key mode being loaded: -# 0= Unshifted -# 1= Shifted -# 2= Control -# String= Text string (15 chars max) -# -# Screen Number Report (SNR): \E[Pnp -# Pn= Screen number -# -# Screen Dimension Report (SDR): \E[Pn1;Pn2r -# Pn1= Number of rows available in window -# Pn2= Number of columns available in window -# -# Cursor Position Report (CPR): \E[Pn1;Pn2R -# Pn1= "Y" Position of cousor -# Pn2= "X" Position of cursor -# -# Request Answer Back (RAB): \E[c -# -# Answer Back Response (ABR): \E[?;*;30;VSV -# *= 0 No printer available -# *= 2 Printer available -# V= Software version number -# SV= Software sub version number -# -# Screen Alingment Aid: \En -# -# Bell (lower pitch): \E[x -# -# Dial Phone Number: \EPdstring\ -# string= Phone number to be dialed -# -# Set Phone Labels: \EPpstring\ -# string= Label for phone buttons -# -# Set Clock: \EPchour;minute;second\ -# -# Position Clock: \EPsY;X\ -# Y= "Y" coordinate -# X= "X" coordinate -# -# Delete Clock: \Epr\ -# -# Programming The Function Buttons: \EPfPn;string\ -# Pn= Button number (00-06, 18-24) -# (kf00-kf06, kf18-kf24) -# string= Text to sent on button depression -# -# Request For Local Directory Data: \EPp12;\ -# -# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\ -# -# Request for Local Directory Data in print format: \EPp13;\ -# -# Enable 'Prt on Line' mode: \022 (DC2) -# -# Disable 'Prt on Line' mode: \024 (DC4) -# -att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal:\ - :am:xo:\ - :co#80:it#8:li#24:\ - :&2=\E[27s:@4=\E!:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ - :DO=\E[%dB:F8=\E[18s:F9=\E[19s:FA=\E[20s:FB=\E[21s:\ - :FC=\E[22s:FD=\E[23s:FE=\E24s:FG=\E26s:LE=\E[%dD:\ - :RA=\E[11;1j:RI=\E[%dC:SA=\E[11;0j:UP=\E[%dA:\ - :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cb=\E2K:cd=\E[0J:\ - :ce=\E[0K:cl=\E[2J\E[H:cm=\E[%d;%dH:cr=^M:dc=\E[P:\ - :dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ - :i1=\EPr\\E[0u\E[2J\E[0;0H\E[0m\E[3l\E[l\E[=l\E[?l:\ - :im=\E[4h:k0=\E[00s:k1=\E[01s:k2=\E[02s:k3=\E[03s:\ - :k4=\E[04s:k5=\E[05s:k6=\E[06s:kb=^H:kd=\E[B:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0m:\ - :mr=\E[7m:nd=\E[C:pf=\E[4i:po=\E[5i:r1=\Ec:rc=\E8:\ - :sc=\E7:se=\E[0m:sf=^J:so=\E[1m:ta=^I:ue=\E[0m:\ - :up=\E[A:us=\E[4m:ve=\E[>l:vs=\E[>h: - -# -# The following Terminfo entry describes functions which are supported by -# the AT&T 5430/pt505 terminal software version 1. -# -# The following represents the screen layout along with the associated -# bezel buttons for the 5430/pt505 terminal. The "kf" designations do -# not appear on the screen but are shown to reference the bezel buttons. -# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate -# position relative to the screen. -# -# -# -# +----------------------------------------------------------------+ -# | | -# XXXX | kf0 kf24 | XXXX -# | | -# | | -# XXXX | kf1 kf23 | XXXX -# | | -# | | -# XXXX | kf2 kf22 | XXXX -# | | -# | | -# XXXX | kf3 kf21 | XXXX -# | | -# | | -# XXXX | kf4 kf20 | XXXX -# | | -# | | -# XXXX | kf5 kf19 | XXXX -# | | -# | | -# XXXX | kf6 kf18 | XXXX -# | | -# | | -# XXXX | | XXXX -# | | -# | | -# +----------------------------------------------------------------+ -# -# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX -# -# Note: XXXX represents the screen buttons -# CMD REDRAW -# -# MAIL -# -# Depression of the "CMD" key sends \E! (kcmd) -# Depression of the "MAIL" key sends (note) (kf26) -# "REDRAW" same as "REFRESH" (krfr) (note) -# -# note: The character string sent by key 'kf26' may be user programmable -# to send either \E[16s, or \E[26s. -# The character string sent by key 'krfr' may be user programmable -# to send either \E[17s, or \E[27s. -# -# "kf" functions adds carriage return to output string if terminal is in -# 'new line' mode. -# -# The following are functions not covered in the table above: -# -# Set keyboard character (SKC): -# -# \EPn1;Pn2w -# -# Pn1= 0 Back Space key -# Pn1= 1 Break key -# Pn2= Program char (hex) -# -# Screen Definition (SDF): -# -# \E[Pn1;Pn2;Pn3;Pn4;Pn5t -# -# Pn1= Window number (1-39) -# Pn2-Pn5= Y;X;Y;X coordinates -# -# Screen Selection (SSL): -# -# \E[Pnu -# -# Pn= Window number -# -# Set Terminal Modes (SM): -# -# \E[Pnh -# -# Pn= 3 Graphics mode -# Pn= > Cursor blink -# Pn= < Enter new line mode -# Pn= = Enter reverse insert/replace mode -# Pn= ? Enter no scroll mode -# -# Reset Terminal Mode (RM): -# -# \E[Pnl -# -# Pn= 3 Exit graphics mode -# Pn= > Exit cursor blink -# Pn= < Exit new line mode -# Pn= = Exit reverse insert/replace mode -# Pn= ? Exit no scroll mode -# -# Screen Status Report (SSR): -# -# \E[Pnp -# -# Pn= 0 Request current window number -# Pn= 1 Request current window dimensions -# -# Device Status Report (DSR): -# -# \E[6n Request cursor position -# -# Call Status Report (CSR): -# -# \E[Pnv -# -# Pn= 0 Call failed -# Pn= 1 Call successful -# -# Transparent Button String (TBS): -# -# \E[Pn1;Pn2;Pn3;{string -# -# Pn1= Button number to be loaded -# Pn2= Character count of "string" -# Pn3= Key mode being loaded: -# 0= Unshifted -# 1= Shifted -# 2= Control -# String= Text string (15 chars max) -# -# Screen Number Report (SNR): -# -# \E[Pnp -# -# Pn= Screen number -# -# Screen Dimension Report (SDR): -# -# \E[Pn1;Pn2r -# -# Pn1= Number of rows available in window -# Pn2= Number of columns available in window -# -# Cursor Position Report (CPR): -# -# \E[Pn1;Pn2R -# -# Pn1= "Y" Position of cousor -# Pn2= "X" Position of cursor -# -# Request Answer Back (RAB): -# -# \E[c -# -# Answer Back Response (ABR): -# -# \E[?;0;30;VSV -# -# V= Software version number -# SV= Software sub version number -# -# Screen Alignment Aid: -# -# \En -# -# Bell (lower pitch): -# -# \E[x -# -# Dial Phone Number: -# -# \EPdstring\ -# -# string= Phone number to be dialed -# -# Set Phone Labels: -# -# \EPpstring\ -# -# string= Label for phone buttons -# -# Set Clock: -# -# \EPchour;minute;second\ -# -# Position Clock: -# -# \EPsY;X\ -# -# Y= "Y" coordinate -# X= "X" coordinate -# -# Delete Clock: -# -# \Epr\ -# -# Programming The Function Buttons: -# -# \EPfPn;string\ -# -# Pn= Button number (00-06, 18-24) -# (kf00-kf06, kf18-kf24) -# -# string= Text to sent on button depression -# -# -# -# 05-Aug-86 -# -# -att505-24|pt505-24|gs5430-24| AT&T PT505 or 5430 GETSET version 1 24 lines:\ - :am:xo:\ - :co#80:it#8:li#24:\ - :&2=\E[27s:@4=\E!:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ - :DO=\E[%dB:F8=\E[18s:F9=\E[19s:FA=\E[20s:FB=\E[21s:\ - :FC=\E[22s:FD=\E[23s:FE=\E24s:FG=\E26s:LE=\E[%dD:\ - :RI=\E[%dC:UP=\E[%dA:ae=\E[10m:al=\E[L:as=\E[11m:\ - :bl=^G:cb=\E2K:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[H:\ - :cm=\E[%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\ - :ho=\E[H:\ - :i1=\EPr\\E[0u\E[2J\E[0;0H\E[0m\E[3l\E[l\E[=l\E[?l:\ - :im=\E[4h:k0=\E[00s:k1=\E[01s:k2=\E[02s:k3=\E[03s:\ - :k4=\E[04s:k5=\E[05s:k6=\E[06s:kb=^H:kd=\E[B:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0m:\ - :mr=\E[7m:nd=\E[C:r1=\Ec:se=\E[0m:sf=^J:so=\E[1m:\ - :ta=^I:ue=\E[0m:up=\E[A:us=\E[4m:ve=\E[>l:vs=\E[>h: -att505-22|pt505-22|gs5430-22| AT&T PT505 or 5430 GETSET version 1 22 lines:\ - :li#22:\ - :tc=att505-24: -# -# -------------------- TERMINFO FILE CAN BE SPLIT HERE ----------------------- -# This cut mark helps make life less painful for people running ncurses tic -# on machines with relatively little RAM. The file can be broken in half here -# cleanly and compiled in sections -- no `use' references cross this cut -# going forward. -# - -#### Ampex (Dialogue) -# -# Yes, these are the same people who are better-known for making audio- and -# videotape. I'm told they are located in Redwood City, CA. - -# From: Fri Sep 11 22:38:32 1981 -# (ampex80: mapped ":pt:" to default tabs; some capabilities merged in from -# SCO's entry -- esr) -ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80:\ - :am:bs:bw:pt:ul:\ - :co#80:li#24:\ - :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:\ - :cm=\E=%+ %+ :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:ei=:\ - :ic=\EQ:im=:is=\EA:le=^H:nd=^L:se=\Ek:sf=^J:so=\Ej:\ - :st=\E1:ta=^I:ue=\Em:up=^K:us=\El: -# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote: -ampex175|ampex d175:\ - :am:\ - :co#80:li#24:\ - :al=\EE:bl=^G:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :\ - :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:\ - :is=\EX\EA\EF:kA=\EE:kD=\EW:kI=\EQ:kL=\ER:kd=^J:\ - :kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:nd=^L:se=\Ek:\ - :sf=^J:so=\Ej:te=\EF:ti=\EN:ue=\Em:up=^K:us=\El: -# No backspace key in the main QWERTY cluster. Fortunately, it has a -# NEWLINE/PAGE key just above RETURN that sends a strange single-character -# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS -# mode), this key can be used as the erase key; I find I like this. Because -# some people and some systems may not, there is another termcap ("ampex175") -# that suppresses this little eccentricity by omitting the relevant capability. -ampex175-b|ampex d175 using left arrow for erase:\ - :kb=^_:tc=ampex175: -# From: Richard Bascove -# (ampex210: removed obsolete ":kn#10:"; mapped ":pt:" to default tabs -- esr) -ampex210|a210|ampex a210:\ - :am:bs:hs:pt:xn:\ - :co#80:li#24:sg#1:ug#1:\ - :al=\EE:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :\ - :dc=\EW:dl=\ER:ei=:fs=\E.2:ho=^^:ic=\EQ:\ - :if=/usr/share/tabset/std:im=:\ - :is=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En:k0=^A0\r:\ - :k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:\ - :k6=^A6\r:k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^V:kh=^^:\ - :kl=^H:kr=^L:ku=^K:nd=^L:se=\EG0:so=\EG4:\ - :ts=\E.0\Eg\E}\Ef:ue=\EG0:up=^K:us=\EG8:\ - :vb=\EU\EX\EU\EX\EU\EX\EU\EX: -ampex219|ampex-219|amp219|Ampex with Automargins:\ - :hs:xn:\ - :co#80:it#8:li#24:\ - :bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:cs=%i\E[%2;%2r:do=\E[B:ho=\E[H:\ - :is=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ - :k0=\E[21~:k1=\E[7~:k2=\E[8~:k3=\E[9~:k4=\E[10~:\ - :k5=\E[11~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ - :kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:kr=\E[C:ks=\E=:\ - :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:mh=\E[1m:\ - :mr=\E[7m:nd=\E[C:se=\E[0m:sf=^J:so=\E[7m:sr=\EM:\ - :ta=^I:ue=\E[0m:up=\E[A:us=\E[4m: -ampex219w|ampex-219w|amp219w|Ampex 132 cols:\ - :co#132:li#24:\ - :bl=^G:cr=^M:do=^J:\ - :is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:sf=^J:\ - :vs=\E[?3h:tc=ampex219: -ampex232|ampex-232|Ampex Model 232:\ - :am:\ - :co#80:li#24:sg#1:ug#1:\ - :al=5*\EE:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\ - :dc=\EW:dl=5*\ER:do=^V:ei=:ic=\EQ:\ - :if=/usr/lib/tabset/ampex:im=:is=\Eg\El:k0=^A@\r:\ - :k1=^AA\r:k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:\ - :k6=^AF\r:k7=^AG\r:k8=^AH\r:k9=^AI\r:kb=^H:kd=^V:\ - :kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\EG0:so=\EG4:\ - :ta=^I:ue=\EG0:up=^K:us=\EG8:\ - :vb=\Eb\200\200\200\200\200\200\200\200\200\200\200\200\200\200\Ed:\ - :ve=\E.4:vi=\E.0: -ampex232w|Ampex Model 232 / 132 columns:\ - :co#132:li#24:\ - :if=/usr/lib/tabset/amp-132:is=\E\034Eg\El:tc=ampex232: - -#### Ann Arbor (aa) -# - -# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs. -# Highly modified 6/22 by Mike O'Brien. -# split out into several for the various screen sizes by dave-yost@rand -# Modifications made 3/82 by Mark Horton -# Modified by Tom Quarles at UCB for greater efficiency and more diversity -# status line moved to top of screen, :vb: removed 5/82 -# Some unknown person at SCO then hacked the init strings to make them more -# efficient. -# -# assumes the following setup: -# A menu: 0000 1010 0001 0000 -# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19 -# C menu: 56 66 0 0 9600 0110 1100 -# D menu: 0110 1001 1 0 -# -# Briefly, the settings are for the following modes: -# (values are for bit set/clear with * indicating our preference -# and the value used to test these termcaps) -# Note that many of these settings are irelevent to the termcap -# and are just set to the default mode of the terminal as shipped -# by the factory. -# -# A menu: 0000 1010 0001 0000 -# Block/underline cursor* -# blinking/nonblinking cursor* -# key click/no key click* -# bell/no bell at column 72* -# -# key pad is cursor control*/key pad is numeric -# return and line feed/return for key * -# repeat after .5 sec*/no repeat -# repeat at 25/15 chars per sec. * -# -# hold data until pause pressed/process data unless pause pressed* -# slow scroll/no slow scroll* -# Hold in area/don't hold in area* -# functions keys have default*/function keys disabled on powerup -# -# show/don't show position of cursor during page transmit* -# unused -# unused -# unused -# -# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19 -# Baud rate (9600*) -# -# 2 bits of parity - 00=odd,01=even*,10=space,11=mark -# 1 stop bit*/2 stop bits -# parity error detection off*/on -# -# keyboard local/on line* -# half/full duplex* -# disable/do not disable keyboard after data transmission* -# -# transmit entire page/stop transmission at cursor* -# transfer/do not transfer protected characters* -# transmit all characters/transmit only selected characters* -# transmit all selected areas/transmit only 1 selected area* -# -# transmit/do not transmit line seperators to host* -# transmit/do not transmit page tab stops tabs to host* -# transmit/do not transmit column tab stop tabs to host* -# transmit/do not transmit graphics control (underline,inverse..)* -# -# enable*/disable auto XON/XOFF control -# require/do not require receipt of a DC1 from host after each LF* -# pause key acts as a meta key/pause key is pause* -# unused -# -# unused -# unused -# unused -# unused -# -# XON character (17*) -# XOFF character (19*) -# -# C menu: 56 66 0 0 9600 0110 1100 -# number of lines to print data on (printer) (56*) -# -# number of lines on a sheet of paper (printer) (66*) -# -# left margin (printer) (0*) -# -# number of pad chars on new line to printer (0*) -# -# printer baud rate (9600*) -# -# printer parity: 00=odd,01=even*,10=space,11=mark -# printer stop bits: 2*/1 -# print/do not print guarded areas* -# -# new line is: 01=LF,10=CR,11=CRLF* -# unused -# unused -# -# D menu: 0110 1001 1 0 -# LF is newline/LF is down one line, same column* -# wrap to preceeding line if move left from col 1*/don't wrap -# wrap to next line if move right from col 80*/don't wrap -# backspace is/is not destructive* -# -# display*/ignore DEL character -# display will not/will scroll* -# page/column tab stops* -# erase everything*/erase unprotected only -# -# editing extent: 0=display,1=line*,2=field,3=area -# -# unused -# - -annarbor|4080|ann arbor 4080:\ - :am:\ - :co#80:li#40:\ - :bl=^G:cl=\014:\ - :..cm=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%'@'%+%c:\ - :cr=^M:ct=^^P^P:do=^J:ho=^K:kb=^^:kd=^J:kh=^K:kl=^H:\ - :kr=^_:ku=^N:le=^H:nd=^_:sf=^J:st=^]^P1:ta=^I:up=^N: - -# If you're using the GNU termcap library, add -# :cS=\E[%d;%d;%d;%dp: -# to these capabilities. This is the nonstandard GNU termcap scrolling -# capability, arguments are: -# 1. Total number of lines on the screen. -# 2. Number of lines above desired scroll region. -# 3. Number of lines below (outside of) desired scroll region. -# 4. Total number of lines on the screen, the same as the first parameter. -# The generic Ann Arbor entry is the only one that uses this. -aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly):\ - :5i:am:km:mi:xo:\ - :co#80:it#8:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\EOK:\ - :F2=\EOL:F3=\EOM:F4=\EON:F5=\EOO:F6=\EOP:F7=\EOQ:\ - :F8=\EOR:F9=\EOS:FA=\EOT:FB=\EOU:FC=\EOV:FD=\EOW:\ - :FE=\EOX:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:\ - :cv=\E[%+^Ad:dc=\E[P:dl=\E[M:do=^K:ei=:ho=\E[H:\ - :i1=\E[m\E7\E[H\E9\E8:i2=\E[1Q\E[>20;30l\EP`+x~M\E\\:\ - :ic=\E[@:im=:k1=\EOA:k2=\EOB:k3=\EOC:k4=\EOD:k5=\EOE:\ - :k6=\EOF:k7=\EOG:k8=\EOH:k9=\EOI:k;=\EOJ:kA=\E[L:\ - :kB=\E[Z:kC=\E[J:kD=\E[P:kI=\E[@:kL=\E[M:kM=\E6:\ - :kb=^H:kd=\E[B:\ - :ke=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\:\ - :kh=\E[H:kl=\E[D:kr=\E[C:\ - :ks=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\:\ - :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:mk=\E[8m:\ - :mm=\E[>52h:mo=\E[>52l:mr=\E[7m:nd=\E[C:pO=\E[%dv:\ - :pf=^C:po=\E[v:ps=\E[0i:rc=\E8:\ - :..rp=%p1%c\E[%p2%{1}%-%db:\ - :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\ - :sc=\E7:se=\E[m:sf=^K:so=\E[7m:st=\EH:ta=^I:ue=\E[m:\ - :up=\E[A:us=\E[4m: - -aaa+rv:\ - :i1=\E[7m\E7\E[H\E9\E8:mb=\E[5;7m:md=\E[1;7m:\ - :me=\E[7m\016:mk=\E[7;8m:mr=\E[m:r1=\E[H\E[7m\E[J:\ - :..sa=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\ - :se=\E[7m:so=\E[m:ue=\E[7m:us=\E[4;7m: -# Ambassador with the DEC option, for partial vt100 compatibility. -aaa+dec:\ - :ac=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz||}}:\ - :ae=^N:as=^O:cs=\E[%i%d;%dr:eA=\E(0:\ - :..sa=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;: -aaa-18|ann arbor ambassador/18 lines:\ - :li#18:\ - :is=\E7\E[60;0;0;18p\E8:te=\E[60;0;0;18p\E[60;1H\E[K:\ - :ti=\E[18;0;0;18p:tc=aaa+unk: -aaa-18-rv|ann arbor ambassador/18 lines+reverse video:\ - :tc=aaa+rv:tc=aaa-18: -aaa-20|ann arbor ambassador/20 lines:\ - :li#20:\ - :is=\E7\E[60;0;0;20p\E8:te=\E[60;0;0;20p\E[60;1H\E[K:\ - :ti=\E[20;0;0;20p:tc=aaa+unk: -aaa-22|ann arbor ambassador/22 lines:\ - :li#22:\ - :is=\E7\E[60;0;0;22p\E8:te=\E[60;0;0;22p\E[60;1H\E[K:\ - :ti=\E[22;0;0;22p:tc=aaa+unk: -aaa-24|ann arbor ambassador/24 lines:\ - :li#24:\ - :is=\E7\E[60;0;0;24p\E8:te=\E[60;0;0;24p\E[60;1H\E[K:\ - :ti=\E[24;0;0;24p:tc=aaa+unk: -aaa-24-rv|ann arbor ambassador/24 lines+reverse video:\ - :tc=aaa+rv:tc=aaa-24: -aaa-26|ann arbor ambassador/26 lines:\ - :li#26:\ - :is=\E7\E[60;0;0;26p\E8:te=\E[60;0;0;26p\E[26;1H\E[K:\ - :ti=\E[H\E[J\E[26;0;0;26p:tc=aaa+unk: -aaa-28|ann arbor ambassador/28 lines:\ - :li#28:\ - :is=\E7\E[60;0;0;28p\E8:te=\E[60;0;0;28p\E[28;1H\E[K:\ - :ti=\E[H\E[J\E[28;0;0;28p:tc=aaa+unk: -aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status:\ - :es:hs:\ - :li#29:\ - :ds=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K:\ - :fs=\E[>51l:is=\r\n\E[A\E7\E[60;1;0;30p\E8:\ - :te=\E[60;1;0;30p\E[29;1H\E[K:\ - :ti=\E[H\E[J\E[30;1;0;30p\E[30;1H\E[K:\ - :ts=\E[>51h\E[1;%p1%dH\E[2K:tc=aaa+unk: -aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status line+reverse video:\ - :tc=aaa+rv:tc=aaa-30-s: -aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status line+save context:\ - :te=\E[60;1;0;30p\E[59;1H\E[K:\ - :ti=\E[30;1H\E[K\E[30;1;0;30p:tc=aaa-30-s: -aaa-s-rv-ctxt|aaa-30-s-rv-ct|aaa-30-srvctxt|ann arbor ambassador/30 lines; status line; saving context:\ - :te=\E[60;1;0;30p\E[59;1H\E[K:\ - :ti=\E[30;1H\E[K\E[30;1;0;30p:tc=aaa-30-s-rv: -aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines:\ - :li#30:\ - :is=\E7\E[60;0;0;30p\E8:te=\E[60;0;0;30p\E[30;1H\E[K:\ - :ti=\E[H\E[J\E[30;0;0;30p:tc=aaa+unk: -aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video:\ - :tc=aaa+rv:tc=aaa-30: -aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context:\ - :te=\E[60;0;0;30p\E[60;1H\E[K:ti=\E[30;0;0;30p:tc=aaa-30: -aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines; saving context:\ - :te=\E[60;0;0;30p\E[60;1H\E[K:ti=\E[30;0;0;30p:tc=aaa+rv:tc=aaa-30: -aaa-36|ann arbor ambassador/36 lines:\ - :li#36:\ - :is=\E7\E[60;0;0;36p\E8:te=\E[60;0;0;36p\E[36;1H\E[K:\ - :ti=\E[H\E[J\E[36;0;0;36p:tc=aaa+unk: -aaa-36-rv|ann arbor ambassador/36 lines+reverse video:\ - :tc=aaa+rv:tc=aaa-36: -aaa-40|ann arbor ambassador/40 lines:\ - :li#40:\ - :is=\E7\E[60;0;0;40p\E8:te=\E[60;0;0;40p\E[40;1H\E[K:\ - :ti=\E[H\E[J\E[40;0;0;40p:tc=aaa+unk: -aaa-40-rv|ann arbor ambassador/40 lines+reverse video:\ - :tc=aaa+rv:tc=aaa-40: -aaa-48|ann arbor ambassador/48 lines:\ - :li#48:\ - :is=\E7\E[60;0;0;48p\E8:te=\E[60;0;0;48p\E[48;1H\E[K:\ - :ti=\E[H\E[J\E[48;0;0;48p:tc=aaa+unk: -aaa-48-rv|ann arbor ambassador/48 lines+reverse video:\ - :tc=aaa+rv:tc=aaa-48: -aaa-60-s|ann arbor ambassador/59 lines plus status line:\ - :es:hs:\ - :li#59:\ - :ds=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K:\ - :fs=\E[>51l:is=\r\n\E[A\E7\E[60;1;0;60p\E8:\ - :ts=\E[>51h\E[1;%p1%dH\E[2K:tc=aaa+unk: -aaa-60-s-rv|ann arbor ambassador/59 lines+status line+reverse video:\ - :tc=aaa+rv:tc=aaa-60-s: -aaa-60-s-rv-dec|ann arbor ambassador/dec mode+59 lines+status line+rev video:\ - :tc=aaa+dec:tc=aaa+rv:tc=aaa-60-s: -aaa-60|ann arbor ambassador/60 lines:\ - :li#60:\ - :is=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8:tc=aaa+unk: -aaa-60-rv|ann arbor ambassador/60 lines+reverse video:\ - :tc=aaa+rv:tc=aaa-60: -aaa-db|ann arbor ambassador 30/destructive backspace:\ - :i2=\E[1Q\E[m\E[>20l\E[>30h:le=\E[D:tc=aaa-30: - -guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols:\ - :li#33:\ - :i2=\E[>59l:is=\E7\E[255;0;0;33;80;80p\E8\E[J:\ - :te=\E[255p\E[255;1H\E[K:ti=\E[33p:vb=\E[>59h\E[>59l:tc=aaa+unk: -guru+rv|guru changes for reverse video:\ - :i2=\E[>59h:vb=\E[>59l\E[>59h: -guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video:\ - :tc=guru+rv:tc=guru-33: -guru+s|changes for status line:\ - :es:hs:\ - :ds=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K:fs=\E[>51l:\ - :te=\E[255;1p\E[255;1H\E[K:\ - :ts=\E[>51h\E[1;%p1%dH\E[2K: -guru-nctxt:\ - :ti=\E[H\E[J\E[33p\E[255;1H\E[K:tc=guru: -guru-s|guru-33-s|ann arbor guru/33 lines w/status line:\ - :li#32:\ - :is=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J:\ - :ti=\E[33;1p\E[255;1H\E[K:tc=guru+s:tc=guru+unk: -guru-24:\ - :co#80:li#24:\ - :is=\E7\E[255;0;0;24;80;80p\E8\E[J:ti=\E[24p:tc=guru+unk: -guru-44:\ - :co#97:li#44:\ - :is=\E7\E[255;0;0;44;97;100p\E8\E[J:ti=\E[44p:tc=guru+unk: -guru-44-s|ann arbor guru/44 lines w/status line:\ - :li#43:\ - :is=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J:\ - :ti=\E[44;1p\E[255;1H\E[K:tc=guru+s:tc=guru+unk: -guru-76|guru with 76 lines by 89 cols:\ - :co#89:li#76:\ - :is=\E7\E[255;0;0;76;89;100p\E8\E[J:ti=\E[76p:tc=guru+unk: -guru-76-s|ann arbor guru/76 lines w/status line:\ - :co#89:li#75:\ - :is=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J:\ - :ti=\E[76;1p\E[255;1H\E[K:tc=guru+s:tc=guru+unk: -guru-76-lp|guru-lp|guru with page bigger than line printer:\ - :co#134:li#76:\ - :is=\E7\E[255;0;0;76;134;134p\E8\E[J:ti=\E[76p:tc=guru+unk: -guru-76-w|guru 76 lines by 178 cols:\ - :co#178:li#76:\ - :is=\E7\E[255;0;0;76;178;178p\E8\E[J:ti=\E[76p:tc=guru+unk: -guru-76-w-s|ann arbor guru/76 lines w/status line:\ - :co#178:li#75:\ - :is=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J:\ - :ti=\E[76;1p\E[255;1H\E[K:tc=guru+s:tc=guru+unk: -guru-76-wm|guru 76 lines by 178 cols with 255 cols memory:\ - :co#178:li#76:\ - :is=\E7\E[255;0;0;76;178;255p\E8\E[J:ti=\E[76p:tc=guru+unk: -aaa-rv-unk:\ - :Nl#0:lh#0:lw#0:\ - :i1=\E[7m\E7\E[H\E9\E8:mb=\E[5;7m:md=\E[1;7m:\ - :me=\E[7m:mk=\E[7;8m:mr=\E[m:r1=\E[H\E[7m\E[J:\ - :..sa=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\ - :se=\E[7m:so=\E[m:ue=\E[7m:us=\E[4;7m: - -#### Applied Digital Data Systems (adds) -# -# ADDS itself is long gone. ADDS was bought by NCR, and the same group made -# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for -# terminals was merged again. Then AT&T sold the terminal business to -# SunRiver. The engineers from Teletype, AT&T terminals, ADDS, -# and NCR (who are still there) are at: -# -# SunRiver Data Systems -# 100 Marcus Boulevard -# Hauppauge, NY 117883-762 -# Vox: (800)-231-5445 -# Fax: (516)-342-7378 -# -# Their voice mail describes the place as "SunRiver (formerly ADDS)". - -# Regent: lowest common denominator, works on all regents. -# (regent: renamed ":bc:" to ":le:" -- esr) -regent|Adds Regent Series:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cl=^L:cr=^M:do=^J:ho=\EY :le=^U:ll=^A:nd=^F:\ - :sf=^J:up=^Z: -# Regent 100 has a bug where if computer sends escape when user is holding -# down shift key it gets confused, so we avoid escape. -regent100|Adds Regent 100:\ - :sg#1:ug#1:\ - :bl=^G:cm=\013%+ %B\020%.:k0=^B1\r:k1=^B2\r:k2=^B3\r:\ - :k3=^B4\r:k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:l0=F1:\ - :l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:se=\E0@:\ - :so=\E0P:ue=\E0@:us=\E0`:tc=regent: -regent20|Adds Regent 20:\ - :bl=^G:cd=\Ek:ce=\EK:cm=\EY%+ %+ :tc=regent: -regent25|Adds Regent 25:\ - :bl=^G:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:tc=regent20: -regent40|Adds Regent 40:\ - :sg#1:ug#1:\ - :al=\EM:bl=^G:dl=\El:k0=^B1\r:k1=^B2\r:k2=^B3\r:\ - :k3=^B4\r:k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:l0=F1:\ - :l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:se=\E0@:\ - :so=\E0P:ue=\E0@:us=\E0`:tc=regent25: -regent40+|Adds Regent 40+:\ - :is=\EB:tc=regent40: -# (regent60: removed obsolete ":ko=dc,im,ei:" -- esr) -regent60|regent200|Adds Regent 60:\ - :dc=\EE:ei=\EF:im=\EF:is=\EV\EB:kD=\EE:kI=\EF:kM=\EF:\ - :se=\ER\E0@\EV:so=\ER\E0P\EV:tc=regent40+: -regent60na|regent 60 w/no arrow keys:\ - :kd@:kl@:kr@:ku@:tc=regent60: -# From: Thu Jul 9 09:27:33 1981 -# (viewpoint: added kcuf1, kf* and dl1 capabilities -- esr) -viewpoint|addsviewpoint|adds viewpoint:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dl=\El:\ - :do=^J:is=\017\E0`:k0=^B1:k2=^B2:k3=^B!:k4=^B":\ - :k5=^B#:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:ll=^A:\ - :nd=^F:se=^O:sf=^J:so=^N:ue=^O:up=^Z:us=^N:\ - :ve=\017\E0`:vs=\017\E0P: -screwpoint|adds viewpoint with ^O bug:\ - :am:bs:\ - :Nl#0:co#80:lh#0:li#24:lw#0:\ - :bl=^G:cd=\Ek:ce=\EK:cl=\014:cm=\EY%+ %+ :cr=^M:\ - :dl=\El:do=^J:is=^G:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:\ - :le=^H:ll=^A:nd=^F:sf=^J:up=^Z: -fviewpoint|flaky adds viewpoint with ^O bug:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cd=\Ek:ce=\EK:cl=\014:cm=\EY%+ %+ :cr=^M:\ - :dl=\El:do=^J:is=^G:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:\ - :le=^H:ll=^A:nd=^F:sf=^J:up=^Z: -# From: Jay S. Rouman 5 Jul 92 -# The civis/cnorm/sgr/sgr0 strings were added by ESR from specs. -# Theory; the 3a+ wants \E0%c to set highlights, where normal=01000000, -# underline=01100000, rev=01010000, blink=01000010,dim=01000001, -# invis=01000100 and %c is the logical or of desired attributes. -# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(. -vp3a+|viewpoint3a+|adds viewpoint 3a+:\ - :am:bw:\ - :co#80:it#8:li#24:\ - :cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:\ - :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:me=\E(:\ - :nd=^L:nw=^M^J:\ - :..sa=\E0%'@'%?%p1%tQ%|%;%?%p2%t%'`'%|%;%?%p3%tP%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%?%p7%tD%|%;%c\E):\ - :se=\E(:sf=^J:so=\E0Q\E):ta=^I:up=^K:ve=^X:vi=^W: -vp60|viewpoint60|addsviewpoint60|adds viewpoint60:\ - :tc=regent40: -# -# adds viewpoint 90 - from cornell -# Note: emacs sends ei occasionally to insure the terminal is out of -# insert mode. This unfortunately puts the viewpoint90 IN insert -# mode. A hack to get around this is :ic=\EF \EF^U:. (Also, -# - :ei=:im=: must be present in the termcap translation.) -# - :xs: indicates glitch that attributes stick to location -# - :ms: means it's safe to move in standout mode -# - :cl=\EG\Ek: clears screen and visual attributes without affecting -# the status line -# Function key and label capabilities merged in from SCO. -vp90|viewpoint90|adds viewpoint 90:\ - :bs:bw:ms:xs:\ - :co#80:li#24:\ - :cd=\Ek:ce=\EK:cl=\EG\Ek:cm=\EY%+ %+ :dc=\EE:dl=\El:\ - :do=^J:ei=:ho=\EY :ic=\EF \EF\025:im=:k0=^B1\r:\ - :k1=^B2\r:k2=^B3\r:k3=^B4\r:k4=^B5\r:k5=^B6\r:\ - :k6=^B7\r:k7=^B8\r:k8=^B9\r:k9=^B\072\r:k;=^B;\r:\ - :kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:l0=F1:l1=F2:\ - :l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:l9=F10:\ - :la=F11:ll=^A:nd=^F:se=\ER\E0@\EV:sf=^J:\ - :so=\ER\E0Q\EV:ta=^I:ue=\ER\E0@\EV:up=^Z:\ - :us=\ER\E0`\EV: -# Note: if return acts weird on a980, check internal switch #2 -# on the top chip on the CONTROL pc board. -adds980|a980|adds consul 980:\ - :am:bs:\ - :co#80:li#24:\ - :al=\E\016:bl=^G:cl=\014\013@:cm=\013%+@\E\005%2:\ - :cr=^M:dl=\E\017:do=^J:k0=\E0:k1=\E1:k2=\E2:k3=\E3:\ - :k4=\E4:k5=\E5:k6=\E6:k7=\E7:k8=\E8:k9=\E9:le=^H:\ - :nd=\E^E01:se=^O:sf=^J:so=^Y^^^N: - -#### C. Itoh Electronics -# -# As of 1995 these people no longer make terminals (they're still in the -# printer business). Their terminals were all clones of the DEC VT series. -# They're located in Orange County, CA. -# - -# CIT 80 - vt-52 emulator, the termcap has been modified to remove -# the delay times and do an auto tab set rather than the indirect -# file used in vt100. -cit80|cit-80|citoh 80:\ - :am:bs:\ - :co#80:li#24:\ - :cd=\EJ:ce=\EK:cl=\E[;H\EJ:cm=\E[%i%2;%2H:cr=^M:\ - :ff=^L:is=\E>:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\ - :ks=\E[?1h\E=:ku=\EOA:nd=\E[C:sf=^J:up=\E[A: -# Alternate cit101 (vt100 em) file used in vt100. -# Uses 23 lines so can run citsys (like h19sys). -# 24 May 85 (mtxinu!sybase!tim) - removed 2-byte limit on :cm: cursor -# coordinates otherwise there is garbling on long lines in -# co#132 mode; also added support for multipage memory on the Itoh. -# From: Tim Wood Fri Sep 27 09:39:12 PDT 1985 -citc|Citoh fast vt100:\ - :am:bs:xn:\ - :co#80:li#23:\ - :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\ - :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=:ic=\E[@:im=:\ - :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g:\ - :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ - :ku=\EOA:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:up=\E[A:\ - :us=\E[4m:\ - :vb=\E[?5h\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\E[?5l:\ - :ve=\E[V\E8:vs=\E7\E[U: -cita:\ - :am:bs:xn:\ - :co#80:li#23:\ - :cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:\ - :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g:\ - :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ - :ku=\EOA:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:up=\E[A:\ - :us=\E[4m:\ - :vb=\E[?5h\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\E[?5l:\ - :ve=\E[V\E8:vs=\E7\E[U: -cit101:\ - :li#24:\ - :vb@:tc=citc: -cit101b:\ - :li#24:\ - :tc=citc: -# The CIT-500 was unusual in that it had a portrait-style display. -# (cit500: mapped ":pt:" to default tabs -- esr) -cit500|cit-500|cit 500:\ - :am:bs:pt:xn:\ - :co#80:li#40:\ - :al=\E[L:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\ - :cm=5\E[%i%2;%2H:dc=\E[P:dl=\E[M:do=\ED:\ - :is=\E(B\E)0\E>\E[?3l\E[?7h\E[?8h:k1=\EOP:k2=\EOQ:\ - :k3=\EOR:k4=\EOS:kd=\EOB:ke=\E[?1l\E>:kh=\E[H:\ - :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:nd=2\E[C:\ - :se=2\E[m:so=2\E[7m:sr=5\EM:ue=2\E[m:up=2\E[A:\ - :us=2\E[4m: - -citoh|ci8510|8510|c.itoh 8510a:\ - :co#80:it#8:\ - :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073.:\ - :le@:md=\E!:me=\E"\EY:rp=\ER%r%03%.:sr=\Er:ue=\EY:\ - :us=\EX:tc=lpr: -citoh-pica|citoh in pica:\ - :i1=\EN:tc=citoh: -citoh-elite|citoh in elite:\ - :co#96:\ - :i1=\EE:\ - :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073\054081\054089.:tc=citoh: -citoh-comp|citoh in compressed:\ - :co#136:\ - :i1=\EQ:\ - :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073\054081\054089\054097\054105\054113\054121\054129.:tc=citoh: -# citoh has infinite cols because we don't want lp ever inserting \n\t**. -citoh-prop|citoh-ps|ips|citoh in proportional spacing mode:\ - :co#32767:\ - :i1=\EP:tc=citoh: -citoh-6lpi|citoh in 6 lines per inch mode:\ - :i2=\EA:tc=citoh: -citoh-8lpi|citoh in 8 lines per inch mode:\ - :li#88:\ - :i2=\EB:tc=citoh: - -#### Control Data (cdc) -# - -cdc456|cdc:\ - :am:bs:\ - :co#80:li#24:\ - :al=\EL:bl=^G:cd=^X:ce=^V:cl=^Y^X:cm=\E1%+ %+ :cr=^M:\ - :dl=\EJ:do=^J:ho=^Y:le=^H:nd=^L:sf=^J:up=^Z: -cdc456tst:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cl=^Y^X:cm=\E1%+ %+ :cr=^M:do=^J:le=^H:sf=^J: - -#### Human Designed Systems (Concept) -# -# Human Designed Systems -# 400 Fehley Drive -# King of Prussia, PA 19406 -# Vox: (610)-277-8300 -# Fax: (610)-275-5739 -# Net: support@hds.com -# -# John Martin is their termcap expert. They're mostly out of -# the character-terminal business now (1995) and making X terminals. In -# particular, the whole `Concept' line described here was discontinued long -# ago. - -# From: Sat Jun 27 07:41:20 1981 -# Extensive changes to c108 by arpavax:eric Feb 1982 -# Some unknown person at SCO then translated it to terminfo. -# -# There seem to be a number of different versions of the C108 PROMS -# (with bug fixes in its Z-80 program). -# -# The first one that we had would lock out the keyboard of you -# sent lots of short lines (like /usr/dict/words) at 9600 baud. -# Try that on your C108 and see if it sends a ^S when you type it. -# If so, you have an old version of the PROMs. -# -# You should configure the C108 to send ^S/^Q before running this. -# It is much faster (at 9600 baud) than the c100 because the delays -# are not fixed. -# new status line display entries for c108-8p: -# is3 - init str #3 - setup term for status display - -# set programmer mode, select window 2, define window at last -# line of memory, set bkgnd stat mesg there, select window 0. -# -# tsl - to status line - select window 2, home cursor, erase to -# end-of-window, 1/2 bright on, goto(line#0, col#?) -# -# fsl - from status line - 1/2 bright off, select window 0 -# -# dsl - disable status display - set bkgnd status mesg with -# illegal window # -# -# There are probably more function keys that should be added but -# I don't know what they are. -# -c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages:\ - :i2=\EU\E z"\Ev\001\177 !p\E ;"\E z \Ev \001\177p\Ep\n:\ - :te=\Ev \001\177p\Ep\r\n:tc=c108-4p: -c108+acs|alternate charset defns for c108:\ - :ac=l\\qLkTxUmMjE:ae=\Ej :as=\Ej!: -c108-4p-acs|c108-4p w/ acs:\ - :tc=c108+acs:tc=c108-4p: -c108-8p-acs|c108-8p w/ acs:\ - :tc=c108+acs:tc=c108-8p: -c108-rv-8p-acs|c108-rv-8p w/ acs:\ - :tc=c108+acs:tc=c108-rv-8p: -c108-4p|concept108-4p|concept 108 w/4 pages:\ - :es:hs:xo:\ - :pb@:\ - :..cm=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c:\ - :cr=^M:dc=\E 1:ds=\E ;\177:fs=\Ee\E z :i1=\EK\E!\E F:\ - :i2=\EU\E z"\Ev\177 !p\E ;"\E z \Ev \001 p\Ep\n:\ - :sf=^J:te=\Ev \001 p\Ep\r\n:\ - :ti=\EU\Ev 8p\Ep\r\E\025:\ - :ts=\E z"\E?\E\005\EE\Ea %+ :ve=\Ew:vs=\EW:tc=c100: -c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video:\ - :te=\Ev \002 p\Ep\r\n:ti=\EU\Ev 8p\Ep\r:tc=c108-rv-4p: -c108-rv-4p|concept108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video:\ - :i1=\Ek:se=\Ee:so=\EE:vb=\EK\Ek:tc=c108-4p: -c108-rv-4p-acs|c108-rv-4p w/ acs:\ - :tc=c108+acs:tc=c108-rv-4p: -c108-na|c108-na-8p|c108-8p-na|concept108-na-|concept108na8p|concept 108 w/8 pages no arrows:\ - :k7=\E;:k8=\E<:k9=\E=:ke@:ks@:tc=c108-8p: -c108-na-acs|c108-na w/ acs:\ - :tc=c108+acs:tc=c108-na: -c108-rv-na|c108-rv-na-8p|c108-8p-rv-na|concept 108 8 pages no arrows rev video:\ - :k7=\E;:k8=\E<:k9=\E=:ke@:ks@:tc=c108-rv-8p: -c108-rv-na-acs|c108-na w/ acs:\ - :tc=c108+acs:tc=c108-rv-na: -c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode:\ - :co#132:\ - :i1=\E F\E":te=\Ev ^A0\001D\Ep\r\n:\ - :ti=\EU\Ev 8\001D\Ep\r:tc=c108-8p: -c108-w-acs|c108-w w/ acs:\ - :tc=c108+acs:tc=c108-w: - -# Concept 100: -# These have only window relative cursor addressing, not screen -# relative. To get it to work right here, smcup/rmcup (which -# were invented for the concept) lock you into a one page -# window for screen style programs. -# -# To get out of the one page window, we use a clever trick: -# we set the window size to zero ("\Ev " in rmcup) which the -# terminal recognizes as an error and resets the window to all -# of memory. -# -# This trick works on c100 but does not on c108, sigh. -# -# Some tty drivers use cr3 for concept, others use nl3, hence -# the delays on cr and ind below. This padding is only needed at -# 9600 baud. One or the other is commented out depending on -# local conventions. -# -# 2 ms padding on rmcup isn't always enough. 6 works fine. Maybe -# less than 6 but more than 2 will work. -# -# Note: can't use function keys f7-f10 because they are -# indistinguishable from arrow keys (!), also, del char and -# clear eol use xon/xoff so they probably won't work very well. -# -# Also note that we don't define insrt/del char/delline/eop/send -# because they don't transmit unless we reset them - I figured -# it was a bad idea to clobber their definitions. -# -# The mc5 sequence changes the escape character to ^^ so that -# escapes will be passed through to the printer. Only trouble -# is that ^^ won't be - ^^ was chosen to be unlikely. -# Unfortunately, if you're sending raster bits through to be -# plotted, any character you choose will be likely, so we lose. -# -# \EQ"\EY(^W (send anything from printer to host, for xon/xoff) -# cannot be # in is2 because it will hang a c100 with no printer -# if sent twice. -c100|concept100|concept|c104|c100-4p|hds concept 100:\ - :am:eo:mi:ul:xn:\ - :co#80:li#24:pb#9600:vt#8:\ - :al=\E\022:bl=^G:cd=\E\005:ce=\E\025:cl=\E?\E\005:\ - :cm=\Ea%+ %+ :cr=\r:dc=\E\021:dl=\E\002:do=^J:\ - :ei=\E :i1=\EK:i2=\Ev \Ep\n:im=\E^P:ip=:\ - :is=\EU\Ef\E7\E5\E8\El\ENH\E\200\Eo&\200\Eo'\E\Eo!\200\E\007!\E\010A@ \E4#\072"\E\072a\E4#;"\E\072b\E4#<"\E\072c:\ - :k1=\E5:k2=\E6:k3=\E7:k4=\E8:k5=\E9:k6=\E\072a:\ - :k7=\E\072b:k8=\E\072c:kA=\E^R:kB=\E':kD=\E^Q:\ - :kE=\E^S:kF=\E[:kI=\E^P:kL=\E^B:kM=\E\200:kN=\E-:\ - :kP=\E.:kR=\E\\:kS=\E^C:kT=\E]:kb=^H:kd=\E<:ke=\Ex:\ - :kh=\E?:kl=\E>:kr=\E=:ks=\EX:kt=\E_:ku=\E;:le=^H:\ - :mb=\EC:me=\EN@:mh=\EE:mk=\EH:mp=\EI:mr=\ED:nd=\E=:\ - :pf=\036o \E\EQ!\EYP\027:po=\EQ"\EY(\027\EYD\Eo \036:\ - :rp=\Er%.%+ :se=\Ed:sf=^J:so=\ED:ta=\011:\ - :te=\Ev \Ep\r\n:ti=\EU\Ev 8p\Ep\r\E\025:ue=\Eg:\ - :up=\E;:us=\EG:vb=\Ek\EK: -c100-rv|c100-rv-4p|concept100-rv|c100 rev video:\ - :i1=\Ek:se=\Ee:so=\EE:vb=\EK\Ek:ve@:vs@:tc=c100: -c100-rv-na|c100-rv-4p-na|c100 with no arrows:\ - :ke@:ks@:tc=c100-rv: -oc100|oconcept|c100-1p|old 1 page concept 100:\ - :in:\ - :i3@:tc=c100: - -# ht through el included to specify padding needed in raw mode. -avt-ns|concept avt with status lins disabled:\ - :am:eo:mi:ul:xn:xo:\ - :co#80:it#8:li#24:lm#192:\ - :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\ - :RI=\E[%dC:UP=\E[%dA:ae=\016:al=\E[L:as=\017:bl=^G:\ - :bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:cl=\E[H\E[J:\ - :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[2g:\ - :cv=\E[%+^Ad:dc=\E[P:dl=\E[M:do=^J:ei=\E4l:ho=\E[H:\ - :i1=\E[=103l\E[=205l:ic=\E[@:im=\E1:ip=:\ - :is=\E[1*q\E[2!t\E[7!t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[!y\E[!z\E>\E[0\0720\07232!r\E[0*w\E[w\E2\r\n\E[2;27!t:\ - :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kA=\E^C\r:kD=\E^B\r:\ - :kI=\E^A\r:kS=\E^D\r:kb=^H:kd=\E[B:ke=\E[!z\E[0;2u:\ - :kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[1!z\E[0;3u:ku=\E[A:\ - :le=^H:ll=\E[24H:mb=\E[5m:md=\E[1m:me=\E[m:mh=\E[1!{:\ - :mk=\E8m:mp=\E[99m:mr=\E[7m:nd=\E[C:pf=\E[4i:\ - :pl=\E[%d;0u#%s#:po=\E[5i:ps=\E[0i:px=\E[%d;1u#%s#:\ - :rc=\E8:..rp=%p1%c\E[%p2%{1}%-%db:\ - :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\ - :sc=\E7:se=\E[7!{:sf=\n:so=\E[7m:sr=\EM:st=\EH:\ - :ta=\011:te=\E[w\E2\r\n:ti=\E[=4l\E[1;24w\E2\r:\ - :ue=\E[4!{:up=\E[A:us=\E[4m:ve=\E[=119l:vs=\E[=119h: -avt-rv-ns|concept avt in reverse video mode/no status line:\ - :i1=\E[=103l\E[=205h:vb=\E[=205l\E[=205h:tc=avt-ns: -avt-w-ns|concept avt in 132 column mode/no status line:\ - :i1=\E[=103h\E[=205l:ti=\E[H\E[1;24;1;132w:tc=avt-ns: -avt-w-rv-ns|concept avt in 132 column mode/no status line:\ - :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\ - :vb=\E[=205l\E[=205h:tc=avt-ns: - -# Concept AVT with status line. We get the status line using the -# "Background status line" feature of the terminal. We swipe the -# first line of memory in window 2 for the status line, keeping -# 191 lines of memory and 24 screen lines for regular use. -# The first line is used instead of the last so that this works -# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this -# assumes an 8 page AVT but lm isn't currently used anywhere.) -# -avt+s|concept avt status line changes:\ - :es:hs:\ - :lm#191:\ - :ds=\E[0*w:fs=\E[1;1!w:\ - :i2=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n:\ - :te=\E[2w\E2\r\n:ti=\E[2;25w\E2\r:\ - :ts=\E[2;1!w\E[;%p1%dH\E[2K: -avt|avt-s|concept-avt|avt w/80 columns:\ - :tc=avt+s:tc=avt-ns: -avt-rv|avt-s-rv|avt-rv-s|concept avt in reverse video w/status line:\ - :i1=\E[=103l\E[=205h:vb=\E[=205l\E[=205h:tc=avt+s:tc=avt-ns: -avt-w|avt-w-s|concept avt in 132 column mode w/status line:\ - :i1=\E[=103h\E[=205l:ti=\E[H\E[1;24;1;132w:tc=avt+s:tc=avt-ns: -avt-w-rv|avt-rv-w|avt-w-s-rv|avt-w-rv-s|avt 132 cols w/status line:\ - :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\ - :vb=\E[=205l\E[=205h:tc=avt+s:tc=avt-ns: - -#### Contel Business Systems. -# - -# Contel c300 and c320 terminals. -contel300|contel320|c300|Contel Business Systems C-300 or C-320:\ - :am:in:xo:\ - :co#80:li#24:sg#1:\ - :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :\ - :cr=^M:ct=\E3:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\EN:\ - :im=:ip=:k0=\ERJ:k1=\ERA:k2=\ERB:k3=\ERC:k4=\ERD:\ - :k5=\ERE:k6=\ERF:k7=\ERG:k8=\ERH:k9=\ERI:kb=^H:le=^H:\ - :ll=\EH\EA:nd=\EC:se=\E!\200:sf=^J:so=\E!\r:st=\E1:\ - :up=\EA:vb=\020\002\020\003: -# Contel c301 and c321 terminals. -contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321:\ - :am:in:xo:\ - :co#80:li#24:sg#1:\ - :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :\ - :cr=^M:ct=\E3:dc=\EO:dl=\EM:do=^J:ho=\EH:k0=\ERJ:\ - :k1=\ERA:k2=\ERB:k3=\ERC:k4=\ERD:k5=\ERE:k6=\ERF:\ - :k7=\ERG:k8=\ERH:k9=\ERI:kb=^H:le=^H:ll=\EH\EA:\ - :nd=\EC:se=\E!\200:sf=^J:so=\E!\r:st=\E1:up=\EA: - -#### Data General (dg) -# -# According to James Carlson writing in January 1995, -# the terminals group at Data General was shut down in 1991; all these -# terminals have thus been discontinued. -# - -dg200|data general dasher 200:\ - :NL:am:bw:\ - :co#80:li#24:\ - :bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:\ - :k0=^^z:k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:k6=^^v:\ - :k7=^^w:k8=^^x:k9=^^y:kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:\ - :l0=f10:le=^Y:nd=^X:nw=^J:se=^^E:sf=^J:so=^^D:ue=^U:\ - :up=^W:us=^T: -# -# dg450 and dg200 from cornell -dg450|dg6134|data general 6134:\ - :bs@:\ - :nd=^X:tc=dg200: -# Note: lesser Dasher terminals will not work with vi because vi insists upon -# having a command to move straight down from any position on the bottom line -# and scroll the screen up, or a direct vertical scroll command. The 460 and -# above have both, the D210/211, for instance, has neither. We must use ANSI -# mode rather than DG mode because standard UNIX tty drivers assume that ^H is -# backspace on all terminals. This is not so in DG mode. -# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the -# grounds that there is no matching ":ml:"; mapped ":pt:" to default tabs; -# fixed garbled ":k9=\E[00\:z:" capability -- esr) -dg460-ansi|Data General Dasher 460, ANSI-mode:\ - :am:bs:ms:pt:ul:\ - :co#80:li#24:\ - :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%2;%2H:\ - :dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:\ - :is=^^F@:k0=\E[001z:k1=\E[002z:k2=\E[003z:k3=\E[004z:\ - :k4=\E[005z:k5=\E[006z:k6=\E[007z:k7=\E[008z:\ - :k8=\E[009z:k9=\E[010z:kb=\E[D:kd=\E[B:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ku=\E[A:l0=f1:l1=f2:l2=f3:l3=f4:\ - :l4=f5:l5=f6:l6=f7:l7=f8:l9=f10:le=^H:mb=\E[5m:\ - :me=\E[0m:mh=\E[2m:mr=\E[7m:nd=\E[C:nl=\ED:se=\E[0m:\ - :sf=\E[S:so=\E[7m:sr=\E[T:ue=\E[05:up=\E[A:us=\E[4m: -# From: Wayne Throop -# Data General 605x -# Ought to work for a Model 6242, Type D210 as well as a 605x. -# Note that the cursor-down key transmits ^Z. Job control users, beware! -dg6053|data general 6053:\ - :am:bs:bw:pt:ul:\ - :co#80:li#24:\ - :bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:\ - :is=^R:k0=^^q:k1=^^r:k2=^^s:k3=^^t:k4=^^u:k5=^^v:\ - :k6=^^w:k7=^^x:k8=^^y:kb=^Y:kd=^Z:kh=^H:kl=^Y:kr=^X:\ - :ku=^W:le=^Y:nd=^X:nw=^M^Z:se=\200^^E:\ - :so=\200\200\200\200\200\036D:ta=^I:te=^L:ti=^L^R:\ - :ue=^U:up=^W:us=^T:ve=^L:vs=^L^R: -# From: Peter N. Wan -# courtesy of Carlos Rucalde of Vantage Software, Inc. -dgd211|Data General d211:\ - :am:bw:\ - :co#80:li#24:\ - :ce=^K:cl=^L:..cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:kb=^Y:\ - :kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:le=^Y:nd=^X:nw=^M^Z:\ - :se=00\036E\200/>:so=00\036D\200\200\200\200\200/>:\ - :ta=^I:te=^L:ti=^L^R:ue=^U:up=^W:us=^T:ve=^L:vs=^L^R: -# From: Joan Walter -# Data General/One -# David Holub got the dg1 to work with jove with this termcap -# by making li#23 and co#78 to comply with obvious terminal -# capabilities. Still waiting for documentation. -# Data General/One from modified DG Dasher DG210/211 (bw removed) -# From: Peter N. Wan -# courtesy of Carlos Rucalde of Vantage Software, Inc. -dg1|Data General/One:\ - :am:\ - :co#78:li#23:\ - :ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:kb=^Y:\ - :kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:le=^Y:nd=^X:nw=^M^Z:\ - :ta=^I:up=^W: - -#### Datamedia (dm) -# - -cs10|colorscan|Datamedia Color Scan 10:\ - :ms:\ - :co#80:li#24:\ - :bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[J:cm=\E[%i%02;%02H:\ - :cr=^M:do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:\ - :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:se=\E[m:sf=^J:\ - :so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m: -cs10-w|Datamedia Color Scan 10 with 132 columns:\ - :co#132:\ - :cm=\E[%i%02;%03H:tc=cs10: - -# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:"; -# mapped ":pt:" to default tabs -- esr) -dm1520|dm1521|datamedia 1520:\ - :am:bs:pt:xn:\ - :co#80:li#24:\ - :bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:\ - :ho=^Y:kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:nd=^\:\ - :sf=^J:ta=^I:up=^_: -dm2500|datamedia2500|datamedia 2500:\ - :bs:nc:\ - :co#80:li#24:\ - :al=\020\n\030\035\030\035:bl=^G:ce=^W:cl=^^^^\177:\ - :cm=\014%r%n%.%.:dc=\020\010\030\035:\ - :dl=\020\032\030\035:dm=^P:do=^J:ed=^X^]:\ - :ei=\377\377\030\035:ho=^B:ic=\020\034\030\035:im=^P:\ - :le=^H:nd=^\:pc=\377:se=^X^]:sf=^J:so=^N:up=^Z: -# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82) -# also, has a meta-key (:km:) -# From: -# (dmchat: ":MT:" changed to ":km:" -- esr) -dmchat|dmchat version of datamedia 2500:\ - :km:\ - :al=1*\020\n\030\035\030\035:dl=2\020\032\030\035:tc=dm2500: -# (dm3025: ":MT:" changed to ":km:"; mapped ":pt:" to default tabs -- esr) -dm3025|datamedia 3025a:\ - :bs:km:pt:\ - :co#80:li#24:\ - :al=\EP\n\EQ:bl=^G:cd=\EJ:ce=\EK:cl=\EM:\ - :cm=\EY%r%+ %+ :cr=^M:dc=\010:dl=\EP\EA\EQ:dm=\EP:\ - :do=^J:ed=\EQ:ei=\EQ:ho=\EH:im=\EP:ip=:is=\EQ\EU\EV:\ - :le=^H:nd=\EC:se=\EO0:sf=^J:so=\EO1:ta=^I:up=\EA: -# (dm3045: mapped ":pt:" to default tabs -- esr) -dm3045|datamedia 3045a:\ - :am:bs:eo:pt:ul:xn:\ - :co#80:li#24:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EM:cm=\EY%r%+ %+ :cr=^M:\ - :dc=\EB:do=^J:ei=\EP:ho=\EH:im=\EP:ip=:is=\EU\EV:\ - :k0=\Ey\r:k1=\Ep\r:k2=\Eq\r:k3=\Er\r:k4=\Es\r:\ - :k5=\Et\r:k6=\Eu\r:k7=\Ev\r:k8=\Ew\r:k9=\Ex\r:kh=\EH:\ - :kr=\EC:ku=\EA:le=^H:nd=\EC:pc=\177:sf=^J:ta=^I:\ - :up=\EA: -# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding. -dm80|dmdt80|dt80|datamedia dt80/1:\ - :cd=\E[J:ce=\E[K:cl=\E[2J\E[H:cm=%i\E[%d;%dH:do=^J:\ - :ho=\E[H:nd=\E[C:pf=\E[4i:po=\E[5i:ps=\E[0i:se=\E[m:\ - :so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m:tc=vt100: -# except in 132 column mode, where it needs a little padding. -# This is still less padding than the vt100, and you can always turn on -# the ^S/^Q handshaking, so you can use vt100 flavors for things like -# reverse video. -dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode:\ - :co#132:\ - :cd=20\E[0J:ce=20\E[0K:cl=50\E[H\E[2J:\ - :cm=5\E[%i%d;%dH:do=^J:up=5\E[A:tc=dm80: - -#### Falco -# -# Falco Data Products -# 440 Potrero Avenue -# Sunnyvale, CA 940864-196 -# Vox: (800)-325-2648 -# Fax: (408)-745-7860 -# Net: techsup@charm.sys.falco.com -# -# Current Falco models as of 1995 are generally ANSI-compatible and support -# emulations of DEC VT-series, Wyse, and Televideo types. - -# Test version for Falco ts-1. See "arpavax.hickman@ucb" for info -# (falco: mapped ":pt:" to default tabs -- esr) -# This terminal was released around 1983 and was discontinued long ago. -falco|ts1|ts-1|falco ts-1:\ - :am:bs:pt:\ - :co#80:li#24:\ - :al=\EE:bl=^G:cd=\EY:ce=\ET\EG0\010:cl=\E*:\ - :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:\ - :im=\Eq:is=\Eu\E3:k0=^A0\r:kd=^J:kl=^H:kr=^L:ku=^K:\ - :le=^H:nd=^L:se=\Eg0:sf=^J:so=\Eg1:ta=^I:ue=\Eg0:\ - :up=^K:us=\Eg1: -# (falco-p: mapped ":pt:" to default tabs -- esr) -falco-p|ts1p|ts-1p|falco ts-1 with paging option:\ - :am:bs:da:db:mi:ms:pt:ul:\ - :co#80:li#24:\ - :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET\EG0\010\Eg0:\ - :cl=\E*:cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=\E[B:\ - :ei=\Er:im=\Eq:is=\EZ\E3\E_c:kd=\E[B:kh=\E[H:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=^H:nd=\E[C:se=\Eg0:sf=^J:so=\Eg4:\ - :ta=^I:te=\E_b:ti=\E_d:ue=\Eg0:up=\E[A:us=\Eg1: -ts100|ts100-sp|falco ts100-sp:\ - :am:mi:ms:xn:xo:\ - :co#80:it#8:li#24:vt#3:\ - :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:\ - :K5=\EOn:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E~E:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3g:dc=\E~W:dl=\E~R:do=^J:eA=\E(B\E)0:ei=:\ - :ho=\E[H:i1=\E~)\E~ea:ic=\E~Q:im=:k0=\EOy:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:\ - :k8=\EOl:k9=\EOw:k;=\EOx:kb=^H:kd=\EOB:ke=\E[?1l\E>:\ - :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ - :md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ - :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m: -ts100-ctxt|falco ts-100 saving context:\ - :te=\E~_b:ti=\E~_d\E[2J:tc=ts100: - -#### Florida Computer Graphics -# - -# Florida Computer Graphics Beacon System, using terminal emulator -# program "host.com", as provided by FCG. Entry provided by -# David Bryant (cbosg!djb) 1/7/83. -# This description is for an early release of the "host" program. -# Known bug: ed clears the whole screen, so it's commented out. -# -beacon|FCG Beacon System:\ - :am:da:db:\ - :co#80:li#32:\ - :al=\EE:bl=\ESTART\r\E37\r\EEND\r:ce=\ET:cl=\EZ:\ - :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=\EH:\ - :ic=\EQ:im=:le=^H:mb=\ESTART\r\E61\0541\r\EEND\r:\ - :me=\ESTART\r\E78\r\E70\0540\r\EEND\r:\ - :mr=\ESTART\r\E59\0541\r\EEND\r:nd=\EV:\ - :se=\ESTART\r\E70\0540\r\EEND\r:sf=^J:\ - :so=\ESTART\r\E70\0546\r\EEND\r:\ - :ti=\ESTART\r\E2\0540\r\E12\r\EEND\r:\ - :ue=\ESTART\r\E60\0540\r\EEND\r:up=\EU:\ - :us=\ESTART\r\E60\0541\r\EEND\r: - -#### Fluke -# - -# The 1720a differences from ANSI: no auto margin, destructive -# tabs, # of lines, funny highlighting and underlining -f1720|f1720a|fluke 1720A:\ - :xt:\ - :co#80:li#16:sg#1:ug#1:\ - :bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:\ - :cr=^M:do=\E[B:is=\E[;H\E[2J:kd=^]:kl=^_:kr=^^:ku=^\:\ - :le=^H:nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:\ - :ue=\E[m:up=\E[A:us=\E[4m: - -#### Liberty Electronics (Freedom) -# -# Liberty Electronics -# 48089 Fremont Blvd -# Fremont CA 94538 -# Vox: (510)-623-6000 -# Fax: (510)-623-7021 - -# From: -f100|freedom|freedom100|freedom model 100:\ - :am:bw:hs:mi:ms:xo:\ - :co#80:li#24:\ - :ae=\E$:al=\EE:as=\E%:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ - :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:cv=\E[%+ :\ - :dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:ho=^^:\ - :im=\Eq:ip=:is=\Eg\Ef\r\Ed:k1=^A@\r:k2=^AA\r:\ - :k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\ - :k8=^AG\r:k9=^AH\r:k;=^AI\r:kB=\EI:kb=^H:kd=^V:kh=^^:\ - :kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\EG0:sf=^J:so=\EG4:\ - :sr=\Ej:st=\E1:ta=^I:ts=\Eg\Ef:ue=\EG0:up=^K:us=\EG8:\ - :vb=\Eb\Ed: -f100-rv|freedom-rv|freedom 100 in reverse video:\ - :is=\Eg\Ef\r\Eb:vb=\Ed\Eb:tc=f100: -# The f110 and f200 have problems with vi(1). They use the ^V -# code for the down cursor key. When kcud1 is defined in terminfo -# as ^V, the Control Character Quoting capability (^V in insert mode) -# is lost! It cannot be remapped in vi because it is necessary to enter -# a ^V to to quote the ^V that is being remapped!!! -# -# f110 users will have to decide whether -# to lose the down cursor key or the quoting capability. We will opt -# initially for leaving the quoting capability out, since use of VI -# is not generally applicable to most interactive applications -# -# The same applies to f200 users, except that another option exists. -# This option has been chosen locally. It will not be distributed unless -# a user runs into this problem and requests assistance. Very few users, -# if any, should run into this problem. The local solution is in -# vifix.local.ti. The f200 has the ability to reprogram the down cursor -# key. The key is reprogrammed to ^J (linefeed). This value is remembered -# in non-volatile RAM, so powering the terminal off and on will not cause -# the change to be lost. The terminfo definition for the f200 is changed -# to identify kcud1 as ^J instead of ^V. -f110|freedom110|Liberty Freedom 110:\ - :am:es:hs:mi:ms:xo:\ - :co#80:it#8:li#24:ws#80:\ - :ae=\E%%:al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ - :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:cv=\E[%+ :\ - :dc=\EW:dl=\ER:do=^V:ds=\Ef\r:ei=\Er\EO:fs=^M:ho=^^:\ - :k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ - :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:\ - :kC=^^:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:\ - :kd=^V:kl=^H:kr=^L:ku=^K:le=^H:mb=\EG2:md=\EG0:\ - :me=\EG0:mh=\EG@:mk=\EG1:mr=\EG4:nd=^L:pf=\Ea:po=\E`:\ - :se=\EG0:sf=^J:so=\EG<:sr=\EJ\nsmir=\EO\Eq:st=\E1:\ - :ts=\Ef:ue=\EG0:up=^K:us=\EG8:\ - :vb=\Eb\200\200\200\200\Ed:ve=\E.2:vi=\E.1:vs=\E.2: -f110-14|Liberty Freedom 110 14inch:\ - :dc@:tc=f110: -f110-w|Liberty Freedom 110 - 132 cols:\ - :co#132:\ - :tc=f110: -f110-14w|Liberty Freedom 110 14in/132 cols:\ - :co#132:\ - :dc@:tc=f110: -f200|freedom200|Liberty Freedom 200:\ - :am:es:hs:mi:ms:xo:\ - :co#80:it#8:li#24:ws#80:\ - :ae=\E%%:al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ - :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:cs=\Em0%+ %+ :\ - :ct=\E3:cv=\E[%+ :dc=\EW:dl=\ER:do=^V:ds=\Ef\r:\ - :ei=\Er:fs=^M:ho=^^:im=\Eq:k0=^AI\r:k1=^A@\r:\ - :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ - :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kC=^^:kD=\EW:\ - :kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:\ - :ku=^K:le=^H:mb=\EG2:md=\EG0:me=\EG0:mh=\EG@:mk=\EG1:\ - :mr=\EG4:nd=^L:pf=\Ea:po=\E`:se=\EG0:sf=^J:so=\EG<:\ - :sr=\EJ:st=\E1:ts=\Ef:ue=\EG0:up=^K:us=\EG8:\ - :vb=\Eo\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\En:\ - :ve=\E.1:vi=\E.0:vs=\E.1: -f200-w|Liberty Freedom 200 - 132 cols:\ - :co#132:\ - :tc=f200: -f200vi|Liberty Freedom 200 for vi:\ - :am:es:hs:mi:ms:xo:\ - :co#80:it#8:li#24:ws#80:\ - :ae=\E%%:al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ - :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:cs=\Em0%+ %+ :\ - :ct=\E3:cv=\E[%+ :dc=\EW:dl=\ER:do=^V:ds=\Ef\r:\ - :ei=\Er:fs=^M:ho=^^:im=\Eq:k0=^AI\r:k1=^A@\r:\ - :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ - :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kC=^^:kD=\EW:\ - :kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^J:kl=^H:kr=^L:\ - :ku=^K:le=^H:mb=\EG2:md=\EG0:me=\EG0:mh=\EG@:mk=\EG1:\ - :mr=\EG4:nd=^L:pf=\Ea:po=\E`:se=\EG0:sf=^J:so=\EG<:\ - :sr=\EJ:st=\E1:ts=\Ef:ue=\EG0:up=^K:us=\EG8:\ - :vb=\Eb\200\200\200\200\Ed:ve=\E.1:vi=\E.0:vs=\E.1: -f200vi-w|Liberty Freedom 200 - 132 cols for vi:\ - :co#132:\ - :tc=f200vi: - -#### GraphOn (go) -# -# Graphon Corporation -# 544 Division Street -# Campbell, CA 95008 -# Vox: (408)-370-4080 -# Fax: (408)-370-5047 -# Net: troy@graphon.com (Troy Morrison) -# -# -# The go140 and go225 have been discontinued. GraphOn now makes X terminals, -# including one odd hybrid that starts out life on power-up as a character -# terminal, than can be switched to X graphics mode (driven over the serial -# line) by an escape sequence. No info on this beast yet. - -# (go140: mapped ":pt:" to default tabs -- esr) -go140|graphon go-140:\ - :bs:pt:\ - :co#80:li#24:\ - :al=\E[L:cd=10\E[J:ce=\E[K:cl=10\E[;H\E[2J:\ - :cm=\E[%i%2;%2H:dc=\E[P:dl=\E[M:ei=\E[4l:\ - :if=/usr/share/tabset/vt100:im=\E[4h:\ - :is=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q:\ - :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\EOB:\ - :ke=\E[?1l\E>:kh=\E[H:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ - :ku=\EOA:nd=\E[C:se=\E[m:so=\E[7m:sr=\EM:ue=\E[m:\ - :up=\E[A:us=\E[4m: -go140w|graphon go-140 in 132 column mode:\ - :co#132:\ - :is=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q:tc=go140: -# Hacked up vt200 termcap to handle GO-225/VT220 -# From: -# (go225: mapped ":pt:" to default tabs -- esr) -go225|go-225|Graphon 225:\ - :am:bs:mi:pt:xn:\ - :co#80:li#25:vt#3:\ - :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\ - :ho=\E[H:im=\E[4h:\ - :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:ke=\E>:\ - :kh=\E[H:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:\ - :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:\ - :rf=/usr/share/tabset/vt100:rs=\E[!p\E[?7h\E[2;1;1#w:\ - :sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\ - :te=\E[!p\E[?7h\E[2;1;1#w:ti=\E[2;0#w\E[1;25r:\ - :ue=\E[24m:up=\E[A:us=\E[4m: - -#### Harris (Beehive) -# -# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine. -# Their terminal group is ancient history now (1995) though the parent -# company is still in business. -# - -# Beehive documentation is undated and marked Preliminary and has no figures -# so we must have early Superbee2 (Model 600, according to phone conversation -# with mfr.). It has proved reliable except for some missing padding -# (notably after \EK and nl at bottom of screen). -# -# The key idea is that AEP mode is poison for cup & that US's in -# the local memory should be avoided like the plague. That means -# that the 2048 character local buffer is used as 25 lines of 80 -# characters, period. No scrolling local memory, folks. It also -# appears that we cannot use naked INS LINE feature since it uses -# US. The sbi fakes il1 with an 80-space insert that may be too -# slow at low speeds; also spaces get converted to \040 which is -# too long for some programs (not vi). DEL LINE is ok but slow. -# -# The nl string is designed for last line of screen ONLY; cup to -# 25th line corrects the motion inherent in scrolling to Page 1. -# -# There is one understood bug. It is that the screen appears to -# pop to a new (blank) page after a nel, or leave a half-line -# elipsis to a quad that is the extra 48 memory locations. The -# data received is dumped into memory but not displayed. Not to -# worry if cup is being used; the lines not displayed will be, -# whenever the cursor is moved up there. Since cup is addressed -# relative to MEMORY of window, nothing is lost; but beware of -# relative cursor motion (cuu1,cud1,cuf1,cub1). Recommended, therefore, -# is setenv MORE -c . -# -# WARNING: Not all features tested. -# -# Timings are assembled from 3 sources. Some timings may reflect -# SB2/Model 300 that were used if more conservative. -# Tested on a Model 600 at 1200 and 9600 bd. -# -# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly -# placed on the keyboard and useless because of AEP, is made -# into a backspace key. In use ESC must be pressed twice (to send) -# and sending ^C must be prefixed by ESC to avoid that wierd -# transmit mode associated with ENTER key. -# -# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across -# the screen, then it has dropped into ENTER mode; hit -# RESET--ONLINE--!tset. -# -# As delivered this machine has a FATAL feature that will throw -# it into that strange transmit state (SPOW) if the space bar is -# hit after a CR is received, but before receiving a LF (or a -# few others). -# -# The circuits MUST be modified to eliminate the SPOW latch. -# This is done by strapping on chip A46 of the I/O board; cut -# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that -# chip. This mod has been checked out on a Mod 600 of Superbee II. -# With this modification absurdly high timings on cr are -# unnecessary. -# -# NOTE WELL that the rear panel switch should be set to CR/LF, -# not AEP! -# -sb1|beehive superbee:\ - :am:bw:da:db:mi:ul:xb:\ - :co#80:li#25:sg#1:ug#1:\ - :al=\EN\EL\EQ \EP \EO\ER\EA:\ - :bl=^G:bt=\E`:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EF%r%03%03:\ - :cr=\r:ct=\E3:dc=\EP:dl=\EM:do=^J:ei=\ER:ho=\EH:\ - :im=\EQ\EO:is=\EE\EX\EZ\EO\Eb\Eg\ER:k0=\E2:k1=\Ep:\ - :k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:\ - :k9=\E1:kE=\EK:kI=\EQ\EO:kL=\EM:kM=\ER:kS=\EJ:kb=^_:\ - :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:l0=TAB CLEAR:\ - :l9=TAB SET:le=^H:nd=\EC:se=\E_3:sf=^J:so=\E_1:\ - :st=\E1:ta=^I:ti=\EO:ue=\E_3:up=\EA:us=\E_0: -sbi|superbee|beehive superbee at Indiana U.:\ - :xb:\ - :al=1\EN\EL\EQ \EP \EO\ER\EA:cr=\r:tc=sb1: -# Alternate (older) description of Superbee - f1=escape, f2=^C. -# Note: there are at least 3 kinds of superbees in the world. The sb1 -# holds onto escapes and botches ^C's. The sb2 is the best of the 3. -# The sb3 puts garbage on the bottom of the screen when you scroll with -# the switch in the back set to CRLF instead of AEP. This description -# is tested on the sb2 but should work on all with either switch setting. -# The f1/f2 business is for the sb1 and the xsb can be taken out for -# the other two if you want to try to hit that tiny escape key. -# This description is tricky: being able to use cup depends on there being -# 2048 bytes of memory and the hairy nl string. -superbee-xsb|beehive super bee:\ - :am:bs:da:db:pt:xb:\ - :co#80:dC#10:it#8:li#25:\ - :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EF%r%3%3:cr=\r:ct=\E3:\ - :dc=\EP:dl=\EM:do=^J:ho=\EH:is=\EH\EJ:k1=\Ep:k2=\Eq:\ - :k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kd=\EB:\ - :kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ - :nl=\n\200\200\200\n\200\200\200\EA\EK\200\200\200\ET\ET:\ - :se=\E_3:\ - :sf=\n\200\200\200\n\200\200\200\EA\EK\200\200\200\ET\ET:\ - :so=\E_1:st=\E1:up=\EA:ve=^J: -# This loses on lines > 80 chars long, use at your own risk -superbeeic|super bee with insert char:\ - :ei=\ER:ic=:im=\EQ:tc=superbee-xsb: -sb2|sb3|fixed superbee:\ - :xb@:\ - :tc=superbee: - -# Reports are that most of these Beehive entries (except superbee) have not -# been tested and do not work right. :se: is a trouble spot. Be warned. - -# (bee: removed obsolete ":ko=al,bt,ce,cl,dc,dl,ei,ho,ic,im:" -- esr) -beehive|bee|harris beehive:\ - :am:bs:mi:\ - :co#80:li#24:\ - :al=\EL:bt=\E>:cd=\EJ:ce=\EK:cl=\EE:cm=\EF%+ %+ :\ - :dc=\EP:dl=\EM:do=\EB:ei=\E@:ho=\EH:ic=:im=\EQ:kb=^H:\ - :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:nd=\EC:se=\Ed@:\ - :so=\EdP:ue=\Ed@:up=\EA:us=\Ed`: -# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs. -# good grief - does this entry make sg/ug when it doesn't have to? -# look at those spaces in se/so. Seems strange to me... -# (bh3m: mapped ":pt:" to default tabs -- esr) -beehive3|bh3m|beehiveIIIm:\ - :am:bs:pt:\ - :co#80:li#20:\ - :al=\023:bl=^G:cd=^R:ce=^P:cl=^E^R:cr=^M:dl=\021:\ - :do=^J:ho=^E:if=/usr/share/tabset/beehive:le=^H:\ - :ll=^E^K:nd=^L:se= ^_:sf=^J:so=^] :ta=^I:up=^K: -beehive4|bh4|beehive 4:\ - :am:\ - :co#80:li#24:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cr=^M:do=^J:ho=\EH:\ - :le=\ED:nd=\EC:sf=^J:up=\EA: -# (microb: mapped ":pt:" to default tabs -- esr) -microb|microbee|micro bee series:\ - :am:bs:pt:\ - :co#80:li#24:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EF%+ %+ :cr=^M:do=^J:\ - :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:\ - :k8=\Ew:k9=\Ex:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:\ - :le=^H:nd=\EC:se=\Ed@ :sf=^J:so= \EdP:ta=^I:ue=\Ed@:\ - :up=\EA:us=\Ed`: - -# 8675, 8686, and bee from Cyrus Rahman -# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr) -ha8675|harris 8675:\ - :F1=^W:F2=\ER:F3=\EE:F4=\EI:F5=\Ei:F6=\Eg:\ - :is=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU:k1=^F:k2=^P:\ - :k3=^N:k4=^V:k5=^J:k6=^T:k7=^H:k8=\177:k9=\Ee:k;=\Ed:tc=bee: -# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation -# in :is: -- esr) -ha8686|harris 8686:\ - :F1=\EW:F2=\002\E{\003:F3=\002\E|\003:F4=\002\E}\003:\ - :F5=\002\E~\003:F6=\002\E\177\003:\ - :is=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#:\ - :k1=\002\Ep\003:k2=\002\Eq\003:k3=\002\Er\003:\ - :k4=\002\Es\003:k5=\E3:k6=\EI:k7=\ER:k8=\EJ:k9=\E(:\ - :k;=\Ej:tc=bee: - -#### Hazeltine -# -# Hazeltine appears to be out of the business now (1995). These guys were -# co-owners of the Terminal Brain Damage Hall Of Fame along with Harris. -# Good riddance. -# -# The ony contact information I have dates from 1993 and is: -# -# Customer Service Division -# 15 Law Drive -# P.O. Box 2076 -# Fairfield, NJ 07007-2078 -# -# Since :nd: is blank, when you want to erase something you -# are out of luck. You will have to do ^L's a lot to -# redraw the screen. h1000 is untested. It doesn't work in -# vi - this terminal is too dumb for even vi. (The code is -# there but it isn't debugged for this case.) -h1000|hazeltine 1000:\ - :bs:\ - :co#80:li#12:\ - :bl=^G:cl=^L:cr=^M:do=^J:ho=^K:le=^H:nd= :sf=^J: -# From: Thu Aug 20 09:09:18 1981 -h1420|hazeltine 1420:\ - :am:bs:\ - :co#80:li#24:\ - :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:\ - :cm=\E\021%r%.%+ :cr=^M:dl=\E^S:do=^J:le=^H:nd=^P:\ - :se=\E^Y:sf=^J:so=\E^_:ta=^N:up=\E^L: -# New "safe" cursor movement (11/87) from cgs@umd5.umd.edu. Prevents freakout -# with out-of-range args and tn3270. No hz since it needs to receive ~'s. -h1500|hazeltine 1500:\ - :am:bs:hz:\ - :co#80:li#24:\ - :al=~\032:bl=^G:cd=~\030:ce=~^O:cl=~^\:\ - :cm=~\021%r%>^^ %+`%+`:cr=^M:dl=~\023:do=~^K:ho=~^R:\ - :kd=^J:kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:nd=^P:se=~^Y:\ - :sf=^J:so=~^_:up=~^L: -# h1510 assumed to be in sane escape mode. Else use h1500. -# (h1510: early versions of this entry apparently had ":se=\E^_:so=\E^Y:", -# but these caps were commented out in 8.3; also, removed incorrect -# and overridden ":do=^J:" -- esr) -h1510|hazeltine 1510:\ - :am:bs:\ - :co#80:li#24:\ - :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:\ - :cm=\E\021%r%.%.:cr=^M:dl=\E^S:do=\E^K:le=^H:nd=^P:\ - :sf=^J:up=\E^L: -# (h1520: removed incorrect and overridden ":do=^J:" -- esr) -h1520|hazeltine 1520:\ - :am:bs:hz:\ - :co#80:li#24:\ - :al=~^Z:bl=^G:cd=~^X:ce=~^O:cl=~^\:cm=~\021%r%.%.:\ - :cr=^M:dl=~^S:do=~^K:ho=~^R:le=^H:nd=^P:se=~^Y:sf=^J:\ - :so=~^_:up=~^L: -# Note: the h1552 appears to be the first Hazeltine terminal which -# is not braindamaged. It has tildes and backprimes and everything! -# Be sure the auto lf/cr switch is set to cr. -h1552|hazeltine 1552:\ - :al=\EE:dl=\EO:do=^J:k1=\EP:k2=\EQ:k3=\ER:l1=blue:\ - :l2=red:l3=green:tc=vt52: -h1552rv|hazeltine 1552 reverse video:\ - :do=^J:se=\ET:so=\ES:tc=h1552: -# Note: h2000 won't work well because of a clash between upper case and ~'s. -h2000|hazeltine 2000:\ - :am:bs:nc:\ - :co#74:li#27:\ - :al=~\032:bl=^G:cl=~\034:cm=~\021%r%.%.:dl=~\023:\ - :do=^J:ho=~^R:le=^H:pc=\177:sf=^J: -# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote: -# I tested this termcap entry for the Hazeltine Esprit with vi. It seems -# to work ok. There is one problem though if one types a lot of garbage -# characters very fast vi seems not able to keep up and hangs while trying -# to insert. That's in insert mode while trying to insert in the middle of -# a line. It might be because the Esprit doesn't have insert char and delete -# char as a built in function. Vi has to delete to end of line and then -# redraw the rest of the line. -esprit|Hazeltine Esprit I:\ - :am:bw:\ - :co#80:li#24:\ - :al=\E^Z:bl=^G:bt=\E^T:cd=\E^W:ce=\E^O:cl=\E^\:\ - :cm=\E\021%r%.%.:cr=^M:dl=\E^S:do=\E^K:ho=\E^R:\ - :is=\E?:k0=^B0^J:k1=^B1^J:k2=^B2^J:k3=^B3^J:k4=^B4^J:\ - :k5=^B5^J:k6=^B6^J:k7=^B7^J:k8=^B8^J:k9=^B9^J:kb=^H:\ - :kd=\E^K:ke=\E>:kh=\E^R:kl=^H:kr=^P:ks=\E<:ku=\E^L:\ - :l0=0:l1=1:l2=2:l3=3:l4=4:l5=5:l6=6:l7=7:l8=8:l9=9:\ - :le=^H:nd=^P:se=\E^Y:sf=^J:so=\E^_:up=\E^L: -esprit-am|hazeltine esprit auto-margin:\ - :am:\ - :tc=esprit: - -#### IBM -# - -ibm327x|line mode IBM 3270 style:\ - :gn:\ - :ce=^M:cl=^M^J:ho=^M: -# From: J.B. Nicholson-Owens 8 Mar 94 -ibm3101|i3101|IBM 3101-10:\ - :am:bs:pt:xo:\ - :co#80:li#24:\ - :bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EY%+ %+ :cr=^M:\ - :ct=\E1:do=^J:ho=\EH:if=/usr/share/tabset/ibm3101:\ - :kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ - :nw=^M^J:sf=^J:st=\E0:ta=^I:up=\EA: -# Received from the IBM terminals division (given to DRB) -# June 1988 for PS/2 OS 2.2.3 cut -ibm3151|i3151:\ - :me=\E4@:\ - :..sa=\E4%{64}%?%p1%{0}%>%p1%{4}%<%&%t%{8}%|%;%?%p1%{7}%=%t%{16}%|%;%?%p2%t%{1}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%c:\ - :se=\E4@:so=\E4A:ue=\E4@:us=\E4B:tc=ibm3163: -# From: Mark Easter 29 Oct 1992 -# I commented out some IBM extensions. -ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display:\ - :am:mi:ms:\ - :co#80:it#8:li#24:\ - :F1=\Ek\r:F2=\El\r:F3=\E!a\r:F4=\E!b\r:F5=\E!c\r:\ - :F6=\E!d\r:F7=\E!e\r:F8=\E!f\r:F9=\E!g\r:FA=\E!h\r:\ - :FB=\E!i\r:FC=\E!j\r:FD=\E!k\r:FE=\E!l\r:bl=^G:\ - :cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:dc=\EQ:\ - :dl=\EO:do=\EB:ho=\EH:k1=\Ea\r:k2=\Eb\r:k3=\Ec\r:\ - :k4=\Ed\r:k5=\Ee\r:k6=\Ef\r:k7=\Eg\r:k8=\Eh\r:\ - :k9=\Ei\r:k;=\Ej\r:kA=\EN:kC=\EL\r:kD=\EQ:kE=\EI:\ - :kI=\EP \010:kL=\EO:kS=\EJ:kT=\E0:ka=\E 1:kb=^H:\ - :kd=\EB:kh=\EH:kl=\ED:kr=\EC:kt=\E1:ku=\EA:le=\ED:\ - :mb=\E4D:md=\E4H:me=\E4@\E<@:mk=\E4P:mr=\E4A:nd=\EC:\ - :..sa=\E4%'@'%?%p1%t%'A'%|%;\n%?%p2%t%'B'%|%;\n%?%p3%t%'A'%|%;\n%?%p4%t%'D'%|%;\n%?%p5%t%'@'%|%;\n%?%p6%t%'H'%|%;\n%?%p7%t%'P'%|%;%c\n%?%p9%t\E>A%e\E<@%;:\ - :se=\E4@:sf=^J:so=\E4A:te=\E>A:ti=\E>A:ue=\E4@:\ - :up=\EA:us=\E4B: - -# How the 3164 sgr string works: -# %{32} # push space for no special video characteristics -# %?%p2%t%{1}%|%; # if p2 set, then OR the 1 bit for reverse -# %?%p3%t%{4}%|%; # if p3 set, then OR the 4 bit for blink -# %?%p4%t%{2}%|%; # if p4 set, then OR the 2 bit for underline -# %c # pop Pa1 -# %{39}%p1%- # calculate 32 + (7 - p1) for foreground -# %c # pop Pa2 -# %{64} # use only black background for now -# %c # pop Pa3 -ibm3164|i3164|3164:\ - :mb=\E4D:md=\E4H:me=\E4@:\ - :..sa=\E4%{32}%?%p2%t%{1}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%c%{39}%p1%-%c%{64}%c:tc=ibm3163: - -# (ibmaed: mapped ":pt:" to default tabs -- esr) -ibmaed|IBM Experimental display:\ - :am:bs:eo:ms:pt:\ - :co#80:li#52:\ - :al=\EN:cd=\EJ:ce=\EI:cl=\EH\EK:cm=\EY%+ %+ :dc=\EQ:\ - :dl=\EO:do=\EB:ei=:ho=\EH:ic=\EP:im=:kb=^H:kd=\EB:\ - :kl=\ED:kr=\EC:ku=\EA:nd=\EC:se=\E0:so=\E0:ue=:\ - :up=\EA:us=:vb=\EG: -ibm-apl|apl|IBM apl terminal simulator:\ - :li#25:\ - :tc=dm1520: -# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'. -# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr) -ibmmono|ibm5151|IBM workstation monochrome:\ - :bs:es:hs:\ - :al=\EL:dl=\EM:ds=\Ej\EY8 \EI\Ek:fs=\Ek:k0=\E<:\ - :k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:\ - :k8=\ER:k9=\EY:kF=\EE:kI=\200:kN=\EE:kP=\Eg:kR=\EG:\ - :kb=^H:kh=\EH:l0=f10:md=\EZ:me=\Ew\Eq\Ez\EB:\ - :mk=\EF\Ef0;\Eb0;:mr=\Ep:se=\Ez:so=\EZ:sr=\EA:\ - :ts=\Ej\EY8%+ \Eo:ue=\Ew:us=\EW:tc=ibm3101: -ibmega-c|ibm5154-c|IBM Enhanced Color Display:\ - :se=\EB:so=\EF\Ef3;:ue=\EB:us=\EF\Ef2;:tc=ibmmono: -# ibmapa* and ibmmono entries come from ACIS 4.3 distribution -rtpc|ibmapa16|ibm6155|IBM 6155 Extended Monochrome Graphics Display:\ - :li#32:\ - :ds=\Ej\EY@ \EI\Ek:ts=\Ej\EY@%+ \Eo:tc=ibmmono: -# Advanced Monochrome (6153) and Color (6154) Graphics Display: -ibmapa8c|ibmapa8|ibm6154|ibm6153|IBM 6153/4 Advanced Graphics Display:\ - :li#31:\ - :ds=\Ej\EY? \EI\Ek:ts=\Ej\EY?%+ \Eo:tc=ibmmono: -ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display:\ - :li#31:\ - :ds=\Ej\EY? \EI\Ek:mh=\EF\Ef7;:ts=\Ej\EY?%+ \Eo:tc=ibmega-c: -# From: Marc Pawliger -# also in /usr/lpp/bos/bsdsysadmin. -# (hft-c: this entry had :kb=\E[D:kf=\E[C: on the line with ku/kd/kh; this was -# pretty obviously mislabeled for :le: and :nd:; also ":ul=\E[4m:" was clearly -# a typo for ":us=\E[4m:"; also ":el=\E[K:" was a typo for ":ce=\E[K:". -# There was an unknown boolean ":ht:" which I assume was meant to set -# hardware tabs, so I have insrted it#8. Finally, "ac=^N" paired with the -# ae looked like a typo for ":as=^N:" -- esr) -ibm8512|ibm8513|hft-c|IBM High Function Terminal:\ - :am:mi:ms:\ - :co#80:it#8:li#25:\ - :AL=\E[%dL:DL=\E[%dM:ae=^O:al=\E[L:as=^N:cd=\E[J:\ - :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:dl=\E[M:dm=\E[4h:\ - :do=^J:ec=\E[%dX:ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:\ - :is=\Eb\E[m\017\E[?7h:k0=\E[010q:k1=\E[001q:\ - :k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\ - :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:kd=\E[B:\ - :kh=\E[H:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[m:\ - :mr=\E[7m:nd=\E[C:rc=\E[u:\ - :rs=\Eb\E[m\017\E[?7h\E[H\E[J:sc=\E[s:se=\E[m:\ - :so=\E[7m:te=\E[20h:ti=\E[20;4l\E[?7h\Eb:ue=\E[m:\ - :up=\E[A:us=\E[4m: -hft|AIWS High Function Terminal:\ - :am:xo:\ - :co#80:li#25:\ - :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=\E6:\ - :ho=\E[H:ic=\E[@:im=\E6:k1=\E[001q:k2=\E[002q:\ - :k3=\E[003q:k4=\E[004q:k5=\E[005q:k6=\E[006q:\ - :k7=\E[007q:k8=\E[008q:k9=\E[009q:kN=\E[153q:\ - :kP=\E[159q:ka=\E[010q:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\ - :mk=\E[8m:mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:\ - :ta=^I:ue=\E[m:up=\E[A:us=\E[4m: -# From: -ibm5081|ibmmpel|IBM 5081 1024x1024 256/4096 color display:\ - :es:hs:\ - :li#33:\ - :ds=\Ej\EYA \EI\Ek:fs=\Ek:ts=\Ej\EYA%+ \Eo:tc=ibmmono: -ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 enhanced color display:\ - :es:hs:\ - :li#33:\ - :ds=\Ej\EYA \EI\Ek:fs=\Ek:ts=\Ej\EYA%+ \Eo:tc=ibmega-c: -ibm-system1|system1|ibm system/1 computer:\ - :am:xt:\ - :co#80:li#24:\ - :bl=^G:cl=^Z:cm=\005%+ %+ :ho=^K:le=^H:nd=^\:sf=^J:\ - :up=^^: - -#### Infoton/General Terminal Corp. -# - -# gt100 sounds like something DEC would come out with. Let's hope they don't. -i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100):\ - :am:bs:\ - :co#80:li#24:\ - :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\Ef%r%+ %+ :\ - :cr=^M:dl=\EM:do=^J:ho=\EH:le=^H:nd=\EC:se=\Ea:sf=^J:\ - :so=\Eb:up=\EA:vb=\Eb\Ea: -i400|infoton 400:\ - :am:bs:\ - :co#80:li#25:\ - :al=\E[L:bl=^G:ce=\E[N:cl=\E[2J:cm=%i\E[%3;%3H:cr=^M:\ - :dc=\E[4h\E[2Q\E[P\E[4l\E[0Q:dl=\E[M:do=^J:\ - :ei=\E[4l\E[0Q:im=\E[4h\E[2Q:le=^H:nd=\E[C:sf=^J:\ - :up=\E[A: -# (addrinfo: removed obsolete ":bc=^Z:" -- esr) -addrinfo:\ - :am:\ - :co#80:li#24:\ - :bl=^G:cd=^K:cl=^L:..cm=\037%p1%{1}%-%c%p2%{1}%-%c:\ - :cr=^M:do=^J:ho=^H:le=^Z:ll=^H^\:nd=^Y:sf=^J:up=^\: -infoton:\ - :am:\ - :Nl#0:co#80:lh#0:li#24:lw#0:\ - :bl=^G:cd=^K:cl=^L:cr=^M:do=^J:le=^Z:ll=^H^\:nd=^Y:\ - :sf=^J:up=^\: -# (infotonKAS: removed obsolete ":bc=^Z:" -- esr) -infotonKAS:\ - :am:\ - :co#80:li#24:\ - :bl=^G:cd=^K:cl=^L:cr=^M:do=^J:le=^Z:ll=^H^\:nd=^Y:\ - :sf=^J:up=^\: - -#### Interactive Systems Corp -# -# ISC used to sell OEMed and customized hardware to support ISC UNIX. -# ISC UNIX still exists in 1995, but ISC itself is no more; they got -# bought out by Sun. -# - -# From: Wed Sep 16 08:06:44 1981 -# (intext: removed obsolete ":ma=^K^P^R^L^L :"; -# mapped ":pt:" to default tabs, removed obsolete ":bc=^_:", also the -# ":le=^_:" later overridden -- esr) -intext|Interactive Systems Corporation modified owl 1200:\ - :am:\ - :co#80:li#24:sg#1:\ - :al=\020:bl=^G:bt=^Y:cd=\026J:ce=^Kp^R:cl=\014:\ - :cm=\017%+ %+ :cr=^M:dc=\022:dl=\021:do=^J:ei=^V<:\ - :im=^V;:ip=:k0=^VJ\r:k1=^VA\r:k2=^VB\r:k3=^VC\r:\ - :k4=^VD\r:k5=^VE\r:k6=^VF\r:k7=^VG\r:k8=^VH\r:\ - :k9=^VI\r:kb=^H:kd=^J:ke=^V9:kh=^Z:kl=^_:kr=^^:\ - :ks=\036\072\264\026%:ku=^\:le=^H:nd=^^:se=^V# :\ - :sf=^J:so=^V$\054:ta=^I:up=^\: -intext2|intextii|INTERACTIVE modified owl 1251:\ - :am:bw:ul:\ - :co#80:li#24:sg#0:\ - :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:\ - :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ - :do=\E[B:ei=:ic=\E[@:im=:k0=\E@\r:k1=\EP\r:k2=\EQ\r:\ - :k3=\ES\r:k4=\ET\r:k5=\EU\r:k6=\EV\r:k7=\EW\r:\ - :k8=\EX\r:k9=\EY\r:kb=^H:kd=\EB\r:kh=\ER\r:kl=\ED\r:\ - :kr=\EC\r:ku=\EA\r:l0=REFRSH:l1=DEL CH:l2=TABSET:\ - :l3=GOTO:l4=+PAGE:l5=+SRCH:l6=-PAGE:l7=-SRCH:l8=LEFT:\ - :l9=RIGHT:nd=\E[C:se=\E[2 D:sf=\E[S:so=\E[6 D:\ - :sr=\E[T:ta=^I:ue=\E[2 D:up=\E[A:us=\E[18 D:\ - :vb=\E[;;;;;;;;;2;;u\E[;;;;;;;;;1;;u: - -#### Kimtron (abm, kt) -# -# Kimtron entries include (undocumented) codes for: enter dim mode (:mh:), -# enter bold mode (:md:), enter reverse mode (:mr:), turn off all attributes -# (:me:). - -# Kimtron ABM 85 added by Dual Systems -# (abm85: mapped ":pt:" to default tabs; removed duplicated ":kd=^J:" -- esr) -abm85|Kimtron ABM 85:\ - :am:bs:bw:ms:pt:\ - :co#80:li#24:sg#1:ug#1:\ - :al=\EE:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :\ - :dc=\EW:dl=\ER:do=^J:ei=\Er:\ - :if=/usr/share/tabset/stdcrt:im=\EQ:\ - :is=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq:kb=^H:kd=^J:kh=^^:\ - :kl=^H:kr=^L:ku=^K:nd=^L:se=\Ek:so=\Ej:ue=\Em:up=^K:\ - :us=\El: -# Kimtron ABM 85H added by Dual Systems. -# Some notes about the 85h entries: -# 1) there are several firmware revs of 85H in the world. Use o85h for -# firmware revs prior to SP51 -# 2) Make sure to use 85h entry if the terminal is in 85H mode and the -# 85e entry if it is in 920 emulation mode. They are incompatible in -# some places and NOT software settable i.e., :is: can't fix change it) -# 3) In 85h mode, the arrow keys and special functions transmit when -# the terminal is in dup-edit, and work only locally in local-edit. -# Vi won't swallow `del char' for instance, but :vs: turns on -# dup-edit anyway so that the arrow keys will work right. If the -# arrow keys don't work the way you like, change :vs:, :ve:, and :is:. -# 920E mode does not have software commands to toggle between dup -# and local edit, so you get whatever was set last on the terminal. -# 4) :vb: attribute is nice, but seems too slow to work correctly (\Eb\Ed) -# 5) Make sure `hidden' attributes are selected. If `embedded' attributes -# are selected, the entries :sg@: and :ug@: should be removed. -# 6) auto new-line should be on (selectable from setup mode only) -# -# From: Erik Fair Sun Oct 27 07:21:05 1985 -abm85h|85H|85h|Kimtron ABM 85H, 85H mode:\ - :hs:\ - :sg@:ug@:\ - :ds=\Ee:fs=^M:im=\EZ:\ - :is=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El:\ - :kd=^V:me=\E(\EG0:mh=\E):mr=\EG4:se=\EG0:so=\EG4:\ - :ts=\Eg\Ef:ue=\EG0:us=\EG8:vb@:ve=\E.4:vs=\E.2:tc=abm85: -abm85e|85E|85e|Kimtron ABM 85H, 920E mode:\ - :sg@:ug@:\ - :im=\EZ:\ - :is=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em:\ - :me=\E(\Ek:mh=\E):mr=\Ej:vb@:tc=abm85: -abm85h-o|oabm85h|o85h|Kimtron ABM 85H, old firmware rev.:\ - :sg@:ug@:\ - :im=\EZ:\ - :is=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF:\ - :me=\E(\Ek:mh=\E):mr=\Ej:\ - :vb=\200\200\200\007\200\200\200:tc=abm85: -# From: -# (kt7: removed obsolete ":ko=ic,dc,al,dl,cl,ce,cd,bt:", ":ma=^V^J^L :"; -# mapped ":pt:" to default tabs -- esr) -kt7|kimtron model kt-7:\ - :am:bs:pt:\ - :co#80:li#24:\ - :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :\ - :dc=\EW:dl=\ER:do=^V:ei=:fs=\Eg:ho=^^:ic=\EQ:\ - :if=/usr/share/tabset/stdcrt:im=:is=\El\E":k0=^AI\r:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^V:\ - :kh=^^:kl=^H:kr=^L:ku=^K:nd=^L:se=\EG0:so=\EG4:\ - :ts=\Ef:ue=\EG0:up=^K:us=\EG8: - -#### Microterm (act, mime) -# -# The mime1 entries refer to the Microterm Mime I or Mime II. -# The default mime is assumed to be in enhanced act iv mode. -# - -# New "safe" cursor movement (5/87) from reuss@umd5.umd.edu. Prevents freakout with -# out-of-range args on Sytek multiplexors. No ":so=^N:" and ":se=^N:" since -# it gets confused and it's too dim anyway. No ic since Sytek insists ^S -# means xoff. -# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr) -act4|microterm|microterm act iv:\ - :am:bs:\ - :co#80:li#24:\ - :al=2.3*\001<2.3*/>:bl=^G:cd=2.2*\037:ce=.1*\036:\ - :cl=12\014:cm=\024%+^X%>/0%+P:cr=^M:dc=.1*\004:\ - :dl=2.3*\027:do=^K:ho=^]:kd=^K:kl=^H:kr=^X:ku=^Z:\ - :le=^H:nd=^X:sf=^J:up=^Z: -# The padding on :sr: and :ta: for act5 and mime is a guess and not final. -# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)... -# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr) -act5|microterm5|microterm act v:\ - :kd=^K:kl=^H:kr=^X:ku=^Z:sr=\EH:uc=^H\EA:tc=act4: -# Act V in split screen mode. act5s is not tested and said not to work. -act5s|skinny act5:\ - :co#39:li#48:\ - :te=\EQ:ti=\EP:tc=act5: -# Mimes using brightness for standout. Half bright is really dim unless -# you turn up the brightness so far that lines show up on the screen. -mime-fb|full bright mime1:\ - :is=^S\E:se=^S:so=^Y:tc=mime: -mime-hb|half bright mime1:\ - :is=^Y\E:se=^Y:so=^S:tc=mime: -# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode -# the more plausible ":do=^J:"; mapped ":pt:" to ":it#8:" -- esr) -# uc was at one time disabled to get around a curses bug, be wary of it -mime|mime1|mime2|mimei|mimeii|microterm mime1:\ - :am:bs:pt:\ - :co#80:it#8:li#24:vt#9:\ - :al=\001:bl=^G:cd=^_:ce=^^:cl=^]^C:\ - :cm=\024%+^X%> 0%+P:cr=^M:dl=\027:do=^J:ho=^]:\ - :is=^S\E^Q:kd=^K:kl=^H:kr=^X:ku=^Z:le=^H:nd=^X:sf=^J:\ - :sr=\022:ta=\011:uc=^U:up=^Z: -# These termcaps (for mime 2a) put the terminal in low intensity mode -# since high intensity mode is so obnoxious. -mime2a-s|microterm mime2a (emulating an enhanced soroc iq120):\ - :am:bs:\ - :co#80:li#24:\ - :al=\001:bl=^G:cd=\EJ:ce=\EK:cl=\EL:cm=\E=%+ %+ :\ - :cr=^M:dc=\ED:dl=\027:do=^J:ei=^Z:ho=^^:im=\EE:ip=:\ - :is=\E):kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\E;:\ - :sf=^J:so=\E\072:sr=\EI:ue=\E7:up=\EI:us=\E6: -# This is the preferred mode (but ^X can't be used as a kill character) -# (mime2a: replaced ":pt:" with SCO's "it#8" -- esr) -mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52):\ - :bs:pt:\ - :co#80:it#8:li#24:\ - :al=\001:bl=^G:cd=\EQ:ce=\EP:cl=\EL:cm=\EY%+ %+ :\ - :cr=^M:dc=^N:dl=\027:do=^J:ei=^Z:ho=\EH:im=^O:ip=:\ - :is=^Y:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ - :se=\E9:sf=^J:so=\E8:sr=\EA:ta=^I:ue=\E5:up=\EA:\ - :us=\E4: -# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr) -mime3a|mime1 emulating 3a:\ - :am@:\ - :kd=^K:kl=^H:kr=^X:ku=^Z:tc=adm3a: -# (mime3ax: mapped ":pt:" to default tabs -- esr) -mime3ax|mime-3ax|mime1 emulating enhanced 3a:\ - :pt:\ - :it#8:\ - :al=\001:cd=^_:ce=^X:dl=\027:ta=\011:tc=mime3a: -# Wed Mar 9 18:53:21 1983 -# We run our terminals at 2400 baud, so there might be some timing problems at -# higher speeds. The major improvements in this model are the terminal now -# scrolls down and insert mode works without redrawing the rest of the line -# to the right of the cursor. This is done with a bit of a kludge using the -# exit graphics mode to get out of insert, but it does not appear to hurt -# anything when using vi at least. If you have some users using act4s with -# programs that use curses and graphics mode this could be a problem. -mime314|mm314|mime 314:\ - :am:\ - :co#80:li#24:\ - :al=^A:cd=^_:ce=^^:cl=^L:cm=\024%.%.:dc=^D:dl=^W:\ - :ei=^V:ho=^]:im=^S:kd=^K:kl=^H:kr=^X:ku=^Z:le=^H:\ - :nd=^X:ta=^I:up=^Z: -# Fri Aug 5 08:11:57 1983 -# This entry works for the ergo 4000 with the following setups: -# ansi,wraparound,newline disabled, xon/xoff disabled in both -# setup a & c. -# -# WARNING!!! There are multiple versions of ERGO 4000 microcode -# Be advised that very early versions DO NOT WORK RIGHT !! -# Microterm does have a ROM exchange program- use it or lose big -ergo4000|microterm ergo 4000:\ - :da:db:ms:\ - :co#80:li#66:\ - :AL=\E[1L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\ - :cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[1M:do=\E[B:\ - :ei=\E[4l:im=\E[4h:\ - :is=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:ke=\E=:kl=\E[D:\ - :kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\ - :le=^H:nd=\E[C:se=\E[0m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:\ - :up=\E[A: - -#### NCR -# -# NCR's terminal group was merged with AT&T's when AT&T bought the company. -# For what happened to that group, see the ADDS section. -# - -# From , init string hacked by SCO. -ncr7900i|7900i|ncr7900|7900|ncr 7900 model 1:\ - :am:bw:ul:\ - :co#80:li#24:sg#1:ug#1:\ - :bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\E1%r%.%.:cr=^M:do=^J:\ - :is=\E0@\010\E3\E4\E7:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:\ - :le=^H:ll=^A:mb=\E0B:me=\E0@:mh=\E0A:mr=\E0P:nd=^F:\ - :pf=^T:po=^R:\ - :..sa=\E0%p5%'@'%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c:\ - :se=\E0@:sf=^J:so=\E0Q:ue=\E0@:up=^Z:us=\E0`: -ncr7900i-na|ncr7900-na|7900-na|ncr 7900 model 1 with no arrows:\ - :kd@:kl@:kr@:ku@:tc=ncr7900i: -ncr7900iv|ncr 7900 model 4:\ - :am:bw:es:hs:\ - :co#80:li#24:\ - :al=\E^N:bl=^G:cl=^L:cm=\013%+@\E\005%02:cr=^M:\ - :dl=\E^O:do=^J:ds=\Ey1:fs=\Ek\Ey5:ho=\013@\E^E00:\ - :k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:\ - :k8=\ER:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:\ - :l6=blue:l7=red:l8=white:le=^H:nw=^M^J:sf=^J:\ - :ts=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo: -ncr7901|7901|ncr 7901 model:\ - :am:bw:ul:\ - :co#80:li#24:\ - :bl=^G:cd=\Ek:ce=\EK:ch=\020%+^J:cl=^L:cm=\EY%+ %+ :\ - :cr=^M:cv=\013%+@:do=^J:is=\E4^O:kC=^L:kd=^J:kh=^H:\ - :kl=^U:kr=^F:ku=^Z:le=^H:ll=^A:mb=\E0B:me=^O:mh=\E0A:\ - :mr=\E0P:nd=^F:pf=^T:po=^R:\ - :..sa=\E0%p5%'@'%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016:\ - :se=^O:sf=^J:so=\E0Q\016:ue=^O:up=^Z:us=\E0`\016:\ - :ve=^X:vi=^W: - -#### Perkin-Elmer (Owl) -# -# These are official terminfo entries from within Perkin-Elmer. -# - -bantam|pe550|pe6100|perkin elmer 550:\ - :co#80:li#24:\ - :bl=^G:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:do=^J:\ - :ho=\EH:le=^H:ll=\EH\EA:nd=\EC:sf=^J:up=\EA: -fox|pe1100|perkin elmer 1100:\ - :am:\ - :co#80:li#24:\ - :bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EX%+ \EY%+ :cr=^M:\ - :ct=\E3:do=^J:ho=\EH:le=^H:ll=\EH\EA:nd=\EC:sf=^J:\ - :st=\E1:up=\EA:vb=\020\002\020\003: -owl|pe1200|perkin elmer 1200:\ - :am:in:\ - :co#80:li#24:\ - :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:\ - :cm=\EX%+ \EY%+ :cr=^M:ct=\E3:dc=\EO:dl=\EM:do=^J:\ - :ei=:ho=\EH:ic=\EN:im=:ip=:k0=\ERJ:k1=\ERA:k2=\ERB:\ - :k3=\ERC:k4=\ERD:k5=\ERE:k6=\ERF:k7=\ERG:k8=\ERH:\ - :k9=\ERI:kb=^H:le=^H:ll=\EH\EA:nd=\EC:se=\E!\200:\ - :sf=^J:so=\E!^H:st=\E1:up=\EA:vb=\020\002\020\003: -pe1251|pe6300|pe6312|perkin elmer 1251:\ - :am:\ - :co#80:it#8:li#24:pb#300:sg#1:vt#8:\ - :bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:\ - :ct=\E3:do=\EB:ho=\EH:k0=\ERA:k1=\ERB:k2=\ERC:\ - :k3=\ERD:k4=\ERE:k5=\ERF:k6=\ERG:k7=\ERH:k8=\ERI:\ - :k9=\ERJ:k;=\ERK:le=\ED:nd=\EC:sf=^J:st=\E1:up=\EA: -pe7000m|perkin elmer 7000 series monochrome monitor:\ - :am:\ - :co#80:li#24:\ - :bl=^G:bt=\E!Y:cd=\EJ:ce=\EI:cl=\EK:cm=\ES%+ %+ :\ - :cr=^M:do=\EB:ho=\EH:i1=\E!\200\EW 7o\Egf\ES7 :\ - :k0=\E!\200:k1=\E!^A:k2=\E!^B:k3=\E!^C:k4=\E!^D:\ - :k5=\E!^E:k6=\E!^F:k7=\E!^G:k8=\E!^H:k9=\E!^I:\ - :k;=\E!^J:kb=^H:kd=\E!U:kh=\E!S:kl=\E!V:kr=\E!W:\ - :ku=\E!T:le=\ED:ll=\ES7 :nd=\EC:se=\E!\200:sf=^J:\ - :so=\E!^H:sr=\ER:ue=\E!\200:up=\EA:us=\E! : -pe7000c|perkin elmer 7000 series colour monitor:\ - :am:\ - :co#80:li#24:\ - :bl=^G:bt=\E!Y:cd=\EJ:ce=\EI:cl=\EK:cm=\ES%+ %+ :\ - :cr=^M:do=\EB:ho=\EH:\ - :i1=\E!\200\EW 7o\Egf\Eb0\Ec7\ES7 :k0=\E!\200:\ - :k1=\E!^A:k2=\E!^B:k3=\E!^C:k4=\E!^D:k5=\E!^E:\ - :k6=\E!^F:k7=\E!^G:k8=\E!^H:k9=\E!^I:k;=\E!^J:kb=^H:\ - :kd=\E!U:kh=\E!S:kl=\E!V:kr=\E!W:ku=\E!T:le=\ED:\ - :ll=\ES7 :nd=\EC:se=\Eb0:sf=^J:so=\Eb2:sr=\ER:\ - :ue=\E!\200:up=\EA:us=\E! : - -#### Sperry Univac -# -# Sperry Univac has merged with Burroughs to form Unisys. -# - -# This entry is for the Sperry UTS30 terminal running the TTY -# utility under control of CP/M Plus 1R1. The functionality -# provided is comparable to the DEC vt100. -uts30|sperry uts30 with cp/m@1R1:\ - :am:bw:hs:\ - :co#80:li#24:ws#40:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ - :LE=\E[%dD:RI=\E[%dC:SF=\E[%dB:SR=\E[%dA:UP=\E[%dA:\ - :ae=\Ed:al=\EN:as=\EF:bl=^G:cd=\E[J:ce=\E[K:cl=^L:\ - :cm=\E[%i%d;%dH:cr=^M:cs=\EU%+ %+ :dc=\EM:dl=\EL:\ - :do=\EB:ei=:fs=^M:ho=\E[H:ic=\EO:im=:\ - :is=\E[U 7\E[24;1H:kb=^H:kd=\EOB:kh=\E[H:kl=\EOD:\ - :kr=\EOC:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ - :mr=\E[7m:nd=\EC:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\EX:\ - :rf=/usr/lib/tabset/vt100:sc=\EW:se=\E[m:sf=^J:\ - :so=\E[7m:sr=\EI:ta=^I:ts=\E]:uc=\EPB:ue=\E[m:\ - :up=\E[A:us=\E[4m:ve=\ES:vi=\ER: - -#### Tandem -# -# Tandem builds these things for use with its line of fault-tolerant -# transaction-processing computers. They aren't generally available -# on the merchant market, and so are fairly uncommon. -# - -tandem6510|adm3a repackaged by Tandem:\ - :tc=adm3a: - -# A funny series of terminal that TANDEM uses. The actual model numbers -# have a fourth digit after 653 that designates minor variants. These are -# natively block-mode and rather ugly, but they have a character mode which -# this doubtless(?) exploits. There is a 6520 that is slightly dumber. -# (tandem653: had ":sb=\ES:", probably someone's mistake for sf -- esr) -tandem653|t653x|Tandem 653x multipage terminal:\ - :am:bs:da:db:hs:\ - :co#80:li#24:sg#1:ug#1:ws#64:\ - :cd=\EJ:ce=\EK:cl=\EI:cm=\023%+ %+ :do=^J:ds=\Eo\r:\ - :fs=^M:ho=\EH:if=/usr/share/tabset/tandem653:le=^H:\ - :nd=\EC:se=\E6 :sf=\ES:so=\E6$:sr=\ET:ts=\Eo:ue=\E6 :\ - :up=\EA:us=\E60: - -#### Tandy/Radio Shack -# -# Tandy has a line of VDTs distinct from its microcomputers. -# - -dmterm|deskmate terminal:\ - :am:bw:\ - :co#80:li#24:\ - :al=\EP:bl=^G:cd=\EJ:ce=\EK:cl=\Ej:cm=\EY%+ %+ :\ - :cr=^M:dc=\ES:dl=\ER:do=\EB:ei=:ho=\EH:ic=\EQ:im=:\ - :k0=\E1:k1=\E2:k2=\E3:k3=\E4:k4=\E5:k5=\E6:k6=\E7:\ - :k7=\E8:k8=\E9:k9=\E0:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\ - :ku=\EA:l0=f1:l1=f2:l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:\ - :l7=f8:l8=f9:l9=f10:le=^H:ll=\EE:nd=\EC:se=\EG0:\ - :sf=\EX:so=\EG4:ta=^I:up=\EA:ve=\EG6:vi=\EG5: -dt100|dt-100|Tandy DT-100 terminal:\ - :xo:\ - :co#80:li#24:sg#1:ug#1:\ - :ac=kkllmmjjnnwwvvttuuqqxx:ae=^O:al=\E[L:as=^N:bl=^G:\ - :cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\010\E[%i%d;%dH:\ - :cr=^M:cs=\E[%2;%2r:dc=\E[P:dl=\E[M:do=\E[B:ei=:\ - :ho=\E[H:ic=\E[@:im=:is=\E[?3l\E)0\E(B:k1=\E[?3i:\ - :k2=\E[2i:k3=\E[@:k4=\E[M:k5=\E[17~:k6=\E[18~:\ - :k7=\E[19~:k8=\E[20~:k9=\E[21~:k;=\E[?5i:kN=\E[29~:\ - :kP=\E[28~:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ - :l1=f1:l2=f2:l3=f3:l4=f4:l5=f5:l6=f6:l7=f7:l8=f8:\ - :le=^H:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: -dt100w|dt-100w|Tandy DT-100 terminal:\ - :co#132:\ - :bl=^G:cr=^M:do=^J:is=\E[?3l\E)0\E(B:sf=^J:tc=dt100: -dt110|Tandy DT-110 emulating ansi:\ - :xo:\ - :co#80:li#24:\ - :@7=\E[K:ac=kkllmmjjnnwwvvuuttqqxx:ae=^O:al=\E[0L:\ - :as=^N:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[;H\E[2J:\ - :cm=\010\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[0P:\ - :dl=\E[0M:do=\E[0B:eA=\E(B\E)0:ei=:ho=\E[H:ic=\E[0@:\ - :im=:is=\E[?3l\E)0\E(B:k1=\E[1~:k2=\E[2~:k3=\E[3~:\ - :k4=\E[4~:k5=\E[5~:k6=\E[6~:k7=\E[7~:k8=\E[8~:\ - :k9=\E[9~:k;=\E[10~:kI=\E[@:kN=\E[26~:kP=\E[25~:\ - :kd=\E[B:kh=\E[G:kl=\E[D:kr=\E[C:ku=\E[A:l0=f1:l1=f2:\ - :l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:l8=f9:l9=f10:\ - :le=^H:nd=\E[C:se=\E[0m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ - :ue=\E[0m:up=\E[0A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: -dt200|td200|Tandy 200:\ - :am:xt:\ - :co#40:li#16:\ - :al=\EL:bl=^G:cd=^L:ce=\EK:cl=\EE:cm=\EY%+ %+ :cr=^M:\ - :dl=\EM:do=^_:kd=^_:kl=^]:kr=^\:ku=^^:le=^H:nd=^\:\ - :se=\Eq:sf=^J:so=\Ep:up=\EA: -pt210|TRS-80 PT-210 printing terminal:\ - :hc:os:\ - :co#80:\ - :bl=^G:cr=^M:do=^J:sf=^J: - -#### Tektronix (tek) -# -# Tektronix tubes are graphics terminals. Most of them use modified -# oscilloscope technology incorporating a long-persistence green phosphor, -# and support vector graphics on a main screen with an attached "dialogue -# area" for interactive text. -# - -tek|tek4012|4012|tektronix 4012:\ - :os:\ - :co#75:li#35:\ - :bl=^G:cl=\E\014:cr=^M:do=^J:ff=\014:is=\E^O:le=^H: -tek4013|4013|tektronix 4013:\ - :ae=\E^O:as=\E^N:tc=tek4012: -tek4014|4014|tektronix 4014:\ - :co#81:li#38:\ - :is=\E\017\E9:tc=tek4012: -tek4015|4015|tektronix 4015:\ - :ae=\E^O:as=\E^N:tc=tek4014: -tek4014-sm|4014-sm|tektronix 4014 in small font:\ - :co#121:li#58:\ - :is=\E\017\E\072:tc=tek4014: -tek4015-sm|4015-sm|tektronix 4015 in small font:\ - :ae=\E^O:as=\E^N:tc=tek4014-sm: -tek4023|4023|tex|tektronix 4023:\ - :am:\ - :co#80:li#24:vt#4:\ - :bl=^G:cl=\E\014:cm=\034%r%+ %+ :cr=^M:do=^J:le=^H:\ - :nd=^I:se=^_@:sf=^J:so=^_P: -# It is recommended that you run the 4025 at 4800 baud or less; -# various bugs in the terminal appear at 9600. It wedges at the -# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed -# on keyboard don't work. You have to hit BREAK twice to get -# one break at any speed - this is a documented feature. -# Can't use cursor motion because it's memory relative, and -# because it only works in the workspace, not the monitor. -# Same for home. Likewise, standout only works in the workspace. -# -# el was commented out since vi and rogue seem to work better -# simulating it with lots of spaces! -# -# il1 and il had 145ms of padding, but that slowed down vi's ^U -# and didn't seem necessary. -# -tek4024|tek4025|tek4027|tektronix 4024/4025/4027:\ - :am:da:db:\ - :co#80:it#8:li#34:lm#0:\ - :AL=\037up\r\037ili %d\r:CC=^_:DL=\037dli %d\r\006:\ - :DO=\037dow %d\r:LE=\037lef %d\r:RI=\037rig %d\r:\ - :UP=\037up %d\r:al=\037up\r\037ili\r:bl=^G:\ - :cd=\037dli 50\r:cl=\037era\r\n\n:cr=^M:dc=\037dch\r:\ - :dl=\037dli\r\006:do=^F^J:ei=:ic=\037ich\r \010:im=:\ - :is=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r:\ - :ke=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r:\ - :ks=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r:\ - :le=^H:nd=\037rig\r:sf=^F^J:ta=^I:up=^K: -tek4025-17|4025-17|4027-17|tek 4025 17 line window:\ - :li#17:\ - :tc=tek4025: -tek4025-17-ws|4025-17-ws|4025-17ws|4027-17ws|4027-17-ws|tek 4025 17 line window in workspace:\ - :is=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r:\ - :se=\037att s\r:so=\037att e\r:te=\037mon h\r:\ - :ti=\037wor h\r:tc=tek4025-17: -tek4025-ex|tek4027-ex|tek 4025/4027 w/!:\ - :is=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r:\ - :te=\037com 33\r:ti=!com 31\r:tc=tek4025: -# Tektronix 4025a -# From: Doug Gwyn -# The following status modes are assumed for normal operation (replace the -# initial "!" by whatever the current command character is): -# !COM 29 # NOTE: changes command character to GS (^]) -# ^]DUP -# ^]ECH R -# ^]EOL -# ^]RSS T -# ^]SNO N -# ^]STO 9 17 25 33 41 49 57 65 73 -# Other modes may be set according to communication requirements. -# If the command character is inadvertently changed, termcap can't restore it. -# Insert-character cannot be made to work on both top and bottom rows. -# Clear-to-end-of-display emulation via !DLI 988 is too groady to use, alas. -# There also seems to be a problem with vertical motion, perhaps involving -# delete/insert-line, following a typed carriage return. This terminal sucks. -# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! -# (tek4025a: mapped ":pt:" to default tabs; removed obsolete ":xx:". -# This may mean the tek4025a entry won't work any more. -- esr) -tek4025a|4025a|Tektronix 4025A:\ - :am:bs:bw:da:db:pt:xo:\ - :co#80:li#34:\ - :CC=^]:DC=\035dch %d;:DL=\035dli %d;:DO=\035dow %d;:\ - :LE=\035lef %d;:RI=\035rig %d;:SF=\035dow %d;:\ - :UP=\035up %d;:al=\013\035ili;:bl=^G:bt=\035bac;:\ - :ce=\035dch 80;:ch=\r\035rig %d;:\ - :cl=\035era;\n\035rup;:cr=^M:ct=\035sto;:dc=\035dch;:\ - :dl=\035dli;:do=^J:le=^H:nd=\035rig;:\ - :rs=!com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;:\ - :sf=^J:ta=^I:up=^K: -# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981 -# Here's the command file that I use to get rogue to work on the 4025. -# It should work with any program using the old curses (e.g. it better -# not try to scroll, or cursor addressing won't work. Also, you can't -# see the cursor.) -# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh) -# (tek4025-cr: mapped ":pt:" to default tabs -- esr) -tek4025-cr|4025-cr|tek 4025 for curses and rogue:\ - :am:bs:pt:\ - :co#80:li#33:\ - :cl=\037era;:cm=\037jum%i%d\054%d;:do=^F^J:\ - :is=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r:\ - :le=^H:nd=\037rig;:nl=^F^J:te=\037wor 0:\ - :ti=\037wor 33h:up=^K: -# next two lines commented out since curses only allows 128 chars, sigh. -# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\ -# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0: -tek4025ex|4025ex|4027ex|tek 4025 w/!:\ - :is=\037com 33\r\n!sto 9\05417\05425\05433\05441\05449\05457\05465\05473\r:\ - :te=\037com 33\r:ti=!com 31\r:tc=tek4025: -tek4105|4105|tektronix 4105:\ - :am:mi:ms:ul:xn:xt:\ - :co#79:it#8:li#29:\ - :ae=\E[0m:al=\E[1L:as=\E[1m:bl=^G:bt=\E[Z:cd=\E[J:\ - :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%2;%2H:cr=^M:ct=\E[1g:\ - :dc=\E[1P:dl=\E[1M:do=\E[1B:ei=\E[4l:ho=\E[H:\ - :i1=\E%!1\E[0m:im=\E[4h:is=\E%!1\E[?6141\E[0m:kb=^H:\ - :kd=\E[1B:kl=\E[1D:kr=\E[1C:ku=\E[1A:mb=\E[=3;<7m:\ - :md=\E[=7;<4m:me=\E[=0;<1m:mh=\E[=1;<6m:mk=\E[=6;<5:\ - :mr=\E[=1;<3m:nd=\E[1C:se=\E[=0;<1m:sf=\E[S:\ - :so=\E[=2;<3m:sr=\E[T:ta=^I:ti=\E%!1\E[?6l\E[2J:\ - :ue=\E[=0;<1m:up=\E[1A:us=\E[=5;<2m: - -tek4105-30|4105-30|4015 emulating 30 line vt100:\ - :am:mi:ms:xn:xo:\ - :co#80:it#8:li#30:vt#3:\ - :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:\ - :K5=\EOn:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3g:do=^J:eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:\ - :k8=\EOl:k9=\EOw:k;=\EOx:kb=^H:kd=\EOB:ke=\E[?1l\E>:\ - :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ - :md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ - :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m: - -tek4107|tek4109|4107|4109|tektronix terminals 4107 4109:\ - :am:mi:ms:ul:xn:xt:\ - :co#79:it#8:li#29:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\ELZ:cm=\EY%+ %+ :cr=^M:\ - :do=^J:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:\ - :mb=\E%!1\E[5m\E%!0:md=\E%!1\E[1m\E%!0:\ - :me=\E%!1\E[m\E%!0:mh=\E%!1\E[<0m\E%!0:\ - :mr=\E%!1\E[7m\E%0:nd=\EC:\ - :..sa=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m\E%%!0:\ - :se=\E%!1\E[m\E%!0:sf=^J:so=\E%!1\E[7;5m\E%!0:sr=\EI:\ - :ta=^I:ue=\E%!1\E[m\E%!0:up=\EA:us=\E%!1\E[4m\E%!0:\ - :ve=\E%!0:vs=\E%!3: -# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s; -# see the note attached to tek4207. -tek4207-s|Tektronix 4207 with sysline but no memory:\ - :es:hs:\ - :ds=\E7\E[?6l\E[2K\E[?6h\E8:fs=\E[?6h\E8:\ - :i2=\E7\E[?6l\E[2K\E[?6h\E8:\ - :is=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J:\ - :ts=\E7\E[?6l\E[2K\E[;%i%df:tc=tek4107: - -# The 4110 series may be a wonderful graphics series, but they make the 4025 -# look good for screen editing. In the dialog area, you can't move the cursor -# off the bottom line. Out of the dialog area, ^K moves it up, but there -# is no way to scroll. -# -# Note that there is a floppy for free from Tek that makes the -# 4112 emulate the vt52 (use the vt52 termcap). There is also -# an expected enhancement that will use ANSI standard sequences. -# -# 4112 in non-dialog area pretending to scroll. It really wraps -# but vi is said to work (more or less) in this mode. -# -# 'vi' works reasonably well with this entry. -# -otek4112|o4112-nd|otek4113|otek4114|tektronix 4110 series:\ - :am:\ - :co#80:li#34:\ - :bl=^G:cl=\E^L:cr=^M:do=^J:le=^H:sf=^J:te=\EKA1\ELV1:\ - :ti=\EKA0\ELV0\EMG0:up=^K: -# The 4112 with the ANSI compatibility enhancement -tek4112|tek4114|tektronix 4110 series:\ - :am:bs:db:\ - :co#80:li#34:\ - :al=\E[L:bt=\E[Z:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[0;0H:\ - :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=:ic=\E[@:im=:\ - :is=\E3!1:nd=\E[C:se=\E[m:sf=\E7\E[0;0H\E[M\E8:\ - :so=\E[7m:sr=\E7\E[0;0H\E[L\E8:ue=\E[m:up=\EM:\ - :us=\E[4m:ve=:vs=: -tek4112-nd|4112-nd|4112 not in dialog area:\ - :ns:\ - :up=^K:tc=tek4112: -tek4112-5|4112-5|4112 in 5 line dialog area:\ - :li#5:\ - :tc=tek4112: -# (tek4113: this used to have ":nd=\LM1 \LM0:", someone's mistake; -# removed ":as=\E^N:ae=\E^O:", which had been commented out in 8.3. -# Note, the !0 and !1 sequences in :te:/:ti:/:ve:/:vs: were previously \0410 -# and \0411 sequences...I don't *think* they were supposed to be 4-digit -# octal -- esr) -tek4113|tektronix 4113 color graphics, 5 line dialog area:\ - :am:bs:da:eo:\ - :co#80:li#5:\ - :cl=\ELZ:do=^J:is=\EKA1\ELL5\ELV0\ELV1:le=^H:\ - :nd=\ELM1 \ELM0:uc=\010\ELM1_\ELM0:\ - :vb=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0: -tek4113-34|4113-34|tektronix 4113 color graphics, 34 line dialog area:\ - :li#34:\ - :is=\EKA1\ELLB2\ELV0\ELV1:tc=tek4113: -# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not -# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up . -# :vb: needs enough delay to let you see the background color being toggled. -# (tek4113-nd: mapped ":pt:" to default tabs -- esr) -tek4113-nd|4113-nd|tektronix 4113 color graphics, no dialog area:\ - :am:bs:eo:pt:\ - :co#80:li#34:\ - :cl=\E^L:do=^J:ho=\ELF7l\177 @:\ - :is=\ELZ\EKA0\ELF7l\177 @:le=^H:ll=\ELF hl @:nd=^I:\ - :se=\EMT1:so=\EMT2:uc=\010\EMG1_\EMG0:up=^K:\ - :vb=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0:\ - :vs=\ELZ\EKA0: -# This entry is from Tek. Inc. (Brian Biehl) -# (tek4115: mapped ":pt:" to default tabs; :bc: renamed to :le: -- esr) -otek4115|Tektronix 4115:\ - :am:bs:da:db:eo:pt:\ - :co#80:li#34:\ - :al=\E[L:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\ - :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\ - :ho=\E[;H:if=/usr/share/tabset/vt100:im=\E[4h:\ - :is=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[0m:\ - :kb=^H:ke=\E>:ks=\E=:le=\E[D:nd=\E[C:se=\E[m:\ - :so=\E[7m:sr=\EM:te=\E%!0\ELBG8\E%!1\E[34;1H\E[J:\ - :ti=\E%!0\ELBB2\E%!1:ue=\E[m:up=\E[A:us=\E[4m:\ - :ve=\E%!0\ELBG8\E%!1\E[34;1H:vs=\E%!0\ELBB2\E%!1: -tek4115|newer tektronix 4115 entry with more ANSI capabilities:\ - :am:xo:\ - :co#80:li#34:\ - :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\ - :RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:\ - :ce=\E[K:ch=\E[%+^AG:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :cr=^M:ct=\E[2g:cv=\E[%+^Ad:dc=\E[P:dl=\E[M:do=^J:\ - :ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=\E[B:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\ - :me=\E[0m:mk=\E[8m:mr=\E[7m:nd=\E[C:\ - :..rp=%p1%c\E[%p2%{1}%-%db:\ - :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\ - :se=\E[m:sf=^J:so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\E[A:\ - :us=\E[4m: -# The tek4125 emulates a vt100 incorrectly - the scrolling region -# command is ignored. The following entry replaces the :cs: with the needed -# :al:, :dl:, and :im:; removes some cursor pad commands that the tek4125 -# chokes on; and adds a lot of initialization for the tek dialog area. -# Note that this entry uses all 34 lines and sets the cursor color to green. -# Steve Jacobson 8/85 -# (tek4125: there were two "\!"s in the is that I replaced with "\E!" -- esr) -tek4125|4125:\ - :li#34:\ - :al=\E[1L:cs@:dl=\E[1M:im=\E1:\ - :is=\E%\E!0\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E!1\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ - :ks=\E=:rc@:sc@:tc=vt100: - -# From: -# (tek4107: mapped ":pt:" to default tabs. This was the termcap file's -# entry for the 4107/4207, but SCO supplied another, less capable 4107 entry. -# So we'll use that for 4107 and note that if jcoker wasn't confused you -# may be able to use this one. -- esr) -tek4207|Tektronix 4207 graphics terminal with memory:\ - :am:bs:bw:mi:pt:ul:xn:\ - :co#80:li#32:\ - :al=3\E[L:bt=\E[Z:cd=\E[J:ce=5\E[K:cl=156\E[H\E[J:\ - :cm=\E[%i%d;%dH:dc=4\E[P:dl=3\E[M:do=^J:ei=:ho=\E[H:\ - :ic=4\E[@:im=:\ - :is=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J:\ - :kd=\ED:kh=\E[H:kl=\E[D:kr=\E[C:ku=\EM:le=^H:\ - :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:se=\E[m:\ - :so=\E[7m:te=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f:\ - :ti=\E[?6l\E[H\E[J:ue=\E[m:up=\EM:us=\E[4m: - -# From: Thu Oct 31 12:54:27 1985 -# (tek4404: There was a "\!" in :ti: that I replaced with "\E!"; -# also mapped ":pt:" to default tabs -- esr) -tek4404|4404:\ - :bs:pt:\ - :co#80:li#32:\ - :al=\E[1L:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\ - :cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[1M:\ - :do=^J:ei=\E[4l:ho=\E[H:im=\E[4h:kd=\E[B:ke=\E[?1h:\ - :kl=\E[D:kr=\E[C:ks=\E[?1l:ku=\E[A:mb=\E[5m:md=\E[1m:\ - :me=\E[m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:so=\E[7m:\ - :ta=\E[2I:te=\E[1;1H\E[0J\E[?6h\E[?1l:\ - :ti=\E%\E!1\E[1;32r\E[?6l\E>:ue=\E[m:up=\E[A:\ - :us=\E[4m: -# t500 is a local entry for the oddball Tek 500 owned by Fluke -# Labs -# -t500|Tek series 500:\ - :am:bw:\ - :co#80:li#25:\ - :bl=^G:cl=\005:cm=\E=%+ %+ :cr=^M:do=^J:ho=^T:le=^H:\ - :sf=^J: -# I added the is string - straight Unix has ESC ; in the login -# string which sets a ct8500 into monitor mode (aka 4025 snoopy -# mode). The is string here cleans up a few things (but not -# everything). -# -ct8500|tektronix ct8500:\ - :am:bw:da:db:\ - :co#80:li#25:\ - :al=\E^L:bl=^G:bt=\E^I:cd=\E^U:ce=\E^T:cl=\E^E:\ - :cm=\E|%+ %+ :cr=^M:dc=\E^]:dl=\E^M:do=^J:ei=:\ - :ic=\E^\:im=:is=\037\EZ\Ek:le=^H:me=\E :nd=\ES:\ - :se=\E :sf=^J:so=\E$:sr=\E^A:ta=^I:ue=\E :up=\ER:\ - :us=\E!: - -# Tektronix 4205 terminal. -# -# am is not defined because the wrap around occurs not when the char. -# is placed in the 80'th column, but when we are attempting to type -# the 81'st character on the line. -# -# Bold, dim, and standout are simulated by colors and thus not allowed -# with colors. The tektronix color table is mapped into the RGB color -# table by setf/setb. All colors are reset to factory specifications by oc. -# The initc cap uses RGB notation to define colors. for arguments 1-3 the -# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub- -# interval then maps into pre-defined value. -# (untranslatable capabilities removed to fit entry within 1023 bytes) -# WARNING: this entry, 1264 bytes long, may core-dump older termcap libraries! -tek4205|4205|tektronix 4205:\ - :cc:mi:ms:\ - :Co#8:NC#49:co#80:it#8:li#30:pa#63:\ - :AL=\E[%dL:DO=\E[%dB:IC=\E[%d@::LE=\E[%dD:RI=\E[%dC::\ - ::UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[1L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ - :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:ct=\E[1g:\ - :dc=\E[1P:dl=\E[1M:do=\E[B:eA=\E)0:ec=\E%dX:ei=\E[4l:\ - :ho=\E[H:i1=\E%!0\ETM1\E%!1\E[0m:im=\E[4h:k0=\EOA:\ - :k1=\EOB:k2=\EOC:k3=\EOD:k4=\EP:k5=\EQ:k6=\ER:k7=\ES:\ - :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:\ - :mb=\E[5m:md=\E[=7;<4m:me=\E[=0;<1m\E[24;25;27m\017:\ - :mh=\E[=1;<6m:mk=\E[=6;<5:mr=\E[7m:nd=\E[C:\ - :oc=\E%!0\n\ETFB0\n0000\n1F4F4F4\n2F400\n30F40\n4A4C:rc=^C:sc=^B:sf=^J:up=^K: - -scanset-n|Tymshare Scan Set in 40 col mode:\ - :r2=\E<:tc=scanset: - -#### Volker-Craig (vc) -# - -# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time -# every other linefeed. -vc303a|vc403a|volker-craig 303a:\ - :am:bs:ns:\ - :co#80:li#24:\ - :bl=^G:ce=\026:cl=\030:cr=^M:do=^J:ho=\031:kd=^J:\ - :kl=^H:kr=^U:ku=^Z:le=^H:ll=^P:nd=^U:up=^Z: -vc303|vc103|vc203|volker-craig 303:\ - :am:bs:ns:\ - :co#80:li#24:\ - :bl=^G:cl=\014:cr=^M:do=^J:ho=\013:kd=^J:kl=^H:kr=^I:\ - :ku=^N:le=^H:ll=\017W:nd=^I:up=^N: -# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr) -vc404|volker-craig 404:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cd=\027:ce=\026:cl=\030:cm=\020%+ %+ :cr=^M:\ - :do=^J:ho=\031:kd=^J:kl=^H:kr=^U:ku=^Z:le=^H:nd=^U:\ - :sf=^J:up=^Z: -vc404-s|volker-craig 404 w/standout mode:\ - :do=^J:se=^O:so=^N:tc=vc404: -# (vc404-na: removed obsolete ":ma@:" -- esr) -vc404-na|volker-craig 404 w/no arrow keys:\ - :kr@:ku@:tc=vc404: -vc404-s-na|volker-craig 404 w/standout mode and no arrow keys:\ - :se=^O:so=^N:tc=vc404-na: -# From: -vc414|vc414h|Volker-Craig 414H in sane escape mode.:\ - :am:bs:\ - :co#80:li#24:\ - :al=\E\032:cd=\E^X:ce=10\E\017:cl=\E\034:dc=\E3:\ - :do=\E^K:ei=:ic=\E\072:im=:k0=\EA:k1=\EB:k2=\EC:\ - :k3=\ED:k4=\EE:k5=\EF:k6=\EG:k7=\EH:kd=\E^K:kh=\E^R:\ - :kl=^H:kr=^P:ku=\E^L:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\ - :l4=PF5:l5=PF6:l6=PF7:l7=PF8:nd=^P:se=\E^_:so=\E^Y:\ - :up=\E^L: -vc414h-noxon:\ - :cm=\E\021%r%.%.:dl=\E\023:ho=\E^R:tc=vc414h: -vc415|volker-craig 415:\ - :cl=^L:tc=vc404: - -######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS -# - -#### IBM PC and clones -# - -# The pcplot IBM-PC terminal emulation program is really messed up. It is -# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly, -# doesn't support scrolling regions, ignores add line commands, and ignores -# delete line commands. Consequently, the resulting behavior looks like a -# crude adm3a-type terminal. -# Steve Jacobson 8/85 -pcplot:\ - :xn@:\ - :cs@:rc@:sc@:tc=vt100: -# (kaypro: removed obsolete ":ma=^K^P:" -- esr) -kaypro|kaypro2|kaypro II:\ - :am:bs:\ - :co#80:li#24:\ - :cl=1\032:cm=\E=%+ %+ :ho=^^:kd=^J:kl=^H:kr=^L:ku=^K:\ - :nd=^L:up=^K: -sanyo55|sanyo|sanyo mbc-55x pc compatible:\ - :am:bs:\ - :co#80:li#25:\ - :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:nd=\E[C:\ - :se=\E[m:so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m: - -# From IBM, Thu May 5 19:35:27 1983 -ibmpc|ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS):\ - :am:\ - :co#80:li#24:\ - :bl=^G:cl=^L^K:cr=^M^^:do=^J:ho=^K:im=\200R:kd=^_:\ - :le=^]:nd=^\:sf=\n:up=^^: - -#### Apple -# - -# apple -- works with an Apple ][+ that is equipped with a Videx 80 column -# card in slot 3. A special routine must be installed at the apple end to -# enable scroll down, here indicated with a ^U. The Videx card must have -# inverse char set, which is used as standout. -apple|apple-v80|Apple][+ w/Videx80 & custom scroll down:\ - :am:xn:\ - :co#80:li#24:\ - :ae=^Z3:as=^Z2:bl=^G:cd=\013:ce=\035:cl=\014:\ - :..cm=\r\036%r%p1%{32}%+%c%p2%{32}%+%c$<6>:cr=^M:\ - :do=^J:ho=\031:le=\010:nd=^\:se=^Z2:sf=^J:so=^Z3:\ - :sr=^P:up=^_: -# (appleII: mapped ":pt:" to default tabs -- esr) -appleII|apple ii plus:\ - :am:bs:pt:\ - :co#80:li#24:\ - :cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :do=^J:ho=\E^Y:\ - :is=\024T1\016:kd=^J:kr=^U:nd=^\:se=^N:so=^O:up=^_:\ - :vb=\024G1\024T1:ve=^TC2:vs=^TC6: -# Originally by Gary Ford 21NOV83 -# From: Fri Oct 11 21:27:00 1985 -apple-80|apple II with smarterm 80 col:\ - :am:bs:bw:\ - :co#80:li#24:\ - :bt=^R:cd=10*\013:ce=10\035:cl=10*\014:\ - :cm=\036%r%+ %+ :cr=10*\r:do=^J:ho=^Y:le=^H:nd=^\:\ - :up=^_: -apple-soroc|apple emulating soroc 120:\ - :am:\ - :co#80:li#24:\ - :bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:\ - :ho=^^:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:\ - :up=^K: -# From Peter Harrison, Computer Graphics Lab, San Francisco -# ucbvax!ucsfmis!harrison .....uucp -# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA -# "These two work. If you don't have the inverse video chip for the -# Apple with videx then remove the so and se fields." -# (DaleApple: mapped ":pt:" to default tabs -- esr) -DaleApple|Apple with videx videoterm 80 column board with inverse video:\ - :am:bs:pt:xn:\ - :co#80:li#24:\ - :cd=^K:ce=^]:cl=300\014:cm=\036%r%+ %+ :do=^J:ho=^Y:\ - :kd=^J:kh=^Y:kl=^H:kr=^U:le=^H:nd=^\:se=^Z2:so=^Z3:\ - :up=^_: -# (lisa: this had forms-drawing capabilities -# :GV=`:GH=a:G1=c:G2=f:G3=e:G4=d:GU=u:GD=s:GC=b:GL=v:GR=t: -# I renamed GS/GE/CO/CF, mapped ":pt:" to default tabs -- esr) -lisa|apple lisa console display, black on white:\ - :am:bs:eo:ms:pt:\ - :co#88:li#32:\ - :ae=\E[10m:al=\E[L:as=\E[11m:cd=\E[J:ce=\E[K:cl=^L:\ - :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ - :ic=\E[@:im=:is=\E>\E[0m\014:kb=^H:kd=\E[B:kl=\E[D:\ - :kr=\E[C:ku=\E[A:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:\ - :up=\E[A:us=\E[4m:vi=\E[5h:vs=\E[5l: -liswb|apple lisa console display, white on black:\ - :is=\E>\E[0;7m\014:se=\E[0;7m:so=\E[0m:ue=\E[0;7m:\ - :us=\E[4m:tc=lisa: -mac|macintosh|Macintosh with MacTerminal:\ - :xn:\ - :dN#30:\ - :al=20\E[L:dc=7\E[P:dl=20\E[M:ei=:ic=9\E[@:im=:ip=7:tc=vt100: - -#### Radio Shack/Tandy -# - -# (coco3: This had "ta" used incorrectly as a boolean and bl given as "bl#7". -# I read these as mistakes for ":it#8:" and ":bl=\007:" respectively -- esr) -# From: <{pbrown,ctl}@ocf.berkeley.edu> 12 Mar 90 -coco3|os9LII|Tandy CoCo3 24*80 OS9 Level II:\ - :am:bs:\ - :co#80:it#8:li#24:\ - :al=^_0:bl=^G:cd=^K:ce=^D:cl=5*\014:cm=2\002%r%+ %+ :\ - :dl=^_1:do=^J:ho=^A:kd=^J:kl=^H:kr=^I:ku=^L:mb=^_":\ - :md=\E\072^A:me=\037!\E\072\200:mr=^_ :nd=^F:se=^_!:\ - :so=^_ :ue=^_#:up=^I:us=^_":ve=^E!:vi=^E : -trs80|trs-80|radio shack trs-80 Model I:\ - :am:bs:\ - :co#64:li#16:\ - :bl=^G:cr=^M:do=^J:le=^H:sf=^J: -# (trs2: mapped ":pt:" to default tabs; removed obsolete ":nl=^_:" -- esr) -trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M:\ - :am:bs:ms:pt:\ - :co#80:li#24:\ - :al=^D:bl=^G:cd=^B:ce=^A:cl=^L:cm=\EY%+ %+ :cr=^M:\ - :dl=^K:do=^_:ho=^F:kb=^H:kd=^_:kl=^\:kr=^]:ku=^^:\ - :nd=^]:se=^O:sf=^J:so=^N:up=^^: -# From: Kevin Braunsdorf -# (This had unknown capabilities -# :GV=s:GH=u:GU=e:GD=c:G1=`:G2=_:G3=b:G4=a:\ -# :BN=\E[?33h:BF=\E[?33l:UC=\E[_ q:BC=\E[\177 q:\ -# :CN=\ERC:CF=\ERc:NR=\ERD:NM=\ER@: -# I renamed GS/GE,also deleted the unnecessary ":kn#2:", ":sg#0:" -# and mapped ":pt:" to default tabs -- esr) -trs16|trs-80 model 16 console:\ - :am:bs:pt:\ - :co#80:li#24:sg#0:\ - :ae=\ERg:al=\EL:as=\ERG:bl=^G:cd=\EJ:ce=\EK:cl=^L:\ - :cm=\EY%+ %+ :cr=^M:dc=\EQ:dl=\EM:do=\EB:ei=:ho=\EH:\ - :ic=\EP:im=:k0=^A:k1=^B:k2=^D:k3=^L:k4=^U:k5=^P:\ - :k6=^N:k7=^S:kb=^H:kd=\EB:kh=^W:kl=\ED:kr=\EC:ku=\EA:\ - :l0=f1:l1=f2:l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:\ - :le=^H:nd=\EC:pf=\E]+:po=\E]=:se=\ER@:sf=^J:so=\ERD:\ - :ta=^I:up=\EA:ve=\ERC:vi=\ERc: -# From: Suk Lee <..!{decvax,linus,allegra,ihnp4}!utcsrgv!spoo> -# (civis/cnorm added from SCO description) -trs100|Radio Shack Model 100:\ - :am:bs:xt:\ - :co#40:li#8:\ - :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :\ - :cr=^M:dl=\EM:do=^J:ho=\EH:kb=^H:kd=^_:kl=^]:kr=^\:\ - :ku=^^:le=^H:nd=\EC:se=\Eq:sf=^J:so=\Ep:up=\EA:\ - :ve=\EP:vi=\EQ: -trs200|Tandy 200:\ - :am:xt:\ - :co#40:li#16:\ - :al=\EL:bl=^G:cd=^L:ce=\EK:cl=\EE:cm=\EY%+ %+ :cr=^M:\ - :dl=\EM:do=^_:kd=^_:kl=^]:kr=^\:ku=^^:le=^H:nd=^\:\ - :se=\Eq:sf=^J:so=\Ep:up=\EA: -trs600|Tandy Model 600:\ - :am:\ - :co#80:li#15:\ - :bl=^G:cl=\EH\EE:cm=\EY%+ 040%+ :cr=^M:do=\EB:kd=\EB:\ - :kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:sf=^J:ta=^I:\ - :up=\EA: - -#### Atari ST -# - -# From: Simson L. Garfinkel -# (atari: mapped ":pt:" to default tabs -- esr) -atari|atari st:\ - :am:bs:pt:\ - :co#80:li#25:\ - :al=\EL:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :dl=\EM:\ - :do=\EB:kd=\EB:kl=\ED:kr=\EC:ku=\EA:nd=\EC:se=\Eq:\ - :so=\Ep:sr=\EI:up=\EA: -# UniTerm terminal program for the Atari ST: 49-line VT220 emulation mode -# From: Paul M. Aoki -uniterm|uniterm49|UniTerm VT220 emulator, 49 lines:\ - :li#49:\ - :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H:tc=vt220: - -#### Commodore Business Machines -# -# Formerly located in West Chester, PA; went spectacularly bust in 1994 -# after years of shaky engineering and egregious mismanagement. Made one -# really nice machine (the Amiga) and boatloads of nasty ones (PET, C-64, -# C-128, VIC-20). The C-64 is said to have been the most popular machine -# ever (most units sold); they can still be found gathering dust in closets -# everywhere. -# - -# From: Kent Polk , 30 May 90 -# Added a few more entries, converted caret-type control sequence (^x) entries -# to '\0xx' entries since a couple of people mentioned losing '^x' sequences. -# -# :as:, :ae: Support for alternate character sets. -# :ve=\E[\040p:vi=\E[\060\040p: cursor visible/invisible. -# :xn: vt100 kludginess at column 80/NEWLINE ignore after 80 cols(Concept) -# This one appears to fix a problem I always had with a line ending -# at 'width+1' (I think) followed by a blank line in vi. The blank -# line tended to disappear and reappear depending on how the screen -# was refreshed. Note that this is probably needed only if you use -# something like a Dnet Fterm with the window sized to some peculiar -# dimension larger than 80 columns. -# :k0=\E9~: map F10 to k0 - could have F0-9 -> k0-9, but ... F10 was 'k;' -# (amiga: removed obsolete ":kn#10:" -- esr) -amiga|Amiga ANSI:\ - :am:bs:bw:xn:\ - :co#80:li#24:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ - :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ - :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:\ - :ei=:ho=\E[H:ic=\E[@:im=:is=\E[20l:k0=\E9~:k1=\E0~:\ - :k2=\E1~:k3=\E2~:k4=\E3~:k5=\E4~:k6=\E5~:k7=\E6~:\ - :k8=\E7~:k9=\E8~:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:\ - :le=\E[D:mb=\E[7;2m:md=\E[1m:me=\E[0m:mh=\E[2m:\ - :mk=\E[8m:mr=\E[7m:nd=\E[C:rs=\Ec:se=\E[0m:sf=\E[S:\ - :so=\E[7m:sr=\E[T:ue=\E[0m:up=\E[A:us=\E[4m:vb=^G:\ - :ve=\E[ p:vi=\E[0 p: - -# The legendary home of B1FF... -vic20|vic|VIC-20 Personal Computer:\ - :am:\ - :co#22:li#20:\ - :bl=^G:cl=^K^L:cr=^M:do=^J:ho=^L:nd=^\:sf=^J:up=^^: - -#### CompuColor -# -# These were consoles for a line of Z80-based micros dating from around 1977. -# - -# These compucolors appear similar, but they at least have different -# sized screens. I don't know what's going on here. -# (compucolor: removed obsolete ":bc=^Z:" -- esr) -compucolor|isc8001|intecolor:\ - :am:\ - :co#80:li#47:\ - :al=\EU:bl=^G:cl=\014:cr=\r:dl=\EV\034:do=\n:\ - :ei=\022\EK:im=\023\EQ:kd=^J:kh=^H:kl=^Z:kr=^Y:ku=^\:\ - :le=\032:nd=\031:sf=\n:ue=\022:up=\034:us=\021: -# (compucolor2: mapped ":pt:" to default tabs, -# removed obsolete ":bc=^Z:" -- esr) -compucolor2|compucolorII:\ - :am:pt:\ - :co#64:li#32:\ - :bl=^G:cl=^L:cm=\003%r%.%.:cr=^M:do=^J:ho=^H:le=^Z:\ - :nd=^Y:sf=^J:ta=^I:up=^\: - -#### Exidy Sorcerer -# - -# (exidy: mapped ":pt:" to default tabs -- esr) -exidy|exidy2500|exidy sorcerer as dm2500:\ - :am:\ - :co#64:li#30:\ - :al=^P^J^X:bl=^G:cd=^X:ce=^W:cl=^^:\ - :..cm=\014%p2%'`'%^%c%p1%'`'%^%c:cr=^M:dc=^H:\ - :dl=^P^Z^X:dm=^P:do=^J:ei=^X:ho=^B:ic=^\:im=^P:le=^H:\ - :nd=^\:se=^X:sf=^J:so=^N:ta=^I:up=^Z: -ex3000:\ - :co#80:li#24:\ - :bl=^G:cr=^M:do=^J:ho=^Q:sf=^J: -# This came from the comp ctr who got it from some user. Smart indeed! -# (sexidy: looks like an Exidy Sorcerer in some bizarre emulation mode; -# removed obsolete ":ma=^x^J:"; removed obsolete ":bc=^A:"; removed -# incorrect (and overridden) ":le=^H:" -- esr) -sexidy|exidy smart:\ - :bs:\ - :co#64:li#24:\ - :bl=^G:cl=^L:cr=^M:do=^J:ho=^Q:kd=^S:le=^A:nd=^S:\ - :sf=^J:up=^W: - -#### Osborne -# -# Thu Jul 7 03:55:16 1983 -# -# As an aside, be careful; it may sound like an anomaly on the -# Osborne, but with the 80-column upgrade, it's too easy to -# enter lines >80 columns! -# -# I've already had several comments... -# The Osborne-1 with the 80-col option is capable of being -# 52,80, or 104 characters wide; default to 80 for compatibility -# with most systems. -# -# The tab is destructive on the Ozzie; make sure to 'stty -tabs'. -ozzie|osborne|osborne1|osborne 1:\ - :ms:ul:xt:\ - :co#104:li#24:\ - :al=\EE:bl=^G:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:dc=\EW:\ - :dl=\ER:do=^J:ei=:ic=\EQ:im=:kd=^J:kl=^H:kr=^L:ku=^K:\ - :le=^H:nd=^L:se=\E(:sf=^J:so=\E):ue=\Em:up=^K:us=\El: - -#### Console types for UNIX clones -# - -# According to the Coherent 2.3 manual, the PC console is similar -# to a z19. The differences seem to be (1) 25 lines, (2) no status -# line, (3) standout is broken, (4) ins/del line is broken, (5) -# has blinking and bold. -pc-coherent|pcz19|coherent|IBM PC console running Coherent:\ - :am:mi:\ - :co#80:it#8:li#25:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :cr=^M:\ - :dc=\EN:do=\EB:ei=\EO:ho=\EH:im=\E@:kb=^H:kd=\EB:\ - :kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:se=\Eq:\ - :sf=^J:so=\Ep:sr=\EI:ta=^I:up=\EA: - -# According to the Venix 1.1 manual, the PC console is similar -# to a DEC vt52. Differences seem to be (1) arrow keys send -# different strings, (2) enhanced standout, (3) added insert/delete line. -# Note in particular that it doesn't have automatic margins (am). -# There are other keys (f1-f10, pgup, pgdn, backtab, insch, delch) -# not described here. -pc-venix|venix|IBM PC console running Venix:\ - :co#80:it#8:li#25:\ - :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\ - :cr=^M:dl=\EM:do=^J:kb=^H:kd=\EP:kh=\EG:kl=\EK:\ - :kr=\EM:ku=\EH:le=^H:nd=\EC:sf=^J:sr=\EI:ta=^I:\ - :up=\EA: - -#### Miscellaneous microcomputer consoles -# -# If you know anything more about any of these, please tell me. - -# I don't know which, if either, of these sols to believe. -# ^S is an arrow key! Boy is this guy in for a surprise... -sol|sol1|sol terminal computer:\ - :am:\ - :co#64:li#16:\ - :bl=^G:cl=^K:cm=\E\021%.\E\022%.:cr=^M:do=^J:ho=^N:\ - :kd=^Z:kl=^A:kr=^S:ku=^W:le=^H:nd=^S:sf=^J:up=^W: -sol2|sol terminal computer:\ - :am:mi:xn:\ - :co#64:li#16:\ - :al=20\EL:bl=^G:cd=20\EJ:ce=\EK:cl=20\EE:\ - :cm=\EY%+ %+ :cr=^M:dc=\EN:dl=20\EM:do=^J:ei=\EO:\ - :ho=\EH:im=\E@:kd=\ED:kh=\EH:kl=\EL:kr=\ER:ku=\EU:\ - :le=^H:nd=\EC:sf=\n:ta=^I:up=\EA:ve=\EX:vs=^N^Lv: -# basis from Peter Harrison, Computer Graphics Lab, San Francisco -# ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA -# (basis: removed obsolete ":ma=^K^P^R^L^L :nl=5000*^J:" -- esr) -basis|BASIS108 computer with terminal translation table active:\ - :cd=\EY:ce=\ET:cl=300\E*:do=5000\n:kb=^H:kd=^J:kl=^H:\ - :kr=^L:ku=^K:se=\E):so=\E(:tc=adm3a: -# luna's BMC terminal emulator -luna|luna68k|LUNA68K Bitmap console:\ - :co#88:li#46:\ - :tc=ansi-mini: -microkit|mkt|microkit terminal computer:\ - :am:mi:xn:\ - :co#40:li#23:\ - :al=\El:bl=^G:cd=\Ej:ce=\Ek:cl=\Ee:cm=\Ey%+ %+ :\ - :cr=^M:dc=\En:dl=\Em:do=^J:ei=\Eo:ho=\Eh:im=\E@:\ - :kd=\Ed:kh=\Eh:kl=\El:kr=\Er:ku=\Eu:le=^H:nd=\Ec:\ - :sf=^J:ta=^I:up=\Ea:ve=\Ex:vs=\016\014zv: -megatek|pegasus workstation terminal emulator:\ - :am:os:\ - :co#83:li#60:\ - : -# The Xerox 820 was an early Z80 micro that went nowhere (I think) -xerox820|x820|Xerox 820:\ - :am:\ - :co#80:li#24:\ - :bl=^G:cd=^Q:ce=^X:cl=1^Z:cm=\E=%+ %+ :cr=^M:do=^J:\ - :ho=^^:le=^H:nd=^L:sf=^J:up=^K: - -#### Videotex and teletext -# - -# standard-issue France Telecom minitel terminal (made by Philips) -# (m2-nam: had unknown ":zd=\E[1m:zb=\E[5m:zc=lkmjqxtuwvn:"; -# also deleted unnecessary ":ug#0:sg#0:"; mapped ":pt:" to "" -- esr) -m2-nam|minitel|minitel-2|minitel-2-nam|France Telecom Minitel:\ - :am@:bs:pt:xn:\ - :co#80:it#8:li#24:\ - :ae=\E(B:al=\E[L:as=\E(0:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ - :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=\E[4l:ho=\E[H:\ - :im=\E[4h:ip=7:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:\ - :k3=\EOR:k4=\EOS:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\ - :ku=\E[A:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\ - :ue=\E[m:up=\E[A:us=\E[4m: -# From: Joel Rubin -# This is a preliminary TERMCAP for VIDTEX, a terminal program sold by -# Compuserve. Line and column numbers are computer-dependent (I have a -# Commodore '64); you should use the meta-B option to shut off clean-breaking -# of lines. No key codes included since some of them are programmable and -# most are machine-specific. Works on vi if you don't use clean-breaking. -# Very similar to the IBM 3101 termcap. Escape-D used for backspace because -# control-H is destructive backspace. There seem to be a few weirdnesses -# (especially at the beginning of a wrapped line), and the cursor does not, -# unfortunately, flash. -# (vid: mapped ":pt:" to default tabs; changed :bc: to :le: -- esr) -vid|vidtex|Compuserve vidtex program:\ - :am:pt:\ - :co#40:li#25:\ - :cd=\EJ:ce=\EK:cl=^L:cm=\EY%+ %+ :ho=\EH:le=\ED:\ - :nd=\EC:up=\EA: -# This (inherited from the Emacs termcap.dat file) is probably *way* obsolete! -rsvidtx|Radio Shack VIDEOTEX:\ - :co#32:li#16:\ - :cd=\EJ:ce=\EK:cl=\EH\EJ:..cm=\EY%+ %+ :cr=^M:do=^J:\ - :kb=^H:kd=^J:kl=^H:nd=\EC:nw=^M^J:sf=^J:ta=^I:up=\EA: - -######## OBSOLETE VDT TYPES -# -# These terminals are *long* dead -- these entries are retained for -# historical interest only. - -#### AED -# -# Advanced Electronic Devices made its name manufacturing super-expensive -# vector-graphics displays and frame buffers in the late 1970s. They used -# to be in Sunnyvale CA 94086 on Pastoria Avenue. They're long gone now. -# - -# From: Giles Billingsley -# rewritten 8/82 for newer AEDs and better operation of vi, etc. -# (bel/cr/cub1/cud1/ind added from SCO entry, which doesn't have db or the -# humongous is2, thus they are commented out here -- esr) -aed|AED|aed512|AED512|aed 512:\ - :bs:\ - :co#64:li#40:\ - :bl=^G:cl=^L:cr=^M:do=^J:le=^H:nd=\Ei0800\001:\ - :se=\E[00C80\001:\ - :sf=\E;1100\072004=000200??;1300'\200\001\n\E\072004=0002??00;1200\001\n:\ - :so=\E\07200>8000140[80C00\001:\ - :te=\E\07200>8000100{804<0??00001000L80\072004=000200??\001:\ - :ti=\E\07200>8000140{<04<0??00001010L<0\072004=0002??00\001:\ - :uc=\Ei???>l0800i0102\001:ue=\E\07200>8000100\001:\ - :up=^K:us=\E\07200>8000140\001:\ - :vb=\EK0001??0000K0001202080\001:\ - :ve=\E\072004=000200??\001: -aed-ucb|AED-UCB|aed512-ucb|AED512-UCB|aed 512 w/o UCB ROM:\ - :bs:db:\ - :co#64:li#40:\ - :cl=^L:if=/usr/share/tabset/aed512:nd=\Ei0800\001:\ - :se=\E[00C80\001:so=\E\07200>8000140[80C00\001:\ - :te=\E\07200>8000100{804<0??00001000L80\072004=000200??\001:\ - :ti=\E\07200>8000140{<04<0??00001010L<0\072004=0002??00\001:\ - :uc=\Ei???>l0800i0102\001:ue=\E\07200>8000100\001:\ - :up=^K:us=\E\07200>8000140\001:\ - :vb=\EK0001??0000K0001202080\001:\ - :ve=\E\E\E\E\E\E\E\072004=000200??\001: - -#### Amtek Business Machines -# - -# (abm80: early versions of this entry apparently had ":se=\E^_:so=\E^Y", -# but these caps were commented out in 8.3; also, removed overridden -# ":do=^J:" -- esr) -abm80|amtek business machines 80:\ - :am:bs:bw:\ - :co#80:li#24:\ - :al=\E^Z:bt=^T:cd=\E^X:ce=\E^O:cl=\E^\:\ - :cm=\E\021%r%+ %+ :dl=\E^S:do=\E^K:ho=\E^R:le=^H:\ - :nd=^P:up=\E^L: - -#### Bell Labs blit terminals -# -# These were AT&T's official entries. -# - -blit|jerq|blit running teletype rom:\ - :am:eo:ul:xo:\ - :co#87:it#8:li#72:\ - :AL=\EF%+ :DC=\Ee%+ :DL=\EE%+ :IC=\Ef%+ :al=\EF!:\ - :bl=^G:ce=\EK:cl=^L:cm=\EY%r%+ %+ :cr=^M:dc=\Ee!:\ - :dl=\EE!:do=^J:ei=:ic=\Ef!:im=:k1=\Ex:k2=\Ey:k3=\Ez:\ - :kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=\ED:nd=\EC:\ - :sf=^J:ta=^I:up=\EA: - -cbblit|fixterm|blit running columbus code:\ - :co#88:\ - :cd=\EJ:ei=\ER:ic@:im=\EQ:pO=\EP%03:pf=^T:po=^R:\ - :se=\EV!:so=\EU!:ue=\EV":us=\EU":vb=\E^G:tc=blit: - -oblit|ojerq|first version of blit rom:\ - :am:da:db:eo:mi:ul:xo:\ - :co#88:it#8:li#72:\ - :AL=\Ef%+ :DL=\Ee%+ :al=\EF:bl=^G:cd=\EJ:ce=\EK:\ - :cl=^L:cm=\EY%r%+ %+ :cr=^M:dc=\EO:dl=\EE:do=^J:\ - :ei=\ER:im=\EQ:kb=^H:le=\ED:nd=\EC:sf=^J:ta=^I:\ - :up=\EA:vb=\E^G: - -daleblit|daleterm|blit running Dale DeJager's ROM:\ - :da@:db@:\ - :kd=\EB:kl=\ED:kr=\EC:ku=\EA:se=\EV!:so=\EU!:ue=\EV":\ - :us=\EU":tc=oblit: - -#### Bolt, Beranek & Newman (bbn) -# -# The BitGraph was a product of the now-defunct BBN Computer Corporation. -# The parent company, best known as the architects of the Internet, is -# still around. -# - -# Entries for the BitGraph terminals. The problem -# with scrolling in vi can only be fixed by getting BBN to put -# smarter scroll logic in the terminal or changing vi or padding -# scrolls with about 500 ms delay. -# -# I always thought the problem was related to the terminal -# counting newlines in its input buffer before scrolling and -# then moving the screen that much. Then vi comes along and -# paints lines in on the bottom line of the screen, so you get -# this big white gap. - -bitgraph|bbn bitgraph:\ - :tc=bg3.10rv: -bg3.10rv|bgrv|bbn bitgraph (reverse video):\ - :tc=bg2.0rv: -bg3.10nv|bgnv|bbn bitgraph (normal video):\ - :tc=bg2.0nv: -bg3.10|bgn|bbn bitgraph (no init):\ - :tc=bg2.0: -bg2.0rv|bbn bitgraph (reverse video):\ - :is=\E>\E[?5h\E[?7h:vb=\E[?5l\E[?5h:tc=bg2.0: -bg2.0nv|bbn bitgraph (normal video):\ - :is=\E>\E[?5l\E[?7h:vb=\E[?5h\E[?5l:tc=bg2.0: -bg2.0|bbn bitgraph (no init):\ - :xn:\ - :co#85:li#64:\ - :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ - :cm=%i\E[%d;%dH:cr=^M:cs=\E[%i%d;%dr:dl=\E[M:do=\E[B:\ - :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:ke=\E>:\ - :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:l1=PF1:l2=PF2:l3=PF3:\ - :l4=PF4:le=^H:nd=\E[C:rc=\E8:sc=\E7:se=\E[0m:sf=\n:\ - :so=\E[7m:ta=^I:up=\E[A: -bg1.25rv|bbn bitgraph (reverse video):\ - :is=\E>\E[?5h\E[?7h:vb=\E[?5l\E[?5h:tc=bg1.25: -bg1.25nv|bbn bitgraph (normal video):\ - :is=\E>\E[?5l\E[?7h:vb=\E[?5h\E[?5l:tc=bg1.25: -bg1.25|bbn bitgraph:\ - :co#85:li#64:\ - :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ - :cm=%i\E[%d;%dH:cr=^M:dl=\E[M:do=\E[B:k1=\EP:k2=\EQ:\ - :k3=\ER:k4=\ES:kd=\EB:ke=\E>:kl=\ED:kr=\EC:ks=\E=:\ - :ku=\EA:l1=PF1:l2=PF2:l3=PF3:l4=PF4:le=^H:\ - :ll=\E[64;1H:nd=\E[C:se=\E[0m:sf=\n:so=\E[7m:ta=^I:\ - :up=\E[A: - -#### Chromatics -# - -# cg7900: Following is revised version. As I mentioned, I recompiled -# curses in order to accomadate the large amount of definition. -# I have put the long strings in ti/te. Ti sets up a window -# that is smaller than the screen, and puts up a warning message -# outside the window. Te erases the warning message, puts the -# window back to be the whole screen, and puts the cursor at just -# below the small window. A defined vs and ve to really turn -# the cursor on and off, but I have taken this out since I don't -# like the cursor being turned off when vi exits. -cg7900|chromatics|chromatics 7900:\ - :am:\ - :co#80:li#40:\ - :al=^A>2:bl=^G:cd=^Al:ce=^A`:cl=^L:\ - :cm=\001M%r%d\\\054%d\\\054:cr=^M:dc=^A<1:dl=^A<2:\ - :do=^J:ei=:ho=^\:ic=^A>1:im=:le=^H:ll=^A|:nd=^]:\ - :se=\001C1\\\054\001c2\\\054:sf=^J:\ - :so=\001C4\\\054\001c7\\\054:\ - :te=\001W0\\\05440\\\05485\\\05448\\\054\014\001W0\\\0540\\\05485\\\05448\\\054\001M0\\\05440\\\054:\ - :ti=\001P0\001O1\001R1\001C4\\\054\001c0\\\054\014\001M0\\\05442\\\054WARNING DOUBLE ENTER ESCAPE and \025\001C1\\\054\001c2\\\054\001W0\\\0540\\\05479\\\05439\\\054:\ - :uc=\001\001_\001\200:up=^K: - -#### Computer Automation -# - -ca22851|computer automation 22851:\ - :am:\ - :co#80:li#24:\ - :bl=^G:cd=^\:ce=^]:cl=\014:cm=\002%i%.%.:cr=^M:do=^J:\ - :ho=^^:kd=^W:kh=^^:kl=^U:ku=^V:le=^U:nd=^I:sf=^J:\ - :up=^V: - -#### Cybernex -# - -# This entry has correct padding and the undocumented "ri" capability -cyb83|xl83|cybernex xl-83:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cd=\020:ce=\017:cl=\014:cm=\027%+ %+ :cr=^M:\ - :do=^J:ho=^K:kd=^J:kl=^H:kr=^I:ku=^N:le=^H:nd=^I:\ - :sf=^J:sr=^N:up=^N: -# (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr) -cyb110|mdl110|cybernex mdl-110:\ - :am:bs:\ - :co#80:li#24:\ - :al=\016A\016\035:bl=^G:cd=\016@\026:ce=\016@\026:\ - :cl=\030:cm=\020%+ %+ :cr=^M:dc=\016A\036:\ - :dl=\016A\016\036:do=^J:ei=:ho=^Y:ic=\016A\035:im=:\ - :le=^H:nd=^U:se=^NG:sf=^J:so=^NF:ta=\011:up=^Z: - -#### Datapoint -# -# Datapoint is gone. They used to be headquartered in Texas. -# They created ARCnet, an Ethernet competitor that flourished for a while -# in the early 1980s before 3COM got wise and cut its prices. The service -# side of Datapoint still lives (1995) in the form of Intelogic Trace. -# - -dp3360|datapoint|datapoint 3360:\ - :am:bs:\ - :co#82:li#25:\ - :bl=^G:cd=^_:ce=^^:cl=^]^_:cr=^M:do=^J:ho=^]:le=^H:\ - :nd=^X:sf=^J:up=^Z: - -#### DEC terminals (Obsolete types: DECwriter and vt40/42/50) -# -# These entries are DEC's official terminfos for its older terminals. -# Contact Bill Hedberg of Terminal Support -# Engineering for more information. Updated terminfos and termcaps -# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps. -# - -gt40|dec gt40:\ - :os:\ - :co#72:li#30:\ - :bl=^G:cr=^M:do=^J:le=^H: -gt42|dec gt42:\ - :os:\ - :co#72:li#40:\ - :bl=^G:cr=^M:do=^J:le=^H: -vt50|dec vt50:\ - :co#80:li#12:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cr=^M:do=^J:le=^H:\ - :nd=\EC:sf=^J:ta=^I:up=\EA: -vt50h|dec vt50h:\ - :co#80:li#12:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\ - :do=^J:le=^H:nd=\EC:sf=^J:sr=\EI:ta=^I:up=\EA: -vt52|dec vt52:\ - :co#80:it#8:li#24:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\ - :do=^J:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:\ - :nd=\EC:sf=^J:sr=\EI:ta=^I:up=\EA: -vt61|vt-61|vt61.5:\ - :co#80:li#24:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=\r:\ - :do=^J:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ - :sf=\n:sr=\EI:ta=^I:up=\EA: - -# The gigi does standout with red! -gigi|vk100|dec gigi graphics terminal:\ - :am:xn:\ - :co#84:li#24:\ - :DO=\E[%dB:LE=\E[%r%dD:RI=\E[%dC:UP=\E[%dA:bl=^G:\ - :cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ - :do=^J:is=\E>\E[?3l\E[?4l\E[?5l\E[?20l\E[?7h\E[?8h:\ - :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\EOB:\ - :ke=\E[?1l\E>:kh=\E[H:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ - :ku=\EOA:le=^H:nd=\E[C:se=\E[m:sf=^J:so=\E[7;31m:\ - :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: - -# DEC PRO-350 console (VT220-style). The 350 was DEC's attempt to produce -# a PC differentiated from the IBM clones. It was a total, ludicrous, -# grossly-overpriced failure (among other things, DEC's OS didn't include -# a format program, so you had to buy pre-formatted floppies from DEC at -# a hefty premium!). -# (pro350: mapped ":pt:" to default tabs -- esr) -pro350|decpro|dec pro console:\ - :bs:pt:\ - :co#80:li#24:\ - :ae=\EG:as=\EF:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\ - :do=\EB:ho=\EH:k0=\EE:k1=\EF:k2=\EG:k3=\EH:k4=\EI:\ - :k5=\EJ:k6=\Ei:k7=\Ej:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\ - :ku=\EA:nd=\EC:se=\E^N:so=\E^H:sr=\EI:ue=\E^C:up=\EA:\ - :us=\E^D: - -dw1|decwriter I:\ - :hc:os:\ - :co#72:\ - :bl=^G:cr=^M:do=^J:le=^H:sf=^J: -dw2|decwriter|dw|decwriter II:\ - :hc:os:\ - :co#132:\ - :bl=^G:cr=^M:do=^J:kb=^H:le=^H:sf=^J: - -# \E(B Use U.S. character set (otherwise # => british pound !) -# \E[20l Disable "linefeed newline" mode (else puts \r after \n,\f,\v) -# \E[w 10 char/in pitch -# \E[1;132 full width horizontal margins -# \E[2g clear all tab stops -# \E[z 6 lines/in -# \E[66t 66 lines/page (for \f) -# \E[1;66r full vertical page can be printed -# \E[4g clear vertical tab stops -# \E> disable alternate keypad mode (so it transmits numbers!) -# \E[%i%du set tab stop at column %d (origin == 1) -# (Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is -# a tab stop) -# -# The dw3 does standout with wide characters. -# -dw3|la120|decwriter III:\ - :hc:os:\ - :co#132:\ - :bl=^G:cr=^M:do=^J:\ - :i1=\E(B\E[20l\E[w\E[0;132s\E[2g\E[z\E[66t\E[1;66r\E[4g\E>:\ - :is=\E[9;17;25;33;41;49;57;65;73;81;89;97;105;113;121;129u\r:\ - :kb=^H:le=^H:se=\E[w:sf=^J:so=\E[6w:ta=^I: -dw4|decwriter IV:\ - :am:hc:os:\ - :co#132:\ - :bl=^G:cr=^M:do=^J:is=\Ec:k0=\EOP:k1=\EOQ:k2=\EOR:\ - :k3=\EOS:kb=^H:le=^H:sf=^J:ta=^I: - -#### Delta Data (dd) -# - -# Untested. The cup sequence is hairy enough that it probably needs work. -# The idea is ctrl(O), dd(row), dd(col), where dd(x) is x - 2*(x%16) + '9'. -# There are BSD-derived termcap entries floating around for this puppy -# that are *certainly* wrong. -delta|dd5000|delta data 5000:\ - :am:\ - :co#80:li#27:\ - :bl=^G:ce=^NU:cl=^NR:cm=\017%+^P%+^P:dc=^NV:do=^J:\ - :ho=^NQ:le=^H:nd=^Y:sf=^J:up=^Z: - -#### Digital Data Research (ddr) -# - -# (ddr: mapped ":pt:" to default tabs -- esr) -ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator:\ - :am:bs:pt:xn:\ - :co#80:li#24:vt#3:\ - :cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:cm=5\E[%i%d;%dH:\ - :cs=\E[%i%d;%dr:do=^J:ho=\E[H:is=\E[1;24r\E[24;1H:\ - :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:\ - :ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ks=\E[?1h\E=:ku=\E[A:\ - :le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\ - :nd=2\E[C:rc=\E8:rf=/usr/share/lib/tabset/vt100:\ - :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:sc=\E7:se=\E[m:\ - :sf=5\ED:so=\E[7m:sr=5\EM:ue=2\E[m:up=2\E[A:\ - :us=2\E[4m: - -#### General Electric (ge) -# - -terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200:\ - :hc:os:\ - :co#120:\ - :bl=^G:cr=^M:do=^J:sf=^J: - -#### Heathkit/Zenith -# - -h19-a|heath-ansi|heathkit-a|heathkit h19 ansi mode:\ - :am:mi:ms:\ - :co#80:it#8:li#24:\ - :ae=\E[11m:al=\E[1L:as=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\ - :cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[1M:\ - :do=\E[1B:ei=\E[4l:ho=\E[H:im=\E[4h:\ - :is=\E<\E[>1;2;3;4;5;6;7;8;9l\E[0m\E[11m\E[?7h:\ - :k1=\EOS:k2=\EOT:k3=\EOU:k4=\EOV:k5=\EOW:k6=\EOP:\ - :k7=\EOQ:k8=\EOR:kb=^H:kd=\E[1B:kh=\E[H:kl=\E[1D:\ - :kr=\E[1C:ku=\E[1A:l6=blue:l7=red:l8=white:le=^H:\ - :nd=\E[1C:se=\E[0m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ - :up=\E[1A:ve=\E[>4l:vs=\E[>4h: -h19-bs|heathkit w/keypad shifted:\ - :ke=\Eu:ks=\Et:tc=h19-b: -h19-smul|heathkit w/keypad shifted/underscore cursor:\ - :ke=\Eu:ks=\Et:tc=h19-u: -h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19:\ - :am:es:hs:mi:ms:\ - :co#80:it#8:li#24:\ - :ae=\EG:al=\EL:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EE:\ - :cm=\EY%+ %+ :cr=^M:dc=\EN:dl=\EM:do=\EB:ei=\EO:\ - :fs=\Ek\Ey5:ho=\EH:im=\E@:k1=\ES:k2=\ET:k3=\EU:\ - :k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:kb=^H:kd=\EB:\ - :kh=\EH:kl=\ED:kr=\EC:ku=\EA:l6=blue:l7=red:l8=white:\ - :le=^H:nd=\EC:se=\Eq:sf=^J:so=\Ep:sr=\EI:ta=^I:\ - :ts=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo:up=\EA:ve=\Ey4:\ - :vs=\Ex4: -h19-u|heathkit with underscore cursor:\ - :ve@:vs@:tc=h19-b: -alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19:\ - :li#60:\ - :al=\EL:dl=\EM:tc=h19: - -# The major problem with the Z29 is that it requires more -# padding than the Z19. Once again, here's a little termcap -# entry for it that will do the trick. -# -# The problem declaring an H19 to be synonomous with a Z29 is that -# it needs more padding. It especially loses if a program attempts -# to put the Z29 into insert mode and insert text at 9600 baud. It -# even loses worse if the program attempts to insert tabs at 9600 -# baud. Adding padding to text that is inserted loses because in -# order to make the Z29 not die, one must add so much padding that -# whenever the program tries to use insert mode, the effective -# rate is about 110 baud. -# -# What program would want to put the terminal into insert mode -# and shove stuff at it at 9600 baud you ask? -# -# Emacs. Emacs seems to want to do the mathematically optimal -# thing in doing a redisplay rather than the practical thing. -# When it is about to output a line on top of a line that is -# already on the screen, instead of just killing to the end of -# the line and outputing the new line, it compares the old line -# and the new line and if there are any similarities, it -# constructs the new line by deleting the text on the old line -# on the terminal that is already there and then inserting new -# text into the line to transform it into the new line that is -# to be displayed. The Z29 does not react kindly to this. -# -# But don't cry for too long.... There is a solution. You can make -# a termcap entry for the Z29 that says the Z29 has no insert mode. -# Then Emacs cannot use it. "Oh, no, but now inserting into a -# line will be really slow", you say. Well there is a sort of a -# solution to that too. There is an insert character option on -# the Z29 that will insert one character. Unfortunately, it -# involves putting the terminal into ansi mode, inserting the -# character, and changing it back to H19 mode. All this takes 12 -# characters. Pretty expensive to insert one character, but it -# works. Either Emacs doesn't try to use its inserting hack when -# it's only given an insert character ability or the Z29 doesn't -# require padding with this (the former is probably more likely, -# but I haven't checked it out). -z29|zenith29|z29b|zenith z29b:\ - :am:ms:\ - :co#80:li#24:\ - :ae=\EF:al=\EL:as=\EG:bl=^G:bt=\E-:cd=\EJ:ce=\EK:\ - :cl=\EE:cm=\EY%+ %+ :cr=^M:dc=\EN:dl=\EM:do=\EB:ei=:\ - :ho=\EH:ic=\E<\E[1@\E[?2h:im=:is=\E<\E[?2h\Ev:k0=\E~:\ - :k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:\ - :k8=\ER:k9=\E0I:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\ - :ku=\EA:l0=home:le=^H:nd=\EC:se=\Eq:sf=\n:so=\Ep:\ - :sr=\EI:ta=^I:ue=\Es0:up=\EA:us=\Es8:ve=\Ey4:vs=\Ex4: - -# From: Brad Brahms -z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor:\ - :ve=\Ey4\Em70:vs=\Ex4\Em71:tc=z100bw: -# (z100bw: removed obsolete ":kn#10:"; mapped ":pt:" to default tabs -- esr) -z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc:\ - :bs:mi:ms:pt:\ - :co#80:li#24:\ - :ae=\EG:al=5*\EL:as=\EF:cd=\EJ:ce=\EK:cl=5*\EE:\ - :cm=1*\EY%+ %+ :dc=1*\EN:dl=5*\EM:do=\EB:ei=\EO:\ - :ho=\EH:im=\E@:k0=\EJ:k1=\ES:k2=\ET:k3=\EU:k4=\EV:\ - :k5=\EW:k6=\EP:k7=\EQ:k8=\ER:k9=\EOI:kb=^H:kd=\EB:\ - :kh=\EH:kl=\ED:kr=\EC:ku=\EA:nd=\EC:se=\Eq:so=\Ep:\ - :sr=\EI:up=\EA:ve=\Ey4:vs=\Ex4: -p19:\ - :al=2*\EL:dl=2*\EM:tc=h19-b: -# From: -# (ztx: mapped ":pt:" to default tabs; removed duplicate :sr: -- esr) -ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10/11:\ - :am:bs:es:hs:pt:\ - :co#80:li#24:\ - :al=\EL:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :dl=\EM:\ - :do=^J:ds=\Ey1:fs=\Ek\Ey5:ho=\EH:\ - :is=\Ej\EH\Eq\Ek\Ev\Ey1\Ey5\EG\Ey8\Ey9\Ey>:k0=\ES:\ - :k1=\EB:k2=\EU:k3=\EV:k4=\EW:k5=\EP:k6=\EQ:k7=\ER:\ - :kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ - :se=\Eq:so=\Es5:sr=\EI:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:\ - :ue=\Eq:up=\EA:us=\Es2: - -#### IMS International (ims) -# -# There was a company called IMS International located in Carson City, -# Nevada, that flourished from the mid-70s to mid-80s. They made S-100 -# bus/Z80 hardware and a line of terminals called Ultimas. - -# From: Erik Fair Sun Oct 27 07:21:05 1985 -ims950-b|bare ims950 no init string:\ - :is@:tc=ims950: -ims950-ns|ims950 w/no standout:\ - :se@:so@:ue@:us@:tc=ims950: -# (ims950: removed obsolete ":ko@:" -- esr) -ims950|ims televideo 950 emulation:\ - :xn@:\ - :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb@:kd@:kh@:\ - :kl@:kr@:ku@:vb@:tc=tvi950: -# (ims950-rv: removed obsolete ":ko@:" -- esr) -ims950-rv|ims tvi950 rev video:\ - :xn@:\ - :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb@:kd@:kh@:\ - :kl@:kr@:ku@:vb@:tc=tvi950-rv: -# (ims-ansi: mapped ":pt:" to default tabs -- esr) -ims-ansi|ultima2|ultimaII|IMS Ultima II:\ - :am:bs:pt:\ - :co#80:li#24:\ - :cd=\E[0J:ce=\E[0K:cl=\E[;H\E[2J:cm=\E[%i%2;%2H:\ - :do=\ED:if=/usr/share/tabset/vt100:\ - :is=\E[0m\E[>14l\E[?1;?5;20l\E>\E[1m\r:kd=\E[B:\ - :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:se=\E[0m\E[1m:\ - :so=\E[7m:sr=\EM:ue=\E[0m\E[1m:up=\EM:us=\E[4m: - -#### Intertec Data Systems -# -# I think this company is long dead as of 1995. They made an early CP/M -# micro called the "Intertec Superbrain" that was moderately popular, -# then sank out of sight. -# - -superbrain|intertec superbrain:\ - :am:bw:\ - :co#80:li#24:\ - :bl=^G:cd=\E~k<10*>:ce=\E~K:cl=\014:cm=\EY%+ %+ :\ - :cr=^M:do=^J:kd=^J:kl=^U:kr=^F:ku=^K:le=^H:nd=^F:\ - :sf=^J:ta=^I:te=^L:ti=^L:up=^K: -intertube|intertec|Intertec InterTube:\ - :am:\ - :co#80:li#25:\ - :bl=^G:cl=^L:cm=\EY%+ %+ :cr=^M:do=^J:ho=^A:le=^H:\ - :nd=^F:se=\E0@:sf=^J:so=\E0P:up=^Z: -# The intertube 2 has the "full duplex" problem like the tek 4025: if you -# are typing and a command comes in, the keystrokes you type get interspersed -# with the command and it messes up -it2|intertube2|intertec data systems intertube 2:\ - :am:\ - :co#80:li#25:\ - :bl=^G:ce=\EK:ch=\020%+^J:cl=^L:cm=\016%.\020%+^J:\ - :cr=^M:cv=\013%.:do=^J:ho=^A:le=^H:ll=^K^X\r:nd=^F:\ - :se=\E0@:sf=^J:so=\E0P:up=^Z: - -#### Modgraph -# -# These people used to be reachable at: -# -# Modgraph, Inc -# 1393 Main Street, -# Waltham, MA 02154 -# Vox: (617)-890-5796. -# -# However, if you call that number today you'll get an insurance company. -# I think Modgraph is long gone. -# - -modgraph|mod|modgraph terminal emulating vt100:\ - :xn@:\ - :co#80:li#24:\ - :is=\E^9;0s\E^7;1s\E[3g\E^11;9s\E^11;17s\E^11;25s\E^11;33s\E^11;41s\E^11;49s\E^11;57s\E^11;65s\E^11;73s\E^11;81s\E^11;89s:\ - :rf@:sr=5\EM\E[K:vs=\E^9;0s\E^7;1s:tc=vt100: -# (modgraph2: mapped ":pt:" to default tabs -- esr) -# The GX-1000 manual is dated 1984 -modgraph2|modgraph gx-1000, set to 80x24, keypad not enabled:\ - :am:bs:da:db:pt:\ - :co#80:li#24:\ - :cd=50\EJ:ce=3\EK:cl=50\EH\EJ:cm=5\EY%+ %+ :\ - :is=\E<\E^5;2s\E^7;1s\E[3g\E^11;9s\E^11;17s\E^11;25s\E^11;33s\E^11;41s\E^11;49s\E^11;57s\E^11;65s\E^11;73s\E^11;81s\E^11;89s\E^12;0s\E^14;2s\E^15;9s\E^25;1s\E^9;1s\E^27;1:\ - :nd=2\EC:sr=5\EI:up=2\EA: - -#### Morrow Designs -# -# This was George Morrow's company. They started in the late 1970s making -# S100-bus machines. They used to be reachable at: -# -# Morrow -# 600 McCormick St. -# San Leandro, CA 94577 -# -# but they're long gone now (1995). -# - -# The mt70 terminal was shipped with the Morrow MD-3 microcomputer. -# Jeff's specimen was dated June 1984. -# From: Jeff Wieland 24 Feb 1995 -mt70|mt-70|Morrow MD-70; native Morrow mode:\ - :am:mi:ms:xo:\ - :co#80:it#8:li#24:\ - :%1=^AO\r:F1=^A`\r:F2=^Aa\r:F3=^Ab\r:F4=^Ac\r:\ - :F5=^Ad\r:F6=^Ae\r:F7=^Af\r:F8=^Ag\r:F9=^Ah\r:\ - :FA=^Ai\r:ac=+z\\\054{.yOi-x`|jGkFlEmDnHtLuKvNwMxIqJ:\ - :ae=\E%:al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ - :cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:\ - :ei=:ho=^^:i1=\E"2\EG0\E]:ic=\EQ:im=:k1=^A@\r:\ - :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ - :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kB=^A^Z\r:\ - :kC=^An\r:kD=\177:kb=^H:kd=^AK\r:kh=^AN\r:kl=^AL\r:\ - :kr=^AM\r:ku=^AJ\r:le=^H:me=\EG0:mh=\EG2:mr=\EG4:\ - :nd=^L:nw=^_:se=\EG0:sf=^J:so=\EG4:ta=^I:\ - :ti=\E"2\EG0\E]:up=^K:us=\EG1:vb=\EK1\EK0:ve=\E"2:\ - :vi=\E"0: - -#### Netronics -# -# The Netronics Smarterm 80 was a kit-built terminal that came in at least two -# flavors, a first 40-column version, and a second 64-column version released -# about 1983. - -# (netx: removed obsolete ":ma=j^Jk^Pl :" -- esr) -netx|netronics:\ - :bs:\ - :co#64:li#16:\ - :bl=^G:cd=\006\005:ce=\005:cl=\014:cm=\E=%+@%+@:\ - :cr=^M:do=^J:ho=^D:le=^H:nd=\E+@A:sf=^J:sr=\E=@@\013:\ - :up=^K: -smartvid|Netronics Smartvid 80:\ - :am:bw:eo:ms:xs:\ - :co#80:li#24:sg#1:ug#1:\ - :ae=\EGB:as=\EG@:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^L:\ - :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\ED:ho=^Z:\ - :ic=\EQ:im=\EC:le=^H:ll=^Z^K:nd=^A:se=\EG@:sf=^J:\ - :so=\EGC:sr=^K:ta=\Ei:te=^Z^K:ue=\EG@:up=^K:us=\EGA:\ - :ve=^Z^K: -smarterm|smarterm-s|netronics smarterm 80x24 naked terminal:\ - :am:ul:\ - :co#80:li#24:sg#1:ug#1:\ - :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^L:\ - :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\ED:ho=^Z:\ - :ic=\EQ:im=\EC:le=^H:nd=^A:sf=^J:ta=^I:ue=\EG@:\ - :us=\EGA: - -#### Omron -# -# This company is still around in 1995, manufacturing point-of-sale systems. - -omron|Omron 8025AG:\ - :am:bs:da:db:\ - :co#80:li#24:\ - :al=\EL:bl=^G:cd=\ER:ce=\EK:cl=\EJ:cr=^M:dc=\EP:\ - :dl=\EM:do=^J:ho=\EH:le=^H:nd=\EC:se=\E4:sf=\ES:\ - :so=\Ef:sr=\ET:up=\EA:vs=\EN: - -#### Soroc -# - -# (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr) -soroc120|iq120|soroc iq120:\ - :cd=\EY:ce=\ET:cl=\E*:do=^J:kd=^J:kl=^H:kr=^L:ku=^K:tc=adm3a: -soroc140|iq140|soroc iq140:\ - :am:mi:\ - :co#80:li#24:\ - :al=\Ee:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:\ - :cm=\E=%+ %+ :cr=^M:dc=\Ew:dl=\Er:do=^J:ei=\E8:ho=^^:\ - :im=\E9:k0=^A0\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ - :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:\ - :kh=^^:kr=^L:ku=^K:le=^H:ll=^^^K:nd=^L:se=\E\177:\ - :sf=^J:so=\E\177:ue=\E^A:up=^K:us=\E^A: - -#### Southwest Technical Products -# -# These guys made an early personal micro called the M6800. -# The ct82 was probably its console terminal. -# - -# (swtp: removed obsolete ":bc=^D:" -- esr) -swtp|ct82|southwest technical products ct82:\ - :am:\ - :co#82:li#20:\ - :al=^^Y:bl=^G:cd=^V:ce=^F:cl=^L:cm=\013%r%.%.:cr=^M:\ - :dc=^^H:dl=^Z:do=^J:ei=:ho=^P:ic=^^X:im=:\ - :is=\034\022\036\023\036\004\035\027\011\023\036\035\036\017\035\027\022\011:\ - :le=^D:ll=^C:nd=^S:se=^^^F:sf=^N:so=^^^V:sr=^O:up=^A: - -#### Synertek -# -# Bob Manson writes (28 Apr 1995): -# -# Synertek used to make ICs, various 6502-based single-board process -# control and hobbyist computers, and assorted peripherals including a -# series of small inexpensive terminals (I think they were one of the -# first to have a "terminal-on-a-keyboard", where the terminal itself -# was only slightly larger than the keyboard). -# -# They apparently had a KTM-1 model, which I've never seen. The KTM-2/40 -# was a 40x24 terminal that could connect to a standard TV through a -# video modulator. The KTM-2/80 was the 80-column version (the 2/40 -# could be upgraded to the 2/80 by adding 2 2114 SRAMs and a new ROM). -# I have a KTM-2/80 still in working order. The KTM-2s had fully -# socketed parts, used 2 6507s, a 6532 as keyboard scanner, a program -# ROM and 2 ROMs as character generators. They were incredibly simple, -# and I've never had any problems with mine (witness the fact that mine -# was made in 1981 and is still working great... I've blown the video -# output transistor a couple of times, but it's a 2N2222 :-) -# -# The KTM-3 (which is what is listed in the terminfo file) was their -# attempt at putting a KTM-2 in a box (and some models came with a -# CRT). It wasn't much different from the KTM-2 hardware-wise, but the -# control and escape sequences are very different. The KTM-3 was always -# real broken, at least according to the folks I've talked to about it. -# -# The padding in the entry is probably off--these terminals were very -# slow (it takes like 100ms for the KTM-2 to clear the screen...) And -# anyone with any sanity replaced the ROMs with something that provided -# a reasonable subset of VT100 functionality, since the usual ROMs were -# obviously very primitive... oh, you could get an upgraded ROM from -# Synertek for some incredible amount of money, but what hacker with an -# EPROM burner would do that? :) -# -# Sorry I don't have any contact info; I believe they were located in -# Sunnyvale, and I'm fairly sure they are still manufacturing ICs -# (they've gone to ASICs and FPGAs), but I doubt they're in the computer -# business these days. - -# Tested, seems to work fine with vi. -synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal:\ - :am:\ - :co#80:li#24:\ - :cd=\EJ:ce=\EK:cl=^Z:cm=\E=%+ %+ :le=^H:nd=^L:up=^K: - -#### Tab Office Products -# -# TAB Products Co. - Palo Alto, California -# Electronic Office Products, -# 1451 California Avenue 94304 -# -# I think they're out of business. -# - -# The tab 132 uses xon/xoff, so no padding needed. -# :ks:/:ke: have nothing to do with arrow keys. -# :is: sets 80 col mode, normal video, autowrap on (for :am:). -# Seems to be no way to get rid of status line. -# The manual for this puppy was dated June 1981. It claims to be VT52- -# compatible. -tab132|tab|tab132-15|tab 132/15:\ - :da:db:\ - :co#80:dN@:li#24:lm#96:\ - :al=\E[L:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=^J:\ - :ei=\E[4l:im=\E[4h:is=\E[?7h\E[?3l\E[?5l:kd=\E[B:ke@:\ - :kl=\E[D:ks@:ku=\E[A:tc=vt100: -tab132-w:\ - :co#132:\ - :is=\E[?7h\E[?3h\E[?5l:tc=tab132: -tab132-rv:\ - :is=\E[?7h\E[?3l\E[?5h:tc=tab132: -tab132-w-rv:\ - :is=\E[?7h\E[?3h\E[?5h:tc=tab132-w: - - -#### Teleray -# -# Research Incorporated -# 6425 Flying Cloud Drive -# Eden Prairie, MN 55344 -# Vox: (612)-941-3300 -# -# The Teleray terminals were all discontinued in 1992-93. RI still services -# and repairs these beasts, but no longer manufactures them. The Teleray -# people believe that all the types listed below are very rare now (1995). -# There was a newer line of Telerays (Model 7, Model 20, Model 30, and -# Model 100) that were ANSI-compatible. -# -# Note two things called "teleray". Reorder should move the common one -# to the front if you have either. A dumb teleray with the cursor stuck -# on the bottom and no obvious model number is probably a 3700. -# - -t3700|dumb teleray 3700:\ - :bs:\ - :co#80:li#24:\ - :bl=^G:cl=^L:cr=^M:do=^J:le=^H:sf=^J: -# (t3800: mapped ":pt:" to default tabs -- esr) -t3800|teleray 3800 series:\ - :bs:pt:\ - :co#80:li#24:\ - :bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:do=^J:\ - :ho=\EH:le=^H:ll=\EY7 :nd=\EC:sf=^J:ta=^I:up=^K: -# (t1061: mapped ":pt:" to default tabs -- esr) -t1061|teleray|teleray 1061:\ - :am:km:xs:xt:\ - :co#80:li#24:sg#1:ug#1:\ - :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\014:cm=\EY%+ %+ :\ - :cr=^M:ct=\EG:dc=\EQ:dl=\EM:do=^J:ei=:ho=\EH:ic=\EP:\ - :im=:ip=:\ - :is=\Ee\EU01^Z1\EV\EU02^Z2\EV\EU03^Z3\EV\EU04^Z4\EV\EU05^Z5\EV\EU06^Z6\EV\EU07^Z7\EV\EU08^Z8\EV\Ef:\ - :k1=^Z1:k2=^Z2:k3=^Z3:k4=^Z4:k5=^Z5:k6=^Z6:k7=^Z7:\ - :k8=^Z8:le=^H:nd=\EC:se=\ER@:sf=^J:so= \ERD:st=\EF:\ - :ta=^I:ue=\ER@:up=\EA:us=\ERH: -t1061f|teleray 1061 with fast PROMs:\ - :al=\EL:dl=\EM:ip@:tc=t1061: -# "Teleray Arpa Special", offically designated as -# "Teleray Arpa network model 10" with "Special feature 720". -# This is the new (1981) fast microcode updating the older "arpa" proms -# (which gave meta-key and progmmable-fxn keys). 720 is much much faster, -# converts the keypad to programmable function keys, and has other goodies. -# Standout mode is still broken (magic cookie, etc) so is suppressed as no -# programs handle such lossage properly. -# Note: this is NOT the old termcap's "t1061f with fast proms." -# From: J. Lepreau Tue Feb 1 06:39:37 1983, Univ of Utah -# (t10: mapped ":pt:" to default tabs; -# removed overridden ":so@:se@:us@:ue@:" -- esr) -t10|teleray 10 special:\ - :bs:km:pt:xs:xt:\ - :co#80:li#24:sg#2:ug#1:\ - :al=\EL:cd=\EJ:ce=\EK:cl=30\Ej:cm=\EY%+ %+ :dc=\EQ:\ - :dl=\EM:ei=:ho=\EH:ic=\EP:im=:nd=\EC:pc=\200:se=\ER@:\ - :sf=\Eq:so=\ERD:sr=\Ep:ue=\ER@:up=\EA:us=\ERH: -# teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and -# back/forth words. Put the function keys (f1-f10) where they can be -# found, and turn off the other magic keys along the top row, except -# for line/local. Do the magic appropriate to make the page shifts work. -# Also toggle ^S/^Q for those of us who use Emacs. -t16|teleray 16:\ - :am:da:db:mi:xs:xt:\ - :co#80:li#24:\ - :al=\E[L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\ - :cm=%i\E[%d;%df:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:\ - :ei=\E[4l:ho=\E[H:im=\E[4h:k1=^Z1:k2=^Z2:k3=^Z3:\ - :k4=^Z4:k5=^Z5:k6=^Z6:k7=^Z7:k8=^Z8:k9=^Z9:k;=^Z0:\ - :le=^H:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\E[T:ta=^I:\ - :te=\E[V\E[24;1f\E[?38h:ti=\E[U\E[?38l:ue=\E[m:\ - :up=\E[A:us=\E[4m: - -#### Texas Instruments (ti) -# - -ti700|ti733|ti735|ti silent 700:\ - :bs:hc:os:\ - :co#80:dC#162:\ - :bl=^G:cr=\r:do=^J:le=^H:sf=^J: -ti743|ti745|ti silent 745:\ - :bs:hc:os:\ - :co#80:\ - :bl=^G:cr=^M:do=^J:le=^H:sf=^J: -ti800|ti omni 800:\ - :bs:hc:os:\ - :co#132:\ - :bl=^G:cr=^M:do=^J:le=^H:sf=^J: -ti924|Texas Instruments 924 VDT 8859/1 7 bit CTRL:\ - :am:xo:\ - :co#80:it#8:li#24:\ - :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\ - :cm=%i\E[%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:\ - :dl=\E[M:do=\E[B:ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:\ - :k4=\EOS:k5=\E[16~:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ - :k9=\E[20~:kD=\E[P:kI=\E[@:kb=^H:kd=\E[B:kl=\E[D:\ - :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0m:\ - :mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=\ED:\ - :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:\ - :us=\E[4m:ve=\E[?25h:vi=\E[?25l:vs=\E[?31h: -ti924-8|Texas Instruments 924 VDT 8859/1 8 bit CTRL:\ - :am:xo:\ - :co#80:it#8:li#24:\ - :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\ - :cm=%i\E[%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:\ - :dl=\E[M:do=\E[B:ho=\E[H:k1=P\217>:k2=Q\217>:\ - :k3=R\217>:k4=S\217>:k5=~\23316>:k6=~\23317>:\ - :k7=~\23318>:k8=~\23319>:k9=~\23320>:kD=P\233>:\ - :kI=@\233>:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:\ - :le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0m:mr=\E[7m:nd=\E[C:\ - :rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:\ - :ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:\ - :vi=\E[?25l:vs=\E[?31h: -ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode:\ - :co#132:\ - :tc=ti924: -ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode:\ - :co#132:\ - :tc=ti924-8: -em931-9|Texas Instruments 924 Emulator in the 931 Mode:\ - :tc=ti931: -em924|Texas Instruments 924 Emulator in the 924 Mode:\ - :tc=ti924: -em931|Texas Instruments 931 Emulator:\ - :tc=ti931: -ti931|Texas Instruments 931 VDT:\ - :am:xo:\ - :co#80:li#24:\ - :LE=ENTR:al=\EN:bl=^G:cd=\EJ:ce=\EI:cl=\EL:\ - :cm=\EY%+ %+ :cr=^M:dc=\EQ:dl=\EO:do=\EB:ei=:ho=\EH:\ - :ic=\ER\EP\EM:im=:is=\EGB\E(@B@@\E):k1=\Ei1:k2=\Ei2:\ - :k3=\Ei3:k4=\Ei4:k5=\Ei5:k6=\Ei6:k7=\Ei7:k8=\Ei8:\ - :k9=\Ei9:kA=\EN:kD=\EQ:kI=\EP:kL=\EO:kd=\EB:kl=\ED:\ - :kr=\EC:ku=\EA:le=\ED:mb=\E4P:me=\E4@:mk=\E4H:\ - :mr=\E4B:nd=\EC:se=\E4@:sf=\Ea:so=\E4A:sr=\Eb:\ - :ue=\E4@:up=\EA:us=\E4D:ve=\E4@: -ti926|Texas Instruments 926 VDT 8859/1 7 bit CTRL:\ - :cs@:sf=\E[1S:sr=\E[1T:tc=ti924: -ti926-8|Texas Instruments 926 VDT 8859/1 8 bit CTRL:\ - :cs@:sf=S\2331>:sr=T\2331>:tc=ti924-8: -ti_ansi|basic entry for ti928:\ - :am:eo:ut:xn:xo:\ - :Co#8:co#80:it#8:li#25:pa#64:\ - :@7=\E[F:Sb=\E[4%dm:Sf=\E[3%dm:al=\E[L:bl=^G:bt=\E[Z:\ - :cd=\E[J:ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:\ - :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ - :ic=\E[@:im=:k0=\E[V:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:\ - :k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:kN=\E[G:\ - :kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\ - :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:nd=\E[C:\ - :op=\E[37;40m:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:\ - :ue=\E[m:up=\E[A:us=\E[4m: -# -# 928 VDT 7 bit control mode -# -ti928|Texas Instruments 928 VDT 8859/1 7 bit CTRL::\ - :%9=\E[35~:@7=\E_1\E\\:@8=\E[8~:F1=\E[29~:F2=\E[31~:\ - :F3=\E[32~:F5=\E[34~:k1=\E[17~:k2=\E[18~:k3=\E[19~:\ - :k4=\E[20~:k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:\ - :k9=\E[26~:k;=\E[28~:kD=\E[P:kI=\E[@:kN=\E[S:kP=\E[T:tc=ti_ansi: -# -# 928 VDT 8 bit control mode -# -ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL::\ - :%9=\23335~:@7=\2371\234:@8=\2338~:F1=\23329~:\ - :F2=\23331~:F3=\23332~:F5=\23334~:k1=\23317~:\ - :k2=\23318~:k3=\23319~:k4=\23320~:k5=\23321~:\ - :k6=\23323~:k7=\23324~:k8=\23325~:k9=\23326~:\ - :k;=\23328~:kD=\233P:kI=\233@:kN=\233S:kP=\233T:\ - :kh=\233H:tc=ti_ansi: - -#### Zentec (zen) -# - -# (zen30: removed obsolete ":ma=^L ^R^L^K^P:" -- esr) -zen30|z30|zentec 30:\ - :am:bs:mi:ul:\ - :co#80:li#24:\ - :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :\ - :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:le=^H:\ - :nd=^L:se=\EG0:sf=^J:so=\EG6:up=^K: -# (zen50: this had unknown capabilities -# :BS=^U:CL=^V:CR=^B: -# UK/DK/RK/LK/HM were someone's aliases for ku/kd/kl/kr/kh, -# which were also in the original entry -- esr) -# (zen50: removed obsolete ":ma=^Hh^Ll^Jj^Kk:" -- esr) -zen50|z50|zentec zephyr:\ - :am:bs:\ - :co#80:li#24:sg#1:\ - :al=\EE:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :dc=\EW:\ - :dl=\ER:ei=:ic=\EQ:im=:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:\ - :se=\EGO:so=\EG4:up=^K: - -######## OTHER OBSOLETE TYPES -# -# These terminals are *long* dead -- these entries are retained for -# historical interest only. - -#### Obsolete non-ANSI software emulations -# - -# CTRM terminal emulator -# 1. underlining is not allowed with colors: first, is is simulated by -# black on white, second, it disables background color manipulations. -# 2. BLINKING, REVERSE and BOLD are allowed with colors, -# so we have to save their status in the static registers A, B and H -# respectively, to be able to restore them when color changes -# (because any color change turns off ALL attributes) -# 3. "enter_bold_mode" and "enter_reverse_mode" sequences alternates modes, -# rather then simply entering them. Thus we have to check the -# static register B and H to determine the status, before sending the -# escape sequence. -# 4. sgr0 now must set the status of all 3 register (A,B,H) to zero -# and then reset colors -# 5. implementation of the protect mode would badly penalize the performance. -# we would have to use \E&bn sequence to turn off colors (as well as all -# other attributes), and keep the status of protect mode in yet another -# static variable. If someone really need this mode, they would have to -# create another terminfo entry. -# 6. original color-pair is white on black. -# store the information about colors into static registers -# 7. set foreground color. it performs the following steps. -# 1) turn off all attributes -# 2) turn on the background and video attribues that have been turned -# on before (this information is stored in static registers X,Y,Z,A,B,H,D). -# 3) turn on foreground attributes -# 4) store information about foreground into U,V,W static registers -# 8. turn on background: similar to turn on foreground above -ctrm|C terminal emulator:\ - :am:ut:xo:\ - :Co#8:NC#2:Nl#0:co#80:lh#0:li#24:lm#0:lw#0:pa#63:\ - :pb#19200:vt#6:\ - :..Sb=\E&bn\n%?%gA%t\E&dA%;\n%?%gB%t\E&dB%;\n%?%gH%t\E&dH%;\n%?%gU%t\E&bR%;\n%?%gV%t\E&bG%;\n%?%gW%t\E&bB%;\n\n%?%p1%{1}%&%t\E&bb%{1}%e%{0}%;%PZ\n%?%p1%{2}%&%t\E&bg%{1}%e%{0}%;%PY\n%?%p1%{4}%&%t\E&br%{1}%e%{0}%;%PX:\ - :..Sf=\E&bn\n%?%gA%t\E&dA%;\n%?%gB%t\E&dB%;\n%?%gH%t\E&dH%;\n%?%gX%t\E&br%;\n%?%gY%t\E&bg%;\n%?%gZ%t\E&bb%;\n\n%?%p1%{1}%&%t\E&bB%{1}%e%{0}%;%PW\n%?%p1%{2}%&%t\E&bG%{1}%e%{0}%;%PV\n%?%p1%{4}%&%t\E&bR%{1}%e%{0}%;%PU:\ - :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\ - :cl=\EH\EJ:cm=\E&a%r%dc%dY:cr=^M:ct=\E3:cv=\E&a%dY:\ - :dc=\EP:dl=\EM:do=^J:ei=\ER:im=\EQ:ip=:is=\E&jA\r:\ - :k1=\Ep\r:k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:\ - :k6=\Eu\r:k7=\Ev\r:k8=\Ew\r:kb=^H:kd=\Ew\r:ke=\E&jA:\ - :kh=\Ep\r:kl=\Eu\r:kr=\Ev\r:ks=\E&jB:ku=\Et\r:le=^H:\ - :mb=\E&dA%{1}%PA:md=%?%gH%{0}%=%t\E&dH%{1}%PH%;:\ - :me=\E&d@%{0}%PA%{0}%PB%{0}%PH:\ - :mr=%?%gB%{0}%=%t\E&dB%{1}%PB%;:nd=\EC:\ - :op=\E&bn\E&bB\E&bG\E&bR\n%{0}%PX%{0}%PY%{0}%PZ\n%{1}%PW%{1}%PV%{1}%PU:\ - :..sa=\E&d@%{0}%PA%{0}%PB%{0}%PD%{0}%PH\n%?%p1%p3%p5%|%|%t\E&dB%{1}%PB%;\n%?%p4%t\E&dA%{1}%PA%;\n%?%p6%t\E&dH%{1}%PH%;\n%?%p2%t\E&dD%;:\ - :sf=^J:so=\E&dD:st=\E1:ta=\011:up=\EA:us=\E&dD: - -# gs6300 - can't use blue foreground, it clashes with underline; -# it's simulated with cyan -gs6300|emots|AT&T PC6300 with EMOTS Terminal Emulator:\ - :am:ms:ut:xo:\ - :Co#8:co#80:it#8:li#24:pa#63:\ - :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ - :LE=\E[%dD:LF=\E|:RI=\E[%dC:Sb=\E[?;%dm:\ - :..Sf=\E[?%?%p1%{0}%=%t0\n%e%p1%{1}%=%t2\n%e%p1%{1}%-%d%;m:\ - :UP=\E[%dA:\ - :ac=\\\054\\\054..--++``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ - :do=^J:ei=:ho=\E[H:ic=\E[@:im=:is=\E[0m:k1=\E[0s:\ - :k2=\E[24s:k3=\E[1s:k4=\E[23s:k5=\E[2s:k6=\E[22s:\ - :k7=\E[3s:k8=\E[21s:kB=^R^I:kb=^H:kd=\E[B:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\ - :me=\E[m\E[10m:mr=\E[7m:nd=\E[C:op=\E[?;m:pf=\E[4i:\ - :po=\E[5i:r1=\Ec:sf=^J:so=\E[1m:sr=\E[L:ta=^I:\ - :up=\E[A:us=\E[4m: - -# From: 29 Oct 85 05:40:18 GMT -# MS-Kermit with Heath-19 emulation mode enabled -# (h19k: changed ":pt@:" to ":it@" -h19k|h19kermit|heathkit emulation provided by Kermit (no auto margin):\ - :am@:da:db:xt:\ - :it@:\ - :ta@:tc=h19-u: - -# pc52 - can't use blue foreground, it clashes with underline; -# it's simulated with cyan -# bold means: white on black bold, so it not allowed with colors -# rev means: black on white, also not allowed -# smso and dim are simulated with colors, ditto -# smul is allowed, even though it always means white foreground: -# it is too important to leave out. -pc52|dec vt52 for PC:\ - :am:ms:ut:\ - :Co#8:NC#53:co#80:it#8:li#25:pa#63:\ - :Sb=\Ec%d:..Sf=\Eb%?%p1%{1}%=%t3\n%e%p1%d%;:al=\EL:\ - :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\ - :dl=\EM:do=^J:k1=\Ea:k2=\Eb:k3=\Ec:k4=\Ed:k5=\Ee:\ - :k6=\Ef:k7=\Eg:k8=\Eh:k9=\Ei:k;=\Ej:kb=^H:kd=\ED:\ - :kl=\EL:kr=\ER:ku=\EU:le=^H:mb=\Eo:md=\Ebo\Ec0:\ - :me=\Eb7\Ec0\Et:mh=\Eb3\Ec0:mr=\Ep:nd=\EC:\ - :op=\Eb7\Ec0:se=\Eb7\Ec0:sf=^J:so=\Eb6\Ec4:sr=\EI:\ - :ta=^I:up=\EA:us=\Es: - -# vs100 emulator using tsim -# From: -# (vs100t: had Al/Dl in front of obvious AL/DL capabilities; -# also mapped ":pt:" to default tabs -- esr) -vs100t|tsim|vs100-tsim:\ - :am:bs:pt:\ - :co#80:li#24:\ - :AL=\E+%+ :DL=\E-%+ :al=\EI:cd=\EQ:ce=\EL:cl=\EE:\ - :cm=\EM%+ %+ :cs=\ES%+ %+ :dc=\Ed:dl=\ED:do=^J:ei=:\ - :ho=\EH:ic=\Ei:im=:is=\ER:nd=\En:rs=\ER:se=\Er:\ - :so=\Eh:ue=\Ev:up=^K:us=\Eu: - -# From: Rick Thomas -xtalk|IBM PC with xtalk communication program (versions up to 3.4):\ - :am:mi:ms:xo:\ - :co#80:it#8:li#24:sg#1:vt#3:\ - :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:\ - :K5=\EOn:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dl=\E[M:\ - :do=^J:eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:\ - :k3=\EOR:k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:\ - :k9=\EOw:k;=\EOx:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ - :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:nd=\E[C:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:se=\E[m :sf=^J:\ - :so=\E[7m :sr=\EM:st=\EH:ta=^I:up=\E[A: - -# YTERM standard version 1.0. -# Straight old ascii keyboard except function keys are Yale (e.g.,ASCII.KBD). -# Only 80 tab columns (else yterm 1.1 bug). No :xn: in 1.0. -# Cannot use termcap :sr=\EM: because vi will not work, too bad. -# vi string is given so that yterm is reset each vi startup. -# (yterm10: removed obsolete ":EP:" and ":ma=h^Jj k lH:" capabilities; -# mapped ":pt:" to default tabs -- esr) -# From: greg small 9-25-84 -yterm10|yterm 1.0 UCB ascii.kbd:\ - :am:bs:pt:\ - :co#80:li#24:\ - :cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :ho=^Y:\ - :is=\017\E[7i\E[m\E[?7h\E[?3g\r\EHY0 for \EHYTERM 1.\EH0 with A\EHSCII.KBD\EH 9-13-84\EH \EH \EH \EH \EH\n:\ - :k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:\ - :k7=\E7:k8=\E8:k9=\E9:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:\ - :nd=^\:rc=\E8:sc=\E7:se=\E[m:so=\E[7m:ue=\E[m:up=^_:\ - :us=\E[4m:\ - :vs=\017\E[7i\E[m\E[?7h\E[?3g\r\EHY0 \EH \EH \EH \EH \EH \EH \EH \EH \EH\r: -# YTERM variant version 1.1. Version 1.1 has :xn:. -# From: greg small 9-13-84 -yterm11|yterm 1.1 UCB ascii.kbd:\ - :xn:\ - :is=\017\E[7i\E[m\E[?7h\E[?3g\r\EHY1 for \EHYTERM 1.\EH1 with A\EHSCII.KBD\EH 9-13-84\EH \EH \EH \EH \EH\n:tc=yterm10: -# YTERM 1.0 variant no autowrap or tabs -# X does not remember autowrap or tabs when T is deleted and restarted. -# (yterm: changed ":pt@:" to ":it@:" -- esr) -yterm10nat|yterm 1.0 UCB ascii.kbd no autowrap or tabs:\ - :am@:\ - :it@:\ - :is=\017\E[7i\E[m\E[?7l\E[?3g\rY2 for YTERM 1.0 with ASCII.KBD 9-20-84 no autowrap or tabs\n:\ - :vs=\017\E[7i\E[m\E[?7l\E[?3g\rY2\r:tc=yterm10: - -# The official PC terminal emulator program of the AT&T Product Centers. -# Note - insert mode commented out - doesn't seem to work on AT&T PC. -simterm|attpc running simterm:\ - :am:\ - :co#80:li#24:\ - :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\E=%+ %+ :\ - :cr=^M:dc=\ER:dl=\EM:do=\EB:ho=\EH:im=\EQ:le=^H:\ - :nd=\EC:sf=^J:so=\E&dB:te=\EVE:ti=\EVS:up=\EA: - -#### Daisy wheel printers -# - -# This section collects Diablo, DTC, Xerox, Qume, and other daisy -# wheel terminals. These are now largely obsolete. -# -# This is an "experimental" entry for the SRI Agiles. -# It has been tried in a minimal way -- the Agile did not blow up! -# However, it has not been exhaustively tested. -# Anyone who tries it and finds it wanting should get in touch with: -# From: Ralph Keirstead -# EK352; SRI International; 333 Ravenswood Avenue; Menlo Park, CA 94025 -# (agile: I removed an incorrect ":pl:" -- esr) -agile|agiles|sri agiles:\ - :hc:os:\ - :co#132:\ - :bl=^G:cr=^M:ct=\E2:do=^J:hd=\E9:hu=\E0:is=\EE\EF\EJ:\ - :kb=^H:le=^H:sf=^J:st=\E1:ta=^I:up=\E^J: -# (1620: mapped ":pt:" to default tabs -- esr) -diablo1620|diablo1720|diablo450|ipsi|diablo 1620:\ - :bs:hc:os:pt:\ - :co#132:\ - :ch=\E\011%i%.:ct=\E2:do=^J:hd=\ED:hu=\EU:\ - :if=/usr/share/tabset/xerox1720:kb=^H:le=^H:st=\E1:\ - :up=\E^J: -diablo1620-m8|diablo1640-m8|diablo 1620 w/8 column left margin:\ - :co#124:\ - :do=^J:is=\r \E9:tc=diablo1620: -diablo1640|diablo1730|diablo1740|diablo630|x1700|diablo|xerox|diablo 1640:\ - :bl=^G:if=/usr/share/tabset/xerox1730:se=\E&:so=\EW:\ - :ue=\ER:us=\EE:tc=diablo1620: -diablo1640-lm|diablo-lm|xerox-lm|diablo 1640 with indented left margin:\ - :co#124:\ - :if=/usr/share/tabset/xerox1730-lm:se=\E&:so=\EW:\ - :ue=\ER:us=\EE:tc=diablo1620: -diablo1740-lm|630-lm|1730-lm|x1700-lm:\ - :tc=diablo1640-lm: -# DTC 382 with VDU. Has no :cd: so we fake it with :ce:. Standout -# (so="^P \002^PF:") works but won't go away without dynamite (":se=^P \200:"). -# The terminal has tabs, but I'm getting tired of fighting the braindamage. -# If no tab is set or the terminal's in a bad mood, it glitches the screen -# around all of memory. Note that return puts a blank ("a return character") -# in the space the cursor was at, so we use ^P return (and thus ^P newline for -# newline). Note also that if you turn off pt and let Unix expand tabs, -# curses won't work (current version) because it doesn't turn off this bit, -# and cursor addressing sends a tab for row/column 9. What a losing terminal! -# I have been unable to get tabs set in all 96 lines - it always leaves at -# least one line with no tabs in it, and once you tab through that line, -# it completely weirds out. -dtc382|DTC 382:\ - :am:da:db:xs:\ - :co#80:li#24:lm#96:\ - :al=^P^Z:bl=^G:cd=\020\025\020\023\020\023:ce=^P^U:\ - :cl=\020\035:cm=\020\021%r%.%.:cr=^P^M:dc=^X:dl=^P^S:\ - :ei=^Pi:ho=^P^R:im=^PI:le=^H:nd=^PR:pc=\177:sf=^J:\ - :te=\020\035:ue=^P \200:up=^P^L:us=^P ^P:ve=^Pb:\ - :vs=^PB: -dtc300s|DTC 300s:\ - :hc:os:\ - :co#132:\ - :bl=^G:cr=^M:ct=\E3:do=^J:ff=^L:hd=\Eh:hu=\EH:kb=^H:\ - :le=^H:sf=^J:st=\E1:ta=^I:up=^Z: -gsi:\ - :hc:os:\ - :co#132:\ - :bl=^G:cr=^M:do=^J:hd=\Eh:hu=\EH:le=^H:sf=^J:ta=^I:\ - :up=^Z: -aj830|aj832|aj|anderson jacobson:\ - :bs:hc:os:\ - :bl=^G:cr=^M:do=^J:hd=\E9:hu=\E8:le=^H:sf=^J:up=\E7: -# From: Chris Torek Thu, 7 Nov 85 18:21:58 EST -aj510|AJ510|Anderson-Jacobson model 510:\ - :am:bs:mi:\ - :co#80:li#24:\ - :al=2*\E&I:cd=\E'P:ce=\E'L:cl=^L:cm=\E#%+ %+ :\ - :dc=.1*\E'D:dl=2*\E&D:ei=\E'J:ic=:im=\E'I:ip=.1*:\ - :kd=\EZ:kl=\EW:kr=\EX:ku=\EY:nd=\EX:pc=\177:se=\E"I:\ - :so=\E"I:te=\E"N:ti=\E"N:ue=\E"U:up=\EY:us=\E"U: -# From: Thu Aug 20 09:09:18 1981 -# This is incomplete, but it's a start. -# (5520: mapped ":pt:" to default tabs -- esr) -nec5520|nec|spinwriter|nec 5520:\ - :bs:hc:os:pt:\ - :co#132:\ - :bl=^G:cr=^M:ct=\E3:do=^J:ff=^L:hd=\E]s\n\E]W:\ - :hu=\E]s\E9\E]W:kb=^H:le=^H:sf=^J:st=\E1:ta=^I:\ - :up=\E9: -# (qume5: mapped ":pt:" to default tabs -- esr) -qume5|qume|Qume Sprint 5:\ - :bs:hc:os:pt:\ - :co#80:\ - :bl=^G:cr=^M:ct=\E3:do=^J:ff=^L:hd=\Eh:hu=\EH:kb=^H:\ - :le=^H:sf=^J:st=\E1:ta=^I:up=^Z: -# I suspect the xerox1720 is the same as the diablo 1620. -# (x1720: mapped ":pt:" to default tabs -- esr) -xerox1720|x1720|x1750|xerox 1720:\ - :bs:hc:os:pt:\ - :co#132:\ - :bl=^G:cr=^M:ct=\E2:do=^J:ff=^L:le=^H:sf=^J:st=\E1:\ - :ta=^I: - -#### Miscellaneous obsolete terminals, manufacturers unknown -# -# If you have any information about these (like, a manufacturer's name, -# and a date on the serial-number plate) please send it! - -cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars:\ - :am:bs:\ - :co#73:li#36:\ - :cl=^Z:ho=^^:nd=^L:up=^K: -cad68-2|cgc2|cad68 basic monitor transparent mode size 2 chars:\ - :am:bs:\ - :co#85:li#39:\ - :cl=^Z:ho=^^:k1=\E5:k2=\E6:k3=\E7:k4=\E8:kd=\E2:\ - :kl=\E3:kr=\E4:ku=\E1:nd=^L:se=\Em^C:so=\Em^L:up=^K: -cdi|cdi1203:\ - :am:bs:hc:os:\ - :co#80:\ - :bl=^G:cr=\r:do=^J:le=^H:sf=^J: -cops10|cops|cops-10:\ - :am:bw:\ - :co#80:li#24:\ - :bl=^G:cd=^W:ce=^V:cl=30^X:cm=\020%+ %+ :cr=^M:do=^J:\ - :kb=^H:kd=^J:kh=^Y:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:\ - :sf=^J:up=^K: -# (d132: removed duplicate ":ic=\E5:" -- esr) -d132|datagraphix|datagraphix 132a:\ - :da:db:in:\ - :co#80:li#30:\ - :al=\E3:bl=^G:cl=^L:cr=^M:dc=\E6:do=^J:ei=:ho=\Et:\ - :ic=\E5:im=:nd=\El:sf=\Ev:sr=\Ew:up=\Ek:ve=\Em\En:\ - :vs=\Ex: -# I'm told the d800 was an early portable terminal that looked a lot like the -# original Compaq portable. -# (d800: mapped ":pt:" to default tabs -- esr) -d800|Direct 800/A:\ - :am:bs:da:db:ms:pt:xs:\ - :co#80:li#24:\ - :ae=\E[0m:as=\E[1m:bl=^G:cd=\E[J:ce=\E[K:\ - :cl=\E[1;1H\E[2J:cm=\E[%i%d;%dH:cr=^M:do=^J:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:\ - :k8=\EOW:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ - :nd=\E[C:se=\E[0m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:\ - :ue=\E[0m:up=\E[A:us=\E[4m:ve=\E[>12h:vs=\E[>12l: -digilog|digilog 333:\ - :bs:\ - :co#80:li#16:\ - :bl=^G:ce=^X:cr=^M:do=^J:ho=^N:le=^H:nd=^I:sf=^J:\ - :up=^O: -env230|envision230|envision 230 graphics terminal:\ - :am:mi:ms:xo:\ - :co#80:it#8:li#24:vt#3:\ - :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:\ - :K5=\EOn:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ - :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ - :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ - :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ - :ct=\E[3g:do=^J:eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:\ - :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:\ - :k8=\EOl:k9=\EOw:k;=\EOx:kb=^H:kd=\EOB:ke=\E[?1l\E>:\ - :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ - :md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:pf=\E[4i:\ - :po=\E[5i:ps=\E[0i:\ - :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ - :..sa=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ - :sc=\E7:se=\E[0m<2>:sf=^J:so=\E[1m<2>:sr=\EM:st=\EH:\ - :ta=^I:ue=\E[m:up=\E[A:us=\E[4m: -# These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic -# coupler attached, the whole rig fitting in a suitcase and more or less -# portable. Hot stuff for c.1977 :-) -- esr -ep48|ep4080|execuport 4080:\ - :am:bs:os:\ - :co#80:\ - :bl=^G:cr=^M:do=^J:hd=^\:hu=^^:le=^H:sf=^J: -ep40|ep4000|execuport 4000:\ - :am:bs:os:\ - :co#136:\ - :bl=^G:cr=^M:do=^J:hd=^\:hu=^^:le=^H:sf=^J: -# From: Paul Leondis -ifmr|Informer D304:\ - :am:bs:\ - :co#80:li#24:\ - :cd=\E/:ce=\EQ:cl=\EZ:cm=\EY%r%+ %+ :dc=\E\\:do=^J:\ - :ei=:ho=\EH:ic=\E[:im=:nd=\EC:se=\EK:so=\EJ:sr=\En:\ - :up=\EA: -# This used to say "de#001202" which presumably refers to the stty bits -# that need to be set for some version of Unix. We need the real delay -# requirements in MS. -mw2|Multiwriter 2:\ - :hc:os:\ - :co#132:\ - :bl=^G:cr=^M:do=^J:sf=^J: -# Entry largely based on wy60 and has the features of wy60ak. -opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys +:\ - :am:bw:hs:km:mi:ms:ul:xo:\ - :Nl#8:co#80:lh#1:li#24:lw#8:ws#80:\ - :#2=\E{:%9=\EP:&3=\Er:@7=\E[F:@8=\E7:F1=^AJ\r:\ - :F2=^AK\r:F3=^AL\r:F4=^AM\r:F5=^AN\r:F6=^AO\r:\ - :LF=\EA11:LO=\EA10:RA=\Ed.:RX=\Ec20:SA=\Ed/:SX=\Ec21:\ - :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:al=\EE:\ - :as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E*:\ - :cm=\Ea%i%dR%dC:cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:\ - :ds=\Ez(\r:ei=\Er:fs=^M:ho=\036:\ - :if=/usr/lib/tabset/std:im=\Eq:ip=:\ - :is=\E`\072\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\Ezz&\E[A\037\Ezz'\E[B\037\Ezz(\E[D\037\Ezz)\E[C\037\Ezz<\E[Q\037\Ezz`\E[F\037\EA1*\EZH12:\ - :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ - :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:\ - :kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:\ - :kS=\EY:kb=^H:kd=\E[B:kh=^^:kl=\E[D:kr=\E[C:ku=\E[A:\ - :le=^H:mb=\EG2:me=\E(\EH\003\EG0\EcD:mh=\EGp:mk=\EG1:\ - :mp=\E):mr=\EG4:nd=^L:nw=\r\n:pf=^T:pl=\EZ2%+?%s\177:\ - :pn=\Ez%+/%s\r:po=^R:ps=\EP:px=\EZ1%+?%s\177:\ - :r1=\E~!\E~4:r2=\EeF:r3=\EwG\Ee(:\ - :..sa=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%'0'%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c:\ - :se=\EG0:sf=^J:so=\EG4:sr=\Ej:st=\E1:ta=\011:\ - :ti=\Ezz&\E[A\037\Ezz'\E[B\037\Ezz(\E[D\037\Ezz)\E[C\037\Ezz<\E[Q\037:\ - :ts=\Ez(:uc=\EG8%p1%c\EG0:ue=\EG0:up=^K:us=\EG8:\ - :ve=\E`1:vi=\E`0: -# (ps300: changed ":pt@:" to "it@" -- esr) -ps300|Picture System 300:\ - :xt:\ - :it@:\ - :se@:so@:ue@:us@:tc=vt100: -ramtek|ramtek 6000:\ - :am:\ - :co#78:li#24:\ - :bl=^G:cl=[alpha]\n[erase]\n:cr=^M:do=^J:le=^H:sf=^J: -# Upper case terminal, uses lower case for control sequences!!! -tec400|tec scope:\ - :sg#1:\ - :al=e:cd=s:ce=c:cl=f:..cm=l%p2%~%c%p1%~%c:dc=t:dl=u:\ - :do=h:ei=:ho=i:ic=d:im=:le=w:nd=g:se=|:so={:up=x: -# From: Mon Sep 21 21:15:45 1981 -# This entry has been tested. -tec500|tec 500:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cl=\032:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:le=^H:\ - :nd=^L:se=^\:sf=^J:so=^]:up=^K: -# tec is untested, and taken from CB/Unix virtual terminal driver. -# I would appreciate more information on this terminal, such as the -# manufacturer and the model number. There are too many tecs in here. -# (tec: removed obsolete ":ma=^K^P^_ :" -- esr) -tec:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cl=^L:cr=^M:do=^J:ho=^^:le=^H:nd=^_:sf=^J:\ - :up=^K: -teletec|Teletec Datascreen:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cl=^L:cr=^M:do=^J:ho=^^:le=^H:nd=^_:sf=^J:\ - :up=^K: -# Terak made a PDP-11 based box with a bitmapped display that ran UCSD -# Pascal as the native O/S. It was quite a nice box, and there were several -# at Berkeley. -terak|Terak emulating Datamedia 1520:\ - :tc=dm1520: -# From: Mark Dornfeld -# This termcap is for the LANPAR Technologies VISION 3220 -# terminal. The function key definitions k0-k5 represent the -# edit keypad: FIND, INSERT HERE, REMOVE, SELECT, PREV SCREEN, -# NEXT SCREEN. The key definitions k6-k9 represent the PF1 to -# PF4 keys. -# (v3220: mapped ":pt:" to default tabs, removed obsolete ":kn#10:" -- esr) -v3220|LANPAR Vision II model 3220/3221/3222:\ - :am:bs:mi:pt:xn:\ - :co#80:li#24:\ - :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ - :dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:\ - :is=\E>\E[?3l\E[?7h\E[?8h\E[p:k0=\E[1~:k1=\E[2~:\ - :k2=\E[3~:k3=\E[4~:k4=\E[5~:k5=\E[6~:k6=\E[OP:\ - :k7=\E[OQ:k8=\E[OR:k9=\E[OS:kd=\E[B:ke=\E>:kh=\E[H:\ - :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:nd=\E[C:se=\E[m:\ - :so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m: -# Does anybody know where these "wind" terminals came from? -wind:\ - :bs:\ - :co#80:li#24:\ - :cl=\EnP(\Eo:cm=\Ep%r%.%.:ho=\Ep\200\200:k1=\E5:\ - :k2=\E6:k3=\E7:k4=\E8:kd=\E2:kl=\E3:kr=\E4:ku=\E1:\ - :nd=^L:nl=^]:se=\Em^C:so=\Em^L:up=^K: -wind16:\ - :bs:\ - :co#80:li#16:\ - :cl=\EnP\020\Eo:cm=\Ep%r%.%.:ho=\Ep\200\200:nd=^L:\ - :nl=^]:se=\Em^C:so=\Em^L:up=^K: -wind40:\ - :bs:\ - :co#80:li#40:\ - :cl=\EnP(\Eo:cm=\Ep%r%.%.:ho=\Ep\200\200:nd=^L:nl=^]:\ - :se=\Em^C:so=\Em^L:up=^K: -# (wind50: corrected :cl=\EnP\128\062\Eo: -- esr) -wind50:\ - :bs:\ - :co#88:li#50:\ - :cl=\EnP2\Eo:cm=\Ep%r%.%.:ho=\Ep\200\200:k1=\E5:\ - :k2=\E6:k3=\E7:k4=\E8:kd=\E2:kl=\E3:kr=\E4:ku=\E1:\ - :nd=^L:nl=^]:se=\Em^C:so=\Em^L:up=^K: -# (xitex: removed obsolete ":ma=j^Jk^Pl :" -- esr) -xitex|xitex sct-100:\ - :bs:\ - :co#64:li#16:\ - :bl=^G:cd=\006\005:ce=\005:cl=\014:cm=\E=%+@%+@:\ - :cr=^M:do=^J:ho=^D:le=^H:nd=\E+@A:sf=^J:sr=\E=@@\013:\ - :up=^K: -plasma|plasma panel:\ - :am:bs:\ - :co#85:li#45:\ - :bl=^G:cl=^L:cr=^M:do=^J:ho=^^:le=^H:nd=^X:sf=^J:\ - :up=^V: - -#### Homebrew and custom terminals -# - -# Nu machine parameters taken from mit-vax. -# smc - 5/21/85 -# -nuterminal:\ - :am:mi:ms:\ - :co#80:it#8:li#24:\ - :ae=\EG:al=1*\EL:as=\EF:cd=60\EJ:ce=10\EK:cl=60\EE:\ - :..cm=\EY%+ %+ :cr=^M:dc=2.5*\EN:dl=1*\EM:do=\EB:\ - :ei=\EO:ho=\EH:im=\E@:ip=2.5*:k1=\ES:k2=\ET:k3=\EU:\ - :k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:kb=^H:kd=\EB:\ - :kh=\EH:kl=\ED:kr=\EC:ku=\EA:l6=blue:l7=red:l8=white:\ - :le=^H:nd=\EC:nw=^M^J:se=\Eq:sf=^J:so=\Ep:sr=\EI:\ - :ta=^I:up=\EA:ve=\Ey4:vs=\Ex4: -nu24|nuwindow:\ - :mi:ms:\ - :co#86:it#8:li#24:\ - :ae=\EG:al=1*\EL:as=\EF:cd=\EJ:ce=\EK:cl=\EE:\ - :..cm=\EY%+ %+ :cr=^M:dl=1*\EM:do=\EB:ei=\EO:ho=\EH:\ - :im=\E@:ip=2.5*:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\ - :ku=\EA:le=^H:nd=\EC:nw=^M^J:se=\Eq:sf=^J:so=\Ep:\ - :sr=\EI:ta=^I:up=\EA:ve=\Ey4:vs=\Ex4: -bnu|nu51|bnuwindow:\ - :co#86:li#51:\ - :tc=nuterminal: -fnu|nu61|fnuwindow:\ - :co#86:li#61:\ - :tc=nuterminal: -nunix-30|nu-telnet-30|nu-half -- Half nu screen thru telnet:\ - :am:\ - :co#78:it#8:li#30:\ - :al=\EL:cd=\EJ:ce=\EK:cl=\EE:..cm=\EY%+ %+ :cr=^M:\ - :dl=\EM:do=\EB:ho=\EH:ip=2.5*:kb=^H:kd=^J:kl=^H:\ - :le=^H:nd=\EC:nw=^M^J:se=\Eq:sf=^J:so=\Ep:sr=\EI:\ - :ta=^I:up=\EA: -nunix-61|nu-telnet-61|nu-full| Full nu screen thru telnet:\ - :co#78:li#61:\ - :tc=nunix-30: - -bch|bc|bill croft homebrew:\ - :am:bs:\ - :co#96:li#72:\ - :cl=^Z:cm=\E=%+ %+ :do=^J:ho=^^:le=^H:nd=^L:up=^K:\ - :vb=: -nucterm|rayterm|NUC homebrew:\ - :am:bs:\ - :co#80:li#24:\ - :bl=^G:cd=^E:ce=^A:cl=\014:cr=^M:do=^J:ho=^B:le=^H:\ - :ll=^K:nd=^C:sf=^J:up=^N: -carlock|klc:\ - :am:bs:\ - :co#80:li#24:\ - :al=^E:bl=^G:ce=^U:cl=\032:cm=\E=%+ %+ :cr=^M:\ - :dc=\177:dl=^D:do=^J:ei=^T:ho=^^:im=^T:nd=^L:se=^V:\ - :sf=^J:so=^V:up=^K:vb=\EV\EV: -# uVAX -qdss|qdcons|qdss glass tty:\ - :am:bs:\ - :co#128:li#57:\ - :cl=1\032:cm=\E=%.%.:do=^J:le=^H:nd=^L:up=^K: -# (ubell: removed obsolete ":ma=j^Jk^P^K^Pl :"; -# mapped ":pt:" to default tabs; removed obsolete ":bc=^Y:" -- esr) -ubell|ubellchar:\ - :am:bs:pt:\ - :co#80:li#24:\ - :bl=^G:ce=\Ed:cl=^Z:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:\ - :le=^H:nd=^L:sf=^J:ta=^I:up=^K: -ttywilliams:\ - :am:\ - :co#80:li#12:\ - :bl=^G:ce=^_:cl=^^:cr=^M:do=^K:ho=^]:le=^Y:nd=^X:\ - :sf=^J:up=^Z: -######## ICH/ICH1 VERSUS RMIR/SMIR -# -# Some non-curses applications get confused if both ich/ich1 and rmir/smir -# are present; the symptom is doubled characters in an update using insert. -# These applications are technically correct; in both 4.3BSD termcap and -# terminfo, you're not actually supposed to specify both ich/ich1 and rmir/smir -# unless the terminal needs both. This requirement is now rare; most ich -# sequences do not require previous smir, and most smir insert modes do not -# require ich1 before each character. -# -# For ncurses-based applications this is not a problem, as ncurses uses -# one or the other as appropriate but never mixes the two. Therefore we -# have not corrected entries like `linux' and `xterm' that specify both. -# If you see doubled characters from these, use the linux-nic and xterm-nic -# entries that suppress ich/ich1. -# -######## ANSI/VT100/PC-TERM TERMINAL STANDARDS -# -# ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals -# -# Most of the content of this comment is adapted from a table prepared by -# Richard Shuford, based on a 1984 Byte article. Terminfo correspondences -# and discussion of some terminfo-related issues have been added. -# -# The table is a complete list of the defined ANSI X.364 control sequences. -# In the main table, \E stands for an escape (\033) character, SPC for space. -# Pn stands for a single numeric parameter to be inserted in decimal ASCII. -# Ps stands for a list of such parameters separated by semicolons -# -# Default Type -# Sequence Sequence Parameter or -# Mnemonic Name Sequence Value Mode terminfo -# ----------------------------------------------------------------------------- -# APC Applicatn Program Command \E Fe - Delim - -# CBT Cursor Backward Tab \E [ Pn Z 1 eF cbt -# CCH Cancel Previous Character \E T - - - -# CHA Cursor Horzntal Absolute \E [ Pn G 1 eF hpa (1) -# CHT Cursor Horizontal Tab \E [ Pn I 1 eF tab (2) -# CNL Cursor Next Line \E [ Pn E 1 eF nel (3) -# CPL Cursor Preceding Line \E [ Pn F 1 eF - -# CPR Cursor Position Report \E [ Pn ; Pn R 1, 1 - - -# CSI Control Sequence Intro \E [ - Intro - -# CTC Cursor Tab Control \E [ Ps W 0 eF - -# CUB Cursor Backward \E [ Pn D 1 eF cub -# CUD Cursor Down \E [ Pn B 1 eF cud -# CUF Cursor Forward \E [ Pn C 1 eF cuf -# CUP Cursor Position \E [ Pn ; Pn H 1, 1 eF cup (4) -# CUU Cursor Up \E [ Pn A 1 eF cuu -# CVT Cursor Vertical Tab \E [ Pn Y - eF - -# DA Device Attributes \E [ Pn c 0 - - -# DAQ Define Area Qualification \E [ Ps o 0 - - -# DCH Delete Character \E [ Pn P 1 eF dch -# DCS Device Control String \E P - Delim - -# DL Delete Line \E [ Pn M 1 eF dl -# DMI Disable Manual Input \E \ - Fs - -# DSR Device Status Report \E [ Ps n 0 - - -# EA Erase in Area \E [ Ps O 0 eF - -# ECH Erase Character \E [ Pn X 1 eF ech -# ED Erase in Display \E [ Ps J 0 eF ed (5) -# EF Erase in Field \E [ Ps N 0 eF - -# EL Erase in Line \E [ Ps K 0 eF el (5) -# EMI Enable Manual Input \E b Fs - -# EPA End of Protected Area \E W - - - -# ESA End of Selected Area \E G - - - -# FNT Font Selection \E [ Pn ; Pn SPC D 0, 0 FE - -# GSM Graphic Size Modify \E [ Pn ; Pn SPC B 100, 100 FE - -# GSS Graphic Size Selection \E [ Pn SPC C none FE - -# HPA Horz Position Absolute \E [ Pn ` 1 FE (1) -# HPR Horz Position Relative \E [ Pn a 1 FE (6) -# HTJ Horz Tab w/Justification \E I - FE (2) -# HTS Horizontal Tab Set \E H - FE hts -# HVP Horz & Vertical Position \E [ Pn ; Pn f 1, 1 FE (4) -# ICH Insert Character \E [ Pn @ 1 eF ich -# IL Insert Line \E [ Pn L 1 eF il -# IND Index \E D - FE - -# INT Interrupt \E a - Fs - -# JFY Justify \E [ Ps SPC F 0 FE - -# MC Media Copy \E [ Ps i 0 - - -# MW Message Waiting \E U - - - -# NEL Next Line \E E - FE nel (3) -# NP Next Page \E [ Pn U 1 eF - -# OSC Operating System Command \E ] - Delim - -# PLD Partial Line Down \E K - FE - -# PLU Partial Line Up \E L - FE - -# PM Privacy Message \E ^ - Delim - -# PP Preceding Page \E [ Pn V 1 eF - -# PU1 Private Use 1 \E Q - - - -# PU2 Private Use 2 \E R - - - -# QUAD Typographic Quadding \E [ Ps SPC H 0 FE - -# REP Repeat Char or Control \E [ Pn b 1 - rep -# RI Reverse Index \E M - FE - -# RIS Reset to Initial State \E c - Fs - -# RM Reset Mode \E [ Ps l none - - -# SD Scroll Down \E [ Pn T 1 eF rin -# SEM Select Edit Extent Mode \E [ Ps Q 0 - - -# SGR Select Graphic Rendition \E [ Ps m 0 FE sgr (7) -# SL Scroll Left \E [ Pn SPC @ 1 eF - -# SM Select Mode \E [ Ps h none - - -# SPA Start of Protected Area \E V - - - -# SPI Spacing Increment \E [ Pn ; Pn SPC G none FE - -# SR Scroll Right \E [ Pn SPC A 1 eF - -# SS2 Single Shift 2 (G2 set) \E N - Intro - -# SS3 Single Shift 3 (G3 set) \E O - Intro - -# SSA Start of Selected Area \E F - - - -# ST String Terminator \E \ - Delim - -# STS Set Transmit State \E S - - - -# SU Scroll Up \E [ Pn S 1 eF indn -# TBC Tab Clear \E [ Ps g 0 FE tbc -# TSS Thin Space Specification \E [ Pn SC E none FE - -# VPA Vert Position Absolute \E [ Pn d 1 FE vpa -# VPR Vert Position Relative \E [ Pn e 1 FE (8) -# VTS Vertical Tabulation Set \E J - FE - -# -# --------------------------------------------------------------------------- -# -# Notes: -# -# (1) There seems to be some confusion abroad between CHA and HPA. Most -# `ANSI' terminals accept the CHA sequence, not the HPA. but terminfo calls -# the capability (hpa). -# -# (2) CHT corresponds to terminfo (tab). Usually it has the value ^I. -# Occasionally (as on, for example, certain HP terminals) this has the HTJ -# value. -# -# (3) terminfo (nel) is usually \r\n rather than ANSI \EE. -# -# (4) CUP and HVP are identical in effect. Some ANSI.SYS versions accept -# HVP, but always allow CUP as an alternate. -# -# (5) See the VT100 discussion for the meaning of the ED parameter. -# -# (6) Some ANSI.SYS versions accept HPR, but more commonly `ANSI' terminals -# use CUF for this function and ignore HPR -# -# (7) In SGR, the ANSI.SYS values for attributes are now nearly universal. -# -# (8) Some ANSI.SYS versions accept VPR, but more commonly `ANSI' terminals -# use CUD for this function and ignore VPR. -# -# --------------------------------------------------------------------------- -# -# Abbreviations: -# -# Intro an Introducer of some kind of defined sequence; the normal 7-bit -# X3.64 Control Sequence Introducer is the two characters "Escape [" -# -# Delim a Delimiter -# -# x/y identifies a character by position in the ASCII table (column/row) -# -# eF editor function (see explanation) -# -# FE format effector (see explanation) -# -# F is a Final character in -# an Escape sequence (F from 3/0 to 7/14 in the ASCII table) -# a control sequence (F from 4/0 to 7/14) -# -# Gs is a graphic character appearing in strings (Gs ranges from -# 2/0 to 7/14) in the ASCII table -# -# Ce is a control represented as a single bit combination in the C1 set -# of controls in an 8-bit character set -# -# C0 the familiar set of 7-bit ASCII control characters -# -# C1 roughly, the set of control characters available only in 8-bit systems. -# This is too complicated to explain fully here, so read Jim Fleming's -# article in the February 1983 BYTE, especially pages 214 through 224. -# -# Fe is a Final character of a 2-character Escape sequence that has an -# equivalent representation in an 8-bit environment as a Ce-type -# (Fe ranges from 4/0 to 5/15) -# -# Fs is a Final character of a 2-character Escape sequence that is -# standardized internationally with identical representation in 7-bit -# and 8-bit environments and is independent of the currently -# designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14) -# -# I is an Intermediate character from 2/0 to 2/15 (inclusive) in the -# ASCII table -# -# P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII -# table -# -# Pn is a numeric parameter in a control sequence, a string of zero or -# more characters ranging from 3/0 to 3/9 in the ASCII table -# -# Ps is a variable number of selective parameters in a control sequence -# with each selective parameter separated from the other by the code -# 3/11 (which usually represents a semicolon); Ps ranges from -# 3/0 to 3/9 and includes 3/11 -# -# Format Effectors versus Editor Functions -# -# A format effector specifies how following output is to be displayed. -# An editor function allows you to modify the display. Informally -# format effectors may be destructive; format effectors should not be. -# -# For instance, a format effector that moves the "active position" (the -# cursor or equivalent) one space to the left would be useful when you want to -# create an overstrike, a compound character made of two standard characters -# overlaid. Control-H, the Backspace character, is actually supposed to be a -# format effector, so you can do this. But many systems use it in a -# nonstandard fashion, as an editor function, deleting the character to the -# left of the cursor and moving the cursor left. When Control-H is assumed to -# be an editor function, you cannot predict whether its use will create an -# overstrike unless you also know whether the output device is in an "insert -# mode" or an "overwrite mode". When Control-H is used as a format effector, -# its effect can always be predicted. The familiar characters carriage -# return, linefeed, formfeed, etc., are defined as format effectors. -# -# The ANSI Standard -# -# The complete document describing the standard, "ANSI X3.64-1979: -# Additional Controls for Use with the American National Standard -# Code for Information Interchange," can be ordered for $13.50 (plus -# $4 postage) from -# -# Standards Sales Department -# American National Standards Institute -# 1430 Broadway -# New York, NY 10018 -# 212/354-3300 -# -# It's best to read the full standard before using it. It also helps -# to have copies of the related standards "X3.4-1977: American -# National Standard Code for Information Interchange" (the ASCII -# standard) and "X3.41.1974: Code-Extension Techniques for Use with -# the 7-Bit Coded Character Set of American National Standard for -# Information Interchange." -# -# NOTES ON THE DEC VT100 IMPLEMENTATION -# -# Control sequences implemented in the VT100 are as follows: -# -# CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND, -# LNM, NEL, RI, RIS, RM, SGR, SM, TBC -# -# plus several private DEC commands. -# -# Erasing parts of the display (EL and ED) in the VT100 is performed thus: -# -# Erase from cursor to end of line Esc [ 0 K or Esc [ K -# Erase from beginning of line to cursor Esc [ 1 K -# Erase line containing cursor Esc [ 2 K -# Erase from cursor to end of screen Esc [ 0 J or Esc [ J -# Erase from beginning of screen to cursor Esc [ 1 J -# Erase entire screen Esc [ 2 J -# -# The VT100 responds to receiving the DA (Device Attributes) control -# -# Esc [ c (or Esc [ 0 c) -# -# by transmitting the sequence -# -# Esc [ ? l ; Ps c -# -# where Ps is a character that describes installed options. -# -# The VT100's cursor location can be read with the DSR (Device Status -# Report) control -# -# Esc [ 6 n -# -# The VT100 reports by transmitting the CPR sequence -# -# Esc [ Pl ; Pc R -# -# where Pl is the line number and Pc is the column number (in decimal). -# -# The specification for the DEC VT100 is document EK-VT100-UG-003. -# -# NOTES ON `PC-TERM' COMPATIBILITY -# -# The MS-DOS ANSI.SYS driver has set the de-facto standard for attribute -# and color values in the SGR string. These are as follows: -# -# 0 all attributes off -# 1 foreground bright -# 4 underscore on -# 5 blink on/background bright (not reliable with brown) -# 7 reverse-video -# 8 set blank (non-display) -# 10 set primary font -# 11 set first alternate font (on PCs, display ROM characters 1-31) -# 12 set second alternate font (on PCs, display IBM high-half chars) -# -# Color attribute sets -# 3n set foreground color / 0=black, 1=red, 2=green, 3=brown, -# 4n set background color \ 4=blue, 5=magenta, 6=cyan, 7=white -# Bright black becomes gray. Bright brown becomes yellow, -# -# * Many VGA cards (such as the Paradise and compatibles) do the wrong thing -# when you try to set a "bright brown" (yellow) background with attribute -# 5 (you get a blinking yellow foreground instead). A few displays -# (including the System V console) support an attribute 6 that undoes this -# braindamage. -# -# * Some older versions of ANSI.SYS have a bug that causes thems to require -# ESC [ Pn k as EL rather than the ANSI ESC [ Pn K. - -######## NONSTANDARD CAPABILITY TRANSLATIONS USED IN THIS FILE -# -# The historical termcap file entries were written primarily in 4.4BSD termcap. -# The 4.4BSD termcap set was substantially larger than the original 4.1BSD set, -# with the extension names chosen for compatibility with the termcap names -# assigned in System V terminfo. There are some variant extension sets out -# there. We try to describe them here. -# -# XENIX extensions: -# -# The XENIX extensions include a set of function-key capabilities as follows: -# -# code XENIX variable name terminfo name name clashes? -# ---- ------------------- ------------- ----------------------- -# CL key_char_left -# CR key_char_right -# CW key_change_window create_window -# EN key_end kend -# HM key_home khome -# HP ?? -# LD key_delete_line kdl1 -# LF key_linefeed label_off -# NU key_next_unlocked_cell -# PD key_page_down knp -# PL ?? -# PN start_print mc5 -# PR ?? -# PS stop_print mc4 -# PU key_page_up kpp pulse -# RC key_recalc remove_clock -# RF key_toggle_ref req_for_input -# RT key_return kent -# UP key_up_arrow kcuu1 parm_up_cursor -# WL key_word_left -# WR key_word_right -# -# The XENIX extensions also include the following character-set and highlight -# capabilities: -# -# XENIX terminfo function -# ----- -------- ------------------------------ -# GS smacs start alternate character set -# GE rmacs end alternate character set -# GG :as:/:ae: glitch (analogous to :sg:/:ug:) -# bo blink begin blink (not used in /etc/termcap) -# be end blink (not used in /etc/termcap) -# bb blink glitch (not used in /etc/termcap) -# it dim begin dim (not used in /etc/termcap) -# ie end dim (not used in /etc/termcap) -# ig dim glitch (not used in /etc/termcap) -# -# XENIX also supposedly uses the following forms-drawing capabilities: -# -# single double type -# ------ ------ ------------- -# gv GV vertical line (|) -# gh GH horizontal line (-) -# g1 G1 top right corner -# g4 G4 bottom right corner (_|) -# g2 G2 top left corner -# g3 G3 bottom left corner (|_) -# gd GD down-tick character (T) -# gl GL left-tick character (-|) -# gr GR right-tick character (|-) -# gc GC middle intersection (-|-) -# gu GU up-tick character (_|_) -# -# However, there is some confusion about case. The scoansi entry uses -# mixed-case versions of these, and the historical ibmpcx, lisa, trs16, and fos -# entries have only the uppercase versions. Accordingly, the ncurses tools -# don't try to translate these. -# -# AT&T Extensions: -# -# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of -# nonstandard capabilities. Its signature is the KM capability, used to name -# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this -# set. Comments in the original, and a little cross-checking with other AT&T -# documentation, seem to establish that BO=:mr: (start reverse video), DS=:mh: -# (start dim), XS=:mk: (secure/invisible mode), EE=:me: (end highlights), -# FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make -# cursor invisible), and CV=:ve: (make cursor normal). -# -# TC Extensions: -# -# There is a set of extended termcaps associated with something -# called the "Terminal Control" or TC package created by MainStream Systems, -# Winfield Kansas. This one also uses GS/GE for as/ae, and also uses -# CF for civis and CO for cvvis. Finally, they define a boolean :ct: -# that flags color terminals. - -######## CHANGE HISTORY -# -# 9.1.0 (Wed Feb 1 04:50:32 EST 1995): -# * First terminfo master translated from 8.3. -# 9.2.0 (Wed Feb 1 12:21:45 EST 1995): -# * Replaced Wyse entries with updated entries supplied by vendor. -# 9.3.0 (Mon Feb 6 19:14:40 EST 1995): -# * Added contact & status info from G. Clark Brown . -# 9.3.1 (Tue Feb 7 12:00:24 EST 1995): -# * Better XENIX keycap translation. Describe TC termcaps. -# * Contact and history info supplied by Qume. -# 9.3.2 (Sat Feb 11 23:40:02 EST 1995): -# * Raided the Shufort FTP site for recent termcaps/terminfos. -# * Added information on X3.64 and VT100 standard escape sequences. -# 9.3.3 (Mon Feb 13 12:26:15 EST 1995): -# * Added a correct X11R6 xterm entry. -# * Fixed terminfo translations of padding. -# 9.3.4 (Wed Feb 22 19:27:34 EST 1995): -# * Added correct acsc/smacs/rmacs strings for vt100 and xterm. -# * Added u6/u7/u8/u9 capabilities. -# * Added PCVT entry. -# 9.3.5 (Thu Feb 23 09:37:12 EST 1995): -# * Emacs uses :so:, not :mr:, for its mode line. Fix linux entry -# to use reverse-video standout so Emacs will look right. -# * Added el1 capability to ansi. -# * Added smacs/rmacs to ansi.sys. -# 9.4.0 (Sat Feb 25 16:43:25 EST 1995): -# * New mt70 entry. -# * Added COPYRIGHTS AND OTHER DELUSIONS. -# * Added AT&T 23xx & 500/513, vt220 and vt420, opus3n1+, netronics -# smartvid & smarterm, ampex 175 & 219 & 232, -# env230, falco ts100, fluke, intertube, superbrain, ncr7901, vic20, -# ozzie, trs200, tr600, Tandy & Texas Instruments VDTs, intext2, -# screwpoint, fviewpoint, Contel Business Systems, Datamedia Colorscan, -# adm36, mime314, ergo4000, ca22851. Replaced att7300, esprit, dd5500. -# * Replaced the Perkin-Elmer entries with vendor's official ones. -# * Restored the old minimal-ansi entry, luna needs it. -# * Fixed some incorrect ip and proportional-padding translations. -# 9.4.1 (Mon Feb 27 14:18:33 EST 1995): -# * Fix linux & AT386 sgr strings to do A_ALTCHARSET turnoff correctly. -# * Make the xterm entry 65 lines again; create xterm25 and xterm24 -# to force a particular height. -# * Added beehive4 and reorganized other Harris entries. -# 9.4.2 (Thu Mar 9 01:45:44 EST 1995): -# * Merged in DEC's official entries for its terminals. The only old -# entry I kept was Doug Gwyn's alternate vt100 (as vt100-avo). -# * Replaced the translated BBN Bitgraph entries with purpose-built -# ones from AT&T's SVr3. -# * Replaced the AT&T entries with AT&T's official terminfos. -# * Added teleray 16, vc415, cops10. -# * Merged in many individual capabilities from SCO terminfo files. -# 9.4.3 (Mon Mar 13 02:37:53 EST 1995): -# * Typo fixes. -# * Change linux entry so A_PROTECT enables IBM-PC ROM characters. -# 9.4.4 (Mon Mar 27 12:32:35 EST 1995): -# * Added tty35, Ann Arbor Guru series. vi300 and 550, cg7900, tvi803, -# pt210, ibm3164, IBM System 1, ctrm, Tymshare scanset, dt200, adm21, -# simterm, citoh and variants. -# * Replaced sol entry with sol1 and sol2. -# * Replaced Qume QVT and Freedom-series entries with purpose-built -# terminfo entries. -# * Enhanced vt220, tvi910, tvi924, hpterm, hp2645, adm42, tek -# and dg200 entries using caps from from SCO. -# * Added the usual set of function-key mappings to ANSI entry. -# * Corrected xterm's function-key capabilities. -# 9.4.5 (Tue Mar 28 14:27:49 EST 1995): -# * Fix in xterm entry, cub and cud are not reliable under X11R6. -# 9.4.6 (Thu Mar 30 14:52:15 EST 1995): -# * Fix in xterm entry, get the arrow keys right. -# * Change some \0 escapes to \200. -# 9.4.7 (Tue Apr 4 11:27:11 EDT 1995) -# * Added apple (Videx card), adm1a, oadm31. -# * Fixed malformed ampex csr. -# * Fixed act4, cyb110; they had old-style prefix padding left in. -# * Changed mandatory to advisory padding in many entries. -# * Replaced HP entries up to hpsub with purpose-built ones. -# * Blank rmir/smir/rmdc/smdc capabilities removed. -# * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924. -# 9.4.8 (Fri Apr 7 09:36:34 EDT 199): -# * Replaced the Ann Arbor entries with SCO's, the init strings are -# more efficient (but the entries otherwise identical). -# * Added dg211 from Shuford archive. -# * Added synertek, apple-soroc, ibmpc, pc-venix, pc-coherent, xtalk, -# adm42-nl, pc52, gs6300, xerox820, uts30. -# * Pull SCO's padding into vi200 entry. -# * Improved capabilities for tvi4107 and other Televideo and Viewpoint -# entries merged in from SCO's descriptions. -# * Fixed old-style prefix padding on zen50, h1500. -# * Moved old superbee entry to superbee-xsb, pulled in new superbee -# entry from SCO's description. -# * Reorganized the special entries. -# * Added lm#0 to cbunix and virtual entries. -# -# 9.5.0 (Mon Apr 10 11:30:00 EDT 1995): -# * Restored cdc456tst. -# * Fixed sb1 entry, SCO erroneously left out the xsb glitch. -# * Added megatek, beacon, microkit. -# * Freeze for ncurses-1.9 release. -# -# 9.5.1 (Fri Apr 21 12:46:42 EDT 1995): -# * Added historical data for TAB. -# * Comment fixes from David MacKenzie. -# * Added the new BSDI pc3 entry. -# -# 9.5.2 (Tue Apr 25 17:27:52 EDT 1995) -# * A change in the tic -C logic now ensures that all entries in -# the termcap translation will fit in < 1024 bytes. -# * Added `bobcat' and `gator' HP consoles and the Nu machine entries -# from GNU termcap file. This merges in all their local information. -# -# 9.5.3 (Tue Apr 25 22:28:13 EDT 1995) -# * Changed tic -C logic to dump all capabilities used by GNU termcap. -# * Added warnings about entries with long translations (restoring -# all the GNU termcaps pushes a few over the edge). -# -# 9.5.4 (Wed Apr 26 15:35:09 EDT 1995) -# * Yet another tic change, and a couple of entry tweaks, to reduce the -# number of long (> 1024) termcap translations back to 0. -# -# 9.6.0 (Mon May 1 10:35:54 EDT 1995) -# * Added kf13-kf20 to Linux entry. -# * Regularize Prime terminal names. -# * Historical data on Synertek. -# * Freeze for ncurses-1.9.1. -# -# 9.6.1 (Sat May 6 02:00:52 EDT 1995): -# * Added true xterm-color entry, renamed djm's pseudo-color entry. -# * Eliminate whitespace in short name fields, this tanks some scripts. -# * Name field changes to shorten some long entries. -# * Termcap translation now automatically generates empty rmir/smir -# when ich1/ich is present (copes with an ancient vi bug). -# * Added `screen' entries from FSF's screen-3.6.2. -# * Added linux-nic and xterm-nic entries. -# -# 9.6.2 (Sat May 6 17:00:55 EDT 1995): -# * Change linux entry to use smacs=\E[11m and have an explicit acsc, -# eliminating some special-case code in ncurses. -# -# 9.7.0 (Tue May 9 18:03:12 EDT 1995): -# * Added vt320-k3, rsvidtx from the Emacs termcap.dat file. I think -# that captures everything unique from it. -# * Added reorder script generator. -# * Freeze for ncurses 1.9.2 release. -# -# 9.7.1 (Thu Jun 29 09:35:22 EDT 1995): -# * Added Sean Farley's kspd, flash, rs1 capabilities for linux. -# * Added Olaf Siebert's corrections for adm12. -# * ansi-pc-color now includes the colors and pairs caps, so that -# entries which use it will inherit them automatically. -# * The linux entry can now recognize the center (keypad 5) key. -# * Removed some junk that found its way into Linux acsc. -# -# 9.8.0 (Fri Jul 7 04:46:57 EDT 1995): -# * Add 50% cut mark as a desperate hack to reduce tic's core usage. -# * xterm doesn't try to use application keypad mode any more. -# * Freeze for ncurses-1.9.3 release. -# -# 9.8.1 (Thu Jul 19 17:02:12 EDT 1995): -# * Added corrected sun entry from vendor. -# * Added csr capability to linux entry. -# * Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG. -# * Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators. -# * Some commented-out caps in long entries come back in, my code -# for computing string-table lengths had a bug in it. -# * pcansi series modified to fit comm-program reality better. -# -######## REORDER -# -# Older termcap distributions featured a kluge called `reorder' intended to -# time-optimize access to selected terminals by moving them to the front of -# the file. This is obsolete under terminfo, but for completeness's sake -# we give a reorder script generator here (strip off the leading #s to use). -# -#: mkreorder -- generate script to optimize access to given terminal types -#: -#: entries named on command line will be sorted to the front in reverse order -#echo "ed -- termcap <reorder -# -# The following sets edit modes for GNU EMACS -# Local Variables: -# fill-prefix:"\t" -# fill-column:75 -# End: -######## SHANTIH! SHANTIH! SHANTIH! diff --git a/lib/termcap/grot/termcap.texi b/lib/termcap/grot/termcap.texi deleted file mode 100644 index eab49e88a..000000000 --- a/lib/termcap/grot/termcap.texi +++ /dev/null @@ -1,3617 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@setfilename termcap.info -@settitle The Termcap Library -@smallbook - -@ifinfo -This file documents the termcap library of the GNU system. - -Copyright (C) 1988 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -@ignore -Permission is granted to process this file through TeX and print the -results, provided the printed document carries copying permission -notice identical to this one except for the removal of this paragraph -(this paragraph not being relevant to the printed manual). - -@end ignore -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Foundation. -@end ifinfo - -@setchapternewpage odd - -@c @shorttitlepage The Termcap Manual - -@titlepage -@ignore -@sp 6 -@center @titlefont{Termcap} -@sp 1 -@center The Termcap Library and Data Base -@sp 4 -@center Second Edition -@sp 1 -@center December 1992 -@sp 5 -@center Richard M. Stallman -@sp 1 -@center Free Software Foundation -@end ignore - -@c Real title page -@title The Termcap Manual -@subtitle The Termcap Library and Data Base -@subtitle Second Edition -@subtitle December 1992 -@author Richard M. Stallman -@page -@vskip 0pt plus 1filll -Copyright @copyright{} 1988 Free Software Foundation, Inc. - -Published by the Free Software Foundation -(59 Temple Place, Suite 330, Boston, MA 02111 USA). -Printed copies are available for $10 each. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Foundation. -@sp 2 -Cover art by Etienne Suvasa. -@end titlepage -@page - -@synindex vr fn - -@node Top, Introduction, (dir), (dir) - -@menu -* Introduction:: What is termcap? Why this manual? -* Library:: The termcap library functions. -* Data Base:: What terminal descriptions in @file{/etc/termcap} look like. -* Capabilities:: Definitions of the individual terminal capabilities: - how to write them in descriptions, and how to use - their values to do display updating. -* Summary:: Brief table of capability names and their meanings. -* Var Index:: Index of C functions and variables. -* Cap Index:: Index of termcap capabilities. -* Index:: Concept index. - - --- The Detailed Node Listing --- - -The Termcap Library - -* Preparation:: Preparing to use the termcap library. -* Find:: Finding the description of the terminal being used. -* Interrogate:: Interrogating the description for particular capabilities. -* Initialize:: Initialization for output using termcap. -* Padding:: Outputting padding. -* Parameters:: Encoding parameters such as cursor positions. - -Padding - -* Why Pad:: Explanation of padding. -* Not Enough:: When there is not enough padding. -* Describe Padding:: The data base says how much padding a terminal needs. -* Output Padding:: Using @code{tputs} to output the needed padding. - -Filling In Parameters - -* Encode Parameters:: The language for encoding parameters. -* Using Parameters:: Outputting a string command with parameters. - -Sending Display Commands with Parameters - -* tparam:: The general case, for GNU termcap only. -* tgoto:: The special case of cursor motion. - -The Format of the Data Base - -* Format:: Overall format of a terminal description. -* Capability Format:: Format of capabilities within a description. -* Naming:: Naming conventions for terminal types. -* Inheriting:: Inheriting part of a description from -a related terminal type. -* Changing:: When changes in the data base take effect. - -Definitions of the Terminal Capabilities - -* Basic:: Basic characteristics. -* Screen Size:: Screen size, and what happens when it changes. -* Cursor Motion:: Various ways to move the cursor. -* Wrapping:: What happens if you write a character in the last column. -* Scrolling:: Pushing text up and down on the screen. -* Windows:: Limiting the part of the window that output affects. -* Clearing:: Erasing one or many lines. -* Insdel Line:: Making new blank lines in mid-screen; deleting lines. -* Insdel Char:: Inserting and deleting characters within a line. -* Standout:: Highlighting some of the text. -* Underlining:: Underlining some of the text. -* Cursor Visibility:: Making the cursor more or less easy to spot. -* Bell:: Attracts user's attention; not localized on the screen. -* Keypad:: Recognizing when function keys or arrows are typed. -* Meta Key:: @key{META} acts like an extra shift key. -* Initialization:: Commands used to initialize or reset the terminal. -* Pad Specs:: Info for the kernel on how much padding is needed. -* Status Line:: A status line displays ``background'' information. -* Half-Line:: Moving by half-lines, for superscripts and subscripts. -* Printer:: Controlling auxiliary printers of display terminals. -@end menu - -@node Introduction, Library, Top, Top -@unnumbered Introduction - -@cindex termcap -@dfn{Termcap} is a library and data base that enables programs to use -display terminals in a terminal-independent manner. It originated in -Berkeley Unix. - -The termcap data base describes the capabilities of hundreds of different -display terminals in great detail. Some examples of the information -recorded for a terminal could include how many columns wide it is, what -string to send to move the cursor to an arbitrary position (including how -to encode the row and column numbers), how to scroll the screen up one or -several lines, and how much padding is needed for such a scrolling -operation. - -The termcap library is provided for easy access this data base in programs -that want to do terminal-independent character-based display output. - -This manual describes the GNU version of the termcap library, which has -some extensions over the Unix version. All the extensions are identified -as such, so this manual also tells you how to use the Unix termcap. - -The GNU version of the termcap library is available free as source code, -for use in free programs, and runs on Unix and VMS systems (at least). You -can find it in the GNU Emacs distribution in the files @file{termcap.c} and -@file{tparam.c}. - -This manual was written for the GNU project, whose goal is to develop a -complete free operating system upward-compatible with Unix for user -programs. The project is approximately two thirds complete. For more -information on the GNU project, including the GNU Emacs editor and the -mostly-portable optimizing C compiler, send one dollar to - -@display -Free Software Foundation -675 Mass Ave -Cambridge, MA 02139 -@end display - -@node Library, Data Base, Introduction, Top -@chapter The Termcap Library - -The termcap library is the application programmer's interface to the -termcap data base. It contains functions for the following purposes: - -@itemize @bullet -@item -Finding the description of the user's terminal type (@code{tgetent}). - -@item -Interrogating the description for information on various topics -(@code{tgetnum}, @code{tgetflag}, @code{tgetstr}). - -@item -Computing and performing padding (@code{tputs}). - -@item -Encoding numeric parameters such as cursor positions into the -terminal-specific form required for display commands (@code{tparam}, -@code{tgoto}). -@end itemize - -@menu -* Preparation:: Preparing to use the termcap library. -* Find:: Finding the description of the terminal being used. -* Interrogate:: Interrogating the description for particular capabilities. -* Initialize:: Initialization for output using termcap. -* Padding:: Outputting padding. -* Parameters:: Encoding parameters such as cursor positions. -@end menu - -@node Preparation, Find, , Library -@section Preparing to Use the Termcap Library - -To use the termcap library in a program, you need two kinds of preparation: - -@itemize @bullet -@item -The compiler needs declarations of the functions and variables in the -library. - -On GNU systems, it suffices to include the header file -@file{termcap.h} in each source file that uses these functions and -variables.@refill - -On Unix systems, there is often no such header file. Then you must -explictly declare the variables as external. You can do likewise for -the functions, or let them be implicitly declared and cast their -values from type @code{int} to the appropriate type. - -We illustrate the declarations of the individual termcap library -functions with ANSI C prototypes because they show how to pass the -arguments. If you are not using the GNU C compiler, you probably -cannot use function prototypes, so omit the argument types and names -from your declarations. - -@item -The linker needs to search the library. Usually either -@samp{-ltermcap} or @samp{-ltermlib} as an argument when linking will -do this.@refill -@end itemize - -@node Find, Interrogate, Preparation, Library -@section Finding a Terminal Description: @code{tgetent} - -@findex tgetent -An application program that is going to use termcap must first look up the -description of the terminal type in use. This is done by calling -@code{tgetent}, whose declaration in ANSI Standard C looks like: - -@example -int tgetent (char *@var{buffer}, char *@var{termtype}); -@end example - -@noindent -This function finds the description and remembers it internally so that -you can interrogate it about specific terminal capabilities -(@pxref{Interrogate}). - -The argument @var{termtype} is a string which is the name for the type of -terminal to look up. Usually you would obtain this from the environment -variable @code{TERM} using @code{getenv ("TERM")}. - -If you are using the GNU version of termcap, you can alternatively ask -@code{tgetent} to allocate enough space. Pass a null pointer for -@var{buffer}, and @code{tgetent} itself allocates the storage using -@code{malloc}. There is no way to get the address that was allocated, -and you shouldn't try to free the storage.@refill - -With the Unix version of termcap, you must allocate space for the -description yourself and pass the address of the space as the argument -@var{buffer}. There is no way you can tell how much space is needed, so -the convention is to allocate a buffer 2048 characters long and assume that -is enough. (Formerly the convention was to allocate 1024 characters and -assume that was enough. But one day, for one kind of terminal, that was -not enough.) - -No matter how the space to store the description has been obtained, -termcap records its address internally for use when you later interrogate -the description with @code{tgetnum}, @code{tgetstr} or @code{tgetflag}. If -the buffer was allocated by termcap, it will be freed by termcap too if you -call @code{tgetent} again. If the buffer was provided by you, you must -make sure that its contents remain unchanged for as long as you still plan -to interrogate the description.@refill - -The return value of @code{tgetent} is @minus{}1 if there is some difficulty -accessing the data base of terminal types, 0 if the data base is accessible -but the specified type is not defined in it, and some other value -otherwise. - -Here is how you might use the function @code{tgetent}: - -@smallexample -#ifdef unix -static char term_buffer[2048]; -#else -#define term_buffer 0 -#endif - -init_terminal_data () -@{ - char *termtype = getenv ("TERM"); - int success; - - if (termtype == 0) - fatal ("Specify a terminal type with `setenv TERM '.\n"); - - success = tgetent (term_buffer, termtype); - if (success < 0) - fatal ("Could not access the termcap data base.\n"); - if (success == 0) - fatal ("Terminal type `%s' is not defined.\n", termtype); -@} -@end smallexample - -@noindent -Here we assume the function @code{fatal} prints an error message and exits. - -If the environment variable @code{TERMCAP} is defined, its value is used to -override the terminal type data base. The function @code{tgetent} checks -the value of @code{TERMCAP} automatically. If the value starts with -@samp{/} then it is taken as a file name to use as the data base file, -instead of @file{/etc/termcap} which is the standard data base. If the -value does not start with @samp{/} then it is itself used as the terminal -description, provided that the terminal type @var{termtype} is among the -types it claims to apply to. @xref{Data Base}, for information on the -format of a terminal description.@refill - -@node Interrogate, Initialize, Find, Library -@section Interrogating the Terminal Description - -Each piece of information recorded in a terminal description is called a -@dfn{capability}. Each defined terminal capability has a two-letter code -name and a specific meaning. For example, the number of columns is named -@samp{co}. @xref{Capabilities}, for definitions of all the standard -capability names. - -Once you have found the proper terminal description with @code{tgetent} -(@pxref{Find}), your application program must @dfn{interrogate} it for -various terminal capabilities. You must specify the two-letter code of -the capability whose value you seek. - -Capability values can be numeric, boolean (capability is either present or -absent) or strings. Any particular capability always has the same value -type; for example, @samp{co} always has a numeric value, while @samp{am} -(automatic wrap at margin) is always a flag, and @samp{cm} (cursor motion -command) always has a string value. The documentation of each capability -says which type of value it has.@refill - -There are three functions to use to get the value of a capability, -depending on the type of value the capability has. Here are their -declarations in ANSI C: - -@findex tgetnum -@findex tgetflag -@findex tgetstr -@example -int tgetnum (char *@var{name}); -int tgetflag (char *@var{name}); -char *tgetstr (char *@var{name}, char **@var{area}); -@end example - -@table @code -@item tgetnum -Use @code{tgetnum} to get a capability value that is numeric. The -argument @var{name} is the two-letter code name of the capability. If -the capability is present, @code{tgetnum} returns the numeric value -(which is nonnegative). If the capability is not mentioned in the -terminal description, @code{tgetnum} returns @minus{}1. - -@item tgetflag -Use @code{tgetflag} to get a boolean value. If the capability -@var{name} is present in the terminal description, @code{tgetflag} -returns 1; otherwise, it returns 0. - -@item tgetstr -Use @code{tgetstr} to get a string value. It returns a pointer to a -string which is the capability value, or a null pointer if the -capability is not present in the terminal description. - -There are two ways @code{tgetstr} can find space to store the string value: - -@itemize @bullet -@item -You can ask @code{tgetstr} to allocate the space. Pass a null -pointer for the argument @var{area}, and @code{tgetstr} will use -@code{malloc} to allocate storage big enough for the value. -Termcap will never free this storage or refer to it again; you -should free it when you are finished with it. - -This method is more robust, since there is no need to guess how -much space is needed. But it is supported only by the GNU -termcap library. - -@item -You can provide the space. Provide for the argument @var{area} the -address of a pointer variable of type @code{char *}. Before calling -@code{tgetstr}, initialize the variable to point at available space. -Then @code{tgetstr} will store the string value in that space and will -increment the pointer variable to point after the space that has been -used. You can use the same pointer variable for many calls to -@code{tgetstr}. - -There is no way to determine how much space is needed for a single -string, and no way for you to prevent or handle overflow of the area -you have provided. However, you can be sure that the total size of -all the string values you will obtain from the terminal description is -no greater than the size of the description (unless you get the same -capability twice). You can determine that size with @code{strlen} on -the buffer you provided to @code{tgetent}. See below for an example. - -Providing the space yourself is the only method supported by the Unix -version of termcap. -@end itemize -@end table - -Note that you do not have to specify a terminal type or terminal -description for the interrogation functions. They automatically use the -description found by the most recent call to @code{tgetent}. - -Here is an example of interrogating a terminal description for various -capabilities, with conditionals to select between the Unix and GNU methods -of providing buffer space. - -@example -char *tgetstr (); - -char *cl_string, *cm_string; -int height; -int width; -int auto_wrap; - -char PC; /* For tputs. */ -char *BC; /* For tgoto. */ -char *UP; - -interrogate_terminal () -@{ -#ifdef UNIX - /* Here we assume that an explicit term_buffer - was provided to tgetent. */ - char *buffer - = (char *) malloc (strlen (term_buffer)); -#define BUFFADDR &buffer -#else -#define BUFFADDR 0 -#endif - - char *temp; - - /* Extract information we will use. */ - cl_string = tgetstr ("cl", BUFFADDR); - cm_string = tgetstr ("cm", BUFFADDR); - auto_wrap = tgetflag ("am"); - height = tgetnum ("li"); - width = tgetnum ("co"); - - /* Extract information that termcap functions use. */ - temp = tgetstr ("pc", BUFFADDR); - PC = temp ? *temp : 0; - BC = tgetstr ("le", BUFFADDR); - UP = tgetstr ("up", BUFFADDR); -@} -@end example - -@noindent -@xref{Padding}, for information on the variable @code{PC}. @xref{Using -Parameters}, for information on @code{UP} and @code{BC}. - -@node Initialize, Padding, Interrogate, Library -@section Initialization for Use of Termcap -@cindex terminal flags (kernel) - -Before starting to output commands to a terminal using termcap, -an application program should do two things: - -@itemize @bullet -@item -Initialize various global variables which termcap library output -functions refer to. These include @code{PC} and @code{ospeed} for -padding (@pxref{Output Padding}) and @code{UP} and @code{BC} for -cursor motion (@pxref{tgoto}).@refill - -@item -Tell the kernel to turn off alteration and padding of horizontal-tab -characters sent to the terminal. -@end itemize - -To turn off output processing in Berkeley Unix you would use @code{ioctl} -with code @code{TIOCLSET} to set the bit named @code{LLITOUT}, and clear -the bits @code{ANYDELAY} using @code{TIOCSETN}. In POSIX or System V, you -must clear the bit named @code{OPOST}. Refer to the system documentation -for details.@refill - -If you do not set the terminal flags properly, some older terminals will -not work. This is because their commands may contain the characters that -normally signify newline, carriage return and horizontal tab---characters -which the kernel thinks it ought to modify before output. - -When you change the kernel's terminal flags, you must arrange to restore -them to their normal state when your program exits. This implies that the -program must catch fatal signals such as @code{SIGQUIT} and @code{SIGINT} -and restore the old terminal flags before actually terminating. - -Modern terminals' commands do not use these special characters, so if you -do not care about problems with old terminals, you can leave the kernel's -terminal flags unaltered. - -@node Padding, Parameters, Initialize, Library -@section Padding -@cindex padding - -@dfn{Padding} means outputting null characters following a terminal display -command that takes a long time to execute. The terminal description says -which commands require padding and how much; the function @code{tputs}, -described below, outputs a terminal command while extracting from it the -padding information, and then outputs the padding that is necessary. - -@menu -* Why Pad:: Explanation of padding. -* Not Enough:: When there is not enough padding. -* Describe Padding:: The data base says how much padding a terminal needs. -* Output Padding:: Using @code{tputs} to output the needed padding. -@end menu - -@node Why Pad, Not Enough, , Padding -@subsection Why Pad, and How - -Most types of terminal have commands that take longer to execute than they -do to send over a high-speed line. For example, clearing the screen may -take 20msec once the entire command is received. During that time, on a -9600 bps line, the terminal could receive about 20 additional output -characters while still busy clearing the screen. Every terminal has a -certain amount of buffering capacity to remember output characters that -cannot be processed yet, but too many slow commands in a row can cause the -buffer to fill up. Then any additional output that cannot be processed -immediately will be lost. - -To avoid this problem, we normally follow each display command with enough -useless charaters (usually null characters) to fill up the time that the -display command needs to execute. This does the job if the terminal throws -away null characters without using up space in the buffer (which most -terminals do). If enough padding is used, no output can ever be lost. The -right amount of padding avoids loss of output without slowing down -operation, since the time used to transmit padding is time that nothing -else could be done. - -The number of padding characters needed for an operation depends on the -line speed. In fact, it is proportional to the line speed. A 9600 baud -line transmits about one character per msec, so the clear screen command in -the example above would need about 20 characters of padding. At 1200 baud, -however, only about 3 characters of padding are needed to fill up 20msec. - -@node Not Enough, Describe Padding, Why Pad, Padding -@subsection When There Is Not Enough Padding - -There are several common manifestations of insufficient padding. - -@itemize @bullet -@item -Emacs displays @samp{I-search: ^Q-} at the bottom of the screen. - -This means that the terminal thought its buffer was getting full of -display commands, so it tried to tell the computer to stop sending -any. - -@item -The screen is garbled intermittently, or the details of garbling vary -when you repeat the action. (A garbled screen could be due to a -command which is simply incorrect, or to user option in the terminal -which doesn't match the assumptions of the terminal description, but -this usually leads to reproducible failure.) - -This means that the buffer did get full, and some commands were lost. -Many changeable factors can change which ones are lost. - -@item -Screen is garbled at high output speeds but not at low speeds. -Padding problems nearly always go away at low speeds, usually even at -1200 baud. - -This means that a high enough speed permits commands to arrive faster -than they can be executed. -@end itemize - -Although any obscure command on an obscure terminal might lack padding, -in practice problems arise most often from the clearing commands -@samp{cl} and @samp{cd} (@pxref{Clearing}), the scrolling commands -@samp{sf} and @samp{sr} (@pxref{Scrolling}), and the line insert/delete -commands @samp{al} and @samp{dl} (@pxref{Insdel Line}). - -Occasionally the terminal description fails to define @samp{sf} and some -programs will use @samp{do} instead, so you may get a problem with -@samp{do}. If so, first define @samp{sf} just like @samp{do}, then -add some padding to @samp{sf}. - -The best strategy is to add a lot of padding at first, perhaps 200 msec. -This is much more than enough; in fact, it should cause a visible slowdown. -(If you don't see a slowdown, the change has not taken effect; -@pxref{Changing}.) If this makes the problem go away, you have found the -right place to add padding; now reduce the amount until the problem comes -back, then increase it again. If the problem remains, either it is in some -other capability or it is not a matter of padding at all. - -Keep in mind that on many terminals the correct padding for insert/delete -line or for scrolling is cursor-position dependent. If you get problems -from scrolling a large region of the screen but not from scrolling a small -part (just a few lines moving), it may mean that fixed padding should be -replaced with position-dependent padding. - -@node Describe Padding, Output Padding, Not Enough, Padding -@subsection Specifying Padding in a Terminal Description - -In the terminal description, the amount of padding required by each display -command is recorded as a sequence of digits at the front of the command. -These digits specify the padding time in milliseconds (msec). They can be -followed optionally by a decimal point and one more digit, which is a -number of tenths of msec. - -Sometimes the padding needed by a command depends on the cursor position. -For example, the time taken by an ``insert line'' command is usually -proportional to the number of lines that need to be moved down or cleared. -An asterisk (@samp{*}) following the padding time says that the time -should be multiplied by the number of screen lines affected by the command. - -@example -:al=1.3*\E[L: -@end example - -@noindent -is used to describe the ``insert line'' command for a certain terminal. -The padding required is 1.3 msec per line affected. The command itself is -@samp{@key{ESC} [ L}. - -The padding time specified in this way tells @code{tputs} how many pad -characters to output. @xref{Output Padding}. - -Two special capability values affect padding for all commands. These are -the @samp{pc} and @samp{pb}. The variable @samp{pc} specifies the -character to pad with, and @samp{pb} the speed below which no padding is -needed. The defaults for these variables, a null character and 0, -are correct for most terminals. @xref{Pad Specs}. - -@node Output Padding, , Describe Padding, Padding -@subsection Performing Padding with @code{tputs} -@cindex line speed - -@findex tputs -Use the termcap function @code{tputs} to output a string containing an -optional padding spec of the form described above (@pxref{Describe -Padding}). The function @code{tputs} strips off and decodes the padding -spec, outputs the rest of the string, and then outputs the appropriate -padding. Here is its declaration in ANSI C: - -@example -char PC; -short ospeed; - -int tputs (char *@var{string}, int @var{nlines}, int (*@var{outfun}) ()); -@end example - -Here @var{string} is the string (including padding spec) to be output; -@var{nlines} is the number of lines affected by the operation, which is -used to multiply the amount of padding if the padding spec ends with a -@samp{*}. Finally, @var{outfun} is a function (such as @code{fputchar}) -that is called to output each character. When actually called, -@var{outfun} should expect one argument, a character. - -@vindex ospeed -@vindex PC -The operation of @code{tputs} is controlled by two global variables, -@code{ospeed} and @code{PC}. The value of @code{ospeed} is supposed to be -the terminal output speed, encoded as in the @code{ioctl} system call which -gets the speed information. This is needed to compute the number of -padding characters. The value of @code{PC} is the character used for -padding. - -You are responsible for storing suitable values into these variables before -using @code{tputs}. The value stored into the @code{PC} variable should be -taken from the @samp{pc} capability in the terminal description (@pxref{Pad -Specs}). Store zero in @code{PC} if there is no @samp{pc} -capability.@refill - -The argument @var{nlines} requires some thought. Normally, it should be -the number of lines whose contents will be cleared or moved by the command. -For cursor motion commands, or commands that do editing within one line, -use the value 1. For most commands that affect multiple lines, such as -@samp{al} (insert a line) and @samp{cd} (clear from the cursor to the end -of the screen), @var{nlines} should be the screen height minus the current -vertical position (origin 0). For multiple insert and scroll commands such -as @samp{AL} (insert multiple lines), that same value for @var{nlines} is -correct; the number of lines being inserted is @i{not} correct.@refill - -If a ``scroll window'' feature is used to reduce the number of lines -affected by a command, the value of @var{nlines} should take this into -account. This is because the delay time required depends on how much work -the terminal has to do, and the scroll window feature reduces the work. -@xref{Scrolling}. - -Commands such as @samp{ic} and @samp{dc} (insert or delete characters) are -problematical because the padding needed by these commands is proportional -to the number of characters affected, which is the number of columns from -the cursor to the end of the line. It would be nice to have a way to -specify such a dependence, and there is no need for dependence on vertical -position in these commands, so it is an obvious idea to say that for these -commands @var{nlines} should really be the number of columns affected. -However, the definition of termcap clearly says that @var{nlines} is always -the number of lines affected, even in this case, where it is always 1. It -is not easy to change this rule now, because too many programs and terminal -descriptions have been written to follow it. - -Because @var{nlines} is always 1 for the @samp{ic} and @samp{dc} strings, -there is no reason for them to use @samp{*}, but some of them do. These -should be corrected by deleting the @samp{*}. If, some day, such entries -have disappeared, it may be possible to change to a more useful convention -for the @var{nlines} argument for these operations without breaking any -programs. - -@node Parameters, , Padding, Library -@section Filling In Parameters -@cindex parameters - -Some terminal control strings require numeric @dfn{parameters}. For -example, when you move the cursor, you need to say what horizontal and -vertical positions to move it to. The value of the terminal's @samp{cm} -capability, which says how to move the cursor, cannot simply be a string of -characters; it must say how to express the cursor position numbers and -where to put them within the command. - -The specifications of termcap include conventions as to which string-valued -capabilities require parameters, how many parameters, and what the -parameters mean; for example, it defines the @samp{cm} string to take -two parameters, the vertical and horizontal positions, with 0,0 being the -upper left corner. These conventions are described where the individual -commands are documented. - -Termcap also defines a language used within the capability definition for -specifying how and where to encode the parameters for output. This language -uses character sequences starting with @samp{%}. (This is the same idea as -@code{printf}, but the details are different.) The language for parameter -encoding is described in this section. - -A program that is doing display output calls the functions @code{tparam} or -@code{tgoto} to encode parameters according to the specifications. These -functions produce a string containing the actual commands to be output (as -well a padding spec which must be processed with @code{tputs}; -@pxref{Padding}). - -@menu -* Encode Parameters:: The language for encoding parameters. -* Using Parameters:: Outputting a string command with parameters. -@end menu - -@node Encode Parameters, Using Parameters, , Parameters -@subsection Describing the Encoding -@cindex % - -A terminal command string that requires parameters contains special -character sequences starting with @samp{%} to say how to encode the -parameters. These sequences control the actions of @code{tparam} and -@code{tgoto}. - -The parameters values passed to @code{tparam} or @code{tgoto} are -considered to form a vector. A pointer into this vector determines -the next parameter to be processed. Some of the @samp{%}-sequences -encode one parameter and advance the pointer to the next parameter. -Other @samp{%}-sequences alter the pointer or alter the parameter -values without generating output. - -For example, the @samp{cm} string for a standard ANSI terminal is written -as @samp{\E[%i%d;%dH}. (@samp{\E} stands for @key{ESC}.) @samp{cm} by -convention always requires two parameters, the vertical and horizontal goal -positions, so this string specifies the encoding of two parameters. Here -@samp{%i} increments the two values supplied, and each @samp{%d} encodes -one of the values in decimal. If the cursor position values 20,58 are -encoded with this string, the result is @samp{\E[21;59H}. - -First, here are the @samp{%}-sequences that generate output. Except for -@samp{%%}, each of them encodes one parameter and advances the pointer -to the following parameter. - -@table @samp -@item %% -Output a single @samp{%}. This is the only way to represent a literal -@samp{%} in a terminal command with parameters. @samp{%%} does not -use up a parameter. - -@item %d -As in @code{printf}, output the next parameter in decimal. - -@item %2 -Like @samp{%02d} in @code{printf}: output the next parameter in -decimal, and always use at least two digits. - -@item %3 -Like @samp{%03d} in @code{printf}: output the next parameter in -decimal, and always use at least three digits. Note that @samp{%4} -and so on are @emph{not} defined. - -@item %. -Output the next parameter as a single character whose ASCII code is -the parameter value. Like @samp{%c} in @code{printf}. - -@item %+@var{char} -Add the next parameter to the character @var{char}, and output the -resulting character. For example, @samp{%+ } represents 0 as a space, -1 as @samp{!}, etc. -@end table - -The following @samp{%}-sequences specify alteration of the parameters -(their values, or their order) rather than encoding a parameter for output. -They generate no output; they are used only for their side effects -on the parameters. Also, they do not advance the ``next parameter'' pointer -except as explicitly stated. Only @samp{%i}, @samp{%r} and @samp{%>} are -defined in standard Unix termcap. The others are GNU extensions.@refill - -@table @samp -@item %i -Increment the next two parameters. This is used for terminals that -expect cursor positions in origin 1. For example, @samp{%i%d,%d} would -output two parameters with @samp{1} for 0, @samp{2} for 1, etc. - -@item %r -Interchange the next two parameters. This is used for terminals whose -cursor positioning command expects the horizontal position first. - -@item %s -Skip the next parameter. Do not output anything. - -@item %b -Back up one parameter. The last parameter used will become once again -the next parameter to be output, and the next output command will use -it. Using @samp{%b} more than once, you can back up any number of -parameters, and you can refer to each parameter any number of times. - -@item %>@var{c1}@var{c2} -Conditionally increment the next parameter. Here @var{c1} and -@var{c2} are characters which stand for their ASCII codes as numbers. -If the next parameter is greater than the ASCII code of @var{c1}, the -ASCII code of @var{c2} is added to it.@refill - -@item %a @var{op} @var{type} @var{pos} -Perform arithmetic on the next parameter, do not use it up, and do not -output anything. Here @var{op} specifies the arithmetic operation, -while @var{type} and @var{pos} together specify the other operand. - -Spaces are used above to separate the operands for clarity; the spaces -don't appear in the data base, where this sequence is exactly five -characters long. - -The character @var{op} says what kind of arithmetic operation to -perform. It can be any of these characters: - -@table @samp -@item = -assign a value to the next parameter, ignoring its old value. -The new value comes from the other operand. - -@item + -add the other operand to the next parameter. - -@item - -subtract the other operand from the next parameter. - -@item * -multiply the next parameter by the other operand. - -@item / -divide the next parameter by the other operand. -@end table - -The ``other operand'' may be another parameter's value or a constant; -the character @var{type} says which. It can be: - -@table @samp -@item p -Use another parameter. The character @var{pos} says which -parameter to use. Subtract 64 from its ASCII code to get the -position of the desired parameter relative to this one. Thus, -the character @samp{A} as @var{pos} means the parameter after the -next one; the character @samp{?} means the parameter before the -next one. - -@item c -Use a constant value. The character @var{pos} specifies the -value of the constant. The 0200 bit is cleared out, so that 0200 -can be used to represent zero. -@end table -@end table - -The following @samp{%}-sequences are special purpose hacks to compensate -for the weird designs of obscure terminals. They modify the next parameter -or the next two parameters but do not generate output and do not use up any -parameters. @samp{%m} is a GNU extension; the others are defined in -standard Unix termcap. - -@table @samp -@item %n -Exclusive-or the next parameter with 0140, and likewise the parameter -after next. - -@item %m -Complement all the bits of the next parameter and the parameter after next. - -@item %B -Encode the next parameter in BCD. It alters the value of the -parameter by adding six times the quotient of the parameter by ten. -Here is a C statement that shows how the new value is computed: - -@example -@var{parm} = (@var{parm} / 10) * 16 + @var{parm} % 10; -@end example - -@item %D -Transform the next parameter as needed by Delta Data terminals. -This involves subtracting twice the remainder of the parameter by 16. - -@example -@var{parm} -= 2 * (@var{parm} % 16); -@end example -@end table - -@node Using Parameters, , Encode Parameters, Parameters -@subsection Sending Display Commands with Parameters - -The termcap library functions @code{tparam} and @code{tgoto} serve as the -analog of @code{printf} for terminal string parameters. The newer function -@code{tparam} is a GNU extension, more general but missing from Unix -termcap. The original parameter-encoding function is @code{tgoto}, which -is preferable for cursor motion. - -@menu -* tparam:: The general case, for GNU termcap only. -* tgoto:: The special case of cursor motion. -@end menu - -@node tparam, tgoto, , Using Parameters -@subsubsection @code{tparam} - -@findex tparam -The function @code{tparam} can encode display commands with any number of -parameters and allows you to specify the buffer space. It is the preferred -function for encoding parameters for all but the @samp{cm} capability. Its -ANSI C declaration is as follows: - -@smallexample -char *tparam (char *@var{ctlstring}, char *@var{buffer}, int @var{size}, int @var{parm1},...) -@end smallexample - -The arguments are a control string @var{ctlstring} (the value of a terminal -capability, presumably), an output buffer @var{buffer} and @var{size}, and -any number of integer parameters to be encoded. The effect of -@code{tparam} is to copy the control string into the buffer, encoding -parameters according to the @samp{%} sequences in the control string. - -You describe the output buffer by its address, @var{buffer}, and its size -in bytes, @var{size}. If the buffer is not big enough for the data to be -stored in it, @code{tparam} calls @code{malloc} to get a larger buffer. In -either case, @code{tparam} returns the address of the buffer it ultimately -uses. If the value equals @var{buffer}, your original buffer was used. -Otherwise, a new buffer was allocated, and you must free it after you are -done with printing the results. If you pass zero for @var{size} and -@var{buffer}, @code{tparam} always allocates the space with @code{malloc}. - -All capabilities that require parameters also have the ability to specify -padding, so you should use @code{tputs} to output the string produced by -@code{tparam}. @xref{Padding}. Here is an example. - -@example -@{ -char *buf; -char buffer[40]; - -buf = tparam (command, buffer, 40, parm); -tputs (buf, 1, fputchar); -if (buf != buffer) -free (buf); -@} -@end example - -If a parameter whose value is zero is encoded with @samp{%.}-style -encoding, the result is a null character, which will confuse @code{tputs}. -This would be a serious problem, but luckily @samp{%.} encoding is used -only by a few old models of terminal, and only for the @samp{cm} -capability. To solve the problem, use @code{tgoto} rather than -@code{tparam} to encode the @samp{cm} capability.@refill - -@node tgoto, , tparam, Using Parameters -@subsubsection @code{tgoto} - -@findex tgoto -The special case of cursor motion is handled by @code{tgoto}. There -are two reasons why you might choose to use @code{tgoto}: - -@itemize @bullet -@item -For Unix compatibility, because Unix termcap does not have @code{tparam}. - -@item -For the @samp{cm} capability, since @code{tgoto} has a special feature -to avoid problems with null characters, tabs and newlines on certain old -terminal types that use @samp{%.} encoding for that capability. -@end itemize - -Here is how @code{tgoto} might be declared in ANSI C: - -@example -char *tgoto (char *@var{cstring}, int @var{hpos}, int @var{vpos}) -@end example - -There are three arguments, the terminal description's @samp{cm} string and -the two cursor position numbers; @code{tgoto} computes the parametrized -string in an internal static buffer and returns the address of that buffer. -The next time you use @code{tgoto} the same buffer will be reused. - -@vindex UP -@vindex BC -Parameters encoded with @samp{%.} encoding can generate null characters, -tabs or newlines. These might cause trouble: the null character because -@code{tputs} would think that was the end of the string, the tab because -the kernel or other software might expand it into spaces, and the newline -becaue the kernel might add a carriage-return, or padding characters -normally used for a newline. To prevent such problems, @code{tgoto} is -careful to avoid these characters. Here is how this works: if the target -cursor position value is such as to cause a problem (that is to say, zero, -nine or ten), @code{tgoto} increments it by one, then compensates by -appending a string to move the cursor back or up one position. - -The compensation strings to use for moving back or up are found in global -variables named @code{BC} and @code{UP}. These are actual external C -variables with upper case names; they are declared @code{char *}. It is up -to you to store suitable values in them, normally obtained from the -@samp{le} and @samp{up} terminal capabilities in the terminal description -with @code{tgetstr}. Alternatively, if these two variables are both zero, -the feature of avoiding nulls, tabs and newlines is turned off. - -It is safe to use @code{tgoto} for commands other than @samp{cm} only if -you have stored zero in @code{BC} and @code{UP}. - -Note that @code{tgoto} reverses the order of its operands: the horizontal -position comes before the vertical position in the arguments to -@code{tgoto}, even though the vertical position comes before the horizontal -in the parameters of the @samp{cm} string. If you use @code{tgoto} with a -command such as @samp{AL} that takes one parameter, you must pass the -parameter to @code{tgoto} as the ``vertical position''.@refill - -@node Data Base, Capabilities, Library, Top -@chapter The Format of the Data Base - -The termcap data base of terminal descriptions is stored in the file -@file{/etc/termcap}. It contains terminal descriptions, blank lines, and -comments. - -A terminal description starts with one or more names for the terminal type. -The information in the description is a series of @dfn{capability names} -and values. The capability names have standard meanings -(@pxref{Capabilities}) and their values describe the terminal. - -@menu -* Format:: Overall format of a terminal description. -* Capability Format:: Format of capabilities within a description. -* Naming:: Naming conventions for terminal types. -* Inheriting:: Inheriting part of a description from -a related terminal type. -* Changing:: When changes in the data base take effect. -@end menu - -@node Format, Capability Format, , Data Base -@section Terminal Description Format -@cindex description format - -Aside from comments (lines starting with @samp{#}, which are ignored), each -nonblank line in the termcap data base is a terminal description. -A terminal description is nominally a single line, but it can be split -into multiple lines by inserting the two characters @samp{\ newline}. -This sequence is ignored wherever it appears in a description. - -The preferred way to split the description is between capabilities: insert -the four characters @samp{: \ newline tab} immediately before any colon. -This allows each sub-line to start with some indentation. This works -because, after the @samp{\ newline} are ignored, the result is @samp{: tab -:}; the first colon ends the preceding capability and the second colon -starts the next capability. If you split with @samp{\ newline} alone, you -may not add any indentation after them. - -Here is a real example of a terminal description: - -@example -dw|vt52|DEC vt52:\ - :cr=^M:do=^J:nl=^J:bl=^G:\ - :le=^H:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:\ - :cm=\EY%+ %+ :co#80:li#24:\ - :nd=\EC:ta=^I:pt:sr=\EI:up=\EA:\ - :ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=^H: -@end example - -Each terminal description begins with several names for the terminal type. -The names are separated by @samp{|} characters, and a colon ends the last -name. The first name should be two characters long; it exists only for the -sake of very old Unix systems and is never used in modern systems. The -last name should be a fully verbose name such as ``DEC vt52'' or ``Ann -Arbor Ambassador with 48 lines''. The other names should include whatever -the user ought to be able to specify to get this terminal type, such as -@samp{vt52} or @samp{aaa-48}. @xref{Naming}, for information on how to -choose terminal type names. - -After the terminal type names come the terminal capabilities, separated by -colons and with a colon after the last one. Each capability has a -two-letter name, such as @samp{cm} for ``cursor motion string'' or @samp{li} -for ``number of display lines''. - -@node Capability Format, Naming, Format, Data Base -@section Writing the Capabilities - -There are three kinds of capabilities: flags, numbers, and strings. Each -kind has its own way of being written in the description. Each defined -capability has by convention a particular kind of value; for example, -@samp{li} always has a numeric value and @samp{cm} always a string value. - -A flag capability is thought of as having a boolean value: the value is -true if the capability is present, false if not. When the capability is -present, just write its name between two colons. - -A numeric capability has a value which is a nonnegative number. Write the -capability name, a @samp{#}, and the number, between two colons. For -example, @samp{@dots{}:li#48:@dots{}} is how you specify the @samp{li} -capability for 48 lines.@refill - -A string-valued capability has a value which is a sequence of characters. -Usually these are the characters used to perform some display operation. -Write the capability name, a @samp{=}, and the characters of the value, -between two colons. For example, @samp{@dots{}:cm=\E[%i%d;%dH:@dots{}} is -how the cursor motion command for a standard ANSI terminal would be -specified.@refill - -Special characters in the string value can be expressed using -@samp{\}-escape sequences as in C; in addition, @samp{\E} stands for -@key{ESC}. @samp{^} is also a kind of escape character; @samp{^} followed -by @var{char} stands for the control-equivalent of @var{char}. Thus, -@samp{^a} stands for the character control-a, just like @samp{\001}. -@samp{\} and @samp{^} themselves can be represented as @samp{\\} and -@samp{\^}.@refill - -To include a colon in the string, you must write @samp{\072}. You might -ask, ``Why can't @samp{\:} be used to represent a colon?'' The reason is -that the interrogation functions do not count slashes while looking for a -capability. Even if @samp{:ce=ab\:cd:} were interpreted as giving the -@samp{ce} capability the value @samp{ab:cd}, it would also appear to define -@samp{cd} as a flag. - -The string value will often contain digits at the front to specify padding -(@pxref{Padding}) and/or @samp{%}-sequences within to specify how to encode -parameters (@pxref{Parameters}). Although these things are not to be -output literally to the terminal, they are considered part of the value of -the capability. They are special only when the string value is processed -by @code{tputs}, @code{tparam} or @code{tgoto}. By contrast, @samp{\} and -@samp{^} are considered part of the syntax for specifying the characters -in the string. - -Let's look at the VT52 example again: - -@example -dw|vt52|DEC vt52:\ - :cr=^M:do=^J:nl=^J:bl=^G:\ - :le=^H:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:\ - :cm=\EY%+ %+ :co#80:li#24:\ - :nd=\EC:ta=^I:pt:sr=\EI:up=\EA:\ - :ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=^H: -@end example - -Here we see the numeric-valued capabilities @samp{co} and @samp{li}, the -flags @samp{bs} and @samp{pt}, and many string-valued capabilities. Most -of the strings start with @key{ESC} represented as @samp{\E}. The rest -contain control characters represented using @samp{^}. The meanings of the -individual capabilities are defined elsewhere (@pxref{Capabilities}). - -@node Naming, Inheriting, Capability Format, Data Base -@section Terminal Type Name Conventions -@cindex names of terminal types - -There are conventions for choosing names of terminal types. For one thing, -all letters should be in lower case. The terminal type for a terminal in -its most usual or most fundamental mode of operation should not have a -hyphen in it. - -If the same terminal has other modes of operation which require -different terminal descriptions, these variant descriptions are given -names made by adding suffixes with hyphens. Such alternate descriptions -are used for two reasons: - -@itemize @bullet -@item -When the terminal has a switch that changes its behavior. Since the -computer cannot tell how the switch is set, the user must tell the -computer by choosing the appropriate terminal type name. - -@cindex wrapping -For example, the VT-100 has a setup flag that controls whether the -cursor wraps at the right margin. If this flag is set to ``wrap'', -you must use the terminal type @samp{vt100-am}. Otherwise you must -use @samp{vt100-nam}. Plain @samp{vt100} is defined as a synonym for -either @samp{vt100-am} or @samp{vt100-nam} depending on the -preferences of the local site.@refill - -The standard suffix @samp{-am} stands for ``automatic margins''. - -@item -To give the user a choice in how to use the terminal. This is done -when the terminal has a switch that the computer normally controls. - -@cindex screen size -For example, the Ann Arbor Ambassador can be configured with many -screen sizes ranging from 20 to 60 lines. Fewer lines make bigger -characters but more lines let you see more of what you are editing. -As a result, users have different preferences. Therefore, termcap -provides terminal types for many screen sizes. If you choose type -@samp{aaa-30}, the terminal will be configured to use 30 lines; if you -choose @samp{aaa-48}, 48 lines will be used, and so on. -@end itemize - -Here is a list of standard suffixes and their conventional meanings: - -@table @samp -@item -w -Short for ``wide''. This is a mode that gives the terminal more -columns than usual. This is normally a user option. - -@item -am -``Automatic margins''. This is an alternate description for use when -the terminal's margin-wrap switch is on; it contains the @samp{am} -flag. The implication is that normally the switch is off and the -usual description for the terminal says that the switch is off. - -@item -nam -``No automatic margins''. The opposite of @samp{-am}, this names an -alternative description which lacks the @samp{am} flag. This implies -that the terminal is normally operated with the margin-wrap switch -turned on, and the normal description of the terminal says so. - -@item -na -``No arrows''. This terminal description initializes the terminal to -keep its arrow keys in local mode. This is a user option. - -@item -rv -``Reverse video''. This terminal description causes text output for -normal video to appear as reverse, and text output for reverse video -to come out as normal. Often this description differs from the usual -one by interchanging the two strings which turn reverse video on and -off.@refill - -This is a user option; you can choose either the ``reverse video'' -variant terminal type or the normal terminal type, and termcap will -obey. - -@item -s -``Status''. Says to enable use of a status line which ordinary output -does not touch (@pxref{Status Line}). - -Some terminals have a special line that is used only as a status line. -For these terminals, there is no need for an @samp{-s} variant; the -status line commands should be defined by default. On other -terminals, enabling a status line means removing one screen line from -ordinary use and reducing the effective screen height. For these -terminals, the user can choose the @samp{-s} variant type to request -use of a status line. - -@item -@var{nlines} -Says to operate with @var{nlines} lines on the screen, for terminals -such as the Ambassador which provide this as an option. Normally this -is a user option; by choosing the terminal type, you control how many -lines termcap will use. - -@item -@var{npages}p -Says that the terminal has @var{npages} pages worth of screen memory, -for terminals where this is a hardware option. - -@item -unk -Says that description is not for direct use, but only for reference in -@samp{tc} capabilities. Such a description is a kind of subroutine, -because it describes the common characteristics of several variant -descriptions that would use other suffixes in place of @samp{-unk}. -@end table - -@node Inheriting, Changing, Naming, Data Base -@section Inheriting from Related Descriptions - -@cindex inheritance -When two terminal descriptions are similar, their identical parts do not -need to be given twice. Instead, one of the two can be defined in terms of -the other, using the @samp{tc} capability. We say that one description -@dfn{refers to} the other, or @dfn{inherits from} the other. - -The @samp{tc} capability must be the last one in the terminal description, -and its value is a string which is the name of another terminal type which -is referred to. For example, - -@example -N9|aaa|ambassador|aaa-30|ann arbor ambassador/30 lines:\ - :ti=\E[2J\E[30;0;0;30p:\ - :te=\E[60;0;0;30p\E[30;1H\E[J:\ - :li#30:tc=aaa-unk: -@end example - -@noindent -defines the terminal type @samp{aaa-30} (also known as plain @samp{aaa}) in -terms of @samp{aaa-unk}, which defines everything about the Ambassador that -is independent of screen height. The types @samp{aaa-36}, @samp{aaa-48} -and so on for other screen heights are likewise defined to inherit from -@samp{aaa-unk}. - -The capabilities overridden by @samp{aaa-30} include @samp{li}, which says -how many lines there are, and @samp{ti} and @samp{te}, which configure the -terminal to use that many lines. - -The effective terminal description for type @samp{aaa} consists of the text -shown above followed by the text of the description of @samp{aaa-unk}. The -@samp{tc} capability is handled automatically by @code{tgetent}, which -finds the description thus referenced and combines the two descriptions -(@pxref{Find}). Therefore, only the implementor of the terminal -descriptions needs to think about using @samp{tc}. Users and application -programmers do not need to be concerned with it. - -Since the reference terminal description is used last, capabilities -specified in the referring description override any specifications of the -same capabilities in the reference description. - -The referring description can cancel out a capability without specifying -any new value for it by means of a special trick. Write the capability in -the referring description, with the character @samp{@@} after the capability -name, as follows: - -@smallexample -NZ|aaa-30-nam|ann arbor ambassador/30 lines/no automatic-margins:\ - :am@@:tc=aaa-30: -@end smallexample - -@node Changing, , Inheriting, Data Base -@section When Changes in the Data Base Take Effect - -Each application program must read the terminal description from the -data base, so a change in the data base is effective for all jobs started -after the change is made. - -The change will usually have no effect on a job that have been in existence -since before the change. The program probably read the terminal description -once, when it was started, and is continuing to use what it read then. -If the program does not have a feature for reexamining the data base, then -you will need to run it again (probably killing the old job). - -If the description in use is coming from the @code{TERMCAP} environment -variable, then the data base file is effectively overridden, and changes in -it will have no effect until you change the @code{TERMCAP} variable as -well. For example, some users' @file{.login} files automatically copy the -terminal description into @code{TERMCAP} to speed startup of applications. -If you have done this, you will need to change the @code{TERMCAP} variable -to make the changed data base take effect. - -@node Capabilities, Summary, Data Base, Top -@chapter Definitions of the Terminal Capabilities - -This section is divided into many subsections, each for one aspect of -use of display terminals. For writing a display program, you usually need -only check the subsections for the operations you want to use. For writing -a terminal description, you must read each subsection and fill in the -capabilities described there. - -String capabilities that are display commands may require numeric -parameters (@pxref{Parameters}). Most such capabilities do not use -parameters. When a capability requires parameters, this is explicitly -stated at the beginning of its definition. In simple cases, the first or -second sentence of the definition mentions all the parameters, in the order -they should be given, using a name -@iftex -in italics -@end iftex -@ifinfo -in upper case -@end ifinfo -for each one. For example, the @samp{rp} capability is a command that -requires two parameters; its definition begins as follows: - -@quotation -String of commands to output a graphic character @var{c}, repeated @var{n} -times. -@end quotation - -In complex cases or when there are many parameters, they are described -explicitly. - -When a capability is described as obsolete, this means that programs should -not be written to look for it, but terminal descriptions should still be -written to provide it. - -When a capability is described as very obsolete, this means that it should -be omitted from terminal descriptions as well. - -@menu -* Basic:: Basic characteristics. -* Screen Size:: Screen size, and what happens when it changes. -* Cursor Motion:: Various ways to move the cursor. -* Wrapping:: What happens if you write a character in the last column. -* Scrolling:: Pushing text up and down on the screen. -* Windows:: Limiting the part of the window that output affects. -* Clearing:: Erasing one or many lines. -* Insdel Line:: Making new blank lines in mid-screen; deleting lines. -* Insdel Char:: Inserting and deleting characters within a line. -* Standout:: Highlighting some of the text. -* Underlining:: Underlining some of the text. -* Cursor Visibility:: Making the cursor more or less easy to spot. -* Bell:: Attracts user's attention; not localized on the screen. -* Keypad:: Recognizing when function keys or arrows are typed. -* Meta Key:: @key{META} acts like an extra shift key. -* Initialization:: Commands used to initialize or reset the terminal. -* Pad Specs:: Info for the kernel on how much padding is needed. -* Status Line:: A status line displays ``background'' information. -* Half-Line:: Moving by half-lines, for superscripts and subscripts. -* Printer:: Controlling auxiliary printers of display terminals. -@end menu - -@node Basic, Screen Size, , Capabilities -@section Basic Characteristics - -This section documents the capabilities that describe the basic and -nature of the terminal, and also those that are relevant to the output -of graphic characters. - -@table @samp -@item os -@kindex os -@cindex overstrike -Flag whose presence means that the terminal can overstrike. This -means that outputting a graphic character does not erase whatever was -present in the same character position before. The terminals that can -overstrike include printing terminals, storage tubes (all obsolete -nowadays), and many bit-map displays. - -@item eo -@kindex eo -Flag whose presence means that outputting a space erases a character -position even if the terminal supports overstriking. If this flag is -not present and overstriking is supported, output of a space has no -effect except to move the cursor. - -(On terminals that do not support overstriking, you can always assume -that outputting a space at a position erases whatever character was -previously displayed there.) - -@item gn -@kindex gn -@cindex generic terminal type -Flag whose presence means that this terminal type is a generic type -which does not really describe any particular terminal. Generic types -are intended for use as the default type assigned when the user -connects to the system, with the intention that the user should -specify what type he really has. One example of a generic type -is the type @samp{network}. - -Since the generic type cannot say how to do anything interesting with -the terminal, termcap-using programs will always find that the -terminal is too weak to be supported if the user has failed to specify -a real terminal type in place of the generic one. The @samp{gn} flag -directs these programs to use a different error message: ``You have -not specified your real terminal type'', rather than ``Your terminal -is not powerful enough to be used''. - -@item hc -@kindex hc -Flag whose presence means this is a hardcopy terminal. - -@item rp -@kindex rp -@cindex repeat output -String of commands to output a graphic character @var{c}, repeated @var{n} -times. The first parameter value is the ASCII code for the desired -character, and the second parameter is the number of times to repeat the -character. Often this command requires padding proportional to the -number of times the character is repeated. This effect can be had by -using parameter arithmetic with @samp{%}-sequences to compute the -amount of padding, then generating the result as a number at the front -of the string so that @code{tputs} will treat it as padding. - -@item hz -@kindex hz -Flag whose presence means that the ASCII character @samp{~} cannot be -output on this terminal because it is used for display commands. - -Programs handle this flag by checking all text to be output and -replacing each @samp{~} with some other character(s). If this is not -done, the screen will be thoroughly garbled. - -The old Hazeltine terminals that required such treatment are probably -very rare today, so you might as well not bother to support this flag. - -@item CC -@kindex CC -@cindex command character -String whose presence means the terminal has a settable command -character. The value of the string is the default command character -(which is usually @key{ESC}). - -All the strings of commands in the terminal description should be -written to use the default command character. If you are writing an -application program that changes the command character, use the -@samp{CC} capability to figure out how to translate all the display -commands to work with the new command character. - -Most programs have no reason to look at the @samp{CC} capability. - -@item xb -@kindex xb -@cindex Superbee -Flag whose presence identifies Superbee terminals which are unable to -transmit the characters @key{ESC} and @kbd{Control-C}. Programs which -support this flag are supposed to check the input for the code sequences -sent by the @key{F1} and @key{F2} keys, and pretend that @key{ESC} -or @kbd{Control-C} (respectively) had been read. But this flag is -obsolete, and not worth supporting. -@end table - -@node Screen Size, Cursor Motion, Basic, Capabilities -@section Screen Size -@cindex screen size - -A terminal description has two capabilities, @samp{co} and @samp{li}, -that describe the screen size in columns and lines. But there is more -to the question of screen size than this. - -On some operating systems the ``screen'' is really a window and the -effective width can vary. On some of these systems, @code{tgetnum} -uses the actual width of the window to decide what value to return for -the @samp{co} capability, overriding what is actually written in the -terminal description. On other systems, it is up to the application -program to check the actual window width using a system call. For -example, on BSD 4.3 systems, the system call @code{ioctl} with code -@code{TIOCGWINSZ} will tell you the current screen size. - -On all window systems, termcap is powerless to advise the application -program if the user resizes the window. Application programs must -deal with this possibility in a system-dependent fashion. On some -systems the C shell handles part of the problem by detecting changes -in window size and setting the @code{TERMCAP} environment variable -appropriately. This takes care of application programs that are -started subsequently. It does not help application programs already -running. - -On some systems, including BSD 4.3, all programs using a terminal get -a signal named @code{SIGWINCH} whenever the screen size changes. -Programs that use termcap should handle this signal by using -@code{ioctl TIOCGWINSZ} to learn the new screen size. - -@table @samp -@item co -@kindex co -@cindex screen size -Numeric value, the width of the screen in character positions. Even -hardcopy terminals normally have a @samp{co} capability. - -@item li -@kindex li -Numeric value, the height of the screen in lines. -@end table - -@node Cursor Motion, Wrapping, Screen Size, Capabilities -@section Cursor Motion -@cindex cursor motion - -Termcap assumes that the terminal has a @dfn{cursor}, a spot on the screen -where a visible mark is displayed, and that most display commands take -effect at the position of the cursor. It follows that moving the cursor -to a specified location is very important. - -There are many terminal capabilities for different cursor motion -operations. A terminal description should define as many as possible, but -most programs do not need to use most of them. One capability, @samp{cm}, -moves the cursor to an arbitrary place on the screen; this by itself is -sufficient for any application as long as there is no need to support -hardcopy terminals or certain old, weak displays that have only relative -motion commands. Use of other cursor motion capabilities is an -optimization, enabling the program to output fewer characters in some -common cases. - -If you plan to use the relative cursor motion commands in an application -program, you must know what the starting cursor position is. To do this, -you must keep track of the cursor position and update the records each -time anything is output to the terminal, including graphic characters. -In addition, it is necessary to know whether the terminal wraps after -writing in the rightmost column. @xref{Wrapping}. - -One other motion capability needs special mention: @samp{nw} moves the -cursor to the beginning of the following line, perhaps clearing all the -starting line after the cursor, or perhaps not clearing at all. This -capability is a least common denominator that is probably supported even by -terminals that cannot do most other things such as @samp{cm} or @samp{do}. -Even hardcopy terminals can support @samp{nw}. - -@table @asis -@item @samp{cm} -@kindex cm -String of commands to position the cursor at line @var{l}, column @var{c}. -Both parameters are origin-zero, and are defined relative to the -screen, not relative to display memory. - -All display terminals except a few very obsolete ones support @samp{cm}, -so it is acceptable for an application program to refuse to operate on -terminals lacking @samp{cm}. - -@item @samp{ho} -@kindex ho -@cindex home position -String of commands to move the cursor to the upper left corner of the -screen (this position is called the @dfn{home position}). In -terminals where the upper left corner of the screen is not the same as -the beginning of display memory, this command must go to the upper -left corner of the screen, not the beginning of display memory. - -Every display terminal supports this capability, and many application -programs refuse to operate if the @samp{ho} capability is missing. - -@item @samp{ll} -@kindex ll -String of commands to move the cursor to the lower left corner of the -screen. On some terminals, moving up from home position does this, -but programs should never assume that will work. Just output the -@samp{ll} string (if it is provided); if moving to home position and -then moving up is the best way to get there, the @samp{ll} command -will do that. - -@item @samp{cr} -@kindex cr -String of commands to move the cursor to the beginning of the line it -is on. If this capability is not specified, many programs assume -they can use the ASCII carriage return character for this. - -@item @samp{le} -@kindex le -String of commands to move the cursor left one column. Unless the -@samp{bw} flag capability is specified, the effect is undefined if the -cursor is at the left margin; do not use this command there. If -@samp{bw} is present, this command may be used at the left margin, and -it wraps the cursor to the last column of the preceding line. - -@item @samp{nd} -@kindex nd -String of commands to move the cursor right one column. The effect is -undefined if the cursor is at the right margin; do not use this -command there, not even if @samp{am} is present. - -@item @samp{up} -@kindex up -String of commands to move the cursor vertically up one line. The -effect of sending this string when on the top line is undefined; -programs should never use it that way. - -@item @samp{do} -@kindex do -String of commands to move the cursor vertically down one line. The -effect of sending this string when on the bottom line is undefined; -programs should never use it that way. - -Some programs do use @samp{do} to scroll up one line if used at the -bottom line, if @samp{sf} is not defined but @samp{sr} is. This is -only to compensate for certain old, incorrect terminal descriptions. -(In principle this might actually lead to incorrect behavior on other -terminals, but that seems to happen rarely if ever.) But the proper -solution is that the terminal description should define @samp{sf} as -well as @samp{do} if the command is suitable for scrolling. - -The original idea was that this string would not contain a newline -character and therefore could be used without disabling the kernel's -usual habit of converting of newline into a carriage-return newline -sequence. But many terminal descriptions do use newline in the -@samp{do} string, so this is not possible; a program which sends the -@samp{do} string must disable output conversion in the kernel -(@pxref{Initialize}). - -@item @samp{bw} -@kindex bw -Flag whose presence says that @samp{le} may be used in column zero -to move to the last column of the preceding line. If this flag -is not present, @samp{le} should not be used in column zero. - -@item @samp{nw} -@kindex nw -String of commands to move the cursor to start of next line, possibly -clearing rest of line (following the cursor) before moving. - -@item @samp{DO}, @samp{UP}, @samp{LE}, @samp{RI} -@kindex DO -@kindex LE -@kindex RI -@kindex UP -Strings of commands to move the cursor @var{n} lines down vertically, -up vertically, or @var{n} columns left or right. Do not attempt to -move past any edge of the screen with these commands; the effect of -trying that is undefined. Only a few terminal descriptions provide -these commands, and most programs do not use them. - -@item @samp{CM} -@kindex CM -String of commands to position the cursor at line @var{l}, column -@var{c}, relative to display memory. Both parameters are origin-zero. -This capability is present only in terminals where there is a -difference between screen-relative and memory-relative addressing, and -not even in all such terminals. - -@item @samp{ch} -@kindex ch -String of commands to position the cursor at column @var{c} in the -same line it is on. This is a special case of @samp{cm} in which the -vertical position is not changed. The @samp{ch} capability is -provided only when it is faster to output than @samp{cm} would be in -this special case. Programs should not assume most display terminals -have @samp{ch}. - -@item @samp{cv} -@kindex cv -String of commands to position the cursor at line @var{l} in the same -column. This is a special case of @samp{cm} in which the horizontal -position is not changed. The @samp{cv} capability is provided only -when it is faster to output than @samp{cm} would be in this special -case. Programs should not assume most display terminals have -@samp{cv}. - -@item @samp{sc} -@kindex sc -String of commands to make the terminal save the current cursor -position. Only the last saved position can be used. If this -capability is present, @samp{rc} should be provided also. Most -terminals have neither. - -@item @samp{rc} -@kindex rc -String of commands to make the terminal restore the last saved cursor -position. If this capability is present, @samp{sc} should be provided -also. Most terminals have neither. - -@item @samp{ff} -@kindex ff -String of commands to advance to the next page, for a hardcopy -terminal. - -@item @samp{ta} -@kindex ta -String of commands to move the cursor right to the next hardware tab -stop column. Missing if the terminal does not have any kind of -hardware tabs. Do not send this command if the kernel's terminal -modes say that the kernel is expanding tabs into spaces. - -@item @samp{bt} -@kindex bt -String of commands to move the cursor left to the previous hardware -tab stop column. Missing if the terminal has no such ability; many -terminals do not. Do not send this command if the kernel's terminal -modes say that the kernel is expanding tabs into spaces. -@end table - -The following obsolete capabilities should be included in terminal -descriptions when appropriate, but should not be looked at by new programs. - -@table @samp -@item nc -@kindex nc -Flag whose presence means the terminal does not support the ASCII -carriage return character as @samp{cr}. This flag is needed because -old programs assume, when the @samp{cr} capability is missing, that -ASCII carriage return can be used for the purpose. We use @samp{nc} -to tell the old programs that carriage return may not be used. - -New programs should not assume any default for @samp{cr}, so they need -not look at @samp{nc}. However, descriptions should contain @samp{nc} -whenever they do not contain @samp{cr}. - -@item xt -@kindex xt -Flag whose presence means that the ASCII tab character may not be used -for cursor motion. This flag exists because old programs assume, when -the @samp{ta} capability is missing, that ASCII tab can be used for -the purpose. We use @samp{xt} to tell the old programs not to use tab. - -New programs should not assume any default for @samp{ta}, so they need -not look at @samp{xt} in connection with cursor motion. Note that -@samp{xt} also has implications for standout mode (@pxref{Standout}). -It is obsolete in regard to cursor motion but not in regard to -standout. - -In fact, @samp{xt} means that the terminal is a Teleray 1061. - -@item bc -@kindex bc -Very obsolete alternative name for the @samp{le} capability. - -@item bs -@kindex bs -Flag whose presence means that the ASCII character backspace may be -used to move the cursor left. Obsolete; look at @samp{le} instead. - -@item nl -@kindex nl -Obsolete capability which is a string that can either be used to move -the cursor down or to scroll. The same string must scroll when used -on the bottom line and move the cursor when used on any other line. -New programs should use @samp{do} or @samp{sf}, and ignore @samp{nl}. - -If there is no @samp{nl} capability, some old programs assume they can -use the newline character for this purpose. These programs follow a -bad practice, but because they exist, it is still desirable to define -the @samp{nl} capability in a terminal description if the best way to -move down is @emph{not} a newline. -@end table - -@node Wrapping, Scrolling, Cursor Motion, Capabilities -@section Wrapping -@cindex wrapping - -@dfn{Wrapping} means moving the cursor from the right margin to the left -margin of the following line. Some terminals wrap automatically when a -graphic character is output in the last column, while others do not. Most -application programs that use termcap need to know whether the terminal -wraps. There are two special flag capabilities to describe what the -terminal does when a graphic character is output in the last column. - -@table @samp -@item am -@kindex am -Flag whose presence means that writing a character in the last column -causes the cursor to wrap to the beginning of the next line. - -If @samp{am} is not present, writing in the last column leaves the -cursor at the place where the character was written. - -Writing in the last column of the last line should be avoided on -terminals with @samp{am}, as it may or may not cause scrolling to -occur (@pxref{Scrolling}). Scrolling is surely not what you would -intend. - -If your program needs to check the @samp{am} flag, then it also needs -to check the @samp{xn} flag which indicates that wrapping happens in a -strange way. Many common terminals have the @samp{xn} flag. - -@item xn -@kindex xn -Flag whose presence means that the cursor wraps in a strange way. At -least two distinct kinds of strange behavior are known; the termcap -data base does not contain anything to distinguish the two. - -On Concept-100 terminals, output in the last column wraps the cursor -almost like an ordinary @samp{am} terminal. But if the next thing -output is a newline, it is ignored. - -DEC VT-100 terminals (when the wrap switch is on) do a different -strange thing: the cursor wraps only if the next thing output is -another graphic character. In fact, the wrap occurs when the -following graphic character is received by the terminal, before the -character is placed on the screen. - -On both of these terminals, after writing in the last column a -following graphic character will be displayed in the first column of -the following line. But the effect of relative cursor motion -characters such as newline or backspace at such a time depends on the -terminal. The effect of erase or scrolling commands also depends on -the terminal. You can't assume anything about what they will do on a -terminal that has @samp{xn}. So, to be safe, you should never do -these things at such a time on such a terminal. - -To be sure of reliable results on a terminal which has the @samp{xn} -flag, output a @samp{cm} absolute positioning command after writing in -the last column. Another safe thing to do is to output carriage-return -newline, which will leave the cursor at the beginning of the following -line. - -@item LP -@kindex LP -Flag whose presence means that it is safe to write in the last column of -the last line without worrying about undesired scrolling. @samp{LP} -indicates the DEC flavor of @samp{xn} strangeness. -@end table - -@node Scrolling, Windows, Wrapping, Capabilities -@section Scrolling -@cindex scrolling - -@dfn{Scrolling} means moving the contents of the screen up or down one or -more lines. Moving the contents up is @dfn{forward scrolling}; moving them -down is @dfn{reverse scrolling}. - -Scrolling happens after each line of output during ordinary output on most -display terminals. But in an application program that uses termcap for -random-access output, scrolling happens only when explicitly requested with -the commands in this section. - -Some terminals have a @dfn{scroll region} feature. This lets you limit -the effect of scrolling to a specified range of lines. Lines outside the -range are unaffected when scrolling happens. The scroll region feature -is available if either @samp{cs} or @samp{cS} is present. - -@table @samp -@item sf -@kindex sf -String of commands to scroll the screen one line up, assuming it is -output with the cursor at the beginning of the bottom line. - -@item sr -@kindex sr -String of commands to scroll the screen one line down, assuming it is -output with the cursor at the beginning of the top line. - -@item do -A few programs will try to use @samp{do} to do the work of @samp{sf}. -This is not really correct---it is an attempt to compensate for the -absence of a @samp{sf} command in some old terminal descriptions. - -Since these terminal descriptions do define @samp{sr}, perhaps at one -time the definition of @samp{do} was different and it could be used -for scrolling as well. But it isn't desirable to combine these two -functions in one capability, since scrolling often requires more -padding than simply moving the cursor down. Defining @samp{sf} and -@samp{do} separately allows you to specify the padding properly. -Also, all sources agree that @samp{do} should not be relied on to do -scrolling. - -So the best approach is to add @samp{sf} capabilities to the -descriptions of these terminals, copying the definition of @samp{do} -if that does scroll. - -@item SF -@kindex SF -String of commands to scroll the screen @var{n} lines up, assuming it -is output with the cursor at the beginning of the bottom line. - -@item SR -@kindex SR -String of commands to scroll the screen @var{n} lines down, assuming it -is output with the cursor at the beginning of the top line. - -@item cs -@kindex cs -String of commands to set the scroll region. This command takes two -parameters, @var{start} and @var{end}, which are the line numbers -(origin-zero) of the first line to include in the scroll region and of -the last line to include in it. When a scroll region is set, -scrolling is limited to the specified range of lines; lines outside -the range are not affected by scroll commands. - -Do not try to move the cursor outside the scroll region. The region -remains set until explicitly removed. To remove the scroll region, -use another @samp{cs} command specifying the full height of the -screen. - -The cursor position is undefined after the @samp{cs} command is set, -so position the cursor with @samp{cm} immediately afterward. - -@item cS -@kindex cS -String of commands to set the scroll region using parameters in -different form. The effect is the same as if @samp{cs} were used. -Four parameters are required: - -@enumerate -@item -Total number of lines on the screen. -@item -Number of lines above desired scroll region. -@item -Number of lines below (outside of) desired scroll region. -@item -Total number of lines on the screen, the same as the first parameter. -@end enumerate - -This capability is a GNU extension that was invented to allow the Ann -Arbor Ambassador's scroll-region command to be described; it could -also be done by putting non-Unix @samp{%}-sequences into a @samp{cs} -string, but that would have confused Unix programs that used the -@samp{cs} capability with the Unix termcap. Currently only GNU Emacs -uses the @samp{cS} capability. - -@item ns -@kindex ns -Flag which means that the terminal does not normally scroll for -ordinary sequential output. For modern terminals, this means that -outputting a newline in ordinary sequential output with the cursor on -the bottom line wraps to the top line. For some obsolete terminals, -other things may happen. - -The terminal may be able to scroll even if it does not normally do so. -If the @samp{sf} capability is provided, it can be used for scrolling -regardless of @samp{ns}. - -@item da -@kindex da -Flag whose presence means that lines scrolled up off the top of the -screen may come back if scrolling down is done subsequently. - -The @samp{da} and @samp{db} flags do not, strictly speaking, affect -how to scroll. But programs that scroll usually need to clear the -lines scrolled onto the screen, if these flags are present. - -@item db -@kindex db -Flag whose presence means that lines scrolled down off the bottom of -the screen may come back if scrolling up is done subsequently. - -@item lm -@kindex lm -Numeric value, the number of lines of display memory that the terminal -has. A value of zero means that the terminal has more display memory -than can fit on the screen, but no fixed number of lines. (The number -of lines may depend on the amount of text in each line.) -@end table - -Any terminal description that defines @samp{SF} should also define @samp{sf}; -likewise for @samp{SR} and @samp{sr}. However, many terminals can only -scroll by one line at a time, so it is common to find @samp{sf} and not -@samp{SF}, or @samp{sr} without @samp{SR}.@refill - -Therefore, all programs that use the scrolling facilities should be -prepared to work with @samp{sf} in the case that @samp{SF} is absent, and -likewise with @samp{sr}. On the other hand, an application program that -uses only @samp{sf} and not @samp{SF} is acceptable, though slow on some -terminals.@refill - -When outputting a scroll command with @code{tputs}, the @var{nlines} -argument should be the total number of lines in the portion of the screen -being scrolled. Very often these commands require padding proportional to -this number of lines. @xref{Padding}. - -@node Windows, Clearing, Scrolling, Capabilities -@section Windows -@cindex window - -A @dfn{window}, in termcap, is a rectangular portion of the screen to which -all display operations are restricted. Wrapping, clearing, scrolling, -insertion and deletion all operate as if the specified window were all the -screen there was. - -@table @samp -@item wi -@kindex wi -String of commands to set the terminal output screen window. -This string requires four parameters, all origin-zero: -@enumerate -@item -The first line to include in the window. -@item -The last line to include in the window. -@item -The first column to include in the window. -@item -The last column to include in the window. -@end enumerate -@end table - -Most terminals do not support windows. - -@node Clearing, Insdel Line, Windows, Capabilities -@section Clearing Parts of the Screen -@cindex erasing -@cindex clearing the screen - -There are several terminal capabilities for clearing parts of the screen -to blank. All display terminals support the @samp{cl} string, and most -display terminals support all of these capabilities. - -@table @samp -@item cl -@kindex cl -String of commands to clear the entire screen and position the cursor -at the upper left corner. - -@item cd -@kindex cd -String of commands to clear the line the cursor is on, and all the -lines below it, down to the bottom of the screen. This command string -should be used only with the cursor in column zero; their effect is -undefined if the cursor is elsewhere. - -@item ce -@kindex ce -String of commands to clear from the cursor to the end of the current -line. - -@item ec -@kindex ec -String of commands to clear @var{n} characters, starting with the -character that the cursor is on. This command string is expected to -leave the cursor position unchanged. The parameter @var{n} should never -be large enough to reach past the right margin; the effect of such a -large parameter would be undefined. -@end table - -Clear to end of line (@samp{ce}) is extremely important in programs that -maintain an updating display. Nearly all display terminals support this -operation, so it is acceptable for a an application program to refuse to -work if @samp{ce} is not present. However, if you do not want this -limitation, you can accomplish clearing to end of line by outputting spaces -until you reach the right margin. In order to do this, you must know the -current horizontal position. Also, this technique assumes that writing a -space will erase. But this happens to be true on all the display terminals -that fail to support @samp{ce}. - -@node Insdel Line, Insdel Char, Clearing, Capabilities -@section Insert/Delete Line - -@cindex insert line -@cindex delete line -@dfn{Inserting a line} means creating a blank line in the middle -of the screen, and pushing the existing lines of text apart. In fact, -the lines above the insertion point do not change, while the lines below -move down, and one is normally lost at the bottom of the screen. - -@dfn{Deleting a line} means causing the line to disappear from the screen, -closing up the gap by moving the lines below it upward. A new line -appears at the bottom of the screen. Usually this line is blank, but -on terminals with the @samp{db} flag it may be a line previously moved -off the screen bottom by scrolling or line insertion. - -Insertion and deletion of lines is useful in programs that maintain an -updating display some parts of which may get longer or shorter. They are -also useful in editors for scrolling parts of the screen, and for -redisplaying after lines of text are killed or inserted. - -Many terminals provide commands to insert or delete a single line at the -cursor position. Some provide the ability to insert or delete several -lines with one command, using the number of lines to insert or delete as a -parameter. Always move the cursor to column zero before using any of -these commands. - -@table @samp -@item al -@kindex al -String of commands to insert a blank line before the line the cursor -is on. The existing line, and all lines below it, are moved down. -The last line in the screen (or in the scroll region, if one is set) -disappears and in most circumstances is discarded. It may not be -discarded if the @samp{db} is present (@pxref{Scrolling}). - -The cursor must be at the left margin before this command is used. -This command does not move the cursor. - -@item dl -@kindex dl -String of commands to delete the line the cursor is on. The following -lines move up, and a blank line appears at the bottom of the screen -(or bottom of the scroll region). If the terminal has the @samp{db} -flag, a nonblank line previously pushed off the screen bottom may -reappear at the bottom. - -The cursor must be at the left margin before this command is used. -This command does not move the cursor. - -@item AL -@kindex AL -String of commands to insert @var{n} blank lines before the line that -the cursor is on. It is like @samp{al} repeated @var{n} times, except -that it is as fast as one @samp{al}. - -@item DL -@kindex DL -String of commands to delete @var{n} lines starting with the line that -the cursor is on. It is like @samp{dl} repeated @var{n} times, except -that it is as fast as one @samp{dl}. -@end table - -Any terminal description that defines @samp{AL} should also define -@samp{al}; likewise for @samp{DL} and @samp{dl}. However, many terminals -can only insert or delete one line at a time, so it is common to find -@samp{al} and not @samp{AL}, or @samp{dl} without @samp{DL}.@refill - -Therefore, all programs that use the insert and delete facilities should be -prepared to work with @samp{al} in the case that @samp{AL} is absent, and -likewise with @samp{dl}. On the other hand, it is acceptable to write -an application that uses only @samp{al} and @samp{dl} and does not look -for @samp{AL} or @samp{DL} at all.@refill - -If a terminal does not support line insertion and deletion directly, -but does support a scroll region, the effect of insertion and deletion -can be obtained with scrolling. However, it is up to the individual -user program to check for this possibility and use the scrolling -commands to get the desired result. It is fairly important to implement -this alternate strategy, since it is the only way to get the effect of -line insertion and deletion on the popular VT100 terminal. - -Insertion and deletion of lines is affected by the scroll region on -terminals that have a settable scroll region. This is useful when it is -desirable to move any few consecutive lines up or down by a few lines. -@xref{Scrolling}. - -The line pushed off the bottom of the screen is not lost if the terminal -has the @samp{db} flag capability; instead, it is pushed into display -memory that does not appear on the screen. This is the same thing that -happens when scrolling pushes a line off the bottom of the screen. -Either reverse scrolling or deletion of a line can bring the apparently -lost line back onto the bottom of the screen. If the terminal has the -scroll region feature as well as @samp{db}, the pushed-out line really -is lost if a scroll region is in effect. - -When outputting an insert or delete command with @code{tputs}, the -@var{nlines} argument should be the total number of lines from the cursor -to the bottom of the screen (or scroll region). Very often these commands -require padding proportional to this number of lines. @xref{Padding}. - -For @samp{AL} and @samp{DL} the @var{nlines} argument should @emph{not} -depend on the number of lines inserted or deleted; only the total number of -lines affected. This is because it is just as fast to insert two or -@var{n} lines with @samp{AL} as to insert one line with @samp{al}. - -@node Insdel Char, Standout, Insdel Line, Capabilities -@section Insert/Delete Character -@cindex insert character -@cindex delete character - -@dfn{Inserting a character} means creating a blank space in the middle of a -line, and pushing the rest of the line rightward. The character in the -rightmost column is lost. - -@dfn{Deleting a character} means causing the character to disappear from -the screen, closing up the gap by moving the rest of the line leftward. A -blank space appears in the rightmost column. - -Insertion and deletion of characters is useful in programs that maintain an -updating display some parts of which may get longer or shorter. It is also -useful in editors for redisplaying the results of editing within a line. - -Many terminals provide commands to insert or delete a single character at -the cursor position. Some provide the ability to insert or delete several -characters with one command, using the number of characters to insert or -delete as a parameter. - -@cindex insert mode -Many terminals provide an insert mode in which outputting a graphic -character has the added effect of inserting a position for that character. -A special command string is used to enter insert mode and another is used -to exit it. The reason for designing a terminal with an insert mode rather -than an insert command is that inserting character positions is usually -followed by writing characters into them. With insert mode, this is as -fast as simply writing the characters, except for the fixed overhead of -entering and leaving insert mode. However, when the line speed is great -enough, padding may be required for the graphic characters output in insert -mode. - -Some terminals require you to enter insert mode and then output a special -command for each position to be inserted. Or they may require special -commands to be output before or after each graphic character to be -inserted. - -@cindex delete mode -Deletion of characters is usually accomplished by a straightforward command -to delete one or several positions; but on some terminals, it is necessary -to enter a special delete mode before using the delete command, and leave -delete mode afterward. Sometimes delete mode and insert mode are the same -mode. - -Some terminals make a distinction between character positions in which a -space character has been output and positions which have been cleared. On -these terminals, the effect of insert or delete character runs to the first -cleared position rather than to the end of the line. In fact, the effect -may run to more than one line if there is no cleared position to stop the -shift on the first line. These terminals are identified by the @samp{in} -flag capability. - -On terminals with the @samp{in} flag, the technique of skipping over -characters that you know were cleared, and then outputting text later on in -the same line, causes later insert and delete character operations on that -line to do nonstandard things. A program that has any chance of doing this -must check for the @samp{in} flag and must be careful to write explicit -space characters into the intermediate columns when @samp{in} is present. - -A plethora of terminal capabilities are needed to describe all of this -complexity. Here is a list of them all. Following the list, we present -an algorithm for programs to use to take proper account of all of these -capabilities. - -@table @samp -@item im -@kindex im -String of commands to enter insert mode. - -If the terminal has no special insert mode, but it can insert -characters with a special command, @samp{im} should be defined with a -null value, because the @samp{vi} editor assumes that insertion of a -character is impossible if @samp{im} is not provided. - -New programs should not act like @samp{vi}. They should pay attention -to @samp{im} only if it is defined. - -@item ei -@kindex ei -String of commands to leave insert mode. This capability must be -present if @samp{im} is. - -On a few old terminals the same string is used to enter and exit -insert mode. This string turns insert mode on if it was off, and off -it it was on. You can tell these terminals because the @samp{ei} -string equals the @samp{im} string. If you want to support these -terminals, you must always remember accurately whether insert mode is -in effect. However, these terminals are obsolete, and it is -reasonable to refuse to support them. On all modern terminals, you -can safely output @samp{ei} at any time to ensure that insert mode is -turned off. - -@item ic -@kindex ic -String of commands to insert one character position at the cursor. -The cursor does not move. - -If outputting a graphic character while in insert mode is sufficient -to insert the character, then the @samp{ic} capability should be -defined with a null value. - -If your terminal offers a choice of ways to insert---either use insert -mode or use a special command---then define @samp{im} and do not define -@samp{ic}, since this gives the most efficient operation when several -characters are to be inserted. @emph{Do not} define both strings, for -that means that @emph{both} must be used each time insertion is done. - -@item ip -@kindex ip -String of commands to output following an inserted graphic character -in insert mode. Often it is used just for a padding spec, when padding -is needed after an inserted character (@pxref{Padding}). - -@item IC -@kindex IC -String of commands to insert @var{n} character positions at and after -the cursor. It has the same effect as repeating the @samp{ic} string -and a space, @var{n} times. - -If @samp{IC} is provided, application programs may use it without first -entering insert mode. - -@item mi -@kindex mi -Flag whose presence means it is safe to move the cursor while in insert -mode and assume the terminal remains in insert mode. - -@item in -@kindex in -Flag whose presence means that the terminal distinguishes between -character positions in which space characters have been output and -positions which have been cleared. -@end table - -An application program can assume that the terminal can do character -insertion if @emph{any one of} the capabilities @samp{IC}, @samp{im}, -@samp{ic} or @samp{ip} is provided. - -To insert @var{n} blank character positions, move the cursor to the place -to insert them and follow this algorithm: - -@enumerate -@item -If an @samp{IC} string is provided, output it with parameter @var{n} -and you are finished. Otherwise (or if you don't want to bother to -look for an @samp{IC} string) follow the remaining steps. - -@item -Output the @samp{im} string, if there is one, unless the terminal is -already in insert mode. - -@item -Repeat steps 4 through 6, @var{n} times. - -@item -Output the @samp{ic} string if any. - -@item -Output a space. - -@item -Output the @samp{ip} string if any. - -@item -Output the @samp{ei} string, eventually, to exit insert mode. There -is no need to do this right away. If the @samp{mi} flag is present, -you can move the cursor and the cursor will remain in insert mode; -then you can do more insertion elsewhere without reentering insert -mode. -@end enumerate - -To insert @var{n} graphic characters, position the cursor and follow this -algorithm: - -@enumerate -@item -If an @samp{IC} string is provided, output it with parameter @var{n}, -then output the graphic characters, and you are finished. Otherwise -(or if you don't want to bother to look for an @samp{IC} string) -follow the remaining steps. - -@item -Output the @samp{im} string, if there is one, unless the terminal is -already in insert mode. - -@item -For each character to be output, repeat steps 4 through 6. - -@item -Output the @samp{ic} string if any. - -@item -Output the next graphic character. - -@item -Output the @samp{ip} string if any. - -@item -Output the @samp{ei} string, eventually, to exit insert mode. There -is no need to do this right away. If the @samp{mi} flag is present, -you can move the cursor and the cursor will remain in insert mode; -then you can do more insertion elsewhere without reentering insert -mode. -@end enumerate - -Note that this is not the same as the original Unix termcap specifications -in one respect: it assumes that the @samp{IC} string can be used without -entering insert mode. This is true as far as I know, and it allows you be -able to avoid entering and leaving insert mode, and also to be able to -avoid the inserted-character padding after the characters that go into the -inserted positions. - -Deletion of characters is less complicated; deleting one column is done by -outputting the @samp{dc} string. However, there may be a delete mode that -must be entered with @samp{dm} in order to make @samp{dc} work. - -@table @samp -@item dc -@kindex dc -String of commands to delete one character position at the cursor. If -@samp{dc} is not present, the terminal cannot delete characters. - -@item DC -@kindex DC -String of commands to delete @var{n} characters starting at the cursor. -It has the same effect as repeating the @samp{dc} string @var{n} times. -Any terminal description that has @samp{DC} also has @samp{dc}. - -@item dm -@kindex dm -String of commands to enter delete mode. If not present, there is no -delete mode, and @samp{dc} can be used at any time (assuming there is -a @samp{dc}). - -@item ed -@kindex ed -String of commands to exit delete mode. This must be present if -@samp{dm} is. -@end table - -To delete @var{n} character positions, position the cursor and follow these -steps: - -@enumerate -@item -If the @samp{DC} string is present, output it with parameter @var{n} -and you are finished. Otherwise, follow the remaining steps. - -@item -Output the @samp{dm} string, unless you know the terminal is already -in delete mode. - -@item -Output the @samp{dc} string @var{n} times. - -@item -Output the @samp{ed} string eventually. If the flag capability -@samp{mi} is present, you can move the cursor and do more deletion -without leaving and reentering delete mode. -@end enumerate - -As with the @samp{IC} string, we have departed from the original termcap -specifications by assuming that @samp{DC} works without entering delete -mode even though @samp{dc} would not. - -If the @samp{dm} and @samp{im} capabilities are both present and have the -same value, it means that the terminal has one mode for both insertion and -deletion. It is useful for a program to know this, because then it can do -insertions after deletions, or vice versa, without leaving insert/delete -mode and reentering it. - -@node Standout, Underlining, Insdel Char, Capabilities -@section Standout and Appearance Modes -@cindex appearance modes -@cindex standout -@cindex magic cookie - -@dfn{Appearance modes} are modifications to the ways characters are -displayed. Typical appearance modes include reverse video, dim, bright, -blinking, underlined, invisible, and alternate character set. Each kind of -terminal supports various among these, or perhaps none. - -For each type of terminal, one appearance mode or combination of them that -looks good for highlighted text is chosen as the @dfn{standout mode}. The -capabilities @samp{so} and @samp{se} say how to enter and leave standout -mode. Programs that use appearance modes only to highlight some text -generally use the standout mode so that they can work on as many terminals -as possible. Use of specific appearance modes other than ``underlined'' -and ``alternate character set'' is rare. - -Terminals that implement appearance modes fall into two general classes as -to how they do it. - -In some terminals, the presence or absence of any appearance mode is -recorded separately for each character position. In these terminals, each -graphic character written is given the appearance modes current at the time -it is written, and keeps those modes until it is erased or overwritten. -There are special commands to turn the appearance modes on or off for -characters to be written in the future. - -In other terminals, the change of appearance modes is represented by a -marker that belongs to a certain screen position but affects all following -screen positions until the next marker. These markers are traditionally -called @dfn{magic cookies}. - -The same capabilities (@samp{so}, @samp{se}, @samp{mb} and so on) for -turning appearance modes on and off are used for both magic-cookie -terminals and per-character terminals. On magic cookie terminals, these -give the commands to write the magic cookies. On per-character terminals, -they change the current modes that affect future output and erasure. Some -simple applications can use these commands without knowing whether or not -they work by means of cookies. - -However, a program that maintains and updates a display needs to know -whether the terminal uses magic cookies, and exactly what their effect is. -This information comes from the @samp{sg} capability. - -The @samp{sg} capability is a numeric capability whose presence indicates -that the terminal uses magic cookies for appearance modes. Its value is -the number of character positions that a magic cookie occupies. Usually -the cookie occupies one or more character positions on the screen, and these -character positions are displayed as blank, but in some terminals the -cookie has zero width. - -The @samp{sg} capability describes both the magic cookie to turn standout -on and the cookie to turn it off. This makes the assumption that both -kinds of cookie have the same width on the screen. If that is not true, -the narrower cookie must be ``widened'' with spaces until it has the same -width as the other. - -On some magic cookie terminals, each line always starts with normal -display; in other words, the scope of a magic cookie never extends over -more than one line. But on other terminals, one magic cookie affects all -the lines below it unless explicitly canceled. Termcap does not define any -way to distinguish these two ways magic cookies can work. To be safe, it -is best to put a cookie at the beginning of each line. - -On some per-character terminals, standout mode or other appearance modes -may be canceled by moving the cursor. On others, moving the cursor has no -effect on the state of the appearance modes. The latter class of terminals -are given the flag capability @samp{ms} (``can move in standout''). All -programs that might have occasion to move the cursor while appearance modes -are turned on must check for this flag; if it is not present, they should -reset appearance modes to normal before doing cursor motion. - -A program that has turned on only standout mode should use @samp{se} to -reset the standout mode to normal. A program that has turned on only -alternate character set mode should use @samp{ae} to return it to normal. -If it is possible that any other appearance modes are turned on, use the -@samp{me} capability to return them to normal. - -Note that the commands to turn on one appearance mode, including @samp{so} -and @samp{mb} @dots{} @samp{mr}, if used while some other appearance modes -are turned on, may combine the two modes on some terminals but may turn off -the mode previously enabled on other terminals. This is because some -terminals do not have a command to set or clear one appearance mode without -changing the others. Programs should not attempt to use appearance modes -in combination except with @samp{sa}, and when switching from one single -mode to another should always turn off the previously enabled mode and then -turn on the new desired mode. - -On some old terminals, the @samp{so} and @samp{se} commands may be the same -command, which has the effect of turning standout on if it is off, or off -it is on. It is therefore risky for a program to output extra @samp{se} -commands for good measure. Fortunately, all these terminals are obsolete. - -Programs that update displays in which standout-text may be replaced with -non-standout text must check for the @samp{xs} flag. In a per-character -terminal, this flag says that the only way to remove standout once written is -to clear that portion of the line with the @samp{ce} string or something -even more powerful (@pxref{Clearing}); just writing new characters at those -screen positions will not change the modes in effect there. In a magic -cookie terminal, @samp{xs} says that the only way to remove a cookie is to -clear a portion of the line that includes the cookie; writing a different -cookie at the same position does not work. - -Such programs must also check for the @samp{xt} flag, which means that the -terminal is a Teleray 1061. On this terminal it is impossible to position -the cursor at the front of a magic cookie, so the only two ways to remove a -cookie are (1) to delete the line it is on or (2) to position the cursor at -least one character before it (possibly on a previous line) and output the -@samp{se} string, which on these terminals finds and removes the next -@samp{so} magic cookie on the screen. (It may also be possible to remove a -cookie which is not at the beginning of a line by clearing that line.) The -@samp{xt} capability also has implications for the use of tab characters, -but in that regard it is obsolete (@xref{Cursor Motion}). - -@table @samp -@item so -@kindex so -String of commands to enter standout mode. - -@item se -@kindex se -String of commands to leave standout mode. - -@item sg -@kindex sg -Numeric capability, the width on the screen of the magic cookie. This -capability is absent in terminals that record appearance modes -character by character. - -@item ms -@kindex ms -Flag whose presence means that it is safe to move the cursor while the -appearance modes are not in the normal state. If this flag is absent, -programs should always reset the appearance modes to normal before -moving the cursor. - -@item xs -@kindex xs -Flag whose presence means that the only way to reset appearance modes -already on the screen is to clear to end of line. On a per-character -terminal, you must clear the area where the modes are set. On a magic -cookie terminal, you must clear an area containing the cookie. -See the discussion above. - -@item xt -@kindex xt -Flag whose presence means that the cursor cannot be positioned right -in front of a magic cookie, and that @samp{se} is a command to delete -the next magic cookie following the cursor. See discussion above. - -@item mb -@kindex mb -String of commands to enter blinking mode. - -@item md -@kindex md -String of commands to enter double-bright mode. - -@item mh -@kindex mh -String of commands to enter half-bright mode. - -@item mk -@kindex mk -String of commands to enter invisible mode. - -@item mp -@kindex mp -String of commands to enter protected mode. - -@item mr -@kindex mr -String of commands to enter reverse-video mode. - -@item me -@kindex me -String of commands to turn off all appearance modes, including -standout mode and underline mode. On some terminals it also turns off -alternate character set mode; on others, it may not. This capability -must be present if any of @samp{mb} @dots{} @samp{mr} is present. - -@item as -@kindex as -String of commands to turn on alternate character set mode. This mode -assigns some or all graphic characters an alternate picture on the -screen. There is no standard as to what the alternate pictures look -like. - -@item ae -@kindex ae -String of commands to turn off alternate character set mode. - -@item sa -@kindex sa -String of commands to turn on an arbitrary combination of appearance -modes. It accepts 9 parameters, each of which controls a particular -kind of appearance mode. A parameter should be 1 to turn its appearance -mode on, or zero to turn that mode off. Most terminals do not support -the @samp{sa} capability, even among those that do have various -appearance modes. - -The nine parameters are, in order, @var{standout}, @var{underline}, -@var{reverse}, @var{blink}, @var{half-bright}, @var{double-bright}, -@var{blank}, @var{protect}, @var{alt char set}. -@end table - -@node Underlining, Cursor Visibility, Standout, Capabilities -@section Underlining -@cindex underlining - -Underlining on most terminals is a kind of appearance mode, much like -standout mode. Therefore, it may be implemented using magic cookies or as -a flag in the terminal whose current state affects each character that is -output. @xref{Standout}, for a full explanation. - -The @samp{ug} capability is a numeric capability whose presence indicates -that the terminal uses magic cookies for underlining. Its value is the -number of character positions that a magic cookie for underlining occupies; -it is used for underlining just as @samp{sg} is used for standout. Aside -from the simplest applications, it is impossible to use underlining -correctly without paying attention to the value of @samp{ug}. - -@table @samp -@item us -@kindex us -String of commands to turn on underline mode or to output a magic cookie -to start underlining. - -@item ue -@kindex ue -String of commands to turn off underline mode or to output a magic -cookie to stop underlining. - -@item ug -@kindex ug -Width of magic cookie that represents a change of underline mode; -or missing, if the terminal does not use a magic cookie for this. - -@item ms -@kindex ms -Flag whose presence means that it is safe to move the cursor while the -appearance modes are not in the normal state. Underlining is an -appearance mode. If this flag is absent, programs should always turn -off underlining before moving the cursor. -@end table - -There are two other, older ways of doing underlining: there can be a -command to underline a single character, or the output of @samp{_}, the -ASCII underscore character, as an overstrike could cause a character to be -underlined. New programs need not bother to handle these capabilities -unless the author cares strongly about the obscure terminals which support -them. However, terminal descriptions should provide these capabilities -when appropriate. - -@table @samp -@item uc -@kindex uc -String of commands to underline the character under the cursor, and -move the cursor right. - -@item ul -@kindex ul -Flag whose presence means that the terminal can underline by -overstriking an underscore character (@samp{_}); some terminals can do -this even though they do not support overstriking in general. An -implication of this flag is that when outputting new text to overwrite -old text, underscore characters must be treated specially lest they -underline the old text instead. -@end table - -@node Cursor Visibility, Bell, Underlining, Capabilities -@section Cursor Visibility -@cindex visibility - -Some terminals have the ability to make the cursor invisible, or to enhance -it. Enhancing the cursor is often done by programs that plan to use the -cursor to indicate to the user a position of interest that may be anywhere -on the screen---for example, the Emacs editor enhances the cursor on entry. -Such programs should always restore the cursor to normal on exit. - -@table @samp -@item vs -@kindex vs -String of commands to enhance the cursor. - -@item vi -@kindex vi -String of commands to make the cursor invisible. - -@item ve -@kindex ve -String of commands to return the cursor to normal. -@end table - -If you define either @samp{vs} or @samp{vi}, you must also define @samp{ve}. - -@node Bell, Keypad, Cursor Visibility, Capabilities -@section Bell -@cindex bell -@cindex visible bell - -Here we describe commands to make the terminal ask for the user to pay -attention to it. - -@table @samp -@item bl -@kindex bl -String of commands to cause the terminal to make an audible sound. If -this capability is absent, the terminal has no way to make a suitable -sound. - -@item vb -@kindex vb -String of commands to cause the screen to flash to attract attention -(``visible bell''). If this capability is absent, the terminal has no -way to do such a thing. -@end table - -@node Keypad, Meta Key, Bell, Capabilities -@section Keypad and Function Keys - -Many terminals have arrow and function keys that transmit specific -character sequences to the computer. Since the precise sequences used -depend on the terminal, termcap defines capabilities used to say what the -sequences are. Unlike most termcap string-valued capabilities, these are -not strings of commands to be sent to the terminal, rather strings that -are received from the terminal. - -Programs that expect to use keypad keys should check, initially, for a -@samp{ks} capability and send it, to make the keypad actually transmit. -Such programs should also send the @samp{ke} string when exiting. - -@table @asis -@item @samp{ks} -@kindex ka@dots{}ku -String of commands to make the keypad keys transmit. If this -capability is not provided, but the others in this section are, -programs may assume that the keypad keys always transmit. - -@item @samp{ke} -String of commands to make the keypad keys work locally. This -capability is provided only if @samp{ks} is. - -@item @samp{kl} -String of input characters sent by typing the left-arrow key. If this -capability is missing, you cannot expect the terminal to have a -left-arrow key that transmits anything to the computer. - -@item @samp{kr} -String of input characters sent by typing the right-arrow key. - -@item @samp{ku} -String of input characters sent by typing the up-arrow key. - -@item @samp{kd} -String of input characters sent by typing the down-arrow key. - -@item @samp{kh} -String of input characters sent by typing the ``home-position'' key. - -@item @samp{K1} @dots{} @samp{K5} -@kindex K1@dots{}K5 -Strings of input characters sent by the five other keys in a 3-by-3 -array that includes the arrow keys, if the keyboard has such a 3-by-3 -array. Note that one of these keys may be the ``home-position'' key, -in which case one of these capabilities will have the same value as -the @samp{kh} key. - -@item @samp{k0} -String of input characters sent by function key 10 (or 0, if the terminal -has one labeled 0). - -@item @samp{k1} @dots{} @samp{k9} -@kindex k1@dots{}k9 -Strings of input characters sent by function keys 1 through 9, -provided for those function keys that exist. - -@item @samp{kn} -Number: the number of numbered function keys, if there are more than -10. - -@item @samp{l0} @dots{} @samp{l9} -@kindex l0@dots{}l9 -Strings which are the labels appearing on the keyboard on the keys -described by the capabilities @samp{k0} @dots{} @samp{l9}. These -capabilities should be left undefined if the labels are @samp{f0} or -@samp{f10} and @samp{f1} @dots{} @samp{f9}.@refill - -@item @samp{kH} -@kindex kA@dots{}kT -String of input characters sent by the ``home down'' key, if there is -one. - -@item @samp{kb} -String of input characters sent by the ``backspace'' key, if there is -one. - -@item @samp{ka} -String of input characters sent by the ``clear all tabs'' key, if there -is one. - -@item @samp{kt} -String of input characters sent by the ``clear tab stop this column'' -key, if there is one. - -@item @samp{kC} -String of input characters sent by the ``clear screen'' key, if there is -one. - -@item @samp{kD} -String of input characters sent by the ``delete character'' key, if -there is one. - -@item @samp{kL} -String of input characters sent by the ``delete line'' key, if there is -one. - -@item @samp{kM} -String of input characters sent by the ``exit insert mode'' key, if -there is one. - -@item @samp{kE} -String of input characters sent by the ``clear to end of line'' key, if -there is one. - -@item @samp{kS} -String of input characters sent by the ``clear to end of screen'' key, -if there is one. - -@item @samp{kI} -String of input characters sent by the ``insert character'' or ``enter -insert mode'' key, if there is one. - -@item @samp{kA} -String of input characters sent by the ``insert line'' key, if there is -one. - -@item @samp{kN} -String of input characters sent by the ``next page'' key, if there is -one. - -@item @samp{kP} -String of input characters sent by the ``previous page'' key, if there is -one. - -@item @samp{kF} -String of input characters sent by the ``scroll forward'' key, if there -is one. - -@item @samp{kR} -String of input characters sent by the ``scroll reverse'' key, if there -is one. - -@item @samp{kT} -String of input characters sent by the ``set tab stop in this column'' -key, if there is one. - -@item @samp{ko} -String listing the other function keys the terminal has. This is a -very obsolete way of describing the same information found in the -@samp{kH} @dots{} @samp{kT} keys. The string contains a list of -two-character termcap capability names, separated by commas. The -meaning is that for each capability name listed, the terminal has a -key which sends the string which is the value of that capability. For -example, the value @samp{:ko=cl,ll,sf,sr:} says that the terminal has -four function keys which mean ``clear screen'', ``home down'', -``scroll forward'' and ``scroll reverse''.@refill -@end table - -@node Meta Key, Initialization, Keypad, Capabilities -@section Meta Key - -@cindex meta key -A Meta key is a key on the keyboard that modifies each character you type -by controlling the 0200 bit. This bit is on if and only if the Meta key is -held down when the character is typed. Characters typed using the Meta key -are called Meta characters. Emacs uses Meta characters as editing -commands. - -@table @samp -@item km -@kindex km -Flag whose presence means that the terminal has a Meta key. - -@item mm -@kindex mm -String of commands to enable the functioning of the Meta key. - -@item mo -@kindex mo -String of commands to disable the functioning of the Meta key. -@end table - -If the terminal has @samp{km} but does not have @samp{mm} and @samp{mo}, it -means that the Meta key always functions. If it has @samp{mm} and -@samp{mo}, it means that the Meta key can be turned on or off. Send the -@samp{mm} string to turn it on, and the @samp{mo} string to turn it off. -I do not know why one would ever not want it to be on. - -@node Initialization, Pad Specs, Meta Key, Capabilities -@section Initialization -@cindex reset -@cindex initialization -@cindex tab stops - -@table @samp -@item ti -@kindex ti -String of commands to put the terminal into whatever special modes are -needed or appropriate for programs that move the cursor -nonsequentially around the screen. Programs that use termcap to do -full-screen display should output this string when they start up. - -@item te -@kindex te -String of commands to undo what is done by the @samp{ti} string. -Programs that output the @samp{ti} string on entry should output this -string when they exit. - -@item is -@kindex is -String of commands to initialize the terminal for each login session. - -@item if -@kindex if -String which is the name of a file containing the string of commands -to initialize the terminal for each session of use. Normally @samp{is} -and @samp{if} are not both used. - -@item i1 -@itemx i3 -@kindex i1 -@kindex i3 -Two more strings of commands to initialize the terminal for each login -session. The @samp{i1} string (if defined) is output before @samp{is} -or @samp{if}, and the @samp{i3} string (if defined) is output after. - -The reason for having three separate initialization strings is to make -it easier to define a group of related terminal types with slightly -different initializations. Define two or three of the strings in the -basic type; then the other types can override one or two of the -strings. - -@item rs -@kindex rs -String of commands to reset the terminal from any strange mode it may -be in. Normally this includes the @samp{is} string (or other commands -with the same effects) and more. What would go in the @samp{rs} -string but not in the @samp{is} string are annoying or slow commands -to bring the terminal back from strange modes that nobody would -normally use. - -@item it -@kindex it -Numeric value, the initial spacing between hardware tab stop columns -when the terminal is powered up. Programs to initialize the terminal -can use this to decide whether there is a need to set the tab stops. -If the initial width is 8, well and good; if it is not 8, then the -tab stops should be set; if they cannot be set, the kernel is told -to convert tabs to spaces, and other programs will observe this and do -likewise. - -@item ct -@kindex ct -String of commands to clear all tab stops. - -@item st -@kindex st -String of commands to set tab stop at current cursor column on all -lines. - -@item NF -@kindex NF -Flag whose presence means that the terminal does not support XON/XOFF -flow control. Programs should not send XON (@kbd{C-q}) or XOFF -(@kbd{C-s}) characters to the terminal. -@end table - -@node Pad Specs, Status Line, Initialization, Capabilities -@section Padding Capabilities -@cindex padding - -There are two terminal capabilities that exist just to explain the proper -way to obey the padding specifications in all the command string -capabilities. One, @samp{pc}, must be obeyed by all termcap-using -programs. - -@table @samp -@item pb -@kindex pb -Numeric value, the lowest baud rate at which padding is actually -needed. Programs may check this and refrain from doing any padding at -lower speeds. - -@item pc -@kindex pc -String of commands for padding. The first character of this string is -to be used as the pad character, instead of using null characters for -padding. If @samp{pc} is not provided, use null characters. Every -program that uses termcap must look up this capability and use it to -set the variable @code{PC} that is used by @code{tputs}. -@xref{Padding}. -@end table - -Some termcap capabilities exist just to specify the amount of padding that -the kernel should give to cursor motion commands used in ordinary -sequential output. - -@table @samp -@item dC -@kindex dC -Numeric value, the number of msec of padding needed for the -carriage-return character. - -@item dN -@kindex dN -Numeric value, the number of msec of padding needed for the newline -(linefeed) character. - -@item dB -@kindex dB -Numeric value, the number of msec of padding needed for the backspace -character. - -@item dF -@kindex dF -Numeric value, the number of msec of padding needed for the formfeed -character. - -@item dT -@kindex dT -Numeric value, the number of msec of padding needed for the tab -character. -@end table - -In some systems, the kernel uses the above capabilities; in other systems, -the kernel uses the paddings specified in the string capabilities -@samp{cr}, @samp{sf}, @samp{le}, @samp{ff} and @samp{ta}. Descriptions of -terminals which require such padding should contain the @samp{dC} @dots{} -@samp{dT} capabilities and also specify the appropriate padding in the -corresponding string capabilities. Since no modern terminals require -padding for ordinary sequential output, you probably won't need to do -either of these things. - -@node Status Line, Half-Line, Pad Specs, Capabilities -@section Status Line - -@cindex status line -A @dfn{status line} is a line on the terminal that is not used for ordinary -display output but instead used for a special message. The intended use is -for a continuously updated description of what the user's program is doing, -and that is where the name ``status line'' comes from, but in fact it could -be used for anything. The distinguishing characteristic of a status line -is that ordinary output to the terminal does not affect it; it changes only -if the special status line commands of this section are used. - -@table @samp -@item hs -@kindex hs -Flag whose presence means that the terminal has a status line. If a -terminal description specifies that there is a status line, it must -provide the @samp{ts} and @samp{fs} capabilities. - -@item ts -@kindex ts -String of commands to move the terminal cursor into the status line. -Usually these commands must specifically record the old cursor -position for the sake of the @samp{fs} string. - -@item fs -@kindex fs -String of commands to move the cursor back from the status line to its -previous position (outside the status line). - -@item es -@kindex es -Flag whose presence means that other display commands work while -writing the status line. In other words, one can clear parts of it, -insert or delete characters, move the cursor within it using @samp{ch} -if there is a @samp{ch} capability, enter and leave standout mode, and -so on. - -@item ds -@kindex ds -String of commands to disable the display of the status line. This -may be absent, if there is no way to disable the status line display. - -@item ws -@kindex ws -Numeric value, the width of the status line. If this capability is -absent in a terminal that has a status line, it means the status line -is the same width as the other lines. - -Note that the value of @samp{ws} is sometimes as small as 8. -@end table - -@node Half-Line, Printer, Status Line, Capabilities -@section Half-Line Motion - -Some terminals have commands for moving the cursor vertically by half-lines, -useful for outputting subscripts and superscripts. Mostly it is hardcopy -terminals that have such features. - -@table @samp -@item hu -@kindex hu -String of commands to move the cursor up half a line. If the terminal -is a display, it is your responsibility to avoid moving up past the -top line; however, most likely the terminal that supports this is a -hardcopy terminal and there is nothing to be concerned about. - -@item hd -@kindex hd -String of commands to move the cursor down half a line. If the -terminal is a display, it is your responsibility to avoid moving down -past the bottom line, etc. -@end table - -@node Printer, , Half-Line, Capabilities -@section Controlling Printers Attached to Terminals -@cindex printer - -Some terminals have attached hardcopy printer ports. They may be able to -copy the screen contents to the printer; they may also be able to redirect -output to the printer. Termcap does not have anything to tell the program -whether the redirected output appears also on the screen; it does on some -terminals but not all. - -@table @samp -@item ps -@kindex ps -String of commands to cause the contents of the screen to be printed. -If it is absent, the screen contents cannot be printed. - -@item po -@kindex po -String of commands to redirect further output to the printer. - -@item pf -@kindex pf -String of commands to terminate redirection of output to the printer. -This capability must be present in the description if @samp{po} is. - -@item pO -@kindex pO -String of commands to redirect output to the printer for next @var{n} -characters of output, regardless of what they are. Redirection will -end automatically after @var{n} characters of further output. Until -then, nothing that is output can end redirection, not even the -@samp{pf} string if there is one. The number @var{n} should not be -more than 255. - -One use of this capability is to send non-text byte sequences (such as -bit-maps) to the printer. -@end table - -Most terminals with printers do not support all of @samp{ps}, @samp{po} and -@samp{pO}; any one or two of them may be supported. To make a program that -can send output to all kinds of printers, it is necessary to check for all -three of these capabilities, choose the most convenient of the ones that -are provided, and use it in its own appropriate fashion. - -@node Summary, Var Index, Capabilities, Top -@chapter Summary of Capability Names - -Here are all the terminal capability names in alphabetical order -with a brief description of each. For cross references to their definitions, -see the index of capability names (@pxref{Cap Index}). - -@table @samp -@item ae -String to turn off alternate character set mode. -@item al -String to insert a blank line before the cursor. -@item AL -String to insert @var{n} blank lines before the cursor. -@item am -Flag: output to last column wraps cursor to next line. -@item as -String to turn on alternate character set mode.like. -@item bc -Very obsolete alternative name for the @samp{le} capability. -@item bl -String to sound the bell. -@item bs -Obsolete flag: ASCII backspace may be used for leftward motion. -@item bt -String to move the cursor left to the previous hardware tab stop column. -@item bw -Flag: @samp{le} at left margin wraps to end of previous line. -@item CC -String to change terminal's command character. -@item cd -String to clear the line the cursor is on, and following lines. -@item ce -String to clear from the cursor to the end of the line. -@item ch -String to position the cursor at column @var{c} in the same line. -@item cl -String to clear the entire screen and put cursor at upper left corner. -@item cm -String to position the cursor at line @var{l}, column @var{c}. -@item CM -String to position the cursor at line @var{l}, column -@var{c}, relative to display memory. -@item co -Number: width of the screen. -@item cr -String to move cursor sideways to left margin. -@item cs -String to set the scroll region. -@item cS -Alternate form of string to set the scroll region. -@item ct -String to clear all tab stops. -@item cv -String to position the cursor at line @var{l} in the same column. -@item da -Flag: data scrolled off top of screen may be scrolled back. -@item db -Flag: data scrolled off bottom of screen may be scrolled back. -@item dB -Obsolete number: msec of padding needed for the backspace character. -@item dc -String to delete one character position at the cursor. -@item dC -Obsolete number: msec of padding needed for the carriage-return character. -@item DC -String to delete @var{n} characters starting at the cursor. -@item dF -Obsolete number: msec of padding needed for the formfeed character. -@item dl -String to delete the line the cursor is on. -@item DL -String to delete @var{n} lines starting with the cursor's line. -@item dm -String to enter delete mode. -@item dN -Obsolete number: msec of padding needed for the newline character. -@item do -String to move the cursor vertically down one line. -@item DO -String to move cursor vertically down @var{n} lines. -@item ds -String to disable the display of the status line. -@item dT -Obsolete number: msec of padding needed for the tab character. -@item ec -String of commands to clear @var{n} characters at cursor. -@item ed -String to exit delete mode. -@item ei -String to leave insert mode. -@item eo -Flag: output of a space can erase an overstrike. -@item es -Flag: other display commands work while writing the status line. -@item ff -String to advance to the next page, for a hardcopy terminal. -@item fs -String to move the cursor back from the status line to its -previous position (outside the status line). -@item gn -Flag: this terminal type is generic, not real. -@item hc -Flag: hardcopy terminal. -@item hd -String to move the cursor down half a line. -@item ho -String to position cursor at upper left corner. -@item hs -Flag: the terminal has a status line. -@item hu -String to move the cursor up half a line. -@item hz -Flag: terminal cannot accept @samp{~} as output. -@item i1 -String to initialize the terminal for each login session. -@item i3 -String to initialize the terminal for each login session. -@item ic -String to insert one character position at the cursor. -@item IC -String to insert @var{n} character positions at the cursor. -@item if -String naming a file of commands to initialize the terminal. -@item im -String to enter insert mode. -@item in -Flag: outputting a space is different from moving over empty positions. -@item ip -String to output following an inserted character in insert mode. -@item is -String to initialize the terminal for each login session. -@item it -Number: initial spacing between hardware tab stop columns. -@item k0 -String of input sent by function key 0 or 10. -@item k1 @dots{} k9 -Strings of input sent by function keys 1 through 9. -@item K1 @dots{} K5 -Strings sent by the five other keys in 3-by-3 array with arrows. -@item ka -String of input sent by the ``clear all tabs'' key. -@item kA -String of input sent by the ``insert line'' key. -@item kb -String of input sent by the ``backspace'' key. -@item kC -String of input sent by the ``clear screen'' key. -@item kd -String of input sent by typing the down-arrow key. -@item kD -String of input sent by the ``delete character'' key. -@item ke -String to make the function keys work locally. -@item kE -String of input sent by the ``clear to end of line'' key. -@item kF -String of input sent by the ``scroll forward'' key. -@item kh -String of input sent by typing the ``home-position'' key. -@item kH -String of input sent by the ``home down'' key. -@item kI -String of input sent by the ``insert character'' or ``enter -insert mode'' key. -@item kl -String of input sent by typing the left-arrow key. -@item kL -String of input sent by the ``delete line'' key. -@item km -Flag: the terminal has a Meta key. -@item kM -String of input sent by the ``exit insert mode'' key. -@item kn -Numeric value, the number of numbered function keys. -@item kN -String of input sent by the ``next page'' key. -@item ko -Very obsolete string listing the terminal's named function keys. -@item kP -String of input sent by the ``previous page'' key. -@item kr -String of input sent by typing the right-arrow key. -@item kR -String of input sent by the ``scroll reverse'' key. -@item ks -String to make the function keys transmit. -@item kS -String of input sent by the ``clear to end of screen'' key. -@item kt -String of input sent by the ``clear tab stop this column'' key. -@item kT -String of input sent by the ``set tab stop in this column'' key. -@item ku -String of input sent by typing the up-arrow key. -@item l0 -String on keyboard labelling function key 0 or 10. -@item l1 @dots{} l9 -Strings on keyboard labelling function keys 1 through 9. -@item le -String to move the cursor left one column. -@item LE -String to move cursor left @var{n} columns. -@item li -Number: height of the screen. -@item ll -String to position cursor at lower left corner. -@item lm -Number: lines of display memory. -@item LP -Flag: writing to last column of last line will not scroll. -@item mb -String to enter blinking mode. -@item md -String to enter double-bright mode. -@item me -String to turn off all appearance modes -@item mh -String to enter half-bright mode. -@item mi -Flag: cursor motion in insert mode is safe. -@item mk -String to enter invisible mode. -@item mm -String to enable the functioning of the Meta key. -@item mo -String to disable the functioning of the Meta key. -@item mp -String to enter protected mode. -@item mr -String to enter reverse-video mode. -@item ms -Flag: cursor motion in standout mode is safe. -@item nc -Obsolete flag: do not use ASCII carriage-return on this terminal. -@item nd -String to move the cursor right one column. -@item NF -Flag: do not use XON/XOFF flow control. -@item nl -Obsolete alternative name for the @samp{do} and @samp{sf} capabilities. -@item ns -Flag: the terminal does not normally scroll for sequential output. -@item nw -String to move to start of next line, possibly clearing rest of old line. -@item os -Flag: terminal can overstrike. -@item pb -Number: the lowest baud rate at which padding is actually needed. -@item pc -String containing character for padding. -@item pf -String to terminate redirection of output to the printer. -@item po -String to redirect further output to the printer. -@item pO -String to redirect @var{n} characters ofoutput to the printer. -@item ps -String to print the screen on the attached printer. -@item rc -String to move to last saved cursor position. -@item RI -String to move cursor right @var{n} columns. -@item rp -String to output character @var{c} repeated @var{n} times. -@item rs -String to reset the terminal from any strange modes. -@item sa -String to turn on an arbitrary combination of appearance modes. -@item sc -String to save the current cursor position. -@item se -String to leave standout mode. -@item sf -String to scroll the screen one line up. -@item SF -String to scroll the screen @var{n} lines up. -@item sg -Number: width of magic standout cookie. Absent if magic cookies are -not used. -@item so -String to enter standout mode. -@item sr -String to scroll the screen one line down. -@item SR -String to scroll the screen @var{n} line down. -@item st -String to set tab stop at current cursor column on all lines. -programs. -@item ta -String to move the cursor right to the next hardware tab stop column. -@item te -String to return terminal to settings for sequential output. -@item ti -String to initialize terminal for random cursor motion. -@item ts -String to move the terminal cursor into the status line. -@item uc -String to underline one character and move cursor right. -@item ue -String to turn off underline mode -@item ug -Number: width of underlining magic cookie. Absent if underlining -doesn't use magic cookies. -@item ul -Flag: underline by overstriking with an underscore. -@item up -String to move the cursor vertically up one line. -@item UP -String to move cursor vertically up @var{n} lines. -@item us -String to turn on underline mode -@item vb -String to make the screen flash. -@item ve -String to return the cursor to normal. -@item vi -String to make the cursor invisible. -@item vs -String to enhance the cursor. -@item wi -String to set the terminal output screen window. -@item ws -Number: the width of the status line. -@item xb -Flag: superbee terminal. -@item xn -Flag: cursor wraps in a strange way. -@item xs -Flag: clearing a line is the only way to clear the appearance modes of -positions in that line (or, only way to remove magic cookies on that -line). -@item xt -Flag: Teleray 1061; several strange characteristics. -@end table - -@node Var Index, Cap Index, Summary, Top -@unnumbered Variable and Function Index - -@printindex fn - -@node Cap Index, Index, Var Index, Top -@unnumbered Capability Index - -@printindex ky - -@node Index, , Cap Index, Top -@unnumbered Concept Index - -@printindex cp - -@contents -@bye diff --git a/lib/termcap/grot/texinfo.tex b/lib/termcap/grot/texinfo.tex deleted file mode 100644 index f62e9f56d..000000000 --- a/lib/termcap/grot/texinfo.tex +++ /dev/null @@ -1,4422 +0,0 @@ -%% TeX macros to handle texinfo files - -% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 1994 Free Software Foundation, Inc. - -%This texinfo.tex file is free software; you can redistribute it and/or -%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. - -%This texinfo.tex file 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 this texinfo.tex file; see the file COPYING. If not, write -%to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, -%USA. - - -%In other words, you are welcome to use, share and improve this program. -%You are forbidden to forbid anyone else to use, share and improve -%what you give them. Help stamp out software-hoarding! - - -% Send bug reports to bug-texinfo@prep.ai.mit.edu. -% Please include a *precise* test case in each bug report. - - -% Make it possible to create a .fmt file just by loading this file: -% if the underlying format is not loaded, start by loading it now. -% Added by gildea November 1993. -\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi - -% This automatically updates the version number based on RCS. -\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} -\deftexinfoversion$Revision: 2.146 $ -\message{Loading texinfo package [Version \texinfoversion]:} - -% If in a .fmt file, print the version number -% and turn on active characters that we couldn't do earlier because -% they might have appeared in the input file name. -\everyjob{\message{[Texinfo version \texinfoversion]}\message{} - \catcode`+=\active \catcode`\_=\active} - -% Save some parts of plain tex whose names we will redefine. - -\let\ptextilde=\~ -\let\ptexlbrace=\{ -\let\ptexrbrace=\} -\let\ptexdots=\dots -\let\ptexdot=\. -\let\ptexstar=\* -\let\ptexend=\end -\let\ptexbullet=\bullet -\let\ptexb=\b -\let\ptexc=\c -\let\ptexi=\i -\let\ptext=\t -\let\ptexl=\l -\let\ptexL=\L - -% Be sure we're in horizontal mode when doing a tie, since we make space -% equivalent to this in @example-like environments. Otherwise, a space -% at the beginning of a line will start with \penalty -- and -% since \penalty is valid in vertical mode, we'd end up putting the -% penalty on the vertical list instead of in the new paragraph. -{\catcode`@ = 11 - \gdef\tie{\leavevmode\penalty\@M\ } -} -\let\~ = \tie % And make it available as @~. - -\message{Basics,} -\chardef\other=12 - -% If this character appears in an error message or help string, it -% starts a new line in the output. -\newlinechar = `^^J - -% Set up fixed words for English. -\ifx\putwordChapter\undefined{\gdef\putwordChapter{Chapter}}\fi% -\def\putwordInfo{Info}% -\ifx\putwordSee\undefined{\gdef\putwordSee{See}}\fi% -\ifx\putwordsee\undefined{\gdef\putwordsee{see}}\fi% -\ifx\putwordfile\undefined{\gdef\putwordfile{file}}\fi% -\ifx\putwordpage\undefined{\gdef\putwordpage{page}}\fi% -\ifx\putwordsection\undefined{\gdef\putwordsection{section}}\fi% -\ifx\putwordSection\undefined{\gdef\putwordSection{Section}}\fi% -\ifx\putwordTableofContents\undefined{\gdef\putwordTableofContents{Table of Contents}}\fi% -\ifx\putwordShortContents\undefined{\gdef\putwordShortContents{Short Contents}}\fi% -\ifx\putwordAppendix\undefined{\gdef\putwordAppendix{Appendix}}\fi% - -% Ignore a token. -% -\def\gobble#1{} - -\hyphenation{ap-pen-dix} -\hyphenation{mini-buf-fer mini-buf-fers} -\hyphenation{eshell} - -% Margin to add to right of even pages, to left of odd pages. -\newdimen \bindingoffset \bindingoffset=0pt -\newdimen \normaloffset \normaloffset=\hoffset -\newdimen\pagewidth \newdimen\pageheight -\pagewidth=\hsize \pageheight=\vsize - -% Sometimes it is convenient to have everything in the transcript file -% and nothing on the terminal. We don't just call \tracingall here, -% since that produces some useless output on the terminal. -% -\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% -\def\loggingall{\tracingcommands2 \tracingstats2 - \tracingpages1 \tracingoutput1 \tracinglostchars1 - \tracingmacros2 \tracingparagraphs1 \tracingrestores1 - \showboxbreadth\maxdimen\showboxdepth\maxdimen -}% - -%---------------------Begin change----------------------- -% -%%%% For @cropmarks command. -% Dimensions to add cropmarks at corners Added by P. A. MacKay, 12 Nov. 1986 -% -\newdimen\cornerlong \newdimen\cornerthick -\newdimen \topandbottommargin -\newdimen \outerhsize \newdimen \outervsize -\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks -\outerhsize=7in -%\outervsize=9.5in -% Alternative @smallbook page size is 9.25in -\outervsize=9.25in -\topandbottommargin=.75in -% -%---------------------End change----------------------- - -% \onepageout takes a vbox as an argument. Note that \pagecontents -% does insertions itself, but you have to call it yourself. -\chardef\PAGE=255 \output={\onepageout{\pagecontents\PAGE}} -\def\onepageout#1{\hoffset=\normaloffset -\ifodd\pageno \advance\hoffset by \bindingoffset -\else \advance\hoffset by -\bindingoffset\fi -{\escapechar=`\\\relax % makes sure backslash is used in output files. -\shipout\vbox{{\let\hsize=\pagewidth \makeheadline} \pagebody{#1}% -{\let\hsize=\pagewidth \makefootline}}}% -\advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi} - -%%%% For @cropmarks command %%%% - -% Here is a modification of the main output routine for Near East Publications -% This provides right-angle cropmarks at all four corners. -% The contents of the page are centerlined into the cropmarks, -% and any desired binding offset is added as an \hskip on either -% site of the centerlined box. (P. A. MacKay, 12 November, 1986) -% -\def\croppageout#1{\hoffset=0pt % make sure this doesn't mess things up -{\escapechar=`\\\relax % makes sure backslash is used in output files. - \shipout - \vbox to \outervsize{\hsize=\outerhsize - \vbox{\line{\ewtop\hfill\ewtop}} - \nointerlineskip - \line{\vbox{\moveleft\cornerthick\nstop} - \hfill - \vbox{\moveright\cornerthick\nstop}} - \vskip \topandbottommargin - \centerline{\ifodd\pageno\hskip\bindingoffset\fi - \vbox{ - {\let\hsize=\pagewidth \makeheadline} - \pagebody{#1} - {\let\hsize=\pagewidth \makefootline}} - \ifodd\pageno\else\hskip\bindingoffset\fi} - \vskip \topandbottommargin plus1fill minus1fill - \boxmaxdepth\cornerthick - \line{\vbox{\moveleft\cornerthick\nsbot} - \hfill - \vbox{\moveright\cornerthick\nsbot}} - \nointerlineskip - \vbox{\line{\ewbot\hfill\ewbot}} - }} - \advancepageno - \ifnum\outputpenalty>-20000 \else\dosupereject\fi} -% -% Do @cropmarks to get crop marks -\def\cropmarks{\let\onepageout=\croppageout } - -\newinsert\margin \dimen\margin=\maxdimen - -\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} -{\catcode`\@ =11 -\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi -% marginal hacks, juha@viisa.uucp (Juha Takala) -\ifvoid\margin\else % marginal info is present - \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi -\dimen@=\dp#1 \unvbox#1 -\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi -\ifr@ggedbottom \kern-\dimen@ \vfil \fi} -} - -% -% Here are the rules for the cropmarks. Note that they are -% offset so that the space between them is truly \outerhsize or \outervsize -% (P. A. MacKay, 12 November, 1986) -% -\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} -\def\nstop{\vbox - {\hrule height\cornerthick depth\cornerlong width\cornerthick}} -\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} -\def\nsbot{\vbox - {\hrule height\cornerlong depth\cornerthick width\cornerthick}} - -% Parse an argument, then pass it to #1. The argument is the rest of -% the input line (except we remove a trailing comment). #1 should be a -% macro which expects an ordinary undelimited TeX argument. -% -\def\parsearg#1{% - \let\next = #1% - \begingroup - \obeylines - \futurelet\temp\parseargx -} - -% If the next token is an obeyed space (from an @example environment or -% the like), remove it and recurse. Otherwise, we're done. -\def\parseargx{% - % \obeyedspace is defined far below, after the definition of \sepspaces. - \ifx\obeyedspace\temp - \expandafter\parseargdiscardspace - \else - \expandafter\parseargline - \fi -} - -% Remove a single space (as the delimiter token to the macro call). -{\obeyspaces % - \gdef\parseargdiscardspace {\futurelet\temp\parseargx}} - -{\obeylines % - \gdef\parseargline#1^^M{% - \endgroup % End of the group started in \parsearg. - % - % First remove any @c comment, then any @comment. - % Result of each macro is put in \toks0. - \argremovec #1\c\relax % - \expandafter\argremovecomment \the\toks0 \comment\relax % - % - % Call the caller's macro, saved as \next in \parsearg. - \expandafter\next\expandafter{\the\toks0}% - }% -} - -% Since all \c{,omment} does is throw away the argument, we can let TeX -% do that for us. The \relax here is matched by the \relax in the call -% in \parseargline; it could be more or less anything, its purpose is -% just to delimit the argument to the \c. -\def\argremovec#1\c#2\relax{\toks0 = {#1}} -\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}} - -% \argremovec{,omment} might leave us with trailing spaces, though; e.g., -% @end itemize @c foo -% will have two active spaces as part of the argument with the -% `itemize'. Here we remove all active spaces from #1, and assign the -% result to \toks0. -% -% This loses if there are any *other* active characters besides spaces -% in the argument -- _ ^ +, for example -- since they get expanded. -% Fortunately, Texinfo does not define any such commands. (If it ever -% does, the catcode of the characters in questionwill have to be changed -% here.) But this means we cannot call \removeactivespaces as part of -% \argremovec{,omment}, since @c uses \parsearg, and thus the argument -% that \parsearg gets might well have any character at all in it. -% -\def\removeactivespaces#1{% - \begingroup - \ignoreactivespaces - \edef\temp{#1}% - \global\toks0 = \expandafter{\temp}% - \endgroup -} - -% Change the active space to expand to nothing. -% -\begingroup - \obeyspaces - \gdef\ignoreactivespaces{\obeyspaces\let =\empty} -\endgroup - - -\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} - -%% These are used to keep @begin/@end levels from running away -%% Call \inENV within environments (after a \begingroup) -\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi} -\def\ENVcheck{% -\ifENV\errmessage{Still within an environment. Type Return to continue.} -\endgroup\fi} % This is not perfect, but it should reduce lossage - -% @begin foo is the same as @foo, for now. -\newhelp\EMsimple{Type to continue.} - -\outer\def\begin{\parsearg\beginxxx} - -\def\beginxxx #1{% -\expandafter\ifx\csname #1\endcsname\relax -{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else -\csname #1\endcsname\fi} - -% @end foo executes the definition of \Efoo. -% -\def\end{\parsearg\endxxx} -\def\endxxx #1{% - \removeactivespaces{#1}% - \edef\endthing{\the\toks0}% - % - \expandafter\ifx\csname E\endthing\endcsname\relax - \expandafter\ifx\csname \endthing\endcsname\relax - % There's no \foo, i.e., no ``environment'' foo. - \errhelp = \EMsimple - \errmessage{Undefined command `@end \endthing'}% - \else - \unmatchedenderror\endthing - \fi - \else - % Everything's ok; the right environment has been started. - \csname E\endthing\endcsname - \fi -} - -% There is an environment #1, but it hasn't been started. Give an error. -% -\def\unmatchedenderror#1{% - \errhelp = \EMsimple - \errmessage{This `@end #1' doesn't have a matching `@#1'}% -} - -% Define the control sequence \E#1 to give an unmatched @end error. -% -\def\defineunmatchedend#1{% - \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}% -} - - -% Single-spacing is done by various environments (specifically, in -% \nonfillstart and \quotations). -\newskip\singlespaceskip \singlespaceskip = 12.5pt -\def\singlespace{% - % Why was this kern here? It messes up equalizing space above and below - % environments. --karl, 6may93 - %{\advance \baselineskip by -\singlespaceskip - %\kern \baselineskip}% - \setleading \singlespaceskip -} - -%% Simple single-character @ commands - -% @@ prints an @ -% Kludge this until the fonts are right (grr). -\def\@{{\tt \char '100}} - -% This is turned off because it was never documented -% and you can use @w{...} around a quote to suppress ligatures. -%% Define @` and @' to be the same as ` and ' -%% but suppressing ligatures. -%\def\`{{`}} -%\def\'{{'}} - -% Used to generate quoted braces. - -\def\mylbrace {{\tt \char '173}} -\def\myrbrace {{\tt \char '175}} -\let\{=\mylbrace -\let\}=\myrbrace - -% @: forces normal size whitespace following. -\def\:{\spacefactor=1000 } - -% @* forces a line break. -\def\*{\hfil\break\hbox{}\ignorespaces} - -% @. is an end-of-sentence period. -\def\.{.\spacefactor=3000 } - -% @enddots{} is an end-of-sentence ellipsis. -\gdef\enddots{$\mathinner{\ldotp\ldotp\ldotp\ldotp}$\spacefactor=3000} - -% @! is an end-of-sentence bang. -\gdef\!{!\spacefactor=3000 } - -% @? is an end-of-sentence query. -\gdef\?{?\spacefactor=3000 } - -% @w prevents a word break. Without the \leavevmode, @w at the -% beginning of a paragraph, when TeX is still in vertical mode, would -% produce a whole line of output instead of starting the paragraph. -\def\w#1{\leavevmode\hbox{#1}} - -% @group ... @end group forces ... to be all on one page, by enclosing -% it in a TeX vbox. We use \vtop instead of \vbox to construct the box -% to keep its height that of a normal line. According to the rules for -% \topskip (p.114 of the TeXbook), the glue inserted is -% max (\topskip - \ht (first item), 0). If that height is large, -% therefore, no glue is inserted, and the space between the headline and -% the text is small, which looks bad. -% -\def\group{\begingroup - \ifnum\catcode13=\active \else - \errhelp = \groupinvalidhelp - \errmessage{@group invalid in context where filling is enabled}% - \fi - % - % The \vtop we start below produces a box with normal height and large - % depth; thus, TeX puts \baselineskip glue before it, and (when the - % next line of text is done) \lineskip glue after it. (See p.82 of - % the TeXbook.) Thus, space below is not quite equal to space - % above. But it's pretty close. - \def\Egroup{% - \egroup % End the \vtop. - \endgroup % End the \group. - }% - % - \vtop\bgroup - % We have to put a strut on the last line in case the @group is in - % the midst of an example, rather than completely enclosing it. - % Otherwise, the interline space between the last line of the group - % and the first line afterwards is too small. But we can't put the - % strut in \Egroup, since there it would be on a line by itself. - % Hence this just inserts a strut at the beginning of each line. - \everypar = {\strut}% - % - % Since we have a strut on every line, we don't need any of TeX's - % normal interline spacing. - \offinterlineskip - % - % OK, but now we have to do something about blank - % lines in the input in @example-like environments, which normally - % just turn into \lisppar, which will insert no space now that we've - % turned off the interline space. Simplest is to make them be an - % empty paragraph. - \ifx\par\lisppar - \edef\par{\leavevmode \par}% - % - % Reset ^^M's definition to new definition of \par. - \obeylines - \fi - % - % Do @comment since we are called inside an environment such as - % @example, where each end-of-line in the input causes an - % end-of-line in the output. We don't want the end-of-line after - % the `@group' to put extra space in the output. Since @group - % should appear on a line by itself (according to the Texinfo - % manual), we don't worry about eating any user text. - \comment -} -% -% TeX puts in an \escapechar (i.e., `@') at the beginning of the help -% message, so this ends up printing `@group can only ...'. -% -\newhelp\groupinvalidhelp{% -group can only be used in environments such as @example,^^J% -where each line of input produces a line of output.} - -% @need space-in-mils -% forces a page break if there is not space-in-mils remaining. - -\newdimen\mil \mil=0.001in - -\def\need{\parsearg\needx} - -% Old definition--didn't work. -%\def\needx #1{\par % -%% This method tries to make TeX break the page naturally -%% if the depth of the box does not fit. -%{\baselineskip=0pt% -%\vtop to #1\mil{\vfil}\kern -#1\mil\penalty 10000 -%\prevdepth=-1000pt -%}} - -\def\needx#1{% - % Go into vertical mode, so we don't make a big box in the middle of a - % paragraph. - \par - % - % Don't add any leading before our big empty box, but allow a page - % break, since the best break might be right here. - \allowbreak - \nointerlineskip - \vtop to #1\mil{\vfil}% - % - % TeX does not even consider page breaks if a penalty added to the - % main vertical list is 10000 or more. But in order to see if the - % empty box we just added fits on the page, we must make it consider - % page breaks. On the other hand, we don't want to actually break the - % page after the empty box. So we use a penalty of 9999. - % - % There is an extremely small chance that TeX will actually break the - % page at this \penalty, if there are no other feasible breakpoints in - % sight. (If the user is using lots of big @group commands, which - % almost-but-not-quite fill up a page, TeX will have a hard time doing - % good page breaking, for example.) However, I could not construct an - % example where a page broke at this \penalty; if it happens in a real - % document, then we can reconsider our strategy. - \penalty9999 - % - % Back up by the size of the box, whether we did a page break or not. - \kern -#1\mil - % - % Do not allow a page break right after this kern. - \nobreak -} - -% @br forces paragraph break - -\let\br = \par - -% @dots{} output some dots - -\def\dots{$\ldots$} - -% @page forces the start of a new page - -\def\page{\par\vfill\supereject} - -% @exdent text.... -% outputs text on separate line in roman font, starting at standard page margin - -% This records the amount of indent in the innermost environment. -% That's how much \exdent should take out. -\newskip\exdentamount - -% This defn is used inside fill environments such as @defun. -\def\exdent{\parsearg\exdentyyy} -\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}} - -% This defn is used inside nofill environments such as @example. -\def\nofillexdent{\parsearg\nofillexdentyyy} -\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount -\leftline{\hskip\leftskip{\rm#1}}}} - -%\hbox{{\rm#1}}\hfil\break}} - -% @include file insert text of that file as input. - -\def\include{\parsearg\includezzz} -%Use \input\thisfile to avoid blank after \input, which may be an active -%char (in which case the blank would become the \input argument). -%The grouping keeps the value of \thisfile correct even when @include -%is nested. -\def\includezzz #1{\begingroup -\def\thisfile{#1}\input\thisfile -\endgroup} - -\def\thisfile{} - -% @center line outputs that line, centered - -\def\center{\parsearg\centerzzz} -\def\centerzzz #1{{\advance\hsize by -\leftskip -\advance\hsize by -\rightskip -\centerline{#1}}} - -% @sp n outputs n lines of vertical space - -\def\sp{\parsearg\spxxx} -\def\spxxx #1{\par \vskip #1\baselineskip} - -% @comment ...line which is ignored... -% @c is the same as @comment -% @ignore ... @end ignore is another way to write a comment - -\def\comment{\catcode 64=\other \catcode 123=\other \catcode 125=\other% -\parsearg \commentxxx} - -\def\commentxxx #1{\catcode 64=0 \catcode 123=1 \catcode 125=2 } - -\let\c=\comment - -% Prevent errors for section commands. -% Used in @ignore and in failing conditionals. -\def\ignoresections{% -\let\chapter=\relax -\let\unnumbered=\relax -\let\top=\relax -\let\unnumberedsec=\relax -\let\unnumberedsection=\relax -\let\unnumberedsubsec=\relax -\let\unnumberedsubsection=\relax -\let\unnumberedsubsubsec=\relax -\let\unnumberedsubsubsection=\relax -\let\section=\relax -\let\subsec=\relax -\let\subsubsec=\relax -\let\subsection=\relax -\let\subsubsection=\relax -\let\appendix=\relax -\let\appendixsec=\relax -\let\appendixsection=\relax -\let\appendixsubsec=\relax -\let\appendixsubsection=\relax -\let\appendixsubsubsec=\relax -\let\appendixsubsubsection=\relax -\let\contents=\relax -\let\smallbook=\relax -\let\titlepage=\relax -} - -% Used in nested conditionals, where we have to parse the Texinfo source -% and so want to turn off most commands, in case they are used -% incorrectly. -% -\def\ignoremorecommands{% - \let\defcv = \relax - \let\deffn = \relax - \let\deffnx = \relax - \let\defindex = \relax - \let\defivar = \relax - \let\defmac = \relax - \let\defmethod = \relax - \let\defop = \relax - \let\defopt = \relax - \let\defspec = \relax - \let\deftp = \relax - \let\deftypefn = \relax - \let\deftypefun = \relax - \let\deftypevar = \relax - \let\deftypevr = \relax - \let\defun = \relax - \let\defvar = \relax - \let\defvr = \relax - \let\ref = \relax - \let\xref = \relax - \let\printindex = \relax - \let\pxref = \relax - \let\settitle = \relax - \let\include = \relax - \let\lowersections = \relax - \let\down = \relax - \let\raisesections = \relax - \let\up = \relax - \let\set = \relax - \let\clear = \relax - \let\item = \relax - \let\message = \relax -} - -% Ignore @ignore ... @end ignore. -% -\def\ignore{\doignore{ignore}} - -% Also ignore @ifinfo, @ifhtml, @html, @menu, and @direntry text. -% -\def\ifinfo{\doignore{ifinfo}} -\def\ifhtml{\doignore{ifhtml}} -\def\html{\doignore{html}} -\def\menu{\doignore{menu}} -\def\direntry{\doignore{direntry}} - -% Ignore text until a line `@end #1'. -% -\def\doignore#1{\begingroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define a command to swallow text until we reach `@end #1'. - \long\def\doignoretext##1\end #1{\enddoignore}% - % - % Make sure that spaces turn into tokens that match what \doignoretext wants. - \catcode32 = 10 - % - % And now expand that command. - \doignoretext -} - -% What we do to finish off ignored text. -% -\def\enddoignore{\endgroup\ignorespaces}% - -\newif\ifwarnedobs\warnedobsfalse -\def\obstexwarn{% - \ifwarnedobs\relax\else - % We need to warn folks that they may have trouble with TeX 3.0. - % This uses \immediate\write16 rather than \message to get newlines. - \immediate\write16{} - \immediate\write16{***WARNING*** for users of Unix TeX 3.0!} - \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).} - \immediate\write16{If you are running another version of TeX, relax.} - \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} - \immediate\write16{ Then upgrade your TeX installation if you can.} - \immediate\write16{If you are stuck with version 3.0, run the} - \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} - \immediate\write16{ to use a workaround.} - \immediate\write16{} - \warnedobstrue - \fi -} - -% **In TeX 3.0, setting text in \nullfont hangs tex. For a -% workaround (which requires the file ``dummy.tfm'' to be installed), -% uncomment the following line: -%%%%%\font\nullfont=dummy\let\obstexwarn=\relax - -% Ignore text, except that we keep track of conditional commands for -% purposes of nesting, up to an `@end #1' command. -% -\def\nestedignore#1{% - \obstexwarn - % We must actually expand the ignored text to look for the @end - % command, so that nested ignore constructs work. Thus, we put the - % text into a \vbox and then do nothing with the result. To minimize - % the change of memory overflow, we follow the approach outlined on - % page 401 of the TeXbook: make the current font be a dummy font. - % - \setbox0 = \vbox\bgroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define `@end #1' to end the box, which will in turn undefine the - % @end command again. - \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}% - % - % We are going to be parsing Texinfo commands. Most cause no - % trouble when they are used incorrectly, but some commands do - % complicated argument parsing or otherwise get confused, so we - % undefine them. - % - % We can't do anything about stray @-signs, unfortunately; - % they'll produce `undefined control sequence' errors. - \ignoremorecommands - % - % Set the current font to be \nullfont, a TeX primitive, and define - % all the font commands to also use \nullfont. We don't use - % dummy.tfm, as suggested in the TeXbook, because not all sites - % might have that installed. Therefore, math mode will still - % produce output, but that should be an extremely small amount of - % stuff compared to the main input. - % - \nullfont - \let\tenrm = \nullfont \let\tenit = \nullfont \let\tensl = \nullfont - \let\tenbf = \nullfont \let\tentt = \nullfont \let\smallcaps = \nullfont - \let\tensf = \nullfont - % Similarly for index fonts (mostly for their use in - % smallexample) - \let\indrm = \nullfont \let\indit = \nullfont \let\indsl = \nullfont - \let\indbf = \nullfont \let\indtt = \nullfont \let\indsc = \nullfont - \let\indsf = \nullfont - % - % Don't complain when characters are missing from the fonts. - \tracinglostchars = 0 - % - % Don't bother to do space factor calculations. - \frenchspacing - % - % Don't report underfull hboxes. - \hbadness = 10000 - % - % Do minimal line-breaking. - \pretolerance = 10000 - % - % Do not execute instructions in @tex - \def\tex{\doignore{tex}} -} - -% @set VAR sets the variable VAR to an empty value. -% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. -% -% Since we want to separate VAR from REST-OF-LINE (which might be -% empty), we can't just use \parsearg; we have to insert a space of our -% own to delimit the rest of the line, and then take it out again if we -% didn't need it. -% -\def\set{\parsearg\setxxx} -\def\setxxx#1{\setyyy#1 \endsetyyy} -\def\setyyy#1 #2\endsetyyy{% - \def\temp{#2}% - \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty - \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted. - \fi -} -% Can't use \xdef to pre-expand #2 and save some time, since \temp or -% \next or other control sequences that we've defined might get us into -% an infinite loop. Consider `@set foo @cite{bar}'. -\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}} - -% @clear VAR clears (i.e., unsets) the variable VAR. -% -\def\clear{\parsearg\clearxxx} -\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax} - -% @value{foo} gets the text saved in variable foo. -% -\def\value#1{\expandafter - \ifx\csname SET#1\endcsname\relax - {\{No value for ``#1''\}} - \else \csname SET#1\endcsname \fi} - -% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined -% with @set. -% -\def\ifset{\parsearg\ifsetxxx} -\def\ifsetxxx #1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \expandafter\ifsetfail - \else - \expandafter\ifsetsucceed - \fi -} -\def\ifsetsucceed{\conditionalsucceed{ifset}} -\def\ifsetfail{\nestedignore{ifset}} -\defineunmatchedend{ifset} - -% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been -% defined with @set, or has been undefined with @clear. -% -\def\ifclear{\parsearg\ifclearxxx} -\def\ifclearxxx #1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \expandafter\ifclearsucceed - \else - \expandafter\ifclearfail - \fi -} -\def\ifclearsucceed{\conditionalsucceed{ifclear}} -\def\ifclearfail{\nestedignore{ifclear}} -\defineunmatchedend{ifclear} - -% @iftex always succeeds; we read the text following, through @end -% iftex). But `@end iftex' should be valid only after an @iftex. -% -\def\iftex{\conditionalsucceed{iftex}} -\defineunmatchedend{iftex} - -% We can't just want to start a group at @iftex (for example) and end it -% at @end iftex, since then @set commands inside the conditional have no -% effect (they'd get reverted at the end of the group). So we must -% define \Eiftex to redefine itself to be its previous value. (We can't -% just define it to fail again with an ``unmatched end'' error, since -% the @ifset might be nested.) -% -\def\conditionalsucceed#1{% - \edef\temp{% - % Remember the current value of \E#1. - \let\nece{prevE#1} = \nece{E#1}% - % - % At the `@end #1', redefine \E#1 to be its previous value. - \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}% - }% - \temp -} - -% We need to expand lots of \csname's, but we don't want to expand the -% control sequences after we've constructed them. -% -\def\nece#1{\expandafter\noexpand\csname#1\endcsname} - -% @asis just yields its argument. Used with @table, for example. -% -\def\asis#1{#1} - -% @math means output in math mode. -% We don't use $'s directly in the definition of \math because control -% sequences like \math are expanded when the toc file is written. Then, -% we read the toc file back, the $'s will be normal characters (as they -% should be, according to the definition of Texinfo). So we must use a -% control sequence to switch into and out of math mode. -% -% This isn't quite enough for @math to work properly in indices, but it -% seems unlikely it will ever be needed there. -% -\let\implicitmath = $ -\def\math#1{\implicitmath #1\implicitmath} - -% @bullet and @minus need the same treatment as @math, just above. -\def\bullet{\implicitmath\ptexbullet\implicitmath} -\def\minus{\implicitmath-\implicitmath} - -\def\node{\ENVcheck\parsearg\nodezzz} -\def\nodezzz#1{\nodexxx [#1,]} -\def\nodexxx[#1,#2]{\gdef\lastnode{#1}} -\let\nwnode=\node -\let\lastnode=\relax - -\def\donoderef{\ifx\lastnode\relax\else -\expandafter\expandafter\expandafter\setref{\lastnode}\fi -\global\let\lastnode=\relax} - -\def\unnumbnoderef{\ifx\lastnode\relax\else -\expandafter\expandafter\expandafter\unnumbsetref{\lastnode}\fi -\global\let\lastnode=\relax} - -\def\appendixnoderef{\ifx\lastnode\relax\else -\expandafter\expandafter\expandafter\appendixsetref{\lastnode}\fi -\global\let\lastnode=\relax} - -\let\refill=\relax - -% @setfilename is done at the beginning of every texinfo file. -% So open here the files we need to have open while reading the input. -% This makes it possible to make a .fmt file for texinfo. -\def\setfilename{% - \readauxfile - \opencontents - \openindices - \fixbackslash % Turn off hack to swallow `\input texinfo'. - \global\let\setfilename=\comment % Ignore extra @setfilename cmds. - \comment % Ignore the actual filename. -} - -\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} - -\def\inforef #1{\inforefzzz #1,,,,**} -\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, - node \samp{\ignorespaces#1{}}} - -\message{fonts,} - -% Font-change commands. - -% Texinfo supports the sans serif font style, which plain TeX does not. -% So we set up a \sf analogous to plain's \rm, etc. -\newfam\sffam -\def\sf{\fam=\sffam \tensf} -\let\li = \sf % Sometimes we call it \li, not \sf. - -%% Try out Computer Modern fonts at \magstephalf -\let\mainmagstep=\magstephalf - -% Set the font macro #1 to the font named #2, adding on the -% specified font prefix (normally `cm'). -\def\setfont#1#2{\font#1=\fontprefix#2} - -% Use cm as the default font prefix. -% To specify the font prefix, you must define \fontprefix -% before you read in texinfo.tex. -\ifx\fontprefix\undefined -\def\fontprefix{cm} -\fi - -\ifx\bigger\relax -\let\mainmagstep=\magstep1 -\setfont\textrm{r12} -\setfont\texttt{tt12} -\else -\setfont\textrm{r10 scaled \mainmagstep} -\setfont\texttt{tt10 scaled \mainmagstep} -\fi -% Instead of cmb10, you many want to use cmbx10. -% cmbx10 is a prettier font on its own, but cmb10 -% looks better when embedded in a line with cmr10. -\setfont\textbf{b10 scaled \mainmagstep} -\setfont\textit{ti10 scaled \mainmagstep} -\setfont\textsl{sl10 scaled \mainmagstep} -\setfont\textsf{ss10 scaled \mainmagstep} -\setfont\textsc{csc10 scaled \mainmagstep} -\font\texti=cmmi10 scaled \mainmagstep -\font\textsy=cmsy10 scaled \mainmagstep - -% A few fonts for @defun, etc. -\setfont\defbf{bx10 scaled \magstep1} %was 1314 -\setfont\deftt{tt10 scaled \magstep1} -\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf} - -% Fonts for indices and small examples. -% We actually use the slanted font rather than the italic, -% because texinfo normally uses the slanted fonts for that. -% Do not make many font distinctions in general in the index, since they -% aren't very useful. -\setfont\ninett{tt9} -\setfont\indrm{r9} -\setfont\indit{sl9} -\let\indsl=\indit -\let\indtt=\ninett -\let\indsf=\indrm -\let\indbf=\indrm -\setfont\indsc{csc10 at 9pt} -\font\indi=cmmi9 -\font\indsy=cmsy9 - -% Fonts for headings -\setfont\chaprm{bx12 scaled \magstep2} -\setfont\chapit{ti12 scaled \magstep2} -\setfont\chapsl{sl12 scaled \magstep2} -\setfont\chaptt{tt12 scaled \magstep2} -\setfont\chapsf{ss12 scaled \magstep2} -\let\chapbf=\chaprm -\setfont\chapsc{csc10 scaled\magstep3} -\font\chapi=cmmi12 scaled \magstep2 -\font\chapsy=cmsy10 scaled \magstep3 - -\setfont\secrm{bx12 scaled \magstep1} -\setfont\secit{ti12 scaled \magstep1} -\setfont\secsl{sl12 scaled \magstep1} -\setfont\sectt{tt12 scaled \magstep1} -\setfont\secsf{ss12 scaled \magstep1} -\setfont\secbf{bx12 scaled \magstep1} -\setfont\secsc{csc10 scaled\magstep2} -\font\seci=cmmi12 scaled \magstep1 -\font\secsy=cmsy10 scaled \magstep2 - -% \setfont\ssecrm{bx10 scaled \magstep1} % This size an font looked bad. -% \setfont\ssecit{cmti10 scaled \magstep1} % The letters were too crowded. -% \setfont\ssecsl{sl10 scaled \magstep1} -% \setfont\ssectt{tt10 scaled \magstep1} -% \setfont\ssecsf{ss10 scaled \magstep1} - -%\setfont\ssecrm{b10 scaled 1315} % Note the use of cmb rather than cmbx. -%\setfont\ssecit{ti10 scaled 1315} % Also, the size is a little larger than -%\setfont\ssecsl{sl10 scaled 1315} % being scaled magstep1. -%\setfont\ssectt{tt10 scaled 1315} -%\setfont\ssecsf{ss10 scaled 1315} - -%\let\ssecbf=\ssecrm - -\setfont\ssecrm{bx12 scaled \magstephalf} -\setfont\ssecit{ti12 scaled \magstephalf} -\setfont\ssecsl{sl12 scaled \magstephalf} -\setfont\ssectt{tt12 scaled \magstephalf} -\setfont\ssecsf{ss12 scaled \magstephalf} -\setfont\ssecbf{bx12 scaled \magstephalf} -\setfont\ssecsc{csc10 scaled \magstep1} -\font\sseci=cmmi12 scaled \magstephalf -\font\ssecsy=cmsy10 scaled \magstep1 -% The smallcaps and symbol fonts should actually be scaled \magstep1.5, -% but that is not a standard magnification. - -% Fonts for title page: -\setfont\titlerm{bx12 scaled \magstep3} -\let\authorrm = \secrm - -% In order for the font changes to affect most math symbols and letters, -% we have to define the \textfont of the standard families. Since -% texinfo doesn't allow for producing subscripts and superscripts, we -% don't bother to reset \scriptfont and \scriptscriptfont (which would -% also require loading a lot more fonts). -% -\def\resetmathfonts{% - \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy - \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf - \textfont\ttfam = \tentt \textfont\sffam = \tensf -} - - -% The font-changing commands redefine the meanings of \tenSTYLE, instead -% of just \STYLE. We do this so that font changes will continue to work -% in math mode, where it is the current \fam that is relevant in most -% cases, not the current. Plain TeX does, for example, -% \def\bf{\fam=\bffam \tenbf} By redefining \tenbf, we obviate the need -% to redefine \bf itself. -\def\textfonts{% - \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl - \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc - \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy - \resetmathfonts} -\def\chapfonts{% - \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl - \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc - \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy - \resetmathfonts} -\def\secfonts{% - \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl - \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc - \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy - \resetmathfonts} -\def\subsecfonts{% - \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl - \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc - \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy - \resetmathfonts} -\def\indexfonts{% - \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl - \let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc - \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy - \resetmathfonts} - -% Set up the default fonts, so we can use them for creating boxes. -% -\textfonts - -% Count depth in font-changes, for error checks -\newcount\fontdepth \fontdepth=0 - -% Fonts for short table of contents. -\setfont\shortcontrm{r12} -\setfont\shortcontbf{bx12} -\setfont\shortcontsl{sl12} - -%% Add scribe-like font environments, plus @l for inline lisp (usually sans -%% serif) and @ii for TeX italic - -% \smartitalic{ARG} outputs arg in italics, followed by an italic correction -% unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} -\def\smartitalic#1{{\sl #1}\futurelet\next\smartitalicx} - -\let\i=\smartitalic -\let\var=\smartitalic -\let\dfn=\smartitalic -\let\emph=\smartitalic -\let\cite=\smartitalic - -\def\b#1{{\bf #1}} -\let\strong=\b - -% We can't just use \exhyphenpenalty, because that only has effect at -% the end of a paragraph. Restore normal hyphenation at the end of the -% group within which \nohyphenation is presumably called. -% -\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} -\def\restorehyphenation{\hyphenchar\font = `- } - -\def\t#1{% - {\tt \rawbackslash \frenchspacing #1}% - \null -} -\let\ttfont=\t -\def\samp #1{`\tclose{#1}'\null} -\def\key #1{{\tt \nohyphenation \uppercase{#1}}\null} -\def\ctrl #1{{\tt \rawbackslash \hat}#1} - -\let\file=\samp - -% @code is a modification of @t, -% which makes spaces the same size as normal in the surrounding text. -\def\tclose#1{% - {% - % Change normal interword space to be same as for the current font. - \spaceskip = \fontdimen2\font - % - % Switch to typewriter. - \tt - % - % But `\ ' produces the large typewriter interword space. - \def\ {{\spaceskip = 0pt{} }}% - % - % Turn off hyphenation. - \nohyphenation - % - \rawbackslash - \frenchspacing - #1% - }% - \null -} - -% We *must* turn on hyphenation at `-' and `_' in \code. -% Otherwise, it is too hard to avoid overful hboxes -% in the Emacs manual, the Library manual, etc. - -% Unfortunately, TeX uses one parameter (\hyphenchar) to control -% both hyphenation at - and hyphenation within words. -% We must therefore turn them both off (\tclose does that) -% and arrange explicitly to hyphenate an a dash. -% -- rms. -{ -\catcode`\-=\active -\catcode`\_=\active -\global\def\code{\begingroup \catcode`\-=\active \let-\codedash \catcode`\_=\active \let_\codeunder \codex} -% The following is used by \doprintindex to insure that long function names -% wrap around. It is necessary for - and _ to be active before the index is -% read from the file, as \entry parses the arguments long before \code is -% ever called. -- mycroft -\global\def\indexbreaks{\catcode`\-=\active \let-\realdash \catcode`\_=\active \let_\realunder} -} - -\def\realdash{-} -\def\realunder{_} -\def\codedash{-\discretionary{}{}{}} -\def\codeunder{\normalunderscore\discretionary{}{}{}} -\def\codex #1{\tclose{#1}\endgroup} - -%\let\exp=\tclose %Was temporary - -% @kbd is like @code, except that if the argument is just one @key command, -% then @kbd has no effect. - -\def\xkey{\key} -\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% -\ifx\one\xkey\ifx\threex\three \key{#2}% -\else\tclose{\look}\fi -\else\tclose{\look}\fi} - -% Typeset a dimension, e.g., `in' or `pt'. The only reason for the -% argument is to make the input look right: @dmn{pt} instead of -% @dmn{}pt. -% -\def\dmn#1{\thinspace #1} - -\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} - -\def\l#1{{\li #1}\null} % - -\def\r#1{{\rm #1}} % roman font -% Use of \lowercase was suggested. -\def\sc#1{{\smallcaps#1}} % smallcaps font -\def\ii#1{{\it #1}} % italic font - -\message{page headings,} - -\newskip\titlepagetopglue \titlepagetopglue = 1.5in -\newskip\titlepagebottomglue \titlepagebottomglue = 2pc - -% First the title page. Must do @settitle before @titlepage. -\def\titlefont#1{{\titlerm #1}} - -\newif\ifseenauthor -\newif\iffinishedtitlepage - -\def\shorttitlepage{\parsearg\shorttitlepagezzz} -\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% - \endgroup\page\hbox{}\page} - -\def\titlepage{\begingroup \parindent=0pt \textfonts - \let\subtitlerm=\tenrm -% I deinstalled the following change because \cmr12 is undefined. -% This change was not in the ChangeLog anyway. --rms. -% \let\subtitlerm=\cmr12 - \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% - % - \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}% - % - % Leave some space at the very top of the page. - \vglue\titlepagetopglue - % - % Now you can print the title using @title. - \def\title{\parsearg\titlezzz}% - \def\titlezzz##1{\leftline{\titlefont{##1}} - % print a rule at the page bottom also. - \finishedtitlepagefalse - \vskip4pt \hrule height 4pt width \hsize \vskip4pt}% - % No rule at page bottom unless we print one at the top with @title. - \finishedtitlepagetrue - % - % Now you can put text using @subtitle. - \def\subtitle{\parsearg\subtitlezzz}% - \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}% - % - % @author should come last, but may come many times. - \def\author{\parsearg\authorzzz}% - \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi - {\authorfont \leftline{##1}}}% - % - % Most title ``pages'' are actually two pages long, with space - % at the top of the second. We don't want the ragged left on the second. - \let\oldpage = \page - \def\page{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - \oldpage - \let\page = \oldpage - \hbox{}}% -% \def\page{\oldpage \hbox{}} -} - -\def\Etitlepage{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - % It is important to do the page break before ending the group, - % because the headline and footline are only empty inside the group. - % If we use the new definition of \page, we always get a blank page - % after the title page, which we certainly don't want. - \oldpage - \endgroup - \HEADINGSon -} - -\def\finishtitlepage{% - \vskip4pt \hrule height 2pt width \hsize - \vskip\titlepagebottomglue - \finishedtitlepagetrue -} - -%%% Set up page headings and footings. - -\let\thispage=\folio - -\newtoks \evenheadline % Token sequence for heading line of even pages -\newtoks \oddheadline % Token sequence for heading line of odd pages -\newtoks \evenfootline % Token sequence for footing line of even pages -\newtoks \oddfootline % Token sequence for footing line of odd pages - -% Now make Tex use those variables -\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline - \else \the\evenheadline \fi}} -\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline - \else \the\evenfootline \fi}\HEADINGShook} -\let\HEADINGShook=\relax - -% Commands to set those variables. -% For example, this is what @headings on does -% @evenheading @thistitle|@thispage|@thischapter -% @oddheading @thischapter|@thispage|@thistitle -% @evenfooting @thisfile|| -% @oddfooting ||@thisfile - -\def\evenheading{\parsearg\evenheadingxxx} -\def\oddheading{\parsearg\oddheadingxxx} -\def\everyheading{\parsearg\everyheadingxxx} - -\def\evenfooting{\parsearg\evenfootingxxx} -\def\oddfooting{\parsearg\oddfootingxxx} -\def\everyfooting{\parsearg\everyfootingxxx} - -{\catcode`\@=0 % - -\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish} -\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{% -\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish} -\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{% -\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\everyheadingxxx #1{\everyheadingyyy #1@|@|@|@|\finish} -\gdef\everyheadingyyy #1@|#2@|#3@|#4\finish{% -\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}} -\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish} -\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{% -\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish} -\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{% -\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\everyfootingxxx #1{\everyfootingyyy #1@|@|@|@|\finish} -\gdef\everyfootingyyy #1@|#2@|#3@|#4\finish{% -\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}} -\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -% -}% unbind the catcode of @. - -% @headings double turns headings on for double-sided printing. -% @headings single turns headings on for single-sided printing. -% @headings off turns them off. -% @headings on same as @headings double, retained for compatibility. -% @headings after turns on double-sided headings after this page. -% @headings doubleafter turns on double-sided headings after this page. -% @headings singleafter turns on single-sided headings after this page. -% By default, they are off. - -\def\headings #1 {\csname HEADINGS#1\endcsname} - -\def\HEADINGSoff{ -\global\evenheadline={\hfil} \global\evenfootline={\hfil} -\global\oddheadline={\hfil} \global\oddfootline={\hfil}} -\HEADINGSoff -% When we turn headings on, set the page number to 1. -% For double-sided printing, put current file name in lower left corner, -% chapter name on inside top of right hand pages, document -% title on inside top of left hand pages, and page numbers on outside top -% edge of all pages. -\def\HEADINGSdouble{ -%\pagealignmacro -\global\pageno=1 -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\folio\hfil\thistitle}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -} -% For single-sided printing, chapter title goes across top left of page, -% page number on top right. -\def\HEADINGSsingle{ -%\pagealignmacro -\global\pageno=1 -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\thischapter\hfil\folio}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -} -\def\HEADINGSon{\HEADINGSdouble} - -\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} -\let\HEADINGSdoubleafter=\HEADINGSafter -\def\HEADINGSdoublex{% -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\folio\hfil\thistitle}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -} - -\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} -\def\HEADINGSsinglex{% -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\thischapter\hfil\folio}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -} - -% Subroutines used in generating headings -% Produces Day Month Year style of output. -\def\today{\number\day\space -\ifcase\month\or -January\or February\or March\or April\or May\or June\or -July\or August\or September\or October\or November\or December\fi -\space\number\year} - -% Use this if you want the Month Day, Year style of output. -%\def\today{\ifcase\month\or -%January\or February\or March\or April\or May\or June\or -%July\or August\or September\or October\or November\or December\fi -%\space\number\day, \number\year} - -% @settitle line... specifies the title of the document, for headings -% It generates no output of its own - -\def\thistitle{No Title} -\def\settitle{\parsearg\settitlezzz} -\def\settitlezzz #1{\gdef\thistitle{#1}} - -\message{tables,} - -% @tabs -- simple alignment - -% These don't work. For one thing, \+ is defined as outer. -% So these macros cannot even be defined. - -%\def\tabs{\parsearg\tabszzz} -%\def\tabszzz #1{\settabs\+#1\cr} -%\def\tabline{\parsearg\tablinezzz} -%\def\tablinezzz #1{\+#1\cr} -%\def\&{&} - -% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x). - -% default indentation of table text -\newdimen\tableindent \tableindent=.8in -% default indentation of @itemize and @enumerate text -\newdimen\itemindent \itemindent=.3in -% margin between end of table item and start of table text. -\newdimen\itemmargin \itemmargin=.1in - -% used internally for \itemindent minus \itemmargin -\newdimen\itemmax - -% Note @table, @vtable, and @vtable define @item, @itemx, etc., with -% these defs. -% They also define \itemindex -% to index the item name in whatever manner is desired (perhaps none). - -\newif\ifitemxneedsnegativevskip - -\def\itemxpar{\par\ifitemxneedsnegativevskip\vskip-\parskip\nobreak\fi} - -\def\internalBitem{\smallbreak \parsearg\itemzzz} -\def\internalBitemx{\itemxpar \parsearg\itemzzz} - -\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz} -\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz} - -\def\internalBkitem{\smallbreak \parsearg\kitemzzz} -\def\internalBkitemx{\itemxpar \parsearg\kitemzzz} - -\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}% - \itemzzz {#1}} - -\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}% - \itemzzz {#1}} - -\def\itemzzz #1{\begingroup % - \advance\hsize by -\rightskip - \advance\hsize by -\tableindent - \setbox0=\hbox{\itemfont{#1}}% - \itemindex{#1}% - \nobreak % This prevents a break before @itemx. - % - % Be sure we are not still in the middle of a paragraph. - %{\parskip = 0in - %\par - %}% - % - % If the item text does not fit in the space we have, put it on a line - % by itself, and do not allow a page break either before or after that - % line. We do not start a paragraph here because then if the next - % command is, e.g., @kindex, the whatsit would get put into the - % horizontal list on a line by itself, resulting in extra blank space. - \ifdim \wd0>\itemmax - % - % Make this a paragraph so we get the \parskip glue and wrapping, - % but leave it ragged-right. - \begingroup - \advance\leftskip by-\tableindent - \advance\hsize by\tableindent - \advance\rightskip by0pt plus1fil - \leavevmode\unhbox0\par - \endgroup - % - % We're going to be starting a paragraph, but we don't want the - % \parskip glue -- logically it's part of the @item we just started. - \nobreak \vskip-\parskip - % - % Stop a page break at the \parskip glue coming up. Unfortunately - % we can't prevent a possible page break at the following - % \baselineskip glue. - \nobreak - \endgroup - \itemxneedsnegativevskipfalse - \else - % The item text fits into the space. Start a paragraph, so that the - % following text (if any) will end up on the same line. Since that - % text will be indented by \tableindent, we make the item text be in - % a zero-width box. - \noindent - \rlap{\hskip -\tableindent\box0}\ignorespaces% - \endgroup% - \itemxneedsnegativevskiptrue% - \fi -} - -\def\item{\errmessage{@item while not in a table}} -\def\itemx{\errmessage{@itemx while not in a table}} -\def\kitem{\errmessage{@kitem while not in a table}} -\def\kitemx{\errmessage{@kitemx while not in a table}} -\def\xitem{\errmessage{@xitem while not in a table}} -\def\xitemx{\errmessage{@xitemx while not in a table}} - -%% Contains a kludge to get @end[description] to work -\def\description{\tablez{\dontindex}{1}{}{}{}{}} - -\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex} -{\obeylines\obeyspaces% -\gdef\tablex #1^^M{% -\tabley\dontindex#1 \endtabley}} - -\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex} -{\obeylines\obeyspaces% -\gdef\ftablex #1^^M{% -\tabley\fnitemindex#1 \endtabley -\def\Eftable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex} -{\obeylines\obeyspaces% -\gdef\vtablex #1^^M{% -\tabley\vritemindex#1 \endtabley -\def\Evtable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\dontindex #1{} -\def\fnitemindex #1{\doind {fn}{\code{#1}}}% -\def\vritemindex #1{\doind {vr}{\code{#1}}}% - -{\obeyspaces % -\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup% -\tablez{#1}{#2}{#3}{#4}{#5}{#6}}} - -\def\tablez #1#2#3#4#5#6{% -\aboveenvbreak % -\begingroup % -\def\Edescription{\Etable}% Neccessary kludge. -\let\itemindex=#1% -\ifnum 0#3>0 \advance \leftskip by #3\mil \fi % -\ifnum 0#4>0 \tableindent=#4\mil \fi % -\ifnum 0#5>0 \advance \rightskip by #5\mil \fi % -\def\itemfont{#2}% -\itemmax=\tableindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \tableindent % -\exdentamount=\tableindent -\parindent = 0pt -\parskip = \smallskipamount -\ifdim \parskip=0pt \parskip=2pt \fi% -\def\Etable{\endgraf\afterenvbreak\endgroup}% -\let\item = \internalBitem % -\let\itemx = \internalBitemx % -\let\kitem = \internalBkitem % -\let\kitemx = \internalBkitemx % -\let\xitem = \internalBxitem % -\let\xitemx = \internalBxitemx % -} - -% This is the counter used by @enumerate, which is really @itemize - -\newcount \itemno - -\def\itemize{\parsearg\itemizezzz} - -\def\itemizezzz #1{% - \begingroup % ended by the @end itemsize - \itemizey {#1}{\Eitemize} -} - -\def\itemizey #1#2{% -\aboveenvbreak % -\itemmax=\itemindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \itemindent % -\exdentamount=\itemindent -\parindent = 0pt % -\parskip = \smallskipamount % -\ifdim \parskip=0pt \parskip=2pt \fi% -\def#2{\endgraf\afterenvbreak\endgroup}% -\def\itemcontents{#1}% -\let\item=\itemizeitem} - -% Set sfcode to normal for the chars that usually have another value. -% These are `.?!:;,' -\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000 - \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 } - -% \splitoff TOKENS\endmark defines \first to be the first token in -% TOKENS, and \rest to be the remainder. -% -\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% - -% Allow an optional argument of an uppercase letter, lowercase letter, -% or number, to specify the first label in the enumerated list. No -% argument is the same as `1'. -% -\def\enumerate{\parsearg\enumeratezzz} -\def\enumeratezzz #1{\enumeratey #1 \endenumeratey} -\def\enumeratey #1 #2\endenumeratey{% - \begingroup % ended by the @end enumerate - % - % If we were given no argument, pretend we were given `1'. - \def\thearg{#1}% - \ifx\thearg\empty \def\thearg{1}\fi - % - % Detect if the argument is a single token. If so, it might be a - % letter. Otherwise, the only valid thing it can be is a number. - % (We will always have one token, because of the test we just made. - % This is a good thing, since \splitoff doesn't work given nothing at - % all -- the first parameter is undelimited.) - \expandafter\splitoff\thearg\endmark - \ifx\rest\empty - % Only one token in the argument. It could still be anything. - % A ``lowercase letter'' is one whose \lccode is nonzero. - % An ``uppercase letter'' is one whose \lccode is both nonzero, and - % not equal to itself. - % Otherwise, we assume it's a number. - % - % We need the \relax at the end of the \ifnum lines to stop TeX from - % continuing to look for a . - % - \ifnum\lccode\expandafter`\thearg=0\relax - \numericenumerate % a number (we hope) - \else - % It's a letter. - \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax - \lowercaseenumerate % lowercase letter - \else - \uppercaseenumerate % uppercase letter - \fi - \fi - \else - % Multiple tokens in the argument. We hope it's a number. - \numericenumerate - \fi -} - -% An @enumerate whose labels are integers. The starting integer is -% given in \thearg. -% -\def\numericenumerate{% - \itemno = \thearg - \startenumeration{\the\itemno}% -} - -% The starting (lowercase) letter is in \thearg. -\def\lowercaseenumerate{% - \itemno = \expandafter`\thearg - \startenumeration{% - % Be sure we're not beyond the end of the alphabet. - \ifnum\itemno=0 - \errmessage{No more lowercase letters in @enumerate; get a bigger - alphabet}% - \fi - \char\lccode\itemno - }% -} - -% The starting (uppercase) letter is in \thearg. -\def\uppercaseenumerate{% - \itemno = \expandafter`\thearg - \startenumeration{% - % Be sure we're not beyond the end of the alphabet. - \ifnum\itemno=0 - \errmessage{No more uppercase letters in @enumerate; get a bigger - alphabet} - \fi - \char\uccode\itemno - }% -} - -% Call itemizey, adding a period to the first argument and supplying the -% common last two arguments. Also subtract one from the initial value in -% \itemno, since @item increments \itemno. -% -\def\startenumeration#1{% - \advance\itemno by -1 - \itemizey{#1.}\Eenumerate\flushcr -} - -% @alphaenumerate and @capsenumerate are abbreviations for giving an arg -% to @enumerate. -% -\def\alphaenumerate{\enumerate{a}} -\def\capsenumerate{\enumerate{A}} -\def\Ealphaenumerate{\Eenumerate} -\def\Ecapsenumerate{\Eenumerate} - -% Definition of @item while inside @itemize. - -\def\itemizeitem{% -\advance\itemno by 1 -{\let\par=\endgraf \smallbreak}% -\ifhmode \errmessage{\in hmode at itemizeitem}\fi -{\parskip=0in \hskip 0pt -\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}% -\vadjust{\penalty 1200}}% -\flushcr} - -% @multitable macros -% Amy Hendrickson, 8/18/94 -% -% @multitable ... @endmultitable will make as many columns as desired. -% Contents of each column will wrap at width given in preamble. Width -% can be specified either with sample text given in a template line, -% or in percent of \hsize, the current width of text on page. - -% Table can continue over pages but will only break between lines. - -% To make preamble: -% -% Either define widths of columns in terms of percent of \hsize: -% @multitable @percentofhsize .2 .3 .5 -% @item ... -% -% Numbers following @percentofhsize are the percent of the total -% current hsize to be used for each column. You may use as many -% columns as desired. - -% Or use a template: -% @multitable {Column 1 template} {Column 2 template} {Column 3 template} -% @item ... -% using the widest term desired in each column. - - -% Each new table line starts with @item, each subsequent new column -% starts with @tab. Empty columns may be produced by supplying @tab's -% with nothing between them for as many times as empty columns are needed, -% ie, @tab@tab@tab will produce two empty columns. - -% @item, @tab, @multicolumn or @endmulticolumn do not need to be on their -% own lines, but it will not hurt if they are. - -% Sample multitable: - -% @multitable {Column 1 template} {Column 2 template} {Column 3 template} -% @item first col stuff @tab second col stuff @tab third col -% @item -% first col stuff -% @tab -% second col stuff -% @tab -% third col -% @item first col stuff @tab second col stuff -% @tab Many paragraphs of text may be used in any column. -% -% They will wrap at the width determined by the template. -% @item@tab@tab This will be in third column. -% @endmultitable - -% Default dimensions may be reset by user. -% @intableparskip will set vertical space between paragraphs in table. -% @intableparindent will set paragraph indent in table. -% @spacebetweencols will set horizontal space to be left between columns. -% @spacebetweenlines will set vertical space to be left between lines. - -%%%% -% Dimensions - -\newdimen\intableparskip -\newdimen\intableparindent -\newdimen\spacebetweencols -\newdimen\spacebetweenlines -\intableparskip=0pt -\intableparindent=6pt -\spacebetweencols=12pt -\spacebetweenlines=12pt - -%%%% -% Macros used to set up halign preamble: -\let\endsetuptable\relax -\def\xendsetuptable{\endsetuptable} -\let\percentofhsize\relax -\def\xpercentofhsize{\percentofhsize} -\newif\ifsetpercent - -\newcount\colcount -\def\setuptable#1{\def\firstarg{#1}% -\ifx\firstarg\xendsetuptable\let\go\relax% -\else - \ifx\firstarg\xpercentofhsize\global\setpercenttrue% - \else - \ifsetpercent - \if#1.\else% - \global\advance\colcount by1 % - \expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}% - \fi - \else - \global\advance\colcount by1 - \setbox0=\hbox{#1}% - \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% - \fi% - \fi% - \let\go\setuptable% -\fi\go} -%%%% -% multitable syntax -\def\tab{&} - -%%%% -% @multitable ... @endmultitable definitions: - -\def\multitable#1\item{\bgroup -\let\item\cr -\tolerance=9500 -\hbadness=9500 -\parskip=\intableparskip -\parindent=\intableparindent -\overfullrule=0pt -\global\colcount=0\relax% -\def\Emultitable{\global\setpercentfalse\global\everycr{}\cr\egroup\egroup}% - % To parse everything between @multitable and @item : -\def\one{#1}\expandafter\setuptable\one\endsetuptable - % Need to reset this to 0 after \setuptable. -\global\colcount=0\relax% - % - % This preamble sets up a generic column definition, which will - % be used as many times as user calls for columns. - % \vtop will set a single line and will also let text wrap and - % continue for many paragraphs if desired. -\halign\bgroup&\global\advance\colcount by 1\relax% -\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname - % In order to keep entries from bumping into each other - % we will add a \leftskip of \spacebetweencols to all columns after - % the first one. - % If a template has been used, we will add \spacebetweencols - % to the width of each template entry. - % If user has set preamble in terms of percent of \hsize - % we will use that dimension as the width of the column, and - % the \leftskip will keep entries from bumping into each other. - % Table will start at left margin and final column will justify at - % right margin. -\ifnum\colcount=1 -\else - \ifsetpercent - \else - % If user has set preamble in terms of percent of \hsize - % we will advance \hsize by \spacebetweencols - \advance\hsize by \spacebetweencols - \fi - % In either case we will make \leftskip=\spacebetweencols: -\leftskip=\spacebetweencols -\fi -\noindent##}\cr% - % \everycr will reset column counter, \colcount, at the end of - % each line. Every column entry will cause \colcount to advance by one. - % The table preamble - % looks at the current \colcount to find the correct column width. -\global\everycr{\noalign{\nointerlineskip\vskip\spacebetweenlines -\filbreak%% keeps underfull box messages off when table breaks over pages. -\global\colcount=0\relax}}} - -\message{indexing,} -% Index generation facilities - -% Define \newwrite to be identical to plain tex's \newwrite -% except not \outer, so it can be used within \newindex. -{\catcode`\@=11 -\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}} - -% \newindex {foo} defines an index named foo. -% It automatically defines \fooindex such that -% \fooindex ...rest of line... puts an entry in the index foo. -% It also defines \fooindfile to be the number of the output channel for -% the file that accumulates this index. The file's extension is foo. -% The name of an index should be no more than 2 characters long -% for the sake of vms. - -\def\newindex #1{ -\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file -\openout \csname#1indfile\endcsname \jobname.#1 % Open the file -\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex -\noexpand\doindex {#1}} -} - -% @defindex foo == \newindex{foo} - -\def\defindex{\parsearg\newindex} - -% Define @defcodeindex, like @defindex except put all entries in @code. - -\def\newcodeindex #1{ -\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file -\openout \csname#1indfile\endcsname \jobname.#1 % Open the file -\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex -\noexpand\docodeindex {#1}} -} - -\def\defcodeindex{\parsearg\newcodeindex} - -% @synindex foo bar makes index foo feed into index bar. -% Do this instead of @defindex foo if you don't want it as a separate index. -\def\synindex #1 #2 {% -\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname -\expandafter\let\csname#1indfile\endcsname=\synindexfoo -\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex -\noexpand\doindex {#2}}% -} - -% @syncodeindex foo bar similar, but put all entries made for index foo -% inside @code. -\def\syncodeindex #1 #2 {% -\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname -\expandafter\let\csname#1indfile\endcsname=\synindexfoo -\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex -\noexpand\docodeindex {#2}}% -} - -% Define \doindex, the driver for all \fooindex macros. -% Argument #1 is generated by the calling \fooindex macro, -% and it is "foo", the name of the index. - -% \doindex just uses \parsearg; it calls \doind for the actual work. -% This is because \doind is more useful to call from other macros. - -% There is also \dosubind {index}{topic}{subtopic} -% which makes an entry in a two-level index such as the operation index. - -\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} -\def\singleindexer #1{\doind{\indexname}{#1}} - -% like the previous two, but they put @code around the argument. -\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} -\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} - -\def\indexdummies{% -% Take care of the plain tex accent commands. -\def\"{\realbackslash "}% -\def\`{\realbackslash `}% -\def\'{\realbackslash '}% -\def\^{\realbackslash ^}% -\def\~{\realbackslash ~}% -\def\={\realbackslash =}% -\def\b{\realbackslash b}% -\def\c{\realbackslash c}% -\def\d{\realbackslash d}% -\def\u{\realbackslash u}% -\def\v{\realbackslash v}% -\def\H{\realbackslash H}% -% Take care of the plain tex special European modified letters. -\def\oe{\realbackslash oe}% -\def\ae{\realbackslash ae}% -\def\aa{\realbackslash aa}% -\def\OE{\realbackslash OE}% -\def\AE{\realbackslash AE}% -\def\AA{\realbackslash AA}% -\def\o{\realbackslash o}% -\def\O{\realbackslash O}% -\def\l{\realbackslash l}% -\def\L{\realbackslash L}% -\def\ss{\realbackslash ss}% -% Take care of texinfo commands likely to appear in an index entry. -\def\_{{\realbackslash _}}% -\def\w{\realbackslash w }% -\def\bf{\realbackslash bf }% -\def\rm{\realbackslash rm }% -\def\sl{\realbackslash sl }% -\def\sf{\realbackslash sf}% -\def\tt{\realbackslash tt}% -\def\gtr{\realbackslash gtr}% -\def\less{\realbackslash less}% -\def\hat{\realbackslash hat}% -\def\char{\realbackslash char}% -\def\TeX{\realbackslash TeX}% -\def\dots{\realbackslash dots }% -\def\copyright{\realbackslash copyright }% -\def\tclose##1{\realbackslash tclose {##1}}% -\def\code##1{\realbackslash code {##1}}% -\def\samp##1{\realbackslash samp {##1}}% -\def\t##1{\realbackslash r {##1}}% -\def\r##1{\realbackslash r {##1}}% -\def\i##1{\realbackslash i {##1}}% -\def\b##1{\realbackslash b {##1}}% -\def\cite##1{\realbackslash cite {##1}}% -\def\key##1{\realbackslash key {##1}}% -\def\file##1{\realbackslash file {##1}}% -\def\var##1{\realbackslash var {##1}}% -\def\kbd##1{\realbackslash kbd {##1}}% -\def\dfn##1{\realbackslash dfn {##1}}% -\def\emph##1{\realbackslash emph {##1}}% -} - -% \indexnofonts no-ops all font-change commands. -% This is used when outputting the strings to sort the index by. -\def\indexdummyfont#1{#1} -\def\indexdummytex{TeX} -\def\indexdummydots{...} - -\def\indexnofonts{% -% Just ignore accents. -\let\"=\indexdummyfont -\let\`=\indexdummyfont -\let\'=\indexdummyfont -\let\^=\indexdummyfont -\let\~=\indexdummyfont -\let\==\indexdummyfont -\let\b=\indexdummyfont -\let\c=\indexdummyfont -\let\d=\indexdummyfont -\let\u=\indexdummyfont -\let\v=\indexdummyfont -\let\H=\indexdummyfont -% Take care of the plain tex special European modified letters. -\def\oe{oe}% -\def\ae{ae}% -\def\aa{aa}% -\def\OE{OE}% -\def\AE{AE}% -\def\AA{AA}% -\def\o{o}% -\def\O{O}% -\def\l{l}% -\def\L{L}% -\def\ss{ss}% -\let\w=\indexdummyfont -\let\t=\indexdummyfont -\let\r=\indexdummyfont -\let\i=\indexdummyfont -\let\b=\indexdummyfont -\let\emph=\indexdummyfont -\let\strong=\indexdummyfont -\let\cite=\indexdummyfont -\let\sc=\indexdummyfont -%Don't no-op \tt, since it isn't a user-level command -% and is used in the definitions of the active chars like <, >, |... -%\let\tt=\indexdummyfont -\let\tclose=\indexdummyfont -\let\code=\indexdummyfont -\let\file=\indexdummyfont -\let\samp=\indexdummyfont -\let\kbd=\indexdummyfont -\let\key=\indexdummyfont -\let\var=\indexdummyfont -\let\TeX=\indexdummytex -\let\dots=\indexdummydots -} - -% To define \realbackslash, we must make \ not be an escape. -% We must first make another character (@) an escape -% so we do not become unable to do a definition. - -{\catcode`\@=0 \catcode`\\=\other -@gdef@realbackslash{\}} - -\let\indexbackslash=0 %overridden during \printindex. - -\let\SETmarginindex=\relax %initialize! -% workhorse for all \fooindexes -% #1 is name of index, #2 is stuff to put there -\def\doind #1#2{% -% Put the index entry in the margin if desired. -\ifx\SETmarginindex\relax\else% -\insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}% -\fi% -{\count10=\lastpenalty % -{\indexdummies % Must do this here, since \bf, etc expand at this stage -\escapechar=`\\% -{\let\folio=0% Expand all macros now EXCEPT \folio -\def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now -% so it will be output as is; and it will print as backslash in the indx. -% -% Now process the index-string once, with all font commands turned off, -% to get the string to sort the index by. -{\indexnofonts -\xdef\temp1{#2}% -}% -% Now produce the complete index entry. We process the index-string again, -% this time with font commands expanded, to get what to print in the index. -\edef\temp{% -\write \csname#1indfile\endcsname{% -\realbackslash entry {\temp1}{\folio}{#2}}}% -\temp }% -}\penalty\count10}} - -\def\dosubind #1#2#3{% -{\count10=\lastpenalty % -{\indexdummies % Must do this here, since \bf, etc expand at this stage -\escapechar=`\\% -{\let\folio=0% -\def\rawbackslashxx{\indexbackslash}% -% -% Now process the index-string once, with all font commands turned off, -% to get the string to sort the index by. -{\indexnofonts -\xdef\temp1{#2 #3}% -}% -% Now produce the complete index entry. We process the index-string again, -% this time with font commands expanded, to get what to print in the index. -\edef\temp{% -\write \csname#1indfile\endcsname{% -\realbackslash entry {\temp1}{\folio}{#2}{#3}}}% -\temp }% -}\penalty\count10}} - -% The index entry written in the file actually looks like -% \entry {sortstring}{page}{topic} -% or -% \entry {sortstring}{page}{topic}{subtopic} -% The texindex program reads in these files and writes files -% containing these kinds of lines: -% \initial {c} -% before the first topic whose initial is c -% \entry {topic}{pagelist} -% for a topic that is used without subtopics -% \primary {topic} -% for the beginning of a topic that is used with subtopics -% \secondary {subtopic}{pagelist} -% for each subtopic. - -% Define the user-accessible indexing commands -% @findex, @vindex, @kindex, @cindex. - -\def\findex {\fnindex} -\def\kindex {\kyindex} -\def\cindex {\cpindex} -\def\vindex {\vrindex} -\def\tindex {\tpindex} -\def\pindex {\pgindex} - -\def\cindexsub {\begingroup\obeylines\cindexsub} -{\obeylines % -\gdef\cindexsub "#1" #2^^M{\endgroup % -\dosubind{cp}{#2}{#1}}} - -% Define the macros used in formatting output of the sorted index material. - -% This is what you call to cause a particular index to get printed. -% Write -% @unnumbered Function Index -% @printindex fn - -\def\printindex{\parsearg\doprintindex} - -\def\doprintindex#1{% - \tex - \dobreak \chapheadingskip {10000} - \catcode`\%=\other\catcode`\&=\other\catcode`\#=\other - \catcode`\$=\other - \catcode`\~=\other - \indexbreaks - % - % The following don't help, since the chars were translated - % when the raw index was written, and their fonts were discarded - % due to \indexnofonts. - %\catcode`\"=\active - %\catcode`\^=\active - %\catcode`\_=\active - %\catcode`\|=\active - %\catcode`\<=\active - %\catcode`\>=\active - % % - \def\indexbackslash{\rawbackslashxx} - \indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt - \begindoublecolumns - % - % See if the index file exists and is nonempty. - \openin 1 \jobname.#1s - \ifeof 1 - % \enddoublecolumns gets confused if there is no text in the index, - % and it loses the chapter title and the aux file entries for the - % index. The easiest way to prevent this problem is to make sure - % there is some text. - (Index is nonexistent) - \else - % - % If the index file exists but is empty, then \openin leaves \ifeof - % false. We have to make TeX try to read something from the file, so - % it can discover if there is anything in it. - \read 1 to \temp - \ifeof 1 - (Index is empty) - \else - \input \jobname.#1s - \fi - \fi - \closein 1 - \enddoublecolumns - \Etex -} - -% These macros are used by the sorted index file itself. -% Change them to control the appearance of the index. - -% Same as \bigskipamount except no shrink. -% \balancecolumns gets confused if there is any shrink. -\newskip\initialskipamount \initialskipamount 12pt plus4pt - -\def\initial #1{% -{\let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt -\ifdim\lastskip<\initialskipamount -\removelastskip \penalty-200 \vskip \initialskipamount\fi -\line{\secbf#1\hfill}\kern 2pt\penalty10000}} - -% This typesets a paragraph consisting of #1, dot leaders, and then #2 -% flush to the right margin. It is used for index and table of contents -% entries. The paragraph is indented by \leftskip. -% -\def\entry #1#2{\begingroup - % - % Start a new paragraph if necessary, so our assignments below can't - % affect previous text. - \par - % - % Do not fill out the last line with white space. - \parfillskip = 0in - % - % No extra space above this paragraph. - \parskip = 0in - % - % Do not prefer a separate line ending with a hyphen to fewer lines. - \finalhyphendemerits = 0 - % - % \hangindent is only relevant when the entry text and page number - % don't both fit on one line. In that case, bob suggests starting the - % dots pretty far over on the line. Unfortunately, a large - % indentation looks wrong when the entry text itself is broken across - % lines. So we use a small indentation and put up with long leaders. - % - % \hangafter is reset to 1 (which is the value we want) at the start - % of each paragraph, so we need not do anything with that. - \hangindent=2em - % - % When the entry text needs to be broken, just fill out the first line - % with blank space. - \rightskip = 0pt plus1fil - % - % Start a ``paragraph'' for the index entry so the line breaking - % parameters we've set above will have an effect. - \noindent - % - % Insert the text of the index entry. TeX will do line-breaking on it. - #1% - % The following is kluged to not output a line of dots in the index if - % there are no page numbers. The next person who breaks this will be - % cursed by a Unix daemon. - \def\tempa{{\rm }}% - \def\tempb{#2}% - \edef\tempc{\tempa}% - \edef\tempd{\tempb}% - \ifx\tempc\tempd\ \else% - % - % If we must, put the page number on a line of its own, and fill out - % this line with blank space. (The \hfil is overwhelmed with the - % fill leaders glue in \indexdotfill if the page number does fit.) - \hfil\penalty50 - \null\nobreak\indexdotfill % Have leaders before the page number. - % - % The `\ ' here is removed by the implicit \unskip that TeX does as - % part of (the primitive) \par. Without it, a spurious underfull - % \hbox ensues. - \ #2% The page number ends the paragraph. - \fi% - \par -\endgroup} - -% Like \dotfill except takes at least 1 em. -\def\indexdotfill{\cleaders - \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} - -\def\primary #1{\line{#1\hfil}} - -\newskip\secondaryindent \secondaryindent=0.5cm - -\def\secondary #1#2{ -{\parfillskip=0in \parskip=0in -\hangindent =1in \hangafter=1 -\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par -}} - -%% Define two-column mode, which is used in indexes. -%% Adapted from the TeXbook, page 416. -\catcode `\@=11 - -\newbox\partialpage - -\newdimen\doublecolumnhsize - -\def\begindoublecolumns{\begingroup - % Grab any single-column material above us. - \output = {\global\setbox\partialpage - =\vbox{\unvbox255\kern -\topskip \kern \baselineskip}}% - \eject - % - % Now switch to the double-column output routine. - \output={\doublecolumnout}% - % - % Change the page size parameters. We could do this once outside this - % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 - % format, but then we repeat the same computation. Repeating a couple - % of assignments once per index is clearly meaningless for the - % execution time, so we may as well do it once. - % - % First we halve the line length, less a little for the gutter between - % the columns. We compute the gutter based on the line length, so it - % changes automatically with the paper format. The magic constant - % below is chosen so that the gutter has the same value (well, +- < - % 1pt) as it did when we hard-coded it. - % - % We put the result in a separate register, \doublecolumhsize, so we - % can restore it in \pagesofar, after \hsize itself has (potentially) - % been clobbered. - % - \doublecolumnhsize = \hsize - \advance\doublecolumnhsize by -.04154\hsize - \divide\doublecolumnhsize by 2 - \hsize = \doublecolumnhsize - % - % Double the \vsize as well. (We don't need a separate register here, - % since nobody clobbers \vsize.) - \vsize = 2\vsize - \doublecolumnpagegoal -} - -\def\enddoublecolumns{\eject \endgroup \pagegoal=\vsize \unvbox\partialpage} - -\def\doublecolumnsplit{\splittopskip=\topskip \splitmaxdepth=\maxdepth - \global\dimen@=\pageheight \global\advance\dimen@ by-\ht\partialpage - \global\setbox1=\vsplit255 to\dimen@ \global\setbox0=\vbox{\unvbox1} - \global\setbox3=\vsplit255 to\dimen@ \global\setbox2=\vbox{\unvbox3} - \ifdim\ht0>\dimen@ \setbox255=\vbox{\unvbox0\unvbox2} \global\setbox255=\copy5 \fi - \ifdim\ht2>\dimen@ \setbox255=\vbox{\unvbox0\unvbox2} \global\setbox255=\copy5 \fi -} -\def\doublecolumnpagegoal{% - \dimen@=\vsize \advance\dimen@ by-2\ht\partialpage \global\pagegoal=\dimen@ -} -\def\pagesofar{\unvbox\partialpage % - \hsize=\doublecolumnhsize % have to restore this since output routine - \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}} -\def\doublecolumnout{% - \setbox5=\copy255 - {\vbadness=10000 \doublecolumnsplit} - \ifvbox255 - \setbox0=\vtop to\dimen@{\unvbox0} - \setbox2=\vtop to\dimen@{\unvbox2} - \onepageout\pagesofar \unvbox255 \penalty\outputpenalty - \else - \setbox0=\vbox{\unvbox5} - \ifvbox0 - \dimen@=\ht0 \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip - \divide\dimen@ by2 \splittopskip=\topskip \splitmaxdepth=\maxdepth - {\vbadness=10000 - \loop \global\setbox5=\copy0 - \setbox1=\vsplit5 to\dimen@ - \setbox3=\vsplit5 to\dimen@ - \ifvbox5 \global\advance\dimen@ by1pt \repeat - \setbox0=\vbox to\dimen@{\unvbox1} - \setbox2=\vbox to\dimen@{\unvbox3} - \global\setbox\partialpage=\vbox{\pagesofar} - \doublecolumnpagegoal - } - \fi - \fi -} - -\catcode `\@=\other -\message{sectioning,} -% Define chapters, sections, etc. - -\newcount \chapno -\newcount \secno \secno=0 -\newcount \subsecno \subsecno=0 -\newcount \subsubsecno \subsubsecno=0 - -% This counter is funny since it counts through charcodes of letters A, B, ... -\newcount \appendixno \appendixno = `\@ -\def\appendixletter{\char\the\appendixno} - -\newwrite \contentsfile -% This is called from \setfilename. -\def\opencontents{\openout \contentsfile = \jobname.toc} - -% Each @chapter defines this as the name of the chapter. -% page headings and footings can use it. @section does likewise - -\def\thischapter{} \def\thissection{} -\def\seccheck#1{\if \pageno<0 % -\errmessage{@#1 not allowed after generating table of contents}\fi -% -} - -\def\chapternofonts{% -\let\rawbackslash=\relax% -\let\frenchspacing=\relax% -\def\result{\realbackslash result} -\def\equiv{\realbackslash equiv} -\def\expansion{\realbackslash expansion} -\def\print{\realbackslash print} -\def\TeX{\realbackslash TeX} -\def\dots{\realbackslash dots} -\def\copyright{\realbackslash copyright} -\def\tt{\realbackslash tt} -\def\bf{\realbackslash bf } -\def\w{\realbackslash w} -\def\less{\realbackslash less} -\def\gtr{\realbackslash gtr} -\def\hat{\realbackslash hat} -\def\char{\realbackslash char} -\def\tclose##1{\realbackslash tclose {##1}} -\def\code##1{\realbackslash code {##1}} -\def\samp##1{\realbackslash samp {##1}} -\def\r##1{\realbackslash r {##1}} -\def\b##1{\realbackslash b {##1}} -\def\key##1{\realbackslash key {##1}} -\def\file##1{\realbackslash file {##1}} -\def\kbd##1{\realbackslash kbd {##1}} -% These are redefined because @smartitalic wouldn't work inside xdef. -\def\i##1{\realbackslash i {##1}} -\def\cite##1{\realbackslash cite {##1}} -\def\var##1{\realbackslash var {##1}} -\def\emph##1{\realbackslash emph {##1}} -\def\dfn##1{\realbackslash dfn {##1}} -} - -\newcount\absseclevel % used to calculate proper heading level -\newcount\secbase\secbase=0 % @raise/lowersections modify this count - -% @raisesections: treat @section as chapter, @subsection as section, etc. -\def\raisesections{\global\advance\secbase by -1} -\let\up=\raisesections % original BFox name - -% @lowersections: treat @chapter as section, @section as subsection, etc. -\def\lowersections{\global\advance\secbase by 1} -\let\down=\lowersections % original BFox name - -% Choose a numbered-heading macro -% #1 is heading level if unmodified by @raisesections or @lowersections -% #2 is text for heading -\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \chapterzzz{#2} -\or - \seczzz{#2} -\or - \numberedsubseczzz{#2} -\or - \numberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \chapterzzz{#2} - \else - \numberedsubsubseczzz{#2} - \fi -\fi -} - -% like \numhead, but chooses appendix heading levels -\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \appendixzzz{#2} -\or - \appendixsectionzzz{#2} -\or - \appendixsubseczzz{#2} -\or - \appendixsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \appendixzzz{#2} - \else - \appendixsubsubseczzz{#2} - \fi -\fi -} - -% like \numhead, but chooses numberless heading levels -\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \unnumberedzzz{#2} -\or - \unnumberedseczzz{#2} -\or - \unnumberedsubseczzz{#2} -\or - \unnumberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \unnumberedzzz{#2} - \else - \unnumberedsubsubseczzz{#2} - \fi -\fi -} - - -\def\thischaptername{No Chapter Title} -\outer\def\chapter{\parsearg\chapteryyy} -\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz -\def\chapterzzz #1{\seccheck{chapter}% -\secno=0 \subsecno=0 \subsubsecno=0 -\global\advance \chapno by 1 \message{\putwordChapter \the\chapno}% -\chapmacro {#1}{\the\chapno}% -\gdef\thissection{#1}% -\gdef\thischaptername{#1}% -% We don't substitute the actual chapter name into \thischapter -% because we don't want its macros evaluated now. -\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% -{\chapternofonts% -\edef\temp{{\realbackslash chapentry {#1}{\the\chapno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\donoderef % -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec -}} - -\outer\def\appendix{\parsearg\appendixyyy} -\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz -\def\appendixzzz #1{\seccheck{appendix}% -\secno=0 \subsecno=0 \subsubsecno=0 -\global\advance \appendixno by 1 \message{Appendix \appendixletter}% -\chapmacro {#1}{\putwordAppendix{} \appendixletter}% -\gdef\thissection{#1}% -\gdef\thischaptername{#1}% -\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% -{\chapternofonts% -\edef\temp{{\realbackslash chapentry - {#1}{\putwordAppendix{} \appendixletter}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\appendixnoderef % -\global\let\section = \appendixsec -\global\let\subsection = \appendixsubsec -\global\let\subsubsection = \appendixsubsubsec -}} - -\outer\def\top{\parsearg\unnumberedyyy} -\outer\def\unnumbered{\parsearg\unnumberedyyy} -\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz -\def\unnumberedzzz #1{\seccheck{unnumbered}% -\secno=0 \subsecno=0 \subsubsecno=0 -% -% This used to be simply \message{#1}, but TeX fully expands the -% argument to \message. Therefore, if #1 contained @-commands, TeX -% expanded them. For example, in `@unnumbered The @cite{Book}', TeX -% expanded @cite (which turns out to cause errors because \cite is meant -% to be executed, not expanded). -% -% Anyway, we don't want the fully-expanded definition of @cite to appear -% as a result of the \message, we just want `@cite' itself. We use -% \the to achieve this: TeX expands \the only once, -% simply yielding the contents of the . -\toks0 = {#1}\message{(\the\toks0)}% -% -\unnumbchapmacro {#1}% -\gdef\thischapter{#1}\gdef\thissection{#1}% -{\chapternofonts% -\edef\temp{{\realbackslash unnumbchapentry {#1}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\unnumbnoderef % -\global\let\section = \unnumberedsec -\global\let\subsection = \unnumberedsubsec -\global\let\subsubsection = \unnumberedsubsubsec -}} - -\outer\def\numberedsec{\parsearg\secyyy} -\def\secyyy #1{\numhead1{#1}} % normally calls seczzz -\def\seczzz #1{\seccheck{section}% -\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % -\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% -{\chapternofonts% -\edef\temp{{\realbackslash secentry % -{#1}{\the\chapno}{\the\secno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\donoderef % -\penalty 10000 % -}} - -\outer\def\appenixsection{\parsearg\appendixsecyyy} -\outer\def\appendixsec{\parsearg\appendixsecyyy} -\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz -\def\appendixsectionzzz #1{\seccheck{appendixsection}% -\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % -\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% -{\chapternofonts% -\edef\temp{{\realbackslash secentry % -{#1}{\appendixletter}{\the\secno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\appendixnoderef % -\penalty 10000 % -}} - -\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy} -\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz -\def\unnumberedseczzz #1{\seccheck{unnumberedsec}% -\plainsecheading {#1}\gdef\thissection{#1}% -{\chapternofonts% -\edef\temp{{\realbackslash unnumbsecentry{#1}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\unnumbnoderef % -\penalty 10000 % -}} - -\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy} -\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz -\def\numberedsubseczzz #1{\seccheck{subsection}% -\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % -\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% -{\chapternofonts% -\edef\temp{{\realbackslash subsecentry % -{#1}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\donoderef % -\penalty 10000 % -}} - -\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy} -\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz -\def\appendixsubseczzz #1{\seccheck{appendixsubsec}% -\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % -\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% -{\chapternofonts% -\edef\temp{{\realbackslash subsecentry % -{#1}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\appendixnoderef % -\penalty 10000 % -}} - -\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy} -\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz -\def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}% -\plainsecheading {#1}\gdef\thissection{#1}% -{\chapternofonts% -\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\unnumbnoderef % -\penalty 10000 % -}} - -\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy} -\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz -\def\numberedsubsubseczzz #1{\seccheck{subsubsection}% -\gdef\thissection{#1}\global\advance \subsubsecno by 1 % -\subsubsecheading {#1} - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% -{\chapternofonts% -\edef\temp{{\realbackslash subsubsecentry % - {#1} - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno} - {\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\donoderef % -\penalty 10000 % -}} - -\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy} -\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz -\def\appendixsubsubseczzz #1{\seccheck{appendixsubsubsec}% -\gdef\thissection{#1}\global\advance \subsubsecno by 1 % -\subsubsecheading {#1} - {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% -{\chapternofonts% -\edef\temp{{\realbackslash subsubsecentry{#1}% - {\appendixletter} - {\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\appendixnoderef % -\penalty 10000 % -}} - -\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy} -\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz -\def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}% -\plainsecheading {#1}\gdef\thissection{#1}% -{\chapternofonts% -\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\unnumbnoderef % -\penalty 10000 % -}} - -% These are variants which are not "outer", so they can appear in @ifinfo. -% Actually, they should now be obsolete; ordinary section commands should work. -\def\infotop{\parsearg\unnumberedzzz} -\def\infounnumbered{\parsearg\unnumberedzzz} -\def\infounnumberedsec{\parsearg\unnumberedseczzz} -\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz} -\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz} - -\def\infoappendix{\parsearg\appendixzzz} -\def\infoappendixsec{\parsearg\appendixseczzz} -\def\infoappendixsubsec{\parsearg\appendixsubseczzz} -\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz} - -\def\infochapter{\parsearg\chapterzzz} -\def\infosection{\parsearg\sectionzzz} -\def\infosubsection{\parsearg\subsectionzzz} -\def\infosubsubsection{\parsearg\subsubsectionzzz} - -% These macros control what the section commands do, according -% to what kind of chapter we are in (ordinary, appendix, or unnumbered). -% Define them by default for a numbered chapter. -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec - -% Define @majorheading, @heading and @subheading - -% NOTE on use of \vbox for chapter headings, section headings, and -% such: -% 1) We use \vbox rather than the earlier \line to permit -% overlong headings to fold. -% 2) \hyphenpenalty is set to 10000 because hyphenation in a -% heading is obnoxious; this forbids it. -% 3) Likewise, headings look best if no \parindent is used, and -% if justification is not attempted. Hence \raggedright. - - -\def\majorheading{\parsearg\majorheadingzzz} -\def\majorheadingzzz #1{% -{\advance\chapheadingskip by 10pt \chapbreak }% -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} - -\def\chapheading{\parsearg\chapheadingzzz} -\def\chapheadingzzz #1{\chapbreak % -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} - -\def\heading{\parsearg\secheadingi} - -\def\subheading{\parsearg\subsecheadingi} - -\def\subsubheading{\parsearg\subsubsecheadingi} - -% These macros generate a chapter, section, etc. heading only -% (including whitespace, linebreaking, etc. around it), -% given all the information in convenient, parsed form. - -%%% Args are the skip and penalty (usually negative) -\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} - -\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} - -%%% Define plain chapter starts, and page on/off switching for it -% Parameter controlling skip before chapter headings (if needed) - -\newskip \chapheadingskip \chapheadingskip = 30pt plus 8pt minus 4pt - -\def\chapbreak{\dobreak \chapheadingskip {-4000}} -\def\chappager{\par\vfill\supereject} -\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} - -\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} - -\def\CHAPPAGoff{ -\global\let\pchapsepmacro=\chapbreak -\global\let\pagealignmacro=\chappager} - -\def\CHAPPAGon{ -\global\let\pchapsepmacro=\chappager -\global\let\pagealignmacro=\chappager -\global\def\HEADINGSon{\HEADINGSsingle}} - -\def\CHAPPAGodd{ -\global\let\pchapsepmacro=\chapoddpage -\global\let\pagealignmacro=\chapoddpage -\global\def\HEADINGSon{\HEADINGSdouble}} - -\CHAPPAGon - -\def\CHAPFplain{ -\global\let\chapmacro=\chfplain -\global\let\unnumbchapmacro=\unnchfplain} - -\def\chfplain #1#2{% - \pchapsepmacro - {% - \chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #2\enspace #1}% - }% - \bigskip - \penalty5000 -} - -\def\unnchfplain #1{% -\pchapsepmacro % -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 10000 % -} -\CHAPFplain % The default - -\def\unnchfopen #1{% -\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 10000 % -} - -\def\chfopen #1#2{\chapoddpage {\chapfonts -\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% -\par\penalty 5000 % -} - -\def\CHAPFopen{ -\global\let\chapmacro=\chfopen -\global\let\unnumbchapmacro=\unnchfopen} - -% Parameter controlling skip before section headings. - -\newskip \subsecheadingskip \subsecheadingskip = 17pt plus 8pt minus 4pt -\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}} - -\newskip \secheadingskip \secheadingskip = 21pt plus 8pt minus 4pt -\def\secheadingbreak{\dobreak \secheadingskip {-1000}} - -% @paragraphindent is defined for the Info formatting commands only. -\let\paragraphindent=\comment - -% Section fonts are the base font at magstep2, which produces -% a size a bit more than 14 points in the default situation. - -\def\secheading #1#2#3{\secheadingi {#2.#3\enspace #1}} -\def\plainsecheading #1{\secheadingi {#1}} -\def\secheadingi #1{{\advance \secheadingskip by \parskip % -\secheadingbreak}% -{\secfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}% -\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 } - - -% Subsection fonts are the base font at magstep1, -% which produces a size of 12 points. - -\def\subsecheading #1#2#3#4{\subsecheadingi {#2.#3.#4\enspace #1}} -\def\subsecheadingi #1{{\advance \subsecheadingskip by \parskip % -\subsecheadingbreak}% -{\subsecfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}% -\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 } - -\def\subsubsecfonts{\subsecfonts} % Maybe this should change: - % Perhaps make sssec fonts scaled - % magstep half -\def\subsubsecheading #1#2#3#4#5{\subsubsecheadingi {#2.#3.#4.#5\enspace #1}} -\def\subsubsecheadingi #1{{\advance \subsecheadingskip by \parskip % -\subsecheadingbreak}% -{\subsubsecfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}% -\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000} - - -\message{toc printing,} - -% Finish up the main text and prepare to read what we've written -% to \contentsfile. - -\newskip\contentsrightmargin \contentsrightmargin=1in -\def\startcontents#1{% - \pagealignmacro - \immediate\closeout \contentsfile - \ifnum \pageno>0 - \pageno = -1 % Request roman numbered pages. - \fi - % Don't need to put `Contents' or `Short Contents' in the headline. - % It is abundantly clear what they are. - \unnumbchapmacro{#1}\def\thischapter{}% - \begingroup % Set up to handle contents files properly. - \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 - \catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi - \raggedbottom % Worry more about breakpoints than the bottom. - \advance\hsize by -\contentsrightmargin % Don't use the full line length. -} - - -% Normal (long) toc. -\outer\def\contents{% - \startcontents{\putwordTableofContents}% - \input \jobname.toc - \endgroup - \vfill \eject -} - -% And just the chapters. -\outer\def\summarycontents{% - \startcontents{\putwordShortContents}% - % - \let\chapentry = \shortchapentry - \let\unnumbchapentry = \shortunnumberedentry - % We want a true roman here for the page numbers. - \secfonts - \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl - \rm - \advance\baselineskip by 1pt % Open it up a little. - \def\secentry ##1##2##3##4{} - \def\unnumbsecentry ##1##2{} - \def\subsecentry ##1##2##3##4##5{} - \def\unnumbsubsecentry ##1##2{} - \def\subsubsecentry ##1##2##3##4##5##6{} - \def\unnumbsubsubsecentry ##1##2{} - \input \jobname.toc - \endgroup - \vfill \eject -} -\let\shortcontents = \summarycontents - -% These macros generate individual entries in the table of contents. -% The first argument is the chapter or section name. -% The last argument is the page number. -% The arguments in between are the chapter number, section number, ... - -% Chapter-level things, for both the long and short contents. -\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} - -% See comments in \dochapentry re vbox and related settings -\def\shortchapentry#1#2#3{% - \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}% -} - -% Typeset the label for a chapter or appendix for the short contents. -% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter. -% We could simplify the code here by writing out an \appendixentry -% command in the toc file for appendices, instead of using \chapentry -% for both, but it doesn't seem worth it. -\setbox0 = \hbox{\shortcontrm \putwordAppendix } -\newdimen\shortappendixwidth \shortappendixwidth = \wd0 - -\def\shortchaplabel#1{% - % We typeset #1 in a box of constant width, regardless of the text of - % #1, so the chapter titles will come out aligned. - \setbox0 = \hbox{#1}% - \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi - % - % This space should be plenty, since a single number is .5em, and the - % widest letter (M) is 1em, at least in the Computer Modern fonts. - % (This space doesn't include the extra space that gets added after - % the label; that gets put in in \shortchapentry above.) - \advance\dimen0 by 1.1em - \hbox to \dimen0{#1\hfil}% -} - -\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} -\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}} - -% Sections. -\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} -\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}} - -% Subsections. -\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} -\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}} - -% And subsubsections. -\def\subsubsecentry#1#2#3#4#5#6{% - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} -\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}} - - -% This parameter controls the indentation of the various levels. -\newdimen\tocindent \tocindent = 3pc - -% Now for the actual typesetting. In all these, #1 is the text and #2 is the -% page number. -% -% If the toc has to be broken over pages, we would want to be at chapters -% if at all possible; hence the \penalty. -\def\dochapentry#1#2{% - \penalty-300 \vskip\baselineskip - \begingroup - \chapentryfonts - \tocentry{#1}{\dopageno{#2}}% - \endgroup - \nobreak\vskip .25\baselineskip -} - -\def\dosecentry#1#2{\begingroup - \secentryfonts \leftskip=\tocindent - \tocentry{#1}{\dopageno{#2}}% -\endgroup} - -\def\dosubsecentry#1#2{\begingroup - \subsecentryfonts \leftskip=2\tocindent - \tocentry{#1}{\dopageno{#2}}% -\endgroup} - -\def\dosubsubsecentry#1#2{\begingroup - \subsubsecentryfonts \leftskip=3\tocindent - \tocentry{#1}{\dopageno{#2}}% -\endgroup} - -% Final typesetting of a toc entry; we use the same \entry macro as for -% the index entries, but we want to suppress hyphenation here. (We -% can't do that in the \entry macro, since index entries might consist -% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.) -% -% \turnoffactive is for the sake of @" used for umlauts. -\def\tocentry#1#2{\begingroup - \hyphenpenalty = 10000 - \entry{\turnoffactive #1}{\turnoffactive #2}% -\endgroup} - -% Space between chapter (or whatever) number and the title. -\def\labelspace{\hskip1em \relax} - -\def\dopageno#1{{\rm #1}} -\def\doshortpageno#1{{\rm #1}} - -\def\chapentryfonts{\secfonts \rm} -\def\secentryfonts{\textfonts} -\let\subsecentryfonts = \textfonts -\let\subsubsecentryfonts = \textfonts - - -\message{environments,} - -% Since these characters are used in examples, it should be an even number of -% \tt widths. Each \tt character is 1en, so two makes it 1em. -% Furthermore, these definitions must come after we define our fonts. -\newbox\dblarrowbox \newbox\longdblarrowbox -\newbox\pushcharbox \newbox\bullbox -\newbox\equivbox \newbox\errorbox - -\let\ptexequiv = \equiv - -%{\tentt -%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil} -%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil} -%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil} -%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil} -% Adapted from the manmac format (p.420 of TeXbook) -%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex -% depth .1ex\hfil} -%} - -\def\point{$\star$} - -\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} -\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} -\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} - -\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} - -% Adapted from the TeXbook's \boxit. -{\tentt \global\dimen0 = 3em}% Width of the box. -\dimen2 = .55pt % Thickness of rules -% The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} - -\global\setbox\errorbox=\hbox to \dimen0{\hfil - \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. - \advance\hsize by -2\dimen2 % Rules. - \vbox{ - \hrule height\dimen2 - \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. - \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. - \kern3pt\vrule width\dimen2}% Space to right. - \hrule height\dimen2} - \hfil} - -% The @error{} command. -\def\error{\leavevmode\lower.7ex\copy\errorbox} - -% @tex ... @end tex escapes into raw Tex temporarily. -% One exception: @ is still an escape character, so that @end tex works. -% But \@ or @@ will get a plain tex @ character. - -\def\tex{\begingroup -\catcode `\\=0 \catcode `\{=1 \catcode `\}=2 -\catcode `\$=3 \catcode `\&=4 \catcode `\#=6 -\catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie -\catcode `\%=14 -\catcode 43=12 -\catcode`\"=12 -\catcode`\==12 -\catcode`\|=12 -\catcode`\<=12 -\catcode`\>=12 -\escapechar=`\\ -% -\let\~=\ptextilde -\let\{=\ptexlbrace -\let\}=\ptexrbrace -\let\.=\ptexdot -\let\*=\ptexstar -\let\dots=\ptexdots -\def\@{@}% -\let\bullet=\ptexbullet -\let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext \let\l=\ptexl -\let\L=\ptexL -% -\let\Etex=\endgroup} - -% Define @lisp ... @endlisp. -% @lisp does a \begingroup so it can rebind things, -% including the definition of @endlisp (which normally is erroneous). - -% Amount to narrow the margins by for @lisp. -\newskip\lispnarrowing \lispnarrowing=0.4in - -% This is the definition that ^^M gets inside @lisp, @example, and other -% such environments. \null is better than a space, since it doesn't -% have any width. -\def\lisppar{\null\endgraf} - -% Make each space character in the input produce a normal interword -% space in the output. Don't allow a line break at this space, as this -% is used only in environments like @example, where each line of input -% should produce a line of output anyway. -% -{\obeyspaces % -\gdef\sepspaces{\obeyspaces\let =\tie}} - -% Define \obeyedspace to be our active space, whatever it is. This is -% for use in \parsearg. -{\sepspaces% -\global\let\obeyedspace= } - -% This space is always present above and below environments. -\newskip\envskipamount \envskipamount = 0pt - -% Make spacing and below environment symmetrical. We use \parskip here -% to help in doing that, since in @example-like environments \parskip -% is reset to zero; thus the \afterenvbreak inserts no space -- but the -% start of the next paragraph will insert \parskip -% -\def\aboveenvbreak{{\advance\envskipamount by \parskip -\endgraf \ifdim\lastskip<\envskipamount -\removelastskip \penalty-50 \vskip\envskipamount \fi}} - -\let\afterenvbreak = \aboveenvbreak - -% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins. -\let\nonarrowing=\relax - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \cartouche: draw rectangle w/rounded corners around argument -\font\circle=lcircle10 -\newdimen\circthick -\newdimen\cartouter\newdimen\cartinner -\newskip\normbskip\newskip\normpskip\newskip\normlskip -\circthick=\fontdimen8\circle -% -\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth -\def\ctr{{\hskip 6pt\circle\char'010}} -\def\cbl{{\circle\char'012\hskip -6pt}} -\def\cbr{{\hskip 6pt\circle\char'011}} -\def\carttop{\hbox to \cartouter{\hskip\lskip - \ctl\leaders\hrule height\circthick\hfil\ctr - \hskip\rskip}} -\def\cartbot{\hbox to \cartouter{\hskip\lskip - \cbl\leaders\hrule height\circthick\hfil\cbr - \hskip\rskip}} -% -\newskip\lskip\newskip\rskip - -\long\def\cartouche{% -\begingroup - \lskip=\leftskip \rskip=\rightskip - \leftskip=0pt\rightskip=0pt %we want these *outside*. - \cartinner=\hsize \advance\cartinner by-\lskip - \advance\cartinner by-\rskip - \cartouter=\hsize - \advance\cartouter by 18pt % allow for 3pt kerns on either -% side, and for 6pt waste from -% each corner char - \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip - % Flag to tell @lisp, etc., not to narrow margin. - \let\nonarrowing=\comment - \vbox\bgroup - \baselineskip=0pt\parskip=0pt\lineskip=0pt - \carttop - \hbox\bgroup - \hskip\lskip - \vrule\kern3pt - \vbox\bgroup - \hsize=\cartinner - \kern3pt - \begingroup - \baselineskip=\normbskip - \lineskip=\normlskip - \parskip=\normpskip - \vskip -\parskip -\def\Ecartouche{% - \endgroup - \kern3pt - \egroup - \kern3pt\vrule - \hskip\rskip - \egroup - \cartbot - \egroup -\endgroup -}} - - -% This macro is called at the beginning of all the @example variants, -% inside a group. -\def\nonfillstart{% - \aboveenvbreak - \inENV % This group ends at the end of the body - \hfuzz = 12pt % Don't be fussy - \sepspaces % Make spaces be word-separators rather than space tokens. - \singlespace - \let\par = \lisppar % don't ignore blank lines - \obeylines % each line of input is a line of output - \parskip = 0pt - \parindent = 0pt - \emergencystretch = 0pt % don't try to avoid overfull boxes - % @cartouche defines \nonarrowing to inhibit narrowing - % at next level down. - \ifx\nonarrowing\relax - \advance \leftskip by \lispnarrowing - \exdentamount=\lispnarrowing - \let\exdent=\nofillexdent - \let\nonarrowing=\relax - \fi -} - -% To ending an @example-like environment, we first end the paragraph -% (via \afterenvbreak's vertical glue), and then the group. That way we -% keep the zero \parskip that the environments set -- \parskip glue -% will be inserted at the beginning of the next paragraph in the -% document, after the environment. -% -\def\nonfillfinish{\afterenvbreak\endgroup}% - -% This macro is -\def\lisp{\begingroup - \nonfillstart - \let\Elisp = \nonfillfinish - \tt - \rawbackslash % have \ input char produce \ char from current font - \gobble -} - -% Define the \E... control sequence only if we are inside the -% environment, so the error checking in \end will work. -% -% We must call \lisp last in the definition, since it reads the -% return following the @example (or whatever) command. -% -\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} -\def\smallexample{\begingroup \def\Esmallexample{\nonfillfinish\endgroup}\lisp} -\def\smalllisp{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}\lisp} - -% @smallexample and @smalllisp. This is not used unless the @smallbook -% command is given. Originally contributed by Pavel@xerox. -% -\def\smalllispx{\begingroup - \nonfillstart - \let\Esmalllisp = \nonfillfinish - \let\Esmallexample = \nonfillfinish - % - % Smaller interline space and fonts for small examples. - \setleading{10pt}% - \indexfonts \tt - \rawbackslash % make \ output the \ character from the current font (tt) - \gobble -} - -% This is @display; same as @lisp except use roman font. -% -\def\display{\begingroup - \nonfillstart - \let\Edisplay = \nonfillfinish - \gobble -} - -% This is @format; same as @display except don't narrow margins. -% -\def\format{\begingroup - \let\nonarrowing = t - \nonfillstart - \let\Eformat = \nonfillfinish - \gobble -} - -% @flushleft (same as @format) and @flushright. -% -\def\flushleft{\begingroup - \let\nonarrowing = t - \nonfillstart - \let\Eflushleft = \nonfillfinish - \gobble -} -\def\flushright{\begingroup - \let\nonarrowing = t - \nonfillstart - \let\Eflushright = \nonfillfinish - \advance\leftskip by 0pt plus 1fill - \gobble} - -% @quotation does normal linebreaking (hence we can't use \nonfillstart) -% and narrows the margins. -% -\def\quotation{% - \begingroup\inENV %This group ends at the end of the @quotation body - {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \singlespace - \parindent=0pt - % We have retained a nonzero parskip for the environment, since we're - % doing normal filling. So to avoid extra space below the environment... - \def\Equotation{\parskip = 0pt \nonfillfinish}% - % - % @cartouche defines \nonarrowing to inhibit narrowing at next level down. - \ifx\nonarrowing\relax - \advance\leftskip by \lispnarrowing - \advance\rightskip by \lispnarrowing - \exdentamount = \lispnarrowing - \let\nonarrowing = \relax - \fi -} - -\message{defuns,} -% Define formatter for defuns -% First, allow user to change definition object font (\df) internally -\def\setdeffont #1 {\csname DEF#1\endcsname} - -\newskip\defbodyindent \defbodyindent=.4in -\newskip\defargsindent \defargsindent=50pt -\newskip\deftypemargin \deftypemargin=12pt -\newskip\deflastargmargin \deflastargmargin=18pt - -\newcount\parencount -% define \functionparens, which makes ( and ) and & do special things. -% \functionparens affects the group it is contained in. -\def\activeparens{% -\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active -\catcode`\[=\active \catcode`\]=\active} - -% Make control sequences which act like normal parenthesis chars. -\let\lparen = ( \let\rparen = ) - -{\activeparens % Now, smart parens don't turn on until &foo (see \amprm) - -% Be sure that we always have a definition for `(', etc. For example, -% if the fn name has parens in it, \boldbrax will not be in effect yet, -% so TeX would otherwise complain about undefined control sequence. -\global\let(=\lparen \global\let)=\rparen -\global\let[=\lbrack \global\let]=\rbrack - -\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 } -\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} -% This is used to turn on special parens -% but make & act ordinary (given that it's active). -\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr} - -% Definitions of (, ) and & used in args for functions. -% This is the definition of ( outside of all parentheses. -\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested % -\global\advance\parencount by 1 } -% -% This is the definition of ( when already inside a level of parens. -\gdef\opnested{\char`\(\global\advance\parencount by 1 } -% -\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0. -% also in that case restore the outer-level definition of (. -\ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi -\global\advance \parencount by -1 } -% If we encounter &foo, then turn on ()-hacking afterwards -\gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ } -% -\gdef\normalparens{\boldbrax\let&=\ampnr} -} % End of definition inside \activeparens -%% These parens (in \boldbrax) actually are a little bolder than the -%% contained text. This is especially needed for [ and ] -\def\opnr{{\sf\char`\(}} \def\clnr{{\sf\char`\)}} \def\ampnr{\&} -\def\lbrb{{\bf\char`\[}} \def\rbrb{{\bf\char`\]}} - -% First, defname, which formats the header line itself. -% #1 should be the function name. -% #2 should be the type of definition, such as "Function". - -\def\defname #1#2{% -% Get the values of \leftskip and \rightskip as they were -% outside the @def... -\dimen2=\leftskip -\advance\dimen2 by -\defbodyindent -\dimen3=\rightskip -\advance\dimen3 by -\defbodyindent -\noindent % -\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}% -\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations -\parshape 2 0in \dimen0 \defargsindent \dimen1 % -% Now output arg 2 ("Function" or some such) -% ending at \deftypemargin from the right margin, -% but stuck inside a box of width 0 so it does not interfere with linebreaking -{% Adjust \hsize to exclude the ambient margins, -% so that \rightline will obey them. -\advance \hsize by -\dimen2 \advance \hsize by -\dimen3 -\rlap{\rightline{{\rm #2}\hskip \deftypemargin}}}% -% Make all lines underfull and no complaints: -\tolerance=10000 \hbadness=10000 -\advance\leftskip by -\defbodyindent -\exdentamount=\defbodyindent -{\df #1}\enskip % Generate function name -} - -% Actually process the body of a definition -% #1 should be the terminating control sequence, such as \Edefun. -% #2 should be the "another name" control sequence, such as \defunx. -% #3 should be the control sequence that actually processes the header, -% such as \defunheader. - -\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2{\begingroup\obeylines\activeparens\spacesplit#3}% -\parindent=0in -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup % -\catcode 61=\active % 61 is `=' -\obeylines\activeparens\spacesplit#3} - -\def\defmethparsebody #1#2#3#4 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% -\parindent=0in -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\activeparens\spacesplit{#3{#4}}} - -\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 ##2 {\def#4{##1}% -\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% -\parindent=0in -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\activeparens\spacesplit{#3{#5}}} - -% These parsing functions are similar to the preceding ones -% except that they do not make parens into active characters. -% These are used for "variables" since they have no arguments. - -\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2{\begingroup\obeylines\spacesplit#3}% -\parindent=0in -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup % -\catcode 61=\active % -\obeylines\spacesplit#3} - -% This is used for \def{tp,vr}parsebody. It could probably be used for -% some of the others, too, with some judicious conditionals. -% -\def\parsebodycommon#1#2#3{% - \begingroup\inENV % - \medbreak % - % Define the end token that this defining construct specifies - % so that it will exit this group. - \def#1{\endgraf\endgroup\medbreak}% - \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% - \parindent=0in - \advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent - \exdentamount=\defbodyindent - \begingroup\obeylines -} - -\def\defvrparsebody#1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \spacesplit{#3{#4}}% -} - -% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the -% type is just `struct', because we lose the braces in `{struct -% termios}' when \spacesplit reads its undelimited argument. Sigh. -% \let\deftpparsebody=\defvrparsebody -% -% So, to get around this, we put \empty in with the type name. That -% way, TeX won't find exactly `{...}' as an undelimited argument, and -% won't strip off the braces. -% -\def\deftpparsebody #1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \spacesplit{\parsetpheaderline{#3{#4}}}\empty -} - -% Fine, but then we have to eventually remove the \empty *and* the -% braces (if any). That's what this does, putting the result in \tptemp. -% -\def\removeemptybraces\empty#1\relax{\def\tptemp{#1}}% - -% After \spacesplit has done its work, this is called -- #1 is the final -% thing to call, #2 the type name (which starts with \empty), and #3 -% (which might be empty) the arguments. -% -\def\parsetpheaderline#1#2#3{% - \removeemptybraces#2\relax - #1{\tptemp}{#3}% -}% - -\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 ##2 {\def#4{##1}% -\begingroup\obeylines\spacesplit{#3{##2}}}% -\parindent=0in -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\spacesplit{#3{#5}}} - -% Split up #2 at the first space token. -% call #1 with two arguments: -% the first is all of #2 before the space token, -% the second is all of #2 after that space token. -% If #2 contains no space token, all of it is passed as the first arg -% and the second is passed as empty. - -{\obeylines -\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% -\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% -\ifx\relax #3% -#1{#2}{}\else #1{#2}{#3#4}\fi}} - -% So much for the things common to all kinds of definitions. - -% Define @defun. - -% First, define the processing that is wanted for arguments of \defun -% Use this to expand the args and terminate the paragraph they make up - -\def\defunargs #1{\functionparens \sl -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -\hyphenchar\tensl=0 -#1% -\hyphenchar\tensl=45 -\ifnum\parencount=0 \else \errmessage{unbalanced parens in @def arguments}\fi% -\interlinepenalty=10000 -\advance\rightskip by 0pt plus 1fil -\endgraf\penalty 10000\vskip -\parskip\penalty 10000% -} - -\def\deftypefunargs #1{% -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -% Use \boldbraxnoamp, not \functionparens, so that & is not special. -\boldbraxnoamp -\tclose{#1}% avoid \code because of side effects on active chars -\interlinepenalty=10000 -\advance\rightskip by 0pt plus 1fil -\endgraf\penalty 10000\vskip -\parskip\penalty 10000% -} - -% Do complete processing of one @defun or @defunx line already parsed. - -% @deffn Command forward-char nchars - -\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader} - -\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% -\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defun == @deffn Function - -\def\defun{\defparsebody\Edefun\defunx\defunheader} - -\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{Function}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @deftypefun int foobar (int @var{foo}, float @var{bar}) - -\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader} - -% #1 is the data type. #2 is the name and args. -\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax} -% #1 is the data type, #2 the name, #3 the args. -\def\deftypefunheaderx #1#2 #3\relax{% -\doind {fn}{\code{#2}}% Make entry in function index -\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Function}% -\deftypefunargs {#3}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar}) - -\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} - -% \defheaderxcond#1\relax$$$ -% puts #1 in @code, followed by a space, but does nothing if #1 is null. -\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi} - -% #1 is the classification. #2 is the data type. #3 is the name and args. -\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax} -% #1 is the classification, #2 the data type, #3 the name, #4 the args. -\def\deftypefnheaderx #1#2#3 #4\relax{% -\doind {fn}{\code{#3}}% Make entry in function index -\begingroup -\normalparens % notably, turn off `&' magic, which prevents -% at least some C++ text from working -\defname {\defheaderxcond#2\relax$$$#3}{#1}% -\deftypefunargs {#4}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defmac == @deffn Macro - -\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader} - -\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{Macro}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defspec == @deffn Special Form - -\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader} - -\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{Special Form}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% This definition is run if you use @defunx -% anywhere other than immediately after a @defun or @defunx. - -\def\deffnx #1 {\errmessage{@deffnx in invalid context}} -\def\defunx #1 {\errmessage{@defunx in invalid context}} -\def\defmacx #1 {\errmessage{@defmacx in invalid context}} -\def\defspecx #1 {\errmessage{@defspecx in invalid context}} -\def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}} -\def\deftypeunx #1 {\errmessage{@deftypeunx in invalid context}} - -% @defmethod, and so on - -% @defop {Funny Method} foo-class frobnicate argument - -\def\defop #1 {\def\defoptype{#1}% -\defopparsebody\Edefop\defopx\defopheader\defoptype} - -\def\defopheader #1#2#3{% -\dosubind {fn}{\code{#2}}{on #1}% Make entry in function index -\begingroup\defname {#2}{\defoptype{} on #1}% -\defunargs {#3}\endgroup % -} - -% @defmethod == @defop Method - -\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader} - -\def\defmethodheader #1#2#3{% -\dosubind {fn}{\code{#2}}{on #1}% entry in function index -\begingroup\defname {#2}{Method on #1}% -\defunargs {#3}\endgroup % -} - -% @defcv {Class Option} foo-class foo-flag - -\def\defcv #1 {\def\defcvtype{#1}% -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype} - -\def\defcvarheader #1#2#3{% -\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index -\begingroup\defname {#2}{\defcvtype{} of #1}% -\defvarargs {#3}\endgroup % -} - -% @defivar == @defcv {Instance Variable} - -\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader} - -\def\defivarheader #1#2#3{% -\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index -\begingroup\defname {#2}{Instance Variable of #1}% -\defvarargs {#3}\endgroup % -} - -% These definitions are run if you use @defmethodx, etc., -% anywhere other than immediately after a @defmethod, etc. - -\def\defopx #1 {\errmessage{@defopx in invalid context}} -\def\defmethodx #1 {\errmessage{@defmethodx in invalid context}} -\def\defcvx #1 {\errmessage{@defcvx in invalid context}} -\def\defivarx #1 {\errmessage{@defivarx in invalid context}} - -% Now @defvar - -% First, define the processing that is wanted for arguments of @defvar. -% This is actually simple: just print them in roman. -% This must expand the args and terminate the paragraph they make up -\def\defvarargs #1{\normalparens #1% -\interlinepenalty=10000 -\endgraf\penalty 10000\vskip -\parskip\penalty 10000} - -% @defvr Counter foo-count - -\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader} - -\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}% -\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup} - -% @defvar == @defvr Variable - -\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader} - -\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{Variable}% -\defvarargs {#2}\endgroup % -} - -% @defopt == @defvr {User Option} - -\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader} - -\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{User Option}% -\defvarargs {#2}\endgroup % -} - -% @deftypevar int foobar - -\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader} - -% #1 is the data type. #2 is the name. -\def\deftypevarheader #1#2{% -\doind {vr}{\code{#2}}% Make entry in variables index -\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}% -\interlinepenalty=10000 -\endgraf\penalty 10000\vskip -\parskip\penalty 10000 -\endgroup} - -% @deftypevr {Global Flag} int enable - -\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} - -\def\deftypevrheader #1#2#3{\doind {vr}{\code{#3}}% -\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1} -\interlinepenalty=10000 -\endgraf\penalty 10000\vskip -\parskip\penalty 10000 -\endgroup} - -% This definition is run if you use @defvarx -% anywhere other than immediately after a @defvar or @defvarx. - -\def\defvrx #1 {\errmessage{@defvrx in invalid context}} -\def\defvarx #1 {\errmessage{@defvarx in invalid context}} -\def\defoptx #1 {\errmessage{@defoptx in invalid context}} -\def\deftypevarx #1 {\errmessage{@deftypevarx in invalid context}} -\def\deftypevrx #1 {\errmessage{@deftypevrx in invalid context}} - -% Now define @deftp -% Args are printed in bold, a slight difference from @defvar. - -\def\deftpargs #1{\bf \defvarargs{#1}} - -% @deftp Class window height width ... - -\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader} - -\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}% -\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup} - -% This definition is run if you use @deftpx, etc -% anywhere other than immediately after a @deftp, etc. - -\def\deftpx #1 {\errmessage{@deftpx in invalid context}} - -\message{cross reference,} -% Define cross-reference macros -\newwrite \auxfile - -\newif\ifhavexrefs % True if xref values are known. -\newif\ifwarnedxrefs % True if we warned once that they aren't known. - -% \setref{foo} defines a cross-reference point named foo. - -\def\setref#1{% -\dosetq{#1-title}{Ytitle}% -\dosetq{#1-pg}{Ypagenumber}% -\dosetq{#1-snt}{Ysectionnumberandtype}} - -\def\unnumbsetref#1{% -\dosetq{#1-title}{Ytitle}% -\dosetq{#1-pg}{Ypagenumber}% -\dosetq{#1-snt}{Ynothing}} - -\def\appendixsetref#1{% -\dosetq{#1-title}{Ytitle}% -\dosetq{#1-pg}{Ypagenumber}% -\dosetq{#1-snt}{Yappendixletterandtype}} - -% \xref, \pxref, and \ref generate cross-references to specified points. -% For \xrefX, #1 is the node name, #2 the name of the Info -% cross-reference, #3 the printed node name, #4 the name of the Info -% file, #5 the name of the printed manual. All but the node name can be -% omitted. -% -\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} -\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} -\def\ref#1{\xrefX[#1,,,,,,,]} -\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup - \def\printedmanual{\ignorespaces #5}% - \def\printednodename{\ignorespaces #3}% - \setbox1=\hbox{\printedmanual}% - \setbox0=\hbox{\printednodename}% - \ifdim \wd0 = 0pt - % No printed node name was explicitly given. - \ifx\SETxref-automatic-section-title\relax % - % Use the actual chapter/section title appear inside - % the square brackets. Use the real section title if we have it. - \ifdim \wd1>0pt% - % It is in another manual, so we don't have it. - \def\printednodename{\ignorespaces #1}% - \else - \ifhavexrefs - % We know the real title if we have the xref values. - \def\printednodename{\refx{#1-title}}% - \else - % Otherwise just copy the Info node name. - \def\printednodename{\ignorespaces #1}% - \fi% - \fi - \def\printednodename{#1-title}% - \else - % Use the node name inside the square brackets. - \def\printednodename{\ignorespaces #1}% - \fi - \fi - % - % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not - % insert empty discretionaries after hyphens, which means that it will - % not find a line break at a hyphen in a node names. Since some manuals - % are best written with fairly long node names, containing hyphens, this - % is a loss. Therefore, we give the text of the node name again, so it - % is as if TeX is seeing it for the first time. - \ifdim \wd1 > 0pt - \putwordsection{} ``\printednodename'' in \cite{\printedmanual}% - \else - % _ (for example) has to be the character _ for the purposes of the - % control sequence corresponding to the node, but it has to expand - % into the usual \leavevmode...\vrule stuff for purposes of - % printing. So we \turnoffactive for the \refx-snt, back on for the - % printing, back off for the \refx-pg. - {\turnoffactive \refx{#1-snt}{}}% - \space [\printednodename],\space - \turnoffactive \putwordpage\tie\refx{#1-pg}{}% - \fi -\endgroup} - -% \dosetq is the interface for calls from other macros - -% Use \turnoffactive so that punctuation chars such as underscore -% work in node names. -\def\dosetq #1#2{{\let\folio=0 \turnoffactive \auxhat% -\edef\next{\write\auxfile{\internalsetq {#1}{#2}}}% -\next}} - -% \internalsetq {foo}{page} expands into -% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...} -% When the aux file is read, ' is the escape character - -\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}} - -% Things to be expanded by \internalsetq - -\def\Ypagenumber{\folio} - -\def\Ytitle{\thissection} - -\def\Ynothing{} - -\def\Ysectionnumberandtype{% -\ifnum\secno=0 \putwordChapter\xreftie\the\chapno % -\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno % -\else \ifnum \subsubsecno=0 % -\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno % -\else % -\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno % -\fi \fi \fi } - -\def\Yappendixletterandtype{% -\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}% -\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno % -\else \ifnum \subsubsecno=0 % -\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno % -\else % -\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % -\fi \fi \fi } - -\gdef\xreftie{'tie} - -% Use TeX 3.0's \inputlineno to get the line number, for better error -% messages, but if we're using an old version of TeX, don't do anything. -% -\ifx\inputlineno\thisisundefined - \let\linenumber = \empty % Non-3.0. -\else - \def\linenumber{\the\inputlineno:\space} -\fi - -% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. -% If its value is nonempty, SUFFIX is output afterward. - -\def\refx#1#2{% - \expandafter\ifx\csname X#1\endcsname\relax - % If not defined, say something at least. - $\langle$un\-de\-fined$\rangle$% - \ifhavexrefs - \message{\linenumber Undefined cross reference `#1'.}% - \else - \ifwarnedxrefs\else - \global\warnedxrefstrue - \message{Cross reference values unknown; you must run TeX again.}% - \fi - \fi - \else - % It's defined, so just use it. - \csname X#1\endcsname - \fi - #2% Output the suffix in any case. -} - -% Read the last existing aux file, if any. No error if none exists. - -% This is the macro invoked by entries in the aux file. -\def\xrdef #1#2{ -{\catcode`\'=\other\expandafter \gdef \csname X#1\endcsname {#2}}} - -\def\readauxfile{% -\begingroup -\catcode `\^^@=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\^^C=\other -\catcode `\^^D=\other -\catcode `\^^E=\other -\catcode `\^^F=\other -\catcode `\^^G=\other -\catcode `\^^H=\other -\catcode `\ =\other -\catcode `\^^L=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode 26=\other -\catcode `\^^[=\other -\catcode `\^^\=\other -\catcode `\^^]=\other -\catcode `\^^^=\other -\catcode `\^^_=\other -\catcode `\@=\other -\catcode `\^=\other -\catcode `\~=\other -\catcode `\[=\other -\catcode `\]=\other -\catcode`\"=\other -\catcode`\_=\other -\catcode`\|=\other -\catcode`\<=\other -\catcode`\>=\other -\catcode `\$=\other -\catcode `\#=\other -\catcode `\&=\other -% `\+ does not work, so use 43. -\catcode 43=\other -% Make the characters 128-255 be printing characters -{% - \count 1=128 - \def\loop{% - \catcode\count 1=\other - \advance\count 1 by 1 - \ifnum \count 1<256 \loop \fi - }% -}% -% the aux file uses ' as the escape. -% Turn off \ as an escape so we do not lose on -% entries which were dumped with control sequences in their names. -% For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ -% Reference to such entries still does not work the way one would wish, -% but at least they do not bomb out when the aux file is read in. -\catcode `\{=1 \catcode `\}=2 -\catcode `\%=\other -\catcode `\'=0 -\catcode`\^=7 % to make ^^e4 etc usable in xref tags -\catcode `\\=\other -\openin 1 \jobname.aux -\ifeof 1 \else \closein 1 \input \jobname.aux \global\havexrefstrue -\global\warnedobstrue -\fi -% Open the new aux file. Tex will close it automatically at exit. -\openout \auxfile=\jobname.aux -\endgroup} - - -% Footnotes. - -\newcount \footnoteno - -% The trailing space in the following definition for supereject is -% vital for proper filling; pages come out unaligned when you do a -% pagealignmacro call if that space before the closing brace is -% removed. -\def\supereject{\par\penalty -20000\footnoteno =0 } - -% @footnotestyle is meaningful for info output only.. -\let\footnotestyle=\comment - -\let\ptexfootnote=\footnote - -{\catcode `\@=11 -% -% Auto-number footnotes. Otherwise like plain. -\gdef\footnote{% - \global\advance\footnoteno by \@ne - \edef\thisfootno{$^{\the\footnoteno}$}% - % - % In case the footnote comes at the end of a sentence, preserve the - % extra spacing after we do the footnote number. - \let\@sf\empty - \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi - % - % Remove inadvertent blank space before typesetting the footnote number. - \unskip - \thisfootno\@sf - \footnotezzz -}% - -% Don't bother with the trickery in plain.tex to not require the -% footnote text as a parameter. Our footnotes don't need to be so general. -% -\long\gdef\footnotezzz#1{\insert\footins{% - % We want to typeset this text as a normal paragraph, even if the - % footnote reference occurs in (for example) a display environment. - % So reset some parameters. - \interlinepenalty\interfootnotelinepenalty - \splittopskip\ht\strutbox % top baseline for broken footnotes - \splitmaxdepth\dp\strutbox - \floatingpenalty\@MM - \leftskip\z@skip - \rightskip\z@skip - \spaceskip\z@skip - \xspaceskip\z@skip - \parindent\defaultparindent - % - % Hang the footnote text off the number. - \hang - \textindent{\thisfootno}% - % - % Don't crash into the line above the footnote text. Since this - % expands into a box, it must come within the paragraph, lest it - % provide a place where TeX can split the footnote. - \footstrut - #1\strut}% -} - -}%end \catcode `\@=11 - -% Set the baselineskip to #1, and the lineskip and strut size -% correspondingly. There is no deep meaning behind these magic numbers -% used as factors; they just match (closely enough) what Knuth defined. -% -\def\lineskipfactor{.08333} -\def\strutheightpercent{.70833} -\def\strutdepthpercent {.29167} -% -\def\setleading#1{% - \normalbaselineskip = #1\relax - \normallineskip = \lineskipfactor\normalbaselineskip - \normalbaselines - \setbox\strutbox =\hbox{% - \vrule width0pt height\strutheightpercent\baselineskip - depth \strutdepthpercent \baselineskip - }% -} - -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). -% -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% -} - -% For a final copy, take out the rectangles -% that mark overfull boxes (in case you have decided -% that the text looks ok even though it passes the margin). -% -\def\finalout{\overfullrule=0pt} - - -% End of control word definitions. - -\message{and turning on texinfo input format.} - -\def\openindices{% - \newindex{cp}% - \newcodeindex{fn}% - \newcodeindex{vr}% - \newcodeindex{tp}% - \newcodeindex{ky}% - \newcodeindex{pg}% -} - -% Set some numeric style parameters, for 8.5 x 11 format. - -%\hsize = 6.5in -\newdimen\defaultparindent \defaultparindent = 15pt -\parindent = \defaultparindent -\parskip 18pt plus 1pt -\setleading{15pt} -\advance\topskip by 1.2cm - -% Prevent underfull vbox error messages. -\vbadness=10000 - -% Following George Bush, just get rid of widows and orphans. -\widowpenalty=10000 -\clubpenalty=10000 - -% Use TeX 3.0's \emergencystretch to help line breaking, but if we're -% using an old version of TeX, don't do anything. We want the amount of -% stretch added to depend on the line length, hence the dependence on -% \hsize. This makes it come to about 9pt for the 8.5x11 format. -% -\ifx\emergencystretch\thisisundefined - % Allow us to assign to \emergencystretch anyway. - \def\emergencystretch{\dimen0}% -\else - \emergencystretch = \hsize - \divide\emergencystretch by 45 -\fi - -% Use @smallbook to reset parameters for 7x9.5 format (or else 7x9.25) -\def\smallbook{ - -% These values for secheadingskip and subsecheadingskip are -% experiments. RJC 7 Aug 1992 -\global\secheadingskip = 17pt plus 6pt minus 3pt -\global\subsecheadingskip = 14pt plus 6pt minus 3pt - -\global\lispnarrowing = 0.3in -\setleading{12pt} -\advance\topskip by -1cm -\global\parskip 3pt plus 1pt -\global\hsize = 5in -\global\vsize=7.5in -\global\tolerance=700 -\global\hfuzz=1pt -\global\contentsrightmargin=0pt -\global\deftypemargin=0pt -\global\defbodyindent=.5cm - -\global\pagewidth=\hsize -\global\pageheight=\vsize - -\global\let\smalllisp=\smalllispx -\global\let\smallexample=\smalllispx -\global\def\Esmallexample{\Esmalllisp} -} - -% Use @afourpaper to print on European A4 paper. -\def\afourpaper{ -\global\tolerance=700 -\global\hfuzz=1pt -\setleading{12pt} -\global\parskip 15pt plus 1pt - -\global\vsize= 53\baselineskip -\advance\vsize by \topskip -%\global\hsize= 5.85in % A4 wide 10pt -\global\hsize= 6.5in -\global\outerhsize=\hsize -\global\advance\outerhsize by 0.5in -\global\outervsize=\vsize -\global\advance\outervsize by 0.6in - -\global\pagewidth=\hsize -\global\pageheight=\vsize -} - -% Allow control of the text dimensions. Parameters in order: textheight; -% textwidth; \voffset; \hoffset (!); binding offset. All require a dimension; -% header is additional; added length extends the bottom of the page. - -\def\changepagesizes#1#2#3#4#5{ - \global\vsize= #1 - \advance\vsize by \topskip - \global\voffset= #3 - \global\hsize= #2 - \global\outerhsize=\hsize - \global\advance\outerhsize by 0.5in - \global\outervsize=\vsize - \global\advance\outervsize by 0.6in - \global\pagewidth=\hsize - \global\pageheight=\vsize - \global\normaloffset= #4 - \global\bindingoffset= #5} - -% This layout is compatible with Latex on A4 paper. - -\def\afourlatex{\changepagesizes{22cm}{15cm}{7mm}{4.6mm}{5mm}} - -% Use @afourwide to print on European A4 paper in wide format. -\def\afourwide{\afourpaper -\changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}} - -% Define macros to output various characters with catcode for normal text. -\catcode`\"=\other -\catcode`\~=\other -\catcode`\^=\other -\catcode`\_=\other -\catcode`\|=\other -\catcode`\<=\other -\catcode`\>=\other -\catcode`\+=\other -\def\normaldoublequote{"} -\def\normaltilde{~} -\def\normalcaret{^} -\def\normalunderscore{_} -\def\normalverticalbar{|} -\def\normalless{<} -\def\normalgreater{>} -\def\normalplus{+} - -% This macro is used to make a character print one way in ttfont -% where it can probably just be output, and another way in other fonts, -% where something hairier probably needs to be done. -% -% #1 is what to print if we are indeed using \tt; #2 is what to print -% otherwise. Since all the Computer Modern typewriter fonts have zero -% interword stretch (and shrink), and it is reasonable to expect all -% typewriter fonts to have this, we can check that font parameter. -% -\def\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi} - -% Turn off all special characters except @ -% (and those which the user can use as if they were ordinary). -% Most of these we simply print from the \tt font, but for some, we can -% use math or other variants that look better in normal text. - -\catcode`\"=\active -\def\activedoublequote{{\tt \char '042}} -\let"=\activedoublequote -\catcode`\~=\active -\def~{{\tt \char '176}} -\chardef\hat=`\^ -\catcode`\^=\active -\def\auxhat{\def^{'hat}} -\def^{{\tt \hat}} - -\catcode`\_=\active -\def_{\ifusingtt\normalunderscore\_} -% Subroutine for the previous macro. -\def\_{\lvvmode \kern.06em \vbox{\hrule width.3em height.1ex}} - -% \lvvmode is equivalent in function to \leavevmode. -% Using \leavevmode runs into trouble when written out to -% an index file due to the expansion of \leavevmode into ``\unhbox -% \voidb@x'' ---which looks to TeX like ``\unhbox \voidb\x'' due to our -% magic tricks with @. -\def\lvvmode{\vbox to 0pt{}} - -\catcode`\|=\active -\def|{{\tt \char '174}} -\chardef \less=`\< -\catcode`\<=\active -\def<{{\tt \less}} -\chardef \gtr=`\> -\catcode`\>=\active -\def>{{\tt \gtr}} -\catcode`\+=\active -\def+{{\tt \char 43}} -%\catcode 27=\active -%\def^^[{$\diamondsuit$} - -% Set up an active definition for =, but don't enable it most of the time. -{\catcode`\==\active -\global\def={{\tt \char 61}}} - -\catcode`+=\active -\catcode`\_=\active - -% If a .fmt file is being used, characters that might appear in a file -% name cannot be active until we have parsed the command line. -% So turn them off again, and have \everyjob (or @setfilename) turn them on. -% \otherifyactive is called near the end of this file. -\def\otherifyactive{\catcode`+=\other \catcode`\_=\other} - -\catcode`\@=0 - -% \rawbackslashxx output one backslash character in current font -\global\chardef\rawbackslashxx=`\\ -%{\catcode`\\=\other -%@gdef@rawbackslashxx{\}} - -% \rawbackslash redefines \ as input to do \rawbackslashxx. -{\catcode`\\=\active -@gdef@rawbackslash{@let\=@rawbackslashxx }} - -% \normalbackslash outputs one backslash in fixed width font. -\def\normalbackslash{{\tt\rawbackslashxx}} - -% Say @foo, not \foo, in error messages. -\escapechar=`\@ - -% \catcode 17=0 % Define control-q -\catcode`\\=\active - -% Used sometimes to turn off (effectively) the active characters -% even after parsing them. -@def@turnoffactive{@let"=@normaldoublequote -@let\=@realbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus} - -@def@normalturnoffactive{@let"=@normaldoublequote -@let\=@normalbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus} - -% Make _ and + \other characters, temporarily. -% This is canceled by @fixbackslash. -@otherifyactive - -% If a .fmt file is being used, we don't want the `\input texinfo' to show up. -% That is what \eatinput is for; after that, the `\' should revert to printing -% a backslash. -% -@gdef@eatinput input texinfo{@fixbackslash} -@global@let\ = @eatinput - -% On the other hand, perhaps the file did not have a `\input texinfo'. Then -% the first `\{ in the file would cause an error. This macro tries to fix -% that, assuming it is called before the first `\' could plausibly occur. -% Also back turn on active characters that might appear in the input -% file name, in case not using a pre-dumped format. -% -@gdef@fixbackslash{@ifx\@eatinput @let\ = @normalbackslash @fi - @catcode`+=@active @catcode`@_=@active} - -%% These look ok in all fonts, so just make them not special. The @rm below -%% makes sure that the current font starts out as the newly loaded cmr10 -@catcode`@$=@other @catcode`@%=@other @catcode`@&=@other @catcode`@#=@other - -@textfonts -@rm - -@c Local variables: -@c page-delimiter: "^\\\\message" -@c End: diff --git a/lib/tilde/ChangeLog b/lib/tilde/ChangeLog deleted file mode 100644 index 986db67a7..000000000 --- a/lib/tilde/ChangeLog +++ /dev/null @@ -1,6 +0,0 @@ -Mon Jul 13 12:01:51 1992 Brian Fox (bfox@cubit) - - * tilde.c: (tilde_expand_word) If there is no variable $HOME, then - look up the user's home directory in the password database. - - diff --git a/lib/tilde/doc/Makefile b/lib/tilde/doc/Makefile deleted file mode 100644 index a2246db44..000000000 --- a/lib/tilde/doc/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -clean distclean mostlyclean maintainer-clean: - rm -f tilde.?? - -all: - cp tilde.texi tilde.info diff --git a/lib/tilde/doc/tilde.texi b/lib/tilde/doc/tilde.texi deleted file mode 100644 index e69de29bb..000000000 diff --git a/po/._hr.po b/po/._hr.po deleted file mode 100644 index 059ef4ea1..000000000 Binary files a/po/._hr.po and /dev/null differ diff --git a/po/Makevars.template b/po/Makevars.template deleted file mode 100644 index 32692ab4b..000000000 --- a/po/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/bash-3.1.pot b/po/bash-3.1.pot deleted file mode 100644 index c96e86669..000000000 --- a/po/bash-3.1.pot +++ /dev/null @@ -1,2568 +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. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2005-10-03 17:31-0400\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:48 -msgid "bad array subscript" -msgstr "" - -#: arrayfunc.c:360 -#, c-format -msgid "%s: cannot assign to non-numeric index" -msgstr "" - -#: bashhist.c:328 -#, c-format -msgid "%s: cannot create: %s" -msgstr "" - -#: bashline.c:2947 -msgid "bash_execute_unix_command: cannot find keymap for command" -msgstr "" - -#: bashline.c:2996 -#, c-format -msgid "%s: first non-whitespace character is not `\"'" -msgstr "" - -#: bashline.c:3025 -#, c-format -msgid "no closing `%c' in %s" -msgstr "" - -#: bashline.c:3059 -#, c-format -msgid "%s: missing colon separator" -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:132 -msgid "Returns the context of the current subroutine call." -msgstr "" - -#: builtins/caller.def:133 builtins/caller.def:137 builtins/pushd.def:660 -#: builtins/pushd.def:668 builtins/pushd.def:671 builtins/pushd.def:681 -#: builtins/pushd.def:685 builtins/pushd.def:689 builtins/pushd.def:692 -#: builtins/pushd.def:695 builtins/pushd.def:704 builtins/pushd.def:708 -#: builtins/pushd.def:712 builtins/pushd.def:715 -msgid " " -msgstr "" - -#: builtins/caller.def:134 -msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," -msgstr "" - -#: builtins/caller.def:135 -msgid "returns \"$line $subroutine $filename\"; this extra information" -msgstr "" - -#: builtins/caller.def:136 -msgid "can be used used to provide a stack trace." -msgstr "" - -#: builtins/caller.def:138 -msgid "The value of EXPR indicates how many call frames to go back before the" -msgstr "" - -#: builtins/caller.def:139 -msgid "current one; the top frame is frame 0." -msgstr "" - -#: builtins/cd.def:203 -msgid "HOME not set" -msgstr "" - -#: builtins/cd.def:215 -msgid "OLDPWD not set" -msgstr "" - -#: builtins/common.c:133 test.c:921 -msgid "too many arguments" -msgstr "" - -#: builtins/common.c:157 shell.c:474 shell.c:747 -#, 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:760 -#, 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:231 general.c:236 -#, 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:276 -#, c-format -msgid "write error: %s" -msgstr "" - -#: builtins/common.c:484 -#, c-format -msgid "%s: error retrieving current directory: %s: %s\n" -msgstr "" - -#: builtins/common.c:550 builtins/common.c:552 -#, 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:301 -msgid "cannot use `-f' to make functions" -msgstr "" - -#: builtins/declare.def:313 execute_cmd.c:3986 -#, c-format -msgid "%s: readonly function" -msgstr "" - -#: builtins/declare.def:401 -#, 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:129 execute_cmd.c:3852 shell.c:1408 -#, c-format -msgid "%s: is a directory" -msgstr "" - -#: builtins/evalfile.c:134 -#, c-format -msgid "%s: not a regular file" -msgstr "" - -#: builtins/evalfile.c:142 -#, 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:259 -msgid "no command found" -msgstr "" - -#: builtins/fc.def:329 -msgid "history specification" -msgstr "" - -#: builtins/fc.def:350 -#, c-format -msgid "%s: cannot open temp file: %s" -msgstr "" - -#: builtins/fg_bg.def:149 -#, 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:150 -msgid "cannot use more than one of -anrw" -msgstr "" - -#: builtins/history.def:182 -msgid "history position" -msgstr "" - -#: builtins/history.def:400 -#, 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:250 -msgid "Unknown error" -msgstr "" - -#: builtins/let.def:94 builtins/let.def:119 expr.c:497 expr.c:512 -msgid "expression expected" -msgstr "" - -#: builtins/printf.def:327 -#, c-format -msgid "`%s': missing format character" -msgstr "" - -#: builtins/printf.def:502 -#, c-format -msgid "`%c': invalid format character" -msgstr "" - -#: builtins/printf.def:708 -msgid "missing hex digit for \\x" -msgstr "" - -#: builtins/pushd.def:173 -msgid "no other directory" -msgstr "" - -#: builtins/pushd.def:440 -msgid "" -msgstr "" - -#: builtins/pushd.def:657 -msgid "Display the list of currently remembered directories. Directories" -msgstr "" - -#: builtins/pushd.def:658 -msgid "find their way onto the list with the `pushd' command; you can get" -msgstr "" - -#: builtins/pushd.def:659 -msgid "back up through the list with the `popd' command." -msgstr "" - -#: builtins/pushd.def:661 -msgid "The -l flag specifies that `dirs' should not print shorthand versions" -msgstr "" - -#: builtins/pushd.def:662 -msgid "of directories which are relative to your home directory. This means" -msgstr "" - -#: builtins/pushd.def:663 -msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" -msgstr "" - -#: builtins/pushd.def:664 -msgid "causes `dirs' to print the directory stack with one entry per line," -msgstr "" - -#: builtins/pushd.def:665 -msgid "prepending the directory name with its position in the stack. The -p" -msgstr "" - -#: builtins/pushd.def:666 -msgid "flag does the same thing, but the stack position is not prepended." -msgstr "" - -#: builtins/pushd.def:667 -msgid "The -c flag clears the directory stack by deleting all of the elements." -msgstr "" - -#: builtins/pushd.def:669 -msgid "+N displays the Nth entry counting from the left of the list shown by" -msgstr "" - -#: builtins/pushd.def:670 builtins/pushd.def:673 -msgid " dirs when invoked without options, starting with zero." -msgstr "" - -#: builtins/pushd.def:672 -msgid "" -"-N displays the Nth entry counting from the right of the list shown by" -msgstr "" - -#: builtins/pushd.def:678 -msgid "Adds a directory to the top of the directory stack, or rotates" -msgstr "" - -#: builtins/pushd.def:679 -msgid "the stack, making the new top of the stack the current working" -msgstr "" - -#: builtins/pushd.def:680 -msgid "directory. With no arguments, exchanges the top two directories." -msgstr "" - -#: builtins/pushd.def:682 -msgid "+N Rotates the stack so that the Nth directory (counting" -msgstr "" - -#: builtins/pushd.def:683 -msgid " from the left of the list shown by `dirs', starting with" -msgstr "" - -#: builtins/pushd.def:684 builtins/pushd.def:688 -msgid " zero) is at the top." -msgstr "" - -#: builtins/pushd.def:686 -msgid "-N Rotates the stack so that the Nth directory (counting" -msgstr "" - -#: builtins/pushd.def:687 -msgid " from the right of the list shown by `dirs', starting with" -msgstr "" - -#: builtins/pushd.def:690 -msgid "-n suppress the normal change of directory when adding directories" -msgstr "" - -#: builtins/pushd.def:691 -msgid " to the stack, so only the stack is manipulated." -msgstr "" - -#: builtins/pushd.def:693 -msgid "dir adds DIR to the directory stack at the top, making it the" -msgstr "" - -#: builtins/pushd.def:694 -msgid " new current working directory." -msgstr "" - -#: builtins/pushd.def:696 builtins/pushd.def:716 -msgid "You can see the directory stack with the `dirs' command." -msgstr "" - -#: builtins/pushd.def:701 -msgid "Removes entries from the directory stack. With no arguments," -msgstr "" - -#: builtins/pushd.def:702 -msgid "removes the top directory from the stack, and cd's to the new" -msgstr "" - -#: builtins/pushd.def:703 -msgid "top directory." -msgstr "" - -#: builtins/pushd.def:705 -msgid "+N removes the Nth entry counting from the left of the list" -msgstr "" - -#: builtins/pushd.def:706 -msgid " shown by `dirs', starting with zero. For example: `popd +0'" -msgstr "" - -#: builtins/pushd.def:707 -msgid " removes the first directory, `popd +1' the second." -msgstr "" - -#: builtins/pushd.def:709 -msgid "-N removes the Nth entry counting from the right of the list" -msgstr "" - -#: builtins/pushd.def:710 -msgid " shown by `dirs', starting with zero. For example: `popd -0'" -msgstr "" - -#: builtins/pushd.def:711 -msgid " removes the last directory, `popd -1' the next to last." -msgstr "" - -#: builtins/pushd.def:713 -msgid "-n suppress the normal change of directory when removing directories" -msgstr "" - -#: builtins/pushd.def:714 -msgid " from the stack, so only the stack is manipulated." -msgstr "" - -#: builtins/read.def:211 -#, c-format -msgid "%s: invalid timeout specification" -msgstr "" - -#: builtins/read.def:234 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "" - -#: builtins/read.def:241 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "" - -#: builtins/read.def:474 -#, 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:745 -msgid "cannot simultaneously unset a function and a variable" -msgstr "" - -#: builtins/set.def:782 -#, c-format -msgid "%s: cannot unset" -msgstr "" - -#: builtins/set.def:789 -#, c-format -msgid "%s: cannot unset: readonly %s" -msgstr "" - -#: builtins/set.def:800 -#, c-format -msgid "%s: not an array variable" -msgstr "" - -#: builtins/setattr.def:166 -#, c-format -msgid "%s: not a function" -msgstr "" - -#: builtins/shift.def:66 builtins/shift.def:72 -msgid "shift count" -msgstr "" - -#: builtins/shopt.def:227 -msgid "cannot set and unset shell options simultaneously" -msgstr "" - -#: builtins/shopt.def:292 -#, 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:232 -#, c-format -msgid "%s is aliased to `%s'\n" -msgstr "" - -#: builtins/type.def:253 -#, c-format -msgid "%s is a shell keyword\n" -msgstr "" - -#: builtins/type.def:273 -#, c-format -msgid "%s is a function\n" -msgstr "" - -#: builtins/type.def:298 -#, c-format -msgid "%s is a shell builtin\n" -msgstr "" - -#: builtins/type.def:319 -#, c-format -msgid "%s is %s\n" -msgstr "" - -#: builtins/type.def:339 -#, c-format -msgid "%s is hashed (%s)\n" -msgstr "" - -#: builtins/ulimit.def:344 -#, c-format -msgid "%s: invalid limit argument" -msgstr "" - -#: builtins/ulimit.def:370 -#, c-format -msgid "`%c': bad command" -msgstr "" - -#: builtins/ulimit.def:399 -#, c-format -msgid "%s: cannot get limit: %s" -msgstr "" - -#: builtins/ulimit.def:437 -#, 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:281 -#, 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:176 -msgid "timed out waiting for input: auto-logout\n" -msgstr "" - -#: execute_cmd.c:471 -#, 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:3551 -#, c-format -msgid "%s: restricted: cannot specify `/' in command names" -msgstr "" - -#: execute_cmd.c:3639 -#, c-format -msgid "%s: command not found" -msgstr "" - -#: execute_cmd.c:3876 -#, c-format -msgid "%s: %s: bad interpreter" -msgstr "" - -#: execute_cmd.c:3913 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "" - -#: execute_cmd.c:4025 -#, c-format -msgid "cannot duplicate fd %d to fd %d" -msgstr "" - -#: expr.c:240 -msgid "expression recursion level exceeded" -msgstr "" - -#: expr.c:264 -msgid "recursion stack underflow" -msgstr "" - -#: expr.c:375 -msgid "syntax error in expression" -msgstr "" - -#: expr.c:415 -msgid "attempted assignment to non-variable" -msgstr "" - -#: expr.c:436 expr.c:441 expr.c:751 -msgid "division by 0" -msgstr "" - -#: expr.c:467 -msgid "bug: bad expassign token" -msgstr "" - -#: expr.c:509 -msgid "`:' expected for conditional expression" -msgstr "" - -#: expr.c:776 -msgid "exponent less than 0" -msgstr "" - -#: expr.c:821 -msgid "identifier expected after pre-increment or pre-decrement" -msgstr "" - -#: expr.c:849 -msgid "missing `)'" -msgstr "" - -#: expr.c:892 -msgid "syntax error: operand expected" -msgstr "" - -#: expr.c:1178 -msgid "invalid number" -msgstr "" - -#: expr.c:1182 -msgid "invalid arithmetic base" -msgstr "" - -#: expr.c:1202 -msgid "value too great for base" -msgstr "" - -#: general.c:62 -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:923 -#, c-format -msgid "deleting stopped job %d with process group %ld" -msgstr "" - -#: jobs.c:1308 -#, c-format -msgid "describe_pid: %ld: no such pid" -msgstr "" - -#: jobs.c:1981 nojobs.c:648 -#, c-format -msgid "wait: pid %ld is not a child of this shell" -msgstr "" - -#: jobs.c:2180 -#, c-format -msgid "wait_for: No record of process %ld" -msgstr "" - -#: jobs.c:2435 -#, c-format -msgid "wait_for_job: job %d is stopped" -msgstr "" - -#: jobs.c:2657 -#, c-format -msgid "%s: job has terminated" -msgstr "" - -#: jobs.c:2666 -#, c-format -msgid "%s: job %d already in background" -msgstr "" - -#: jobs.c:3452 -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:386 -msgid "You have mail in $_" -msgstr "" - -#: mailcheck.c:411 -msgid "You have new mail in $_" -msgstr "" - -#: mailcheck.c:427 -#, c-format -msgid "The mail in %s has been read\n" -msgstr "" - -#: make_cmd.c:322 -msgid "syntax error: arithmetic expression required" -msgstr "" - -#: make_cmd.c:324 -msgid "syntax error: `;' unexpected" -msgstr "" - -#: make_cmd.c:325 -#, c-format -msgid "syntax error: `((%s))'" -msgstr "" - -#: make_cmd.c:566 -#, c-format -msgid "make_here_document: bad instruction type %d" -msgstr "" - -#: make_cmd.c:736 -#, c-format -msgid "make_redirection: redirection instruction `%d' out of range" -msgstr "" - -#: parse.y:2747 -#, c-format -msgid "unexpected EOF while looking for matching `%c'" -msgstr "" - -#: parse.y:3043 -msgid "unexpected EOF while looking for `]]'" -msgstr "" - -#: parse.y:3048 -#, c-format -msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "" - -#: parse.y:3052 -msgid "syntax error in conditional expression" -msgstr "" - -#: parse.y:3130 -#, c-format -msgid "unexpected token `%s', expected `)'" -msgstr "" - -#: parse.y:3134 -msgid "expected `)'" -msgstr "" - -#: parse.y:3162 -#, c-format -msgid "unexpected argument `%s' to conditional unary operator" -msgstr "" - -#: parse.y:3166 -msgid "unexpected argument to conditional unary operator" -msgstr "" - -#: parse.y:3203 -#, c-format -msgid "unexpected token `%s', conditional binary operator expected" -msgstr "" - -#: parse.y:3207 -msgid "conditional binary operator expected" -msgstr "" - -#: parse.y:3223 -#, c-format -msgid "unexpected argument `%s' to conditional binary operator" -msgstr "" - -#: parse.y:3227 -msgid "unexpected argument to conditional binary operator" -msgstr "" - -#: parse.y:3238 -#, c-format -msgid "unexpected token `%c' in conditional command" -msgstr "" - -#: parse.y:3241 -#, c-format -msgid "unexpected token `%s' in conditional command" -msgstr "" - -#: parse.y:3245 -#, c-format -msgid "unexpected token %d in conditional command" -msgstr "" - -#: parse.y:4461 -#, c-format -msgid "syntax error near unexpected token `%s'" -msgstr "" - -#: parse.y:4479 -#, c-format -msgid "syntax error near `%s'" -msgstr "" - -#: parse.y:4489 -msgid "syntax error: unexpected end of file" -msgstr "" - -#: parse.y:4489 -msgid "syntax error" -msgstr "" - -#: parse.y:4551 -#, c-format -msgid "Use \"%s\" to leave the shell.\n" -msgstr "" - -#: parse.y:4710 -msgid "unexpected EOF while looking for matching `)'" -msgstr "" - -#: pcomplete.c:1001 -#, c-format -msgid "completion: function `%s' not found" -msgstr "" - -#: pcomplib.c:179 -#, c-format -msgid "progcomp_insert: %s: NULL COMPSPEC" -msgstr "" - -#: print_cmd.c:264 -#, c-format -msgid "print_command: bad connector `%d'" -msgstr "" - -#: print_cmd.c:1236 -#, 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:956 -msgid "redirection error: cannot duplicate fd" -msgstr "" - -#: shell.c:309 -msgid "could not find /tmp, please create!" -msgstr "" - -#: shell.c:313 -msgid "/tmp must be a valid directory name" -msgstr "" - -#: shell.c:849 -#, c-format -msgid "%c%c: invalid option" -msgstr "" - -#: shell.c:1598 -msgid "I have no name!" -msgstr "" - -#: shell.c:1733 -#, c-format -msgid "" -"Usage:\t%s [GNU long option] [option] ...\n" -"\t%s [GNU long option] [option] script-file ...\n" -msgstr "" - -#: shell.c:1735 -msgid "GNU long options:\n" -msgstr "" - -#: shell.c:1739 -msgid "Shell options:\n" -msgstr "" - -#: shell.c:1740 -msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -msgstr "" - -#: shell.c:1755 -#, c-format -msgid "\t-%s or -o option\n" -msgstr "" - -#: shell.c:1761 -#, c-format -msgid "Type `%s -c \"help set\"' for more information about shell options.\n" -msgstr "" - -#: shell.c:1762 -#, c-format -msgid "Type `%s -c help' for more information about shell builtin commands.\n" -msgstr "" - -#: shell.c:1763 -msgid "Use the `bashbug' command to report bugs.\n" -msgstr "" - -#: sig.c:494 -#, c-format -msgid "sigprocmask: %d: invalid operation" -msgstr "" - -#: subst.c:1123 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "" - -#: subst.c:2269 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "" - -#: subst.c:4208 subst.c:4224 -msgid "cannot make pipe for process substitution" -msgstr "" - -#: subst.c:4255 -msgid "cannot make child for process substitution" -msgstr "" - -#: subst.c:4300 -#, c-format -msgid "cannot open named pipe %s for reading" -msgstr "" - -#: subst.c:4302 -#, c-format -msgid "cannot open named pipe %s for writing" -msgstr "" - -#: subst.c:4310 -#, c-format -msgid "cannout reset nodelay mode for fd %d" -msgstr "" - -#: subst.c:4320 -#, c-format -msgid "cannot duplicate named pipe %s as fd %d" -msgstr "" - -#: subst.c:4495 -msgid "cannot make pipe for command substitution" -msgstr "" - -#: subst.c:4531 -msgid "cannot make child for command substitution" -msgstr "" - -#: subst.c:4548 -msgid "command_substitute: cannot duplicate pipe as fd 1" -msgstr "" - -#: subst.c:5013 -#, c-format -msgid "%s: parameter null or not set" -msgstr "" - -#: subst.c:5287 -#, c-format -msgid "%s: substring expression < 0" -msgstr "" - -#: subst.c:6058 -#, c-format -msgid "%s: bad substitution" -msgstr "" - -#: subst.c:6134 -#, c-format -msgid "$%s: cannot assign in this way" -msgstr "" - -#: subst.c:7687 -#, 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:320 -#, c-format -msgid "error importing function definition for `%s'" -msgstr "" - -#: variables.c:692 -#, c-format -msgid "shell level (%d) too high, resetting to 1" -msgstr "" - -#: variables.c:1651 -msgid "make_local_variable: no function context at current scope" -msgstr "" - -#: variables.c:2807 -msgid "all_local_variables: no function context at current scope" -msgstr "" - -#: variables.c:3021 variables.c:3030 -#, c-format -msgid "invalid character %d in exportstr for %s" -msgstr "" - -#: variables.c:3036 -#, c-format -msgid "no `=' in exportstr for %s" -msgstr "" - -#: variables.c:3463 -msgid "pop_var_context: head of shell_variables not a function context" -msgstr "" - -#: variables.c:3476 -msgid "pop_var_context: no global_variables context" -msgstr "" - -#: variables.c:3548 -msgid "pop_scope: head of shell_variables not a temporary environment scope" -msgstr "" - -#: version.c:82 -msgid "Copyright (C) 2005 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\n" -" of aliases in the form alias NAME=VALUE on standard output.\n" -" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" -" A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded. Alias returns\n" -" 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,\n" -" then remove all alias definitions." -msgstr "" - -#: builtins.c:266 -msgid "" -" Bind a key sequence to a Readline function or a macro, or set\n" -" a Readline variable. The non-option argument syntax is equivalent\n" -" to that found in ~/.inputrc, but must be passed as a single argument:\n" -" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" bind accepts the following options:\n" -" -m keymap Use `keymap' as the keymap for the duration of " -"this\n" -" command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" -"move,\n" -" vi-command, and vi-insert.\n" -" -l List names of functions.\n" -" -P List function names and bindings.\n" -" -p List functions and bindings in a form that can be\n" -" reused as input.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" -f filename Read key bindings from FILENAME.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" -" -S List key sequences that invoke macros and their " -"values\n" -" -s List key sequences that invoke macros and their " -"values\n" -" 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,\n" -" break N levels." -msgstr "" - -#: builtins.c:304 -msgid "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" 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\n" -" shell builtin to be a function, but need the functionality of the\n" -" builtin within the function itself." -msgstr "" - -#: builtins.c:320 -msgid "" -" Returns the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns returns \"$line $filename\". With EXPR,\n" -" returns \"$line $subroutine $filename\"; this extra information\n" -" can be used used to provide a stack trace.\n" -" \n" -" The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0." -msgstr "" - -#: builtins.c:334 -msgid "" -" Change the current directory to DIR. The variable $HOME is the\n" -" default DIR. The variable CDPATH defines the search path for\n" -" the directory containing DIR. Alternative directory names in CDPATH\n" -" are separated by a colon (:). A null directory name is the same as\n" -" the current directory, i.e. `.'. If DIR begins with a slash (/),\n" -" then CDPATH is not used. If the directory is not found, and the\n" -" shell option `cdable_vars' is set, then try the word as a variable\n" -" name. If that variable has a value, then cd to the value of that\n" -" variable. The -P option says to use the physical directory structure\n" -" instead of following symbolic links; the -L option forces symbolic " -"links\n" -" to be followed." -msgstr "" - -#: builtins.c:350 -msgid "" -" Print the current working directory. With the -P option, pwd prints\n" -" the physical directory, without any symbolic links; the -L option\n" -" 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\n" -" function called `ls', and you wish to call the command `ls', you can\n" -" say \"command ls\". If the -p option is given, a default value is used\n" -" for PATH that is guaranteed to find all of the standard utilities. If\n" -" the -V or -v option is given, a string is printed describing COMMAND.\n" -" The -V option produces a more verbose description." -msgstr "" - -#: builtins.c:387 -msgid "" -" Declare variables and/or give them attributes. If no NAMEs are\n" -" given, then display the values of variables instead. The -p option\n" -" will display the attributes and values of each NAME.\n" -" \n" -" The flags are:\n" -" \n" -" -a\tto make NAMEs arrays (if supported)\n" -" -f\tto select from among function names only\n" -" -F\tto display function names (and line number and source file name " -"if\n" -" \tdebugging) without definitions\n" -" -i\tto make NAMEs have the `integer' attribute\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the `trace' attribute\n" -" -x\tto make NAMEs export\n" -" \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" `let') done when the variable is assigned to.\n" -" \n" -" When displaying values of variables, -f displays a function's name\n" -" and definition. The -F option restricts the display to function\n" -" name only.\n" -" \n" -" Using `+' instead of `-' turns off the given attribute instead. When\n" -" 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\n" -" can only be used within a function; it makes the variable NAME\n" -" 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\n" -" suppressed. If the -e option is given, interpretation of the\n" -" following backslash-escaped characters is turned on:\n" -" \t\\a\talert (bell)\n" -" \t\\b\tbackspace\n" -" \t\\c\tsuppress trailing newline\n" -" \t\\E\tescape character\n" -" \t\\f\tform feed\n" -" \t\\n\tnew line\n" -" \t\\r\tcarriage return\n" -" \t\\t\thorizontal tab\n" -" \t\\v\tvertical tab\n" -" \t\\\\\tbackslash\n" -" \t\\num\tthe character whose ASCII code is NUM (octal).\n" -" \n" -" You can explicitly turn off the interpretation of the above characters\n" -" 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\n" -" you to use a disk command which has the same name as a shell\n" -" builtin without specifying a full pathname. If -n is used, the\n" -" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" -" to use the `test' found in $PATH instead of the shell builtin\n" -" version, type `enable -n test'. On systems supporting dynamic\n" -" loading, the -f option may be used to load new builtins from the\n" -" shared object FILENAME. The -d option will delete a builtin\n" -" previously loaded with -f. If no non-option names are given, or\n" -" the -p option is supplied, a list of builtins is printed. The\n" -" -a option means to print every builtin with an indication of whether\n" -" or not it is enabled. The -s option restricts the output to the " -"POSIX.2\n" -" `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.\n" -" \n" -" OPTSTRING contains the option letters to be recognized; if a letter\n" -" is followed by a colon, the option is expected to have an argument,\n" -" which should be separated from it by white space.\n" -" \n" -" Each time it is invoked, getopts will place the next option in the\n" -" shell variable $name, initializing name if it does not exist, and\n" -" the index of the next argument to be processed into the shell\n" -" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" -" a shell script is invoked. When an option requires an argument,\n" -" getopts places that argument into the shell variable OPTARG.\n" -" \n" -" getopts reports errors in one of two ways. If the first character\n" -" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" -" this mode, no error messages are printed. If an invalid option is\n" -" seen, getopts places the option character found into OPTARG. If a\n" -" required argument is not found, getopts places a ':' into NAME and\n" -" sets OPTARG to the option character found. If getopts is not in\n" -" silent mode, and an invalid option is seen, getopts places '?' into\n" -" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" -" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" -" printed.\n" -" \n" -" If the shell variable OPTERR has the value 0, getopts disables the\n" -" printing of error messages, even if the first character of\n" -" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" -" \n" -" Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead." -msgstr "" - -#: builtins.c:521 -msgid "" -" Exec FILE, replacing this shell with the specified program.\n" -" If FILE is not specified, the redirections take effect in this\n" -" shell. If the first argument is `-l', then place a dash in the\n" -" zeroth arg passed to FILE, as login does. If the `-c' option\n" -" is supplied, FILE is executed with a null environment. The `-a'\n" -" option means to make set argv[0] of the executed process to NAME.\n" -" If the file cannot be executed and the shell is not interactive,\n" -" 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\n" -" 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.\n" -" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" -" string, which means the most recent command beginning with that\n" -" string.\n" -" \n" -" -e ENAME selects which editor to use. Default is FCEDIT, then " -"EDITOR,\n" -" then vi.\n" -" \n" -" -l means list lines instead of editing.\n" -" -n means no line numbers listed.\n" -" -r means reverse the order of the lines (making it newest listed " -"first).\n" -" \n" -" With the `fc -s [pat=rep ...] [command]' format, the command is\n" -" re-executed after the substitution OLD=NEW is performed.\n" -" \n" -" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" -" runs the last command beginning with `cc' and typing `r' re-executes\n" -" the last command." -msgstr "" - -#: builtins.c:573 -msgid "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" -" JOB_SPEC is not present, the shell's notion of the current job is\n" -" used." -msgstr "" - -#: builtins.c:583 -msgid "" -" Place each JOB_SPEC in the background, as if it had been started with\n" -" `&'. If JOB_SPEC is not present, the shell's notion of the current\n" -" job is used." -msgstr "" - -#: builtins.c:592 -msgid "" -" For each NAME, the full pathname of the command is determined and\n" -" remembered. If the -p option is supplied, PATHNAME is used as the\n" -" full pathname of NAME, and no path search is performed. The -r\n" -" option causes the shell to forget all remembered locations. The -d\n" -" option causes the shell to forget the remembered location of each NAME.\n" -" If the -t option is supplied the full pathname to which each NAME\n" -" corresponds is printed. If multiple NAME arguments are supplied with\n" -" -t, the NAME is printed before the hashed full pathname. The -l option\n" -" causes output to be displayed in a format that may be reused as input.\n" -" 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\n" -" specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise a list of the builtins is printed. The -s option\n" -" restricts the output for each builtin command matching PATTERN to\n" -" a short usage synopsis." -msgstr "" - -#: builtins.c:620 -msgid "" -" Display the history list with line numbers. Lines listed with\n" -" with a `*' have been modified. Argument of N says to list only\n" -" the last N lines. The `-c' option causes the history list to be\n" -" cleared by deleting all of the entries. The `-d' option deletes\n" -" the history entry at offset OFFSET. The `-w' option writes out the\n" -" current history to the history file; `-r' means to read the file and\n" -" append the contents to the history list instead. `-a' means\n" -" to append history lines from this session to the history file.\n" -" Argument `-n' means to read all history lines not already read\n" -" from the history file and append them to the history list.\n" -" \n" -" If FILENAME is given, then that is used as the history file else\n" -" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" If the -s option is supplied, the non-option ARGs are appended to\n" -" the history list as a single entry. The -p option means to perform\n" -" history expansion on each ARG and display the result, without storing\n" -" anything in the history list.\n" -" \n" -" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" -" as a format string for strftime(3) to print the time stamp associated\n" -" 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\n" -" to the normal information; the -p option lists process id's only.\n" -" If -n is given, only processes that have changed status since the last\n" -" notification are printed. JOBSPEC restricts output to that job. The\n" -" -r and -s options restrict output to running and stopped jobs only,\n" -" respectively. Without options, the status of all active jobs is\n" -" printed. If -x is given, COMMAND is run after all job specifications\n" -" that appear in ARGS have been replaced with the process ID of that " -"job's\n" -" process group leader." -msgstr "" - -#: builtins.c:664 -msgid "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" -" If the -h option is given, the job is not removed from the table, but " -"is\n" -" marked so that SIGHUP is not sent to the job if the shell receives a\n" -" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " -"all\n" -" 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 JOBSPEC) the signal SIGSPEC. If\n" -" SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" -" lists the signal names; if arguments follow `-l' they are assumed to\n" -" be signal numbers for which names should be listed. Kill is a shell\n" -" builtin for two reasons: it allows job IDs to be used instead of\n" -" process IDs, and, if you have reached the limit on processes that\n" -" 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\n" -" is done in fixed-width integers with no check for overflow, though\n" -" division by 0 is trapped and flagged as an error. The following\n" -" list of operators is grouped into levels of equal-precedence operators.\n" -" The levels are listed in order of decreasing precedence.\n" -" \n" -" \tid++, id--\tvariable post-increment, post-decrement\n" -" \t++id, --id\tvariable pre-increment, pre-decrement\n" -" \t-, +\t\tunary minus, plus\n" -" \t!, ~\t\tlogical and bitwise negation\n" -" \t**\t\texponentiation\n" -" \t*, /, %\t\tmultiplication, division, remainder\n" -" \t+, -\t\taddition, subtraction\n" -" \t<<, >>\t\tleft and right bitwise shifts\n" -" \t<=, >=, <, >\tcomparison\n" -" \t==, !=\t\tequality, inequality\n" -" \t&\t\tbitwise AND\n" -" \t^\t\tbitwise XOR\n" -" \t|\t\tbitwise OR\n" -" \t&&\t\tlogical AND\n" -" \t||\t\tlogical OR\n" -" \texpr ? expr : expr\n" -" \t\t\tconditional operator\n" -" \t=, *=, /=, %=,\n" -" \t+=, -=, <<=, >>=,\n" -" \t&=, ^=, |=\tassignment\n" -" \n" -" Shell variables are allowed as operands. The name of the variable\n" -" is replaced by its value (coerced to a fixed-width integer) within\n" -" an expression. The variable need not have its integer attribute\n" -" turned on to be used in an expression.\n" -" \n" -" Operators are evaluated in order of precedence. Sub-expressions in\n" -" parentheses are evaluated first and may override the precedence\n" -" rules above.\n" -" \n" -" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" -" otherwise." -msgstr "" - -#: builtins.c:730 -msgid "" -" One line is read from the standard input, or from file descriptor FD if " -"the\n" -" -u option is supplied, and the first word is assigned to the first " -"NAME,\n" -" the second word to the second NAME, and so on, with leftover words " -"assigned\n" -" to the last NAME. Only the characters found in $IFS are recognized as " -"word\n" -" delimiters. If no NAMEs are supplied, the line read is stored in the " -"REPLY\n" -" variable. If the -r option is given, this signifies `raw' input, and\n" -" backslash escaping is disabled. The -d option causes read to continue\n" -" until the first character of DELIM is read, rather than newline. If the " -"-p\n" -" option is supplied, the string PROMPT is output without a trailing " -"newline\n" -" before attempting to read. If -a is supplied, the words read are " -"assigned\n" -" to sequential indices of ARRAY, starting at zero. If -e is supplied " -"and\n" -" the shell is interactive, readline is used to obtain the line. If -n " -"is\n" -" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" -" characters have been read. The -s option causes input coming from a\n" -" terminal to not be echoed.\n" -" \n" -" The -t option causes read to time out and return failure if a complete " -"line\n" -" of input is not read within TIMEOUT seconds. If the TMOUT variable is " -"set,\n" -" its value is the default timeout. The return code is zero, unless end-" -"of-file\n" -" is encountered, read times out, or an invalid file descriptor is " -"supplied as\n" -" the argument to -u." -msgstr "" - -#: builtins.c:756 -msgid "" -" Causes a function to exit with the return value specified by N. If N\n" -" 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.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive " -"commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status " -"of\n" -" the last command to exit with a non-zero " -"status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the 1003.2 standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not " -"match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid " -"and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" -" \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed." -msgstr "" - -#: builtins.c:836 -msgid "" -" For each NAME, remove the corresponding variable or function. Given\n" -" the `-v', unset will only act on variables. Given the `-f' flag,\n" -" unset will only act on functions. With neither flag, unset first\n" -" tries to unset a variable, and if that fails, then tries to unset a\n" -" function. Some variables cannot be unset; also see readonly." -msgstr "" - -#: builtins.c:846 -msgid "" -" NAMEs are marked for automatic export to the environment of\n" -" subsequently executed commands. If the -f option is given,\n" -" the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" -" is given, a list of all names that are exported in this shell is\n" -" printed. An argument of `-n' says to remove the export property\n" -" from subsequent NAMEs. An argument of `--' disables further option\n" -" processing." -msgstr "" - -#: builtins.c:858 -msgid "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" -" not be changed by subsequent assignment. If the -f option is given,\n" -" then functions corresponding to the NAMEs are so marked. If no\n" -" arguments are given, or if `-p' is given, a list of all readonly names\n" -" is printed. The `-a' option means to treat each NAME as\n" -" an array variable. An argument of `--' disables further option\n" -" processing." -msgstr "" - -#: builtins.c:870 -msgid "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" -" not given, it is assumed to be 1." -msgstr "" - -#: builtins.c:877 builtins.c:886 -msgid "" -" Read and execute commands from FILENAME and return. The pathnames\n" -" in $PATH are used to find the directory containing FILENAME. If any\n" -" ARGUMENTS are supplied, they become the positional parameters when\n" -" FILENAME is executed." -msgstr "" - -#: builtins.c:896 -msgid "" -" Suspend the execution of this shell until it receives a SIGCONT\n" -" signal. The `-f' if specified says not to complain about this\n" -" being a login shell if it is; just suspend anyway." -msgstr "" - -#: builtins.c:905 -msgid "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" -" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" -" expressions are often used to examine the status of a file. There\n" -" are string operators as well, and numeric comparison operators.\n" -" \n" -" File operators:\n" -" \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its `sticky' bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " -"read.\n" -" \n" -" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" -" modification date).\n" -" \n" -" FILE1 -ot FILE2 True if file1 is older than file2.\n" -" \n" -" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" -" \n" -" String operators:\n" -" \n" -" -z STRING True if string is empty.\n" -" \n" -" -n STRING\n" -" STRING True if string is not empty.\n" -" \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 " -"lexicographically.\n" -" \n" -" Other operators:\n" -" \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" -" \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" -" \n" -" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" -" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2." -msgstr "" - -#: builtins.c:975 -msgid "" -" This is a synonym for the \"test\" builtin, but the last\n" -" argument must be a literal `]', to match the opening `['." -msgstr "" - -#: builtins.c:982 -msgid "" -" Print the accumulated user and system times for processes run from\n" -" the shell." -msgstr "" - -#: builtins.c:989 -msgid "" -" The command ARG is to be read and executed when the shell receives\n" -" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" -" is supplied) or `-', each specified signal is reset to its original\n" -" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" -" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" -" is DEBUG, ARG is executed after every simple command. If the`-p' " -"option\n" -" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" -" displayed. If no arguments are supplied or if only `-p' is given, trap\n" -" prints the list of commands associated with each signal. Each " -"SIGNAL_SPEC\n" -" is either a signal name in or a signal number. Signal names\n" -" are case insensitive and the SIG prefix is optional. `trap -l' prints\n" -" a list of signal names and their corresponding numbers. Note that a\n" -" signal can be sent to the shell with \"kill -signal $$\"." -msgstr "" - -#: builtins.c:1008 -msgid "" -" For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" -" \n" -" If the -t option is used, `type' outputs a single word which is one of\n" -" `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n" -" alias, shell reserved word, shell function, shell builtin, disk file,\n" -" or unfound, respectively.\n" -" \n" -" If the -p flag is used, `type' either returns the name of the disk\n" -" file that would be executed, or nothing if `type -t NAME' would not\n" -" return `file'.\n" -" \n" -" If the -a flag is used, `type' displays all of the places that contain\n" -" an executable named `file'. This includes aliases, builtins, and\n" -" functions, if and only if the -p flag is not also used.\n" -" \n" -" The -f flag suppresses shell function lookup.\n" -" \n" -" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" -" builtin, or function, and returns the name of the disk file that would\n" -" be executed." -msgstr "" - -#: builtins.c:1035 -msgid "" -" Ulimit provides control over the resources available to processes\n" -" started by the shell, on systems that allow such control. If an\n" -" option is given, it is interpreted as follows:\n" -" \n" -" -S\tuse the `soft' resource limit\n" -" -H\tuse the `hard' resource limit\n" -" -a\tall current limits are reported\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource;\n" -" the special LIMIT values `soft', `hard', and `unlimited' stand for\n" -" the current soft limit, the current hard limit, and no limit, " -"respectively.\n" -" Otherwise, the current value of the specified resource is printed.\n" -" If no option is given, then -f is assumed. Values are in 1024-byte\n" -" increments, except for -t, which is in seconds, -p, which is in\n" -" increments of 512 bytes, and -u, which is an unscaled number of\n" -" processes." -msgstr "" - -#: builtins.c:1071 -msgid "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" -" `-S' is supplied, the current value of the mask is printed. The `-S'\n" -" option makes the output symbolic; otherwise an octal number is output.\n" -" If `-p' is supplied, and MODE is omitted, the output is in a form\n" -" that may be used as input. If MODE begins with a digit, it is\n" -" interpreted as an octal number, otherwise it is a symbolic mode string\n" -" like that accepted by chmod(1)." -msgstr "" - -#: builtins.c:1084 -msgid "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N may be a process ID or a job\n" -" specification; if a job spec is given, all processes in the job's\n" -" pipeline are waited for." -msgstr "" - -#: builtins.c:1096 -msgid "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N is a process ID; if it is not given,\n" -" all child processes of the shell are waited for." -msgstr "" - -#: builtins.c:1106 -msgid "" -" The `for' loop executes a sequence of commands for each member in a\n" -" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" -" assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed." -msgstr "" - -#: builtins.c:1115 -msgid "" -" Equivalent to\n" -" \t(( EXP1 ))\n" -" \twhile (( EXP2 )); do\n" -" \t\tCOMMANDS\n" -" \t\t(( EXP3 ))\n" -" \tdone\n" -" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1." -msgstr "" - -#: builtins.c:1128 -msgid "" -" The WORDS are expanded, generating a list of words. The\n" -" set of expanded words is printed on the standard error, each\n" -" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" -" is assumed. The PS3 prompt is then displayed and a line read\n" -" from the standard input. If the line consists of the number\n" -" corresponding to one of the displayed words, then NAME is set\n" -" to that word. If the line is empty, WORDS and the prompt are\n" -" redisplayed. If EOF is read, the command completes. Any other\n" -" value read causes NAME to be set to null. The line read is saved\n" -" in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed." -msgstr "" - -#: builtins.c:1144 -msgid "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" -" and system CPU time spent executing PIPELINE when it terminates.\n" -" The return status is the return status of PIPELINE. The `-p' option\n" -" prints the timing summary in a slightly different format. This uses\n" -" the value of the TIMEFORMAT variable as the output format." -msgstr "" - -#: builtins.c:1154 -msgid "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" `|' is used to separate multiple patterns." -msgstr "" - -#: builtins.c:1161 -msgid "" -" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" -" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " -"is\n" -" executed in turn, and if its exit status is zero, the corresponding\n" -" `then COMMANDS' list is executed and the if command completes. " -"Otherwise,\n" -" the `else COMMANDS' list is executed, if present. The exit status of " -"the\n" -" entire construct is the exit status of the last command executed, or " -"zero\n" -" if no condition tested true." -msgstr "" - -#: builtins.c:1173 -msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" -" `while' COMMANDS has an exit status of zero." -msgstr "" - -#: builtins.c:1180 -msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" -" `until' COMMANDS has an exit status which is not zero." -msgstr "" - -#: builtins.c:1187 -msgid "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" -" Arguments on the command line along with NAME are passed to the\n" -" function as $0 .. $n." -msgstr "" - -#: builtins.c:1195 -msgid "" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands." -msgstr "" - -#: builtins.c:1202 -msgid "" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" -" stopped or background job. JOB_SPEC can specify either a job name\n" -" or a job number. Following JOB_SPEC with a `&' places the job in\n" -" the background, as if the job specification had been supplied as an\n" -" argument to `bg'." -msgstr "" - -#: builtins.c:1212 -msgid "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to \"let EXPRESSION\"." -msgstr "" - -#: builtins.c:1219 -msgid "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" -" expression EXPRESSION. Expressions are composed of the same primaries " -"used\n" -" by the `test' builtin, and may be combined using the following " -"operators\n" -" \n" -" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" -" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" -" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" -" \n" -" When the `==' and `!=' operators are used, the string to the right of " -"the\n" -" operator is used as a pattern and pattern matching is performed. The\n" -" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value." -msgstr "" - -#: builtins.c:1237 -msgid "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" -" \t\tfor directries given as arguments to `cd'.\n" -" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" -" \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is " -"stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" -" \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" -" HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" -" \t\tcharacter as the sole input. If set, then the value\n" -" \t\tof it is the number of EOF characters that can be seen\n" -" \t\tin a row on an empty line before the shell will exit\n" -" \t\t(default 10). When unset, EOF signifies the end of input.\n" -" MACHTYPE\tA string describing the current system Bash is running on.\n" -" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" -" MAILPATH\tA colon-separated list of filenames which Bash checks\n" -" \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" -" \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" -" \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" -" PWD\t\tThe full pathname of the current directory.\n" -" SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" -" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" -" \t\t`time' reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" -" \t\titself is first looked for in the list of currently\n" -" \t\tstopped jobs. If found there, that job is foregrounded.\n" -" \t\tA value of `exact' means that the command word must\n" -" \t\texactly match a command in the list of stopped jobs. A\n" -" \t\tvalue of `substring' means that the command word must\n" -" \t\tmatch a substring of the job. Any other value means that\n" -" \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" -" \t\tsubstitution. The first character is the history\n" -" \t\tsubstitution character, usually `!'. The second is\n" -" \t\tthe `quick substitution' character, usually `^'. The\n" -" \t\tthird is the `history comment' character, usually `#'.\n" -" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" -" \t\tcommands should be saved on the history list.\n" -msgstr "" - -#: builtins.c:1292 -msgid "" -" Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -n\tsuppress the normal change of directory when adding directories\n" -" \tto the stack, so only the stack is manipulated.\n" -" \n" -" dir\tadds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" You can see the directory stack with the `dirs' command." -msgstr "" - -#: builtins.c:1318 -msgid "" -" Removes entries from the directory stack. With no arguments,\n" -" removes the top directory from the stack, and cd's to the new\n" -" top directory.\n" -" \n" -" +N\tremoves the Nth entry counting from the left of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd +0'\n" -" \tremoves the first directory, `popd +1' the second.\n" -" \n" -" -N\tremoves the Nth entry counting from the right of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd -0'\n" -" \tremoves the last directory, `popd -1' the next to last.\n" -" \n" -" -n\tsuppress the normal change of directory when removing directories\n" -" \tfrom the stack, so only the stack is manipulated.\n" -" \n" -" You can see the directory stack with the `dirs' command." -msgstr "" - -#: builtins.c:1341 -msgid "" -" Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the `pushd' command; you can get\n" -" back up through the list with the `popd' command.\n" -" \n" -" The -l flag specifies that `dirs' should not print shorthand versions\n" -" of directories which are relative to your home directory. This means\n" -" that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag\n" -" causes `dirs' to print the directory stack with one entry per line,\n" -" prepending the directory name with its position in the stack. The -p\n" -" flag does the same thing, but the stack position is not prepended.\n" -" The -c flag clears the directory stack by deleting all of the elements.\n" -" \n" -" +N\tdisplays the Nth entry counting from the left of the list shown by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tdisplays the Nth entry counting from the right of the list shown by\n" -" \tdirs when invoked without options, starting with zero." -msgstr "" - -#: builtins.c:1364 -msgid "" -" Toggle the values of variables controlling optional behavior.\n" -" The -s flag means to enable (set) each OPTNAME; the -u flag\n" -" unsets each OPTNAME. The -q flag suppresses output; the exit\n" -" status indicates whether each OPTNAME is set or unset. The -o\n" -" option restricts the OPTNAMEs to those defined for use with\n" -" `set -o'. With no options, or with the -p option, a list of all\n" -" settable options is displayed, with an indication of whether or\n" -" not each is set." -msgstr "" - -#: builtins.c:1377 -msgid "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" -" is a character string which contains three types of objects: plain\n" -" characters, which are simply copied to standard output, character " -"escape\n" -" sequences which are converted and copied to the standard output, and\n" -" format specifications, each of which causes printing of the next " -"successive\n" -" argument. In addition to the standard printf(1) formats, %b means to\n" -" expand backslash escape sequences in the corresponding argument, and %q\n" -" means to quote the argument in a way that can be reused as shell input.\n" -" If the -v option is supplied, the output is placed into the value of " -"the\n" -" shell variable VAR rather than being sent to the standard output." -msgstr "" - -#: builtins.c:1393 -msgid "" -" For each NAME, specify how arguments are to be completed.\n" -" If the -p option is supplied, or if no options are supplied, existing\n" -" completion specifications are printed in a way that allows them to be\n" -" reused as input. The -r option removes a completion specification for\n" -" each NAME, or, if no NAMEs are supplied, all completion specifications." -msgstr "" - -#: builtins.c:1405 -msgid "" -" Display the possible completions depending on the options. Intended\n" -" to be used from within a shell function generating possible " -"completions.\n" -" If the optional WORD argument is supplied, matches against WORD are\n" -" generated." -msgstr "" diff --git a/po/bash-3.2.pot b/po/bash-3.2.pot deleted file mode 100644 index 4a79cc404..000000000 --- a/po/bash-3.2.pot +++ /dev/null @@ -1,2578 +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. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2006-10-23 17:20-0400\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:48 -msgid "bad array subscript" -msgstr "" - -#: arrayfunc.c:362 -#, c-format -msgid "%s: cannot assign to non-numeric index" -msgstr "" - -#: bashhist.c:331 -#, c-format -msgid "%s: cannot create: %s" -msgstr "" - -#: bashline.c:3030 -msgid "bash_execute_unix_command: cannot find keymap for command" -msgstr "" - -#: bashline.c:3079 -#, c-format -msgid "%s: first non-whitespace character is not `\"'" -msgstr "" - -#: bashline.c:3108 -#, c-format -msgid "no closing `%c' in %s" -msgstr "" - -#: bashline.c:3142 -#, c-format -msgid "%s: missing colon separator" -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:131 -msgid "Returns the context of the current subroutine call." -msgstr "" - -#: builtins/caller.def:132 builtins/caller.def:136 builtins/pushd.def:666 -#: builtins/pushd.def:674 builtins/pushd.def:677 builtins/pushd.def:687 -#: builtins/pushd.def:691 builtins/pushd.def:695 builtins/pushd.def:698 -#: builtins/pushd.def:701 builtins/pushd.def:710 builtins/pushd.def:714 -#: builtins/pushd.def:718 builtins/pushd.def:721 -msgid " " -msgstr "" - -#: builtins/caller.def:133 -msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," -msgstr "" - -#: builtins/caller.def:134 -msgid "returns \"$line $subroutine $filename\"; this extra information" -msgstr "" - -#: builtins/caller.def:135 -msgid "can be used used to provide a stack trace." -msgstr "" - -#: builtins/caller.def:137 -msgid "The value of EXPR indicates how many call frames to go back before the" -msgstr "" - -#: builtins/caller.def:138 -msgid "current one; the top frame is frame 0." -msgstr "" - -#: builtins/cd.def:204 -msgid "HOME not set" -msgstr "" - -#: builtins/cd.def:216 -msgid "OLDPWD not set" -msgstr "" - -#: builtins/common.c:133 test.c:822 -msgid "too many arguments" -msgstr "" - -#: builtins/common.c:157 shell.c:474 shell.c:748 -#, 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:761 -#, 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:230 general.c:235 -#, 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:451 -#, 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:276 -#, c-format -msgid "write error: %s" -msgstr "" - -#: builtins/common.c:481 -#, c-format -msgid "%s: error retrieving current directory: %s: %s\n" -msgstr "" - -#: builtins/common.c:547 builtins/common.c:549 -#, 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:106 -msgid "can only be used in a function" -msgstr "" - -#: builtins/declare.def:306 -msgid "cannot use `-f' to make functions" -msgstr "" - -#: builtins/declare.def:318 execute_cmd.c:4073 -#, c-format -msgid "%s: readonly function" -msgstr "" - -#: builtins/declare.def:406 -#, 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:129 execute_cmd.c:3930 shell.c:1409 -#, c-format -msgid "%s: is a directory" -msgstr "" - -#: builtins/evalfile.c:134 -#, c-format -msgid "%s: not a regular file" -msgstr "" - -#: builtins/evalfile.c:142 -#, 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:258 -msgid "no command found" -msgstr "" - -#: builtins/fc.def:328 -msgid "history specification" -msgstr "" - -#: builtins/fc.def:349 -#, c-format -msgid "%s: cannot open temp file: %s" -msgstr "" - -#: builtins/fg_bg.def:149 -#, 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:84 -msgid "hashing disabled" -msgstr "" - -#: builtins/hash.def:130 -#, 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:150 -msgid "cannot use more than one of -anrw" -msgstr "" - -#: builtins/history.def:182 -msgid "history position" -msgstr "" - -#: builtins/history.def:400 -#, 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:250 -msgid "Unknown error" -msgstr "" - -#: builtins/let.def:94 builtins/let.def:119 expr.c:498 expr.c:513 -msgid "expression expected" -msgstr "" - -#: builtins/printf.def:339 -#, c-format -msgid "`%s': missing format character" -msgstr "" - -#: builtins/printf.def:516 -#, c-format -msgid "`%c': invalid format character" -msgstr "" - -#: builtins/printf.def:722 -msgid "missing hex digit for \\x" -msgstr "" - -#: builtins/pushd.def:175 -msgid "no other directory" -msgstr "" - -#: builtins/pushd.def:442 -msgid "" -msgstr "" - -#: builtins/pushd.def:663 -msgid "Display the list of currently remembered directories. Directories" -msgstr "" - -#: builtins/pushd.def:664 -msgid "find their way onto the list with the `pushd' command; you can get" -msgstr "" - -#: builtins/pushd.def:665 -msgid "back up through the list with the `popd' command." -msgstr "" - -#: builtins/pushd.def:667 -msgid "The -l flag specifies that `dirs' should not print shorthand versions" -msgstr "" - -#: builtins/pushd.def:668 -msgid "of directories which are relative to your home directory. This means" -msgstr "" - -#: builtins/pushd.def:669 -msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" -msgstr "" - -#: builtins/pushd.def:670 -msgid "causes `dirs' to print the directory stack with one entry per line," -msgstr "" - -#: builtins/pushd.def:671 -msgid "prepending the directory name with its position in the stack. The -p" -msgstr "" - -#: builtins/pushd.def:672 -msgid "flag does the same thing, but the stack position is not prepended." -msgstr "" - -#: builtins/pushd.def:673 -msgid "The -c flag clears the directory stack by deleting all of the elements." -msgstr "" - -#: builtins/pushd.def:675 -msgid "+N displays the Nth entry counting from the left of the list shown by" -msgstr "" - -#: builtins/pushd.def:676 builtins/pushd.def:679 -msgid " dirs when invoked without options, starting with zero." -msgstr "" - -#: builtins/pushd.def:678 -msgid "" -"-N displays the Nth entry counting from the right of the list shown by" -msgstr "" - -#: builtins/pushd.def:684 -msgid "Adds a directory to the top of the directory stack, or rotates" -msgstr "" - -#: builtins/pushd.def:685 -msgid "the stack, making the new top of the stack the current working" -msgstr "" - -#: builtins/pushd.def:686 -msgid "directory. With no arguments, exchanges the top two directories." -msgstr "" - -#: builtins/pushd.def:688 -msgid "+N Rotates the stack so that the Nth directory (counting" -msgstr "" - -#: builtins/pushd.def:689 -msgid " from the left of the list shown by `dirs', starting with" -msgstr "" - -#: builtins/pushd.def:690 builtins/pushd.def:694 -msgid " zero) is at the top." -msgstr "" - -#: builtins/pushd.def:692 -msgid "-N Rotates the stack so that the Nth directory (counting" -msgstr "" - -#: builtins/pushd.def:693 -msgid " from the right of the list shown by `dirs', starting with" -msgstr "" - -#: builtins/pushd.def:696 -msgid "-n suppress the normal change of directory when adding directories" -msgstr "" - -#: builtins/pushd.def:697 -msgid " to the stack, so only the stack is manipulated." -msgstr "" - -#: builtins/pushd.def:699 -msgid "dir adds DIR to the directory stack at the top, making it the" -msgstr "" - -#: builtins/pushd.def:700 -msgid " new current working directory." -msgstr "" - -#: builtins/pushd.def:702 builtins/pushd.def:722 -msgid "You can see the directory stack with the `dirs' command." -msgstr "" - -#: builtins/pushd.def:707 -msgid "Removes entries from the directory stack. With no arguments," -msgstr "" - -#: builtins/pushd.def:708 -msgid "removes the top directory from the stack, and cd's to the new" -msgstr "" - -#: builtins/pushd.def:709 -msgid "top directory." -msgstr "" - -#: builtins/pushd.def:711 -msgid "+N removes the Nth entry counting from the left of the list" -msgstr "" - -#: builtins/pushd.def:712 -msgid " shown by `dirs', starting with zero. For example: `popd +0'" -msgstr "" - -#: builtins/pushd.def:713 -msgid " removes the first directory, `popd +1' the second." -msgstr "" - -#: builtins/pushd.def:715 -msgid "-N removes the Nth entry counting from the right of the list" -msgstr "" - -#: builtins/pushd.def:716 -msgid " shown by `dirs', starting with zero. For example: `popd -0'" -msgstr "" - -#: builtins/pushd.def:717 -msgid " removes the last directory, `popd -1' the next to last." -msgstr "" - -#: builtins/pushd.def:719 -msgid "-n suppress the normal change of directory when removing directories" -msgstr "" - -#: builtins/pushd.def:720 -msgid " from the stack, so only the stack is manipulated." -msgstr "" - -#: builtins/read.def:210 -#, c-format -msgid "%s: invalid timeout specification" -msgstr "" - -#: builtins/read.def:233 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "" - -#: builtins/read.def:240 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "" - -#: builtins/read.def:478 -#, 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:744 -msgid "cannot simultaneously unset a function and a variable" -msgstr "" - -#: builtins/set.def:781 -#, c-format -msgid "%s: cannot unset" -msgstr "" - -#: builtins/set.def:788 -#, c-format -msgid "%s: cannot unset: readonly %s" -msgstr "" - -#: builtins/set.def:799 -#, c-format -msgid "%s: not an array variable" -msgstr "" - -#: builtins/setattr.def:166 -#, c-format -msgid "%s: not a function" -msgstr "" - -#: builtins/shift.def:66 builtins/shift.def:72 -msgid "shift count" -msgstr "" - -#: builtins/shopt.def:227 -msgid "cannot set and unset shell options simultaneously" -msgstr "" - -#: builtins/shopt.def:292 -#, c-format -msgid "%s: invalid shell option name" -msgstr "" - -#: builtins/source.def:115 -msgid "filename argument required" -msgstr "" - -#: builtins/source.def:135 -#, c-format -msgid "%s: file not found" -msgstr "" - -#: builtins/suspend.def:95 -msgid "cannot suspend" -msgstr "" - -#: builtins/suspend.def:105 -msgid "cannot suspend a login shell" -msgstr "" - -#: builtins/type.def:232 -#, c-format -msgid "%s is aliased to `%s'\n" -msgstr "" - -#: builtins/type.def:253 -#, c-format -msgid "%s is a shell keyword\n" -msgstr "" - -#: builtins/type.def:273 -#, c-format -msgid "%s is a function\n" -msgstr "" - -#: builtins/type.def:298 -#, c-format -msgid "%s is a shell builtin\n" -msgstr "" - -#: builtins/type.def:319 -#, c-format -msgid "%s is %s\n" -msgstr "" - -#: builtins/type.def:339 -#, c-format -msgid "%s is hashed (%s)\n" -msgstr "" - -#: builtins/ulimit.def:352 -#, c-format -msgid "%s: invalid limit argument" -msgstr "" - -#: builtins/ulimit.def:378 -#, c-format -msgid "`%c': bad command" -msgstr "" - -#: builtins/ulimit.def:407 -#, c-format -msgid "%s: cannot get limit: %s" -msgstr "" - -#: builtins/ulimit.def:445 -#, 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:281 -#, c-format -msgid "`%c': invalid symbolic mode character" -msgstr "" - -#: error.c:163 -#, c-format -msgid "last command: %s\n" -msgstr "" - -#: error.c:171 -msgid "Aborting..." -msgstr "" - -#: error.c:258 -#, c-format -msgid "%s: warning: " -msgstr "" - -#: error.c:403 -msgid "unknown command error" -msgstr "" - -#: error.c:404 -msgid "bad command type" -msgstr "" - -#: error.c:405 -msgid "bad connector" -msgstr "" - -#: error.c:406 -msgid "bad jump" -msgstr "" - -#: error.c:444 -#, c-format -msgid "%s: unbound variable" -msgstr "" - -#: eval.c:176 -msgid "timed out waiting for input: auto-logout\n" -msgstr "" - -#: execute_cmd.c:474 -#, c-format -msgid "cannot redirect standard input from /dev/null: %s" -msgstr "" - -#: execute_cmd.c:1058 -#, c-format -msgid "TIMEFORMAT: `%c': invalid format character" -msgstr "" - -#: execute_cmd.c:3629 -#, c-format -msgid "%s: restricted: cannot specify `/' in command names" -msgstr "" - -#: execute_cmd.c:3717 -#, c-format -msgid "%s: command not found" -msgstr "" - -#: execute_cmd.c:3963 -#, c-format -msgid "%s: %s: bad interpreter" -msgstr "" - -#: execute_cmd.c:4000 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "" - -#: execute_cmd.c:4112 -#, c-format -msgid "cannot duplicate fd %d to fd %d" -msgstr "" - -#: expr.c:241 -msgid "expression recursion level exceeded" -msgstr "" - -#: expr.c:265 -msgid "recursion stack underflow" -msgstr "" - -#: expr.c:376 -msgid "syntax error in expression" -msgstr "" - -#: expr.c:416 -msgid "attempted assignment to non-variable" -msgstr "" - -#: expr.c:437 expr.c:442 expr.c:752 -msgid "division by 0" -msgstr "" - -#: expr.c:468 -msgid "bug: bad expassign token" -msgstr "" - -#: expr.c:510 -msgid "`:' expected for conditional expression" -msgstr "" - -#: expr.c:777 -msgid "exponent less than 0" -msgstr "" - -#: expr.c:822 -msgid "identifier expected after pre-increment or pre-decrement" -msgstr "" - -#: expr.c:850 -msgid "missing `)'" -msgstr "" - -#: expr.c:893 expr.c:1171 -msgid "syntax error: operand expected" -msgstr "" - -#: expr.c:1173 -msgid "syntax error: invalid arithmetic operator" -msgstr "" - -#: expr.c:1251 -msgid "invalid number" -msgstr "" - -#: expr.c:1255 -msgid "invalid arithmetic base" -msgstr "" - -#: expr.c:1275 -msgid "value too great for base" -msgstr "" - -#: general.c:61 -msgid "getcwd: cannot access parent directories" -msgstr "" - -#: input.c:237 -#, c-format -msgid "cannot allocate new file descriptor for bash input from fd %d" -msgstr "" - -#: input.c:245 -#, c-format -msgid "save_bash_input: buffer already exists for new fd %d" -msgstr "" - -#: jobs.c:876 -#, c-format -msgid "forked pid %d appears in running job %d" -msgstr "" - -#: jobs.c:983 -#, c-format -msgid "deleting stopped job %d with process group %ld" -msgstr "" - -#: jobs.c:1378 -#, c-format -msgid "describe_pid: %ld: no such pid" -msgstr "" - -#: jobs.c:2061 nojobs.c:575 -#, c-format -msgid "wait: pid %ld is not a child of this shell" -msgstr "" - -#: jobs.c:2265 -#, c-format -msgid "wait_for: No record of process %ld" -msgstr "" - -#: jobs.c:2524 -#, c-format -msgid "wait_for_job: job %d is stopped" -msgstr "" - -#: jobs.c:2746 -#, c-format -msgid "%s: job has terminated" -msgstr "" - -#: jobs.c:2755 -#, c-format -msgid "%s: job %d already in background" -msgstr "" - -#: jobs.c:3546 -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:799 -msgid "malloc: block on free list clobbered" -msgstr "" - -#: lib/malloc/malloc.c:876 -msgid "free: called with already freed block argument" -msgstr "" - -#: lib/malloc/malloc.c:879 -msgid "free: called with unallocated block argument" -msgstr "" - -#: lib/malloc/malloc.c:898 -msgid "free: underflow detected; mh_nbytes out of range" -msgstr "" - -#: lib/malloc/malloc.c:904 -msgid "free: start and end chunk sizes differ" -msgstr "" - -#: lib/malloc/malloc.c:1003 -msgid "realloc: called with unallocated block argument" -msgstr "" - -#: lib/malloc/malloc.c:1018 -msgid "realloc: underflow detected; mh_nbytes out of range" -msgstr "" - -#: lib/malloc/malloc.c:1024 -msgid "realloc: start and end chunk sizes differ" -msgstr "" - -#: lib/malloc/table.c:176 -msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" -msgstr "" - -#: lib/malloc/table.c:183 -#, c-format -msgid "register_alloc: %p already in table as allocated?\n" -msgstr "" - -#: lib/malloc/table.c:219 -#, 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:168 -#, c-format -msgid "%s: host unknown" -msgstr "" - -#: lib/sh/netopen.c:175 -#, c-format -msgid "%s: invalid service" -msgstr "" - -#: lib/sh/netopen.c:306 -#, c-format -msgid "%s: bad network path specification" -msgstr "" - -#: lib/sh/netopen.c:346 -msgid "network operations not supported" -msgstr "" - -#: mailcheck.c:386 -msgid "You have mail in $_" -msgstr "" - -#: mailcheck.c:411 -msgid "You have new mail in $_" -msgstr "" - -#: mailcheck.c:427 -#, c-format -msgid "The mail in %s has been read\n" -msgstr "" - -#: make_cmd.c:322 -msgid "syntax error: arithmetic expression required" -msgstr "" - -#: make_cmd.c:324 -msgid "syntax error: `;' unexpected" -msgstr "" - -#: make_cmd.c:325 -#, c-format -msgid "syntax error: `((%s))'" -msgstr "" - -#: make_cmd.c:566 -#, c-format -msgid "make_here_document: bad instruction type %d" -msgstr "" - -#: make_cmd.c:741 -#, c-format -msgid "make_redirection: redirection instruction `%d' out of range" -msgstr "" - -#: parse.y:2759 -#, c-format -msgid "unexpected EOF while looking for matching `%c'" -msgstr "" - -#: parse.y:3071 -msgid "unexpected EOF while looking for `]]'" -msgstr "" - -#: parse.y:3076 -#, c-format -msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "" - -#: parse.y:3080 -msgid "syntax error in conditional expression" -msgstr "" - -#: parse.y:3158 -#, c-format -msgid "unexpected token `%s', expected `)'" -msgstr "" - -#: parse.y:3162 -msgid "expected `)'" -msgstr "" - -#: parse.y:3190 -#, c-format -msgid "unexpected argument `%s' to conditional unary operator" -msgstr "" - -#: parse.y:3194 -msgid "unexpected argument to conditional unary operator" -msgstr "" - -#: parse.y:3234 -#, c-format -msgid "unexpected token `%s', conditional binary operator expected" -msgstr "" - -#: parse.y:3238 -msgid "conditional binary operator expected" -msgstr "" - -#: parse.y:3255 -#, c-format -msgid "unexpected argument `%s' to conditional binary operator" -msgstr "" - -#: parse.y:3259 -msgid "unexpected argument to conditional binary operator" -msgstr "" - -#: parse.y:3270 -#, c-format -msgid "unexpected token `%c' in conditional command" -msgstr "" - -#: parse.y:3273 -#, c-format -msgid "unexpected token `%s' in conditional command" -msgstr "" - -#: parse.y:3277 -#, c-format -msgid "unexpected token %d in conditional command" -msgstr "" - -#: parse.y:4523 -#, c-format -msgid "syntax error near unexpected token `%s'" -msgstr "" - -#: parse.y:4541 -#, c-format -msgid "syntax error near `%s'" -msgstr "" - -#: parse.y:4551 -msgid "syntax error: unexpected end of file" -msgstr "" - -#: parse.y:4551 -msgid "syntax error" -msgstr "" - -#: parse.y:4613 -#, c-format -msgid "Use \"%s\" to leave the shell.\n" -msgstr "" - -#: parse.y:4775 -msgid "unexpected EOF while looking for matching `)'" -msgstr "" - -#: pcomplete.c:1002 -#, c-format -msgid "completion: function `%s' not found" -msgstr "" - -#: pcomplib.c:179 -#, c-format -msgid "progcomp_insert: %s: NULL COMPSPEC" -msgstr "" - -#: print_cmd.c:264 -#, c-format -msgid "print_command: bad connector `%d'" -msgstr "" - -#: print_cmd.c:1236 -#, 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:965 -msgid "redirection error: cannot duplicate fd" -msgstr "" - -#: shell.c:309 -msgid "could not find /tmp, please create!" -msgstr "" - -#: shell.c:313 -msgid "/tmp must be a valid directory name" -msgstr "" - -#: shell.c:850 -#, c-format -msgid "%c%c: invalid option" -msgstr "" - -#: shell.c:1600 -msgid "I have no name!" -msgstr "" - -#: shell.c:1735 -#, c-format -msgid "" -"Usage:\t%s [GNU long option] [option] ...\n" -"\t%s [GNU long option] [option] script-file ...\n" -msgstr "" - -#: shell.c:1737 -msgid "GNU long options:\n" -msgstr "" - -#: shell.c:1741 -msgid "Shell options:\n" -msgstr "" - -#: shell.c:1742 -msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -msgstr "" - -#: shell.c:1757 -#, c-format -msgid "\t-%s or -o option\n" -msgstr "" - -#: shell.c:1763 -#, c-format -msgid "Type `%s -c \"help set\"' for more information about shell options.\n" -msgstr "" - -#: shell.c:1764 -#, c-format -msgid "Type `%s -c help' for more information about shell builtin commands.\n" -msgstr "" - -#: shell.c:1765 -msgid "Use the `bashbug' command to report bugs.\n" -msgstr "" - -#: sig.c:557 -#, c-format -msgid "sigprocmask: %d: invalid operation" -msgstr "" - -#: subst.c:1160 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "" - -#: subst.c:2328 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "" - -#: subst.c:4265 subst.c:4281 -msgid "cannot make pipe for process substitution" -msgstr "" - -#: subst.c:4312 -msgid "cannot make child for process substitution" -msgstr "" - -#: subst.c:4357 -#, c-format -msgid "cannot open named pipe %s for reading" -msgstr "" - -#: subst.c:4359 -#, c-format -msgid "cannot open named pipe %s for writing" -msgstr "" - -#: subst.c:4367 -#, c-format -msgid "cannout reset nodelay mode for fd %d" -msgstr "" - -#: subst.c:4377 -#, c-format -msgid "cannot duplicate named pipe %s as fd %d" -msgstr "" - -#: subst.c:4552 -msgid "cannot make pipe for command substitution" -msgstr "" - -#: subst.c:4588 -msgid "cannot make child for command substitution" -msgstr "" - -#: subst.c:4605 -msgid "command_substitute: cannot duplicate pipe as fd 1" -msgstr "" - -#: subst.c:5068 -#, c-format -msgid "%s: parameter null or not set" -msgstr "" - -#: subst.c:5342 -#, c-format -msgid "%s: substring expression < 0" -msgstr "" - -#: subst.c:6179 -#, c-format -msgid "%s: bad substitution" -msgstr "" - -#: subst.c:6255 -#, c-format -msgid "$%s: cannot assign in this way" -msgstr "" - -#: subst.c:7826 -#, c-format -msgid "no match: %s" -msgstr "" - -#: test.c:145 -msgid "argument expected" -msgstr "" - -#: test.c:154 -#, c-format -msgid "%s: integer expression expected" -msgstr "" - -#: test.c:262 -msgid "`)' expected" -msgstr "" - -#: test.c:264 -#, c-format -msgid "`)' expected, found %s" -msgstr "" - -#: test.c:279 test.c:688 test.c:691 -#, c-format -msgid "%s: unary operator expected" -msgstr "" - -#: test.c:444 test.c:731 -#, c-format -msgid "%s: binary operator expected" -msgstr "" - -#: test.c:806 -msgid "missing `]'" -msgstr "" - -#: trap.c:200 -msgid "invalid signal number" -msgstr "" - -#: trap.c:315 -#, c-format -msgid "run_pending_traps: bad value in trap_list[%d]: %p" -msgstr "" - -#: trap.c:319 -#, c-format -msgid "" -"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -msgstr "" - -#: trap.c:355 -#, c-format -msgid "trap_handler: bad signal %d" -msgstr "" - -#: variables.c:334 -#, c-format -msgid "error importing function definition for `%s'" -msgstr "" - -#: variables.c:711 -#, c-format -msgid "shell level (%d) too high, resetting to 1" -msgstr "" - -#: variables.c:1670 -msgid "make_local_variable: no function context at current scope" -msgstr "" - -#: variables.c:2813 -msgid "all_local_variables: no function context at current scope" -msgstr "" - -#: variables.c:3030 variables.c:3039 -#, c-format -msgid "invalid character %d in exportstr for %s" -msgstr "" - -#: variables.c:3045 -#, c-format -msgid "no `=' in exportstr for %s" -msgstr "" - -#: variables.c:3472 -msgid "pop_var_context: head of shell_variables not a function context" -msgstr "" - -#: variables.c:3485 -msgid "pop_var_context: no global_variables context" -msgstr "" - -#: variables.c:3557 -msgid "pop_scope: head of shell_variables not a temporary environment scope" -msgstr "" - -#: version.c:82 -msgid "Copyright (C) 2006 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\n" -" of aliases in the form alias NAME=VALUE on standard output.\n" -" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" -" A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded. Alias returns\n" -" 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,\n" -" then remove all alias definitions." -msgstr "" - -#: builtins.c:266 -msgid "" -"Bind a key sequence to a Readline function or a macro, or set\n" -" a Readline variable. The non-option argument syntax is equivalent\n" -" to that found in ~/.inputrc, but must be passed as a single argument:\n" -" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" bind accepts the following options:\n" -" -m keymap Use `keymap' as the keymap for the duration of " -"this\n" -" command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" -"move,\n" -" vi-command, and vi-insert.\n" -" -l List names of functions.\n" -" -P List function names and bindings.\n" -" -p List functions and bindings in a form that can be\n" -" reused as input.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" -f filename Read key bindings from FILENAME.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" -" -S List key sequences that invoke macros and their " -"values\n" -" -s List key sequences that invoke macros and their " -"values\n" -" 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,\n" -" break N levels." -msgstr "" - -#: builtins.c:304 -msgid "" -"Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" 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\n" -" shell builtin to be a function, but need the functionality of the\n" -" builtin within the function itself." -msgstr "" - -#: builtins.c:320 -msgid "" -"Returns the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns \"$line $filename\". With EXPR,\n" -" returns \"$line $subroutine $filename\"; this extra information\n" -" can be used to provide a stack trace.\n" -" \n" -" The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0." -msgstr "" - -#: builtins.c:334 -msgid "" -"Change the current directory to DIR. The variable $HOME is the\n" -" default DIR. The variable CDPATH defines the search path for\n" -" the directory containing DIR. Alternative directory names in CDPATH\n" -" are separated by a colon (:). A null directory name is the same as\n" -" the current directory, i.e. `.'. If DIR begins with a slash (/),\n" -" then CDPATH is not used. If the directory is not found, and the\n" -" shell option `cdable_vars' is set, then try the word as a variable\n" -" name. If that variable has a value, then cd to the value of that\n" -" variable. The -P option says to use the physical directory structure\n" -" instead of following symbolic links; the -L option forces symbolic " -"links\n" -" to be followed." -msgstr "" - -#: builtins.c:350 -msgid "" -"Print the current working directory. With the -P option, pwd prints\n" -" the physical directory, without any symbolic links; the -L option\n" -" 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\n" -" function called `ls', and you wish to call the command `ls', you can\n" -" say \"command ls\". If the -p option is given, a default value is used\n" -" for PATH that is guaranteed to find all of the standard utilities. If\n" -" the -V or -v option is given, a string is printed describing COMMAND.\n" -" The -V option produces a more verbose description." -msgstr "" - -#: builtins.c:387 -msgid "" -"Declare variables and/or give them attributes. If no NAMEs are\n" -" given, then display the values of variables instead. The -p option\n" -" will display the attributes and values of each NAME.\n" -" \n" -" The flags are:\n" -" \n" -" -a\tto make NAMEs arrays (if supported)\n" -" -f\tto select from among function names only\n" -" -F\tto display function names (and line number and source file name " -"if\n" -" \tdebugging) without definitions\n" -" -i\tto make NAMEs have the `integer' attribute\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the `trace' attribute\n" -" -x\tto make NAMEs export\n" -" \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" `let') done when the variable is assigned to.\n" -" \n" -" When displaying values of variables, -f displays a function's name\n" -" and definition. The -F option restricts the display to function\n" -" name only.\n" -" \n" -" Using `+' instead of `-' turns off the given attribute instead. When\n" -" 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\n" -" can only be used within a function; it makes the variable NAME\n" -" 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\n" -" suppressed. If the -e option is given, interpretation of the\n" -" following backslash-escaped characters is turned on:\n" -" \t\\a\talert (bell)\n" -" \t\\b\tbackspace\n" -" \t\\c\tsuppress trailing newline\n" -" \t\\E\tescape character\n" -" \t\\f\tform feed\n" -" \t\\n\tnew line\n" -" \t\\r\tcarriage return\n" -" \t\\t\thorizontal tab\n" -" \t\\v\tvertical tab\n" -" \t\\\\\tbackslash\n" -" \t\\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" -" \t\t0 to 3 octal digits\n" -" \n" -" You can explicitly turn off the interpretation of the above characters\n" -" with the -E option." -msgstr "" - -#: builtins.c:456 -msgid "" -"Output the ARGs. If -n is specified, the trailing newline is suppressed." -msgstr "" - -#: builtins.c:463 -msgid "" -"Enable and disable builtin shell commands. This allows\n" -" you to use a disk command which has the same name as a shell\n" -" builtin without specifying a full pathname. If -n is used, the\n" -" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" -" to use the `test' found in $PATH instead of the shell builtin\n" -" version, type `enable -n test'. On systems supporting dynamic\n" -" loading, the -f option may be used to load new builtins from the\n" -" shared object FILENAME. The -d option will delete a builtin\n" -" previously loaded with -f. If no non-option names are given, or\n" -" the -p option is supplied, a list of builtins is printed. The\n" -" -a option means to print every builtin with an indication of whether\n" -" or not it is enabled. The -s option restricts the output to the " -"POSIX.2\n" -" `special' builtins. The -n option displays a list of all disabled " -"builtins." -msgstr "" - -#: builtins.c:481 -msgid "Read ARGs as input to the shell and execute the resulting command(s)." -msgstr "" - -#: builtins.c:487 -msgid "" -"Getopts is used by shell procedures to parse positional parameters.\n" -" \n" -" OPTSTRING contains the option letters to be recognized; if a letter\n" -" is followed by a colon, the option is expected to have an argument,\n" -" which should be separated from it by white space.\n" -" \n" -" Each time it is invoked, getopts will place the next option in the\n" -" shell variable $name, initializing name if it does not exist, and\n" -" the index of the next argument to be processed into the shell\n" -" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" -" a shell script is invoked. When an option requires an argument,\n" -" getopts places that argument into the shell variable OPTARG.\n" -" \n" -" getopts reports errors in one of two ways. If the first character\n" -" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" -" this mode, no error messages are printed. If an invalid option is\n" -" seen, getopts places the option character found into OPTARG. If a\n" -" required argument is not found, getopts places a ':' into NAME and\n" -" sets OPTARG to the option character found. If getopts is not in\n" -" silent mode, and an invalid option is seen, getopts places '?' into\n" -" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" -" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" -" printed.\n" -" \n" -" If the shell variable OPTERR has the value 0, getopts disables the\n" -" printing of error messages, even if the first character of\n" -" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" -" \n" -" Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead." -msgstr "" - -#: builtins.c:522 -msgid "" -"Exec FILE, replacing this shell with the specified program.\n" -" If FILE is not specified, the redirections take effect in this\n" -" shell. If the first argument is `-l', then place a dash in the\n" -" zeroth arg passed to FILE, as login does. If the `-c' option\n" -" is supplied, FILE is executed with a null environment. The `-a'\n" -" option means to make set argv[0] of the executed process to NAME.\n" -" If the file cannot be executed and the shell is not interactive,\n" -" then the shell exits, unless the shell option `execfail' is set." -msgstr "" - -#: builtins.c:535 -msgid "" -"Exit the shell with a status of N. If N is omitted, the exit status\n" -" is that of the last command executed." -msgstr "" - -#: builtins.c:542 -msgid "Logout of a login shell." -msgstr "" - -#: builtins.c:549 -msgid "" -"fc is used to list or edit and re-execute commands from the history list.\n" -" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" -" string, which means the most recent command beginning with that\n" -" string.\n" -" \n" -" -e ENAME selects which editor to use. Default is FCEDIT, then " -"EDITOR,\n" -" then vi.\n" -" \n" -" -l means list lines instead of editing.\n" -" -n means no line numbers listed.\n" -" -r means reverse the order of the lines (making it newest listed " -"first).\n" -" \n" -" With the `fc -s [pat=rep ...] [command]' format, the command is\n" -" re-executed after the substitution OLD=NEW is performed.\n" -" \n" -" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" -" runs the last command beginning with `cc' and typing `r' re-executes\n" -" the last command." -msgstr "" - -#: builtins.c:574 -msgid "" -"Place JOB_SPEC in the foreground, and make it the current job. If\n" -" JOB_SPEC is not present, the shell's notion of the current job is\n" -" used." -msgstr "" - -#: builtins.c:584 -msgid "" -"Place each JOB_SPEC in the background, as if it had been started with\n" -" `&'. If JOB_SPEC is not present, the shell's notion of the current\n" -" job is used." -msgstr "" - -#: builtins.c:593 -msgid "" -"For each NAME, the full pathname of the command is determined and\n" -" remembered. If the -p option is supplied, PATHNAME is used as the\n" -" full pathname of NAME, and no path search is performed. The -r\n" -" option causes the shell to forget all remembered locations. The -d\n" -" option causes the shell to forget the remembered location of each NAME.\n" -" If the -t option is supplied the full pathname to which each NAME\n" -" corresponds is printed. If multiple NAME arguments are supplied with\n" -" -t, the NAME is printed before the hashed full pathname. The -l option\n" -" causes output to be displayed in a format that may be reused as input.\n" -" If no arguments are given, information about remembered commands is " -"displayed." -msgstr "" - -#: builtins.c:609 -msgid "" -"Display helpful information about builtin commands. If PATTERN is\n" -" specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise a list of the builtins is printed. The -s option\n" -" restricts the output for each builtin command matching PATTERN to\n" -" a short usage synopsis." -msgstr "" - -#: builtins.c:621 -msgid "" -"Display the history list with line numbers. Lines listed with\n" -" with a `*' have been modified. Argument of N says to list only\n" -" the last N lines. The `-c' option causes the history list to be\n" -" cleared by deleting all of the entries. The `-d' option deletes\n" -" the history entry at offset OFFSET. The `-w' option writes out the\n" -" current history to the history file; `-r' means to read the file and\n" -" append the contents to the history list instead. `-a' means\n" -" to append history lines from this session to the history file.\n" -" Argument `-n' means to read all history lines not already read\n" -" from the history file and append them to the history list.\n" -" \n" -" If FILENAME is given, then that is used as the history file else\n" -" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" If the -s option is supplied, the non-option ARGs are appended to\n" -" the history list as a single entry. The -p option means to perform\n" -" history expansion on each ARG and display the result, without storing\n" -" anything in the history list.\n" -" \n" -" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" -" as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed otherwise." -msgstr "" - -#: builtins.c:649 -msgid "" -"Lists the active jobs. The -l option lists process id's in addition\n" -" to the normal information; the -p option lists process id's only.\n" -" If -n is given, only processes that have changed status since the last\n" -" notification are printed. JOBSPEC restricts output to that job. The\n" -" -r and -s options restrict output to running and stopped jobs only,\n" -" respectively. Without options, the status of all active jobs is\n" -" printed. If -x is given, COMMAND is run after all job specifications\n" -" that appear in ARGS have been replaced with the process ID of that " -"job's\n" -" process group leader." -msgstr "" - -#: builtins.c:665 -msgid "" -"By default, removes each JOBSPEC argument from the table of active jobs.\n" -" If the -h option is given, the job is not removed from the table, but " -"is\n" -" marked so that SIGHUP is not sent to the job if the shell receives a\n" -" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " -"all\n" -" jobs from the job table; the -r option means to remove only running jobs." -msgstr "" - -#: builtins.c:676 -msgid "" -"Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" -" SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" -" lists the signal names; if arguments follow `-l' they are assumed to\n" -" be signal numbers for which names should be listed. Kill is a shell\n" -" builtin for two reasons: it allows job IDs to be used instead of\n" -" process IDs, and, if you have reached the limit on processes that\n" -" you can create, you don't have to start a process to kill another one." -msgstr "" - -#: builtins.c:688 -msgid "" -"Each ARG is an arithmetic expression to be evaluated. Evaluation\n" -" is done in fixed-width integers with no check for overflow, though\n" -" division by 0 is trapped and flagged as an error. The following\n" -" list of operators is grouped into levels of equal-precedence operators.\n" -" The levels are listed in order of decreasing precedence.\n" -" \n" -" \tid++, id--\tvariable post-increment, post-decrement\n" -" \t++id, --id\tvariable pre-increment, pre-decrement\n" -" \t-, +\t\tunary minus, plus\n" -" \t!, ~\t\tlogical and bitwise negation\n" -" \t**\t\texponentiation\n" -" \t*, /, %\t\tmultiplication, division, remainder\n" -" \t+, -\t\taddition, subtraction\n" -" \t<<, >>\t\tleft and right bitwise shifts\n" -" \t<=, >=, <, >\tcomparison\n" -" \t==, !=\t\tequality, inequality\n" -" \t&\t\tbitwise AND\n" -" \t^\t\tbitwise XOR\n" -" \t|\t\tbitwise OR\n" -" \t&&\t\tlogical AND\n" -" \t||\t\tlogical OR\n" -" \texpr ? expr : expr\n" -" \t\t\tconditional operator\n" -" \t=, *=, /=, %=,\n" -" \t+=, -=, <<=, >>=,\n" -" \t&=, ^=, |=\tassignment\n" -" \n" -" Shell variables are allowed as operands. The name of the variable\n" -" is replaced by its value (coerced to a fixed-width integer) within\n" -" an expression. The variable need not have its integer attribute\n" -" turned on to be used in an expression.\n" -" \n" -" Operators are evaluated in order of precedence. Sub-expressions in\n" -" parentheses are evaluated first and may override the precedence\n" -" rules above.\n" -" \n" -" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" -" otherwise." -msgstr "" - -#: builtins.c:731 -msgid "" -"One line is read from the standard input, or from file descriptor FD if the\n" -" -u option is supplied, and the first word is assigned to the first " -"NAME,\n" -" the second word to the second NAME, and so on, with leftover words " -"assigned\n" -" to the last NAME. Only the characters found in $IFS are recognized as " -"word\n" -" delimiters. If no NAMEs are supplied, the line read is stored in the " -"REPLY\n" -" variable. If the -r option is given, this signifies `raw' input, and\n" -" backslash escaping is disabled. The -d option causes read to continue\n" -" until the first character of DELIM is read, rather than newline. If the " -"-p\n" -" option is supplied, the string PROMPT is output without a trailing " -"newline\n" -" before attempting to read. If -a is supplied, the words read are " -"assigned\n" -" to sequential indices of ARRAY, starting at zero. If -e is supplied " -"and\n" -" the shell is interactive, readline is used to obtain the line. If -n " -"is\n" -" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" -" characters have been read. The -s option causes input coming from a\n" -" terminal to not be echoed.\n" -" \n" -" The -t option causes read to time out and return failure if a complete " -"line\n" -" of input is not read within TIMEOUT seconds. If the TMOUT variable is " -"set,\n" -" its value is the default timeout. The return code is zero, unless end-" -"of-file\n" -" is encountered, read times out, or an invalid file descriptor is " -"supplied as\n" -" the argument to -u." -msgstr "" - -#: builtins.c:757 -msgid "" -"Causes a function to exit with the return value specified by N. If N\n" -" is omitted, the return status is that of the last command." -msgstr "" - -#: builtins.c:764 -msgid "" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive " -"commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status " -"of\n" -" the last command to exit with a non-zero " -"status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the 1003.2 standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not " -"match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid " -"and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" -" \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed." -msgstr "" - -#: builtins.c:837 -msgid "" -"For each NAME, remove the corresponding variable or function. Given\n" -" the `-v', unset will only act on variables. Given the `-f' flag,\n" -" unset will only act on functions. With neither flag, unset first\n" -" tries to unset a variable, and if that fails, then tries to unset a\n" -" function. Some variables cannot be unset; also see readonly." -msgstr "" - -#: builtins.c:847 -msgid "" -"NAMEs are marked for automatic export to the environment of\n" -" subsequently executed commands. If the -f option is given,\n" -" the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" -" is given, a list of all names that are exported in this shell is\n" -" printed. An argument of `-n' says to remove the export property\n" -" from subsequent NAMEs. An argument of `--' disables further option\n" -" processing." -msgstr "" - -#: builtins.c:859 -msgid "" -"The given NAMEs are marked readonly and the values of these NAMEs may\n" -" not be changed by subsequent assignment. If the -f option is given,\n" -" then functions corresponding to the NAMEs are so marked. If no\n" -" arguments are given, or if `-p' is given, a list of all readonly names\n" -" is printed. The `-a' option means to treat each NAME as\n" -" an array variable. An argument of `--' disables further option\n" -" processing." -msgstr "" - -#: builtins.c:871 -msgid "" -"The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" -" not given, it is assumed to be 1." -msgstr "" - -#: builtins.c:878 builtins.c:887 -msgid "" -"Read and execute commands from FILENAME and return. The pathnames\n" -" in $PATH are used to find the directory containing FILENAME. If any\n" -" ARGUMENTS are supplied, they become the positional parameters when\n" -" FILENAME is executed." -msgstr "" - -#: builtins.c:897 -msgid "" -"Suspend the execution of this shell until it receives a SIGCONT\n" -" signal. The `-f' if specified says not to complain about this\n" -" being a login shell if it is; just suspend anyway." -msgstr "" - -#: builtins.c:906 -msgid "" -"Exits with a status of 0 (true) or 1 (false) depending on\n" -" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" -" expressions are often used to examine the status of a file. There\n" -" are string operators as well, and numeric comparison operators.\n" -" \n" -" File operators:\n" -" \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its `sticky' bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " -"read.\n" -" \n" -" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" -" modification date).\n" -" \n" -" FILE1 -ot FILE2 True if file1 is older than file2.\n" -" \n" -" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" -" \n" -" String operators:\n" -" \n" -" -z STRING True if string is empty.\n" -" \n" -" -n STRING\n" -" STRING True if string is not empty.\n" -" \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 " -"lexicographically.\n" -" \n" -" Other operators:\n" -" \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" -" \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" -" \n" -" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" -" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2." -msgstr "" - -#: builtins.c:976 -msgid "" -"This is a synonym for the \"test\" builtin, but the last\n" -" argument must be a literal `]', to match the opening `['." -msgstr "" - -#: builtins.c:983 -msgid "" -"Print the accumulated user and system times for processes run from\n" -" the shell." -msgstr "" - -#: builtins.c:990 -msgid "" -"The command ARG is to be read and executed when the shell receives\n" -" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" -" is supplied) or `-', each specified signal is reset to its original\n" -" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" -" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" -" is DEBUG, ARG is executed after every simple command. If the`-p' " -"option\n" -" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" -" displayed. If no arguments are supplied or if only `-p' is given, trap\n" -" prints the list of commands associated with each signal. Each " -"SIGNAL_SPEC\n" -" is either a signal name in or a signal number. Signal names\n" -" are case insensitive and the SIG prefix is optional. `trap -l' prints\n" -" a list of signal names and their corresponding numbers. Note that a\n" -" signal can be sent to the shell with \"kill -signal $$\"." -msgstr "" - -#: builtins.c:1009 -msgid "" -"For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" -" \n" -" If the -t option is used, `type' outputs a single word which is one of\n" -" `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n" -" alias, shell reserved word, shell function, shell builtin, disk file,\n" -" or unfound, respectively.\n" -" \n" -" If the -p flag is used, `type' either returns the name of the disk\n" -" file that would be executed, or nothing if `type -t NAME' would not\n" -" return `file'.\n" -" \n" -" If the -a flag is used, `type' displays all of the places that contain\n" -" an executable named `file'. This includes aliases, builtins, and\n" -" functions, if and only if the -p flag is not also used.\n" -" \n" -" The -f flag suppresses shell function lookup.\n" -" \n" -" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" -" builtin, or function, and returns the name of the disk file that would\n" -" be executed." -msgstr "" - -#: builtins.c:1036 -msgid "" -"Ulimit provides control over the resources available to processes\n" -" started by the shell, on systems that allow such control. If an\n" -" option is given, it is interpreted as follows:\n" -" \n" -" -S\tuse the `soft' resource limit\n" -" -H\tuse the `hard' resource limit\n" -" -a\tall current limits are reported\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -e\tthe maximum scheduling priority (`nice')\n" -" -f\tthe maximum size of files written by the shell and its children\n" -" -i\tthe maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q\tthe maximum number of bytes in POSIX message queues\n" -" -r\tthe maximum real-time scheduling priority\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x\tthe maximum number of file locks\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource;\n" -" the special LIMIT values `soft', `hard', and `unlimited' stand for\n" -" the current soft limit, the current hard limit, and no limit, " -"respectively.\n" -" Otherwise, the current value of the specified resource is printed.\n" -" If no option is given, then -f is assumed. Values are in 1024-byte\n" -" increments, except for -t, which is in seconds, -p, which is in\n" -" increments of 512 bytes, and -u, which is an unscaled number of\n" -" processes." -msgstr "" - -#: builtins.c:1074 -msgid "" -"The user file-creation mask is set to MODE. If MODE is omitted, or if\n" -" `-S' is supplied, the current value of the mask is printed. The `-S'\n" -" option makes the output symbolic; otherwise an octal number is output.\n" -" If `-p' is supplied, and MODE is omitted, the output is in a form\n" -" that may be used as input. If MODE begins with a digit, it is\n" -" interpreted as an octal number, otherwise it is a symbolic mode string\n" -" like that accepted by chmod(1)." -msgstr "" - -#: builtins.c:1087 -msgid "" -"Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N may be a process ID or a job\n" -" specification; if a job spec is given, all processes in the job's\n" -" pipeline are waited for." -msgstr "" - -#: builtins.c:1099 -msgid "" -"Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N is a process ID; if it is not given,\n" -" all child processes of the shell are waited for." -msgstr "" - -#: builtins.c:1109 -msgid "" -"The `for' loop executes a sequence of commands for each member in a\n" -" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" -" assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed." -msgstr "" - -#: builtins.c:1118 -msgid "" -"Equivalent to\n" -" \t(( EXP1 ))\n" -" \twhile (( EXP2 )); do\n" -" \t\tCOMMANDS\n" -" \t\t(( EXP3 ))\n" -" \tdone\n" -" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1." -msgstr "" - -#: builtins.c:1131 -msgid "" -"The WORDS are expanded, generating a list of words. The\n" -" set of expanded words is printed on the standard error, each\n" -" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" -" is assumed. The PS3 prompt is then displayed and a line read\n" -" from the standard input. If the line consists of the number\n" -" corresponding to one of the displayed words, then NAME is set\n" -" to that word. If the line is empty, WORDS and the prompt are\n" -" redisplayed. If EOF is read, the command completes. Any other\n" -" value read causes NAME to be set to null. The line read is saved\n" -" in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed." -msgstr "" - -#: builtins.c:1147 -msgid "" -"Execute PIPELINE and print a summary of the real time, user CPU time,\n" -" and system CPU time spent executing PIPELINE when it terminates.\n" -" The return status is the return status of PIPELINE. The `-p' option\n" -" prints the timing summary in a slightly different format. This uses\n" -" the value of the TIMEFORMAT variable as the output format." -msgstr "" - -#: builtins.c:1157 -msgid "" -"Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" `|' is used to separate multiple patterns." -msgstr "" - -#: builtins.c:1164 -msgid "" -"The `if COMMANDS' list is executed. If its exit status is zero, then the\n" -" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " -"is\n" -" executed in turn, and if its exit status is zero, the corresponding\n" -" `then COMMANDS' list is executed and the if command completes. " -"Otherwise,\n" -" the `else COMMANDS' list is executed, if present. The exit status of " -"the\n" -" entire construct is the exit status of the last command executed, or " -"zero\n" -" if no condition tested true." -msgstr "" - -#: builtins.c:1176 -msgid "" -"Expand and execute COMMANDS as long as the final command in the\n" -" `while' COMMANDS has an exit status of zero." -msgstr "" - -#: builtins.c:1183 -msgid "" -"Expand and execute COMMANDS as long as the final command in the\n" -" `until' COMMANDS has an exit status which is not zero." -msgstr "" - -#: builtins.c:1190 -msgid "" -"Create a simple command invoked by NAME which runs COMMANDS.\n" -" Arguments on the command line along with NAME are passed to the\n" -" function as $0 .. $n." -msgstr "" - -#: builtins.c:1198 -msgid "" -"Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands." -msgstr "" - -#: builtins.c:1205 -msgid "" -"Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" -" stopped or background job. JOB_SPEC can specify either a job name\n" -" or a job number. Following JOB_SPEC with a `&' places the job in\n" -" the background, as if the job specification had been supplied as an\n" -" argument to `bg'." -msgstr "" - -#: builtins.c:1215 -msgid "" -"The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to \"let EXPRESSION\"." -msgstr "" - -#: builtins.c:1222 -msgid "" -"Returns a status of 0 or 1 depending on the evaluation of the conditional\n" -" expression EXPRESSION. Expressions are composed of the same primaries " -"used\n" -" by the `test' builtin, and may be combined using the following " -"operators\n" -" \n" -" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" -" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" -" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" -" \n" -" When the `==' and `!=' operators are used, the string to the right of " -"the\n" -" operator is used as a pattern and pattern matching is performed. The\n" -" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value." -msgstr "" - -#: builtins.c:1240 -msgid "" -"BASH_VERSION\tVersion information for this Bash.\n" -" CDPATH\tA colon-separated list of directories to search\n" -" \t\tfor directries given as arguments to `cd'.\n" -" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" -" \t\tbe ignored by pathname expansion.\n" -" HISTFILE\tThe name of the file where your command history is stored.\n" -" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" -" HISTSIZE\tThe maximum number of history lines that a running\n" -" \t\tshell can access.\n" -" HOME\tThe complete pathname to your login directory.\n" -" HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" -" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" -" \t\tcharacter as the sole input. If set, then the value\n" -" \t\tof it is the number of EOF characters that can be seen\n" -" \t\tin a row on an empty line before the shell will exit\n" -" \t\t(default 10). When unset, EOF signifies the end of input.\n" -" MACHTYPE\tA string describing the current system Bash is running on.\n" -" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" -" MAILPATH\tA colon-separated list of filenames which Bash checks\n" -" \t\tfor new mail.\n" -" OSTYPE\tThe version of Unix this version of Bash is running on.\n" -" PATH\tA colon-separated list of directories to search when\n" -" \t\tlooking for commands.\n" -" PROMPT_COMMAND\tA command to be executed before the printing of each\n" -" \t\tprimary prompt.\n" -" PS1\t\tThe primary prompt string.\n" -" PS2\t\tThe secondary prompt string.\n" -" PWD\t\tThe full pathname of the current directory.\n" -" SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM\tThe name of the current terminal type.\n" -" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" -" \t\t`time' reserved word.\n" -" auto_resume\tNon-null means a command word appearing on a line by\n" -" \t\titself is first looked for in the list of currently\n" -" \t\tstopped jobs. If found there, that job is foregrounded.\n" -" \t\tA value of `exact' means that the command word must\n" -" \t\texactly match a command in the list of stopped jobs. A\n" -" \t\tvalue of `substring' means that the command word must\n" -" \t\tmatch a substring of the job. Any other value means that\n" -" \t\tthe command must be a prefix of a stopped job.\n" -" histchars\tCharacters controlling history expansion and quick\n" -" \t\tsubstitution. The first character is the history\n" -" \t\tsubstitution character, usually `!'. The second is\n" -" \t\tthe `quick substitution' character, usually `^'. The\n" -" \t\tthird is the `history comment' character, usually `#'.\n" -" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" -" \t\tcommands should be saved on the history list.\n" -msgstr "" - -#: builtins.c:1295 -msgid "" -"Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -n\tsuppress the normal change of directory when adding directories\n" -" \tto the stack, so only the stack is manipulated.\n" -" \n" -" dir\tadds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" You can see the directory stack with the `dirs' command." -msgstr "" - -#: builtins.c:1321 -msgid "" -"Removes entries from the directory stack. With no arguments,\n" -" removes the top directory from the stack, and cd's to the new\n" -" top directory.\n" -" \n" -" +N\tremoves the Nth entry counting from the left of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd +0'\n" -" \tremoves the first directory, `popd +1' the second.\n" -" \n" -" -N\tremoves the Nth entry counting from the right of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd -0'\n" -" \tremoves the last directory, `popd -1' the next to last.\n" -" \n" -" -n\tsuppress the normal change of directory when removing directories\n" -" \tfrom the stack, so only the stack is manipulated.\n" -" \n" -" You can see the directory stack with the `dirs' command." -msgstr "" - -#: builtins.c:1344 -msgid "" -"Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the `pushd' command; you can get\n" -" back up through the list with the `popd' command.\n" -" \n" -" The -l flag specifies that `dirs' should not print shorthand versions\n" -" of directories which are relative to your home directory. This means\n" -" that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag\n" -" causes `dirs' to print the directory stack with one entry per line,\n" -" prepending the directory name with its position in the stack. The -p\n" -" flag does the same thing, but the stack position is not prepended.\n" -" The -c flag clears the directory stack by deleting all of the elements.\n" -" \n" -" +N\tdisplays the Nth entry counting from the left of the list shown by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tdisplays the Nth entry counting from the right of the list shown by\n" -" \tdirs when invoked without options, starting with zero." -msgstr "" - -#: builtins.c:1367 -msgid "" -"Toggle the values of variables controlling optional behavior.\n" -" The -s flag means to enable (set) each OPTNAME; the -u flag\n" -" unsets each OPTNAME. The -q flag suppresses output; the exit\n" -" status indicates whether each OPTNAME is set or unset. The -o\n" -" option restricts the OPTNAMEs to those defined for use with\n" -" `set -o'. With no options, or with the -p option, a list of all\n" -" settable options is displayed, with an indication of whether or\n" -" not each is set." -msgstr "" - -#: builtins.c:1380 -msgid "" -"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" -" is a character string which contains three types of objects: plain\n" -" characters, which are simply copied to standard output, character " -"escape\n" -" sequences which are converted and copied to the standard output, and\n" -" format specifications, each of which causes printing of the next " -"successive\n" -" argument. In addition to the standard printf(1) formats, %b means to\n" -" expand backslash escape sequences in the corresponding argument, and %q\n" -" means to quote the argument in a way that can be reused as shell input.\n" -" If the -v option is supplied, the output is placed into the value of " -"the\n" -" shell variable VAR rather than being sent to the standard output." -msgstr "" - -#: builtins.c:1396 -msgid "" -"For each NAME, specify how arguments are to be completed.\n" -" If the -p option is supplied, or if no options are supplied, existing\n" -" completion specifications are printed in a way that allows them to be\n" -" reused as input. The -r option removes a completion specification for\n" -" each NAME, or, if no NAMEs are supplied, all completion specifications." -msgstr "" - -#: builtins.c:1408 -msgid "" -"Display the possible completions depending on the options. Intended\n" -" to be used from within a shell function generating possible " -"completions.\n" -" If the optional WORD argument is supplied, matches against WORD are\n" -" generated." -msgstr "" diff --git a/po/bash-4.0.pot b/po/bash-4.0.pot deleted file mode 100644 index 3f78e05f0..000000000 --- a/po/bash-4.0.pot +++ /dev/null @@ -1,3824 +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. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-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" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" - -#: arrayfunc.c:50 -msgid "bad array subscript" -msgstr "" - -#: arrayfunc.c:313 builtins/declare.def:474 -#, c-format -msgid "%s: cannot convert indexed to associative array" -msgstr "" - -#: arrayfunc.c:479 -#, c-format -msgid "%s: invalid associative array key" -msgstr "" - -#: arrayfunc.c:481 -#, c-format -msgid "%s: cannot assign to non-numeric index" -msgstr "" - -#: arrayfunc.c:517 -#, c-format -msgid "%s: %s: must use subscript when assigning associative array" -msgstr "" - -#: bashhist.c:379 -#, c-format -msgid "%s: cannot create: %s" -msgstr "" - -#: bashline.c:3413 -msgid "bash_execute_unix_command: cannot find keymap for command" -msgstr "" - -#: bashline.c:3491 -#, c-format -msgid "%s: first non-whitespace character is not `\"'" -msgstr "" - -#: bashline.c:3520 -#, c-format -msgid "no closing `%c' in %s" -msgstr "" - -#: bashline.c:3554 -#, c-format -msgid "%s: missing colon separator" -msgstr "" - -#: builtins/bind.def:120 builtins/bind.def:123 -msgid "line editing not enabled" -msgstr "" - -#: builtins/bind.def:206 -#, c-format -msgid "`%s': invalid keymap name" -msgstr "" - -#: builtins/bind.def:245 -#, c-format -msgid "%s: cannot read: %s" -msgstr "" - -#: builtins/bind.def:260 -#, c-format -msgid "`%s': cannot unbind" -msgstr "" - -#: builtins/bind.def:295 builtins/bind.def:325 -#, c-format -msgid "`%s': unknown function name" -msgstr "" - -#: builtins/bind.def:303 -#, c-format -msgid "%s is not bound to any keys.\n" -msgstr "" - -#: builtins/bind.def:307 -#, c-format -msgid "%s can be invoked via " -msgstr "" - -#: builtins/break.def:77 builtins/break.def:117 -msgid "loop count" -msgstr "" - -#: builtins/break.def:137 -msgid "only meaningful in a `for', `while', or `until' loop" -msgstr "" - -#: builtins/caller.def:133 -msgid "" -"Returns the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns " -msgstr "" - -#: builtins/cd.def:215 -msgid "HOME not set" -msgstr "" - -#: builtins/cd.def:227 -msgid "OLDPWD not set" -msgstr "" - -#: builtins/common.c:101 -#, c-format -msgid "line %d: " -msgstr "" - -#: builtins/common.c:139 error.c:260 -#, c-format -msgid "warning: " -msgstr "" - -#: builtins/common.c:153 -#, c-format -msgid "%s: usage: " -msgstr "" - -#: builtins/common.c:166 test.c:822 -msgid "too many arguments" -msgstr "" - -#: builtins/common.c:191 shell.c:493 shell.c:774 -#, c-format -msgid "%s: option requires an argument" -msgstr "" - -#: builtins/common.c:198 -#, c-format -msgid "%s: numeric argument required" -msgstr "" - -#: builtins/common.c:205 -#, c-format -msgid "%s: not found" -msgstr "" - -#: builtins/common.c:214 shell.c:787 -#, c-format -msgid "%s: invalid option" -msgstr "" - -#: builtins/common.c:221 -#, c-format -msgid "%s: invalid option name" -msgstr "" - -#: builtins/common.c:228 general.c:231 general.c:236 -#, c-format -msgid "`%s': not a valid identifier" -msgstr "" - -#: builtins/common.c:238 -msgid "invalid octal number" -msgstr "" - -#: builtins/common.c:240 -msgid "invalid hex number" -msgstr "" - -#: builtins/common.c:242 expr.c:1255 -msgid "invalid number" -msgstr "" - -#: builtins/common.c:250 -#, c-format -msgid "%s: invalid signal specification" -msgstr "" - -#: builtins/common.c:257 -#, c-format -msgid "`%s': not a pid or valid job spec" -msgstr "" - -#: builtins/common.c:264 error.c:453 -#, c-format -msgid "%s: readonly variable" -msgstr "" - -#: builtins/common.c:272 -#, c-format -msgid "%s: %s out of range" -msgstr "" - -#: builtins/common.c:272 builtins/common.c:274 -msgid "argument" -msgstr "" - -#: builtins/common.c:274 -#, c-format -msgid "%s out of range" -msgstr "" - -#: builtins/common.c:282 -#, c-format -msgid "%s: no such job" -msgstr "" - -#: builtins/common.c:290 -#, c-format -msgid "%s: no job control" -msgstr "" - -#: builtins/common.c:292 -msgid "no job control" -msgstr "" - -#: builtins/common.c:302 -#, c-format -msgid "%s: restricted" -msgstr "" - -#: builtins/common.c:304 -msgid "restricted" -msgstr "" - -#: builtins/common.c:312 -#, c-format -msgid "%s: not a shell builtin" -msgstr "" - -#: builtins/common.c:321 -#, c-format -msgid "write error: %s" -msgstr "" - -#: builtins/common.c:329 -#, c-format -msgid "error setting terminal attributes: %s" -msgstr "" - -#: builtins/common.c:331 -#, c-format -msgid "error getting terminal attributes: %s" -msgstr "" - -#: builtins/common.c:563 -#, c-format -msgid "%s: error retrieving current directory: %s: %s\n" -msgstr "" - -#: builtins/common.c:629 builtins/common.c:631 -#, c-format -msgid "%s: ambiguous job spec" -msgstr "" - -#: builtins/complete.def:270 -#, c-format -msgid "%s: invalid action name" -msgstr "" - -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 -#, c-format -msgid "%s: no completion specification" -msgstr "" - -#: builtins/complete.def:667 -msgid "warning: -F option may not work as you expect" -msgstr "" - -#: builtins/complete.def:669 -msgid "warning: -C option may not work as you expect" -msgstr "" - -#: builtins/complete.def:786 -msgid "not currently executing completion function" -msgstr "" - -#: builtins/declare.def:122 -msgid "can only be used in a function" -msgstr "" - -#: builtins/declare.def:353 -msgid "cannot use `-f' to make functions" -msgstr "" - -#: builtins/declare.def:365 execute_cmd.c:4818 -#, c-format -msgid "%s: readonly function" -msgstr "" - -#: builtins/declare.def:461 -#, c-format -msgid "%s: cannot destroy array variables in this way" -msgstr "" - -#: builtins/declare.def:468 -#, c-format -msgid "%s: cannot convert associative to indexed array" -msgstr "" - -#: builtins/enable.def:137 builtins/enable.def:145 -msgid "dynamic loading not available" -msgstr "" - -#: builtins/enable.def:312 -#, c-format -msgid "cannot open shared object %s: %s" -msgstr "" - -#: builtins/enable.def:335 -#, c-format -msgid "cannot find %s in shared object %s: %s" -msgstr "" - -#: builtins/enable.def:459 -#, c-format -msgid "%s: not dynamically loaded" -msgstr "" - -#: builtins/enable.def:474 -#, c-format -msgid "%s: cannot delete: %s" -msgstr "" - -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 -#, c-format -msgid "%s: is a directory" -msgstr "" - -#: builtins/evalfile.c:139 -#, c-format -msgid "%s: not a regular file" -msgstr "" - -#: builtins/evalfile.c:147 -#, c-format -msgid "%s: file is too large" -msgstr "" - -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "" - -#: builtins/exec.def:212 -#, c-format -msgid "%s: cannot execute: %s" -msgstr "" - -#: builtins/exit.def:65 -#, c-format -msgid "logout\n" -msgstr "" - -#: builtins/exit.def:88 -msgid "not login shell: use `exit'" -msgstr "" - -#: builtins/exit.def:120 -#, c-format -msgid "There are stopped jobs.\n" -msgstr "" - -#: builtins/exit.def:122 -#, c-format -msgid "There are running jobs.\n" -msgstr "" - -#: builtins/fc.def:261 -msgid "no command found" -msgstr "" - -#: builtins/fc.def:341 -msgid "history specification" -msgstr "" - -#: builtins/fc.def:362 -#, c-format -msgid "%s: cannot open temp file: %s" -msgstr "" - -#: builtins/fg_bg.def:149 builtins/jobs.def:282 -msgid "current" -msgstr "" - -#: builtins/fg_bg.def:158 -#, c-format -msgid "job %d started without job control" -msgstr "" - -#: builtins/getopt.c:110 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "" - -#: builtins/getopt.c:111 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "" - -#: builtins/hash.def:92 -msgid "hashing disabled" -msgstr "" - -#: builtins/hash.def:138 -#, c-format -msgid "%s: hash table empty\n" -msgstr "" - -#: builtins/hash.def:244 -#, c-format -msgid "hits\tcommand\n" -msgstr "" - -#: builtins/help.def:130 -#, c-format -msgid "Shell commands matching keyword `" -msgid_plural "Shell commands matching keywords `" -msgstr[0] "" -msgstr[1] "" - -#: builtins/help.def:168 -#, c-format -msgid "" -"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." -msgstr "" - -#: builtins/help.def:185 -#, c-format -msgid "%s: cannot open: %s" -msgstr "" - -#: builtins/help.def:337 -#, c-format -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:154 -msgid "cannot use more than one of -anrw" -msgstr "" - -#: builtins/history.def:186 -msgid "history position" -msgstr "" - -#: builtins/history.def:365 -#, c-format -msgid "%s: history expansion failed" -msgstr "" - -#: builtins/inlib.def:71 -#, c-format -msgid "%s: inlib failed" -msgstr "" - -#: builtins/jobs.def:109 -msgid "no other options allowed with `-x'" -msgstr "" - -#: builtins/kill.def:197 -#, c-format -msgid "%s: arguments must be process or job IDs" -msgstr "" - -#: builtins/kill.def:260 -msgid "Unknown error" -msgstr "" - -#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 -msgid "expression expected" -msgstr "" - -#: builtins/mapfile.def:241 builtins/read.def:272 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "" - -#: builtins/mapfile.def:249 builtins/read.def:279 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "" - -#: builtins/mapfile.def:258 builtins/mapfile.def:296 -#, c-format -msgid "%s: invalid line count" -msgstr "" - -#: builtins/mapfile.def:269 -#, c-format -msgid "%s: invalid array origin" -msgstr "" - -#: builtins/mapfile.def:286 -#, c-format -msgid "%s: invalid callback quantum" -msgstr "" - -#: builtins/mapfile.def:318 -msgid "empty array variable name" -msgstr "" - -#: builtins/mapfile.def:339 -msgid "array variable support required" -msgstr "" - -#: builtins/printf.def:367 -#, c-format -msgid "`%s': missing format character" -msgstr "" - -#: builtins/printf.def:544 -#, c-format -msgid "`%c': invalid format character" -msgstr "" - -#: builtins/printf.def:571 -#, c-format -msgid "warning: %s: %s" -msgstr "" - -#: builtins/printf.def:750 -msgid "missing hex digit for \\x" -msgstr "" - -#: builtins/pushd.def:195 -msgid "no other directory" -msgstr "" - -#: builtins/pushd.def:462 -msgid "" -msgstr "" - -#: builtins/pushd.def:506 -msgid "directory stack empty" -msgstr "" - -#: builtins/pushd.def:508 -msgid "directory stack index" -msgstr "" - -#: builtins/pushd.def:683 -msgid "" -"Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the `pushd' command; you can get\n" -" back up through the list with the `popd' command.\n" -" \n" -" Options:\n" -" -c\tclear the directory stack by deleting all of the elements\n" -" -l\tdo not print tilde-prefixed versions of directories relative\n" -" \tto your home directory\n" -" -p\tprint the directory stack with one entry per line\n" -" -v\tprint the directory stack with one entry per line prefixed\n" -" \twith its position in the stack\n" -" \n" -" Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" -"\tdirs when invoked without options, starting with zero." -msgstr "" - -#: builtins/pushd.def:705 -msgid "" -"Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when adding\n" -" \tdirectories to the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" dir\tAdds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" The `dirs' builtin displays the directory stack." -msgstr "" - -#: builtins/pushd.def:730 -msgid "" -"Removes entries from the directory stack. With no arguments, removes\n" -" the top directory from the stack, and changes to the new top directory.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when removing\n" -" \tdirectories from the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRemoves the Nth entry counting from the left of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd +0'\n" -" \tremoves the first directory, `popd +1' the second.\n" -" \n" -" -N\tRemoves the Nth entry counting from the right of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd -0'\n" -" \tremoves the last directory, `popd -1' the next to last.\n" -" \n" -" The `dirs' builtin displays the directory stack." -msgstr "" - -#: builtins/read.def:248 -#, c-format -msgid "%s: invalid timeout specification" -msgstr "" - -#: builtins/read.def:574 -#, c-format -msgid "read error: %d: %s" -msgstr "" - -#: builtins/return.def:73 -msgid "can only `return' from a function or sourced script" -msgstr "" - -#: builtins/set.def:768 -msgid "cannot simultaneously unset a function and a variable" -msgstr "" - -#: builtins/set.def:805 -#, c-format -msgid "%s: cannot unset" -msgstr "" - -#: builtins/set.def:812 -#, c-format -msgid "%s: cannot unset: readonly %s" -msgstr "" - -#: builtins/set.def:823 -#, c-format -msgid "%s: not an array variable" -msgstr "" - -#: builtins/setattr.def:186 -#, c-format -msgid "%s: not a function" -msgstr "" - -#: builtins/shift.def:71 builtins/shift.def:77 -msgid "shift count" -msgstr "" - -#: builtins/shopt.def:254 -msgid "cannot set and unset shell options simultaneously" -msgstr "" - -#: builtins/shopt.def:319 -#, c-format -msgid "%s: invalid shell option name" -msgstr "" - -#: builtins/source.def:128 -msgid "filename argument required" -msgstr "" - -#: builtins/source.def:153 -#, c-format -msgid "%s: file not found" -msgstr "" - -#: builtins/suspend.def:101 -msgid "cannot suspend" -msgstr "" - -#: builtins/suspend.def:111 -msgid "cannot suspend a login shell" -msgstr "" - -#: builtins/type.def:234 -#, c-format -msgid "%s is aliased to `%s'\n" -msgstr "" - -#: builtins/type.def:255 -#, c-format -msgid "%s is a shell keyword\n" -msgstr "" - -#: builtins/type.def:274 -#, c-format -msgid "%s is a function\n" -msgstr "" - -#: builtins/type.def:296 -#, c-format -msgid "%s is a shell builtin\n" -msgstr "" - -#: builtins/type.def:317 builtins/type.def:391 -#, c-format -msgid "%s is %s\n" -msgstr "" - -#: builtins/type.def:337 -#, c-format -msgid "%s is hashed (%s)\n" -msgstr "" - -#: builtins/ulimit.def:372 -#, c-format -msgid "%s: invalid limit argument" -msgstr "" - -#: builtins/ulimit.def:398 -#, c-format -msgid "`%c': bad command" -msgstr "" - -#: builtins/ulimit.def:427 -#, c-format -msgid "%s: cannot get limit: %s" -msgstr "" - -#: builtins/ulimit.def:453 -msgid "limit" -msgstr "" - -#: builtins/ulimit.def:465 builtins/ulimit.def:765 -#, c-format -msgid "%s: cannot modify limit: %s" -msgstr "" - -#: builtins/umask.def:118 -msgid "octal number" -msgstr "" - -#: builtins/umask.def:231 -#, c-format -msgid "`%c': invalid symbolic mode operator" -msgstr "" - -#: builtins/umask.def:286 -#, c-format -msgid "`%c': invalid symbolic mode character" -msgstr "" - -#: error.c:89 error.c:320 error.c:322 error.c:324 -msgid " line " -msgstr "" - -#: error.c:164 -#, c-format -msgid "last command: %s\n" -msgstr "" - -#: error.c:172 -#, c-format -msgid "Aborting..." -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:181 -#, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "" - -#: execute_cmd.c:491 -#, c-format -msgid "cannot redirect standard input from /dev/null: %s" -msgstr "" - -#: execute_cmd.c:1112 -#, c-format -msgid "TIMEFORMAT: `%c': invalid format character" -msgstr "" - -#: execute_cmd.c:2011 -msgid "pipe error" -msgstr "" - -#: execute_cmd.c:4363 -#, c-format -msgid "%s: restricted: cannot specify `/' in command names" -msgstr "" - -#: execute_cmd.c:4454 -#, c-format -msgid "%s: command not found" -msgstr "" - -#: execute_cmd.c:4708 -#, c-format -msgid "%s: %s: bad interpreter" -msgstr "" - -#: execute_cmd.c:4857 -#, c-format -msgid "cannot duplicate fd %d to fd %d" -msgstr "" - -#: expr.c:241 -msgid "expression recursion level exceeded" -msgstr "" - -#: expr.c:265 -msgid "recursion stack underflow" -msgstr "" - -#: expr.c:379 -msgid "syntax error in expression" -msgstr "" - -#: expr.c:419 -msgid "attempted assignment to non-variable" -msgstr "" - -#: expr.c:440 expr.c:445 expr.c:756 -msgid "division by 0" -msgstr "" - -#: expr.c:471 -msgid "bug: bad expassign token" -msgstr "" - -#: expr.c:513 -msgid "`:' expected for conditional expression" -msgstr "" - -#: expr.c:781 -msgid "exponent less than 0" -msgstr "" - -#: expr.c:826 -msgid "identifier expected after pre-increment or pre-decrement" -msgstr "" - -#: expr.c:854 -msgid "missing `)'" -msgstr "" - -#: expr.c:897 expr.c:1175 -msgid "syntax error: operand expected" -msgstr "" - -#: expr.c:1177 -msgid "syntax error: invalid arithmetic operator" -msgstr "" - -#: expr.c:1201 -#, c-format -msgid "%s%s%s: %s (error token is \"%s\")" -msgstr "" - -#: expr.c:1259 -msgid "invalid arithmetic base" -msgstr "" - -#: expr.c:1279 -msgid "value too great for base" -msgstr "" - -#: expr.c:1328 -#, c-format -msgid "%s: expression error\n" -msgstr "" - -#: general.c:61 -msgid "getcwd: cannot access parent directories" -msgstr "" - -#: input.c:94 subst.c:4559 -#, c-format -msgid "cannot reset nodelay mode for fd %d" -msgstr "" - -#: input.c:258 -#, c-format -msgid "cannot allocate new file descriptor for bash input from fd %d" -msgstr "" - -#: input.c:266 -#, c-format -msgid "save_bash_input: buffer already exists for new fd %d" -msgstr "" - -#: jobs.c:466 -msgid "start_pipeline: pgrp pipe" -msgstr "" - -#: jobs.c:887 -#, c-format -msgid "forked pid %d appears in running job %d" -msgstr "" - -#: jobs.c:1005 -#, c-format -msgid "deleting stopped job %d with process group %ld" -msgstr "" - -#: jobs.c:1110 -#, c-format -msgid "add_process: process %5ld (%s) in the_pipeline" -msgstr "" - -#: jobs.c:1113 -#, c-format -msgid "add_process: pid %5ld (%s) marked as still alive" -msgstr "" - -#: jobs.c:1401 -#, c-format -msgid "describe_pid: %ld: no such pid" -msgstr "" - -#: jobs.c:1416 -#, c-format -msgid "Signal %d" -msgstr "" - -#: jobs.c:1430 jobs.c:1455 -msgid "Done" -msgstr "" - -#: jobs.c:1435 siglist.c:122 -msgid "Stopped" -msgstr "" - -#: jobs.c:1439 -#, c-format -msgid "Stopped(%s)" -msgstr "" - -#: jobs.c:1443 -msgid "Running" -msgstr "" - -#: jobs.c:1457 -#, c-format -msgid "Done(%d)" -msgstr "" - -#: jobs.c:1459 -#, c-format -msgid "Exit %d" -msgstr "" - -#: jobs.c:1462 -msgid "Unknown status" -msgstr "" - -#: jobs.c:1549 -#, c-format -msgid "(core dumped) " -msgstr "" - -#: jobs.c:1568 -#, c-format -msgid " (wd: %s)" -msgstr "" - -#: jobs.c:1771 -#, c-format -msgid "child setpgid (%ld to %ld)" -msgstr "" - -#: jobs.c:2099 nojobs.c:585 -#, c-format -msgid "wait: pid %ld is not a child of this shell" -msgstr "" - -#: jobs.c:2326 -#, c-format -msgid "wait_for: No record of process %ld" -msgstr "" - -#: jobs.c:2598 -#, c-format -msgid "wait_for_job: job %d is stopped" -msgstr "" - -#: jobs.c:2820 -#, c-format -msgid "%s: job has terminated" -msgstr "" - -#: jobs.c:2829 -#, c-format -msgid "%s: job %d already in background" -msgstr "" - -#: jobs.c:3492 -#, c-format -msgid "%s: line %d: " -msgstr "" - -#: jobs.c:3506 nojobs.c:814 -#, c-format -msgid " (core dumped)" -msgstr "" - -#: jobs.c:3518 jobs.c:3531 -#, c-format -msgid "(wd now: %s)\n" -msgstr "" - -#: jobs.c:3563 -msgid "initialize_job_control: getpgrp failed" -msgstr "" - -#: jobs.c:3623 -msgid "initialize_job_control: line discipline" -msgstr "" - -#: jobs.c:3633 -msgid "initialize_job_control: setpgid" -msgstr "" - -#: jobs.c:3661 -#, c-format -msgid "cannot set terminal process group (%d)" -msgstr "" - -#: jobs.c:3666 -msgid "no job control in this shell" -msgstr "" - -#: lib/malloc/malloc.c:296 -#, c-format -msgid "malloc: failed assertion: %s\n" -msgstr "" - -#: lib/malloc/malloc.c:312 -#, c-format -msgid "" -"\r\n" -"malloc: %s:%d: assertion botched\r\n" -msgstr "" - -#: lib/malloc/malloc.c:313 -msgid "unknown" -msgstr "" - -#: lib/malloc/malloc.c:797 -msgid "malloc: block on free list clobbered" -msgstr "" - -#: lib/malloc/malloc.c:874 -msgid "free: called with already freed block argument" -msgstr "" - -#: lib/malloc/malloc.c:877 -msgid "free: called with unallocated block argument" -msgstr "" - -#: lib/malloc/malloc.c:896 -msgid "free: underflow detected; mh_nbytes out of range" -msgstr "" - -#: lib/malloc/malloc.c:902 -msgid "free: start and end chunk sizes differ" -msgstr "" - -#: lib/malloc/malloc.c:1001 -msgid "realloc: called with unallocated block argument" -msgstr "" - -#: lib/malloc/malloc.c:1016 -msgid "realloc: underflow detected; mh_nbytes out of range" -msgstr "" - -#: lib/malloc/malloc.c:1022 -msgid "realloc: start and end chunk sizes differ" -msgstr "" - -#: lib/malloc/table.c:177 -#, c-format -msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" -msgstr "" - -#: lib/malloc/table.c:184 -#, c-format -msgid "register_alloc: %p already in table as allocated?\n" -msgstr "" - -#: lib/malloc/table.c:220 -#, c-format -msgid "register_free: %p already in table as free?\n" -msgstr "" - -#: lib/sh/fmtulong.c:101 -msgid "invalid base" -msgstr "" - -#: lib/sh/netopen.c:168 -#, c-format -msgid "%s: host unknown" -msgstr "" - -#: lib/sh/netopen.c:175 -#, c-format -msgid "%s: invalid service" -msgstr "" - -#: lib/sh/netopen.c:306 -#, c-format -msgid "%s: bad network path specification" -msgstr "" - -#: lib/sh/netopen.c:346 -msgid "network operations not supported" -msgstr "" - -#: mailcheck.c:433 -msgid "You have mail in $_" -msgstr "" - -#: mailcheck.c:458 -msgid "You have new mail in $_" -msgstr "" - -#: mailcheck.c:474 -#, c-format -msgid "The mail in %s has been read\n" -msgstr "" - -#: make_cmd.c:322 -msgid "syntax error: arithmetic expression required" -msgstr "" - -#: make_cmd.c:324 -msgid "syntax error: `;' unexpected" -msgstr "" - -#: make_cmd.c:325 -#, c-format -msgid "syntax error: `((%s))'" -msgstr "" - -#: make_cmd.c:567 -#, c-format -msgid "make_here_document: bad instruction type %d" -msgstr "" - -#: make_cmd.c:651 -#, c-format -msgid "here-document at line %d delimited by end-of-file (wanted `%s')" -msgstr "" - -#: make_cmd.c:746 -#, c-format -msgid "make_redirection: redirection instruction `%d' out of range" -msgstr "" - -#: parse.y:2986 parse.y:3218 -#, c-format -msgid "unexpected EOF while looking for matching `%c'" -msgstr "" - -#: parse.y:3722 -msgid "unexpected EOF while looking for `]]'" -msgstr "" - -#: parse.y:3727 -#, c-format -msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "" - -#: parse.y:3731 -msgid "syntax error in conditional expression" -msgstr "" - -#: parse.y:3809 -#, c-format -msgid "unexpected token `%s', expected `)'" -msgstr "" - -#: parse.y:3813 -msgid "expected `)'" -msgstr "" - -#: parse.y:3841 -#, c-format -msgid "unexpected argument `%s' to conditional unary operator" -msgstr "" - -#: parse.y:3845 -msgid "unexpected argument to conditional unary operator" -msgstr "" - -#: parse.y:3885 -#, c-format -msgid "unexpected token `%s', conditional binary operator expected" -msgstr "" - -#: parse.y:3889 -msgid "conditional binary operator expected" -msgstr "" - -#: parse.y:3906 -#, c-format -msgid "unexpected argument `%s' to conditional binary operator" -msgstr "" - -#: parse.y:3910 -msgid "unexpected argument to conditional binary operator" -msgstr "" - -#: parse.y:3921 -#, c-format -msgid "unexpected token `%c' in conditional command" -msgstr "" - -#: parse.y:3924 -#, c-format -msgid "unexpected token `%s' in conditional command" -msgstr "" - -#: parse.y:3928 -#, c-format -msgid "unexpected token %d in conditional command" -msgstr "" - -#: parse.y:5195 -#, c-format -msgid "syntax error near unexpected token `%s'" -msgstr "" - -#: parse.y:5213 -#, c-format -msgid "syntax error near `%s'" -msgstr "" - -#: parse.y:5223 -msgid "syntax error: unexpected end of file" -msgstr "" - -#: parse.y:5223 -msgid "syntax error" -msgstr "" - -#: parse.y:5285 -#, c-format -msgid "Use \"%s\" to leave the shell.\n" -msgstr "" - -#: parse.y:5447 -msgid "unexpected EOF while looking for matching `)'" -msgstr "" - -#: pcomplete.c:1018 -#, c-format -msgid "completion: function `%s' not found" -msgstr "" - -#: pcomplib.c:179 -#, c-format -msgid "progcomp_insert: %s: NULL COMPSPEC" -msgstr "" - -#: print_cmd.c:285 -#, c-format -msgid "print_command: bad connector `%d'" -msgstr "" - -#: print_cmd.c:1348 -#, c-format -msgid "cprintf: `%c': invalid format character" -msgstr "" - -#: redir.c:105 -msgid "file descriptor out of range" -msgstr "" - -#: redir.c:148 -#, c-format -msgid "%s: ambiguous redirect" -msgstr "" - -#: redir.c:152 -#, c-format -msgid "%s: cannot overwrite existing file" -msgstr "" - -#: redir.c:157 -#, c-format -msgid "%s: restricted: cannot redirect output" -msgstr "" - -#: redir.c:162 -#, c-format -msgid "cannot create temp file for here-document: %s" -msgstr "" - -#: redir.c:517 -msgid "/dev/(tcp|udp)/host/port not supported without networking" -msgstr "" - -#: redir.c:1023 -msgid "redirection error: cannot duplicate fd" -msgstr "" - -#: shell.c:328 -msgid "could not find /tmp, please create!" -msgstr "" - -#: shell.c:332 -msgid "/tmp must be a valid directory name" -msgstr "" - -#: shell.c:876 -#, c-format -msgid "%c%c: invalid option" -msgstr "" - -#: shell.c:1638 -msgid "I have no name!" -msgstr "" - -#: shell.c:1778 -#, c-format -msgid "GNU bash, version %s-(%s)\n" -msgstr "" - -#: shell.c:1779 -#, c-format -msgid "" -"Usage:\t%s [GNU long option] [option] ...\n" -"\t%s [GNU long option] [option] script-file ...\n" -msgstr "" - -#: shell.c:1781 -msgid "GNU long options:\n" -msgstr "" - -#: shell.c:1785 -msgid "Shell options:\n" -msgstr "" - -#: shell.c:1786 -msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -msgstr "" - -#: shell.c:1801 -#, c-format -msgid "\t-%s or -o option\n" -msgstr "" - -#: shell.c:1807 -#, c-format -msgid "Type `%s -c \"help set\"' for more information about shell options.\n" -msgstr "" - -#: shell.c:1808 -#, c-format -msgid "Type `%s -c help' for more information about shell builtin commands.\n" -msgstr "" - -#: shell.c:1809 -#, c-format -msgid "Use the `bashbug' command to report bugs.\n" -msgstr "" - -#: sig.c:583 -#, c-format -msgid "sigprocmask: %d: invalid operation" -msgstr "" - -#: siglist.c:47 -msgid "Bogus signal" -msgstr "" - -#: siglist.c:50 -msgid "Hangup" -msgstr "" - -#: siglist.c:54 -msgid "Interrupt" -msgstr "" - -#: siglist.c:58 -msgid "Quit" -msgstr "" - -#: siglist.c:62 -msgid "Illegal instruction" -msgstr "" - -#: siglist.c:66 -msgid "BPT trace/trap" -msgstr "" - -#: siglist.c:74 -msgid "ABORT instruction" -msgstr "" - -#: siglist.c:78 -msgid "EMT instruction" -msgstr "" - -#: siglist.c:82 -msgid "Floating point exception" -msgstr "" - -#: siglist.c:86 -msgid "Killed" -msgstr "" - -#: siglist.c:90 -msgid "Bus error" -msgstr "" - -#: siglist.c:94 -msgid "Segmentation fault" -msgstr "" - -#: siglist.c:98 -msgid "Bad system call" -msgstr "" - -#: siglist.c:102 -msgid "Broken pipe" -msgstr "" - -#: siglist.c:106 -msgid "Alarm clock" -msgstr "" - -#: siglist.c:110 -msgid "Terminated" -msgstr "" - -#: siglist.c:114 -msgid "Urgent IO condition" -msgstr "" - -#: siglist.c:118 -msgid "Stopped (signal)" -msgstr "" - -#: siglist.c:126 -msgid "Continue" -msgstr "" - -#: siglist.c:134 -msgid "Child death or stop" -msgstr "" - -#: siglist.c:138 -msgid "Stopped (tty input)" -msgstr "" - -#: siglist.c:142 -msgid "Stopped (tty output)" -msgstr "" - -#: siglist.c:146 -msgid "I/O ready" -msgstr "" - -#: siglist.c:150 -msgid "CPU limit" -msgstr "" - -#: siglist.c:154 -msgid "File limit" -msgstr "" - -#: siglist.c:158 -msgid "Alarm (virtual)" -msgstr "" - -#: siglist.c:162 -msgid "Alarm (profile)" -msgstr "" - -#: siglist.c:166 -msgid "Window changed" -msgstr "" - -#: siglist.c:170 -msgid "Record lock" -msgstr "" - -#: siglist.c:174 -msgid "User signal 1" -msgstr "" - -#: siglist.c:178 -msgid "User signal 2" -msgstr "" - -#: siglist.c:182 -msgid "HFT input data pending" -msgstr "" - -#: siglist.c:186 -msgid "power failure imminent" -msgstr "" - -#: siglist.c:190 -msgid "system crash imminent" -msgstr "" - -#: siglist.c:194 -msgid "migrate process to another CPU" -msgstr "" - -#: siglist.c:198 -msgid "programming error" -msgstr "" - -#: siglist.c:202 -msgid "HFT monitor mode granted" -msgstr "" - -#: siglist.c:206 -msgid "HFT monitor mode retracted" -msgstr "" - -#: siglist.c:210 -msgid "HFT sound sequence has completed" -msgstr "" - -#: siglist.c:214 -msgid "Information request" -msgstr "" - -#: siglist.c:222 -msgid "Unknown Signal #" -msgstr "" - -#: siglist.c:224 -#, c-format -msgid "Unknown Signal #%d" -msgstr "" - -#: subst.c:1181 subst.c:1302 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "" - -#: subst.c:2458 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "" - -#: subst.c:4456 subst.c:4472 -msgid "cannot make pipe for process substitution" -msgstr "" - -#: subst.c:4504 -msgid "cannot make child for process substitution" -msgstr "" - -#: subst.c:4549 -#, c-format -msgid "cannot open named pipe %s for reading" -msgstr "" - -#: subst.c:4551 -#, c-format -msgid "cannot open named pipe %s for writing" -msgstr "" - -#: subst.c:4569 -#, c-format -msgid "cannot duplicate named pipe %s as fd %d" -msgstr "" - -#: subst.c:4765 -msgid "cannot make pipe for command substitution" -msgstr "" - -#: subst.c:4799 -msgid "cannot make child for command substitution" -msgstr "" - -#: subst.c:4816 -msgid "command_substitute: cannot duplicate pipe as fd 1" -msgstr "" - -#: subst.c:5318 -#, c-format -msgid "%s: parameter null or not set" -msgstr "" - -#: subst.c:5608 -#, c-format -msgid "%s: substring expression < 0" -msgstr "" - -#: subst.c:6660 -#, c-format -msgid "%s: bad substitution" -msgstr "" - -#: subst.c:6740 -#, c-format -msgid "$%s: cannot assign in this way" -msgstr "" - -#: subst.c:7499 -#, c-format -msgid "bad substitution: no closing \"`\" in %s" -msgstr "" - -#: subst.c:8375 -#, c-format -msgid "no match: %s" -msgstr "" - -#: test.c:145 -msgid "argument expected" -msgstr "" - -#: test.c:154 -#, c-format -msgid "%s: integer expression expected" -msgstr "" - -#: test.c:262 -msgid "`)' expected" -msgstr "" - -#: test.c:264 -#, c-format -msgid "`)' expected, found %s" -msgstr "" - -#: test.c:279 test.c:688 test.c:691 -#, c-format -msgid "%s: unary operator expected" -msgstr "" - -#: test.c:444 test.c:731 -#, c-format -msgid "%s: binary operator expected" -msgstr "" - -#: test.c:806 -msgid "missing `]'" -msgstr "" - -#: trap.c:201 -msgid "invalid signal number" -msgstr "" - -#: trap.c:324 -#, c-format -msgid "run_pending_traps: bad value in trap_list[%d]: %p" -msgstr "" - -#: trap.c:328 -#, c-format -msgid "" -"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -msgstr "" - -#: trap.c:372 -#, c-format -msgid "trap_handler: bad signal %d" -msgstr "" - -#: variables.c:358 -#, c-format -msgid "error importing function definition for `%s'" -msgstr "" - -#: variables.c:736 -#, c-format -msgid "shell level (%d) too high, resetting to 1" -msgstr "" - -#: variables.c:1898 -msgid "make_local_variable: no function context at current scope" -msgstr "" - -#: variables.c:3127 -msgid "all_local_variables: no function context at current scope" -msgstr "" - -#: variables.c:3344 variables.c:3353 -#, c-format -msgid "invalid character %d in exportstr for %s" -msgstr "" - -#: variables.c:3359 -#, c-format -msgid "no `=' in exportstr for %s" -msgstr "" - -#: variables.c:3794 -msgid "pop_var_context: head of shell_variables not a function context" -msgstr "" - -#: variables.c:3807 -msgid "pop_var_context: no global_variables context" -msgstr "" - -#: variables.c:3881 -msgid "pop_scope: head of shell_variables not a temporary environment scope" -msgstr "" - -#: version.c:46 -msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "" - -#: version.c:47 -msgid "" -"License GPLv3+: GNU GPL version 3 or later \n" -msgstr "" - -#: version.c:86 -#, c-format -msgid "GNU bash, version %s (%s)\n" -msgstr "" - -#: version.c:91 -#, c-format -msgid "This is free software; you are free to change and redistribute it.\n" -msgstr "" - -#: version.c:92 -#, c-format -msgid "There is NO WARRANTY, to the extent permitted by law.\n" -msgstr "" - -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "" - -#: builtins.c:43 -msgid "alias [-p] [name[=value] ... ]" -msgstr "" - -#: builtins.c:47 -msgid "unalias [-a] name [name ...]" -msgstr "" - -#: builtins.c:51 -msgid "" -"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" -"x keyseq:shell-command] [keyseq:readline-function or readline-command]" -msgstr "" - -#: builtins.c:54 -msgid "break [n]" -msgstr "" - -#: builtins.c:56 -msgid "continue [n]" -msgstr "" - -#: builtins.c:58 -msgid "builtin [shell-builtin [arg ...]]" -msgstr "" - -#: builtins.c:61 -msgid "caller [expr]" -msgstr "" - -#: builtins.c:64 -msgid "cd [-L|-P] [dir]" -msgstr "" - -#: builtins.c:66 -msgid "pwd [-LP]" -msgstr "" - -#: builtins.c:68 -msgid ":" -msgstr "" - -#: builtins.c:70 -msgid "true" -msgstr "" - -#: builtins.c:72 -msgid "false" -msgstr "" - -#: builtins.c:74 -msgid "command [-pVv] command [arg ...]" -msgstr "" - -#: builtins.c:76 -msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" -msgstr "" - -#: builtins.c:78 -msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." -msgstr "" - -#: builtins.c:80 -msgid "local [option] name[=value] ..." -msgstr "" - -#: builtins.c:83 -msgid "echo [-neE] [arg ...]" -msgstr "" - -#: builtins.c:87 -msgid "echo [-n] [arg ...]" -msgstr "" - -#: builtins.c:90 -msgid "enable [-a] [-dnps] [-f filename] [name ...]" -msgstr "" - -#: builtins.c:92 -msgid "eval [arg ...]" -msgstr "" - -#: builtins.c:94 -msgid "getopts optstring name [arg]" -msgstr "" - -#: builtins.c:96 -msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" -msgstr "" - -#: builtins.c:98 -msgid "exit [n]" -msgstr "" - -#: builtins.c:100 -msgid "logout [n]" -msgstr "" - -#: builtins.c:103 -msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" -msgstr "" - -#: builtins.c:107 -msgid "fg [job_spec]" -msgstr "" - -#: builtins.c:111 -msgid "bg [job_spec ...]" -msgstr "" - -#: builtins.c:114 -msgid "hash [-lr] [-p pathname] [-dt] [name ...]" -msgstr "" - -#: builtins.c:117 -msgid "help [-ds] [pattern ...]" -msgstr "" - -#: builtins.c:121 -msgid "" -"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " -"[arg...]" -msgstr "" - -#: builtins.c:125 -msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" -msgstr "" - -#: builtins.c:129 -msgid "disown [-h] [-ar] [jobspec ...]" -msgstr "" - -#: builtins.c:132 -msgid "" -"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " -"[sigspec]" -msgstr "" - -#: builtins.c:134 -msgid "let arg [arg ...]" -msgstr "" - -#: builtins.c:136 -msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" -msgstr "" - -#: builtins.c:138 -msgid "return [n]" -msgstr "" - -#: builtins.c:140 -msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" -msgstr "" - -#: builtins.c:142 -msgid "unset [-f] [-v] [name ...]" -msgstr "" - -#: builtins.c:144 -msgid "export [-fn] [name[=value] ...] or export -p" -msgstr "" - -#: builtins.c:146 -msgid "readonly [-af] [name[=value] ...] or readonly -p" -msgstr "" - -#: builtins.c:148 -msgid "shift [n]" -msgstr "" - -#: builtins.c:150 -msgid "source filename [arguments]" -msgstr "" - -#: builtins.c:152 -msgid ". filename [arguments]" -msgstr "" - -#: builtins.c:155 -msgid "suspend [-f]" -msgstr "" - -#: builtins.c:158 -msgid "test [expr]" -msgstr "" - -#: builtins.c:160 -msgid "[ arg... ]" -msgstr "" - -#: builtins.c:162 -msgid "times" -msgstr "" - -#: builtins.c:164 -msgid "trap [-lp] [[arg] signal_spec ...]" -msgstr "" - -#: builtins.c:166 -msgid "type [-afptP] name [name ...]" -msgstr "" - -#: builtins.c:169 -msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" -msgstr "" - -#: builtins.c:172 -msgid "umask [-p] [-S] [mode]" -msgstr "" - -#: builtins.c:175 -msgid "wait [id]" -msgstr "" - -#: builtins.c:179 -msgid "wait [pid]" -msgstr "" - -#: builtins.c:182 -msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" -msgstr "" - -#: builtins.c:184 -msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" -msgstr "" - -#: builtins.c:186 -msgid "select NAME [in WORDS ... ;] do COMMANDS; done" -msgstr "" - -#: builtins.c:188 -msgid "time [-p] pipeline" -msgstr "" - -#: builtins.c:190 -msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" -msgstr "" - -#: builtins.c:192 -msgid "" -"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " -"COMMANDS; ] fi" -msgstr "" - -#: builtins.c:194 -msgid "while COMMANDS; do COMMANDS; done" -msgstr "" - -#: builtins.c:196 -msgid "until COMMANDS; do COMMANDS; done" -msgstr "" - -#: builtins.c:198 -msgid "coproc [NAME] command [redirections]" -msgstr "" - -#: builtins.c:200 -msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" -msgstr "" - -#: builtins.c:202 -msgid "{ COMMANDS ; }" -msgstr "" - -#: builtins.c:204 -msgid "job_spec [&]" -msgstr "" - -#: builtins.c:206 -msgid "(( expression ))" -msgstr "" - -#: builtins.c:208 -msgid "[[ expression ]]" -msgstr "" - -#: builtins.c:210 -msgid "variables - Names and meanings of some shell variables" -msgstr "" - -#: builtins.c:213 -msgid "pushd [-n] [+N | -N | dir]" -msgstr "" - -#: builtins.c:217 -msgid "popd [-n] [+N | -N]" -msgstr "" - -#: builtins.c:221 -msgid "dirs [-clpv] [+N] [-N]" -msgstr "" - -#: builtins.c:224 -msgid "shopt [-pqsu] [-o] [optname ...]" -msgstr "" - -#: builtins.c:226 -msgid "printf [-v var] format [arguments]" -msgstr "" - -#: builtins.c:229 -msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" -msgstr "" - -#: builtins.c:233 -msgid "" -"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " -"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" -msgstr "" - -#: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" -msgstr "" - -#: builtins.c:240 -msgid "" -"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" -msgstr "" - -#: builtins.c:242 -msgid "" -"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" -msgstr "" - -#: builtins.c:254 -msgid "" -"Define or display aliases.\n" -" \n" -" Without arguments, `alias' prints the list of aliases in the reusable\n" -" form `alias NAME=VALUE' on standard output.\n" -" \n" -" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" -" A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded.\n" -" \n" -" Options:\n" -" -p\tPrint all defined aliases in a reusable format\n" -" \n" -" Exit Status:\n" -" alias returns true unless a NAME is supplied for which no alias has " -"been\n" -" defined." -msgstr "" - -#: builtins.c:276 -msgid "" -"Remove each NAME from the list of defined aliases.\n" -" \n" -" Options:\n" -" -a\tremove all alias definitions.\n" -" \n" -" Return success unless a NAME is not an existing alias." -msgstr "" - -#: builtins.c:289 -msgid "" -"Set Readline key bindings and variables.\n" -" \n" -" Bind a key sequence to a Readline function or a macro, or set a\n" -" Readline variable. The non-option argument syntax is equivalent to\n" -" that found in ~/.inputrc, but must be passed as a single argument:\n" -" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" \n" -" Options:\n" -" -m keymap Use KEYMAP as the keymap for the duration of this\n" -" command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" -"move,\n" -" vi-command, and vi-insert.\n" -" -l List names of functions.\n" -" -P List function names and bindings.\n" -" -p List functions and bindings in a form that can be\n" -" reused as input.\n" -" -S List key sequences that invoke macros and their " -"values\n" -" -s List key sequences that invoke macros and their " -"values\n" -" in a form that can be reused as input.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -f filename Read key bindings from FILENAME.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" \n" -" Exit Status:\n" -" bind returns 0 unless an unrecognized option is given or an error occurs." -msgstr "" - -#: builtins.c:326 -msgid "" -"Exit for, while, or until loops.\n" -" \n" -" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" -" loops.\n" -" \n" -" Exit Status:\n" -" The exit status is 0 unless N is not greater than or equal to 1." -msgstr "" - -#: builtins.c:338 -msgid "" -"Resume for, while, or until loops.\n" -" \n" -" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resumes the Nth enclosing loop.\n" -" \n" -" Exit Status:\n" -" The exit status is 0 unless N is not greater than or equal to 1." -msgstr "" - -#: builtins.c:350 -msgid "" -"Execute shell builtins.\n" -" \n" -" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" -" lookup. This is useful when you wish to reimplement a shell builtin\n" -" as a shell function, but need to execute the builtin within the " -"function.\n" -" \n" -" Exit Status:\n" -" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" -" not a shell builtin.." -msgstr "" - -#: builtins.c:365 -msgid "" -"Return the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" -" \"$line $subroutine $filename\"; this extra information can be used to\n" -" provide a stack trace.\n" -" \n" -" The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0.\n" -" \n" -" Exit Status:\n" -" Returns 0 unless the shell is not executing a shell function or EXPR\n" -" is invalid." -msgstr "" - -#: builtins.c:383 -msgid "" -"Change the shell working directory.\n" -" \n" -" Change the current directory to DIR. The default DIR is the value of " -"the\n" -" HOME shell variable.\n" -" \n" -" The variable CDPATH defines the search path for the directory " -"containing\n" -" DIR. Alternative directory names in CDPATH are separated by a colon " -"(:).\n" -" A null directory name is the same as the current directory. If DIR " -"begins\n" -" with a slash (/), then CDPATH is not used.\n" -" \n" -" If the directory is not found, and the shell option `cdable_vars' is " -"set,\n" -" the word is assumed to be a variable name. If that variable has a " -"value,\n" -" its value is used for DIR.\n" -" \n" -" Options:\n" -" -L\tforce symbolic links to be followed\n" -" -P\tuse the physical directory structure without following symbolic\n" -" \tlinks\n" -" \n" -" The default is to follow symbolic links, as if `-L' were specified.\n" -" \n" -" Exit Status:\n" -" Returns 0 if the directory is changed; non-zero otherwise." -msgstr "" - -#: builtins.c:411 -msgid "" -"Print the name of the current working directory.\n" -" \n" -" Options:\n" -" -L\tprint the value of $PWD if it names the current working\n" -" \tdirectory\n" -" -P\tprint the physical directory, without any symbolic links\n" -" \n" -" By default, `pwd' behaves as if `-L' were specified.\n" -" \n" -" Exit Status:\n" -" Returns 0 unless an invalid option is given or the current directory\n" -" cannot be read." -msgstr "" - -#: builtins.c:428 -msgid "" -"Null command.\n" -" \n" -" No effect; the command does nothing.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" - -#: builtins.c:439 -msgid "" -"Return a successful result.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" - -#: builtins.c:448 -msgid "" -"Return an unsuccessful result.\n" -" \n" -" Exit Status:\n" -" Always fails." -msgstr "" - -#: builtins.c:457 -msgid "" -"Execute a simple command or display information about commands.\n" -" \n" -" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" -" information about the specified COMMANDs. Can be used to invoke " -"commands\n" -" on disk when a function with the same name exists.\n" -" \n" -" Options:\n" -" -p\tuse a default value for PATH that is guaranteed to find all of\n" -" \tthe standard utilities\n" -" -v\tprint a description of COMMAND similar to the `type' builtin\n" -" -V\tprint a more verbose description of each COMMAND\n" -" \n" -" Exit Status:\n" -" Returns exit status of COMMAND, or failure if COMMAND is not found." -msgstr "" - -#: builtins.c:476 -msgid "" -"Set variable values and attributes.\n" -" \n" -" Declare variables and give them attributes. If no NAMEs are given,\n" -" display the attributes and values of all variables.\n" -" \n" -" Options:\n" -" -f\trestrict action or display to function names and definitions\n" -" -F\trestrict display to function names only (plus line number and\n" -" \tsource file when debugging)\n" -" -p\tdisplay the attributes and value of each NAME\n" -" \n" -" Options which set attributes:\n" -" -a\tto make NAMEs indexed arrays (if supported)\n" -" -A\tto make NAMEs associative arrays (if supported)\n" -" -i\tto make NAMEs have the `integer' attribute\n" -" -l\tto convert NAMEs to lower case on assignment\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the `trace' attribute\n" -" -u\tto convert NAMEs to upper case on assignment\n" -" -x\tto make NAMEs export\n" -" \n" -" Using `+' instead of `-' turns off the given attribute.\n" -" \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" the `let' command) performed when the variable is assigned a value.\n" -" \n" -" When used in a function, `declare' makes NAMEs local, as with the " -"`local'\n" -" command.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:512 -msgid "" -"Set variable values and attributes.\n" -" \n" -" Obsolete. See `help declare'." -msgstr "" - -#: builtins.c:520 -msgid "" -"Define local variables.\n" -" \n" -" Create a local variable called NAME, and give it VALUE. OPTION can\n" -" be any option accepted by `declare'.\n" -" \n" -" Local variables can only be used within a function; they are visible\n" -" only to the function where they are defined and its children.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied, an error occurs,\n" -" or the shell is not executing a function." -msgstr "" - -#: builtins.c:537 -msgid "" -"Write arguments to the standard output.\n" -" \n" -" Display the ARGs on the standard output followed by a newline.\n" -" \n" -" Options:\n" -" -n\tdo not append a newline\n" -" -e\tenable interpretation of the following backslash escapes\n" -" -E\texplicitly suppress interpretation of backslash escapes\n" -" \n" -" `echo' interprets the following backslash-escaped characters:\n" -" \\a\talert (bell)\n" -" \\b\tbackspace\n" -" \\c\tsuppress further output\n" -" \\e\tescape character\n" -" \\f\tform feed\n" -" \\n\tnew line\n" -" \\r\tcarriage return\n" -" \\t\thorizontal tab\n" -" \\v\tvertical tab\n" -" \\\\\tbackslash\n" -" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" -" \t0 to 3 octal digits\n" -" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" -" \tcan be one or two hex digits\n" -" \n" -" Exit Status:\n" -" Returns success unless a write error occurs." -msgstr "" - -#: builtins.c:571 -msgid "" -"Write arguments to the standard output.\n" -" \n" -" Display the ARGs on the standard output followed by a newline.\n" -" \n" -" Options:\n" -" -n\tdo not append a newline\n" -" \n" -" Exit Status:\n" -" Returns success unless a write error occurs." -msgstr "" - -#: builtins.c:586 -msgid "" -"Enable and disable shell builtins.\n" -" \n" -" Enables and disables builtin shell commands. Disabling allows you to\n" -" execute a disk command which has the same name as a shell builtin\n" -" without using a full pathname.\n" -" \n" -" Options:\n" -" -a\tprint a list of builtins showing whether or not each is enabled\n" -" -n\tdisable each NAME or display a list of disabled builtins\n" -" -p\tprint the list of builtins in a reusable format\n" -" -s\tprint only the names of Posix `special' builtins\n" -" \n" -" Options controlling dynamic loading:\n" -" -f\tLoad builtin NAME from shared object FILENAME\n" -" -d\tRemove a builtin loaded with -f\n" -" \n" -" Without options, each NAME is enabled.\n" -" \n" -" To use the `test' found in $PATH instead of the shell builtin\n" -" version, type `enable -n test'.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is not a shell builtin or an error occurs." -msgstr "" - -#: builtins.c:614 -msgid "" -"Execute arguments as a shell command.\n" -" \n" -" Combine ARGs into a single string, use the result as input to the " -"shell,\n" -" and execute the resulting commands.\n" -" \n" -" Exit Status:\n" -" Returns exit status of command or success if command is null." -msgstr "" - -#: builtins.c:626 -msgid "" -"Parse option arguments.\n" -" \n" -" Getopts is used by shell procedures to parse positional parameters\n" -" as options.\n" -" \n" -" OPTSTRING contains the option letters to be recognized; if a letter\n" -" is followed by a colon, the option is expected to have an argument,\n" -" which should be separated from it by white space.\n" -" \n" -" Each time it is invoked, getopts will place the next option in the\n" -" shell variable $name, initializing name if it does not exist, and\n" -" the index of the next argument to be processed into the shell\n" -" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" -" a shell script is invoked. When an option requires an argument,\n" -" getopts places that argument into the shell variable OPTARG.\n" -" \n" -" getopts reports errors in one of two ways. If the first character\n" -" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" -" this mode, no error messages are printed. If an invalid option is\n" -" seen, getopts places the option character found into OPTARG. If a\n" -" required argument is not found, getopts places a ':' into NAME and\n" -" sets OPTARG to the option character found. If getopts is not in\n" -" silent mode, and an invalid option is seen, getopts places '?' into\n" -" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" -" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" -" printed.\n" -" \n" -" If the shell variable OPTERR has the value 0, getopts disables the\n" -" printing of error messages, even if the first character of\n" -" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" -" \n" -" Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead.\n" -" \n" -" Exit Status:\n" -" Returns success if an option is found; fails if the end of options is\n" -" encountered or an error occurs." -msgstr "" - -#: builtins.c:668 -msgid "" -"Replace the shell with the given command.\n" -" \n" -" Execute COMMAND, replacing this shell with the specified program.\n" -" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " -"specified,\n" -" any redirections take effect in the current shell.\n" -" \n" -" Options:\n" -" -a name\tpass NAME as the zeroth argument to COMMAND\n" -" -c\t\texecute COMMAND with an empty environment\n" -" -l\t\tplace a dash in the zeroth argument to COMMAND\n" -" \n" -" If the command cannot be executed, a non-interactive shell exits, " -"unless\n" -" the shell option `execfail' is set.\n" -" \n" -" Exit Status:\n" -" Returns success unless COMMAND is not found or a redirection error " -"occurs." -msgstr "" - -#: builtins.c:689 -msgid "" -"Exit the shell.\n" -" \n" -" Exits the shell with a status of N. If N is omitted, the exit status\n" -" is that of the last command executed." -msgstr "" - -#: builtins.c:698 -msgid "" -"Exit a login shell.\n" -" \n" -" Exits a login shell with exit status N. Returns an error if not " -"executed\n" -" in a login shell." -msgstr "" - -#: builtins.c:708 -msgid "" -"Display or execute commands from the history list.\n" -" \n" -" fc is used to list or edit and re-execute commands from the history " -"list.\n" -" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" -" string, which means the most recent command beginning with that\n" -" string.\n" -" \n" -" Options:\n" -" -e ENAME\tselect which editor to use. Default is FCEDIT, then " -"EDITOR,\n" -" \t\tthen vi\n" -" -l \tlist lines instead of editing\n" -" -n\tomit line numbers when listing\n" -" -r\treverse the order of the lines (newest listed first)\n" -" \n" -" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" -" re-executed after the substitution OLD=NEW is performed.\n" -" \n" -" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" -" runs the last command beginning with `cc' and typing `r' re-executes\n" -" the last command.\n" -" \n" -" Exit Status:\n" -" Returns success or status of executed command; non-zero if an error " -"occurs." -msgstr "" - -#: builtins.c:738 -msgid "" -"Move job to the foreground.\n" -" \n" -" Place the job identified by JOB_SPEC in the foreground, making it the\n" -" current job. If JOB_SPEC is not present, the shell's notion of the\n" -" current job is used.\n" -" \n" -" Exit Status:\n" -" Status of command placed in foreground, or failure if an error occurs." -msgstr "" - -#: builtins.c:753 -msgid "" -"Move jobs to the background.\n" -" \n" -" Place the jobs identified by each JOB_SPEC in the background, as if " -"they\n" -" had been started with `&'. If JOB_SPEC is not present, the shell's " -"notion\n" -" of the current job is used.\n" -" \n" -" Exit Status:\n" -" Returns success unless job control is not enabled or an error occurs." -msgstr "" - -#: builtins.c:767 -msgid "" -"Remember or display program locations.\n" -" \n" -" Determine and remember the full pathname of each command NAME. If\n" -" no arguments are given, information about remembered commands is " -"displayed.\n" -" \n" -" Options:\n" -" -d\t\tforget the remembered location of each NAME\n" -" -l\t\tdisplay in a format that may be reused as input\n" -" -p pathname\tuse PATHNAME is the full pathname of NAME\n" -" -r\t\tforget all remembered locations\n" -" -t\t\tprint the remembered location of each NAME, preceding\n" -" \t\teach location with the corresponding NAME if multiple\n" -" \t\tNAMEs are given\n" -" Arguments:\n" -" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" -" \t\tof remembered commands.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is not found or an invalid option is given." -msgstr "" - -#: builtins.c:792 -msgid "" -"Display information about builtin commands.\n" -" \n" -" Displays brief summaries of builtin commands. If PATTERN is\n" -" specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise the list of help topics is printed.\n" -" \n" -" Options:\n" -" -d\toutput short description for each topic\n" -" -m\tdisplay usage in pseudo-manpage format\n" -" -s\toutput only a short usage synopsis for each topic matching\n" -" \tPATTERN\n" -" \n" -" Arguments:\n" -" PATTERN\tPattern specifiying a help topic\n" -" \n" -" Exit Status:\n" -" Returns success unless PATTERN is not found or an invalid option is " -"given." -msgstr "" - -#: builtins.c:816 -msgid "" -"Display or manipulate the history list.\n" -" \n" -" Display the history list with line numbers, prefixing each modified\n" -" entry with a `*'. An argument of N lists only the last N entries.\n" -" \n" -" Options:\n" -" -c\tclear the history list by deleting all of the entries\n" -" -d offset\tdelete the history entry at offset OFFSET.\n" -" \n" -" -a\tappend history lines from this session to the history file\n" -" -n\tread all history lines not already read from the history file\n" -" -r\tread the history file and append the contents to the history\n" -" \tlist\n" -" -w\twrite the current history to the history file\n" -" \tand append them to the history list\n" -" \n" -" -p\tperform history expansion on each ARG and display the result\n" -" \twithout storing it in the history list\n" -" -s\tappend the ARGs to the history list as a single entry\n" -" \n" -" If FILENAME is given, it is used as the history file. Otherwise,\n" -" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" \n" -" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" -" as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed " -"otherwise.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs." -msgstr "" - -#: builtins.c:852 -msgid "" -"Display status of jobs.\n" -" \n" -" Lists the active jobs. JOBSPEC restricts output to that job.\n" -" Without options, the status of all active jobs is displayed.\n" -" \n" -" Options:\n" -" -l\tlists process IDs in addition to the normal information\n" -" -n\tlist only processes that have changed status since the last\n" -" \tnotification\n" -" -p\tlists process IDs only\n" -" -r\trestrict output to running jobs\n" -" -s\trestrict output to stopped jobs\n" -" \n" -" If -x is supplied, COMMAND is run after all job specifications that\n" -" appear in ARGS have been replaced with the process ID of that job's\n" -" process group leader.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs.\n" -" If -x is used, returns the exit status of COMMAND." -msgstr "" - -#: builtins.c:879 -msgid "" -"Remove jobs from current shell.\n" -" \n" -" Removes each JOBSPEC argument from the table of active jobs. Without\n" -" any JOBSPECs, the shell uses its notion of the current job.\n" -" \n" -" Options:\n" -" -a\tremove all jobs if JOBSPEC is not supplied\n" -" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" -" \tshell receives a SIGHUP\n" -" -r\tremove only running jobs\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option or JOBSPEC is given." -msgstr "" - -#: builtins.c:898 -msgid "" -"Send a signal to a job.\n" -" \n" -" Send the processes identified by PID or JOBSPEC the signal named by\n" -" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" -" SIGTERM is assumed.\n" -" \n" -" Options:\n" -" -s sig\tSIG is a signal name\n" -" -n sig\tSIG is a signal number\n" -" -l\tlist the signal names; if arguments follow `-l' they are\n" -" \tassumed to be signal numbers for which names should be listed\n" -" \n" -" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" -" instead of process IDs, and allows processes to be killed if the limit\n" -" on processes that you can create is reached.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs." -msgstr "" - -#: builtins.c:921 -msgid "" -"Evaluate arithmetic expressions.\n" -" \n" -" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" -" fixed-width integers with no check for overflow, though division by 0\n" -" is trapped and flagged as an error. The following list of operators is\n" -" grouped into levels of equal-precedence operators. The levels are " -"listed\n" -" in order of decreasing precedence.\n" -" \n" -" \tid++, id--\tvariable post-increment, post-decrement\n" -" \t++id, --id\tvariable pre-increment, pre-decrement\n" -" \t-, +\t\tunary minus, plus\n" -" \t!, ~\t\tlogical and bitwise negation\n" -" \t**\t\texponentiation\n" -" \t*, /, %\t\tmultiplication, division, remainder\n" -" \t+, -\t\taddition, subtraction\n" -" \t<<, >>\t\tleft and right bitwise shifts\n" -" \t<=, >=, <, >\tcomparison\n" -" \t==, !=\t\tequality, inequality\n" -" \t&\t\tbitwise AND\n" -" \t^\t\tbitwise XOR\n" -" \t|\t\tbitwise OR\n" -" \t&&\t\tlogical AND\n" -" \t||\t\tlogical OR\n" -" \texpr ? expr : expr\n" -" \t\t\tconditional operator\n" -" \t=, *=, /=, %=,\n" -" \t+=, -=, <<=, >>=,\n" -" \t&=, ^=, |=\tassignment\n" -" \n" -" Shell variables are allowed as operands. The name of the variable\n" -" is replaced by its value (coerced to a fixed-width integer) within\n" -" an expression. The variable need not have its integer attribute\n" -" turned on to be used in an expression.\n" -" \n" -" Operators are evaluated in order of precedence. Sub-expressions in\n" -" parentheses are evaluated first and may override the precedence\n" -" rules above.\n" -" \n" -" Exit Status:\n" -" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." -msgstr "" - -#: builtins.c:966 -msgid "" -"Read a line from the standard input and split it into fields.\n" -" \n" -" Reads a single line from the standard input, or from file descriptor FD\n" -" if the -u option is supplied. The line is split into fields as with " -"word\n" -" splitting, and the first word is assigned to the first NAME, the second\n" -" word to the second NAME, and so on, with any leftover words assigned to\n" -" the last NAME. Only the characters found in $IFS are recognized as " -"word\n" -" delimiters.\n" -" \n" -" If no NAMEs are supplied, the line read is stored in the REPLY " -"variable.\n" -" \n" -" Options:\n" -" -a array\tassign the words read to sequential indices of the array\n" -" \t\tvariable ARRAY, starting at zero\n" -" -d delim\tcontinue until the first character of DELIM is read, rather\n" -" \t\tthan newline\n" -" -e\t\tuse Readline to obtain the line in an interactive shell\n" -" -i text\tUse TEXT as the initial text for Readline\n" -" -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" -" -p prompt\toutput the string PROMPT without a trailing newline before\n" -" \t\tattempting to read\n" -" -r\t\tdo not allow backslashes to escape any characters\n" -" -s\t\tdo not echo input coming from a terminal\n" -" -t timeout\ttime out and return failure if a complete line of input " -"is\n" -" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" -" \t\tvariable is the default timeout. TIMEOUT may be a\n" -" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" -" \t\tif input is available on the specified file descriptor. The\n" -" \t\texit status is greater than 128 if the timeout is exceeded\n" -" -u fd\t\tread from file descriptor FD instead of the standard input\n" -" \n" -" Exit Status:\n" -" The return code is zero, unless end-of-file is encountered, read times " -"out,\n" -" or an invalid file descriptor is supplied as the argument to -u." -msgstr "" - -#: builtins.c:1006 -msgid "" -"Return from a shell function.\n" -" \n" -" Causes a function or sourced script to exit with the return value\n" -" specified by N. If N is omitted, the return status is that of the\n" -" last command executed within the function or script.\n" -" \n" -" Exit Status:\n" -" Returns N, or failure if the shell is not executing a function or script." -msgstr "" - -#: builtins.c:1019 -msgid "" -"Set or unset values of shell options and positional parameters.\n" -" \n" -" Change the value of shell attributes and positional parameters, or\n" -" display the names and values of shell variables.\n" -" \n" -" Options:\n" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status of\n" -" the last command to exit with a non-zero status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the Posix standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" -" \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given." -msgstr "" - -#: builtins.c:1101 -msgid "" -"Unset values and attributes of shell variables and functions.\n" -" \n" -" For each NAME, remove the corresponding variable or function.\n" -" \n" -" Options:\n" -" -f\ttreat each NAME as a shell function\n" -" -v\ttreat each NAME as a shell variable\n" -" \n" -" Without options, unset first tries to unset a variable, and if that " -"fails,\n" -" tries to unset a function.\n" -" \n" -" Some variables cannot be unset; also see `readonly'.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or a NAME is read-only." -msgstr "" - -#: builtins.c:1121 -msgid "" -"Set export attribute for shell variables.\n" -" \n" -" Marks each NAME for automatic export to the environment of subsequently\n" -" executed commands. If VALUE is supplied, assign VALUE before " -"exporting.\n" -" \n" -" Options:\n" -" -f\trefer to shell functions\n" -" -n\tremove the export property from each NAME\n" -" -p\tdisplay a list of all exported variables and functions\n" -" \n" -" An argument of `--' disables further option processing.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or NAME is invalid." -msgstr "" - -#: builtins.c:1140 -msgid "" -"Mark shell variables as unchangeable.\n" -" \n" -" Mark each NAME as read-only; the values of these NAMEs may not be\n" -" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" -" before marking as read-only.\n" -" \n" -" Options:\n" -" -a\trefer to indexed array variables\n" -" -A\trefer to associative array variables\n" -" -f\trefer to shell functions\n" -" -p\tdisplay a list of all readonly variables and functions\n" -" \n" -" An argument of `--' disables further option processing.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or NAME is invalid." -msgstr "" - -#: builtins.c:1161 -msgid "" -"Shift positional parameters.\n" -" \n" -" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" -" not given, it is assumed to be 1.\n" -" \n" -" Exit Status:\n" -" Returns success unless N is negative or greater than $#." -msgstr "" - -#: builtins.c:1173 builtins.c:1188 -msgid "" -"Execute commands from a file in the current shell.\n" -" \n" -" Read and execute commands from FILENAME in the current shell. The\n" -" entries in $PATH are used to find the directory containing FILENAME.\n" -" If any ARGUMENTS are supplied, they become the positional parameters\n" -" when FILENAME is executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed in FILENAME; fails if\n" -" FILENAME cannot be read." -msgstr "" - -#: builtins.c:1204 -msgid "" -"Suspend shell execution.\n" -" \n" -" Suspend the execution of this shell until it receives a SIGCONT signal.\n" -" Unless forced, login shells cannot be suspended.\n" -" \n" -" Options:\n" -" -f\tforce the suspend, even if the shell is a login shell\n" -" \n" -" Exit Status:\n" -" Returns success unless job control is not enabled or an error occurs." -msgstr "" - -#: builtins.c:1220 -msgid "" -"Evaluate conditional expression.\n" -" \n" -" Exits with a status of 0 (true) or 1 (false) depending on\n" -" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" -" expressions are often used to examine the status of a file. There\n" -" are string operators as well, and numeric comparison operators.\n" -" \n" -" File operators:\n" -" \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its `sticky' bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " -"read.\n" -" \n" -" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" -" modification date).\n" -" \n" -" FILE1 -ot FILE2 True if file1 is older than file2.\n" -" \n" -" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" -" \n" -" String operators:\n" -" \n" -" -z STRING True if string is empty.\n" -" \n" -" -n STRING\n" -" STRING True if string is not empty.\n" -" \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 lexicographically.\n" -" \n" -" Other operators:\n" -" \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" -" \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" -" \n" -" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" -" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2.\n" -" \n" -" Exit Status:\n" -" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" -" false or an invalid argument is given." -msgstr "" - -#: builtins.c:1296 -msgid "" -"Evaluate conditional expression.\n" -" \n" -" This is a synonym for the \"test\" builtin, but the last argument must\n" -" be a literal `]', to match the opening `['." -msgstr "" - -#: builtins.c:1305 -msgid "" -"Display process times.\n" -" \n" -" Prints the accumulated user and system times for the shell and all of " -"its\n" -" child processes.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" - -#: builtins.c:1317 -msgid "" -"Trap signals and other events.\n" -" \n" -" Defines and activates handlers to be run when the shell receives " -"signals\n" -" or other conditions.\n" -" \n" -" ARG is a command to be read and executed when the shell receives the\n" -" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" -" is supplied) or `-', each specified signal is reset to its original\n" -" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes.\n" -" \n" -" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " -"If\n" -" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" -" \n" -" If no arguments are supplied, trap prints the list of commands " -"associated\n" -" with each signal.\n" -" \n" -" Options:\n" -" -l\tprint a list of signal names and their corresponding numbers\n" -" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" -" \n" -" Each SIGNAL_SPEC is either a signal name in or a signal " -"number.\n" -" Signal names are case insensitive and the SIG prefix is optional. A\n" -" signal may be sent to the shell with \"kill -signal $$\".\n" -" \n" -" Exit Status:\n" -" Returns success unless a SIGSPEC is invalid or an invalid option is " -"given." -msgstr "" - -#: builtins.c:1349 -msgid "" -"Display information about command type.\n" -" \n" -" For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" -" \n" -" Options:\n" -" -a\tdisplay all locations containing an executable named NAME;\n" -" \tincludes aliases, builtins, and functions, if and only if\n" -" \tthe `-p' option is not also used\n" -" -f\tsuppress shell function lookup\n" -" -P\tforce a PATH search for each NAME, even if it is an alias,\n" -" \tbuiltin, or function, and returns the name of the disk file\n" -" \tthat would be executed\n" -" -p\treturns either the name of the disk file that would be executed,\n" -" \tor nothing if `type -t NAME' would not return `file'.\n" -" -t\toutput a single word which is one of `alias', `keyword',\n" -" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" -" \treserved word, shell function, shell builtin, disk file, or not\n" -" \tfound, respectively\n" -" \n" -" Arguments:\n" -" NAME\tCommand name to be interpreted.\n" -" \n" -" Exit Status:\n" -" Returns success if all of the NAMEs are found; fails if any are not " -"found." -msgstr "" - -#: builtins.c:1380 -msgid "" -"Modify shell resource limits.\n" -" \n" -" Provides control over the resources available to the shell and " -"processes\n" -" it creates, on systems that allow such control.\n" -" \n" -" Options:\n" -" -S\tuse the `soft' resource limit\n" -" -H\tuse the `hard' resource limit\n" -" -a\tall current limits are reported\n" -" -b\tthe socket buffer size\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -e\tthe maximum scheduling priority (`nice')\n" -" -f\tthe maximum size of files written by the shell and its children\n" -" -i\tthe maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q\tthe maximum number of bytes in POSIX message queues\n" -" -r\tthe maximum real-time scheduling priority\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x\tthe maximum number of file locks\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource; the\n" -" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" -" current soft limit, the current hard limit, and no limit, respectively.\n" -" Otherwise, the current value of the specified resource is printed. If\n" -" no option is given, then -f is assumed.\n" -" \n" -" Values are in 1024-byte increments, except for -t, which is in seconds,\n" -" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" -" number of processes.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1425 -msgid "" -"Display or set file mode mask.\n" -" \n" -" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" -" the current value of the mask.\n" -" \n" -" If MODE begins with a digit, it is interpreted as an octal number;\n" -" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" -" \n" -" Options:\n" -" -p\tif MODE is omitted, output in a form that may be reused as input\n" -" -S\tmakes the output symbolic; otherwise an octal number is output\n" -" \n" -" Exit Status:\n" -" Returns success unless MODE is invalid or an invalid option is given." -msgstr "" - -#: builtins.c:1445 -msgid "" -"Wait for job completion and return exit status.\n" -" \n" -" Waits for the process identified by ID, which may be a process ID or a\n" -" job specification, and reports its termination status. If ID is not\n" -" given, waits for all currently active child processes, and the return\n" -" status is zero. If ID is a a job specification, waits for all " -"processes\n" -" in the job's pipeline.\n" -" \n" -" Exit Status:\n" -" Returns the status of ID; fails if ID is invalid or an invalid option " -"is\n" -" given." -msgstr "" - -#: builtins.c:1463 -msgid "" -"Wait for process completion and return exit status.\n" -" \n" -" Waits for the specified process and reports its termination status. If\n" -" PID is not given, all currently active child processes are waited for,\n" -" and the return code is zero. PID must be a process ID.\n" -" \n" -" Exit Status:\n" -" Returns the status of ID; fails if ID is invalid or an invalid option " -"is\n" -" given." -msgstr "" - -#: builtins.c:1478 -msgid "" -"Execute commands for each member in a list.\n" -" \n" -" The `for' loop executes a sequence of commands for each member in a\n" -" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" -" assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1492 -msgid "" -"Arithmetic for loop.\n" -" \n" -" Equivalent to\n" -" \t(( EXP1 ))\n" -" \twhile (( EXP2 )); do\n" -" \t\tCOMMANDS\n" -" \t\t(( EXP3 ))\n" -" \tdone\n" -" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1510 -msgid "" -"Select words from a list and execute commands.\n" -" \n" -" The WORDS are expanded, generating a list of words. The\n" -" set of expanded words is printed on the standard error, each\n" -" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" -" is assumed. The PS3 prompt is then displayed and a line read\n" -" from the standard input. If the line consists of the number\n" -" corresponding to one of the displayed words, then NAME is set\n" -" to that word. If the line is empty, WORDS and the prompt are\n" -" redisplayed. If EOF is read, the command completes. Any other\n" -" value read causes NAME to be set to null. The line read is saved\n" -" in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1531 -msgid "" -"Report time consumed by pipeline's execution.\n" -" \n" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" -" and system CPU time spent executing PIPELINE when it terminates.\n" -" \n" -" Options:\n" -" -p\tprint the timing summary in the portable Posix format\n" -" \n" -" The value of the TIMEFORMAT variable is used as the output format.\n" -" \n" -" Exit Status:\n" -" The return status is the return status of PIPELINE." -msgstr "" - -#: builtins.c:1548 -msgid "" -"Execute commands based on pattern matching.\n" -" \n" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" `|' is used to separate multiple patterns.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1560 -msgid "" -"Execute commands based on conditional.\n" -" \n" -" The `if COMMANDS' list is executed. If its exit status is zero, then " -"the\n" -" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " -"is\n" -" executed in turn, and if its exit status is zero, the corresponding\n" -" `then COMMANDS' list is executed and the if command completes. " -"Otherwise,\n" -" the `else COMMANDS' list is executed, if present. The exit status of " -"the\n" -" entire construct is the exit status of the last command executed, or " -"zero\n" -" if no condition tested true.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1577 -msgid "" -"Execute commands as long as a test succeeds.\n" -" \n" -" Expand and execute COMMANDS as long as the final command in the\n" -" `while' COMMANDS has an exit status of zero.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1589 -msgid "" -"Execute commands as long as a test does not succeed.\n" -" \n" -" Expand and execute COMMANDS as long as the final command in the\n" -" `until' COMMANDS has an exit status which is not zero.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1601 -msgid "" -"Create a coprocess named NAME.\n" -" \n" -" Execute COMMAND asynchronously, with the standard output and standard\n" -" input of the command connected via a pipe to file descriptors assigned\n" -" to indices 0 and 1 of an array variable NAME in the executing shell.\n" -" The default NAME is \"COPROC\".\n" -" \n" -" Exit Status:\n" -" Returns the exit status of COMMAND." -msgstr "" - -#: builtins.c:1615 -msgid "" -"Define shell function.\n" -" \n" -" Create a shell function named NAME. When invoked as a simple command,\n" -" NAME runs COMMANDs in the calling shell's context. When NAME is " -"invoked,\n" -" the arguments are passed to the function as $1...$n, and the function's\n" -" name is in $FUNCNAME.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is readonly." -msgstr "" - -#: builtins.c:1629 -msgid "" -"Group commands as a unit.\n" -" \n" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1641 -msgid "" -"Resume job in foreground.\n" -" \n" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" -" stopped or background job. JOB_SPEC can specify either a job name\n" -" or a job number. Following JOB_SPEC with a `&' places the job in\n" -" the background, as if the job specification had been supplied as an\n" -" argument to `bg'.\n" -" \n" -" Exit Status:\n" -" Returns the status of the resumed job." -msgstr "" - -#: builtins.c:1656 -msgid "" -"Evaluate arithmetic expression.\n" -" \n" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to \"let EXPRESSION\".\n" -" \n" -" Exit Status:\n" -" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." -msgstr "" - -#: builtins.c:1668 -msgid "" -"Execute conditional command.\n" -" \n" -" Returns a status of 0 or 1 depending on the evaluation of the " -"conditional\n" -" expression EXPRESSION. Expressions are composed of the same primaries " -"used\n" -" by the `test' builtin, and may be combined using the following " -"operators:\n" -" \n" -" ( EXPRESSION )\tReturns the value of EXPRESSION\n" -" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" -" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" -" \n" -" When the `==' and `!=' operators are used, the string to the right of\n" -" the operator is used as a pattern and pattern matching is performed.\n" -" When the `=~' operator is used, the string to the right of the operator\n" -" is matched as a regular expression.\n" -" \n" -" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value.\n" -" \n" -" Exit Status:\n" -" 0 or 1 depending on value of EXPRESSION." -msgstr "" - -#: builtins.c:1694 -msgid "" -"Common shell variable names and usage.\n" -" \n" -" BASH_VERSION\tVersion information for this Bash.\n" -" CDPATH\tA colon-separated list of directories to search\n" -" \t\tfor directories given as arguments to `cd'.\n" -" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" -" \t\tbe ignored by pathname expansion.\n" -" HISTFILE\tThe name of the file where your command history is stored.\n" -" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" -" HISTSIZE\tThe maximum number of history lines that a running\n" -" \t\tshell can access.\n" -" HOME\tThe complete pathname to your login directory.\n" -" HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" -" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" -" \t\tcharacter as the sole input. If set, then the value\n" -" \t\tof it is the number of EOF characters that can be seen\n" -" \t\tin a row on an empty line before the shell will exit\n" -" \t\t(default 10). When unset, EOF signifies the end of input.\n" -" MACHTYPE\tA string describing the current system Bash is running on.\n" -" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" -" MAILPATH\tA colon-separated list of filenames which Bash checks\n" -" \t\tfor new mail.\n" -" OSTYPE\tThe version of Unix this version of Bash is running on.\n" -" PATH\tA colon-separated list of directories to search when\n" -" \t\tlooking for commands.\n" -" PROMPT_COMMAND\tA command to be executed before the printing of each\n" -" \t\tprimary prompt.\n" -" PS1\t\tThe primary prompt string.\n" -" PS2\t\tThe secondary prompt string.\n" -" PWD\t\tThe full pathname of the current directory.\n" -" SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM\tThe name of the current terminal type.\n" -" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" -" \t\t`time' reserved word.\n" -" auto_resume\tNon-null means a command word appearing on a line by\n" -" \t\titself is first looked for in the list of currently\n" -" \t\tstopped jobs. If found there, that job is foregrounded.\n" -" \t\tA value of `exact' means that the command word must\n" -" \t\texactly match a command in the list of stopped jobs. A\n" -" \t\tvalue of `substring' means that the command word must\n" -" \t\tmatch a substring of the job. Any other value means that\n" -" \t\tthe command must be a prefix of a stopped job.\n" -" histchars\tCharacters controlling history expansion and quick\n" -" \t\tsubstitution. The first character is the history\n" -" \t\tsubstitution character, usually `!'. The second is\n" -" \t\tthe `quick substitution' character, usually `^'. The\n" -" \t\tthird is the `history comment' character, usually `#'.\n" -" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" -" \t\tcommands should be saved on the history list.\n" -msgstr "" - -#: builtins.c:1751 -msgid "" -"Add directories to stack.\n" -" \n" -" Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when adding\n" -" \tdirectories to the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" dir\tAdds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" The `dirs' builtin displays the directory stack.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid argument is supplied or the directory\n" -" change fails." -msgstr "" - -#: builtins.c:1785 -msgid "" -"Remove directories from stack.\n" -" \n" -" Removes entries from the directory stack. With no arguments, removes\n" -" the top directory from the stack, and changes to the new top directory.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when removing\n" -" \tdirectories from the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRemoves the Nth entry counting from the left of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd +0'\n" -" \tremoves the first directory, `popd +1' the second.\n" -" \n" -" -N\tRemoves the Nth entry counting from the right of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd -0'\n" -" \tremoves the last directory, `popd -1' the next to last.\n" -" \n" -" The `dirs' builtin displays the directory stack.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid argument is supplied or the directory\n" -" change fails." -msgstr "" - -#: builtins.c:1815 -msgid "" -"Display directory stack.\n" -" \n" -" Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the `pushd' command; you can get\n" -" back up through the list with the `popd' command.\n" -" \n" -" Options:\n" -" -c\tclear the directory stack by deleting all of the elements\n" -" -l\tdo not print tilde-prefixed versions of directories relative\n" -" \tto your home directory\n" -" -p\tprint the directory stack with one entry per line\n" -" -v\tprint the directory stack with one entry per line prefixed\n" -" \twith its position in the stack\n" -" \n" -" Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1844 -msgid "" -"Set and unset shell options.\n" -" \n" -" Change the setting of each shell option OPTNAME. Without any option\n" -" arguments, list all shell options with an indication of whether or not " -"each\n" -" is set.\n" -" \n" -" Options:\n" -" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" -" -p\tprint each shell option with an indication of its status\n" -" -q\tsuppress output\n" -" -s\tenable (set) each OPTNAME\n" -" -u\tdisable (unset) each OPTNAME\n" -" \n" -" Exit Status:\n" -" Returns success if OPTNAME is enabled; fails if an invalid option is\n" -" given or OPTNAME is disabled." -msgstr "" - -#: builtins.c:1865 -msgid "" -"Formats and prints ARGUMENTS under control of the FORMAT.\n" -" \n" -" Options:\n" -" -v var\tassign the output to shell variable VAR rather than\n" -" \t\tdisplay it on the standard output\n" -" \n" -" FORMAT is a character string which contains three types of objects: " -"plain\n" -" characters, which are simply copied to standard output; character " -"escape\n" -" sequences, which are converted and copied to the standard output; and\n" -" format specifications, each of which causes printing of the next " -"successive\n" -" argument.\n" -" \n" -" In addition to the standard format specifications described in printf" -"(1)\n" -" and printf(3), printf interprets:\n" -" \n" -" %b\texpand backslash escape sequences in the corresponding argument\n" -" %q\tquote the argument in a way that can be reused as shell input\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or a write or " -"assignment\n" -" error occurs." -msgstr "" - -#: builtins.c:1892 -msgid "" -"Specify how arguments are to be completed by Readline.\n" -" \n" -" For each NAME, specify how arguments are to be completed. If no " -"options\n" -" are supplied, existing completion specifications are printed in a way " -"that\n" -" allows them to be reused as input.\n" -" \n" -" Options:\n" -" -p\tprint existing completion specifications in a reusable format\n" -" -r\tremove a completion specification for each NAME, or, if no\n" -" \tNAMEs are supplied, all completion specifications\n" -" \n" -" When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1915 -msgid "" -"Display possible completions depending on the options.\n" -" \n" -" Intended to be used from within a shell function generating possible\n" -" completions. If the optional WORD argument is supplied, matches " -"against\n" -" WORD are generated.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1930 -msgid "" -"Modify or display completion options.\n" -" \n" -" Modify the completion options for each NAME, or, if no NAMEs are " -"supplied,\n" -" the completion currently begin executed. If no OPTIONs are givenm, " -"print\n" -" the completion options for each NAME or the current completion " -"specification.\n" -" \n" -" Options:\n" -" \t-o option\tSet completion option OPTION for each NAME\n" -" \n" -" Using `+o' instead of `-o' turns off the specified option.\n" -" \n" -" Arguments:\n" -" \n" -" Each NAME refers to a command for which a completion specification must\n" -" have previously been defined using the `complete' builtin. If no NAMEs\n" -" are supplied, compopt must be called by a function currently generating\n" -" completions, and the options for that currently-executing completion\n" -" generator are modified.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or NAME does not\n" -" have a completion specification defined." -msgstr "" - -#: builtins.c:1958 -msgid "" -"Read lines from the standard input into an array variable.\n" -" \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" -" \n" -" Options:\n" -" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " -"copied.\n" -" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " -"index is 0.\n" -" -s count \tDiscard the first COUNT lines read.\n" -" -t\t\tRemove a trailing newline from each line read.\n" -" -u fd\t\tRead lines from file descriptor FD instead of the standard " -"input.\n" -" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" -" -c quantum\tSpecify the number of lines read between each call to " -"CALLBACK.\n" -" \n" -" Arguments:\n" -" ARRAY\t\tArray variable name to use for file data.\n" -" \n" -" If -C is supplied without -c, the default quantum is 5000. When\n" -" CALLBACK is evaluated, it is supplied the index of the next array\n" -" element to be assigned as an additional argument.\n" -" \n" -" If not supplied with an explicit origin, mapfile will clear ARRAY " -"before\n" -" assigning to it.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." -msgstr "" - -#: builtins.c:1990 -msgid "" -"Read lines from a file into an array variable.\n" -" \n" -" A synonym for `mapfile'." -msgstr "" diff --git a/po/bash-4.1.pot b/po/bash-4.1.pot deleted file mode 100644 index 68d33f82f..000000000 --- a/po/bash-4.1.pot +++ /dev/null @@ -1,3919 +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. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 08:25-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" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" - -#: arrayfunc.c:50 -msgid "bad array subscript" -msgstr "" - -#: arrayfunc.c:313 builtins/declare.def:481 -#, c-format -msgid "%s: cannot convert indexed to associative array" -msgstr "" - -#: arrayfunc.c:480 -#, c-format -msgid "%s: invalid associative array key" -msgstr "" - -#: arrayfunc.c:482 -#, c-format -msgid "%s: cannot assign to non-numeric index" -msgstr "" - -#: arrayfunc.c:518 -#, c-format -msgid "%s: %s: must use subscript when assigning associative array" -msgstr "" - -#: bashhist.c:383 -#, c-format -msgid "%s: cannot create: %s" -msgstr "" - -#: bashline.c:3457 -msgid "bash_execute_unix_command: cannot find keymap for command" -msgstr "" - -#: bashline.c:3543 -#, c-format -msgid "%s: first non-whitespace character is not `\"'" -msgstr "" - -#: bashline.c:3572 -#, c-format -msgid "no closing `%c' in %s" -msgstr "" - -#: bashline.c:3606 -#, c-format -msgid "%s: missing colon separator" -msgstr "" - -#: builtins/alias.def:132 -#, c-format -msgid "`%s': invalid alias name" -msgstr "" - -#: builtins/bind.def:120 builtins/bind.def:123 -msgid "line editing not enabled" -msgstr "" - -#: builtins/bind.def:206 -#, c-format -msgid "`%s': invalid keymap name" -msgstr "" - -#: builtins/bind.def:245 -#, c-format -msgid "%s: cannot read: %s" -msgstr "" - -#: builtins/bind.def:260 -#, c-format -msgid "`%s': cannot unbind" -msgstr "" - -#: builtins/bind.def:295 builtins/bind.def:325 -#, c-format -msgid "`%s': unknown function name" -msgstr "" - -#: builtins/bind.def:303 -#, c-format -msgid "%s is not bound to any keys.\n" -msgstr "" - -#: builtins/bind.def:307 -#, c-format -msgid "%s can be invoked via " -msgstr "" - -#: builtins/break.def:77 builtins/break.def:117 -msgid "loop count" -msgstr "" - -#: builtins/break.def:137 -msgid "only meaningful in a `for', `while', or `until' loop" -msgstr "" - -#: builtins/caller.def:133 -msgid "" -"Returns the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns " -msgstr "" - -#: builtins/caller.def:135 -msgid "" -". With EXPR, returns\n" -" " -msgstr "" - -#: builtins/caller.def:136 -msgid "" -"; this extra information can be used to\n" -" provide a stack trace.\n" -" \n" -" The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0." -msgstr "" - -#: builtins/cd.def:215 -msgid "HOME not set" -msgstr "" - -#: builtins/cd.def:227 -msgid "OLDPWD not set" -msgstr "" - -#: builtins/common.c:101 -#, c-format -msgid "line %d: " -msgstr "" - -#: builtins/common.c:139 error.c:261 -#, c-format -msgid "warning: " -msgstr "" - -#: builtins/common.c:153 -#, c-format -msgid "%s: usage: " -msgstr "" - -#: builtins/common.c:166 test.c:827 -msgid "too many arguments" -msgstr "" - -#: builtins/common.c:191 shell.c:499 shell.c:782 -#, c-format -msgid "%s: option requires an argument" -msgstr "" - -#: builtins/common.c:198 -#, c-format -msgid "%s: numeric argument required" -msgstr "" - -#: builtins/common.c:205 -#, c-format -msgid "%s: not found" -msgstr "" - -#: builtins/common.c:214 shell.c:795 -#, c-format -msgid "%s: invalid option" -msgstr "" - -#: builtins/common.c:221 -#, c-format -msgid "%s: invalid option name" -msgstr "" - -#: builtins/common.c:228 general.c:231 general.c:236 -#, c-format -msgid "`%s': not a valid identifier" -msgstr "" - -#: builtins/common.c:238 -msgid "invalid octal number" -msgstr "" - -#: builtins/common.c:240 -msgid "invalid hex number" -msgstr "" - -#: builtins/common.c:242 expr.c:1256 -msgid "invalid number" -msgstr "" - -#: builtins/common.c:250 -#, c-format -msgid "%s: invalid signal specification" -msgstr "" - -#: builtins/common.c:257 -#, c-format -msgid "`%s': not a pid or valid job spec" -msgstr "" - -#: builtins/common.c:264 error.c:454 -#, c-format -msgid "%s: readonly variable" -msgstr "" - -#: builtins/common.c:272 -#, c-format -msgid "%s: %s out of range" -msgstr "" - -#: builtins/common.c:272 builtins/common.c:274 -msgid "argument" -msgstr "" - -#: builtins/common.c:274 -#, c-format -msgid "%s out of range" -msgstr "" - -#: builtins/common.c:282 -#, c-format -msgid "%s: no such job" -msgstr "" - -#: builtins/common.c:290 -#, c-format -msgid "%s: no job control" -msgstr "" - -#: builtins/common.c:292 -msgid "no job control" -msgstr "" - -#: builtins/common.c:302 -#, c-format -msgid "%s: restricted" -msgstr "" - -#: builtins/common.c:304 -msgid "restricted" -msgstr "" - -#: builtins/common.c:312 -#, c-format -msgid "%s: not a shell builtin" -msgstr "" - -#: builtins/common.c:321 -#, c-format -msgid "write error: %s" -msgstr "" - -#: builtins/common.c:329 -#, c-format -msgid "error setting terminal attributes: %s" -msgstr "" - -#: builtins/common.c:331 -#, c-format -msgid "error getting terminal attributes: %s" -msgstr "" - -#: builtins/common.c:563 -#, c-format -msgid "%s: error retrieving current directory: %s: %s\n" -msgstr "" - -#: builtins/common.c:629 builtins/common.c:631 -#, c-format -msgid "%s: ambiguous job spec" -msgstr "" - -#: builtins/complete.def:276 -#, c-format -msgid "%s: invalid action name" -msgstr "" - -#: builtins/complete.def:449 builtins/complete.def:644 -#: builtins/complete.def:853 -#, c-format -msgid "%s: no completion specification" -msgstr "" - -#: builtins/complete.def:696 -msgid "warning: -F option may not work as you expect" -msgstr "" - -#: builtins/complete.def:698 -msgid "warning: -C option may not work as you expect" -msgstr "" - -#: builtins/complete.def:826 -msgid "not currently executing completion function" -msgstr "" - -#: builtins/declare.def:122 -msgid "can only be used in a function" -msgstr "" - -#: builtins/declare.def:360 -msgid "cannot use `-f' to make functions" -msgstr "" - -#: builtins/declare.def:372 execute_cmd.c:4937 -#, c-format -msgid "%s: readonly function" -msgstr "" - -#: builtins/declare.def:468 -#, c-format -msgid "%s: cannot destroy array variables in this way" -msgstr "" - -#: builtins/declare.def:475 -#, c-format -msgid "%s: cannot convert associative to indexed array" -msgstr "" - -#: builtins/enable.def:137 builtins/enable.def:145 -msgid "dynamic loading not available" -msgstr "" - -#: builtins/enable.def:312 -#, c-format -msgid "cannot open shared object %s: %s" -msgstr "" - -#: builtins/enable.def:335 -#, c-format -msgid "cannot find %s in shared object %s: %s" -msgstr "" - -#: builtins/enable.def:459 -#, c-format -msgid "%s: not dynamically loaded" -msgstr "" - -#: builtins/enable.def:474 -#, c-format -msgid "%s: cannot delete: %s" -msgstr "" - -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 -#: shell.c:1452 -#, c-format -msgid "%s: is a directory" -msgstr "" - -#: builtins/evalfile.c:139 -#, c-format -msgid "%s: not a regular file" -msgstr "" - -#: builtins/evalfile.c:147 -#, c-format -msgid "%s: file is too large" -msgstr "" - -#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 -#: shell.c:1462 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "" - -#: builtins/exec.def:212 -#, c-format -msgid "%s: cannot execute: %s" -msgstr "" - -#: builtins/exit.def:65 -#, c-format -msgid "logout\n" -msgstr "" - -#: builtins/exit.def:88 -msgid "not login shell: use `exit'" -msgstr "" - -#: builtins/exit.def:120 -#, c-format -msgid "There are stopped jobs.\n" -msgstr "" - -#: builtins/exit.def:122 -#, c-format -msgid "There are running jobs.\n" -msgstr "" - -#: builtins/fc.def:262 -msgid "no command found" -msgstr "" - -#: builtins/fc.def:349 -msgid "history specification" -msgstr "" - -#: builtins/fc.def:370 -#, c-format -msgid "%s: cannot open temp file: %s" -msgstr "" - -#: builtins/fg_bg.def:149 builtins/jobs.def:282 -msgid "current" -msgstr "" - -#: builtins/fg_bg.def:158 -#, c-format -msgid "job %d started without job control" -msgstr "" - -#: builtins/getopt.c:110 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "" - -#: builtins/getopt.c:111 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "" - -#: builtins/hash.def:92 -msgid "hashing disabled" -msgstr "" - -#: builtins/hash.def:138 -#, c-format -msgid "%s: hash table empty\n" -msgstr "" - -#: builtins/hash.def:244 -#, c-format -msgid "hits\tcommand\n" -msgstr "" - -#: builtins/help.def:130 -#, c-format -msgid "Shell commands matching keyword `" -msgid_plural "Shell commands matching keywords `" -msgstr[0] "" -msgstr[1] "" - -#: builtins/help.def:168 -#, c-format -msgid "" -"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." -msgstr "" - -#: builtins/help.def:185 -#, c-format -msgid "%s: cannot open: %s" -msgstr "" - -#: builtins/help.def:337 -#, c-format -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:154 -msgid "cannot use more than one of -anrw" -msgstr "" - -#: builtins/history.def:186 -msgid "history position" -msgstr "" - -#: builtins/history.def:365 -#, c-format -msgid "%s: history expansion failed" -msgstr "" - -#: builtins/inlib.def:71 -#, c-format -msgid "%s: inlib failed" -msgstr "" - -#: builtins/jobs.def:109 -msgid "no other options allowed with `-x'" -msgstr "" - -#: builtins/kill.def:200 -#, c-format -msgid "%s: arguments must be process or job IDs" -msgstr "" - -#: builtins/kill.def:263 -msgid "Unknown error" -msgstr "" - -#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 -msgid "expression expected" -msgstr "" - -#: builtins/mapfile.def:165 -#, c-format -msgid "%s: not an indexed array" -msgstr "" - -#: builtins/mapfile.def:249 builtins/read.def:279 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "" - -#: builtins/mapfile.def:257 builtins/read.def:286 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "" - -#: builtins/mapfile.def:266 builtins/mapfile.def:304 -#, c-format -msgid "%s: invalid line count" -msgstr "" - -#: builtins/mapfile.def:277 -#, c-format -msgid "%s: invalid array origin" -msgstr "" - -#: builtins/mapfile.def:294 -#, c-format -msgid "%s: invalid callback quantum" -msgstr "" - -#: builtins/mapfile.def:326 -msgid "empty array variable name" -msgstr "" - -#: builtins/mapfile.def:347 -msgid "array variable support required" -msgstr "" - -#: builtins/printf.def:374 -#, c-format -msgid "`%s': missing format character" -msgstr "" - -#: builtins/printf.def:551 -#, c-format -msgid "`%c': invalid format character" -msgstr "" - -#: builtins/printf.def:578 -#, c-format -msgid "warning: %s: %s" -msgstr "" - -#: builtins/printf.def:757 -msgid "missing hex digit for \\x" -msgstr "" - -#: builtins/pushd.def:195 -msgid "no other directory" -msgstr "" - -#: builtins/pushd.def:462 -msgid "" -msgstr "" - -#: builtins/pushd.def:506 -msgid "directory stack empty" -msgstr "" - -#: builtins/pushd.def:508 -msgid "directory stack index" -msgstr "" - -#: builtins/pushd.def:683 -msgid "" -"Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the `pushd' command; you can get\n" -" back up through the list with the `popd' command.\n" -" \n" -" Options:\n" -" -c\tclear the directory stack by deleting all of the elements\n" -" -l\tdo not print tilde-prefixed versions of directories relative\n" -" \tto your home directory\n" -" -p\tprint the directory stack with one entry per line\n" -" -v\tprint the directory stack with one entry per line prefixed\n" -" \twith its position in the stack\n" -" \n" -" Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" -"\tdirs when invoked without options, starting with zero." -msgstr "" - -#: builtins/pushd.def:705 -msgid "" -"Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when adding\n" -" \tdirectories to the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" dir\tAdds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" The `dirs' builtin displays the directory stack." -msgstr "" - -#: builtins/pushd.def:730 -msgid "" -"Removes entries from the directory stack. With no arguments, removes\n" -" the top directory from the stack, and changes to the new top directory.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when removing\n" -" \tdirectories from the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRemoves the Nth entry counting from the left of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd +0'\n" -" \tremoves the first directory, `popd +1' the second.\n" -" \n" -" -N\tRemoves the Nth entry counting from the right of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd -0'\n" -" \tremoves the last directory, `popd -1' the next to last.\n" -" \n" -" The `dirs' builtin displays the directory stack." -msgstr "" - -#: builtins/read.def:252 -#, c-format -msgid "%s: invalid timeout specification" -msgstr "" - -#: builtins/read.def:588 -#, c-format -msgid "read error: %d: %s" -msgstr "" - -#: builtins/return.def:73 -msgid "can only `return' from a function or sourced script" -msgstr "" - -#: builtins/set.def:768 -msgid "cannot simultaneously unset a function and a variable" -msgstr "" - -#: builtins/set.def:805 -#, c-format -msgid "%s: cannot unset" -msgstr "" - -#: builtins/set.def:812 -#, c-format -msgid "%s: cannot unset: readonly %s" -msgstr "" - -#: builtins/set.def:823 -#, c-format -msgid "%s: not an array variable" -msgstr "" - -#: builtins/setattr.def:186 -#, c-format -msgid "%s: not a function" -msgstr "" - -#: builtins/shift.def:71 builtins/shift.def:77 -msgid "shift count" -msgstr "" - -#: builtins/shopt.def:260 -msgid "cannot set and unset shell options simultaneously" -msgstr "" - -#: builtins/shopt.def:325 -#, c-format -msgid "%s: invalid shell option name" -msgstr "" - -#: builtins/source.def:128 -msgid "filename argument required" -msgstr "" - -#: builtins/source.def:153 -#, c-format -msgid "%s: file not found" -msgstr "" - -#: builtins/suspend.def:101 -msgid "cannot suspend" -msgstr "" - -#: builtins/suspend.def:111 -msgid "cannot suspend a login shell" -msgstr "" - -#: builtins/type.def:234 -#, c-format -msgid "%s is aliased to `%s'\n" -msgstr "" - -#: builtins/type.def:255 -#, c-format -msgid "%s is a shell keyword\n" -msgstr "" - -#: builtins/type.def:274 -#, c-format -msgid "%s is a function\n" -msgstr "" - -#: builtins/type.def:296 -#, c-format -msgid "%s is a shell builtin\n" -msgstr "" - -#: builtins/type.def:317 builtins/type.def:391 -#, c-format -msgid "%s is %s\n" -msgstr "" - -#: builtins/type.def:337 -#, c-format -msgid "%s is hashed (%s)\n" -msgstr "" - -#: builtins/ulimit.def:372 -#, c-format -msgid "%s: invalid limit argument" -msgstr "" - -#: builtins/ulimit.def:398 -#, c-format -msgid "`%c': bad command" -msgstr "" - -#: builtins/ulimit.def:427 -#, c-format -msgid "%s: cannot get limit: %s" -msgstr "" - -#: builtins/ulimit.def:453 -msgid "limit" -msgstr "" - -#: builtins/ulimit.def:465 builtins/ulimit.def:765 -#, c-format -msgid "%s: cannot modify limit: %s" -msgstr "" - -#: builtins/umask.def:118 -msgid "octal number" -msgstr "" - -#: builtins/umask.def:231 -#, c-format -msgid "`%c': invalid symbolic mode operator" -msgstr "" - -#: builtins/umask.def:286 -#, c-format -msgid "`%c': invalid symbolic mode character" -msgstr "" - -#: error.c:90 error.c:321 error.c:323 error.c:325 -msgid " line " -msgstr "" - -#: error.c:165 -#, c-format -msgid "last command: %s\n" -msgstr "" - -#: error.c:173 -#, c-format -msgid "Aborting..." -msgstr "" - -#: error.c:406 -msgid "unknown command error" -msgstr "" - -#: error.c:407 -msgid "bad command type" -msgstr "" - -#: error.c:408 -msgid "bad connector" -msgstr "" - -#: error.c:409 -msgid "bad jump" -msgstr "" - -#: error.c:447 -#, c-format -msgid "%s: unbound variable" -msgstr "" - -#: eval.c:181 -#, c-format -msgid "timed out waiting for input: auto-logout\n" -msgstr "" - -#: execute_cmd.c:497 -#, c-format -msgid "cannot redirect standard input from /dev/null: %s" -msgstr "" - -#: execute_cmd.c:1162 -#, c-format -msgid "TIMEFORMAT: `%c': invalid format character" -msgstr "" - -#: execute_cmd.c:2075 -msgid "pipe error" -msgstr "" - -#: execute_cmd.c:4481 -#, c-format -msgid "%s: restricted: cannot specify `/' in command names" -msgstr "" - -#: execute_cmd.c:4572 -#, c-format -msgid "%s: command not found" -msgstr "" - -#: execute_cmd.c:4827 -#, c-format -msgid "%s: %s: bad interpreter" -msgstr "" - -#: execute_cmd.c:4976 -#, c-format -msgid "cannot duplicate fd %d to fd %d" -msgstr "" - -#: expr.c:241 -msgid "expression recursion level exceeded" -msgstr "" - -#: expr.c:265 -msgid "recursion stack underflow" -msgstr "" - -#: expr.c:379 -msgid "syntax error in expression" -msgstr "" - -#: expr.c:419 -msgid "attempted assignment to non-variable" -msgstr "" - -#: expr.c:440 expr.c:445 expr.c:756 -msgid "division by 0" -msgstr "" - -#: expr.c:471 -msgid "bug: bad expassign token" -msgstr "" - -#: expr.c:513 -msgid "`:' expected for conditional expression" -msgstr "" - -#: expr.c:781 -msgid "exponent less than 0" -msgstr "" - -#: expr.c:826 -msgid "identifier expected after pre-increment or pre-decrement" -msgstr "" - -#: expr.c:854 -msgid "missing `)'" -msgstr "" - -#: expr.c:897 expr.c:1176 -msgid "syntax error: operand expected" -msgstr "" - -#: expr.c:1178 -msgid "syntax error: invalid arithmetic operator" -msgstr "" - -#: expr.c:1202 -#, c-format -msgid "%s%s%s: %s (error token is \"%s\")" -msgstr "" - -#: expr.c:1260 -msgid "invalid arithmetic base" -msgstr "" - -#: expr.c:1280 -msgid "value too great for base" -msgstr "" - -#: expr.c:1329 -#, c-format -msgid "%s: expression error\n" -msgstr "" - -#: general.c:61 -msgid "getcwd: cannot access parent directories" -msgstr "" - -#: input.c:94 subst.c:4857 -#, c-format -msgid "cannot reset nodelay mode for fd %d" -msgstr "" - -#: input.c:258 -#, c-format -msgid "cannot allocate new file descriptor for bash input from fd %d" -msgstr "" - -#: input.c:266 -#, c-format -msgid "save_bash_input: buffer already exists for new fd %d" -msgstr "" - -#: jobs.c:466 -msgid "start_pipeline: pgrp pipe" -msgstr "" - -#: jobs.c:887 -#, c-format -msgid "forked pid %d appears in running job %d" -msgstr "" - -#: jobs.c:1005 -#, c-format -msgid "deleting stopped job %d with process group %ld" -msgstr "" - -#: jobs.c:1110 -#, c-format -msgid "add_process: process %5ld (%s) in the_pipeline" -msgstr "" - -#: jobs.c:1113 -#, c-format -msgid "add_process: pid %5ld (%s) marked as still alive" -msgstr "" - -#: jobs.c:1401 -#, c-format -msgid "describe_pid: %ld: no such pid" -msgstr "" - -#: jobs.c:1416 -#, c-format -msgid "Signal %d" -msgstr "" - -#: jobs.c:1430 jobs.c:1455 -msgid "Done" -msgstr "" - -#: jobs.c:1435 siglist.c:123 -msgid "Stopped" -msgstr "" - -#: jobs.c:1439 -#, c-format -msgid "Stopped(%s)" -msgstr "" - -#: jobs.c:1443 -msgid "Running" -msgstr "" - -#: jobs.c:1457 -#, c-format -msgid "Done(%d)" -msgstr "" - -#: jobs.c:1459 -#, c-format -msgid "Exit %d" -msgstr "" - -#: jobs.c:1462 -msgid "Unknown status" -msgstr "" - -#: jobs.c:1549 -#, c-format -msgid "(core dumped) " -msgstr "" - -#: jobs.c:1568 -#, c-format -msgid " (wd: %s)" -msgstr "" - -#: jobs.c:1776 -#, c-format -msgid "child setpgid (%ld to %ld)" -msgstr "" - -#: jobs.c:2104 nojobs.c:585 -#, c-format -msgid "wait: pid %ld is not a child of this shell" -msgstr "" - -#: jobs.c:2331 -#, c-format -msgid "wait_for: No record of process %ld" -msgstr "" - -#: jobs.c:2607 -#, c-format -msgid "wait_for_job: job %d is stopped" -msgstr "" - -#: jobs.c:2829 -#, c-format -msgid "%s: job has terminated" -msgstr "" - -#: jobs.c:2838 -#, c-format -msgid "%s: job %d already in background" -msgstr "" - -#: jobs.c:3059 -msgid "waitchld: turning on WNOHANG to avoid indefinite block" -msgstr "" - -#: jobs.c:3508 -#, c-format -msgid "%s: line %d: " -msgstr "" - -#: jobs.c:3522 nojobs.c:814 -#, c-format -msgid " (core dumped)" -msgstr "" - -#: jobs.c:3534 jobs.c:3547 -#, c-format -msgid "(wd now: %s)\n" -msgstr "" - -#: jobs.c:3579 -msgid "initialize_job_control: getpgrp failed" -msgstr "" - -#: jobs.c:3639 -msgid "initialize_job_control: line discipline" -msgstr "" - -#: jobs.c:3649 -msgid "initialize_job_control: setpgid" -msgstr "" - -#: jobs.c:3677 -#, c-format -msgid "cannot set terminal process group (%d)" -msgstr "" - -#: jobs.c:3682 -msgid "no job control in this shell" -msgstr "" - -#: lib/malloc/malloc.c:296 -#, c-format -msgid "malloc: failed assertion: %s\n" -msgstr "" - -#: lib/malloc/malloc.c:312 -#, c-format -msgid "" -"\r\n" -"malloc: %s:%d: assertion botched\r\n" -msgstr "" - -#: lib/malloc/malloc.c:313 -msgid "unknown" -msgstr "" - -#: lib/malloc/malloc.c:797 -msgid "malloc: block on free list clobbered" -msgstr "" - -#: lib/malloc/malloc.c:874 -msgid "free: called with already freed block argument" -msgstr "" - -#: lib/malloc/malloc.c:877 -msgid "free: called with unallocated block argument" -msgstr "" - -#: lib/malloc/malloc.c:896 -msgid "free: underflow detected; mh_nbytes out of range" -msgstr "" - -#: lib/malloc/malloc.c:902 -msgid "free: start and end chunk sizes differ" -msgstr "" - -#: lib/malloc/malloc.c:1001 -msgid "realloc: called with unallocated block argument" -msgstr "" - -#: lib/malloc/malloc.c:1016 -msgid "realloc: underflow detected; mh_nbytes out of range" -msgstr "" - -#: lib/malloc/malloc.c:1022 -msgid "realloc: start and end chunk sizes differ" -msgstr "" - -#: lib/malloc/table.c:177 -#, c-format -msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" -msgstr "" - -#: lib/malloc/table.c:184 -#, c-format -msgid "register_alloc: %p already in table as allocated?\n" -msgstr "" - -#: lib/malloc/table.c:220 -#, c-format -msgid "register_free: %p already in table as free?\n" -msgstr "" - -#: lib/sh/fmtulong.c:101 -msgid "invalid base" -msgstr "" - -#: lib/sh/netopen.c:168 -#, c-format -msgid "%s: host unknown" -msgstr "" - -#: lib/sh/netopen.c:175 -#, c-format -msgid "%s: invalid service" -msgstr "" - -#: lib/sh/netopen.c:306 -#, c-format -msgid "%s: bad network path specification" -msgstr "" - -#: lib/sh/netopen.c:346 -msgid "network operations not supported" -msgstr "" - -#: locale.c:192 -#, c-format -msgid "setlocale: LC_ALL: cannot change locale (%s)" -msgstr "" - -#: locale.c:194 -#, c-format -msgid "setlocale: LC_ALL: cannot change locale (%s): %s" -msgstr "" - -#: locale.c:247 -#, c-format -msgid "setlocale: %s: cannot change locale (%s)" -msgstr "" - -#: locale.c:249 -#, c-format -msgid "setlocale: %s: cannot change locale (%s): %s" -msgstr "" - -#: mailcheck.c:433 -msgid "You have mail in $_" -msgstr "" - -#: mailcheck.c:458 -msgid "You have new mail in $_" -msgstr "" - -#: mailcheck.c:474 -#, c-format -msgid "The mail in %s has been read\n" -msgstr "" - -#: make_cmd.c:323 -msgid "syntax error: arithmetic expression required" -msgstr "" - -#: make_cmd.c:325 -msgid "syntax error: `;' unexpected" -msgstr "" - -#: make_cmd.c:326 -#, c-format -msgid "syntax error: `((%s))'" -msgstr "" - -#: make_cmd.c:575 -#, c-format -msgid "make_here_document: bad instruction type %d" -msgstr "" - -#: make_cmd.c:659 -#, c-format -msgid "here-document at line %d delimited by end-of-file (wanted `%s')" -msgstr "" - -#: make_cmd.c:756 -#, c-format -msgid "make_redirection: redirection instruction `%d' out of range" -msgstr "" - -#: parse.y:3133 parse.y:3369 -#, c-format -msgid "unexpected EOF while looking for matching `%c'" -msgstr "" - -#: parse.y:3951 -msgid "unexpected EOF while looking for `]]'" -msgstr "" - -#: parse.y:3956 -#, c-format -msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "" - -#: parse.y:3960 -msgid "syntax error in conditional expression" -msgstr "" - -#: parse.y:4038 -#, c-format -msgid "unexpected token `%s', expected `)'" -msgstr "" - -#: parse.y:4042 -msgid "expected `)'" -msgstr "" - -#: parse.y:4070 -#, c-format -msgid "unexpected argument `%s' to conditional unary operator" -msgstr "" - -#: parse.y:4074 -msgid "unexpected argument to conditional unary operator" -msgstr "" - -#: parse.y:4120 -#, c-format -msgid "unexpected token `%s', conditional binary operator expected" -msgstr "" - -#: parse.y:4124 -msgid "conditional binary operator expected" -msgstr "" - -#: parse.y:4146 -#, c-format -msgid "unexpected argument `%s' to conditional binary operator" -msgstr "" - -#: parse.y:4150 -msgid "unexpected argument to conditional binary operator" -msgstr "" - -#: parse.y:4161 -#, c-format -msgid "unexpected token `%c' in conditional command" -msgstr "" - -#: parse.y:4164 -#, c-format -msgid "unexpected token `%s' in conditional command" -msgstr "" - -#: parse.y:4168 -#, c-format -msgid "unexpected token %d in conditional command" -msgstr "" - -#: parse.y:5459 -#, c-format -msgid "syntax error near unexpected token `%s'" -msgstr "" - -#: parse.y:5477 -#, c-format -msgid "syntax error near `%s'" -msgstr "" - -#: parse.y:5487 -msgid "syntax error: unexpected end of file" -msgstr "" - -#: parse.y:5487 -msgid "syntax error" -msgstr "" - -#: parse.y:5549 -#, c-format -msgid "Use \"%s\" to leave the shell.\n" -msgstr "" - -#: parse.y:5711 -msgid "unexpected EOF while looking for matching `)'" -msgstr "" - -#: pcomplete.c:1030 -#, c-format -msgid "completion: function `%s' not found" -msgstr "" - -#: pcomplib.c:179 -#, c-format -msgid "progcomp_insert: %s: NULL COMPSPEC" -msgstr "" - -#: print_cmd.c:290 -#, c-format -msgid "print_command: bad connector `%d'" -msgstr "" - -#: print_cmd.c:363 -#, c-format -msgid "xtrace_set: %d: invalid file descriptor" -msgstr "" - -#: print_cmd.c:368 -msgid "xtrace_set: NULL file pointer" -msgstr "" - -#: print_cmd.c:372 -#, c-format -msgid "xtrace fd (%d) != fileno xtrace fp (%d)" -msgstr "" - -#: print_cmd.c:1461 -#, c-format -msgid "cprintf: `%c': invalid format character" -msgstr "" - -#: redir.c:110 -msgid "file descriptor out of range" -msgstr "" - -#: redir.c:166 -#, c-format -msgid "%s: ambiguous redirect" -msgstr "" - -#: redir.c:170 -#, c-format -msgid "%s: cannot overwrite existing file" -msgstr "" - -#: redir.c:175 -#, c-format -msgid "%s: restricted: cannot redirect output" -msgstr "" - -#: redir.c:180 -#, c-format -msgid "cannot create temp file for here-document: %s" -msgstr "" - -#: redir.c:184 -#, c-format -msgid "%s: cannot assign fd to variable" -msgstr "" - -#: redir.c:544 -msgid "/dev/(tcp|udp)/host/port not supported without networking" -msgstr "" - -#: redir.c:1101 -msgid "redirection error: cannot duplicate fd" -msgstr "" - -#: shell.c:332 -msgid "could not find /tmp, please create!" -msgstr "" - -#: shell.c:336 -msgid "/tmp must be a valid directory name" -msgstr "" - -#: shell.c:884 -#, c-format -msgid "%c%c: invalid option" -msgstr "" - -#: shell.c:1651 -msgid "I have no name!" -msgstr "" - -#: shell.c:1793 -#, c-format -msgid "GNU bash, version %s-(%s)\n" -msgstr "" - -#: shell.c:1794 -#, c-format -msgid "" -"Usage:\t%s [GNU long option] [option] ...\n" -"\t%s [GNU long option] [option] script-file ...\n" -msgstr "" - -#: shell.c:1796 -msgid "GNU long options:\n" -msgstr "" - -#: shell.c:1800 -msgid "Shell options:\n" -msgstr "" - -#: shell.c:1801 -msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -msgstr "" - -#: shell.c:1816 -#, c-format -msgid "\t-%s or -o option\n" -msgstr "" - -#: shell.c:1822 -#, c-format -msgid "Type `%s -c \"help set\"' for more information about shell options.\n" -msgstr "" - -#: shell.c:1823 -#, c-format -msgid "Type `%s -c help' for more information about shell builtin commands.\n" -msgstr "" - -#: shell.c:1824 -#, c-format -msgid "Use the `bashbug' command to report bugs.\n" -msgstr "" - -#: sig.c:626 -#, c-format -msgid "sigprocmask: %d: invalid operation" -msgstr "" - -#: siglist.c:48 -msgid "Bogus signal" -msgstr "" - -#: siglist.c:51 -msgid "Hangup" -msgstr "" - -#: siglist.c:55 -msgid "Interrupt" -msgstr "" - -#: siglist.c:59 -msgid "Quit" -msgstr "" - -#: siglist.c:63 -msgid "Illegal instruction" -msgstr "" - -#: siglist.c:67 -msgid "BPT trace/trap" -msgstr "" - -#: siglist.c:75 -msgid "ABORT instruction" -msgstr "" - -#: siglist.c:79 -msgid "EMT instruction" -msgstr "" - -#: siglist.c:83 -msgid "Floating point exception" -msgstr "" - -#: siglist.c:87 -msgid "Killed" -msgstr "" - -#: siglist.c:91 -msgid "Bus error" -msgstr "" - -#: siglist.c:95 -msgid "Segmentation fault" -msgstr "" - -#: siglist.c:99 -msgid "Bad system call" -msgstr "" - -#: siglist.c:103 -msgid "Broken pipe" -msgstr "" - -#: siglist.c:107 -msgid "Alarm clock" -msgstr "" - -#: siglist.c:111 -msgid "Terminated" -msgstr "" - -#: siglist.c:115 -msgid "Urgent IO condition" -msgstr "" - -#: siglist.c:119 -msgid "Stopped (signal)" -msgstr "" - -#: siglist.c:127 -msgid "Continue" -msgstr "" - -#: siglist.c:135 -msgid "Child death or stop" -msgstr "" - -#: siglist.c:139 -msgid "Stopped (tty input)" -msgstr "" - -#: siglist.c:143 -msgid "Stopped (tty output)" -msgstr "" - -#: siglist.c:147 -msgid "I/O ready" -msgstr "" - -#: siglist.c:151 -msgid "CPU limit" -msgstr "" - -#: siglist.c:155 -msgid "File limit" -msgstr "" - -#: siglist.c:159 -msgid "Alarm (virtual)" -msgstr "" - -#: siglist.c:163 -msgid "Alarm (profile)" -msgstr "" - -#: siglist.c:167 -msgid "Window changed" -msgstr "" - -#: siglist.c:171 -msgid "Record lock" -msgstr "" - -#: siglist.c:175 -msgid "User signal 1" -msgstr "" - -#: siglist.c:179 -msgid "User signal 2" -msgstr "" - -#: siglist.c:183 -msgid "HFT input data pending" -msgstr "" - -#: siglist.c:187 -msgid "power failure imminent" -msgstr "" - -#: siglist.c:191 -msgid "system crash imminent" -msgstr "" - -#: siglist.c:195 -msgid "migrate process to another CPU" -msgstr "" - -#: siglist.c:199 -msgid "programming error" -msgstr "" - -#: siglist.c:203 -msgid "HFT monitor mode granted" -msgstr "" - -#: siglist.c:207 -msgid "HFT monitor mode retracted" -msgstr "" - -#: siglist.c:211 -msgid "HFT sound sequence has completed" -msgstr "" - -#: siglist.c:215 -msgid "Information request" -msgstr "" - -#: siglist.c:223 -msgid "Unknown Signal #" -msgstr "" - -#: siglist.c:225 -#, c-format -msgid "Unknown Signal #%d" -msgstr "" - -#: subst.c:1333 subst.c:1454 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "" - -#: subst.c:2735 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "" - -#: subst.c:4754 subst.c:4770 -msgid "cannot make pipe for process substitution" -msgstr "" - -#: subst.c:4802 -msgid "cannot make child for process substitution" -msgstr "" - -#: subst.c:4847 -#, c-format -msgid "cannot open named pipe %s for reading" -msgstr "" - -#: subst.c:4849 -#, c-format -msgid "cannot open named pipe %s for writing" -msgstr "" - -#: subst.c:4867 -#, c-format -msgid "cannot duplicate named pipe %s as fd %d" -msgstr "" - -#: subst.c:5063 -msgid "cannot make pipe for command substitution" -msgstr "" - -#: subst.c:5097 -msgid "cannot make child for command substitution" -msgstr "" - -#: subst.c:5114 -msgid "command_substitute: cannot duplicate pipe as fd 1" -msgstr "" - -#: subst.c:5617 -#, c-format -msgid "%s: parameter null or not set" -msgstr "" - -#: subst.c:5907 -#, c-format -msgid "%s: substring expression < 0" -msgstr "" - -#: subst.c:6965 -#, c-format -msgid "%s: bad substitution" -msgstr "" - -#: subst.c:7045 -#, c-format -msgid "$%s: cannot assign in this way" -msgstr "" - -#: subst.c:7374 -msgid "" -"future versions of the shell will force evaluation as an arithmetic " -"substitution" -msgstr "" - -#: subst.c:7839 -#, c-format -msgid "bad substitution: no closing \"`\" in %s" -msgstr "" - -#: subst.c:8720 -#, c-format -msgid "no match: %s" -msgstr "" - -#: test.c:146 -msgid "argument expected" -msgstr "" - -#: test.c:155 -#, c-format -msgid "%s: integer expression expected" -msgstr "" - -#: test.c:263 -msgid "`)' expected" -msgstr "" - -#: test.c:265 -#, c-format -msgid "`)' expected, found %s" -msgstr "" - -#: test.c:280 test.c:693 test.c:696 -#, c-format -msgid "%s: unary operator expected" -msgstr "" - -#: test.c:449 test.c:736 -#, c-format -msgid "%s: binary operator expected" -msgstr "" - -#: test.c:811 -msgid "missing `]'" -msgstr "" - -#: trap.c:203 -msgid "invalid signal number" -msgstr "" - -#: trap.c:327 -#, c-format -msgid "run_pending_traps: bad value in trap_list[%d]: %p" -msgstr "" - -#: trap.c:331 -#, c-format -msgid "" -"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -msgstr "" - -#: trap.c:380 -#, c-format -msgid "trap_handler: bad signal %d" -msgstr "" - -#: variables.c:363 -#, c-format -msgid "error importing function definition for `%s'" -msgstr "" - -#: variables.c:748 -#, c-format -msgid "shell level (%d) too high, resetting to 1" -msgstr "" - -#: variables.c:1915 -msgid "make_local_variable: no function context at current scope" -msgstr "" - -#: variables.c:3159 -msgid "all_local_variables: no function context at current scope" -msgstr "" - -#: variables.c:3376 -#, c-format -msgid "%s has null exportstr" -msgstr "" - -#: variables.c:3381 variables.c:3390 -#, c-format -msgid "invalid character %d in exportstr for %s" -msgstr "" - -#: variables.c:3396 -#, c-format -msgid "no `=' in exportstr for %s" -msgstr "" - -#: variables.c:3835 -msgid "pop_var_context: head of shell_variables not a function context" -msgstr "" - -#: variables.c:3848 -msgid "pop_var_context: no global_variables context" -msgstr "" - -#: variables.c:3922 -msgid "pop_scope: head of shell_variables not a temporary environment scope" -msgstr "" - -#: variables.c:4678 -#, c-format -msgid "%s: %s: cannot open as FILE" -msgstr "" - -#: variables.c:4683 -#, c-format -msgid "%s: %s: invalid value for trace file descriptor" -msgstr "" - -#: version.c:46 -msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "" - -#: version.c:47 -msgid "" -"License GPLv3+: GNU GPL version 3 or later \n" -msgstr "" - -#: version.c:86 version2.c:83 -#, c-format -msgid "GNU bash, version %s (%s)\n" -msgstr "" - -#: version.c:91 version2.c:88 -#, c-format -msgid "This is free software; you are free to change and redistribute it.\n" -msgstr "" - -#: version.c:92 version2.c:89 -#, c-format -msgid "There is NO WARRANTY, to the extent permitted by law.\n" -msgstr "" - -#: version2.c:86 -#, c-format -msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" -msgstr "" - -#: version2.c:87 -#, c-format -msgid "" -"License GPLv2+: GNU GPL version 2 or later \n" -msgstr "" - -#: xmalloc.c:91 -#, c-format -msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:93 -#, c-format -msgid "%s: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:163 -#, c-format -msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:165 -#, c-format -msgid "%s: %s:%d: cannot allocate %lu bytes" -msgstr "" - -#: builtins.c:43 -msgid "alias [-p] [name[=value] ... ]" -msgstr "" - -#: builtins.c:47 -msgid "unalias [-a] name [name ...]" -msgstr "" - -#: builtins.c:51 -msgid "" -"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" -"x keyseq:shell-command] [keyseq:readline-function or readline-command]" -msgstr "" - -#: builtins.c:54 -msgid "break [n]" -msgstr "" - -#: builtins.c:56 -msgid "continue [n]" -msgstr "" - -#: builtins.c:58 -msgid "builtin [shell-builtin [arg ...]]" -msgstr "" - -#: builtins.c:61 -msgid "caller [expr]" -msgstr "" - -#: builtins.c:64 -msgid "cd [-L|-P] [dir]" -msgstr "" - -#: builtins.c:66 -msgid "pwd [-LP]" -msgstr "" - -#: builtins.c:68 -msgid ":" -msgstr "" - -#: builtins.c:70 -msgid "true" -msgstr "" - -#: builtins.c:72 -msgid "false" -msgstr "" - -#: builtins.c:74 -msgid "command [-pVv] command [arg ...]" -msgstr "" - -#: builtins.c:76 -msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" -msgstr "" - -#: builtins.c:78 -msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." -msgstr "" - -#: builtins.c:80 -msgid "local [option] name[=value] ..." -msgstr "" - -#: builtins.c:83 -msgid "echo [-neE] [arg ...]" -msgstr "" - -#: builtins.c:87 -msgid "echo [-n] [arg ...]" -msgstr "" - -#: builtins.c:90 -msgid "enable [-a] [-dnps] [-f filename] [name ...]" -msgstr "" - -#: builtins.c:92 -msgid "eval [arg ...]" -msgstr "" - -#: builtins.c:94 -msgid "getopts optstring name [arg]" -msgstr "" - -#: builtins.c:96 -msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" -msgstr "" - -#: builtins.c:98 -msgid "exit [n]" -msgstr "" - -#: builtins.c:100 -msgid "logout [n]" -msgstr "" - -#: builtins.c:103 -msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" -msgstr "" - -#: builtins.c:107 -msgid "fg [job_spec]" -msgstr "" - -#: builtins.c:111 -msgid "bg [job_spec ...]" -msgstr "" - -#: builtins.c:114 -msgid "hash [-lr] [-p pathname] [-dt] [name ...]" -msgstr "" - -#: builtins.c:117 -msgid "help [-dms] [pattern ...]" -msgstr "" - -#: builtins.c:121 -msgid "" -"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " -"[arg...]" -msgstr "" - -#: builtins.c:125 -msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" -msgstr "" - -#: builtins.c:129 -msgid "disown [-h] [-ar] [jobspec ...]" -msgstr "" - -#: builtins.c:132 -msgid "" -"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " -"[sigspec]" -msgstr "" - -#: builtins.c:134 -msgid "let arg [arg ...]" -msgstr "" - -#: builtins.c:136 -msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " -"prompt] [-t timeout] [-u fd] [name ...]" -msgstr "" - -#: builtins.c:138 -msgid "return [n]" -msgstr "" - -#: builtins.c:140 -msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" -msgstr "" - -#: builtins.c:142 -msgid "unset [-f] [-v] [name ...]" -msgstr "" - -#: builtins.c:144 -msgid "export [-fn] [name[=value] ...] or export -p" -msgstr "" - -#: builtins.c:146 -msgid "readonly [-af] [name[=value] ...] or readonly -p" -msgstr "" - -#: builtins.c:148 -msgid "shift [n]" -msgstr "" - -#: builtins.c:150 -msgid "source filename [arguments]" -msgstr "" - -#: builtins.c:152 -msgid ". filename [arguments]" -msgstr "" - -#: builtins.c:155 -msgid "suspend [-f]" -msgstr "" - -#: builtins.c:158 -msgid "test [expr]" -msgstr "" - -#: builtins.c:160 -msgid "[ arg... ]" -msgstr "" - -#: builtins.c:162 -msgid "times" -msgstr "" - -#: builtins.c:164 -msgid "trap [-lp] [[arg] signal_spec ...]" -msgstr "" - -#: builtins.c:166 -msgid "type [-afptP] name [name ...]" -msgstr "" - -#: builtins.c:169 -msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" -msgstr "" - -#: builtins.c:172 -msgid "umask [-p] [-S] [mode]" -msgstr "" - -#: builtins.c:175 -msgid "wait [id]" -msgstr "" - -#: builtins.c:179 -msgid "wait [pid]" -msgstr "" - -#: builtins.c:182 -msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" -msgstr "" - -#: builtins.c:184 -msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" -msgstr "" - -#: builtins.c:186 -msgid "select NAME [in WORDS ... ;] do COMMANDS; done" -msgstr "" - -#: builtins.c:188 -msgid "time [-p] pipeline" -msgstr "" - -#: builtins.c:190 -msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" -msgstr "" - -#: builtins.c:192 -msgid "" -"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " -"COMMANDS; ] fi" -msgstr "" - -#: builtins.c:194 -msgid "while COMMANDS; do COMMANDS; done" -msgstr "" - -#: builtins.c:196 -msgid "until COMMANDS; do COMMANDS; done" -msgstr "" - -#: builtins.c:198 -msgid "coproc [NAME] command [redirections]" -msgstr "" - -#: builtins.c:200 -msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" -msgstr "" - -#: builtins.c:202 -msgid "{ COMMANDS ; }" -msgstr "" - -#: builtins.c:204 -msgid "job_spec [&]" -msgstr "" - -#: builtins.c:206 -msgid "(( expression ))" -msgstr "" - -#: builtins.c:208 -msgid "[[ expression ]]" -msgstr "" - -#: builtins.c:210 -msgid "variables - Names and meanings of some shell variables" -msgstr "" - -#: builtins.c:213 -msgid "pushd [-n] [+N | -N | dir]" -msgstr "" - -#: builtins.c:217 -msgid "popd [-n] [+N | -N]" -msgstr "" - -#: builtins.c:221 -msgid "dirs [-clpv] [+N] [-N]" -msgstr "" - -#: builtins.c:224 -msgid "shopt [-pqsu] [-o] [optname ...]" -msgstr "" - -#: builtins.c:226 -msgid "printf [-v var] format [arguments]" -msgstr "" - -#: builtins.c:229 -msgid "" -"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" -"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " -"suffix] [name ...]" -msgstr "" - -#: builtins.c:233 -msgid "" -"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " -"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" -msgstr "" - -#: builtins.c:237 -msgid "compopt [-o|+o option] [-DE] [name ...]" -msgstr "" - -#: builtins.c:240 -msgid "" -"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" -msgstr "" - -#: builtins.c:242 -msgid "" -"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" -msgstr "" - -#: builtins.c:254 -msgid "" -"Define or display aliases.\n" -" \n" -" Without arguments, `alias' prints the list of aliases in the reusable\n" -" form `alias NAME=VALUE' on standard output.\n" -" \n" -" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" -" A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded.\n" -" \n" -" Options:\n" -" -p\tPrint all defined aliases in a reusable format\n" -" \n" -" Exit Status:\n" -" alias returns true unless a NAME is supplied for which no alias has " -"been\n" -" defined." -msgstr "" - -#: builtins.c:276 -msgid "" -"Remove each NAME from the list of defined aliases.\n" -" \n" -" Options:\n" -" -a\tremove all alias definitions.\n" -" \n" -" Return success unless a NAME is not an existing alias." -msgstr "" - -#: builtins.c:289 -msgid "" -"Set Readline key bindings and variables.\n" -" \n" -" Bind a key sequence to a Readline function or a macro, or set a\n" -" Readline variable. The non-option argument syntax is equivalent to\n" -" that found in ~/.inputrc, but must be passed as a single argument:\n" -" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" \n" -" Options:\n" -" -m keymap Use KEYMAP as the keymap for the duration of this\n" -" command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" -"move,\n" -" vi-command, and vi-insert.\n" -" -l List names of functions.\n" -" -P List function names and bindings.\n" -" -p List functions and bindings in a form that can be\n" -" reused as input.\n" -" -S List key sequences that invoke macros and their " -"values\n" -" -s List key sequences that invoke macros and their " -"values\n" -" in a form that can be reused as input.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -f filename Read key bindings from FILENAME.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" \n" -" Exit Status:\n" -" bind returns 0 unless an unrecognized option is given or an error occurs." -msgstr "" - -#: builtins.c:326 -msgid "" -"Exit for, while, or until loops.\n" -" \n" -" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" -" loops.\n" -" \n" -" Exit Status:\n" -" The exit status is 0 unless N is not greater than or equal to 1." -msgstr "" - -#: builtins.c:338 -msgid "" -"Resume for, while, or until loops.\n" -" \n" -" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resumes the Nth enclosing loop.\n" -" \n" -" Exit Status:\n" -" The exit status is 0 unless N is not greater than or equal to 1." -msgstr "" - -#: builtins.c:350 -msgid "" -"Execute shell builtins.\n" -" \n" -" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" -" lookup. This is useful when you wish to reimplement a shell builtin\n" -" as a shell function, but need to execute the builtin within the " -"function.\n" -" \n" -" Exit Status:\n" -" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" -" not a shell builtin.." -msgstr "" - -#: builtins.c:365 -msgid "" -"Return the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" -" \"$line $subroutine $filename\"; this extra information can be used to\n" -" provide a stack trace.\n" -" \n" -" The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0.\n" -" \n" -" Exit Status:\n" -" Returns 0 unless the shell is not executing a shell function or EXPR\n" -" is invalid." -msgstr "" - -#: builtins.c:383 -msgid "" -"Change the shell working directory.\n" -" \n" -" Change the current directory to DIR. The default DIR is the value of " -"the\n" -" HOME shell variable.\n" -" \n" -" The variable CDPATH defines the search path for the directory " -"containing\n" -" DIR. Alternative directory names in CDPATH are separated by a colon " -"(:).\n" -" A null directory name is the same as the current directory. If DIR " -"begins\n" -" with a slash (/), then CDPATH is not used.\n" -" \n" -" If the directory is not found, and the shell option `cdable_vars' is " -"set,\n" -" the word is assumed to be a variable name. If that variable has a " -"value,\n" -" its value is used for DIR.\n" -" \n" -" Options:\n" -" -L\tforce symbolic links to be followed\n" -" -P\tuse the physical directory structure without following symbolic\n" -" \tlinks\n" -" \n" -" The default is to follow symbolic links, as if `-L' were specified.\n" -" \n" -" Exit Status:\n" -" Returns 0 if the directory is changed; non-zero otherwise." -msgstr "" - -#: builtins.c:411 -msgid "" -"Print the name of the current working directory.\n" -" \n" -" Options:\n" -" -L\tprint the value of $PWD if it names the current working\n" -" \tdirectory\n" -" -P\tprint the physical directory, without any symbolic links\n" -" \n" -" By default, `pwd' behaves as if `-L' were specified.\n" -" \n" -" Exit Status:\n" -" Returns 0 unless an invalid option is given or the current directory\n" -" cannot be read." -msgstr "" - -#: builtins.c:428 -msgid "" -"Null command.\n" -" \n" -" No effect; the command does nothing.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" - -#: builtins.c:439 -msgid "" -"Return a successful result.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" - -#: builtins.c:448 -msgid "" -"Return an unsuccessful result.\n" -" \n" -" Exit Status:\n" -" Always fails." -msgstr "" - -#: builtins.c:457 -msgid "" -"Execute a simple command or display information about commands.\n" -" \n" -" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" -" information about the specified COMMANDs. Can be used to invoke " -"commands\n" -" on disk when a function with the same name exists.\n" -" \n" -" Options:\n" -" -p\tuse a default value for PATH that is guaranteed to find all of\n" -" \tthe standard utilities\n" -" -v\tprint a description of COMMAND similar to the `type' builtin\n" -" -V\tprint a more verbose description of each COMMAND\n" -" \n" -" Exit Status:\n" -" Returns exit status of COMMAND, or failure if COMMAND is not found." -msgstr "" - -#: builtins.c:476 -msgid "" -"Set variable values and attributes.\n" -" \n" -" Declare variables and give them attributes. If no NAMEs are given,\n" -" display the attributes and values of all variables.\n" -" \n" -" Options:\n" -" -f\trestrict action or display to function names and definitions\n" -" -F\trestrict display to function names only (plus line number and\n" -" \tsource file when debugging)\n" -" -p\tdisplay the attributes and value of each NAME\n" -" \n" -" Options which set attributes:\n" -" -a\tto make NAMEs indexed arrays (if supported)\n" -" -A\tto make NAMEs associative arrays (if supported)\n" -" -i\tto make NAMEs have the `integer' attribute\n" -" -l\tto convert NAMEs to lower case on assignment\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the `trace' attribute\n" -" -u\tto convert NAMEs to upper case on assignment\n" -" -x\tto make NAMEs export\n" -" \n" -" Using `+' instead of `-' turns off the given attribute.\n" -" \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" the `let' command) performed when the variable is assigned a value.\n" -" \n" -" When used in a function, `declare' makes NAMEs local, as with the " -"`local'\n" -" command.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:512 -msgid "" -"Set variable values and attributes.\n" -" \n" -" Obsolete. See `help declare'." -msgstr "" - -#: builtins.c:520 -msgid "" -"Define local variables.\n" -" \n" -" Create a local variable called NAME, and give it VALUE. OPTION can\n" -" be any option accepted by `declare'.\n" -" \n" -" Local variables can only be used within a function; they are visible\n" -" only to the function where they are defined and its children.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied, an error occurs,\n" -" or the shell is not executing a function." -msgstr "" - -#: builtins.c:537 -msgid "" -"Write arguments to the standard output.\n" -" \n" -" Display the ARGs on the standard output followed by a newline.\n" -" \n" -" Options:\n" -" -n\tdo not append a newline\n" -" -e\tenable interpretation of the following backslash escapes\n" -" -E\texplicitly suppress interpretation of backslash escapes\n" -" \n" -" `echo' interprets the following backslash-escaped characters:\n" -" \\a\talert (bell)\n" -" \\b\tbackspace\n" -" \\c\tsuppress further output\n" -" \\e\tescape character\n" -" \\f\tform feed\n" -" \\n\tnew line\n" -" \\r\tcarriage return\n" -" \\t\thorizontal tab\n" -" \\v\tvertical tab\n" -" \\\\\tbackslash\n" -" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" -" \t0 to 3 octal digits\n" -" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" -" \tcan be one or two hex digits\n" -" \n" -" Exit Status:\n" -" Returns success unless a write error occurs." -msgstr "" - -#: builtins.c:571 -msgid "" -"Write arguments to the standard output.\n" -" \n" -" Display the ARGs on the standard output followed by a newline.\n" -" \n" -" Options:\n" -" -n\tdo not append a newline\n" -" \n" -" Exit Status:\n" -" Returns success unless a write error occurs." -msgstr "" - -#: builtins.c:586 -msgid "" -"Enable and disable shell builtins.\n" -" \n" -" Enables and disables builtin shell commands. Disabling allows you to\n" -" execute a disk command which has the same name as a shell builtin\n" -" without using a full pathname.\n" -" \n" -" Options:\n" -" -a\tprint a list of builtins showing whether or not each is enabled\n" -" -n\tdisable each NAME or display a list of disabled builtins\n" -" -p\tprint the list of builtins in a reusable format\n" -" -s\tprint only the names of Posix `special' builtins\n" -" \n" -" Options controlling dynamic loading:\n" -" -f\tLoad builtin NAME from shared object FILENAME\n" -" -d\tRemove a builtin loaded with -f\n" -" \n" -" Without options, each NAME is enabled.\n" -" \n" -" To use the `test' found in $PATH instead of the shell builtin\n" -" version, type `enable -n test'.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is not a shell builtin or an error occurs." -msgstr "" - -#: builtins.c:614 -msgid "" -"Execute arguments as a shell command.\n" -" \n" -" Combine ARGs into a single string, use the result as input to the " -"shell,\n" -" and execute the resulting commands.\n" -" \n" -" Exit Status:\n" -" Returns exit status of command or success if command is null." -msgstr "" - -#: builtins.c:626 -msgid "" -"Parse option arguments.\n" -" \n" -" Getopts is used by shell procedures to parse positional parameters\n" -" as options.\n" -" \n" -" OPTSTRING contains the option letters to be recognized; if a letter\n" -" is followed by a colon, the option is expected to have an argument,\n" -" which should be separated from it by white space.\n" -" \n" -" Each time it is invoked, getopts will place the next option in the\n" -" shell variable $name, initializing name if it does not exist, and\n" -" the index of the next argument to be processed into the shell\n" -" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" -" a shell script is invoked. When an option requires an argument,\n" -" getopts places that argument into the shell variable OPTARG.\n" -" \n" -" getopts reports errors in one of two ways. If the first character\n" -" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" -" this mode, no error messages are printed. If an invalid option is\n" -" seen, getopts places the option character found into OPTARG. If a\n" -" required argument is not found, getopts places a ':' into NAME and\n" -" sets OPTARG to the option character found. If getopts is not in\n" -" silent mode, and an invalid option is seen, getopts places '?' into\n" -" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" -" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" -" printed.\n" -" \n" -" If the shell variable OPTERR has the value 0, getopts disables the\n" -" printing of error messages, even if the first character of\n" -" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" -" \n" -" Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead.\n" -" \n" -" Exit Status:\n" -" Returns success if an option is found; fails if the end of options is\n" -" encountered or an error occurs." -msgstr "" - -#: builtins.c:668 -msgid "" -"Replace the shell with the given command.\n" -" \n" -" Execute COMMAND, replacing this shell with the specified program.\n" -" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " -"specified,\n" -" any redirections take effect in the current shell.\n" -" \n" -" Options:\n" -" -a name\tpass NAME as the zeroth argument to COMMAND\n" -" -c\t\texecute COMMAND with an empty environment\n" -" -l\t\tplace a dash in the zeroth argument to COMMAND\n" -" \n" -" If the command cannot be executed, a non-interactive shell exits, " -"unless\n" -" the shell option `execfail' is set.\n" -" \n" -" Exit Status:\n" -" Returns success unless COMMAND is not found or a redirection error " -"occurs." -msgstr "" - -#: builtins.c:689 -msgid "" -"Exit the shell.\n" -" \n" -" Exits the shell with a status of N. If N is omitted, the exit status\n" -" is that of the last command executed." -msgstr "" - -#: builtins.c:698 -msgid "" -"Exit a login shell.\n" -" \n" -" Exits a login shell with exit status N. Returns an error if not " -"executed\n" -" in a login shell." -msgstr "" - -#: builtins.c:708 -msgid "" -"Display or execute commands from the history list.\n" -" \n" -" fc is used to list or edit and re-execute commands from the history " -"list.\n" -" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" -" string, which means the most recent command beginning with that\n" -" string.\n" -" \n" -" Options:\n" -" -e ENAME\tselect which editor to use. Default is FCEDIT, then " -"EDITOR,\n" -" \t\tthen vi\n" -" -l \tlist lines instead of editing\n" -" -n\tomit line numbers when listing\n" -" -r\treverse the order of the lines (newest listed first)\n" -" \n" -" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" -" re-executed after the substitution OLD=NEW is performed.\n" -" \n" -" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" -" runs the last command beginning with `cc' and typing `r' re-executes\n" -" the last command.\n" -" \n" -" Exit Status:\n" -" Returns success or status of executed command; non-zero if an error " -"occurs." -msgstr "" - -#: builtins.c:738 -msgid "" -"Move job to the foreground.\n" -" \n" -" Place the job identified by JOB_SPEC in the foreground, making it the\n" -" current job. If JOB_SPEC is not present, the shell's notion of the\n" -" current job is used.\n" -" \n" -" Exit Status:\n" -" Status of command placed in foreground, or failure if an error occurs." -msgstr "" - -#: builtins.c:753 -msgid "" -"Move jobs to the background.\n" -" \n" -" Place the jobs identified by each JOB_SPEC in the background, as if " -"they\n" -" had been started with `&'. If JOB_SPEC is not present, the shell's " -"notion\n" -" of the current job is used.\n" -" \n" -" Exit Status:\n" -" Returns success unless job control is not enabled or an error occurs." -msgstr "" - -#: builtins.c:767 -msgid "" -"Remember or display program locations.\n" -" \n" -" Determine and remember the full pathname of each command NAME. If\n" -" no arguments are given, information about remembered commands is " -"displayed.\n" -" \n" -" Options:\n" -" -d\t\tforget the remembered location of each NAME\n" -" -l\t\tdisplay in a format that may be reused as input\n" -" -p pathname\tuse PATHNAME is the full pathname of NAME\n" -" -r\t\tforget all remembered locations\n" -" -t\t\tprint the remembered location of each NAME, preceding\n" -" \t\teach location with the corresponding NAME if multiple\n" -" \t\tNAMEs are given\n" -" Arguments:\n" -" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" -" \t\tof remembered commands.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is not found or an invalid option is given." -msgstr "" - -#: builtins.c:792 -msgid "" -"Display information about builtin commands.\n" -" \n" -" Displays brief summaries of builtin commands. If PATTERN is\n" -" specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise the list of help topics is printed.\n" -" \n" -" Options:\n" -" -d\toutput short description for each topic\n" -" -m\tdisplay usage in pseudo-manpage format\n" -" -s\toutput only a short usage synopsis for each topic matching\n" -" \tPATTERN\n" -" \n" -" Arguments:\n" -" PATTERN\tPattern specifiying a help topic\n" -" \n" -" Exit Status:\n" -" Returns success unless PATTERN is not found or an invalid option is " -"given." -msgstr "" - -#: builtins.c:816 -msgid "" -"Display or manipulate the history list.\n" -" \n" -" Display the history list with line numbers, prefixing each modified\n" -" entry with a `*'. An argument of N lists only the last N entries.\n" -" \n" -" Options:\n" -" -c\tclear the history list by deleting all of the entries\n" -" -d offset\tdelete the history entry at offset OFFSET.\n" -" \n" -" -a\tappend history lines from this session to the history file\n" -" -n\tread all history lines not already read from the history file\n" -" -r\tread the history file and append the contents to the history\n" -" \tlist\n" -" -w\twrite the current history to the history file\n" -" \tand append them to the history list\n" -" \n" -" -p\tperform history expansion on each ARG and display the result\n" -" \twithout storing it in the history list\n" -" -s\tappend the ARGs to the history list as a single entry\n" -" \n" -" If FILENAME is given, it is used as the history file. Otherwise,\n" -" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" \n" -" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" -" as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed " -"otherwise.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs." -msgstr "" - -#: builtins.c:852 -msgid "" -"Display status of jobs.\n" -" \n" -" Lists the active jobs. JOBSPEC restricts output to that job.\n" -" Without options, the status of all active jobs is displayed.\n" -" \n" -" Options:\n" -" -l\tlists process IDs in addition to the normal information\n" -" -n\tlist only processes that have changed status since the last\n" -" \tnotification\n" -" -p\tlists process IDs only\n" -" -r\trestrict output to running jobs\n" -" -s\trestrict output to stopped jobs\n" -" \n" -" If -x is supplied, COMMAND is run after all job specifications that\n" -" appear in ARGS have been replaced with the process ID of that job's\n" -" process group leader.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs.\n" -" If -x is used, returns the exit status of COMMAND." -msgstr "" - -#: builtins.c:879 -msgid "" -"Remove jobs from current shell.\n" -" \n" -" Removes each JOBSPEC argument from the table of active jobs. Without\n" -" any JOBSPECs, the shell uses its notion of the current job.\n" -" \n" -" Options:\n" -" -a\tremove all jobs if JOBSPEC is not supplied\n" -" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" -" \tshell receives a SIGHUP\n" -" -r\tremove only running jobs\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option or JOBSPEC is given." -msgstr "" - -#: builtins.c:898 -msgid "" -"Send a signal to a job.\n" -" \n" -" Send the processes identified by PID or JOBSPEC the signal named by\n" -" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" -" SIGTERM is assumed.\n" -" \n" -" Options:\n" -" -s sig\tSIG is a signal name\n" -" -n sig\tSIG is a signal number\n" -" -l\tlist the signal names; if arguments follow `-l' they are\n" -" \tassumed to be signal numbers for which names should be listed\n" -" \n" -" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" -" instead of process IDs, and allows processes to be killed if the limit\n" -" on processes that you can create is reached.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs." -msgstr "" - -#: builtins.c:921 -msgid "" -"Evaluate arithmetic expressions.\n" -" \n" -" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" -" fixed-width integers with no check for overflow, though division by 0\n" -" is trapped and flagged as an error. The following list of operators is\n" -" grouped into levels of equal-precedence operators. The levels are " -"listed\n" -" in order of decreasing precedence.\n" -" \n" -" \tid++, id--\tvariable post-increment, post-decrement\n" -" \t++id, --id\tvariable pre-increment, pre-decrement\n" -" \t-, +\t\tunary minus, plus\n" -" \t!, ~\t\tlogical and bitwise negation\n" -" \t**\t\texponentiation\n" -" \t*, /, %\t\tmultiplication, division, remainder\n" -" \t+, -\t\taddition, subtraction\n" -" \t<<, >>\t\tleft and right bitwise shifts\n" -" \t<=, >=, <, >\tcomparison\n" -" \t==, !=\t\tequality, inequality\n" -" \t&\t\tbitwise AND\n" -" \t^\t\tbitwise XOR\n" -" \t|\t\tbitwise OR\n" -" \t&&\t\tlogical AND\n" -" \t||\t\tlogical OR\n" -" \texpr ? expr : expr\n" -" \t\t\tconditional operator\n" -" \t=, *=, /=, %=,\n" -" \t+=, -=, <<=, >>=,\n" -" \t&=, ^=, |=\tassignment\n" -" \n" -" Shell variables are allowed as operands. The name of the variable\n" -" is replaced by its value (coerced to a fixed-width integer) within\n" -" an expression. The variable need not have its integer attribute\n" -" turned on to be used in an expression.\n" -" \n" -" Operators are evaluated in order of precedence. Sub-expressions in\n" -" parentheses are evaluated first and may override the precedence\n" -" rules above.\n" -" \n" -" Exit Status:\n" -" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." -msgstr "" - -#: builtins.c:966 -msgid "" -"Read a line from the standard input and split it into fields.\n" -" \n" -" Reads a single line from the standard input, or from file descriptor FD\n" -" if the -u option is supplied. The line is split into fields as with " -"word\n" -" splitting, and the first word is assigned to the first NAME, the second\n" -" word to the second NAME, and so on, with any leftover words assigned to\n" -" the last NAME. Only the characters found in $IFS are recognized as " -"word\n" -" delimiters.\n" -" \n" -" If no NAMEs are supplied, the line read is stored in the REPLY " -"variable.\n" -" \n" -" Options:\n" -" -a array\tassign the words read to sequential indices of the array\n" -" \t\tvariable ARRAY, starting at zero\n" -" -d delim\tcontinue until the first character of DELIM is read, rather\n" -" \t\tthan newline\n" -" -e\t\tuse Readline to obtain the line in an interactive shell\n" -" -i text\tUse TEXT as the initial text for Readline\n" -" -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" -" \t\tcharacters are read before the delimiter\n" -" -N nchars\treturn only after reading exactly NCHARS characters, " -"unless\n" -" \t\tEOF is encountered or read times out, ignoring any delimiter\n" -" -p prompt\toutput the string PROMPT without a trailing newline before\n" -" \t\tattempting to read\n" -" -r\t\tdo not allow backslashes to escape any characters\n" -" -s\t\tdo not echo input coming from a terminal\n" -" -t timeout\ttime out and return failure if a complete line of input " -"is\n" -" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" -" \t\tvariable is the default timeout. TIMEOUT may be a\n" -" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" -" \t\tif input is available on the specified file descriptor. The\n" -" \t\texit status is greater than 128 if the timeout is exceeded\n" -" -u fd\t\tread from file descriptor FD instead of the standard input\n" -" \n" -" Exit Status:\n" -" The return code is zero, unless end-of-file is encountered, read times " -"out,\n" -" or an invalid file descriptor is supplied as the argument to -u." -msgstr "" - -#: builtins.c:1009 -msgid "" -"Return from a shell function.\n" -" \n" -" Causes a function or sourced script to exit with the return value\n" -" specified by N. If N is omitted, the return status is that of the\n" -" last command executed within the function or script.\n" -" \n" -" Exit Status:\n" -" Returns N, or failure if the shell is not executing a function or script." -msgstr "" - -#: builtins.c:1022 -msgid "" -"Set or unset values of shell options and positional parameters.\n" -" \n" -" Change the value of shell attributes and positional parameters, or\n" -" display the names and values of shell variables.\n" -" \n" -" Options:\n" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status of\n" -" the last command to exit with a non-zero status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the Posix standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" -" \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given." -msgstr "" - -#: builtins.c:1104 -msgid "" -"Unset values and attributes of shell variables and functions.\n" -" \n" -" For each NAME, remove the corresponding variable or function.\n" -" \n" -" Options:\n" -" -f\ttreat each NAME as a shell function\n" -" -v\ttreat each NAME as a shell variable\n" -" \n" -" Without options, unset first tries to unset a variable, and if that " -"fails,\n" -" tries to unset a function.\n" -" \n" -" Some variables cannot be unset; also see `readonly'.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or a NAME is read-only." -msgstr "" - -#: builtins.c:1124 -msgid "" -"Set export attribute for shell variables.\n" -" \n" -" Marks each NAME for automatic export to the environment of subsequently\n" -" executed commands. If VALUE is supplied, assign VALUE before " -"exporting.\n" -" \n" -" Options:\n" -" -f\trefer to shell functions\n" -" -n\tremove the export property from each NAME\n" -" -p\tdisplay a list of all exported variables and functions\n" -" \n" -" An argument of `--' disables further option processing.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or NAME is invalid." -msgstr "" - -#: builtins.c:1143 -msgid "" -"Mark shell variables as unchangeable.\n" -" \n" -" Mark each NAME as read-only; the values of these NAMEs may not be\n" -" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" -" before marking as read-only.\n" -" \n" -" Options:\n" -" -a\trefer to indexed array variables\n" -" -A\trefer to associative array variables\n" -" -f\trefer to shell functions\n" -" -p\tdisplay a list of all readonly variables and functions\n" -" \n" -" An argument of `--' disables further option processing.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or NAME is invalid." -msgstr "" - -#: builtins.c:1164 -msgid "" -"Shift positional parameters.\n" -" \n" -" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" -" not given, it is assumed to be 1.\n" -" \n" -" Exit Status:\n" -" Returns success unless N is negative or greater than $#." -msgstr "" - -#: builtins.c:1176 builtins.c:1191 -msgid "" -"Execute commands from a file in the current shell.\n" -" \n" -" Read and execute commands from FILENAME in the current shell. The\n" -" entries in $PATH are used to find the directory containing FILENAME.\n" -" If any ARGUMENTS are supplied, they become the positional parameters\n" -" when FILENAME is executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed in FILENAME; fails if\n" -" FILENAME cannot be read." -msgstr "" - -#: builtins.c:1207 -msgid "" -"Suspend shell execution.\n" -" \n" -" Suspend the execution of this shell until it receives a SIGCONT signal.\n" -" Unless forced, login shells cannot be suspended.\n" -" \n" -" Options:\n" -" -f\tforce the suspend, even if the shell is a login shell\n" -" \n" -" Exit Status:\n" -" Returns success unless job control is not enabled or an error occurs." -msgstr "" - -#: builtins.c:1223 -msgid "" -"Evaluate conditional expression.\n" -" \n" -" Exits with a status of 0 (true) or 1 (false) depending on\n" -" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" -" expressions are often used to examine the status of a file. There\n" -" are string operators as well, and numeric comparison operators.\n" -" \n" -" File operators:\n" -" \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its `sticky' bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " -"read.\n" -" \n" -" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" -" modification date).\n" -" \n" -" FILE1 -ot FILE2 True if file1 is older than file2.\n" -" \n" -" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" -" \n" -" String operators:\n" -" \n" -" -z STRING True if string is empty.\n" -" \n" -" -n STRING\n" -" STRING True if string is not empty.\n" -" \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 lexicographically.\n" -" \n" -" Other operators:\n" -" \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" -" \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" -" \n" -" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" -" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2.\n" -" \n" -" Exit Status:\n" -" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" -" false or an invalid argument is given." -msgstr "" - -#: builtins.c:1299 -msgid "" -"Evaluate conditional expression.\n" -" \n" -" This is a synonym for the \"test\" builtin, but the last argument must\n" -" be a literal `]', to match the opening `['." -msgstr "" - -#: builtins.c:1308 -msgid "" -"Display process times.\n" -" \n" -" Prints the accumulated user and system times for the shell and all of " -"its\n" -" child processes.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" - -#: builtins.c:1320 -msgid "" -"Trap signals and other events.\n" -" \n" -" Defines and activates handlers to be run when the shell receives " -"signals\n" -" or other conditions.\n" -" \n" -" ARG is a command to be read and executed when the shell receives the\n" -" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" -" is supplied) or `-', each specified signal is reset to its original\n" -" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes.\n" -" \n" -" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " -"If\n" -" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" -" \n" -" If no arguments are supplied, trap prints the list of commands " -"associated\n" -" with each signal.\n" -" \n" -" Options:\n" -" -l\tprint a list of signal names and their corresponding numbers\n" -" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" -" \n" -" Each SIGNAL_SPEC is either a signal name in or a signal " -"number.\n" -" Signal names are case insensitive and the SIG prefix is optional. A\n" -" signal may be sent to the shell with \"kill -signal $$\".\n" -" \n" -" Exit Status:\n" -" Returns success unless a SIGSPEC is invalid or an invalid option is " -"given." -msgstr "" - -#: builtins.c:1352 -msgid "" -"Display information about command type.\n" -" \n" -" For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" -" \n" -" Options:\n" -" -a\tdisplay all locations containing an executable named NAME;\n" -" \tincludes aliases, builtins, and functions, if and only if\n" -" \tthe `-p' option is not also used\n" -" -f\tsuppress shell function lookup\n" -" -P\tforce a PATH search for each NAME, even if it is an alias,\n" -" \tbuiltin, or function, and returns the name of the disk file\n" -" \tthat would be executed\n" -" -p\treturns either the name of the disk file that would be executed,\n" -" \tor nothing if `type -t NAME' would not return `file'.\n" -" -t\toutput a single word which is one of `alias', `keyword',\n" -" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" -" \treserved word, shell function, shell builtin, disk file, or not\n" -" \tfound, respectively\n" -" \n" -" Arguments:\n" -" NAME\tCommand name to be interpreted.\n" -" \n" -" Exit Status:\n" -" Returns success if all of the NAMEs are found; fails if any are not " -"found." -msgstr "" - -#: builtins.c:1383 -msgid "" -"Modify shell resource limits.\n" -" \n" -" Provides control over the resources available to the shell and " -"processes\n" -" it creates, on systems that allow such control.\n" -" \n" -" Options:\n" -" -S\tuse the `soft' resource limit\n" -" -H\tuse the `hard' resource limit\n" -" -a\tall current limits are reported\n" -" -b\tthe socket buffer size\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -e\tthe maximum scheduling priority (`nice')\n" -" -f\tthe maximum size of files written by the shell and its children\n" -" -i\tthe maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q\tthe maximum number of bytes in POSIX message queues\n" -" -r\tthe maximum real-time scheduling priority\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x\tthe maximum number of file locks\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource; the\n" -" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" -" current soft limit, the current hard limit, and no limit, respectively.\n" -" Otherwise, the current value of the specified resource is printed. If\n" -" no option is given, then -f is assumed.\n" -" \n" -" Values are in 1024-byte increments, except for -t, which is in seconds,\n" -" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" -" number of processes.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1428 -msgid "" -"Display or set file mode mask.\n" -" \n" -" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" -" the current value of the mask.\n" -" \n" -" If MODE begins with a digit, it is interpreted as an octal number;\n" -" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" -" \n" -" Options:\n" -" -p\tif MODE is omitted, output in a form that may be reused as input\n" -" -S\tmakes the output symbolic; otherwise an octal number is output\n" -" \n" -" Exit Status:\n" -" Returns success unless MODE is invalid or an invalid option is given." -msgstr "" - -#: builtins.c:1448 -msgid "" -"Wait for job completion and return exit status.\n" -" \n" -" Waits for the process identified by ID, which may be a process ID or a\n" -" job specification, and reports its termination status. If ID is not\n" -" given, waits for all currently active child processes, and the return\n" -" status is zero. If ID is a a job specification, waits for all " -"processes\n" -" in the job's pipeline.\n" -" \n" -" Exit Status:\n" -" Returns the status of ID; fails if ID is invalid or an invalid option " -"is\n" -" given." -msgstr "" - -#: builtins.c:1466 -msgid "" -"Wait for process completion and return exit status.\n" -" \n" -" Waits for the specified process and reports its termination status. If\n" -" PID is not given, all currently active child processes are waited for,\n" -" and the return code is zero. PID must be a process ID.\n" -" \n" -" Exit Status:\n" -" Returns the status of ID; fails if ID is invalid or an invalid option " -"is\n" -" given." -msgstr "" - -#: builtins.c:1481 -msgid "" -"Execute commands for each member in a list.\n" -" \n" -" The `for' loop executes a sequence of commands for each member in a\n" -" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" -" assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1495 -msgid "" -"Arithmetic for loop.\n" -" \n" -" Equivalent to\n" -" \t(( EXP1 ))\n" -" \twhile (( EXP2 )); do\n" -" \t\tCOMMANDS\n" -" \t\t(( EXP3 ))\n" -" \tdone\n" -" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1513 -msgid "" -"Select words from a list and execute commands.\n" -" \n" -" The WORDS are expanded, generating a list of words. The\n" -" set of expanded words is printed on the standard error, each\n" -" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" -" is assumed. The PS3 prompt is then displayed and a line read\n" -" from the standard input. If the line consists of the number\n" -" corresponding to one of the displayed words, then NAME is set\n" -" to that word. If the line is empty, WORDS and the prompt are\n" -" redisplayed. If EOF is read, the command completes. Any other\n" -" value read causes NAME to be set to null. The line read is saved\n" -" in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1534 -msgid "" -"Report time consumed by pipeline's execution.\n" -" \n" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" -" and system CPU time spent executing PIPELINE when it terminates.\n" -" \n" -" Options:\n" -" -p\tprint the timing summary in the portable Posix format\n" -" \n" -" The value of the TIMEFORMAT variable is used as the output format.\n" -" \n" -" Exit Status:\n" -" The return status is the return status of PIPELINE." -msgstr "" - -#: builtins.c:1551 -msgid "" -"Execute commands based on pattern matching.\n" -" \n" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" `|' is used to separate multiple patterns.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1563 -msgid "" -"Execute commands based on conditional.\n" -" \n" -" The `if COMMANDS' list is executed. If its exit status is zero, then " -"the\n" -" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " -"is\n" -" executed in turn, and if its exit status is zero, the corresponding\n" -" `then COMMANDS' list is executed and the if command completes. " -"Otherwise,\n" -" the `else COMMANDS' list is executed, if present. The exit status of " -"the\n" -" entire construct is the exit status of the last command executed, or " -"zero\n" -" if no condition tested true.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1580 -msgid "" -"Execute commands as long as a test succeeds.\n" -" \n" -" Expand and execute COMMANDS as long as the final command in the\n" -" `while' COMMANDS has an exit status of zero.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1592 -msgid "" -"Execute commands as long as a test does not succeed.\n" -" \n" -" Expand and execute COMMANDS as long as the final command in the\n" -" `until' COMMANDS has an exit status which is not zero.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1604 -msgid "" -"Create a coprocess named NAME.\n" -" \n" -" Execute COMMAND asynchronously, with the standard output and standard\n" -" input of the command connected via a pipe to file descriptors assigned\n" -" to indices 0 and 1 of an array variable NAME in the executing shell.\n" -" The default NAME is \"COPROC\".\n" -" \n" -" Exit Status:\n" -" Returns the exit status of COMMAND." -msgstr "" - -#: builtins.c:1618 -msgid "" -"Define shell function.\n" -" \n" -" Create a shell function named NAME. When invoked as a simple command,\n" -" NAME runs COMMANDs in the calling shell's context. When NAME is " -"invoked,\n" -" the arguments are passed to the function as $1...$n, and the function's\n" -" name is in $FUNCNAME.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is readonly." -msgstr "" - -#: builtins.c:1632 -msgid "" -"Group commands as a unit.\n" -" \n" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1644 -msgid "" -"Resume job in foreground.\n" -" \n" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" -" stopped or background job. JOB_SPEC can specify either a job name\n" -" or a job number. Following JOB_SPEC with a `&' places the job in\n" -" the background, as if the job specification had been supplied as an\n" -" argument to `bg'.\n" -" \n" -" Exit Status:\n" -" Returns the status of the resumed job." -msgstr "" - -#: builtins.c:1659 -msgid "" -"Evaluate arithmetic expression.\n" -" \n" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to \"let EXPRESSION\".\n" -" \n" -" Exit Status:\n" -" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." -msgstr "" - -#: builtins.c:1671 -msgid "" -"Execute conditional command.\n" -" \n" -" Returns a status of 0 or 1 depending on the evaluation of the " -"conditional\n" -" expression EXPRESSION. Expressions are composed of the same primaries " -"used\n" -" by the `test' builtin, and may be combined using the following " -"operators:\n" -" \n" -" ( EXPRESSION )\tReturns the value of EXPRESSION\n" -" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" -" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" -" \n" -" When the `==' and `!=' operators are used, the string to the right of\n" -" the operator is used as a pattern and pattern matching is performed.\n" -" When the `=~' operator is used, the string to the right of the operator\n" -" is matched as a regular expression.\n" -" \n" -" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value.\n" -" \n" -" Exit Status:\n" -" 0 or 1 depending on value of EXPRESSION." -msgstr "" - -#: builtins.c:1697 -msgid "" -"Common shell variable names and usage.\n" -" \n" -" BASH_VERSION\tVersion information for this Bash.\n" -" CDPATH\tA colon-separated list of directories to search\n" -" \t\tfor directories given as arguments to `cd'.\n" -" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" -" \t\tbe ignored by pathname expansion.\n" -" HISTFILE\tThe name of the file where your command history is stored.\n" -" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" -" HISTSIZE\tThe maximum number of history lines that a running\n" -" \t\tshell can access.\n" -" HOME\tThe complete pathname to your login directory.\n" -" HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" -" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" -" \t\tcharacter as the sole input. If set, then the value\n" -" \t\tof it is the number of EOF characters that can be seen\n" -" \t\tin a row on an empty line before the shell will exit\n" -" \t\t(default 10). When unset, EOF signifies the end of input.\n" -" MACHTYPE\tA string describing the current system Bash is running on.\n" -" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" -" MAILPATH\tA colon-separated list of filenames which Bash checks\n" -" \t\tfor new mail.\n" -" OSTYPE\tThe version of Unix this version of Bash is running on.\n" -" PATH\tA colon-separated list of directories to search when\n" -" \t\tlooking for commands.\n" -" PROMPT_COMMAND\tA command to be executed before the printing of each\n" -" \t\tprimary prompt.\n" -" PS1\t\tThe primary prompt string.\n" -" PS2\t\tThe secondary prompt string.\n" -" PWD\t\tThe full pathname of the current directory.\n" -" SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM\tThe name of the current terminal type.\n" -" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" -" \t\t`time' reserved word.\n" -" auto_resume\tNon-null means a command word appearing on a line by\n" -" \t\titself is first looked for in the list of currently\n" -" \t\tstopped jobs. If found there, that job is foregrounded.\n" -" \t\tA value of `exact' means that the command word must\n" -" \t\texactly match a command in the list of stopped jobs. A\n" -" \t\tvalue of `substring' means that the command word must\n" -" \t\tmatch a substring of the job. Any other value means that\n" -" \t\tthe command must be a prefix of a stopped job.\n" -" histchars\tCharacters controlling history expansion and quick\n" -" \t\tsubstitution. The first character is the history\n" -" \t\tsubstitution character, usually `!'. The second is\n" -" \t\tthe `quick substitution' character, usually `^'. The\n" -" \t\tthird is the `history comment' character, usually `#'.\n" -" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" -" \t\tcommands should be saved on the history list.\n" -msgstr "" - -#: builtins.c:1754 -msgid "" -"Add directories to stack.\n" -" \n" -" Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when adding\n" -" \tdirectories to the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" dir\tAdds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" The `dirs' builtin displays the directory stack.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid argument is supplied or the directory\n" -" change fails." -msgstr "" - -#: builtins.c:1788 -msgid "" -"Remove directories from stack.\n" -" \n" -" Removes entries from the directory stack. With no arguments, removes\n" -" the top directory from the stack, and changes to the new top directory.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when removing\n" -" \tdirectories from the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRemoves the Nth entry counting from the left of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd +0'\n" -" \tremoves the first directory, `popd +1' the second.\n" -" \n" -" -N\tRemoves the Nth entry counting from the right of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd -0'\n" -" \tremoves the last directory, `popd -1' the next to last.\n" -" \n" -" The `dirs' builtin displays the directory stack.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid argument is supplied or the directory\n" -" change fails." -msgstr "" - -#: builtins.c:1818 -msgid "" -"Display directory stack.\n" -" \n" -" Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the `pushd' command; you can get\n" -" back up through the list with the `popd' command.\n" -" \n" -" Options:\n" -" -c\tclear the directory stack by deleting all of the elements\n" -" -l\tdo not print tilde-prefixed versions of directories relative\n" -" \tto your home directory\n" -" -p\tprint the directory stack with one entry per line\n" -" -v\tprint the directory stack with one entry per line prefixed\n" -" \twith its position in the stack\n" -" \n" -" Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1847 -msgid "" -"Set and unset shell options.\n" -" \n" -" Change the setting of each shell option OPTNAME. Without any option\n" -" arguments, list all shell options with an indication of whether or not " -"each\n" -" is set.\n" -" \n" -" Options:\n" -" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" -" -p\tprint each shell option with an indication of its status\n" -" -q\tsuppress output\n" -" -s\tenable (set) each OPTNAME\n" -" -u\tdisable (unset) each OPTNAME\n" -" \n" -" Exit Status:\n" -" Returns success if OPTNAME is enabled; fails if an invalid option is\n" -" given or OPTNAME is disabled." -msgstr "" - -#: builtins.c:1868 -msgid "" -"Formats and prints ARGUMENTS under control of the FORMAT.\n" -" \n" -" Options:\n" -" -v var\tassign the output to shell variable VAR rather than\n" -" \t\tdisplay it on the standard output\n" -" \n" -" FORMAT is a character string which contains three types of objects: " -"plain\n" -" characters, which are simply copied to standard output; character " -"escape\n" -" sequences, which are converted and copied to the standard output; and\n" -" format specifications, each of which causes printing of the next " -"successive\n" -" argument.\n" -" \n" -" In addition to the standard format specifications described in printf" -"(1)\n" -" and printf(3), printf interprets:\n" -" \n" -" %b\texpand backslash escape sequences in the corresponding argument\n" -" %q\tquote the argument in a way that can be reused as shell input\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or a write or " -"assignment\n" -" error occurs." -msgstr "" - -#: builtins.c:1895 -msgid "" -"Specify how arguments are to be completed by Readline.\n" -" \n" -" For each NAME, specify how arguments are to be completed. If no " -"options\n" -" are supplied, existing completion specifications are printed in a way " -"that\n" -" allows them to be reused as input.\n" -" \n" -" Options:\n" -" -p\tprint existing completion specifications in a reusable format\n" -" -r\tremove a completion specification for each NAME, or, if no\n" -" \tNAMEs are supplied, all completion specifications\n" -" -D\tapply the completions and actions as the default for commands\n" -" \twithout any specific completion defined\n" -" -E\tapply the completions and actions to \"empty\" commands --\n" -" \tcompletion attempted on a blank line\n" -" \n" -" When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above. The -D option takes\n" -" precedence over -E.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1923 -msgid "" -"Display possible completions depending on the options.\n" -" \n" -" Intended to be used from within a shell function generating possible\n" -" completions. If the optional WORD argument is supplied, matches " -"against\n" -" WORD are generated.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1938 -msgid "" -"Modify or display completion options.\n" -" \n" -" Modify the completion options for each NAME, or, if no NAMEs are " -"supplied,\n" -" the completion currently begin executed. If no OPTIONs are givenm, " -"print\n" -" the completion options for each NAME or the current completion " -"specification.\n" -" \n" -" Options:\n" -" \t-o option\tSet completion option OPTION for each NAME\n" -" \t-D\t\tChange options for the \"default\" command completion\n" -" \t-E\t\tChange options for the \"empty\" command completion\n" -" \n" -" Using `+o' instead of `-o' turns off the specified option.\n" -" \n" -" Arguments:\n" -" \n" -" Each NAME refers to a command for which a completion specification must\n" -" have previously been defined using the `complete' builtin. If no NAMEs\n" -" are supplied, compopt must be called by a function currently generating\n" -" completions, and the options for that currently-executing completion\n" -" generator are modified.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or NAME does not\n" -" have a completion specification defined." -msgstr "" - -#: builtins.c:1968 -msgid "" -"Read lines from the standard input into an indexed array variable.\n" -" \n" -" Read lines from the standard input into the indexed array variable " -"ARRAY, or\n" -" from file descriptor FD if the -u option is supplied. The variable " -"MAPFILE\n" -" is the default ARRAY.\n" -" \n" -" Options:\n" -" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " -"copied.\n" -" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " -"index is 0.\n" -" -s count \tDiscard the first COUNT lines read.\n" -" -t\t\tRemove a trailing newline from each line read.\n" -" -u fd\t\tRead lines from file descriptor FD instead of the standard " -"input.\n" -" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" -" -c quantum\tSpecify the number of lines read between each call to " -"CALLBACK.\n" -" \n" -" Arguments:\n" -" ARRAY\t\tArray variable name to use for file data.\n" -" \n" -" If -C is supplied without -c, the default quantum is 5000. When\n" -" CALLBACK is evaluated, it is supplied the index of the next array\n" -" element to be assigned as an additional argument.\n" -" \n" -" If not supplied with an explicit origin, mapfile will clear ARRAY " -"before\n" -" assigning to it.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly " -"or\n" -" not an indexed array." -msgstr "" - -#: builtins.c:2001 -msgid "" -"Read lines from a file into an array variable.\n" -" \n" -" A synonym for `mapfile'." -msgstr "" diff --git a/po/bash-4.2.pot b/po/bash-4.2.pot deleted file mode 100644 index e54dabd4b..000000000 --- a/po/bash-4.2.pot +++ /dev/null @@ -1,3944 +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. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-28 22:09-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" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" - -#: arrayfunc.c:50 -msgid "bad array subscript" -msgstr "" - -#: arrayfunc.c:313 builtins/declare.def:487 -#, c-format -msgid "%s: cannot convert indexed to associative array" -msgstr "" - -#: arrayfunc.c:480 -#, c-format -msgid "%s: invalid associative array key" -msgstr "" - -#: arrayfunc.c:482 -#, c-format -msgid "%s: cannot assign to non-numeric index" -msgstr "" - -#: arrayfunc.c:518 -#, c-format -msgid "%s: %s: must use subscript when assigning associative array" -msgstr "" - -#: bashhist.c:387 -#, c-format -msgid "%s: cannot create: %s" -msgstr "" - -#: bashline.c:3498 -msgid "bash_execute_unix_command: cannot find keymap for command" -msgstr "" - -#: bashline.c:3584 -#, c-format -msgid "%s: first non-whitespace character is not `\"'" -msgstr "" - -#: bashline.c:3613 -#, c-format -msgid "no closing `%c' in %s" -msgstr "" - -#: bashline.c:3647 -#, c-format -msgid "%s: missing colon separator" -msgstr "" - -#: builtins/alias.def:132 -#, c-format -msgid "`%s': invalid alias name" -msgstr "" - -#: builtins/bind.def:120 builtins/bind.def:123 -msgid "line editing not enabled" -msgstr "" - -#: builtins/bind.def:206 -#, c-format -msgid "`%s': invalid keymap name" -msgstr "" - -#: builtins/bind.def:245 -#, c-format -msgid "%s: cannot read: %s" -msgstr "" - -#: builtins/bind.def:260 -#, c-format -msgid "`%s': cannot unbind" -msgstr "" - -#: builtins/bind.def:295 builtins/bind.def:325 -#, c-format -msgid "`%s': unknown function name" -msgstr "" - -#: builtins/bind.def:303 -#, c-format -msgid "%s is not bound to any keys.\n" -msgstr "" - -#: builtins/bind.def:307 -#, c-format -msgid "%s can be invoked via " -msgstr "" - -#: builtins/break.def:77 builtins/break.def:117 -msgid "loop count" -msgstr "" - -#: builtins/break.def:137 -msgid "only meaningful in a `for', `while', or `until' loop" -msgstr "" - -#: builtins/caller.def:133 -msgid "" -"Returns the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns " -msgstr "" - -#: builtins/cd.def:235 -msgid "HOME not set" -msgstr "" - -#: builtins/cd.def:247 -msgid "OLDPWD not set" -msgstr "" - -#: builtins/common.c:101 -#, c-format -msgid "line %d: " -msgstr "" - -#: builtins/common.c:139 error.c:261 -#, c-format -msgid "warning: " -msgstr "" - -#: builtins/common.c:153 -#, c-format -msgid "%s: usage: " -msgstr "" - -#: builtins/common.c:166 test.c:832 -msgid "too many arguments" -msgstr "" - -#: builtins/common.c:191 shell.c:500 shell.c:782 -#, c-format -msgid "%s: option requires an argument" -msgstr "" - -#: builtins/common.c:198 -#, c-format -msgid "%s: numeric argument required" -msgstr "" - -#: builtins/common.c:205 -#, c-format -msgid "%s: not found" -msgstr "" - -#: builtins/common.c:214 shell.c:795 -#, c-format -msgid "%s: invalid option" -msgstr "" - -#: builtins/common.c:221 -#, c-format -msgid "%s: invalid option name" -msgstr "" - -#: builtins/common.c:228 general.c:231 general.c:236 -#, c-format -msgid "`%s': not a valid identifier" -msgstr "" - -#: builtins/common.c:238 -msgid "invalid octal number" -msgstr "" - -#: builtins/common.c:240 -msgid "invalid hex number" -msgstr "" - -#: builtins/common.c:242 expr.c:1362 -msgid "invalid number" -msgstr "" - -#: builtins/common.c:250 -#, c-format -msgid "%s: invalid signal specification" -msgstr "" - -#: builtins/common.c:257 -#, c-format -msgid "`%s': not a pid or valid job spec" -msgstr "" - -#: builtins/common.c:264 error.c:454 -#, c-format -msgid "%s: readonly variable" -msgstr "" - -#: builtins/common.c:272 -#, c-format -msgid "%s: %s out of range" -msgstr "" - -#: builtins/common.c:272 builtins/common.c:274 -msgid "argument" -msgstr "" - -#: builtins/common.c:274 -#, c-format -msgid "%s out of range" -msgstr "" - -#: builtins/common.c:282 -#, c-format -msgid "%s: no such job" -msgstr "" - -#: builtins/common.c:290 -#, c-format -msgid "%s: no job control" -msgstr "" - -#: builtins/common.c:292 -msgid "no job control" -msgstr "" - -#: builtins/common.c:302 -#, c-format -msgid "%s: restricted" -msgstr "" - -#: builtins/common.c:304 -msgid "restricted" -msgstr "" - -#: builtins/common.c:312 -#, c-format -msgid "%s: not a shell builtin" -msgstr "" - -#: builtins/common.c:321 -#, c-format -msgid "write error: %s" -msgstr "" - -#: builtins/common.c:329 -#, c-format -msgid "error setting terminal attributes: %s" -msgstr "" - -#: builtins/common.c:331 -#, c-format -msgid "error getting terminal attributes: %s" -msgstr "" - -#: builtins/common.c:563 -#, c-format -msgid "%s: error retrieving current directory: %s: %s\n" -msgstr "" - -#: builtins/common.c:629 builtins/common.c:631 -#, c-format -msgid "%s: ambiguous job spec" -msgstr "" - -#: builtins/complete.def:276 -#, c-format -msgid "%s: invalid action name" -msgstr "" - -#: builtins/complete.def:449 builtins/complete.def:644 -#: builtins/complete.def:853 -#, c-format -msgid "%s: no completion specification" -msgstr "" - -#: builtins/complete.def:696 -msgid "warning: -F option may not work as you expect" -msgstr "" - -#: builtins/complete.def:698 -msgid "warning: -C option may not work as you expect" -msgstr "" - -#: builtins/complete.def:826 -msgid "not currently executing completion function" -msgstr "" - -#: builtins/declare.def:124 -msgid "can only be used in a function" -msgstr "" - -#: builtins/declare.def:366 -msgid "cannot use `-f' to make functions" -msgstr "" - -#: builtins/declare.def:378 execute_cmd.c:5105 -#, c-format -msgid "%s: readonly function" -msgstr "" - -#: builtins/declare.def:474 -#, c-format -msgid "%s: cannot destroy array variables in this way" -msgstr "" - -#: builtins/declare.def:481 -#, c-format -msgid "%s: cannot convert associative to indexed array" -msgstr "" - -#: builtins/enable.def:137 builtins/enable.def:145 -msgid "dynamic loading not available" -msgstr "" - -#: builtins/enable.def:312 -#, c-format -msgid "cannot open shared object %s: %s" -msgstr "" - -#: builtins/enable.def:335 -#, c-format -msgid "cannot find %s in shared object %s: %s" -msgstr "" - -#: builtins/enable.def:459 -#, c-format -msgid "%s: not dynamically loaded" -msgstr "" - -#: builtins/enable.def:474 -#, c-format -msgid "%s: cannot delete: %s" -msgstr "" - -#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961 -#: shell.c:1457 -#, c-format -msgid "%s: is a directory" -msgstr "" - -#: builtins/evalfile.c:140 -#, c-format -msgid "%s: not a regular file" -msgstr "" - -#: builtins/evalfile.c:148 -#, c-format -msgid "%s: file is too large" -msgstr "" - -#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032 -#: shell.c:1467 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "" - -#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228 -#, c-format -msgid "%s: cannot execute: %s" -msgstr "" - -#: builtins/exit.def:65 -#, c-format -msgid "logout\n" -msgstr "" - -#: builtins/exit.def:88 -msgid "not login shell: use `exit'" -msgstr "" - -#: builtins/exit.def:120 -#, c-format -msgid "There are stopped jobs.\n" -msgstr "" - -#: builtins/exit.def:122 -#, c-format -msgid "There are running jobs.\n" -msgstr "" - -#: builtins/fc.def:262 -msgid "no command found" -msgstr "" - -#: builtins/fc.def:312 builtins/fc.def:359 -msgid "history specification" -msgstr "" - -#: builtins/fc.def:380 -#, c-format -msgid "%s: cannot open temp file: %s" -msgstr "" - -#: builtins/fg_bg.def:149 builtins/jobs.def:282 -msgid "current" -msgstr "" - -#: builtins/fg_bg.def:158 -#, c-format -msgid "job %d started without job control" -msgstr "" - -#: builtins/getopt.c:110 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "" - -#: builtins/getopt.c:111 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "" - -#: builtins/hash.def:92 -msgid "hashing disabled" -msgstr "" - -#: builtins/hash.def:138 -#, c-format -msgid "%s: hash table empty\n" -msgstr "" - -#: builtins/hash.def:245 -#, c-format -msgid "hits\tcommand\n" -msgstr "" - -#: builtins/help.def:130 -#, c-format -msgid "Shell commands matching keyword `" -msgid_plural "Shell commands matching keywords `" -msgstr[0] "" -msgstr[1] "" - -#: builtins/help.def:168 -#, c-format -msgid "" -"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." -msgstr "" - -#: builtins/help.def:185 -#, c-format -msgid "%s: cannot open: %s" -msgstr "" - -#: builtins/help.def:337 -#, c-format -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:154 -msgid "cannot use more than one of -anrw" -msgstr "" - -#: builtins/history.def:186 -msgid "history position" -msgstr "" - -#: builtins/history.def:365 -#, c-format -msgid "%s: history expansion failed" -msgstr "" - -#: builtins/inlib.def:71 -#, c-format -msgid "%s: inlib failed" -msgstr "" - -#: builtins/jobs.def:109 -msgid "no other options allowed with `-x'" -msgstr "" - -#: builtins/kill.def:198 -#, c-format -msgid "%s: arguments must be process or job IDs" -msgstr "" - -#: builtins/kill.def:261 -msgid "Unknown error" -msgstr "" - -#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567 -msgid "expression expected" -msgstr "" - -#: builtins/mapfile.def:172 -#, c-format -msgid "%s: not an indexed array" -msgstr "" - -#: builtins/mapfile.def:256 builtins/read.def:279 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "" - -#: builtins/mapfile.def:264 builtins/read.def:286 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "" - -#: builtins/mapfile.def:273 builtins/mapfile.def:311 -#, c-format -msgid "%s: invalid line count" -msgstr "" - -#: builtins/mapfile.def:284 -#, c-format -msgid "%s: invalid array origin" -msgstr "" - -#: builtins/mapfile.def:301 -#, c-format -msgid "%s: invalid callback quantum" -msgstr "" - -#: builtins/mapfile.def:333 -msgid "empty array variable name" -msgstr "" - -#: builtins/mapfile.def:354 -msgid "array variable support required" -msgstr "" - -#: builtins/printf.def:394 -#, c-format -msgid "`%s': missing format character" -msgstr "" - -#: builtins/printf.def:448 -#, c-format -msgid "`%c': invalid time format specification" -msgstr "" - -#: builtins/printf.def:635 -#, c-format -msgid "`%c': invalid format character" -msgstr "" - -#: builtins/printf.def:662 -#, c-format -msgid "warning: %s: %s" -msgstr "" - -#: builtins/printf.def:840 -msgid "missing hex digit for \\x" -msgstr "" - -#: builtins/printf.def:855 -#, c-format -msgid "missing unicode digit for \\%c" -msgstr "" - -#: builtins/pushd.def:195 -msgid "no other directory" -msgstr "" - -#: builtins/pushd.def:462 -msgid "" -msgstr "" - -#: builtins/pushd.def:506 -msgid "directory stack empty" -msgstr "" - -#: builtins/pushd.def:508 -msgid "directory stack index" -msgstr "" - -#: builtins/pushd.def:683 -msgid "" -"Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the `pushd' command; you can get\n" -" back up through the list with the `popd' command.\n" -" \n" -" Options:\n" -" -c\tclear the directory stack by deleting all of the elements\n" -" -l\tdo not print tilde-prefixed versions of directories relative\n" -" \tto your home directory\n" -" -p\tprint the directory stack with one entry per line\n" -" -v\tprint the directory stack with one entry per line prefixed\n" -" \twith its position in the stack\n" -" \n" -" Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" -"\tdirs when invoked without options, starting with zero." -msgstr "" - -#: builtins/pushd.def:705 -msgid "" -"Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when adding\n" -" \tdirectories to the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" dir\tAdds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" The `dirs' builtin displays the directory stack." -msgstr "" - -#: builtins/pushd.def:730 -msgid "" -"Removes entries from the directory stack. With no arguments, removes\n" -" the top directory from the stack, and changes to the new top directory.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when removing\n" -" \tdirectories from the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRemoves the Nth entry counting from the left of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd +0'\n" -" \tremoves the first directory, `popd +1' the second.\n" -" \n" -" -N\tRemoves the Nth entry counting from the right of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd -0'\n" -" \tremoves the last directory, `popd -1' the next to last.\n" -" \n" -" The `dirs' builtin displays the directory stack." -msgstr "" - -#: builtins/read.def:252 -#, c-format -msgid "%s: invalid timeout specification" -msgstr "" - -#: builtins/read.def:588 -#, c-format -msgid "read error: %d: %s" -msgstr "" - -#: builtins/return.def:73 -msgid "can only `return' from a function or sourced script" -msgstr "" - -#: builtins/set.def:771 -msgid "cannot simultaneously unset a function and a variable" -msgstr "" - -#: builtins/set.def:808 -#, c-format -msgid "%s: cannot unset" -msgstr "" - -#: builtins/set.def:815 -#, c-format -msgid "%s: cannot unset: readonly %s" -msgstr "" - -#: builtins/set.def:826 -#, c-format -msgid "%s: not an array variable" -msgstr "" - -#: builtins/setattr.def:186 -#, c-format -msgid "%s: not a function" -msgstr "" - -#: builtins/shift.def:71 builtins/shift.def:77 -msgid "shift count" -msgstr "" - -#: builtins/shopt.def:264 -msgid "cannot set and unset shell options simultaneously" -msgstr "" - -#: builtins/shopt.def:329 -#, c-format -msgid "%s: invalid shell option name" -msgstr "" - -#: builtins/source.def:130 -msgid "filename argument required" -msgstr "" - -#: builtins/source.def:155 -#, c-format -msgid "%s: file not found" -msgstr "" - -#: builtins/suspend.def:101 -msgid "cannot suspend" -msgstr "" - -#: builtins/suspend.def:111 -msgid "cannot suspend a login shell" -msgstr "" - -#: builtins/type.def:234 -#, c-format -msgid "%s is aliased to `%s'\n" -msgstr "" - -#: builtins/type.def:255 -#, c-format -msgid "%s is a shell keyword\n" -msgstr "" - -#: builtins/type.def:274 -#, c-format -msgid "%s is a function\n" -msgstr "" - -#: builtins/type.def:296 -#, c-format -msgid "%s is a shell builtin\n" -msgstr "" - -#: builtins/type.def:317 builtins/type.def:391 -#, c-format -msgid "%s is %s\n" -msgstr "" - -#: builtins/type.def:337 -#, c-format -msgid "%s is hashed (%s)\n" -msgstr "" - -#: builtins/ulimit.def:376 -#, c-format -msgid "%s: invalid limit argument" -msgstr "" - -#: builtins/ulimit.def:402 -#, c-format -msgid "`%c': bad command" -msgstr "" - -#: builtins/ulimit.def:431 -#, c-format -msgid "%s: cannot get limit: %s" -msgstr "" - -#: builtins/ulimit.def:457 -msgid "limit" -msgstr "" - -#: builtins/ulimit.def:469 builtins/ulimit.def:769 -#, c-format -msgid "%s: cannot modify limit: %s" -msgstr "" - -#: builtins/umask.def:118 -msgid "octal number" -msgstr "" - -#: builtins/umask.def:231 -#, c-format -msgid "`%c': invalid symbolic mode operator" -msgstr "" - -#: builtins/umask.def:286 -#, c-format -msgid "`%c': invalid symbolic mode character" -msgstr "" - -#: error.c:90 error.c:321 error.c:323 error.c:325 -msgid " line " -msgstr "" - -#: error.c:165 -#, c-format -msgid "last command: %s\n" -msgstr "" - -#: error.c:173 -#, c-format -msgid "Aborting..." -msgstr "" - -#: error.c:406 -msgid "unknown command error" -msgstr "" - -#: error.c:407 -msgid "bad command type" -msgstr "" - -#: error.c:408 -msgid "bad connector" -msgstr "" - -#: error.c:409 -msgid "bad jump" -msgstr "" - -#: error.c:447 -#, c-format -msgid "%s: unbound variable" -msgstr "" - -#: eval.c:181 -#, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "" - -#: execute_cmd.c:504 -#, c-format -msgid "cannot redirect standard input from /dev/null: %s" -msgstr "" - -#: execute_cmd.c:1168 -#, c-format -msgid "TIMEFORMAT: `%c': invalid format character" -msgstr "" - -#: execute_cmd.c:2121 -msgid "pipe error" -msgstr "" - -#: execute_cmd.c:4640 -#, c-format -msgid "%s: restricted: cannot specify `/' in command names" -msgstr "" - -#: execute_cmd.c:4735 -#, c-format -msgid "%s: command not found" -msgstr "" - -#: execute_cmd.c:4959 -#, c-format -msgid "%s: %s" -msgstr "" - -#: execute_cmd.c:4995 -#, c-format -msgid "%s: %s: bad interpreter" -msgstr "" - -#: execute_cmd.c:5144 -#, c-format -msgid "cannot duplicate fd %d to fd %d" -msgstr "" - -#: expr.c:256 -msgid "expression recursion level exceeded" -msgstr "" - -#: expr.c:280 -msgid "recursion stack underflow" -msgstr "" - -#: expr.c:422 -msgid "syntax error in expression" -msgstr "" - -#: expr.c:463 -msgid "attempted assignment to non-variable" -msgstr "" - -#: expr.c:486 expr.c:491 expr.c:807 -msgid "division by 0" -msgstr "" - -#: expr.c:517 -msgid "bug: bad expassign token" -msgstr "" - -#: expr.c:564 -msgid "`:' expected for conditional expression" -msgstr "" - -#: expr.c:832 -msgid "exponent less than 0" -msgstr "" - -#: expr.c:887 -msgid "identifier expected after pre-increment or pre-decrement" -msgstr "" - -#: expr.c:910 -msgid "missing `)'" -msgstr "" - -#: expr.c:959 expr.c:1282 -msgid "syntax error: operand expected" -msgstr "" - -#: expr.c:1284 -msgid "syntax error: invalid arithmetic operator" -msgstr "" - -#: expr.c:1308 -#, c-format -msgid "%s%s%s: %s (error token is \"%s\")" -msgstr "" - -#: expr.c:1366 -msgid "invalid arithmetic base" -msgstr "" - -#: expr.c:1386 -msgid "value too great for base" -msgstr "" - -#: expr.c:1435 -#, c-format -msgid "%s: expression error\n" -msgstr "" - -#: general.c:61 -msgid "getcwd: cannot access parent directories" -msgstr "" - -#: input.c:94 subst.c:5082 -#, c-format -msgid "cannot reset nodelay mode for fd %d" -msgstr "" - -#: input.c:260 -#, c-format -msgid "cannot allocate new file descriptor for bash input from fd %d" -msgstr "" - -#: input.c:268 -#, c-format -msgid "save_bash_input: buffer already exists for new fd %d" -msgstr "" - -#: jobs.c:468 -msgid "start_pipeline: pgrp pipe" -msgstr "" - -#: jobs.c:889 -#, c-format -msgid "forked pid %d appears in running job %d" -msgstr "" - -#: jobs.c:1007 -#, c-format -msgid "deleting stopped job %d with process group %ld" -msgstr "" - -#: jobs.c:1112 -#, c-format -msgid "add_process: process %5ld (%s) in the_pipeline" -msgstr "" - -#: jobs.c:1115 -#, c-format -msgid "add_process: pid %5ld (%s) marked as still alive" -msgstr "" - -#: jobs.c:1430 -#, c-format -msgid "describe_pid: %ld: no such pid" -msgstr "" - -#: jobs.c:1445 -#, c-format -msgid "Signal %d" -msgstr "" - -#: jobs.c:1459 jobs.c:1484 -msgid "Done" -msgstr "" - -#: jobs.c:1464 siglist.c:123 -msgid "Stopped" -msgstr "" - -#: jobs.c:1468 -#, c-format -msgid "Stopped(%s)" -msgstr "" - -#: jobs.c:1472 -msgid "Running" -msgstr "" - -#: jobs.c:1486 -#, c-format -msgid "Done(%d)" -msgstr "" - -#: jobs.c:1488 -#, c-format -msgid "Exit %d" -msgstr "" - -#: jobs.c:1491 -msgid "Unknown status" -msgstr "" - -#: jobs.c:1578 -#, c-format -msgid "(core dumped) " -msgstr "" - -#: jobs.c:1597 -#, c-format -msgid " (wd: %s)" -msgstr "" - -#: jobs.c:1805 -#, c-format -msgid "child setpgid (%ld to %ld)" -msgstr "" - -#: jobs.c:2133 nojobs.c:585 -#, c-format -msgid "wait: pid %ld is not a child of this shell" -msgstr "" - -#: jobs.c:2360 -#, c-format -msgid "wait_for: No record of process %ld" -msgstr "" - -#: jobs.c:2637 -#, c-format -msgid "wait_for_job: job %d is stopped" -msgstr "" - -#: jobs.c:2859 -#, c-format -msgid "%s: job has terminated" -msgstr "" - -#: jobs.c:2868 -#, c-format -msgid "%s: job %d already in background" -msgstr "" - -#: jobs.c:3089 -msgid "waitchld: turning on WNOHANG to avoid indefinite block" -msgstr "" - -#: jobs.c:3538 -#, c-format -msgid "%s: line %d: " -msgstr "" - -#: jobs.c:3552 nojobs.c:814 -#, c-format -msgid " (core dumped)" -msgstr "" - -#: jobs.c:3564 jobs.c:3577 -#, c-format -msgid "(wd now: %s)\n" -msgstr "" - -#: jobs.c:3609 -msgid "initialize_job_control: getpgrp failed" -msgstr "" - -#: jobs.c:3669 -msgid "initialize_job_control: line discipline" -msgstr "" - -#: jobs.c:3679 -msgid "initialize_job_control: setpgid" -msgstr "" - -#: jobs.c:3707 -#, c-format -msgid "cannot set terminal process group (%d)" -msgstr "" - -#: jobs.c:3712 -msgid "no job control in this shell" -msgstr "" - -#: lib/malloc/malloc.c:296 -#, c-format -msgid "malloc: failed assertion: %s\n" -msgstr "" - -#: lib/malloc/malloc.c:312 -#, c-format -msgid "" -"\r\n" -"malloc: %s:%d: assertion botched\r\n" -msgstr "" - -#: lib/malloc/malloc.c:313 -msgid "unknown" -msgstr "" - -#: lib/malloc/malloc.c:797 -msgid "malloc: block on free list clobbered" -msgstr "" - -#: lib/malloc/malloc.c:874 -msgid "free: called with already freed block argument" -msgstr "" - -#: lib/malloc/malloc.c:877 -msgid "free: called with unallocated block argument" -msgstr "" - -#: lib/malloc/malloc.c:896 -msgid "free: underflow detected; mh_nbytes out of range" -msgstr "" - -#: lib/malloc/malloc.c:902 -msgid "free: start and end chunk sizes differ" -msgstr "" - -#: lib/malloc/malloc.c:1001 -msgid "realloc: called with unallocated block argument" -msgstr "" - -#: lib/malloc/malloc.c:1016 -msgid "realloc: underflow detected; mh_nbytes out of range" -msgstr "" - -#: lib/malloc/malloc.c:1022 -msgid "realloc: start and end chunk sizes differ" -msgstr "" - -#: lib/malloc/table.c:177 -#, c-format -msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" -msgstr "" - -#: lib/malloc/table.c:184 -#, c-format -msgid "register_alloc: %p already in table as allocated?\n" -msgstr "" - -#: lib/malloc/table.c:220 -#, c-format -msgid "register_free: %p already in table as free?\n" -msgstr "" - -#: lib/sh/fmtulong.c:101 -msgid "invalid base" -msgstr "" - -#: lib/sh/netopen.c:168 -#, c-format -msgid "%s: host unknown" -msgstr "" - -#: lib/sh/netopen.c:175 -#, c-format -msgid "%s: invalid service" -msgstr "" - -#: lib/sh/netopen.c:306 -#, c-format -msgid "%s: bad network path specification" -msgstr "" - -#: lib/sh/netopen.c:346 -msgid "network operations not supported" -msgstr "" - -#: locale.c:192 -#, c-format -msgid "setlocale: LC_ALL: cannot change locale (%s)" -msgstr "" - -#: locale.c:194 -#, c-format -msgid "setlocale: LC_ALL: cannot change locale (%s): %s" -msgstr "" - -#: locale.c:247 -#, c-format -msgid "setlocale: %s: cannot change locale (%s)" -msgstr "" - -#: locale.c:249 -#, c-format -msgid "setlocale: %s: cannot change locale (%s): %s" -msgstr "" - -#: mailcheck.c:433 -msgid "You have mail in $_" -msgstr "" - -#: mailcheck.c:458 -msgid "You have new mail in $_" -msgstr "" - -#: mailcheck.c:474 -#, c-format -msgid "The mail in %s has been read\n" -msgstr "" - -#: make_cmd.c:323 -msgid "syntax error: arithmetic expression required" -msgstr "" - -#: make_cmd.c:325 -msgid "syntax error: `;' unexpected" -msgstr "" - -#: make_cmd.c:326 -#, c-format -msgid "syntax error: `((%s))'" -msgstr "" - -#: make_cmd.c:575 -#, c-format -msgid "make_here_document: bad instruction type %d" -msgstr "" - -#: make_cmd.c:659 -#, c-format -msgid "here-document at line %d delimited by end-of-file (wanted `%s')" -msgstr "" - -#: make_cmd.c:756 -#, c-format -msgid "make_redirection: redirection instruction `%d' out of range" -msgstr "" - -#: parse.y:3173 parse.y:3444 -#, c-format -msgid "unexpected EOF while looking for matching `%c'" -msgstr "" - -#: parse.y:4025 -msgid "unexpected EOF while looking for `]]'" -msgstr "" - -#: parse.y:4030 -#, c-format -msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "" - -#: parse.y:4034 -msgid "syntax error in conditional expression" -msgstr "" - -#: parse.y:4112 -#, c-format -msgid "unexpected token `%s', expected `)'" -msgstr "" - -#: parse.y:4116 -msgid "expected `)'" -msgstr "" - -#: parse.y:4144 -#, c-format -msgid "unexpected argument `%s' to conditional unary operator" -msgstr "" - -#: parse.y:4148 -msgid "unexpected argument to conditional unary operator" -msgstr "" - -#: parse.y:4194 -#, c-format -msgid "unexpected token `%s', conditional binary operator expected" -msgstr "" - -#: parse.y:4198 -msgid "conditional binary operator expected" -msgstr "" - -#: parse.y:4220 -#, c-format -msgid "unexpected argument `%s' to conditional binary operator" -msgstr "" - -#: parse.y:4224 -msgid "unexpected argument to conditional binary operator" -msgstr "" - -#: parse.y:4235 -#, c-format -msgid "unexpected token `%c' in conditional command" -msgstr "" - -#: parse.y:4238 -#, c-format -msgid "unexpected token `%s' in conditional command" -msgstr "" - -#: parse.y:4242 -#, c-format -msgid "unexpected token %d in conditional command" -msgstr "" - -#: parse.y:5566 -#, c-format -msgid "syntax error near unexpected token `%s'" -msgstr "" - -#: parse.y:5584 -#, c-format -msgid "syntax error near `%s'" -msgstr "" - -#: parse.y:5594 -msgid "syntax error: unexpected end of file" -msgstr "" - -#: parse.y:5594 -msgid "syntax error" -msgstr "" - -#: parse.y:5656 -#, c-format -msgid "Use \"%s\" to leave the shell.\n" -msgstr "" - -#: parse.y:5818 -msgid "unexpected EOF while looking for matching `)'" -msgstr "" - -#: pcomplete.c:1030 -#, c-format -msgid "completion: function `%s' not found" -msgstr "" - -#: pcomplib.c:182 -#, c-format -msgid "progcomp_insert: %s: NULL COMPSPEC" -msgstr "" - -#: print_cmd.c:296 -#, c-format -msgid "print_command: bad connector `%d'" -msgstr "" - -#: print_cmd.c:368 -#, c-format -msgid "xtrace_set: %d: invalid file descriptor" -msgstr "" - -#: print_cmd.c:373 -msgid "xtrace_set: NULL file pointer" -msgstr "" - -#: print_cmd.c:377 -#, c-format -msgid "xtrace fd (%d) != fileno xtrace fp (%d)" -msgstr "" - -#: print_cmd.c:1478 -#, c-format -msgid "cprintf: `%c': invalid format character" -msgstr "" - -#: redir.c:122 -msgid "file descriptor out of range" -msgstr "" - -#: redir.c:178 -#, c-format -msgid "%s: ambiguous redirect" -msgstr "" - -#: redir.c:182 -#, c-format -msgid "%s: cannot overwrite existing file" -msgstr "" - -#: redir.c:187 -#, c-format -msgid "%s: restricted: cannot redirect output" -msgstr "" - -#: redir.c:192 -#, c-format -msgid "cannot create temp file for here-document: %s" -msgstr "" - -#: redir.c:196 -#, c-format -msgid "%s: cannot assign fd to variable" -msgstr "" - -#: redir.c:548 -msgid "/dev/(tcp|udp)/host/port not supported without networking" -msgstr "" - -#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136 -msgid "redirection error: cannot duplicate fd" -msgstr "" - -#: shell.c:333 -msgid "could not find /tmp, please create!" -msgstr "" - -#: shell.c:337 -msgid "/tmp must be a valid directory name" -msgstr "" - -#: shell.c:884 -#, c-format -msgid "%c%c: invalid option" -msgstr "" - -#: shell.c:1652 -msgid "I have no name!" -msgstr "" - -#: shell.c:1795 -#, c-format -msgid "GNU bash, version %s-(%s)\n" -msgstr "" - -#: shell.c:1796 -#, c-format -msgid "" -"Usage:\t%s [GNU long option] [option] ...\n" -"\t%s [GNU long option] [option] script-file ...\n" -msgstr "" - -#: shell.c:1798 -msgid "GNU long options:\n" -msgstr "" - -#: shell.c:1802 -msgid "Shell options:\n" -msgstr "" - -#: shell.c:1803 -msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -msgstr "" - -#: shell.c:1818 -#, c-format -msgid "\t-%s or -o option\n" -msgstr "" - -#: shell.c:1824 -#, c-format -msgid "Type `%s -c \"help set\"' for more information about shell options.\n" -msgstr "" - -#: shell.c:1825 -#, c-format -msgid "Type `%s -c help' for more information about shell builtin commands.\n" -msgstr "" - -#: shell.c:1826 -#, c-format -msgid "Use the `bashbug' command to report bugs.\n" -msgstr "" - -#: sig.c:638 -#, c-format -msgid "sigprocmask: %d: invalid operation" -msgstr "" - -#: siglist.c:48 -msgid "Bogus signal" -msgstr "" - -#: siglist.c:51 -msgid "Hangup" -msgstr "" - -#: siglist.c:55 -msgid "Interrupt" -msgstr "" - -#: siglist.c:59 -msgid "Quit" -msgstr "" - -#: siglist.c:63 -msgid "Illegal instruction" -msgstr "" - -#: siglist.c:67 -msgid "BPT trace/trap" -msgstr "" - -#: siglist.c:75 -msgid "ABORT instruction" -msgstr "" - -#: siglist.c:79 -msgid "EMT instruction" -msgstr "" - -#: siglist.c:83 -msgid "Floating point exception" -msgstr "" - -#: siglist.c:87 -msgid "Killed" -msgstr "" - -#: siglist.c:91 -msgid "Bus error" -msgstr "" - -#: siglist.c:95 -msgid "Segmentation fault" -msgstr "" - -#: siglist.c:99 -msgid "Bad system call" -msgstr "" - -#: siglist.c:103 -msgid "Broken pipe" -msgstr "" - -#: siglist.c:107 -msgid "Alarm clock" -msgstr "" - -#: siglist.c:111 -msgid "Terminated" -msgstr "" - -#: siglist.c:115 -msgid "Urgent IO condition" -msgstr "" - -#: siglist.c:119 -msgid "Stopped (signal)" -msgstr "" - -#: siglist.c:127 -msgid "Continue" -msgstr "" - -#: siglist.c:135 -msgid "Child death or stop" -msgstr "" - -#: siglist.c:139 -msgid "Stopped (tty input)" -msgstr "" - -#: siglist.c:143 -msgid "Stopped (tty output)" -msgstr "" - -#: siglist.c:147 -msgid "I/O ready" -msgstr "" - -#: siglist.c:151 -msgid "CPU limit" -msgstr "" - -#: siglist.c:155 -msgid "File limit" -msgstr "" - -#: siglist.c:159 -msgid "Alarm (virtual)" -msgstr "" - -#: siglist.c:163 -msgid "Alarm (profile)" -msgstr "" - -#: siglist.c:167 -msgid "Window changed" -msgstr "" - -#: siglist.c:171 -msgid "Record lock" -msgstr "" - -#: siglist.c:175 -msgid "User signal 1" -msgstr "" - -#: siglist.c:179 -msgid "User signal 2" -msgstr "" - -#: siglist.c:183 -msgid "HFT input data pending" -msgstr "" - -#: siglist.c:187 -msgid "power failure imminent" -msgstr "" - -#: siglist.c:191 -msgid "system crash imminent" -msgstr "" - -#: siglist.c:195 -msgid "migrate process to another CPU" -msgstr "" - -#: siglist.c:199 -msgid "programming error" -msgstr "" - -#: siglist.c:203 -msgid "HFT monitor mode granted" -msgstr "" - -#: siglist.c:207 -msgid "HFT monitor mode retracted" -msgstr "" - -#: siglist.c:211 -msgid "HFT sound sequence has completed" -msgstr "" - -#: siglist.c:215 -msgid "Information request" -msgstr "" - -#: siglist.c:223 -msgid "Unknown Signal #" -msgstr "" - -#: siglist.c:225 -#, c-format -msgid "Unknown Signal #%d" -msgstr "" - -#: subst.c:1333 subst.c:1502 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "" - -#: subst.c:2795 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "" - -#: subst.c:4979 subst.c:4995 -msgid "cannot make pipe for process substitution" -msgstr "" - -#: subst.c:5027 -msgid "cannot make child for process substitution" -msgstr "" - -#: subst.c:5072 -#, c-format -msgid "cannot open named pipe %s for reading" -msgstr "" - -#: subst.c:5074 -#, c-format -msgid "cannot open named pipe %s for writing" -msgstr "" - -#: subst.c:5092 -#, c-format -msgid "cannot duplicate named pipe %s as fd %d" -msgstr "" - -#: subst.c:5284 -msgid "cannot make pipe for command substitution" -msgstr "" - -#: subst.c:5322 -msgid "cannot make child for command substitution" -msgstr "" - -#: subst.c:5339 -msgid "command_substitute: cannot duplicate pipe as fd 1" -msgstr "" - -#: subst.c:5859 -#, c-format -msgid "%s: parameter null or not set" -msgstr "" - -#: subst.c:6125 subst.c:6140 -#, c-format -msgid "%s: substring expression < 0" -msgstr "" - -#: subst.c:7271 -#, c-format -msgid "%s: bad substitution" -msgstr "" - -#: subst.c:7347 -#, c-format -msgid "$%s: cannot assign in this way" -msgstr "" - -#: subst.c:7684 -msgid "" -"future versions of the shell will force evaluation as an arithmetic " -"substitution" -msgstr "" - -#: subst.c:8149 -#, c-format -msgid "bad substitution: no closing \"`\" in %s" -msgstr "" - -#: subst.c:9036 -#, c-format -msgid "no match: %s" -msgstr "" - -#: test.c:146 -msgid "argument expected" -msgstr "" - -#: test.c:155 -#, c-format -msgid "%s: integer expression expected" -msgstr "" - -#: test.c:263 -msgid "`)' expected" -msgstr "" - -#: test.c:265 -#, c-format -msgid "`)' expected, found %s" -msgstr "" - -#: test.c:280 test.c:698 test.c:701 -#, c-format -msgid "%s: unary operator expected" -msgstr "" - -#: test.c:449 test.c:741 -#, c-format -msgid "%s: binary operator expected" -msgstr "" - -#: test.c:816 -msgid "missing `]'" -msgstr "" - -#: trap.c:207 -msgid "invalid signal number" -msgstr "" - -#: trap.c:337 -#, c-format -msgid "run_pending_traps: bad value in trap_list[%d]: %p" -msgstr "" - -#: trap.c:341 -#, c-format -msgid "" -"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -msgstr "" - -#: trap.c:393 -#, c-format -msgid "trap_handler: bad signal %d" -msgstr "" - -#: variables.c:363 -#, c-format -msgid "error importing function definition for `%s'" -msgstr "" - -#: variables.c:755 -#, c-format -msgid "shell level (%d) too high, resetting to 1" -msgstr "" - -#: variables.c:1932 -msgid "make_local_variable: no function context at current scope" -msgstr "" - -#: variables.c:3182 -msgid "all_local_variables: no function context at current scope" -msgstr "" - -#: variables.c:3427 -#, c-format -msgid "%s has null exportstr" -msgstr "" - -#: variables.c:3432 variables.c:3441 -#, c-format -msgid "invalid character %d in exportstr for %s" -msgstr "" - -#: variables.c:3447 -#, c-format -msgid "no `=' in exportstr for %s" -msgstr "" - -#: variables.c:3891 -msgid "pop_var_context: head of shell_variables not a function context" -msgstr "" - -#: variables.c:3904 -msgid "pop_var_context: no global_variables context" -msgstr "" - -#: variables.c:3978 -msgid "pop_scope: head of shell_variables not a temporary environment scope" -msgstr "" - -#: variables.c:4786 -#, c-format -msgid "%s: %s: cannot open as FILE" -msgstr "" - -#: variables.c:4791 -#, c-format -msgid "%s: %s: invalid value for trace file descriptor" -msgstr "" - -#: version.c:46 -msgid "Copyright (C) 2011 Free Software Foundation, Inc." -msgstr "" - -#: version.c:47 -msgid "" -"License GPLv3+: GNU GPL version 3 or later \n" -msgstr "" - -#: version.c:86 version2.c:83 -#, c-format -msgid "GNU bash, version %s (%s)\n" -msgstr "" - -#: version.c:91 version2.c:88 -#, c-format -msgid "This is free software; you are free to change and redistribute it.\n" -msgstr "" - -#: version.c:92 version2.c:89 -#, c-format -msgid "There is NO WARRANTY, to the extent permitted by law.\n" -msgstr "" - -#: version2.c:86 -#, c-format -msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" -msgstr "" - -#: version2.c:87 -#, c-format -msgid "" -"License GPLv2+: GNU GPL version 2 or later \n" -msgstr "" - -#: xmalloc.c:91 -#, c-format -msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:93 -#, c-format -msgid "%s: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:163 -#, c-format -msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:165 -#, c-format -msgid "%s: %s:%d: cannot allocate %lu bytes" -msgstr "" - -#: builtins.c:43 -msgid "alias [-p] [name[=value] ... ]" -msgstr "" - -#: builtins.c:47 -msgid "unalias [-a] name [name ...]" -msgstr "" - -#: builtins.c:51 -msgid "" -"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" -"x keyseq:shell-command] [keyseq:readline-function or readline-command]" -msgstr "" - -#: builtins.c:54 -msgid "break [n]" -msgstr "" - -#: builtins.c:56 -msgid "continue [n]" -msgstr "" - -#: builtins.c:58 -msgid "builtin [shell-builtin [arg ...]]" -msgstr "" - -#: builtins.c:61 -msgid "caller [expr]" -msgstr "" - -#: builtins.c:64 -msgid "cd [-L|[-P [-e]]] [dir]" -msgstr "" - -#: builtins.c:66 -msgid "pwd [-LP]" -msgstr "" - -#: builtins.c:68 -msgid ":" -msgstr "" - -#: builtins.c:70 -msgid "true" -msgstr "" - -#: builtins.c:72 -msgid "false" -msgstr "" - -#: builtins.c:74 -msgid "command [-pVv] command [arg ...]" -msgstr "" - -#: builtins.c:76 -msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]" -msgstr "" - -#: builtins.c:78 -msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..." -msgstr "" - -#: builtins.c:80 -msgid "local [option] name[=value] ..." -msgstr "" - -#: builtins.c:83 -msgid "echo [-neE] [arg ...]" -msgstr "" - -#: builtins.c:87 -msgid "echo [-n] [arg ...]" -msgstr "" - -#: builtins.c:90 -msgid "enable [-a] [-dnps] [-f filename] [name ...]" -msgstr "" - -#: builtins.c:92 -msgid "eval [arg ...]" -msgstr "" - -#: builtins.c:94 -msgid "getopts optstring name [arg]" -msgstr "" - -#: builtins.c:96 -msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" -msgstr "" - -#: builtins.c:98 -msgid "exit [n]" -msgstr "" - -#: builtins.c:100 -msgid "logout [n]" -msgstr "" - -#: builtins.c:103 -msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" -msgstr "" - -#: builtins.c:107 -msgid "fg [job_spec]" -msgstr "" - -#: builtins.c:111 -msgid "bg [job_spec ...]" -msgstr "" - -#: builtins.c:114 -msgid "hash [-lr] [-p pathname] [-dt] [name ...]" -msgstr "" - -#: builtins.c:117 -msgid "help [-dms] [pattern ...]" -msgstr "" - -#: builtins.c:121 -msgid "" -"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " -"[arg...]" -msgstr "" - -#: builtins.c:125 -msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" -msgstr "" - -#: builtins.c:129 -msgid "disown [-h] [-ar] [jobspec ...]" -msgstr "" - -#: builtins.c:132 -msgid "" -"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " -"[sigspec]" -msgstr "" - -#: builtins.c:134 -msgid "let arg [arg ...]" -msgstr "" - -#: builtins.c:136 -msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " -"prompt] [-t timeout] [-u fd] [name ...]" -msgstr "" - -#: builtins.c:138 -msgid "return [n]" -msgstr "" - -#: builtins.c:140 -msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]" -msgstr "" - -#: builtins.c:142 -msgid "unset [-f] [-v] [name ...]" -msgstr "" - -#: builtins.c:144 -msgid "export [-fn] [name[=value] ...] or export -p" -msgstr "" - -#: builtins.c:146 -msgid "readonly [-aAf] [name[=value] ...] or readonly -p" -msgstr "" - -#: builtins.c:148 -msgid "shift [n]" -msgstr "" - -#: builtins.c:150 -msgid "source filename [arguments]" -msgstr "" - -#: builtins.c:152 -msgid ". filename [arguments]" -msgstr "" - -#: builtins.c:155 -msgid "suspend [-f]" -msgstr "" - -#: builtins.c:158 -msgid "test [expr]" -msgstr "" - -#: builtins.c:160 -msgid "[ arg... ]" -msgstr "" - -#: builtins.c:162 -msgid "times" -msgstr "" - -#: builtins.c:164 -msgid "trap [-lp] [[arg] signal_spec ...]" -msgstr "" - -#: builtins.c:166 -msgid "type [-afptP] name [name ...]" -msgstr "" - -#: builtins.c:169 -msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" -msgstr "" - -#: builtins.c:172 -msgid "umask [-p] [-S] [mode]" -msgstr "" - -#: builtins.c:175 -msgid "wait [id]" -msgstr "" - -#: builtins.c:179 -msgid "wait [pid]" -msgstr "" - -#: builtins.c:182 -msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" -msgstr "" - -#: builtins.c:184 -msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" -msgstr "" - -#: builtins.c:186 -msgid "select NAME [in WORDS ... ;] do COMMANDS; done" -msgstr "" - -#: builtins.c:188 -msgid "time [-p] pipeline" -msgstr "" - -#: builtins.c:190 -msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" -msgstr "" - -#: builtins.c:192 -msgid "" -"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " -"COMMANDS; ] fi" -msgstr "" - -#: builtins.c:194 -msgid "while COMMANDS; do COMMANDS; done" -msgstr "" - -#: builtins.c:196 -msgid "until COMMANDS; do COMMANDS; done" -msgstr "" - -#: builtins.c:198 -msgid "coproc [NAME] command [redirections]" -msgstr "" - -#: builtins.c:200 -msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" -msgstr "" - -#: builtins.c:202 -msgid "{ COMMANDS ; }" -msgstr "" - -#: builtins.c:204 -msgid "job_spec [&]" -msgstr "" - -#: builtins.c:206 -msgid "(( expression ))" -msgstr "" - -#: builtins.c:208 -msgid "[[ expression ]]" -msgstr "" - -#: builtins.c:210 -msgid "variables - Names and meanings of some shell variables" -msgstr "" - -#: builtins.c:213 -msgid "pushd [-n] [+N | -N | dir]" -msgstr "" - -#: builtins.c:217 -msgid "popd [-n] [+N | -N]" -msgstr "" - -#: builtins.c:221 -msgid "dirs [-clpv] [+N] [-N]" -msgstr "" - -#: builtins.c:224 -msgid "shopt [-pqsu] [-o] [optname ...]" -msgstr "" - -#: builtins.c:226 -msgid "printf [-v var] format [arguments]" -msgstr "" - -#: builtins.c:229 -msgid "" -"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" -"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " -"suffix] [name ...]" -msgstr "" - -#: builtins.c:233 -msgid "" -"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " -"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" -msgstr "" - -#: builtins.c:237 -msgid "compopt [-o|+o option] [-DE] [name ...]" -msgstr "" - -#: builtins.c:240 -msgid "" -"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" -msgstr "" - -#: builtins.c:242 -msgid "" -"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" -msgstr "" - -#: builtins.c:254 -msgid "" -"Define or display aliases.\n" -" \n" -" Without arguments, `alias' prints the list of aliases in the reusable\n" -" form `alias NAME=VALUE' on standard output.\n" -" \n" -" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" -" A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded.\n" -" \n" -" Options:\n" -" -p\tPrint all defined aliases in a reusable format\n" -" \n" -" Exit Status:\n" -" alias returns true unless a NAME is supplied for which no alias has " -"been\n" -" defined." -msgstr "" - -#: builtins.c:276 -msgid "" -"Remove each NAME from the list of defined aliases.\n" -" \n" -" Options:\n" -" -a\tremove all alias definitions.\n" -" \n" -" Return success unless a NAME is not an existing alias." -msgstr "" - -#: builtins.c:289 -msgid "" -"Set Readline key bindings and variables.\n" -" \n" -" Bind a key sequence to a Readline function or a macro, or set a\n" -" Readline variable. The non-option argument syntax is equivalent to\n" -" that found in ~/.inputrc, but must be passed as a single argument:\n" -" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" \n" -" Options:\n" -" -m keymap Use KEYMAP as the keymap for the duration of this\n" -" command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" -"move,\n" -" vi-command, and vi-insert.\n" -" -l List names of functions.\n" -" -P List function names and bindings.\n" -" -p List functions and bindings in a form that can be\n" -" reused as input.\n" -" -S List key sequences that invoke macros and their " -"values\n" -" -s List key sequences that invoke macros and their " -"values\n" -" in a form that can be reused as input.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -f filename Read key bindings from FILENAME.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" \n" -" Exit Status:\n" -" bind returns 0 unless an unrecognized option is given or an error occurs." -msgstr "" - -#: builtins.c:326 -msgid "" -"Exit for, while, or until loops.\n" -" \n" -" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" -" loops.\n" -" \n" -" Exit Status:\n" -" The exit status is 0 unless N is not greater than or equal to 1." -msgstr "" - -#: builtins.c:338 -msgid "" -"Resume for, while, or until loops.\n" -" \n" -" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resumes the Nth enclosing loop.\n" -" \n" -" Exit Status:\n" -" The exit status is 0 unless N is not greater than or equal to 1." -msgstr "" - -#: builtins.c:350 -msgid "" -"Execute shell builtins.\n" -" \n" -" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" -" lookup. This is useful when you wish to reimplement a shell builtin\n" -" as a shell function, but need to execute the builtin within the " -"function.\n" -" \n" -" Exit Status:\n" -" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" -" not a shell builtin.." -msgstr "" - -#: builtins.c:365 -msgid "" -"Return the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" -" \"$line $subroutine $filename\"; this extra information can be used to\n" -" provide a stack trace.\n" -" \n" -" The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0.\n" -" \n" -" Exit Status:\n" -" Returns 0 unless the shell is not executing a shell function or EXPR\n" -" is invalid." -msgstr "" - -#: builtins.c:383 -msgid "" -"Change the shell working directory.\n" -" \n" -" Change the current directory to DIR. The default DIR is the value of " -"the\n" -" HOME shell variable.\n" -" \n" -" The variable CDPATH defines the search path for the directory " -"containing\n" -" DIR. Alternative directory names in CDPATH are separated by a colon " -"(:).\n" -" A null directory name is the same as the current directory. If DIR " -"begins\n" -" with a slash (/), then CDPATH is not used.\n" -" \n" -" If the directory is not found, and the shell option `cdable_vars' is " -"set,\n" -" the word is assumed to be a variable name. If that variable has a " -"value,\n" -" its value is used for DIR.\n" -" \n" -" Options:\n" -" -L\tforce symbolic links to be followed\n" -" -P\tuse the physical directory structure without following symbolic\n" -" \tlinks\n" -" -e\tif the -P option is supplied, and the current working directory\n" -" \tcannot be determined successfully, exit with a non-zero status\n" -" \n" -" The default is to follow symbolic links, as if `-L' were specified.\n" -" \n" -" Exit Status:\n" -" Returns 0 if the directory is changed, and if $PWD is set successfully " -"when\n" -" -P is used; non-zero otherwise." -msgstr "" - -#: builtins.c:414 -msgid "" -"Print the name of the current working directory.\n" -" \n" -" Options:\n" -" -L\tprint the value of $PWD if it names the current working\n" -" \tdirectory\n" -" -P\tprint the physical directory, without any symbolic links\n" -" \n" -" By default, `pwd' behaves as if `-L' were specified.\n" -" \n" -" Exit Status:\n" -" Returns 0 unless an invalid option is given or the current directory\n" -" cannot be read." -msgstr "" - -#: builtins.c:431 -msgid "" -"Null command.\n" -" \n" -" No effect; the command does nothing.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" - -#: builtins.c:442 -msgid "" -"Return a successful result.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" - -#: builtins.c:451 -msgid "" -"Return an unsuccessful result.\n" -" \n" -" Exit Status:\n" -" Always fails." -msgstr "" - -#: builtins.c:460 -msgid "" -"Execute a simple command or display information about commands.\n" -" \n" -" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" -" information about the specified COMMANDs. Can be used to invoke " -"commands\n" -" on disk when a function with the same name exists.\n" -" \n" -" Options:\n" -" -p\tuse a default value for PATH that is guaranteed to find all of\n" -" \tthe standard utilities\n" -" -v\tprint a description of COMMAND similar to the `type' builtin\n" -" -V\tprint a more verbose description of each COMMAND\n" -" \n" -" Exit Status:\n" -" Returns exit status of COMMAND, or failure if COMMAND is not found." -msgstr "" - -#: builtins.c:479 -msgid "" -"Set variable values and attributes.\n" -" \n" -" Declare variables and give them attributes. If no NAMEs are given,\n" -" display the attributes and values of all variables.\n" -" \n" -" Options:\n" -" -f\trestrict action or display to function names and definitions\n" -" -F\trestrict display to function names only (plus line number and\n" -" \tsource file when debugging)\n" -" -g\tcreate global variables when used in a shell function; otherwise\n" -" \tignored\n" -" -p\tdisplay the attributes and value of each NAME\n" -" \n" -" Options which set attributes:\n" -" -a\tto make NAMEs indexed arrays (if supported)\n" -" -A\tto make NAMEs associative arrays (if supported)\n" -" -i\tto make NAMEs have the `integer' attribute\n" -" -l\tto convert NAMEs to lower case on assignment\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the `trace' attribute\n" -" -u\tto convert NAMEs to upper case on assignment\n" -" -x\tto make NAMEs export\n" -" \n" -" Using `+' instead of `-' turns off the given attribute.\n" -" \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" the `let' command) performed when the variable is assigned a value.\n" -" \n" -" When used in a function, `declare' makes NAMEs local, as with the " -"`local'\n" -" command. The `-g' option suppresses this behavior.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:517 -msgid "" -"Set variable values and attributes.\n" -" \n" -" Obsolete. See `help declare'." -msgstr "" - -#: builtins.c:525 -msgid "" -"Define local variables.\n" -" \n" -" Create a local variable called NAME, and give it VALUE. OPTION can\n" -" be any option accepted by `declare'.\n" -" \n" -" Local variables can only be used within a function; they are visible\n" -" only to the function where they are defined and its children.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied, an error occurs,\n" -" or the shell is not executing a function." -msgstr "" - -#: builtins.c:542 -msgid "" -"Write arguments to the standard output.\n" -" \n" -" Display the ARGs on the standard output followed by a newline.\n" -" \n" -" Options:\n" -" -n\tdo not append a newline\n" -" -e\tenable interpretation of the following backslash escapes\n" -" -E\texplicitly suppress interpretation of backslash escapes\n" -" \n" -" `echo' interprets the following backslash-escaped characters:\n" -" \\a\talert (bell)\n" -" \\b\tbackspace\n" -" \\c\tsuppress further output\n" -" \\e\tescape character\n" -" \\f\tform feed\n" -" \\n\tnew line\n" -" \\r\tcarriage return\n" -" \\t\thorizontal tab\n" -" \\v\tvertical tab\n" -" \\\\\tbackslash\n" -" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" -" \t0 to 3 octal digits\n" -" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" -" \tcan be one or two hex digits\n" -" \n" -" Exit Status:\n" -" Returns success unless a write error occurs." -msgstr "" - -#: builtins.c:576 -msgid "" -"Write arguments to the standard output.\n" -" \n" -" Display the ARGs on the standard output followed by a newline.\n" -" \n" -" Options:\n" -" -n\tdo not append a newline\n" -" \n" -" Exit Status:\n" -" Returns success unless a write error occurs." -msgstr "" - -#: builtins.c:591 -msgid "" -"Enable and disable shell builtins.\n" -" \n" -" Enables and disables builtin shell commands. Disabling allows you to\n" -" execute a disk command which has the same name as a shell builtin\n" -" without using a full pathname.\n" -" \n" -" Options:\n" -" -a\tprint a list of builtins showing whether or not each is enabled\n" -" -n\tdisable each NAME or display a list of disabled builtins\n" -" -p\tprint the list of builtins in a reusable format\n" -" -s\tprint only the names of Posix `special' builtins\n" -" \n" -" Options controlling dynamic loading:\n" -" -f\tLoad builtin NAME from shared object FILENAME\n" -" -d\tRemove a builtin loaded with -f\n" -" \n" -" Without options, each NAME is enabled.\n" -" \n" -" To use the `test' found in $PATH instead of the shell builtin\n" -" version, type `enable -n test'.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is not a shell builtin or an error occurs." -msgstr "" - -#: builtins.c:619 -msgid "" -"Execute arguments as a shell command.\n" -" \n" -" Combine ARGs into a single string, use the result as input to the " -"shell,\n" -" and execute the resulting commands.\n" -" \n" -" Exit Status:\n" -" Returns exit status of command or success if command is null." -msgstr "" - -#: builtins.c:631 -msgid "" -"Parse option arguments.\n" -" \n" -" Getopts is used by shell procedures to parse positional parameters\n" -" as options.\n" -" \n" -" OPTSTRING contains the option letters to be recognized; if a letter\n" -" is followed by a colon, the option is expected to have an argument,\n" -" which should be separated from it by white space.\n" -" \n" -" Each time it is invoked, getopts will place the next option in the\n" -" shell variable $name, initializing name if it does not exist, and\n" -" the index of the next argument to be processed into the shell\n" -" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" -" a shell script is invoked. When an option requires an argument,\n" -" getopts places that argument into the shell variable OPTARG.\n" -" \n" -" getopts reports errors in one of two ways. If the first character\n" -" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" -" this mode, no error messages are printed. If an invalid option is\n" -" seen, getopts places the option character found into OPTARG. If a\n" -" required argument is not found, getopts places a ':' into NAME and\n" -" sets OPTARG to the option character found. If getopts is not in\n" -" silent mode, and an invalid option is seen, getopts places '?' into\n" -" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" -" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" -" printed.\n" -" \n" -" If the shell variable OPTERR has the value 0, getopts disables the\n" -" printing of error messages, even if the first character of\n" -" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" -" \n" -" Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead.\n" -" \n" -" Exit Status:\n" -" Returns success if an option is found; fails if the end of options is\n" -" encountered or an error occurs." -msgstr "" - -#: builtins.c:673 -msgid "" -"Replace the shell with the given command.\n" -" \n" -" Execute COMMAND, replacing this shell with the specified program.\n" -" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " -"specified,\n" -" any redirections take effect in the current shell.\n" -" \n" -" Options:\n" -" -a name\tpass NAME as the zeroth argument to COMMAND\n" -" -c\t\texecute COMMAND with an empty environment\n" -" -l\t\tplace a dash in the zeroth argument to COMMAND\n" -" \n" -" If the command cannot be executed, a non-interactive shell exits, " -"unless\n" -" the shell option `execfail' is set.\n" -" \n" -" Exit Status:\n" -" Returns success unless COMMAND is not found or a redirection error " -"occurs." -msgstr "" - -#: builtins.c:694 -msgid "" -"Exit the shell.\n" -" \n" -" Exits the shell with a status of N. If N is omitted, the exit status\n" -" is that of the last command executed." -msgstr "" - -#: builtins.c:703 -msgid "" -"Exit a login shell.\n" -" \n" -" Exits a login shell with exit status N. Returns an error if not " -"executed\n" -" in a login shell." -msgstr "" - -#: builtins.c:713 -msgid "" -"Display or execute commands from the history list.\n" -" \n" -" fc is used to list or edit and re-execute commands from the history " -"list.\n" -" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" -" string, which means the most recent command beginning with that\n" -" string.\n" -" \n" -" Options:\n" -" -e ENAME\tselect which editor to use. Default is FCEDIT, then " -"EDITOR,\n" -" \t\tthen vi\n" -" -l \tlist lines instead of editing\n" -" -n\tomit line numbers when listing\n" -" -r\treverse the order of the lines (newest listed first)\n" -" \n" -" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" -" re-executed after the substitution OLD=NEW is performed.\n" -" \n" -" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" -" runs the last command beginning with `cc' and typing `r' re-executes\n" -" the last command.\n" -" \n" -" Exit Status:\n" -" Returns success or status of executed command; non-zero if an error " -"occurs." -msgstr "" - -#: builtins.c:743 -msgid "" -"Move job to the foreground.\n" -" \n" -" Place the job identified by JOB_SPEC in the foreground, making it the\n" -" current job. If JOB_SPEC is not present, the shell's notion of the\n" -" current job is used.\n" -" \n" -" Exit Status:\n" -" Status of command placed in foreground, or failure if an error occurs." -msgstr "" - -#: builtins.c:758 -msgid "" -"Move jobs to the background.\n" -" \n" -" Place the jobs identified by each JOB_SPEC in the background, as if " -"they\n" -" had been started with `&'. If JOB_SPEC is not present, the shell's " -"notion\n" -" of the current job is used.\n" -" \n" -" Exit Status:\n" -" Returns success unless job control is not enabled or an error occurs." -msgstr "" - -#: builtins.c:772 -msgid "" -"Remember or display program locations.\n" -" \n" -" Determine and remember the full pathname of each command NAME. If\n" -" no arguments are given, information about remembered commands is " -"displayed.\n" -" \n" -" Options:\n" -" -d\t\tforget the remembered location of each NAME\n" -" -l\t\tdisplay in a format that may be reused as input\n" -" -p pathname\tuse PATHNAME is the full pathname of NAME\n" -" -r\t\tforget all remembered locations\n" -" -t\t\tprint the remembered location of each NAME, preceding\n" -" \t\teach location with the corresponding NAME if multiple\n" -" \t\tNAMEs are given\n" -" Arguments:\n" -" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" -" \t\tof remembered commands.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is not found or an invalid option is given." -msgstr "" - -#: builtins.c:797 -msgid "" -"Display information about builtin commands.\n" -" \n" -" Displays brief summaries of builtin commands. If PATTERN is\n" -" specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise the list of help topics is printed.\n" -" \n" -" Options:\n" -" -d\toutput short description for each topic\n" -" -m\tdisplay usage in pseudo-manpage format\n" -" -s\toutput only a short usage synopsis for each topic matching\n" -" \tPATTERN\n" -" \n" -" Arguments:\n" -" PATTERN\tPattern specifiying a help topic\n" -" \n" -" Exit Status:\n" -" Returns success unless PATTERN is not found or an invalid option is " -"given." -msgstr "" - -#: builtins.c:821 -msgid "" -"Display or manipulate the history list.\n" -" \n" -" Display the history list with line numbers, prefixing each modified\n" -" entry with a `*'. An argument of N lists only the last N entries.\n" -" \n" -" Options:\n" -" -c\tclear the history list by deleting all of the entries\n" -" -d offset\tdelete the history entry at offset OFFSET.\n" -" \n" -" -a\tappend history lines from this session to the history file\n" -" -n\tread all history lines not already read from the history file\n" -" -r\tread the history file and append the contents to the history\n" -" \tlist\n" -" -w\twrite the current history to the history file\n" -" \tand append them to the history list\n" -" \n" -" -p\tperform history expansion on each ARG and display the result\n" -" \twithout storing it in the history list\n" -" -s\tappend the ARGs to the history list as a single entry\n" -" \n" -" If FILENAME is given, it is used as the history file. Otherwise,\n" -" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" \n" -" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" -" as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed " -"otherwise.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs." -msgstr "" - -#: builtins.c:857 -msgid "" -"Display status of jobs.\n" -" \n" -" Lists the active jobs. JOBSPEC restricts output to that job.\n" -" Without options, the status of all active jobs is displayed.\n" -" \n" -" Options:\n" -" -l\tlists process IDs in addition to the normal information\n" -" -n\tlist only processes that have changed status since the last\n" -" \tnotification\n" -" -p\tlists process IDs only\n" -" -r\trestrict output to running jobs\n" -" -s\trestrict output to stopped jobs\n" -" \n" -" If -x is supplied, COMMAND is run after all job specifications that\n" -" appear in ARGS have been replaced with the process ID of that job's\n" -" process group leader.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs.\n" -" If -x is used, returns the exit status of COMMAND." -msgstr "" - -#: builtins.c:884 -msgid "" -"Remove jobs from current shell.\n" -" \n" -" Removes each JOBSPEC argument from the table of active jobs. Without\n" -" any JOBSPECs, the shell uses its notion of the current job.\n" -" \n" -" Options:\n" -" -a\tremove all jobs if JOBSPEC is not supplied\n" -" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" -" \tshell receives a SIGHUP\n" -" -r\tremove only running jobs\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option or JOBSPEC is given." -msgstr "" - -#: builtins.c:903 -msgid "" -"Send a signal to a job.\n" -" \n" -" Send the processes identified by PID or JOBSPEC the signal named by\n" -" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" -" SIGTERM is assumed.\n" -" \n" -" Options:\n" -" -s sig\tSIG is a signal name\n" -" -n sig\tSIG is a signal number\n" -" -l\tlist the signal names; if arguments follow `-l' they are\n" -" \tassumed to be signal numbers for which names should be listed\n" -" \n" -" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" -" instead of process IDs, and allows processes to be killed if the limit\n" -" on processes that you can create is reached.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs." -msgstr "" - -#: builtins.c:926 -msgid "" -"Evaluate arithmetic expressions.\n" -" \n" -" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" -" fixed-width integers with no check for overflow, though division by 0\n" -" is trapped and flagged as an error. The following list of operators is\n" -" grouped into levels of equal-precedence operators. The levels are " -"listed\n" -" in order of decreasing precedence.\n" -" \n" -" \tid++, id--\tvariable post-increment, post-decrement\n" -" \t++id, --id\tvariable pre-increment, pre-decrement\n" -" \t-, +\t\tunary minus, plus\n" -" \t!, ~\t\tlogical and bitwise negation\n" -" \t**\t\texponentiation\n" -" \t*, /, %\t\tmultiplication, division, remainder\n" -" \t+, -\t\taddition, subtraction\n" -" \t<<, >>\t\tleft and right bitwise shifts\n" -" \t<=, >=, <, >\tcomparison\n" -" \t==, !=\t\tequality, inequality\n" -" \t&\t\tbitwise AND\n" -" \t^\t\tbitwise XOR\n" -" \t|\t\tbitwise OR\n" -" \t&&\t\tlogical AND\n" -" \t||\t\tlogical OR\n" -" \texpr ? expr : expr\n" -" \t\t\tconditional operator\n" -" \t=, *=, /=, %=,\n" -" \t+=, -=, <<=, >>=,\n" -" \t&=, ^=, |=\tassignment\n" -" \n" -" Shell variables are allowed as operands. The name of the variable\n" -" is replaced by its value (coerced to a fixed-width integer) within\n" -" an expression. The variable need not have its integer attribute\n" -" turned on to be used in an expression.\n" -" \n" -" Operators are evaluated in order of precedence. Sub-expressions in\n" -" parentheses are evaluated first and may override the precedence\n" -" rules above.\n" -" \n" -" Exit Status:\n" -" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise." -msgstr "" - -#: builtins.c:971 -msgid "" -"Read a line from the standard input and split it into fields.\n" -" \n" -" Reads a single line from the standard input, or from file descriptor FD\n" -" if the -u option is supplied. The line is split into fields as with " -"word\n" -" splitting, and the first word is assigned to the first NAME, the second\n" -" word to the second NAME, and so on, with any leftover words assigned to\n" -" the last NAME. Only the characters found in $IFS are recognized as " -"word\n" -" delimiters.\n" -" \n" -" If no NAMEs are supplied, the line read is stored in the REPLY " -"variable.\n" -" \n" -" Options:\n" -" -a array\tassign the words read to sequential indices of the array\n" -" \t\tvariable ARRAY, starting at zero\n" -" -d delim\tcontinue until the first character of DELIM is read, rather\n" -" \t\tthan newline\n" -" -e\t\tuse Readline to obtain the line in an interactive shell\n" -" -i text\tUse TEXT as the initial text for Readline\n" -" -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" -" \t\tcharacters are read before the delimiter\n" -" -N nchars\treturn only after reading exactly NCHARS characters, " -"unless\n" -" \t\tEOF is encountered or read times out, ignoring any delimiter\n" -" -p prompt\toutput the string PROMPT without a trailing newline before\n" -" \t\tattempting to read\n" -" -r\t\tdo not allow backslashes to escape any characters\n" -" -s\t\tdo not echo input coming from a terminal\n" -" -t timeout\ttime out and return failure if a complete line of input " -"is\n" -" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" -" \t\tvariable is the default timeout. TIMEOUT may be a\n" -" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" -" \t\tif input is available on the specified file descriptor. The\n" -" \t\texit status is greater than 128 if the timeout is exceeded\n" -" -u fd\t\tread from file descriptor FD instead of the standard input\n" -" \n" -" Exit Status:\n" -" The return code is zero, unless end-of-file is encountered, read times " -"out,\n" -" or an invalid file descriptor is supplied as the argument to -u." -msgstr "" - -#: builtins.c:1014 -msgid "" -"Return from a shell function.\n" -" \n" -" Causes a function or sourced script to exit with the return value\n" -" specified by N. If N is omitted, the return status is that of the\n" -" last command executed within the function or script.\n" -" \n" -" Exit Status:\n" -" Returns N, or failure if the shell is not executing a function or script." -msgstr "" - -#: builtins.c:1027 -msgid "" -"Set or unset values of shell options and positional parameters.\n" -" \n" -" Change the value of shell attributes and positional parameters, or\n" -" display the names and values of shell variables.\n" -" \n" -" Options:\n" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status of\n" -" the last command to exit with a non-zero status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the Posix standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" -- Assign any remaining arguments to the positional parameters.\n" -" If there are no remaining arguments, the positional parameters\n" -" are unset.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" -" \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given." -msgstr "" - -#: builtins.c:1112 -msgid "" -"Unset values and attributes of shell variables and functions.\n" -" \n" -" For each NAME, remove the corresponding variable or function.\n" -" \n" -" Options:\n" -" -f\ttreat each NAME as a shell function\n" -" -v\ttreat each NAME as a shell variable\n" -" \n" -" Without options, unset first tries to unset a variable, and if that " -"fails,\n" -" tries to unset a function.\n" -" \n" -" Some variables cannot be unset; also see `readonly'.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or a NAME is read-only." -msgstr "" - -#: builtins.c:1132 -msgid "" -"Set export attribute for shell variables.\n" -" \n" -" Marks each NAME for automatic export to the environment of subsequently\n" -" executed commands. If VALUE is supplied, assign VALUE before " -"exporting.\n" -" \n" -" Options:\n" -" -f\trefer to shell functions\n" -" -n\tremove the export property from each NAME\n" -" -p\tdisplay a list of all exported variables and functions\n" -" \n" -" An argument of `--' disables further option processing.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or NAME is invalid." -msgstr "" - -#: builtins.c:1151 -msgid "" -"Mark shell variables as unchangeable.\n" -" \n" -" Mark each NAME as read-only; the values of these NAMEs may not be\n" -" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" -" before marking as read-only.\n" -" \n" -" Options:\n" -" -a\trefer to indexed array variables\n" -" -A\trefer to associative array variables\n" -" -f\trefer to shell functions\n" -" -p\tdisplay a list of all readonly variables and functions\n" -" \n" -" An argument of `--' disables further option processing.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or NAME is invalid." -msgstr "" - -#: builtins.c:1172 -msgid "" -"Shift positional parameters.\n" -" \n" -" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" -" not given, it is assumed to be 1.\n" -" \n" -" Exit Status:\n" -" Returns success unless N is negative or greater than $#." -msgstr "" - -#: builtins.c:1184 builtins.c:1199 -msgid "" -"Execute commands from a file in the current shell.\n" -" \n" -" Read and execute commands from FILENAME in the current shell. The\n" -" entries in $PATH are used to find the directory containing FILENAME.\n" -" If any ARGUMENTS are supplied, they become the positional parameters\n" -" when FILENAME is executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed in FILENAME; fails if\n" -" FILENAME cannot be read." -msgstr "" - -#: builtins.c:1215 -msgid "" -"Suspend shell execution.\n" -" \n" -" Suspend the execution of this shell until it receives a SIGCONT signal.\n" -" Unless forced, login shells cannot be suspended.\n" -" \n" -" Options:\n" -" -f\tforce the suspend, even if the shell is a login shell\n" -" \n" -" Exit Status:\n" -" Returns success unless job control is not enabled or an error occurs." -msgstr "" - -#: builtins.c:1231 -msgid "" -"Evaluate conditional expression.\n" -" \n" -" Exits with a status of 0 (true) or 1 (false) depending on\n" -" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" -" expressions are often used to examine the status of a file. There\n" -" are string operators and numeric comparison operators as well.\n" -" \n" -" The behavior of test depends on the number of arguments. Read the\n" -" bash manual page for the complete specification.\n" -" \n" -" File operators:\n" -" \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its `sticky' bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " -"read.\n" -" \n" -" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" -" modification date).\n" -" \n" -" FILE1 -ot FILE2 True if file1 is older than file2.\n" -" \n" -" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" -" \n" -" String operators:\n" -" \n" -" -z STRING True if string is empty.\n" -" \n" -" -n STRING\n" -" STRING True if string is not empty.\n" -" \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 lexicographically.\n" -" \n" -" Other operators:\n" -" \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" -v VAR\t True if the shell variable VAR is set\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" -" \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" -" \n" -" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" -" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2.\n" -" \n" -" Exit Status:\n" -" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" -" false or an invalid argument is given." -msgstr "" - -#: builtins.c:1311 -msgid "" -"Evaluate conditional expression.\n" -" \n" -" This is a synonym for the \"test\" builtin, but the last argument must\n" -" be a literal `]', to match the opening `['." -msgstr "" - -#: builtins.c:1320 -msgid "" -"Display process times.\n" -" \n" -" Prints the accumulated user and system times for the shell and all of " -"its\n" -" child processes.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" - -#: builtins.c:1332 -msgid "" -"Trap signals and other events.\n" -" \n" -" Defines and activates handlers to be run when the shell receives " -"signals\n" -" or other conditions.\n" -" \n" -" ARG is a command to be read and executed when the shell receives the\n" -" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" -" is supplied) or `-', each specified signal is reset to its original\n" -" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes.\n" -" \n" -" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " -"If\n" -" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command. " -"If\n" -" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or " -"a\n" -" script run by the . or source builtins finishes executing. A " -"SIGNAL_SPEC\n" -" of ERR means to execute ARG each time a command's failure would cause " -"the\n" -" shell to exit when the -e option is enabled.\n" -" \n" -" If no arguments are supplied, trap prints the list of commands " -"associated\n" -" with each signal.\n" -" \n" -" Options:\n" -" -l\tprint a list of signal names and their corresponding numbers\n" -" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" -" \n" -" Each SIGNAL_SPEC is either a signal name in or a signal " -"number.\n" -" Signal names are case insensitive and the SIG prefix is optional. A\n" -" signal may be sent to the shell with \"kill -signal $$\".\n" -" \n" -" Exit Status:\n" -" Returns success unless a SIGSPEC is invalid or an invalid option is " -"given." -msgstr "" - -#: builtins.c:1368 -msgid "" -"Display information about command type.\n" -" \n" -" For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" -" \n" -" Options:\n" -" -a\tdisplay all locations containing an executable named NAME;\n" -" \tincludes aliases, builtins, and functions, if and only if\n" -" \tthe `-p' option is not also used\n" -" -f\tsuppress shell function lookup\n" -" -P\tforce a PATH search for each NAME, even if it is an alias,\n" -" \tbuiltin, or function, and returns the name of the disk file\n" -" \tthat would be executed\n" -" -p\treturns either the name of the disk file that would be executed,\n" -" \tor nothing if `type -t NAME' would not return `file'.\n" -" -t\toutput a single word which is one of `alias', `keyword',\n" -" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" -" \treserved word, shell function, shell builtin, disk file, or not\n" -" \tfound, respectively\n" -" \n" -" Arguments:\n" -" NAME\tCommand name to be interpreted.\n" -" \n" -" Exit Status:\n" -" Returns success if all of the NAMEs are found; fails if any are not " -"found." -msgstr "" - -#: builtins.c:1399 -msgid "" -"Modify shell resource limits.\n" -" \n" -" Provides control over the resources available to the shell and " -"processes\n" -" it creates, on systems that allow such control.\n" -" \n" -" Options:\n" -" -S\tuse the `soft' resource limit\n" -" -H\tuse the `hard' resource limit\n" -" -a\tall current limits are reported\n" -" -b\tthe socket buffer size\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -e\tthe maximum scheduling priority (`nice')\n" -" -f\tthe maximum size of files written by the shell and its children\n" -" -i\tthe maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q\tthe maximum number of bytes in POSIX message queues\n" -" -r\tthe maximum real-time scheduling priority\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x\tthe maximum number of file locks\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource; the\n" -" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" -" current soft limit, the current hard limit, and no limit, respectively.\n" -" Otherwise, the current value of the specified resource is printed. If\n" -" no option is given, then -f is assumed.\n" -" \n" -" Values are in 1024-byte increments, except for -t, which is in seconds,\n" -" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" -" number of processes.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1444 -msgid "" -"Display or set file mode mask.\n" -" \n" -" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" -" the current value of the mask.\n" -" \n" -" If MODE begins with a digit, it is interpreted as an octal number;\n" -" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" -" \n" -" Options:\n" -" -p\tif MODE is omitted, output in a form that may be reused as input\n" -" -S\tmakes the output symbolic; otherwise an octal number is output\n" -" \n" -" Exit Status:\n" -" Returns success unless MODE is invalid or an invalid option is given." -msgstr "" - -#: builtins.c:1464 -msgid "" -"Wait for job completion and return exit status.\n" -" \n" -" Waits for the process identified by ID, which may be a process ID or a\n" -" job specification, and reports its termination status. If ID is not\n" -" given, waits for all currently active child processes, and the return\n" -" status is zero. If ID is a a job specification, waits for all " -"processes\n" -" in the job's pipeline.\n" -" \n" -" Exit Status:\n" -" Returns the status of ID; fails if ID is invalid or an invalid option " -"is\n" -" given." -msgstr "" - -#: builtins.c:1482 -msgid "" -"Wait for process completion and return exit status.\n" -" \n" -" Waits for the specified process and reports its termination status. If\n" -" PID is not given, all currently active child processes are waited for,\n" -" and the return code is zero. PID must be a process ID.\n" -" \n" -" Exit Status:\n" -" Returns the status of ID; fails if ID is invalid or an invalid option " -"is\n" -" given." -msgstr "" - -#: builtins.c:1497 -msgid "" -"Execute commands for each member in a list.\n" -" \n" -" The `for' loop executes a sequence of commands for each member in a\n" -" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" -" assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1511 -msgid "" -"Arithmetic for loop.\n" -" \n" -" Equivalent to\n" -" \t(( EXP1 ))\n" -" \twhile (( EXP2 )); do\n" -" \t\tCOMMANDS\n" -" \t\t(( EXP3 ))\n" -" \tdone\n" -" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1529 -msgid "" -"Select words from a list and execute commands.\n" -" \n" -" The WORDS are expanded, generating a list of words. The\n" -" set of expanded words is printed on the standard error, each\n" -" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" -" is assumed. The PS3 prompt is then displayed and a line read\n" -" from the standard input. If the line consists of the number\n" -" corresponding to one of the displayed words, then NAME is set\n" -" to that word. If the line is empty, WORDS and the prompt are\n" -" redisplayed. If EOF is read, the command completes. Any other\n" -" value read causes NAME to be set to null. The line read is saved\n" -" in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1550 -msgid "" -"Report time consumed by pipeline's execution.\n" -" \n" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" -" and system CPU time spent executing PIPELINE when it terminates.\n" -" \n" -" Options:\n" -" -p\tprint the timing summary in the portable Posix format\n" -" \n" -" The value of the TIMEFORMAT variable is used as the output format.\n" -" \n" -" Exit Status:\n" -" The return status is the return status of PIPELINE." -msgstr "" - -#: builtins.c:1567 -msgid "" -"Execute commands based on pattern matching.\n" -" \n" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" `|' is used to separate multiple patterns.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1579 -msgid "" -"Execute commands based on conditional.\n" -" \n" -" The `if COMMANDS' list is executed. If its exit status is zero, then " -"the\n" -" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " -"is\n" -" executed in turn, and if its exit status is zero, the corresponding\n" -" `then COMMANDS' list is executed and the if command completes. " -"Otherwise,\n" -" the `else COMMANDS' list is executed, if present. The exit status of " -"the\n" -" entire construct is the exit status of the last command executed, or " -"zero\n" -" if no condition tested true.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1596 -msgid "" -"Execute commands as long as a test succeeds.\n" -" \n" -" Expand and execute COMMANDS as long as the final command in the\n" -" `while' COMMANDS has an exit status of zero.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1608 -msgid "" -"Execute commands as long as a test does not succeed.\n" -" \n" -" Expand and execute COMMANDS as long as the final command in the\n" -" `until' COMMANDS has an exit status which is not zero.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1620 -msgid "" -"Create a coprocess named NAME.\n" -" \n" -" Execute COMMAND asynchronously, with the standard output and standard\n" -" input of the command connected via a pipe to file descriptors assigned\n" -" to indices 0 and 1 of an array variable NAME in the executing shell.\n" -" The default NAME is \"COPROC\".\n" -" \n" -" Exit Status:\n" -" Returns the exit status of COMMAND." -msgstr "" - -#: builtins.c:1634 -msgid "" -"Define shell function.\n" -" \n" -" Create a shell function named NAME. When invoked as a simple command,\n" -" NAME runs COMMANDs in the calling shell's context. When NAME is " -"invoked,\n" -" the arguments are passed to the function as $1...$n, and the function's\n" -" name is in $FUNCNAME.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is readonly." -msgstr "" - -#: builtins.c:1648 -msgid "" -"Group commands as a unit.\n" -" \n" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" - -#: builtins.c:1660 -msgid "" -"Resume job in foreground.\n" -" \n" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" -" stopped or background job. JOB_SPEC can specify either a job name\n" -" or a job number. Following JOB_SPEC with a `&' places the job in\n" -" the background, as if the job specification had been supplied as an\n" -" argument to `bg'.\n" -" \n" -" Exit Status:\n" -" Returns the status of the resumed job." -msgstr "" - -#: builtins.c:1675 -msgid "" -"Evaluate arithmetic expression.\n" -" \n" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to \"let EXPRESSION\".\n" -" \n" -" Exit Status:\n" -" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." -msgstr "" - -#: builtins.c:1687 -msgid "" -"Execute conditional command.\n" -" \n" -" Returns a status of 0 or 1 depending on the evaluation of the " -"conditional\n" -" expression EXPRESSION. Expressions are composed of the same primaries " -"used\n" -" by the `test' builtin, and may be combined using the following " -"operators:\n" -" \n" -" ( EXPRESSION )\tReturns the value of EXPRESSION\n" -" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" -" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" -" \n" -" When the `==' and `!=' operators are used, the string to the right of\n" -" the operator is used as a pattern and pattern matching is performed.\n" -" When the `=~' operator is used, the string to the right of the operator\n" -" is matched as a regular expression.\n" -" \n" -" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value.\n" -" \n" -" Exit Status:\n" -" 0 or 1 depending on value of EXPRESSION." -msgstr "" - -#: builtins.c:1713 -msgid "" -"Common shell variable names and usage.\n" -" \n" -" BASH_VERSION\tVersion information for this Bash.\n" -" CDPATH\tA colon-separated list of directories to search\n" -" \t\tfor directories given as arguments to `cd'.\n" -" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" -" \t\tbe ignored by pathname expansion.\n" -" HISTFILE\tThe name of the file where your command history is stored.\n" -" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" -" HISTSIZE\tThe maximum number of history lines that a running\n" -" \t\tshell can access.\n" -" HOME\tThe complete pathname to your login directory.\n" -" HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" -" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" -" \t\tcharacter as the sole input. If set, then the value\n" -" \t\tof it is the number of EOF characters that can be seen\n" -" \t\tin a row on an empty line before the shell will exit\n" -" \t\t(default 10). When unset, EOF signifies the end of input.\n" -" MACHTYPE\tA string describing the current system Bash is running on.\n" -" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" -" MAILPATH\tA colon-separated list of filenames which Bash checks\n" -" \t\tfor new mail.\n" -" OSTYPE\tThe version of Unix this version of Bash is running on.\n" -" PATH\tA colon-separated list of directories to search when\n" -" \t\tlooking for commands.\n" -" PROMPT_COMMAND\tA command to be executed before the printing of each\n" -" \t\tprimary prompt.\n" -" PS1\t\tThe primary prompt string.\n" -" PS2\t\tThe secondary prompt string.\n" -" PWD\t\tThe full pathname of the current directory.\n" -" SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM\tThe name of the current terminal type.\n" -" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" -" \t\t`time' reserved word.\n" -" auto_resume\tNon-null means a command word appearing on a line by\n" -" \t\titself is first looked for in the list of currently\n" -" \t\tstopped jobs. If found there, that job is foregrounded.\n" -" \t\tA value of `exact' means that the command word must\n" -" \t\texactly match a command in the list of stopped jobs. A\n" -" \t\tvalue of `substring' means that the command word must\n" -" \t\tmatch a substring of the job. Any other value means that\n" -" \t\tthe command must be a prefix of a stopped job.\n" -" histchars\tCharacters controlling history expansion and quick\n" -" \t\tsubstitution. The first character is the history\n" -" \t\tsubstitution character, usually `!'. The second is\n" -" \t\tthe `quick substitution' character, usually `^'. The\n" -" \t\tthird is the `history comment' character, usually `#'.\n" -" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" -" \t\tcommands should be saved on the history list.\n" -msgstr "" - -#: builtins.c:1770 -msgid "" -"Add directories to stack.\n" -" \n" -" Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when adding\n" -" \tdirectories to the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" dir\tAdds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" The `dirs' builtin displays the directory stack.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid argument is supplied or the directory\n" -" change fails." -msgstr "" - -#: builtins.c:1804 -msgid "" -"Remove directories from stack.\n" -" \n" -" Removes entries from the directory stack. With no arguments, removes\n" -" the top directory from the stack, and changes to the new top directory.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when removing\n" -" \tdirectories from the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRemoves the Nth entry counting from the left of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd +0'\n" -" \tremoves the first directory, `popd +1' the second.\n" -" \n" -" -N\tRemoves the Nth entry counting from the right of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd -0'\n" -" \tremoves the last directory, `popd -1' the next to last.\n" -" \n" -" The `dirs' builtin displays the directory stack.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid argument is supplied or the directory\n" -" change fails." -msgstr "" - -#: builtins.c:1834 -msgid "" -"Display directory stack.\n" -" \n" -" Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the `pushd' command; you can get\n" -" back up through the list with the `popd' command.\n" -" \n" -" Options:\n" -" -c\tclear the directory stack by deleting all of the elements\n" -" -l\tdo not print tilde-prefixed versions of directories relative\n" -" \tto your home directory\n" -" -p\tprint the directory stack with one entry per line\n" -" -v\tprint the directory stack with one entry per line prefixed\n" -" \twith its position in the stack\n" -" \n" -" Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1863 -msgid "" -"Set and unset shell options.\n" -" \n" -" Change the setting of each shell option OPTNAME. Without any option\n" -" arguments, list all shell options with an indication of whether or not " -"each\n" -" is set.\n" -" \n" -" Options:\n" -" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" -" -p\tprint each shell option with an indication of its status\n" -" -q\tsuppress output\n" -" -s\tenable (set) each OPTNAME\n" -" -u\tdisable (unset) each OPTNAME\n" -" \n" -" Exit Status:\n" -" Returns success if OPTNAME is enabled; fails if an invalid option is\n" -" given or OPTNAME is disabled." -msgstr "" - -#: builtins.c:1884 -msgid "" -"Formats and prints ARGUMENTS under control of the FORMAT.\n" -" \n" -" Options:\n" -" -v var\tassign the output to shell variable VAR rather than\n" -" \t\tdisplay it on the standard output\n" -" \n" -" FORMAT is a character string which contains three types of objects: " -"plain\n" -" characters, which are simply copied to standard output; character " -"escape\n" -" sequences, which are converted and copied to the standard output; and\n" -" format specifications, each of which causes printing of the next " -"successive\n" -" argument.\n" -" \n" -" In addition to the standard format specifications described in printf" -"(1)\n" -" and printf(3), printf interprets:\n" -" \n" -" %b\texpand backslash escape sequences in the corresponding argument\n" -" %q\tquote the argument in a way that can be reused as shell input\n" -" %(fmt)T output the date-time string resulting from using FMT as a " -"format\n" -" string for strftime(3)\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or a write or " -"assignment\n" -" error occurs." -msgstr "" - -#: builtins.c:1913 -msgid "" -"Specify how arguments are to be completed by Readline.\n" -" \n" -" For each NAME, specify how arguments are to be completed. If no " -"options\n" -" are supplied, existing completion specifications are printed in a way " -"that\n" -" allows them to be reused as input.\n" -" \n" -" Options:\n" -" -p\tprint existing completion specifications in a reusable format\n" -" -r\tremove a completion specification for each NAME, or, if no\n" -" \tNAMEs are supplied, all completion specifications\n" -" -D\tapply the completions and actions as the default for commands\n" -" \twithout any specific completion defined\n" -" -E\tapply the completions and actions to \"empty\" commands --\n" -" \tcompletion attempted on a blank line\n" -" \n" -" When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above. The -D option takes\n" -" precedence over -E.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1941 -msgid "" -"Display possible completions depending on the options.\n" -" \n" -" Intended to be used from within a shell function generating possible\n" -" completions. If the optional WORD argument is supplied, matches " -"against\n" -" WORD are generated.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" - -#: builtins.c:1956 -msgid "" -"Modify or display completion options.\n" -" \n" -" Modify the completion options for each NAME, or, if no NAMEs are " -"supplied,\n" -" the completion currently being executed. If no OPTIONs are given, " -"print\n" -" the completion options for each NAME or the current completion " -"specification.\n" -" \n" -" Options:\n" -" \t-o option\tSet completion option OPTION for each NAME\n" -" \t-D\t\tChange options for the \"default\" command completion\n" -" \t-E\t\tChange options for the \"empty\" command completion\n" -" \n" -" Using `+o' instead of `-o' turns off the specified option.\n" -" \n" -" Arguments:\n" -" \n" -" Each NAME refers to a command for which a completion specification must\n" -" have previously been defined using the `complete' builtin. If no NAMEs\n" -" are supplied, compopt must be called by a function currently generating\n" -" completions, and the options for that currently-executing completion\n" -" generator are modified.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or NAME does not\n" -" have a completion specification defined." -msgstr "" - -#: builtins.c:1986 -msgid "" -"Read lines from the standard input into an indexed array variable.\n" -" \n" -" Read lines from the standard input into the indexed array variable " -"ARRAY, or\n" -" from file descriptor FD if the -u option is supplied. The variable " -"MAPFILE\n" -" is the default ARRAY.\n" -" \n" -" Options:\n" -" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " -"copied.\n" -" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " -"index is 0.\n" -" -s count \tDiscard the first COUNT lines read.\n" -" -t\t\tRemove a trailing newline from each line read.\n" -" -u fd\t\tRead lines from file descriptor FD instead of the standard " -"input.\n" -" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" -" -c quantum\tSpecify the number of lines read between each call to " -"CALLBACK.\n" -" \n" -" Arguments:\n" -" ARRAY\t\tArray variable name to use for file data.\n" -" \n" -" If -C is supplied without -c, the default quantum is 5000. When\n" -" CALLBACK is evaluated, it is supplied the index of the next array\n" -" element to be assigned and the line to be assigned to that element\n" -" as additional arguments.\n" -" \n" -" If not supplied with an explicit origin, mapfile will clear ARRAY " -"before\n" -" assigning to it.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly " -"or\n" -" not an indexed array." -msgstr "" - -#: builtins.c:2020 -msgid "" -"Read lines from a file into an array variable.\n" -" \n" -" A synonym for `mapfile'." -msgstr "" diff --git a/po/builtins.pot b/po/builtins.pot deleted file mode 100644 index e30179c3a..000000000 --- a/po/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/foo.new.po b/po/foo.new.po deleted file mode 100644 index b4771c053..000000000 --- a/po/foo.new.po +++ /dev/null @@ -1,5521 +0,0 @@ -# English translations for GNU bash package. -# Copyright (C) 2011 Free Software Foundation, Inc. -# This file is distributed under the same license as the GNU bash package. -# Automatically generated, 2011. -# -# 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. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU bash 4.2-release\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-05 21:31-0500\n" -"PO-Revision-Date: 2011-01-28 22:09-0500\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: arrayfunc.c:51 -msgid "bad array subscript" -msgstr "bad array subscript" - -#: arrayfunc.c:330 builtins/declare.def:487 -#, c-format -msgid "%s: cannot convert indexed to associative array" -msgstr "%s: cannot convert indexed to associative array" - -#: arrayfunc.c:513 -#, c-format -msgid "%s: invalid associative array key" -msgstr "%s: invalid associative array key" - -#: arrayfunc.c:515 -#, c-format -msgid "%s: cannot assign to non-numeric index" -msgstr "%s: cannot assign to non-numeric index" - -#: arrayfunc.c:557 -#, c-format -msgid "%s: %s: must use subscript when assigning associative array" -msgstr "%s: %s: must use subscript when assigning associative array" - -#: bashhist.c:388 -#, c-format -msgid "%s: cannot create: %s" -msgstr "%s: cannot create: %s" - -#: bashline.c:3841 -msgid "bash_execute_unix_command: cannot find keymap for command" -msgstr "bash_execute_unix_command: cannot find keymap for command" - -#: bashline.c:3928 -#, c-format -msgid "%s: first non-whitespace character is not `\"'" -msgstr "%s: first non-whitespace character is not ‘\"’" - -#: bashline.c:3957 -#, c-format -msgid "no closing `%c' in %s" -msgstr "no closing ‘%c’ in %s" - -#: bashline.c:3991 -#, c-format -msgid "%s: missing colon separator" -msgstr "%s: missing colon separator" - -#: builtins/alias.def:132 -#, c-format -msgid "`%s': invalid alias name" -msgstr "‘%s’: invalid alias name" - -#: builtins/bind.def:123 builtins/bind.def:126 -msgid "line editing not enabled" -msgstr "line editing not enabled" - -#: builtins/bind.def:212 -#, c-format -msgid "`%s': invalid keymap name" -msgstr "‘%s’: invalid keymap name" - -#: builtins/bind.def:251 -#, c-format -msgid "%s: cannot read: %s" -msgstr "%s: cannot read: %s" - -#: builtins/bind.def:266 -#, c-format -msgid "`%s': cannot unbind" -msgstr "‘%s’: cannot unbind" - -#: builtins/bind.def:304 builtins/bind.def:334 -#, c-format -msgid "`%s': unknown function name" -msgstr "‘%s’: unknown function name" - -#: builtins/bind.def:312 -#, c-format -msgid "%s is not bound to any keys.\n" -msgstr "%s is not bound to any keys.\n" - -#: builtins/bind.def:316 -#, c-format -msgid "%s can be invoked via " -msgstr "%s can be invoked via " - -#: builtins/break.def:77 builtins/break.def:117 -msgid "loop count" -msgstr "loop count" - -#: builtins/break.def:137 -msgid "only meaningful in a `for', `while', or `until' loop" -msgstr "only meaningful in a ‘for’, ‘while’, or ‘until’ loop" - -#: builtins/caller.def:133 -msgid "" -"Returns the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns " -msgstr "" -"Returns the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns " - -#: builtins/cd.def:239 -msgid "HOME not set" -msgstr "HOME not set" - -#: builtins/cd.def:247 builtins/common.c:166 test.c:832 -msgid "too many arguments" -msgstr "too many arguments" - -#: builtins/cd.def:258 -msgid "OLDPWD not set" -msgstr "OLDPWD not set" - -#: builtins/common.c:101 -#, c-format -msgid "line %d: " -msgstr "line %d: " - -#: builtins/common.c:139 error.c:265 -#, c-format -msgid "warning: " -msgstr "warning: " - -#: builtins/common.c:153 -#, c-format -msgid "%s: usage: " -msgstr "%s: usage: " - -#: builtins/common.c:191 shell.c:504 shell.c:786 -#, c-format -msgid "%s: option requires an argument" -msgstr "%s: option requires an argument" - -#: builtins/common.c:198 -#, c-format -msgid "%s: numeric argument required" -msgstr "%s: numeric argument required" - -#: builtins/common.c:205 -#, c-format -msgid "%s: not found" -msgstr "%s: not found" - -#: builtins/common.c:214 shell.c:799 -#, c-format -msgid "%s: invalid option" -msgstr "%s: invalid option" - -#: builtins/common.c:221 -#, c-format -msgid "%s: invalid option name" -msgstr "%s: invalid option name" - -#: builtins/common.c:228 general.c:234 general.c:239 -#, c-format -msgid "`%s': not a valid identifier" -msgstr "‘%s’: not a valid identifier" - -#: builtins/common.c:238 -msgid "invalid octal number" -msgstr "invalid octal number" - -#: builtins/common.c:240 -msgid "invalid hex number" -msgstr "invalid hex number" - -#: builtins/common.c:242 expr.c:1431 -msgid "invalid number" -msgstr "invalid number" - -#: builtins/common.c:250 -#, c-format -msgid "%s: invalid signal specification" -msgstr "%s: invalid signal specification" - -#: builtins/common.c:257 -#, c-format -msgid "`%s': not a pid or valid job spec" -msgstr "‘%s’: not a pid or valid job spec" - -#: builtins/common.c:264 error.c:458 -#, c-format -msgid "%s: readonly variable" -msgstr "%s: readonly variable" - -#: builtins/common.c:272 -#, c-format -msgid "%s: %s out of range" -msgstr "%s: %s out of range" - -#: builtins/common.c:272 builtins/common.c:274 -msgid "argument" -msgstr "argument" - -#: builtins/common.c:274 -#, c-format -msgid "%s out of range" -msgstr "%s out of range" - -#: builtins/common.c:282 -#, c-format -msgid "%s: no such job" -msgstr "%s: no such job" - -#: builtins/common.c:290 -#, c-format -msgid "%s: no job control" -msgstr "%s: no job control" - -#: builtins/common.c:292 -msgid "no job control" -msgstr "no job control" - -#: builtins/common.c:302 -#, c-format -msgid "%s: restricted" -msgstr "%s: restricted" - -#: builtins/common.c:304 -msgid "restricted" -msgstr "restricted" - -#: builtins/common.c:312 -#, c-format -msgid "%s: not a shell builtin" -msgstr "%s: not a shell builtin" - -#: builtins/common.c:321 -#, c-format -msgid "write error: %s" -msgstr "write error: %s" - -#: builtins/common.c:329 -#, c-format -msgid "error setting terminal attributes: %s" -msgstr "error setting terminal attributes: %s" - -#: builtins/common.c:331 -#, c-format -msgid "error getting terminal attributes: %s" -msgstr "error getting terminal attributes: %s" - -#: builtins/common.c:563 -#, c-format -msgid "%s: error retrieving current directory: %s: %s\n" -msgstr "%s: error retrieving current directory: %s: %s\n" - -#: builtins/common.c:629 builtins/common.c:631 -#, c-format -msgid "%s: ambiguous job spec" -msgstr "%s: ambiguous job spec" - -#: builtins/complete.def:277 -#, c-format -msgid "%s: invalid action name" -msgstr "%s: invalid action name" - -#: builtins/complete.def:450 builtins/complete.def:645 -#: builtins/complete.def:855 -#, c-format -msgid "%s: no completion specification" -msgstr "%s: no completion specification" - -#: builtins/complete.def:697 -msgid "warning: -F option may not work as you expect" -msgstr "warning: -F option may not work as you expect" - -#: builtins/complete.def:699 -msgid "warning: -C option may not work as you expect" -msgstr "warning: -C option may not work as you expect" - -#: builtins/complete.def:828 -msgid "not currently executing completion function" -msgstr "not currently executing completion function" - -#: builtins/declare.def:124 -msgid "can only be used in a function" -msgstr "can only be used in a function" - -#: builtins/declare.def:366 -msgid "cannot use `-f' to make functions" -msgstr "cannot use ‘-f’ to make functions" - -#: builtins/declare.def:378 execute_cmd.c:5253 -#, c-format -msgid "%s: readonly function" -msgstr "%s: readonly function" - -#: builtins/declare.def:474 -#, c-format -msgid "%s: cannot destroy array variables in this way" -msgstr "%s: cannot destroy array variables in this way" - -#: builtins/declare.def:481 builtins/read.def:702 -#, c-format -msgid "%s: cannot convert associative to indexed array" -msgstr "%s: cannot convert associative to indexed array" - -#: builtins/enable.def:137 builtins/enable.def:145 -msgid "dynamic loading not available" -msgstr "dynamic loading not available" - -#: builtins/enable.def:312 -#, c-format -msgid "cannot open shared object %s: %s" -msgstr "cannot open shared object %s: %s" - -#: builtins/enable.def:335 -#, c-format -msgid "cannot find %s in shared object %s: %s" -msgstr "cannot find %s in shared object %s: %s" - -#: builtins/enable.def:459 -#, c-format -msgid "%s: not dynamically loaded" -msgstr "%s: not dynamically loaded" - -#: builtins/enable.def:474 -#, c-format -msgid "%s: cannot delete: %s" -msgstr "%s: cannot delete: %s" - -#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100 -#: shell.c:1461 -#, c-format -msgid "%s: is a directory" -msgstr "%s: is a directory" - -#: builtins/evalfile.c:140 -#, c-format -msgid "%s: not a regular file" -msgstr "%s: not a regular file" - -#: builtins/evalfile.c:148 -#, c-format -msgid "%s: file is too large" -msgstr "%s: file is too large" - -#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "%s: cannot execute binary file" - -#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228 -#, c-format -msgid "%s: cannot execute: %s" -msgstr "%s: cannot execute: %s" - -#: builtins/exit.def:65 -#, c-format -msgid "logout\n" -msgstr "logout\n" - -#: builtins/exit.def:88 -msgid "not login shell: use `exit'" -msgstr "not login shell: use ‘exit’" - -#: builtins/exit.def:120 -#, c-format -msgid "There are stopped jobs.\n" -msgstr "There are stopped jobs.\n" - -#: builtins/exit.def:122 -#, c-format -msgid "There are running jobs.\n" -msgstr "There are running jobs.\n" - -#: builtins/fc.def:262 -msgid "no command found" -msgstr "no command found" - -#: builtins/fc.def:312 builtins/fc.def:359 -msgid "history specification" -msgstr "history specification" - -#: builtins/fc.def:380 -#, c-format -msgid "%s: cannot open temp file: %s" -msgstr "%s: cannot open temp file: %s" - -#: builtins/fg_bg.def:149 builtins/jobs.def:282 -msgid "current" -msgstr "current" - -#: builtins/fg_bg.def:158 -#, c-format -msgid "job %d started without job control" -msgstr "job %d started without job control" - -#: builtins/getopt.c:110 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: illegal option -- %c\n" - -#: builtins/getopt.c:111 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: option requires an argument -- %c\n" - -#: builtins/hash.def:92 -msgid "hashing disabled" -msgstr "hashing disabled" - -#: builtins/hash.def:138 -#, c-format -msgid "%s: hash table empty\n" -msgstr "%s: hash table empty\n" - -#: builtins/hash.def:245 -#, c-format -msgid "hits\tcommand\n" -msgstr "hits\tcommand\n" - -#: builtins/help.def:130 -#, c-format -msgid "Shell commands matching keyword `" -msgid_plural "Shell commands matching keywords `" -msgstr[0] "Shell commands matching keyword `" -msgstr[1] "Shell commands matching keywords `" - -#: builtins/help.def:168 -#, 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:185 -#, c-format -msgid "%s: cannot open: %s" -msgstr "%s: cannot open: %s" - -#: builtins/help.def:337 -#, c-format -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:154 -msgid "cannot use more than one of -anrw" -msgstr "cannot use more than one of -anrw" - -#: builtins/history.def:186 -msgid "history position" -msgstr "history position" - -#: builtins/history.def:366 -#, c-format -msgid "%s: history expansion failed" -msgstr "%s: history expansion failed" - -#: builtins/inlib.def:71 -#, c-format -msgid "%s: inlib failed" -msgstr "%s: inlib failed" - -#: builtins/jobs.def:109 -msgid "no other options allowed with `-x'" -msgstr "no other options allowed with ‘-x’" - -#: builtins/kill.def:198 -#, c-format -msgid "%s: arguments must be process or job IDs" -msgstr "%s: arguments must be process or job IDs" - -#: builtins/kill.def:261 -msgid "Unknown error" -msgstr "Unknown error" - -#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592 -msgid "expression expected" -msgstr "expression expected" - -#: builtins/mapfile.def:172 -#, c-format -msgid "%s: not an indexed array" -msgstr "%s: not an indexed array" - -#: builtins/mapfile.def:256 builtins/read.def:299 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "%s: invalid file descriptor specification" - -#: builtins/mapfile.def:264 builtins/read.def:306 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "%d: invalid file descriptor: %s" - -#: builtins/mapfile.def:273 builtins/mapfile.def:311 -#, c-format -msgid "%s: invalid line count" -msgstr "%s: invalid line count" - -#: builtins/mapfile.def:284 -#, c-format -msgid "%s: invalid array origin" -msgstr "%s: invalid array origin" - -#: builtins/mapfile.def:301 -#, c-format -msgid "%s: invalid callback quantum" -msgstr "%s: invalid callback quantum" - -#: builtins/mapfile.def:333 -msgid "empty array variable name" -msgstr "empty array variable name" - -#: builtins/mapfile.def:354 -msgid "array variable support required" -msgstr "array variable support required" - -#: builtins/printf.def:397 -#, c-format -msgid "`%s': missing format character" -msgstr "‘%s’: missing format character" - -#: builtins/printf.def:451 -#, c-format -msgid "`%c': invalid time format specification" -msgstr "‘%c’: invalid time format specification" - -#: builtins/printf.def:647 -#, c-format -msgid "`%c': invalid format character" -msgstr "‘%c’: invalid format character" - -#: builtins/printf.def:673 -#, c-format -msgid "warning: %s: %s" -msgstr "warning: %s: %s" - -#: builtins/printf.def:854 -msgid "missing hex digit for \\x" -msgstr "missing hex digit for \\x" - -#: builtins/printf.def:869 -#, c-format -msgid "missing unicode digit for \\%c" -msgstr "missing unicode digit for \\%c" - -#: builtins/pushd.def:195 -msgid "no other directory" -msgstr "no other directory" - -#: builtins/pushd.def:462 -msgid "" -msgstr "" - -#: builtins/pushd.def:506 -msgid "directory stack empty" -msgstr "directory stack empty" - -#: builtins/pushd.def:508 -msgid "directory stack index" -msgstr "directory stack index" - -#: builtins/pushd.def:683 -msgid "" -"Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the `pushd' command; you can get\n" -" back up through the list with the `popd' command.\n" -" \n" -" Options:\n" -" -c\tclear the directory stack by deleting all of the elements\n" -" -l\tdo not print tilde-prefixed versions of directories relative\n" -" \tto your home directory\n" -" -p\tprint the directory stack with one entry per line\n" -" -v\tprint the directory stack with one entry per line prefixed\n" -" \twith its position in the stack\n" -" \n" -" Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" -"\tdirs when invoked without options, starting with zero." -msgstr "" -"Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the ‘pushd’ command; you can get\n" -" back up through the list with the ‘popd’ command.\n" -" \n" -" Options:\n" -" -c\tclear the directory stack by deleting all of the elements\n" -" -l\tdo not print tilde-prefixed versions of directories relative\n" -" \tto your home directory\n" -" -p\tprint the directory stack with one entry per line\n" -" -v\tprint the directory stack with one entry per line prefixed\n" -" \twith its position in the stack\n" -" \n" -" Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" -"\tdirs when invoked without options, starting with zero." - -#: builtins/pushd.def:705 -msgid "" -"Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when adding\n" -" \tdirectories to the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" dir\tAdds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" The `dirs' builtin displays the directory stack." -msgstr "" -"Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when adding\n" -" \tdirectories to the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by ‘dirs’, starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by ‘dirs’, starting with\n" -" \tzero) is at the top.\n" -" \n" -" dir\tAdds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" The ‘dirs’ builtin displays the directory stack." - -#: builtins/pushd.def:730 -msgid "" -"Removes entries from the directory stack. With no arguments, removes\n" -" the top directory from the stack, and changes to the new top directory.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when removing\n" -" \tdirectories from the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRemoves the Nth entry counting from the left of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd +0'\n" -" \tremoves the first directory, `popd +1' the second.\n" -" \n" -" -N\tRemoves the Nth entry counting from the right of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd -0'\n" -" \tremoves the last directory, `popd -1' the next to last.\n" -" \n" -" The `dirs' builtin displays the directory stack." -msgstr "" -"Removes entries from the directory stack. With no arguments, removes\n" -" the top directory from the stack, and changes to the new top directory.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when removing\n" -" \tdirectories from the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRemoves the Nth entry counting from the left of the list\n" -" \tshown by ‘dirs’, starting with zero. For example: ‘popd +0’\n" -" \tremoves the first directory, ‘popd +1’ the second.\n" -" \n" -" -N\tRemoves the Nth entry counting from the right of the list\n" -" \tshown by ‘dirs’, starting with zero. For example: ‘popd -0’\n" -" \tremoves the last directory, ‘popd -1’ the next to last.\n" -" \n" -" The ‘dirs’ builtin displays the directory stack." - -#: builtins/read.def:272 -#, c-format -msgid "%s: invalid timeout specification" -msgstr "%s: invalid timeout specification" - -#: builtins/read.def:644 -#, c-format -msgid "read error: %d: %s" -msgstr "read error: %d: %s" - -#: builtins/return.def:75 -msgid "can only `return' from a function or sourced script" -msgstr "can only ‘return’ from a function or sourced script" - -#: builtins/set.def:771 -msgid "cannot simultaneously unset a function and a variable" -msgstr "cannot simultaneously unset a function and a variable" - -#: builtins/set.def:812 -#, c-format -msgid "%s: cannot unset" -msgstr "%s: cannot unset" - -#: builtins/set.def:829 -#, c-format -msgid "%s: cannot unset: readonly %s" -msgstr "%s: cannot unset: readonly %s" - -#: builtins/set.def:841 -#, c-format -msgid "%s: not an array variable" -msgstr "%s: not an array variable" - -#: builtins/setattr.def:186 -#, c-format -msgid "%s: not a function" -msgstr "%s: not a function" - -#: builtins/shift.def:71 builtins/shift.def:77 -msgid "shift count" -msgstr "shift count" - -#: builtins/shopt.def:277 -msgid "cannot set and unset shell options simultaneously" -msgstr "cannot set and unset shell options simultaneously" - -#: builtins/shopt.def:342 -#, c-format -msgid "%s: invalid shell option name" -msgstr "%s: invalid shell option name" - -#: builtins/source.def:130 -msgid "filename argument required" -msgstr "filename argument required" - -#: builtins/source.def:155 -#, c-format -msgid "%s: file not found" -msgstr "%s: file not found" - -#: builtins/suspend.def:101 -msgid "cannot suspend" -msgstr "cannot suspend" - -#: builtins/suspend.def:111 -msgid "cannot suspend a login shell" -msgstr "cannot suspend a login shell" - -#: builtins/type.def:234 -#, c-format -msgid "%s is aliased to `%s'\n" -msgstr "%s is aliased to ‘%s’\n" - -#: builtins/type.def:255 -#, c-format -msgid "%s is a shell keyword\n" -msgstr "%s is a shell keyword\n" - -#: builtins/type.def:274 -#, c-format -msgid "%s is a function\n" -msgstr "%s is a function\n" - -#: builtins/type.def:296 -#, c-format -msgid "%s is a shell builtin\n" -msgstr "%s is a shell builtin\n" - -#: builtins/type.def:317 builtins/type.def:393 -#, c-format -msgid "%s is %s\n" -msgstr "%s is %s\n" - -#: builtins/type.def:337 -#, c-format -msgid "%s is hashed (%s)\n" -msgstr "%s is hashed (%s)\n" - -#: builtins/ulimit.def:379 -#, c-format -msgid "%s: invalid limit argument" -msgstr "%s: invalid limit argument" - -#: builtins/ulimit.def:405 -#, c-format -msgid "`%c': bad command" -msgstr "‘%c’: bad command" - -#: builtins/ulimit.def:434 -#, c-format -msgid "%s: cannot get limit: %s" -msgstr "%s: cannot get limit: %s" - -#: builtins/ulimit.def:460 -msgid "limit" -msgstr "limit" - -#: builtins/ulimit.def:472 builtins/ulimit.def:772 -#, c-format -msgid "%s: cannot modify limit: %s" -msgstr "%s: cannot modify limit: %s" - -#: builtins/umask.def:118 -msgid "octal number" -msgstr "octal number" - -#: builtins/umask.def:231 -#, c-format -msgid "`%c': invalid symbolic mode operator" -msgstr "‘%c’: invalid symbolic mode operator" - -#: builtins/umask.def:286 -#, c-format -msgid "`%c': invalid symbolic mode character" -msgstr "‘%c’: invalid symbolic mode character" - -#: error.c:90 error.c:325 error.c:327 error.c:329 -msgid " line " -msgstr " line " - -#: error.c:165 -#, c-format -msgid "last command: %s\n" -msgstr "last command: %s\n" - -#: error.c:173 -#, c-format -msgid "Aborting..." -msgstr "Aborting..." - -#: error.c:410 -msgid "unknown command error" -msgstr "unknown command error" - -#: error.c:411 -msgid "bad command type" -msgstr "bad command type" - -#: error.c:412 -msgid "bad connector" -msgstr "bad connector" - -#: error.c:413 -msgid "bad jump" -msgstr "bad jump" - -#: error.c:451 -#, c-format -msgid "%s: unbound variable" -msgstr "%s: unbound variable" - -#: eval.c:181 -#, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\atimed out waiting for input: auto-logout\n" - -#: execute_cmd.c:504 -#, c-format -msgid "cannot redirect standard input from /dev/null: %s" -msgstr "cannot redirect standard input from /dev/null: %s" - -#: execute_cmd.c:1199 -#, c-format -msgid "TIMEFORMAT: `%c': invalid format character" -msgstr "TIMEFORMAT: ‘%c’: invalid format character" - -#: execute_cmd.c:2240 -msgid "pipe error" -msgstr "pipe error" - -#: execute_cmd.c:4284 -#, c-format -msgid "%s: maximum function nesting level exceeded (%d)" -msgstr "" - -#: execute_cmd.c:4777 -#, c-format -msgid "%s: restricted: cannot specify `/' in command names" -msgstr "%s: restricted: cannot specify ‘/’ in command names" - -#: execute_cmd.c:4872 -#, c-format -msgid "%s: command not found" -msgstr "%s: command not found" - -#: execute_cmd.c:5098 -#, c-format -msgid "%s: %s" -msgstr "%s: %s" - -#: execute_cmd.c:5135 -#, c-format -msgid "%s: %s: bad interpreter" -msgstr "%s: %s: bad interpreter" - -#: execute_cmd.c:5172 -#, fuzzy, c-format -msgid "%s: cannot execute binary file: %s" -msgstr "%s: cannot execute binary file" - -#: execute_cmd.c:5244 -#, fuzzy, c-format -msgid "`%s': is a special builtin" -msgstr "%s is a shell builtin\n" - -#: execute_cmd.c:5296 -#, c-format -msgid "cannot duplicate fd %d to fd %d" -msgstr "cannot duplicate fd %d to fd %d" - -#: expr.c:258 -msgid "expression recursion level exceeded" -msgstr "expression recursion level exceeded" - -#: expr.c:282 -msgid "recursion stack underflow" -msgstr "recursion stack underflow" - -#: expr.c:430 -msgid "syntax error in expression" -msgstr "syntax error in expression" - -#: expr.c:474 -msgid "attempted assignment to non-variable" -msgstr "attempted assignment to non-variable" - -#: expr.c:493 expr.c:838 -msgid "division by 0" -msgstr "division by 0" - -#: expr.c:540 -msgid "bug: bad expassign token" -msgstr "bug: bad expassign token" - -#: expr.c:589 -msgid "`:' expected for conditional expression" -msgstr "‘:’ expected for conditional expression" - -#: expr.c:895 -msgid "exponent less than 0" -msgstr "exponent less than 0" - -#: expr.c:948 -msgid "identifier expected after pre-increment or pre-decrement" -msgstr "identifier expected after pre-increment or pre-decrement" - -#: expr.c:973 -msgid "missing `)'" -msgstr "missing ‘)’" - -#: expr.c:1024 expr.c:1351 -msgid "syntax error: operand expected" -msgstr "syntax error: operand expected" - -#: expr.c:1353 -msgid "syntax error: invalid arithmetic operator" -msgstr "syntax error: invalid arithmetic operator" - -#: expr.c:1377 -#, c-format -msgid "%s%s%s: %s (error token is \"%s\")" -msgstr "%s%s%s: %s (error token is “%s”)" - -#: expr.c:1435 -msgid "invalid arithmetic base" -msgstr "invalid arithmetic base" - -#: expr.c:1455 -msgid "value too great for base" -msgstr "value too great for base" - -#: expr.c:1504 -#, c-format -msgid "%s: expression error\n" -msgstr "%s: expression error\n" - -#: general.c:61 -msgid "getcwd: cannot access parent directories" -msgstr "getcwd: cannot access parent directories" - -#: input.c:99 subst.c:5094 -#, c-format -msgid "cannot reset nodelay mode for fd %d" -msgstr "cannot reset nodelay mode for fd %d" - -#: input.c:265 -#, 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:273 -#, 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:470 -msgid "start_pipeline: pgrp pipe" -msgstr "start_pipeline: pgrp pipe" - -#: jobs.c:891 -#, c-format -msgid "forked pid %d appears in running job %d" -msgstr "forked pid %d appears in running job %d" - -#: jobs.c:1009 -#, c-format -msgid "deleting stopped job %d with process group %ld" -msgstr "deleting stopped job %d with process group %ld" - -#: jobs.c:1114 -#, c-format -msgid "add_process: process %5ld (%s) in the_pipeline" -msgstr "add_process: process %5ld (%s) in the_pipeline" - -#: jobs.c:1117 -#, c-format -msgid "add_process: pid %5ld (%s) marked as still alive" -msgstr "add_process: pid %5ld (%s) marked as still alive" - -#: jobs.c:1432 -#, c-format -msgid "describe_pid: %ld: no such pid" -msgstr "describe_pid: %ld: no such pid" - -#: jobs.c:1447 -#, c-format -msgid "Signal %d" -msgstr "Signal %d" - -#: jobs.c:1461 jobs.c:1486 -msgid "Done" -msgstr "Done" - -#: jobs.c:1466 siglist.c:123 -msgid "Stopped" -msgstr "Stopped" - -#: jobs.c:1470 -#, c-format -msgid "Stopped(%s)" -msgstr "Stopped(%s)" - -#: jobs.c:1474 -msgid "Running" -msgstr "Running" - -#: jobs.c:1488 -#, c-format -msgid "Done(%d)" -msgstr "Done(%d)" - -#: jobs.c:1490 -#, c-format -msgid "Exit %d" -msgstr "Exit %d" - -#: jobs.c:1493 -msgid "Unknown status" -msgstr "Unknown status" - -#: jobs.c:1580 -#, c-format -msgid "(core dumped) " -msgstr "(core dumped) " - -#: jobs.c:1599 -#, c-format -msgid " (wd: %s)" -msgstr " (wd: %s)" - -#: jobs.c:1807 -#, c-format -msgid "child setpgid (%ld to %ld)" -msgstr "child setpgid (%ld to %ld)" - -#: jobs.c:2135 nojobs.c:585 -#, 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:2372 -#, c-format -msgid "wait_for: No record of process %ld" -msgstr "wait_for: No record of process %ld" - -#: jobs.c:2653 -#, c-format -msgid "wait_for_job: job %d is stopped" -msgstr "wait_for_job: job %d is stopped" - -#: jobs.c:2875 -#, c-format -msgid "%s: job has terminated" -msgstr "%s: job has terminated" - -#: jobs.c:2884 -#, c-format -msgid "%s: job %d already in background" -msgstr "%s: job %d already in background" - -#: jobs.c:3105 -msgid "waitchld: turning on WNOHANG to avoid indefinite block" -msgstr "waitchld: turning on WNOHANG to avoid indefinite block" - -#: jobs.c:3571 -#, c-format -msgid "%s: line %d: " -msgstr "%s: line %d: " - -#: jobs.c:3585 nojobs.c:818 -#, c-format -msgid " (core dumped)" -msgstr " (core dumped)" - -#: jobs.c:3597 jobs.c:3610 -#, c-format -msgid "(wd now: %s)\n" -msgstr "(wd now: %s)\n" - -#: jobs.c:3642 -msgid "initialize_job_control: getpgrp failed" -msgstr "initialize_job_control: getpgrp failed" - -#: jobs.c:3703 -msgid "initialize_job_control: line discipline" -msgstr "initialize_job_control: line discipline" - -#: jobs.c:3713 -msgid "initialize_job_control: setpgid" -msgstr "initialize_job_control: setpgid" - -#: jobs.c:3734 jobs.c:3743 -#, c-format -msgid "cannot set terminal process group (%d)" -msgstr "cannot set terminal process group (%d)" - -#: jobs.c:3748 -msgid "no job control in this shell" -msgstr "no job control in this shell" - -#: lib/malloc/malloc.c:296 -#, c-format -msgid "malloc: failed assertion: %s\n" -msgstr "malloc: failed assertion: %s\n" - -#: lib/malloc/malloc.c:312 -#, 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:313 -msgid "unknown" -msgstr "unknown" - -#: lib/malloc/malloc.c:797 -msgid "malloc: block on free list clobbered" -msgstr "malloc: block on free list clobbered" - -#: lib/malloc/malloc.c:874 -msgid "free: called with already freed block argument" -msgstr "free: called with already freed block argument" - -#: lib/malloc/malloc.c:877 -msgid "free: called with unallocated block argument" -msgstr "free: called with unallocated block argument" - -#: lib/malloc/malloc.c:896 -msgid "free: underflow detected; mh_nbytes out of range" -msgstr "free: underflow detected; mh_nbytes out of range" - -#: lib/malloc/malloc.c:902 -msgid "free: start and end chunk sizes differ" -msgstr "free: start and end chunk sizes differ" - -#: lib/malloc/malloc.c:1001 -msgid "realloc: called with unallocated block argument" -msgstr "realloc: called with unallocated block argument" - -#: lib/malloc/malloc.c:1016 -msgid "realloc: underflow detected; mh_nbytes out of range" -msgstr "realloc: underflow detected; mh_nbytes out of range" - -#: lib/malloc/malloc.c:1022 -msgid "realloc: start and end chunk sizes differ" -msgstr "realloc: start and end chunk sizes differ" - -#: lib/malloc/table.c:177 -#, c-format -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:184 -#, 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:220 -#, c-format -msgid "register_free: %p already in table as free?\n" -msgstr "register_free: %p already in table as free?\n" - -#: lib/sh/fmtulong.c:102 -msgid "invalid base" -msgstr "invalid base" - -#: lib/sh/netopen.c:168 -#, c-format -msgid "%s: host unknown" -msgstr "%s: host unknown" - -#: lib/sh/netopen.c:175 -#, c-format -msgid "%s: invalid service" -msgstr "%s: invalid service" - -#: lib/sh/netopen.c:306 -#, c-format -msgid "%s: bad network path specification" -msgstr "%s: bad network path specification" - -#: lib/sh/netopen.c:346 -msgid "network operations not supported" -msgstr "network operations not supported" - -#: locale.c:204 -#, c-format -msgid "setlocale: LC_ALL: cannot change locale (%s)" -msgstr "setlocale: LC_ALL: cannot change locale (%s)" - -#: locale.c:206 -#, c-format -msgid "setlocale: LC_ALL: cannot change locale (%s): %s" -msgstr "setlocale: LC_ALL: cannot change locale (%s): %s" - -#: locale.c:263 -#, c-format -msgid "setlocale: %s: cannot change locale (%s)" -msgstr "setlocale: %s: cannot change locale (%s)" - -#: locale.c:265 -#, c-format -msgid "setlocale: %s: cannot change locale (%s): %s" -msgstr "setlocale: %s: cannot change locale (%s): %s" - -#: mailcheck.c:433 -msgid "You have mail in $_" -msgstr "You have mail in $_" - -#: mailcheck.c:458 -msgid "You have new mail in $_" -msgstr "You have new mail in $_" - -#: mailcheck.c:474 -#, c-format -msgid "The mail in %s has been read\n" -msgstr "The mail in %s has been read\n" - -#: make_cmd.c:323 -msgid "syntax error: arithmetic expression required" -msgstr "syntax error: arithmetic expression required" - -#: make_cmd.c:325 -msgid "syntax error: `;' unexpected" -msgstr "syntax error: ‘;’ unexpected" - -#: make_cmd.c:326 -#, c-format -msgid "syntax error: `((%s))'" -msgstr "syntax error: ‘((%s))’" - -#: make_cmd.c:578 -#, c-format -msgid "make_here_document: bad instruction type %d" -msgstr "make_here_document: bad instruction type %d" - -#: make_cmd.c:662 -#, c-format -msgid "here-document at line %d delimited by end-of-file (wanted `%s')" -msgstr "here-document at line %d delimited by end-of-file (wanted ‘%s’)" - -#: make_cmd.c:759 -#, c-format -msgid "make_redirection: redirection instruction `%d' out of range" -msgstr "make_redirection: redirection instruction ‘%d’ out of range" - -#: parse.y:3173 parse.y:3448 -#, c-format -msgid "unexpected EOF while looking for matching `%c'" -msgstr "unexpected EOF while looking for matching ‘%c’" - -#: parse.y:4038 -msgid "unexpected EOF while looking for `]]'" -msgstr "unexpected EOF while looking for ‘]]’" - -#: parse.y:4043 -#, c-format -msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "syntax error in conditional expression: unexpected token ‘%s’" - -#: parse.y:4047 -msgid "syntax error in conditional expression" -msgstr "syntax error in conditional expression" - -#: parse.y:4125 -#, c-format -msgid "unexpected token `%s', expected `)'" -msgstr "unexpected token ‘%s’, expected ‘)’" - -#: parse.y:4129 -msgid "expected `)'" -msgstr "expected ‘)’" - -#: parse.y:4157 -#, c-format -msgid "unexpected argument `%s' to conditional unary operator" -msgstr "unexpected argument ‘%s’ to conditional unary operator" - -#: parse.y:4161 -msgid "unexpected argument to conditional unary operator" -msgstr "unexpected argument to conditional unary operator" - -#: parse.y:4207 -#, c-format -msgid "unexpected token `%s', conditional binary operator expected" -msgstr "unexpected token ‘%s’, conditional binary operator expected" - -#: parse.y:4211 -msgid "conditional binary operator expected" -msgstr "conditional binary operator expected" - -#: parse.y:4233 -#, c-format -msgid "unexpected argument `%s' to conditional binary operator" -msgstr "unexpected argument ‘%s’ to conditional binary operator" - -#: parse.y:4237 -msgid "unexpected argument to conditional binary operator" -msgstr "unexpected argument to conditional binary operator" - -#: parse.y:4248 -#, c-format -msgid "unexpected token `%c' in conditional command" -msgstr "unexpected token ‘%c’ in conditional command" - -#: parse.y:4251 -#, c-format -msgid "unexpected token `%s' in conditional command" -msgstr "unexpected token ‘%s’ in conditional command" - -#: parse.y:4255 -#, c-format -msgid "unexpected token %d in conditional command" -msgstr "unexpected token %d in conditional command" - -#: parse.y:5590 -#, c-format -msgid "syntax error near unexpected token `%s'" -msgstr "syntax error near unexpected token ‘%s’" - -#: parse.y:5608 -#, c-format -msgid "syntax error near `%s'" -msgstr "syntax error near ‘%s’" - -#: parse.y:5618 -msgid "syntax error: unexpected end of file" -msgstr "syntax error: unexpected end of file" - -#: parse.y:5618 -msgid "syntax error" -msgstr "syntax error" - -#: parse.y:5680 -#, c-format -msgid "Use \"%s\" to leave the shell.\n" -msgstr "Use “%s” to leave the shell.\n" - -#: parse.y:5842 -msgid "unexpected EOF while looking for matching `)'" -msgstr "unexpected EOF while looking for matching ‘)’" - -#: pcomplete.c:1079 -#, c-format -msgid "completion: function `%s' not found" -msgstr "completion: function ‘%s’ not found" - -#: pcomplib.c:182 -#, c-format -msgid "progcomp_insert: %s: NULL COMPSPEC" -msgstr "progcomp_insert: %s: NULL COMPSPEC" - -#: print_cmd.c:300 -#, c-format -msgid "print_command: bad connector `%d'" -msgstr "print_command: bad connector ‘%d’" - -#: print_cmd.c:373 -#, c-format -msgid "xtrace_set: %d: invalid file descriptor" -msgstr "xtrace_set: %d: invalid file descriptor" - -#: print_cmd.c:378 -msgid "xtrace_set: NULL file pointer" -msgstr "xtrace_set: NULL file pointer" - -#: print_cmd.c:382 -#, c-format -msgid "xtrace fd (%d) != fileno xtrace fp (%d)" -msgstr "xtrace fd (%d) != fileno xtrace fp (%d)" - -#: print_cmd.c:1503 -#, c-format -msgid "cprintf: `%c': invalid format character" -msgstr "cprintf: ‘%c’: invalid format character" - -#: redir.c:122 -msgid "file descriptor out of range" -msgstr "file descriptor out of range" - -#: redir.c:178 -#, c-format -msgid "%s: ambiguous redirect" -msgstr "%s: ambiguous redirect" - -#: redir.c:182 -#, c-format -msgid "%s: cannot overwrite existing file" -msgstr "%s: cannot overwrite existing file" - -#: redir.c:187 -#, c-format -msgid "%s: restricted: cannot redirect output" -msgstr "%s: restricted: cannot redirect output" - -#: redir.c:192 -#, c-format -msgid "cannot create temp file for here-document: %s" -msgstr "cannot create temp file for here-document: %s" - -#: redir.c:196 -#, c-format -msgid "%s: cannot assign fd to variable" -msgstr "%s: cannot assign fd to variable" - -#: redir.c:548 -msgid "/dev/(tcp|udp)/host/port not supported without networking" -msgstr "/dev/(tcp|udp)/host/port not supported without networking" - -#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142 -msgid "redirection error: cannot duplicate fd" -msgstr "redirection error: cannot duplicate fd" - -#: shell.c:337 -msgid "could not find /tmp, please create!" -msgstr "could not find /tmp, please create!" - -#: shell.c:341 -msgid "/tmp must be a valid directory name" -msgstr "/tmp must be a valid directory name" - -#: shell.c:888 -#, c-format -msgid "%c%c: invalid option" -msgstr "%c%c: invalid option" - -#: shell.c:1662 -msgid "I have no name!" -msgstr "I have no name!" - -#: shell.c:1807 -#, c-format -msgid "GNU bash, version %s-(%s)\n" -msgstr "GNU bash, version %s-(%s)\n" - -#: shell.c:1808 -#, 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:1810 -msgid "GNU long options:\n" -msgstr "GNU long options:\n" - -#: shell.c:1814 -msgid "Shell options:\n" -msgstr "Shell options:\n" - -#: shell.c:1815 -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:1830 -#, c-format -msgid "\t-%s or -o option\n" -msgstr "\t-%s or -o option\n" - -#: shell.c:1836 -#, 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:1837 -#, 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:1838 -#, c-format -msgid "Use the `bashbug' command to report bugs.\n" -msgstr "Use the ‘bashbug’ command to report bugs.\n" - -#: sig.c:647 -#, c-format -msgid "sigprocmask: %d: invalid operation" -msgstr "sigprocmask: %d: invalid operation" - -#: siglist.c:48 -msgid "Bogus signal" -msgstr "Bogus signal" - -#: siglist.c:51 -msgid "Hangup" -msgstr "Hangup" - -#: siglist.c:55 -msgid "Interrupt" -msgstr "Interrupt" - -#: siglist.c:59 -msgid "Quit" -msgstr "Quit" - -#: siglist.c:63 -msgid "Illegal instruction" -msgstr "Illegal instruction" - -#: siglist.c:67 -msgid "BPT trace/trap" -msgstr "BPT trace/trap" - -#: siglist.c:75 -msgid "ABORT instruction" -msgstr "ABORT instruction" - -#: siglist.c:79 -msgid "EMT instruction" -msgstr "EMT instruction" - -#: siglist.c:83 -msgid "Floating point exception" -msgstr "Floating point exception" - -#: siglist.c:87 -msgid "Killed" -msgstr "Killed" - -#: siglist.c:91 -msgid "Bus error" -msgstr "Bus error" - -#: siglist.c:95 -msgid "Segmentation fault" -msgstr "Segmentation fault" - -#: siglist.c:99 -msgid "Bad system call" -msgstr "Bad system call" - -#: siglist.c:103 -msgid "Broken pipe" -msgstr "Broken pipe" - -#: siglist.c:107 -msgid "Alarm clock" -msgstr "Alarm clock" - -#: siglist.c:111 -msgid "Terminated" -msgstr "Terminated" - -#: siglist.c:115 -msgid "Urgent IO condition" -msgstr "Urgent IO condition" - -#: siglist.c:119 -msgid "Stopped (signal)" -msgstr "Stopped (signal)" - -#: siglist.c:127 -msgid "Continue" -msgstr "Continue" - -#: siglist.c:135 -msgid "Child death or stop" -msgstr "Child death or stop" - -#: siglist.c:139 -msgid "Stopped (tty input)" -msgstr "Stopped (tty input)" - -#: siglist.c:143 -msgid "Stopped (tty output)" -msgstr "Stopped (tty output)" - -#: siglist.c:147 -msgid "I/O ready" -msgstr "I/O ready" - -#: siglist.c:151 -msgid "CPU limit" -msgstr "CPU limit" - -#: siglist.c:155 -msgid "File limit" -msgstr "File limit" - -#: siglist.c:159 -msgid "Alarm (virtual)" -msgstr "Alarm (virtual)" - -#: siglist.c:163 -msgid "Alarm (profile)" -msgstr "Alarm (profile)" - -#: siglist.c:167 -msgid "Window changed" -msgstr "Window changed" - -#: siglist.c:171 -msgid "Record lock" -msgstr "Record lock" - -#: siglist.c:175 -msgid "User signal 1" -msgstr "User signal 1" - -#: siglist.c:179 -msgid "User signal 2" -msgstr "User signal 2" - -#: siglist.c:183 -msgid "HFT input data pending" -msgstr "HFT input data pending" - -#: siglist.c:187 -msgid "power failure imminent" -msgstr "power failure imminent" - -#: siglist.c:191 -msgid "system crash imminent" -msgstr "system crash imminent" - -#: siglist.c:195 -msgid "migrate process to another CPU" -msgstr "migrate process to another CPU" - -#: siglist.c:199 -msgid "programming error" -msgstr "programming error" - -#: siglist.c:203 -msgid "HFT monitor mode granted" -msgstr "HFT monitor mode granted" - -#: siglist.c:207 -msgid "HFT monitor mode retracted" -msgstr "HFT monitor mode retracted" - -#: siglist.c:211 -msgid "HFT sound sequence has completed" -msgstr "HFT sound sequence has completed" - -#: siglist.c:215 -msgid "Information request" -msgstr "Information request" - -#: siglist.c:223 -msgid "Unknown Signal #" -msgstr "Unknown Signal #" - -#: siglist.c:225 -#, c-format -msgid "Unknown Signal #%d" -msgstr "Unknown Signal #%d" - -#: subst.c:1335 subst.c:1506 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "bad substitution: no closing ‘%s’ in %s" - -#: subst.c:2801 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "%s: cannot assign list to array member" - -#: subst.c:4991 subst.c:5007 -msgid "cannot make pipe for process substitution" -msgstr "cannot make pipe for process substitution" - -#: subst.c:5039 -msgid "cannot make child for process substitution" -msgstr "cannot make child for process substitution" - -#: subst.c:5084 -#, c-format -msgid "cannot open named pipe %s for reading" -msgstr "cannot open named pipe %s for reading" - -#: subst.c:5086 -#, c-format -msgid "cannot open named pipe %s for writing" -msgstr "cannot open named pipe %s for writing" - -#: subst.c:5104 -#, c-format -msgid "cannot duplicate named pipe %s as fd %d" -msgstr "cannot duplicate named pipe %s as fd %d" - -#: subst.c:5296 -msgid "cannot make pipe for command substitution" -msgstr "cannot make pipe for command substitution" - -#: subst.c:5334 -msgid "cannot make child for command substitution" -msgstr "cannot make child for command substitution" - -#: subst.c:5351 -msgid "command_substitute: cannot duplicate pipe as fd 1" -msgstr "command_substitute: cannot duplicate pipe as fd 1" - -#: subst.c:5875 -#, c-format -msgid "%s: parameter null or not set" -msgstr "%s: parameter null or not set" - -#: subst.c:6141 subst.c:6156 -#, c-format -msgid "%s: substring expression < 0" -msgstr "%s: substring expression < 0" - -#: subst.c:7284 -#, c-format -msgid "%s: bad substitution" -msgstr "%s: bad substitution" - -#: subst.c:7361 -#, c-format -msgid "$%s: cannot assign in this way" -msgstr "$%s: cannot assign in this way" - -#: subst.c:7697 -msgid "" -"future versions of the shell will force evaluation as an arithmetic " -"substitution" -msgstr "" -"future versions of the shell will force evaluation as an arithmetic " -"substitution" - -#: subst.c:8165 -#, c-format -msgid "bad substitution: no closing \"`\" in %s" -msgstr "bad substitution: no closing “`” in %s" - -#: subst.c:9056 -#, c-format -msgid "no match: %s" -msgstr "no match: %s" - -#: test.c:146 -msgid "argument expected" -msgstr "argument expected" - -#: test.c:155 -#, c-format -msgid "%s: integer expression expected" -msgstr "%s: integer expression expected" - -#: test.c:263 -msgid "`)' expected" -msgstr "‘)’ expected" - -#: test.c:265 -#, c-format -msgid "`)' expected, found %s" -msgstr "‘)’ expected, found %s" - -#: test.c:280 test.c:698 test.c:701 -#, c-format -msgid "%s: unary operator expected" -msgstr "%s: unary operator expected" - -#: test.c:449 test.c:741 -#, c-format -msgid "%s: binary operator expected" -msgstr "%s: binary operator expected" - -#: test.c:816 -msgid "missing `]'" -msgstr "missing ‘]’" - -#: trap.c:209 -msgid "invalid signal number" -msgstr "invalid signal number" - -#: trap.c:329 -#, 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:333 -#, 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:379 -#, c-format -msgid "trap_handler: bad signal %d" -msgstr "trap_handler: bad signal %d" - -#: variables.c:366 -#, c-format -msgid "error importing function definition for `%s'" -msgstr "error importing function definition for ‘%s’" - -#: variables.c:764 -#, c-format -msgid "shell level (%d) too high, resetting to 1" -msgstr "shell level (%d) too high, resetting to 1" - -#: variables.c:1941 -msgid "make_local_variable: no function context at current scope" -msgstr "make_local_variable: no function context at current scope" - -#: variables.c:3192 -msgid "all_local_variables: no function context at current scope" -msgstr "all_local_variables: no function context at current scope" - -#: variables.c:3437 -#, c-format -msgid "%s has null exportstr" -msgstr "%s has null exportstr" - -#: variables.c:3442 variables.c:3451 -#, c-format -msgid "invalid character %d in exportstr for %s" -msgstr "invalid character %d in exportstr for %s" - -#: variables.c:3457 -#, c-format -msgid "no `=' in exportstr for %s" -msgstr "no ‘=’ in exportstr for %s" - -#: variables.c:3917 -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:3930 -msgid "pop_var_context: no global_variables context" -msgstr "pop_var_context: no global_variables context" - -#: variables.c:4004 -msgid "pop_scope: head of shell_variables not a temporary environment scope" -msgstr "pop_scope: head of shell_variables not a temporary environment scope" - -#: variables.c:4821 -#, c-format -msgid "%s: %s: cannot open as FILE" -msgstr "%s: %s: cannot open as FILE" - -#: variables.c:4826 -#, c-format -msgid "%s: %s: invalid value for trace file descriptor" -msgstr "%s: %s: invalid value for trace file descriptor" - -#: version.c:46 -msgid "Copyright (C) 2011 Free Software Foundation, Inc." -msgstr "Copyright (C) 2011 Free Software Foundation, Inc." - -#: version.c:47 -msgid "" -"License GPLv3+: GNU GPL version 3 or later \n" -msgstr "" -"License GPLv3+: GNU GPL version 3 or later \n" - -#: version.c:86 version2.c:83 -#, c-format -msgid "GNU bash, version %s (%s)\n" -msgstr "GNU bash, version %s (%s)\n" - -#: version.c:91 version2.c:88 -#, c-format -msgid "This is free software; you are free to change and redistribute it.\n" -msgstr "This is free software; you are free to change and redistribute it.\n" - -#: version.c:92 version2.c:89 -#, c-format -msgid "There is NO WARRANTY, to the extent permitted by law.\n" -msgstr "There is NO WARRANTY, to the extent permitted by law.\n" - -#: version2.c:86 -#, c-format -msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" -msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n" - -#: version2.c:87 -#, c-format -msgid "" -"License GPLv2+: GNU GPL version 2 or later \n" -msgstr "" -"License GPLv2+: GNU GPL version 2 or later \n" - -#: xmalloc.c:91 -#, c-format -msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "%s: cannot allocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:93 -#, c-format -msgid "%s: cannot allocate %lu bytes" -msgstr "%s: cannot allocate %lu bytes" - -#: xmalloc.c:163 -#, c-format -msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:165 -#, c-format -msgid "%s: %s:%d: cannot allocate %lu bytes" -msgstr "%s: %s:%d: cannot allocate %lu bytes" - -#: builtins.c:43 -msgid "alias [-p] [name[=value] ... ]" -msgstr "alias [-p] [name[=value] ... ]" - -#: builtins.c:47 -msgid "unalias [-a] name [name ...]" -msgstr "unalias [-a] name [name ...]" - -#: builtins.c:51 -#, fuzzy -msgid "" -"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" -"x keyseq:shell-command] [keyseq:readline-function or readline-command]" -msgstr "" -"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" -"x keyseq:shell-command] [keyseq:readline-function or readline-command]" - -#: builtins.c:54 -msgid "break [n]" -msgstr "break [n]" - -#: builtins.c:56 -msgid "continue [n]" -msgstr "continue [n]" - -#: builtins.c:58 -msgid "builtin [shell-builtin [arg ...]]" -msgstr "builtin [shell-builtin [arg ...]]" - -#: builtins.c:61 -msgid "caller [expr]" -msgstr "caller [expr]" - -#: builtins.c:64 -msgid "cd [-L|[-P [-e]]] [dir]" -msgstr "cd [-L|[-P [-e]]] [dir]" - -#: builtins.c:66 -msgid "pwd [-LP]" -msgstr "pwd [-LP]" - -#: builtins.c:68 -msgid ":" -msgstr ":" - -#: builtins.c:70 -msgid "true" -msgstr "true" - -#: builtins.c:72 -msgid "false" -msgstr "false" - -#: builtins.c:74 -msgid "command [-pVv] command [arg ...]" -msgstr "command [-pVv] command [arg ...]" - -#: builtins.c:76 -msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]" -msgstr "declare [-aAfFgilrtux] [-p] [name[=value] ...]" - -#: builtins.c:78 -msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..." -msgstr "typeset [-aAfFgilrtux] [-p] name[=value] ..." - -#: builtins.c:80 -msgid "local [option] name[=value] ..." -msgstr "local [option] name[=value] ..." - -#: builtins.c:83 -msgid "echo [-neE] [arg ...]" -msgstr "echo [-neE] [arg ...]" - -#: builtins.c:87 -msgid "echo [-n] [arg ...]" -msgstr "echo [-n] [arg ...]" - -#: builtins.c:90 -msgid "enable [-a] [-dnps] [-f filename] [name ...]" -msgstr "enable [-a] [-dnps] [-f filename] [name ...]" - -#: builtins.c:92 -msgid "eval [arg ...]" -msgstr "eval [arg ...]" - -#: builtins.c:94 -msgid "getopts optstring name [arg]" -msgstr "getopts optstring name [arg]" - -#: builtins.c:96 -msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" -msgstr "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" - -#: builtins.c:98 -msgid "exit [n]" -msgstr "exit [n]" - -#: builtins.c:100 -msgid "logout [n]" -msgstr "logout [n]" - -#: builtins.c:103 -msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" -msgstr "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" - -#: builtins.c:107 -msgid "fg [job_spec]" -msgstr "fg [job_spec]" - -#: builtins.c:111 -msgid "bg [job_spec ...]" -msgstr "bg [job_spec ...]" - -#: builtins.c:114 -msgid "hash [-lr] [-p pathname] [-dt] [name ...]" -msgstr "hash [-lr] [-p pathname] [-dt] [name ...]" - -#: builtins.c:117 -msgid "help [-dms] [pattern ...]" -msgstr "help [-dms] [pattern ...]" - -#: builtins.c:121 -msgid "" -"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " -"[arg...]" -msgstr "" -"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " -"[arg...]" - -#: builtins.c:125 -msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" -msgstr "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" - -#: builtins.c:129 -msgid "disown [-h] [-ar] [jobspec ...]" -msgstr "disown [-h] [-ar] [jobspec ...]" - -#: builtins.c:132 -msgid "" -"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " -"[sigspec]" -msgstr "" -"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " -"[sigspec]" - -#: builtins.c:134 -msgid "let arg [arg ...]" -msgstr "let arg [arg ...]" - -#: builtins.c:136 -msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " -"prompt] [-t timeout] [-u fd] [name ...]" -msgstr "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " -"prompt] [-t timeout] [-u fd] [name ...]" - -#: builtins.c:138 -msgid "return [n]" -msgstr "return [n]" - -#: builtins.c:140 -msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]" -msgstr "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]" - -#: builtins.c:142 -msgid "unset [-f] [-v] [name ...]" -msgstr "unset [-f] [-v] [name ...]" - -#: builtins.c:144 -msgid "export [-fn] [name[=value] ...] or export -p" -msgstr "export [-fn] [name[=value] ...] or export -p" - -#: builtins.c:146 -msgid "readonly [-aAf] [name[=value] ...] or readonly -p" -msgstr "readonly [-aAf] [name[=value] ...] or readonly -p" - -#: builtins.c:148 -msgid "shift [n]" -msgstr "shift [n]" - -#: builtins.c:150 -msgid "source filename [arguments]" -msgstr "source filename [arguments]" - -#: builtins.c:152 -msgid ". filename [arguments]" -msgstr ". filename [arguments]" - -#: builtins.c:155 -msgid "suspend [-f]" -msgstr "suspend [-f]" - -#: builtins.c:158 -msgid "test [expr]" -msgstr "test [expr]" - -#: builtins.c:160 -msgid "[ arg... ]" -msgstr "[ arg... ]" - -#: builtins.c:162 -msgid "times" -msgstr "times" - -#: builtins.c:164 -msgid "trap [-lp] [[arg] signal_spec ...]" -msgstr "trap [-lp] [[arg] signal_spec ...]" - -#: builtins.c:166 -msgid "type [-afptP] name [name ...]" -msgstr "type [-afptP] name [name ...]" - -#: builtins.c:169 -#, fuzzy -msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]" -msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]" - -#: builtins.c:172 -msgid "umask [-p] [-S] [mode]" -msgstr "umask [-p] [-S] [mode]" - -#: builtins.c:175 -#, fuzzy -msgid "wait [id ...]" -msgstr "wait [id]" - -#: builtins.c:179 -msgid "wait [pid]" -msgstr "wait [pid]" - -#: builtins.c:182 -msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" -msgstr "for NAME [in WORDS ... ] ; do COMMANDS; done" - -#: builtins.c:184 -msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" -msgstr "for (( exp1; exp2; exp3 )); do COMMANDS; done" - -#: builtins.c:186 -msgid "select NAME [in WORDS ... ;] do COMMANDS; done" -msgstr "select NAME [in WORDS ... ;] do COMMANDS; done" - -#: builtins.c:188 -msgid "time [-p] pipeline" -msgstr "time [-p] pipeline" - -#: builtins.c:190 -msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" -msgstr "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" - -#: builtins.c:192 -msgid "" -"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " -"COMMANDS; ] fi" -msgstr "" -"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " -"COMMANDS; ] fi" - -#: builtins.c:194 -msgid "while COMMANDS; do COMMANDS; done" -msgstr "while COMMANDS; do COMMANDS; done" - -#: builtins.c:196 -msgid "until COMMANDS; do COMMANDS; done" -msgstr "until COMMANDS; do COMMANDS; done" - -#: builtins.c:198 -msgid "coproc [NAME] command [redirections]" -msgstr "coproc [NAME] command [redirections]" - -#: builtins.c:200 -msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" -msgstr "function name { COMMANDS ; } or name () { COMMANDS ; }" - -#: builtins.c:202 -msgid "{ COMMANDS ; }" -msgstr "{ COMMANDS ; }" - -#: builtins.c:204 -msgid "job_spec [&]" -msgstr "job_spec [&]" - -#: builtins.c:206 -msgid "(( expression ))" -msgstr "(( expression ))" - -#: builtins.c:208 -msgid "[[ expression ]]" -msgstr "[[ expression ]]" - -#: builtins.c:210 -msgid "variables - Names and meanings of some shell variables" -msgstr "variables - Names and meanings of some shell variables" - -#: builtins.c:213 -msgid "pushd [-n] [+N | -N | dir]" -msgstr "pushd [-n] [+N | -N | dir]" - -#: builtins.c:217 -msgid "popd [-n] [+N | -N]" -msgstr "popd [-n] [+N | -N]" - -#: builtins.c:221 -msgid "dirs [-clpv] [+N] [-N]" -msgstr "dirs [-clpv] [+N] [-N]" - -#: builtins.c:224 -msgid "shopt [-pqsu] [-o] [optname ...]" -msgstr "shopt [-pqsu] [-o] [optname ...]" - -#: builtins.c:226 -msgid "printf [-v var] format [arguments]" -msgstr "printf [-v var] format [arguments]" - -#: builtins.c:229 -msgid "" -"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" -"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " -"suffix] [name ...]" -msgstr "" -"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" -"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " -"suffix] [name ...]" - -#: builtins.c:233 -msgid "" -"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " -"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" -msgstr "" -"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " -"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" - -#: builtins.c:237 -msgid "compopt [-o|+o option] [-DE] [name ...]" -msgstr "compopt [-o|+o option] [-DE] [name ...]" - -#: builtins.c:240 -msgid "" -"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" -msgstr "" -"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" - -#: builtins.c:242 -msgid "" -"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" -msgstr "" -"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" - -#: builtins.c:254 -msgid "" -"Define or display aliases.\n" -" \n" -" Without arguments, `alias' prints the list of aliases in the reusable\n" -" form `alias NAME=VALUE' on standard output.\n" -" \n" -" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" -" A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded.\n" -" \n" -" Options:\n" -" -p\tPrint all defined aliases in a reusable format\n" -" \n" -" Exit Status:\n" -" alias returns true unless a NAME is supplied for which no alias has " -"been\n" -" defined." -msgstr "" -"Define or display aliases.\n" -" \n" -" Without arguments, ‘alias’ prints the list of aliases in the reusable\n" -" form ‘alias NAME=VALUE’ on standard output.\n" -" \n" -" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" -" A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded.\n" -" \n" -" Options:\n" -" -p\tPrint all defined aliases in a reusable format\n" -" \n" -" Exit Status:\n" -" alias returns true unless a NAME is supplied for which no alias has " -"been\n" -" defined." - -#: builtins.c:276 -msgid "" -"Remove each NAME from the list of defined aliases.\n" -" \n" -" Options:\n" -" -a\tremove all alias definitions.\n" -" \n" -" Return success unless a NAME is not an existing alias." -msgstr "" -"Remove each NAME from the list of defined aliases.\n" -" \n" -" Options:\n" -" -a\tremove all alias definitions.\n" -" \n" -" Return success unless a NAME is not an existing alias." - -#: builtins.c:289 -#, fuzzy -msgid "" -"Set Readline key bindings and variables.\n" -" \n" -" Bind a key sequence to a Readline function or a macro, or set a\n" -" Readline variable. The non-option argument syntax is equivalent to\n" -" that found in ~/.inputrc, but must be passed as a single argument:\n" -" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" \n" -" Options:\n" -" -m keymap Use KEYMAP as the keymap for the duration of this\n" -" command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" -"move,\n" -" vi-command, and vi-insert.\n" -" -l List names of functions.\n" -" -P List function names and bindings.\n" -" -p List functions and bindings in a form that can be\n" -" reused as input.\n" -" -S List key sequences that invoke macros and their " -"values\n" -" -s List key sequences that invoke macros and their " -"values\n" -" in a form that can be reused as input.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -f filename Read key bindings from FILENAME.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" -X\t\t List key sequences bound with -x and associated commands\n" -" in a form that can be reused as input.\n" -" \n" -" Exit Status:\n" -" bind returns 0 unless an unrecognized option is given or an error occurs." -msgstr "" -"Set Readline key bindings and variables.\n" -" \n" -" Bind a key sequence to a Readline function or a macro, or set a\n" -" Readline variable. The non-option argument syntax is equivalent to\n" -" that found in ~/.inputrc, but must be passed as a single argument:\n" -" e.g., bind '“\\C-x\\C-r”: re-read-init-file'.\n" -" \n" -" Options:\n" -" -m keymap Use KEYMAP as the keymap for the duration of this\n" -" command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" -"move,\n" -" vi-command, and vi-insert.\n" -" -l List names of functions.\n" -" -P List function names and bindings.\n" -" -p List functions and bindings in a form that can be\n" -" reused as input.\n" -" -S List key sequences that invoke macros and their " -"values\n" -" -s List key sequences that invoke macros and their " -"values\n" -" in a form that can be reused as input.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -f filename Read key bindings from FILENAME.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" \n" -" Exit Status:\n" -" bind returns 0 unless an unrecognized option is given or an error occurs." - -#: builtins.c:328 -msgid "" -"Exit for, while, or until loops.\n" -" \n" -" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" -" loops.\n" -" \n" -" Exit Status:\n" -" The exit status is 0 unless N is not greater than or equal to 1." -msgstr "" -"Exit for, while, or until loops.\n" -" \n" -" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" -" loops.\n" -" \n" -" Exit Status:\n" -" The exit status is 0 unless N is not greater than or equal to 1." - -#: builtins.c:340 -msgid "" -"Resume for, while, or until loops.\n" -" \n" -" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resumes the Nth enclosing loop.\n" -" \n" -" Exit Status:\n" -" The exit status is 0 unless N is not greater than or equal to 1." -msgstr "" -"Resume for, while, or until loops.\n" -" \n" -" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resumes the Nth enclosing loop.\n" -" \n" -" Exit Status:\n" -" The exit status is 0 unless N is not greater than or equal to 1." - -#: builtins.c:352 -msgid "" -"Execute shell builtins.\n" -" \n" -" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" -" lookup. This is useful when you wish to reimplement a shell builtin\n" -" as a shell function, but need to execute the builtin within the " -"function.\n" -" \n" -" Exit Status:\n" -" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" -" not a shell builtin.." -msgstr "" -"Execute shell builtins.\n" -" \n" -" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" -" lookup. This is useful when you wish to reimplement a shell builtin\n" -" as a shell function, but need to execute the builtin within the " -"function.\n" -" \n" -" Exit Status:\n" -" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" -" not a shell builtin.." - -#: builtins.c:367 -msgid "" -"Return the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" -" \"$line $subroutine $filename\"; this extra information can be used to\n" -" provide a stack trace.\n" -" \n" -" The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0.\n" -" \n" -" Exit Status:\n" -" Returns 0 unless the shell is not executing a shell function or EXPR\n" -" is invalid." -msgstr "" -"Return the context of the current subroutine call.\n" -" \n" -" Without EXPR, returns “$line $filename”. With EXPR, returns\n" -" “$line $subroutine $filename”; this extra information can be used to\n" -" provide a stack trace.\n" -" \n" -" The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0.\n" -" \n" -" Exit Status:\n" -" Returns 0 unless the shell is not executing a shell function or EXPR\n" -" is invalid." - -#: builtins.c:385 -#, fuzzy -msgid "" -"Change the shell working directory.\n" -" \n" -" Change the current directory to DIR. The default DIR is the value of " -"the\n" -" HOME shell variable.\n" -" \n" -" The variable CDPATH defines the search path for the directory " -"containing\n" -" DIR. Alternative directory names in CDPATH are separated by a colon " -"(:).\n" -" A null directory name is the same as the current directory. If DIR " -"begins\n" -" with a slash (/), then CDPATH is not used.\n" -" \n" -" If the directory is not found, and the shell option `cdable_vars' is " -"set,\n" -" the word is assumed to be a variable name. If that variable has a " -"value,\n" -" its value is used for DIR.\n" -" \n" -" Options:\n" -" -L\tforce symbolic links to be followed: resolve symbolic links in\n" -" \tDIR after processing instances of `..'\n" -" -P\tuse the physical directory structure without following symbolic\n" -" \tlinks: resolve symbolic links in DIR before processing instances\n" -" \tof `..'\n" -" -e\tif the -P option is supplied, and the current working directory\n" -" \tcannot be determined successfully, exit with a non-zero status\n" -" \n" -" The default is to follow symbolic links, as if `-L' were specified.\n" -" `..' is processed by removing the immediately previous pathname " -"component\n" -" back to a slash or the beginning of DIR.\n" -" \n" -" Exit Status:\n" -" Returns 0 if the directory is changed, and if $PWD is set successfully " -"when\n" -" -P is used; non-zero otherwise." -msgstr "" -"Change the shell working directory.\n" -" \n" -" Change the current directory to DIR. The default DIR is the value of " -"the\n" -" HOME shell variable.\n" -" \n" -" The variable CDPATH defines the search path for the directory " -"containing\n" -" DIR. Alternative directory names in CDPATH are separated by a colon " -"(:).\n" -" A null directory name is the same as the current directory. If DIR " -"begins\n" -" with a slash (/), then CDPATH is not used.\n" -" \n" -" If the directory is not found, and the shell option ‘cdable_vars’ is " -"set,\n" -" the word is assumed to be a variable name. If that variable has a " -"value,\n" -" its value is used for DIR.\n" -" \n" -" Options:\n" -" -L\tforce symbolic links to be followed\n" -" -P\tuse the physical directory structure without following symbolic\n" -" \tlinks\n" -" -e\tif the -P option is supplied, and the current working directory\n" -" \tcannot be determined successfully, exit with a non-zero status\n" -" \n" -" The default is to follow symbolic links, as if ‘-L’ were specified.\n" -" \n" -" Exit Status:\n" -" Returns 0 if the directory is changed, and if $PWD is set successfully " -"when\n" -" -P is used; non-zero otherwise." - -#: builtins.c:420 -msgid "" -"Print the name of the current working directory.\n" -" \n" -" Options:\n" -" -L\tprint the value of $PWD if it names the current working\n" -" \tdirectory\n" -" -P\tprint the physical directory, without any symbolic links\n" -" \n" -" By default, `pwd' behaves as if `-L' were specified.\n" -" \n" -" Exit Status:\n" -" Returns 0 unless an invalid option is given or the current directory\n" -" cannot be read." -msgstr "" -"Print the name of the current working directory.\n" -" \n" -" Options:\n" -" -L\tprint the value of $PWD if it names the current working\n" -" \tdirectory\n" -" -P\tprint the physical directory, without any symbolic links\n" -" \n" -" By default, ‘pwd’ behaves as if ‘-L’ were specified.\n" -" \n" -" Exit Status:\n" -" Returns 0 unless an invalid option is given or the current directory\n" -" cannot be read." - -#: builtins.c:437 -msgid "" -"Null command.\n" -" \n" -" No effect; the command does nothing.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" -"Null command.\n" -" \n" -" No effect; the command does nothing.\n" -" \n" -" Exit Status:\n" -" Always succeeds." - -#: builtins.c:448 -msgid "" -"Return a successful result.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" -"Return a successful result.\n" -" \n" -" Exit Status:\n" -" Always succeeds." - -#: builtins.c:457 -msgid "" -"Return an unsuccessful result.\n" -" \n" -" Exit Status:\n" -" Always fails." -msgstr "" -"Return an unsuccessful result.\n" -" \n" -" Exit Status:\n" -" Always fails." - -#: builtins.c:466 -msgid "" -"Execute a simple command or display information about commands.\n" -" \n" -" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" -" information about the specified COMMANDs. Can be used to invoke " -"commands\n" -" on disk when a function with the same name exists.\n" -" \n" -" Options:\n" -" -p\tuse a default value for PATH that is guaranteed to find all of\n" -" \tthe standard utilities\n" -" -v\tprint a description of COMMAND similar to the `type' builtin\n" -" -V\tprint a more verbose description of each COMMAND\n" -" \n" -" Exit Status:\n" -" Returns exit status of COMMAND, or failure if COMMAND is not found." -msgstr "" -"Execute a simple command or display information about commands.\n" -" \n" -" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" -" information about the specified COMMANDs. Can be used to invoke " -"commands\n" -" on disk when a function with the same name exists.\n" -" \n" -" Options:\n" -" -p\tuse a default value for PATH that is guaranteed to find all of\n" -" \tthe standard utilities\n" -" -v\tprint a description of COMMAND similar to the ‘type’ builtin\n" -" -V\tprint a more verbose description of each COMMAND\n" -" \n" -" Exit Status:\n" -" Returns exit status of COMMAND, or failure if COMMAND is not found." - -#: builtins.c:485 -msgid "" -"Set variable values and attributes.\n" -" \n" -" Declare variables and give them attributes. If no NAMEs are given,\n" -" display the attributes and values of all variables.\n" -" \n" -" Options:\n" -" -f\trestrict action or display to function names and definitions\n" -" -F\trestrict display to function names only (plus line number and\n" -" \tsource file when debugging)\n" -" -g\tcreate global variables when used in a shell function; otherwise\n" -" \tignored\n" -" -p\tdisplay the attributes and value of each NAME\n" -" \n" -" Options which set attributes:\n" -" -a\tto make NAMEs indexed arrays (if supported)\n" -" -A\tto make NAMEs associative arrays (if supported)\n" -" -i\tto make NAMEs have the `integer' attribute\n" -" -l\tto convert NAMEs to lower case on assignment\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the `trace' attribute\n" -" -u\tto convert NAMEs to upper case on assignment\n" -" -x\tto make NAMEs export\n" -" \n" -" Using `+' instead of `-' turns off the given attribute.\n" -" \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" the `let' command) performed when the variable is assigned a value.\n" -" \n" -" When used in a function, `declare' makes NAMEs local, as with the " -"`local'\n" -" command. The `-g' option suppresses this behavior.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" -"Set variable values and attributes.\n" -" \n" -" Declare variables and give them attributes. If no NAMEs are given,\n" -" display the attributes and values of all variables.\n" -" \n" -" Options:\n" -" -f\trestrict action or display to function names and definitions\n" -" -F\trestrict display to function names only (plus line number and\n" -" \tsource file when debugging)\n" -" -g\tcreate global variables when used in a shell function; otherwise\n" -" \tignored\n" -" -p\tdisplay the attributes and value of each NAME\n" -" \n" -" Options which set attributes:\n" -" -a\tto make NAMEs indexed arrays (if supported)\n" -" -A\tto make NAMEs associative arrays (if supported)\n" -" -i\tto make NAMEs have the ‘integer’ attribute\n" -" -l\tto convert NAMEs to lower case on assignment\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the ‘trace’ attribute\n" -" -u\tto convert NAMEs to upper case on assignment\n" -" -x\tto make NAMEs export\n" -" \n" -" Using ‘+’ instead of ‘-’ turns off the given attribute.\n" -" \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" the ‘let’ command) performed when the variable is assigned a value.\n" -" \n" -" When used in a function, ‘declare’ makes NAMEs local, as with the " -"‘local’\n" -" command. The ‘-g’ option suppresses this behavior.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." - -#: builtins.c:523 -msgid "" -"Set variable values and attributes.\n" -" \n" -" Obsolete. See `help declare'." -msgstr "" -"Set variable values and attributes.\n" -" \n" -" Obsolete. See ‘help declare’." - -#: builtins.c:531 -msgid "" -"Define local variables.\n" -" \n" -" Create a local variable called NAME, and give it VALUE. OPTION can\n" -" be any option accepted by `declare'.\n" -" \n" -" Local variables can only be used within a function; they are visible\n" -" only to the function where they are defined and its children.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied, an error occurs,\n" -" or the shell is not executing a function." -msgstr "" -"Define local variables.\n" -" \n" -" Create a local variable called NAME, and give it VALUE. OPTION can\n" -" be any option accepted by ‘declare’.\n" -" \n" -" Local variables can only be used within a function; they are visible\n" -" only to the function where they are defined and its children.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied, an error occurs,\n" -" or the shell is not executing a function." - -#: builtins.c:548 -#, fuzzy -msgid "" -"Write arguments to the standard output.\n" -" \n" -" Display the ARGs, separated by a single space character and followed by " -"a\n" -" newline, on the standard output.\n" -" \n" -" Options:\n" -" -n\tdo not append a newline\n" -" -e\tenable interpretation of the following backslash escapes\n" -" -E\texplicitly suppress interpretation of backslash escapes\n" -" \n" -" `echo' interprets the following backslash-escaped characters:\n" -" \\a\talert (bell)\n" -" \\b\tbackspace\n" -" \\c\tsuppress further output\n" -" \\e\tescape character\n" -" \\E\tescape character\n" -" \\f\tform feed\n" -" \\n\tnew line\n" -" \\r\tcarriage return\n" -" \\t\thorizontal tab\n" -" \\v\tvertical tab\n" -" \\\\\tbackslash\n" -" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" -" \t0 to 3 octal digits\n" -" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" -" \tcan be one or two hex digits\n" -" \n" -" Exit Status:\n" -" Returns success unless a write error occurs." -msgstr "" -"Write arguments to the standard output.\n" -" \n" -" Display the ARGs on the standard output followed by a newline.\n" -" \n" -" Options:\n" -" -n\tdo not append a newline\n" -" -e\tenable interpretation of the following backslash escapes\n" -" -E\texplicitly suppress interpretation of backslash escapes\n" -" \n" -" ‘echo’ interprets the following backslash-escaped characters:\n" -" \\a\talert (bell)\n" -" \\b\tbackspace\n" -" \\c\tsuppress further output\n" -" \\e\tescape character\n" -" \\f\tform feed\n" -" \\n\tnew line\n" -" \\r\tcarriage return\n" -" \\t\thorizontal tab\n" -" \\v\tvertical tab\n" -" \\\\\tbackslash\n" -" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" -" \t0 to 3 octal digits\n" -" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" -" \tcan be one or two hex digits\n" -" \n" -" Exit Status:\n" -" Returns success unless a write error occurs." - -#: builtins.c:584 -msgid "" -"Write arguments to the standard output.\n" -" \n" -" Display the ARGs on the standard output followed by a newline.\n" -" \n" -" Options:\n" -" -n\tdo not append a newline\n" -" \n" -" Exit Status:\n" -" Returns success unless a write error occurs." -msgstr "" -"Write arguments to the standard output.\n" -" \n" -" Display the ARGs on the standard output followed by a newline.\n" -" \n" -" Options:\n" -" -n\tdo not append a newline\n" -" \n" -" Exit Status:\n" -" Returns success unless a write error occurs." - -#: builtins.c:599 -msgid "" -"Enable and disable shell builtins.\n" -" \n" -" Enables and disables builtin shell commands. Disabling allows you to\n" -" execute a disk command which has the same name as a shell builtin\n" -" without using a full pathname.\n" -" \n" -" Options:\n" -" -a\tprint a list of builtins showing whether or not each is enabled\n" -" -n\tdisable each NAME or display a list of disabled builtins\n" -" -p\tprint the list of builtins in a reusable format\n" -" -s\tprint only the names of Posix `special' builtins\n" -" \n" -" Options controlling dynamic loading:\n" -" -f\tLoad builtin NAME from shared object FILENAME\n" -" -d\tRemove a builtin loaded with -f\n" -" \n" -" Without options, each NAME is enabled.\n" -" \n" -" To use the `test' found in $PATH instead of the shell builtin\n" -" version, type `enable -n test'.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is not a shell builtin or an error occurs." -msgstr "" -"Enable and disable shell builtins.\n" -" \n" -" Enables and disables builtin shell commands. Disabling allows you to\n" -" execute a disk command which has the same name as a shell builtin\n" -" without using a full pathname.\n" -" \n" -" Options:\n" -" -a\tprint a list of builtins showing whether or not each is enabled\n" -" -n\tdisable each NAME or display a list of disabled builtins\n" -" -p\tprint the list of builtins in a reusable format\n" -" -s\tprint only the names of Posix ‘special’ builtins\n" -" \n" -" Options controlling dynamic loading:\n" -" -f\tLoad builtin NAME from shared object FILENAME\n" -" -d\tRemove a builtin loaded with -f\n" -" \n" -" Without options, each NAME is enabled.\n" -" \n" -" To use the ‘test’ found in $PATH instead of the shell builtin\n" -" version, type ‘enable -n test’.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is not a shell builtin or an error occurs." - -#: builtins.c:627 -msgid "" -"Execute arguments as a shell command.\n" -" \n" -" Combine ARGs into a single string, use the result as input to the " -"shell,\n" -" and execute the resulting commands.\n" -" \n" -" Exit Status:\n" -" Returns exit status of command or success if command is null." -msgstr "" -"Execute arguments as a shell command.\n" -" \n" -" Combine ARGs into a single string, use the result as input to the " -"shell,\n" -" and execute the resulting commands.\n" -" \n" -" Exit Status:\n" -" Returns exit status of command or success if command is null." - -#: builtins.c:639 -msgid "" -"Parse option arguments.\n" -" \n" -" Getopts is used by shell procedures to parse positional parameters\n" -" as options.\n" -" \n" -" OPTSTRING contains the option letters to be recognized; if a letter\n" -" is followed by a colon, the option is expected to have an argument,\n" -" which should be separated from it by white space.\n" -" \n" -" Each time it is invoked, getopts will place the next option in the\n" -" shell variable $name, initializing name if it does not exist, and\n" -" the index of the next argument to be processed into the shell\n" -" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" -" a shell script is invoked. When an option requires an argument,\n" -" getopts places that argument into the shell variable OPTARG.\n" -" \n" -" getopts reports errors in one of two ways. If the first character\n" -" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" -" this mode, no error messages are printed. If an invalid option is\n" -" seen, getopts places the option character found into OPTARG. If a\n" -" required argument is not found, getopts places a ':' into NAME and\n" -" sets OPTARG to the option character found. If getopts is not in\n" -" silent mode, and an invalid option is seen, getopts places '?' into\n" -" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" -" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" -" printed.\n" -" \n" -" If the shell variable OPTERR has the value 0, getopts disables the\n" -" printing of error messages, even if the first character of\n" -" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" -" \n" -" Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead.\n" -" \n" -" Exit Status:\n" -" Returns success if an option is found; fails if the end of options is\n" -" encountered or an error occurs." -msgstr "" -"Parse option arguments.\n" -" \n" -" Getopts is used by shell procedures to parse positional parameters\n" -" as options.\n" -" \n" -" OPTSTRING contains the option letters to be recognized; if a letter\n" -" is followed by a colon, the option is expected to have an argument,\n" -" which should be separated from it by white space.\n" -" \n" -" Each time it is invoked, getopts will place the next option in the\n" -" shell variable $name, initializing name if it does not exist, and\n" -" the index of the next argument to be processed into the shell\n" -" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" -" a shell script is invoked. When an option requires an argument,\n" -" getopts places that argument into the shell variable OPTARG.\n" -" \n" -" getopts reports errors in one of two ways. If the first character\n" -" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" -" this mode, no error messages are printed. If an invalid option is\n" -" seen, getopts places the option character found into OPTARG. If a\n" -" required argument is not found, getopts places a ‘:’ into NAME and\n" -" sets OPTARG to the option character found. If getopts is not in\n" -" silent mode, and an invalid option is seen, getopts places ‘?’ into\n" -" NAME and unsets OPTARG. If a required argument is not found, a ‘?’\n" -" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" -" printed.\n" -" \n" -" If the shell variable OPTERR has the value 0, getopts disables the\n" -" printing of error messages, even if the first character of\n" -" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" -" \n" -" Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead.\n" -" \n" -" Exit Status:\n" -" Returns success if an option is found; fails if the end of options is\n" -" encountered or an error occurs." - -#: builtins.c:681 -msgid "" -"Replace the shell with the given command.\n" -" \n" -" Execute COMMAND, replacing this shell with the specified program.\n" -" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " -"specified,\n" -" any redirections take effect in the current shell.\n" -" \n" -" Options:\n" -" -a name\tpass NAME as the zeroth argument to COMMAND\n" -" -c\t\texecute COMMAND with an empty environment\n" -" -l\t\tplace a dash in the zeroth argument to COMMAND\n" -" \n" -" If the command cannot be executed, a non-interactive shell exits, " -"unless\n" -" the shell option `execfail' is set.\n" -" \n" -" Exit Status:\n" -" Returns success unless COMMAND is not found or a redirection error " -"occurs." -msgstr "" -"Replace the shell with the given command.\n" -" \n" -" Execute COMMAND, replacing this shell with the specified program.\n" -" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " -"specified,\n" -" any redirections take effect in the current shell.\n" -" \n" -" Options:\n" -" -a name\tpass NAME as the zeroth argument to COMMAND\n" -" -c\t\texecute COMMAND with an empty environment\n" -" -l\t\tplace a dash in the zeroth argument to COMMAND\n" -" \n" -" If the command cannot be executed, a non-interactive shell exits, " -"unless\n" -" the shell option ‘execfail’ is set.\n" -" \n" -" Exit Status:\n" -" Returns success unless COMMAND is not found or a redirection error " -"occurs." - -#: builtins.c:702 -msgid "" -"Exit the shell.\n" -" \n" -" Exits the shell with a status of N. If N is omitted, the exit status\n" -" is that of the last command executed." -msgstr "" -"Exit the shell.\n" -" \n" -" Exits the shell with a status of N. If N is omitted, the exit status\n" -" is that of the last command executed." - -#: builtins.c:711 -msgid "" -"Exit a login shell.\n" -" \n" -" Exits a login shell with exit status N. Returns an error if not " -"executed\n" -" in a login shell." -msgstr "" -"Exit a login shell.\n" -" \n" -" Exits a login shell with exit status N. Returns an error if not " -"executed\n" -" in a login shell." - -#: builtins.c:721 -msgid "" -"Display or execute commands from the history list.\n" -" \n" -" fc is used to list or edit and re-execute commands from the history " -"list.\n" -" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" -" string, which means the most recent command beginning with that\n" -" string.\n" -" \n" -" Options:\n" -" -e ENAME\tselect which editor to use. Default is FCEDIT, then " -"EDITOR,\n" -" \t\tthen vi\n" -" -l \tlist lines instead of editing\n" -" -n\tomit line numbers when listing\n" -" -r\treverse the order of the lines (newest listed first)\n" -" \n" -" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" -" re-executed after the substitution OLD=NEW is performed.\n" -" \n" -" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" -" runs the last command beginning with `cc' and typing `r' re-executes\n" -" the last command.\n" -" \n" -" Exit Status:\n" -" Returns success or status of executed command; non-zero if an error " -"occurs." -msgstr "" -"Display or execute commands from the history list.\n" -" \n" -" fc is used to list or edit and re-execute commands from the history " -"list.\n" -" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" -" string, which means the most recent command beginning with that\n" -" string.\n" -" \n" -" Options:\n" -" -e ENAME\tselect which editor to use. Default is FCEDIT, then " -"EDITOR,\n" -" \t\tthen vi\n" -" -l \tlist lines instead of editing\n" -" -n\tomit line numbers when listing\n" -" -r\treverse the order of the lines (newest listed first)\n" -" \n" -" With the ‘fc -s [pat=rep ...] [command]’ format, COMMAND is\n" -" re-executed after the substitution OLD=NEW is performed.\n" -" \n" -" A useful alias to use with this is r='fc -s', so that typing ‘r cc’\n" -" runs the last command beginning with ‘cc’ and typing ‘r’ re-executes\n" -" the last command.\n" -" \n" -" Exit Status:\n" -" Returns success or status of executed command; non-zero if an error " -"occurs." - -#: builtins.c:751 -msgid "" -"Move job to the foreground.\n" -" \n" -" Place the job identified by JOB_SPEC in the foreground, making it the\n" -" current job. If JOB_SPEC is not present, the shell's notion of the\n" -" current job is used.\n" -" \n" -" Exit Status:\n" -" Status of command placed in foreground, or failure if an error occurs." -msgstr "" -"Move job to the foreground.\n" -" \n" -" Place the job identified by JOB_SPEC in the foreground, making it the\n" -" current job. If JOB_SPEC is not present, the shell's notion of the\n" -" current job is used.\n" -" \n" -" Exit Status:\n" -" Status of command placed in foreground, or failure if an error occurs." - -#: builtins.c:766 -msgid "" -"Move jobs to the background.\n" -" \n" -" Place the jobs identified by each JOB_SPEC in the background, as if " -"they\n" -" had been started with `&'. If JOB_SPEC is not present, the shell's " -"notion\n" -" of the current job is used.\n" -" \n" -" Exit Status:\n" -" Returns success unless job control is not enabled or an error occurs." -msgstr "" -"Move jobs to the background.\n" -" \n" -" Place the jobs identified by each JOB_SPEC in the background, as if " -"they\n" -" had been started with ‘&’. If JOB_SPEC is not present, the shell's " -"notion\n" -" of the current job is used.\n" -" \n" -" Exit Status:\n" -" Returns success unless job control is not enabled or an error occurs." - -#: builtins.c:780 -msgid "" -"Remember or display program locations.\n" -" \n" -" Determine and remember the full pathname of each command NAME. If\n" -" no arguments are given, information about remembered commands is " -"displayed.\n" -" \n" -" Options:\n" -" -d\t\tforget the remembered location of each NAME\n" -" -l\t\tdisplay in a format that may be reused as input\n" -" -p pathname\tuse PATHNAME is the full pathname of NAME\n" -" -r\t\tforget all remembered locations\n" -" -t\t\tprint the remembered location of each NAME, preceding\n" -" \t\teach location with the corresponding NAME if multiple\n" -" \t\tNAMEs are given\n" -" Arguments:\n" -" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" -" \t\tof remembered commands.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is not found or an invalid option is given." -msgstr "" -"Remember or display program locations.\n" -" \n" -" Determine and remember the full pathname of each command NAME. If\n" -" no arguments are given, information about remembered commands is " -"displayed.\n" -" \n" -" Options:\n" -" -d\t\tforget the remembered location of each NAME\n" -" -l\t\tdisplay in a format that may be reused as input\n" -" -p pathname\tuse PATHNAME is the full pathname of NAME\n" -" -r\t\tforget all remembered locations\n" -" -t\t\tprint the remembered location of each NAME, preceding\n" -" \t\teach location with the corresponding NAME if multiple\n" -" \t\tNAMEs are given\n" -" Arguments:\n" -" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" -" \t\tof remembered commands.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is not found or an invalid option is given." - -#: builtins.c:805 -msgid "" -"Display information about builtin commands.\n" -" \n" -" Displays brief summaries of builtin commands. If PATTERN is\n" -" specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise the list of help topics is printed.\n" -" \n" -" Options:\n" -" -d\toutput short description for each topic\n" -" -m\tdisplay usage in pseudo-manpage format\n" -" -s\toutput only a short usage synopsis for each topic matching\n" -" \tPATTERN\n" -" \n" -" Arguments:\n" -" PATTERN\tPattern specifiying a help topic\n" -" \n" -" Exit Status:\n" -" Returns success unless PATTERN is not found or an invalid option is " -"given." -msgstr "" -"Display information about builtin commands.\n" -" \n" -" Displays brief summaries of builtin commands. If PATTERN is\n" -" specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise the list of help topics is printed.\n" -" \n" -" Options:\n" -" -d\toutput short description for each topic\n" -" -m\tdisplay usage in pseudo-manpage format\n" -" -s\toutput only a short usage synopsis for each topic matching\n" -" \tPATTERN\n" -" \n" -" Arguments:\n" -" PATTERN\tPattern specifiying a help topic\n" -" \n" -" Exit Status:\n" -" Returns success unless PATTERN is not found or an invalid option is " -"given." - -#: builtins.c:829 -msgid "" -"Display or manipulate the history list.\n" -" \n" -" Display the history list with line numbers, prefixing each modified\n" -" entry with a `*'. An argument of N lists only the last N entries.\n" -" \n" -" Options:\n" -" -c\tclear the history list by deleting all of the entries\n" -" -d offset\tdelete the history entry at offset OFFSET.\n" -" \n" -" -a\tappend history lines from this session to the history file\n" -" -n\tread all history lines not already read from the history file\n" -" -r\tread the history file and append the contents to the history\n" -" \tlist\n" -" -w\twrite the current history to the history file\n" -" \tand append them to the history list\n" -" \n" -" -p\tperform history expansion on each ARG and display the result\n" -" \twithout storing it in the history list\n" -" -s\tappend the ARGs to the history list as a single entry\n" -" \n" -" If FILENAME is given, it is used as the history file. Otherwise,\n" -" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" \n" -" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" -" as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed " -"otherwise.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs." -msgstr "" -"Display or manipulate the history list.\n" -" \n" -" Display the history list with line numbers, prefixing each modified\n" -" entry with a ‘*’. An argument of N lists only the last N entries.\n" -" \n" -" Options:\n" -" -c\tclear the history list by deleting all of the entries\n" -" -d offset\tdelete the history entry at offset OFFSET.\n" -" \n" -" -a\tappend history lines from this session to the history file\n" -" -n\tread all history lines not already read from the history file\n" -" -r\tread the history file and append the contents to the history\n" -" \tlist\n" -" -w\twrite the current history to the history file\n" -" \tand append them to the history list\n" -" \n" -" -p\tperform history expansion on each ARG and display the result\n" -" \twithout storing it in the history list\n" -" -s\tappend the ARGs to the history list as a single entry\n" -" \n" -" If FILENAME is given, it is used as the history file. Otherwise,\n" -" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" \n" -" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" -" as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed " -"otherwise.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs." - -#: builtins.c:865 -msgid "" -"Display status of jobs.\n" -" \n" -" Lists the active jobs. JOBSPEC restricts output to that job.\n" -" Without options, the status of all active jobs is displayed.\n" -" \n" -" Options:\n" -" -l\tlists process IDs in addition to the normal information\n" -" -n\tlist only processes that have changed status since the last\n" -" \tnotification\n" -" -p\tlists process IDs only\n" -" -r\trestrict output to running jobs\n" -" -s\trestrict output to stopped jobs\n" -" \n" -" If -x is supplied, COMMAND is run after all job specifications that\n" -" appear in ARGS have been replaced with the process ID of that job's\n" -" process group leader.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs.\n" -" If -x is used, returns the exit status of COMMAND." -msgstr "" -"Display status of jobs.\n" -" \n" -" Lists the active jobs. JOBSPEC restricts output to that job.\n" -" Without options, the status of all active jobs is displayed.\n" -" \n" -" Options:\n" -" -l\tlists process IDs in addition to the normal information\n" -" -n\tlist only processes that have changed status since the last\n" -" \tnotification\n" -" -p\tlists process IDs only\n" -" -r\trestrict output to running jobs\n" -" -s\trestrict output to stopped jobs\n" -" \n" -" If -x is supplied, COMMAND is run after all job specifications that\n" -" appear in ARGS have been replaced with the process ID of that job's\n" -" process group leader.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs.\n" -" If -x is used, returns the exit status of COMMAND." - -#: builtins.c:892 -msgid "" -"Remove jobs from current shell.\n" -" \n" -" Removes each JOBSPEC argument from the table of active jobs. Without\n" -" any JOBSPECs, the shell uses its notion of the current job.\n" -" \n" -" Options:\n" -" -a\tremove all jobs if JOBSPEC is not supplied\n" -" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" -" \tshell receives a SIGHUP\n" -" -r\tremove only running jobs\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option or JOBSPEC is given." -msgstr "" -"Remove jobs from current shell.\n" -" \n" -" Removes each JOBSPEC argument from the table of active jobs. Without\n" -" any JOBSPECs, the shell uses its notion of the current job.\n" -" \n" -" Options:\n" -" -a\tremove all jobs if JOBSPEC is not supplied\n" -" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" -" \tshell receives a SIGHUP\n" -" -r\tremove only running jobs\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option or JOBSPEC is given." - -#: builtins.c:911 -msgid "" -"Send a signal to a job.\n" -" \n" -" Send the processes identified by PID or JOBSPEC the signal named by\n" -" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" -" SIGTERM is assumed.\n" -" \n" -" Options:\n" -" -s sig\tSIG is a signal name\n" -" -n sig\tSIG is a signal number\n" -" -l\tlist the signal names; if arguments follow `-l' they are\n" -" \tassumed to be signal numbers for which names should be listed\n" -" \n" -" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" -" instead of process IDs, and allows processes to be killed if the limit\n" -" on processes that you can create is reached.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs." -msgstr "" -"Send a signal to a job.\n" -" \n" -" Send the processes identified by PID or JOBSPEC the signal named by\n" -" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" -" SIGTERM is assumed.\n" -" \n" -" Options:\n" -" -s sig\tSIG is a signal name\n" -" -n sig\tSIG is a signal number\n" -" -l\tlist the signal names; if arguments follow ‘-l’ they are\n" -" \tassumed to be signal numbers for which names should be listed\n" -" \n" -" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" -" instead of process IDs, and allows processes to be killed if the limit\n" -" on processes that you can create is reached.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or an error occurs." - -#: builtins.c:934 -msgid "" -"Evaluate arithmetic expressions.\n" -" \n" -" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" -" fixed-width integers with no check for overflow, though division by 0\n" -" is trapped and flagged as an error. The following list of operators is\n" -" grouped into levels of equal-precedence operators. The levels are " -"listed\n" -" in order of decreasing precedence.\n" -" \n" -" \tid++, id--\tvariable post-increment, post-decrement\n" -" \t++id, --id\tvariable pre-increment, pre-decrement\n" -" \t-, +\t\tunary minus, plus\n" -" \t!, ~\t\tlogical and bitwise negation\n" -" \t**\t\texponentiation\n" -" \t*, /, %\t\tmultiplication, division, remainder\n" -" \t+, -\t\taddition, subtraction\n" -" \t<<, >>\t\tleft and right bitwise shifts\n" -" \t<=, >=, <, >\tcomparison\n" -" \t==, !=\t\tequality, inequality\n" -" \t&\t\tbitwise AND\n" -" \t^\t\tbitwise XOR\n" -" \t|\t\tbitwise OR\n" -" \t&&\t\tlogical AND\n" -" \t||\t\tlogical OR\n" -" \texpr ? expr : expr\n" -" \t\t\tconditional operator\n" -" \t=, *=, /=, %=,\n" -" \t+=, -=, <<=, >>=,\n" -" \t&=, ^=, |=\tassignment\n" -" \n" -" Shell variables are allowed as operands. The name of the variable\n" -" is replaced by its value (coerced to a fixed-width integer) within\n" -" an expression. The variable need not have its integer attribute\n" -" turned on to be used in an expression.\n" -" \n" -" Operators are evaluated in order of precedence. Sub-expressions in\n" -" parentheses are evaluated first and may override the precedence\n" -" rules above.\n" -" \n" -" Exit Status:\n" -" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise." -msgstr "" -"Evaluate arithmetic expressions.\n" -" \n" -" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" -" fixed-width integers with no check for overflow, though division by 0\n" -" is trapped and flagged as an error. The following list of operators is\n" -" grouped into levels of equal-precedence operators. The levels are " -"listed\n" -" in order of decreasing precedence.\n" -" \n" -" \tid++, id--\tvariable post-increment, post-decrement\n" -" \t++id, --id\tvariable pre-increment, pre-decrement\n" -" \t-, +\t\tunary minus, plus\n" -" \t!, ~\t\tlogical and bitwise negation\n" -" \t**\t\texponentiation\n" -" \t*, /, %\t\tmultiplication, division, remainder\n" -" \t+, -\t\taddition, subtraction\n" -" \t<<, >>\t\tleft and right bitwise shifts\n" -" \t<=, >=, <, >\tcomparison\n" -" \t==, !=\t\tequality, inequality\n" -" \t&\t\tbitwise AND\n" -" \t^\t\tbitwise XOR\n" -" \t|\t\tbitwise OR\n" -" \t&&\t\tlogical AND\n" -" \t||\t\tlogical OR\n" -" \texpr ? expr : expr\n" -" \t\t\tconditional operator\n" -" \t=, *=, /=, %=,\n" -" \t+=, -=, <<=, >>=,\n" -" \t&=, ^=, |=\tassignment\n" -" \n" -" Shell variables are allowed as operands. The name of the variable\n" -" is replaced by its value (coerced to a fixed-width integer) within\n" -" an expression. The variable need not have its integer attribute\n" -" turned on to be used in an expression.\n" -" \n" -" Operators are evaluated in order of precedence. Sub-expressions in\n" -" parentheses are evaluated first and may override the precedence\n" -" rules above.\n" -" \n" -" Exit Status:\n" -" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise." - -#: builtins.c:979 -#, fuzzy -msgid "" -"Read a line from the standard input and split it into fields.\n" -" \n" -" Reads a single line from the standard input, or from file descriptor FD\n" -" if the -u option is supplied. The line is split into fields as with " -"word\n" -" splitting, and the first word is assigned to the first NAME, the second\n" -" word to the second NAME, and so on, with any leftover words assigned to\n" -" the last NAME. Only the characters found in $IFS are recognized as " -"word\n" -" delimiters.\n" -" \n" -" If no NAMEs are supplied, the line read is stored in the REPLY " -"variable.\n" -" \n" -" Options:\n" -" -a array\tassign the words read to sequential indices of the array\n" -" \t\tvariable ARRAY, starting at zero\n" -" -d delim\tcontinue until the first character of DELIM is read, rather\n" -" \t\tthan newline\n" -" -e\t\tuse Readline to obtain the line in an interactive shell\n" -" -i text\tUse TEXT as the initial text for Readline\n" -" -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" -" \t\tcharacters are read before the delimiter\n" -" -N nchars\treturn only after reading exactly NCHARS characters, " -"unless\n" -" \t\tEOF is encountered or read times out, ignoring any delimiter\n" -" -p prompt\toutput the string PROMPT without a trailing newline before\n" -" \t\tattempting to read\n" -" -r\t\tdo not allow backslashes to escape any characters\n" -" -s\t\tdo not echo input coming from a terminal\n" -" -t timeout\ttime out and return failure if a complete line of input " -"is\n" -" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" -" \t\tvariable is the default timeout. TIMEOUT may be a\n" -" \t\tfractional number. If TIMEOUT is 0, read returns immediately,\n" -" \t\twithout trying to read any data, returning success only if\n" -" \t\tinput is available on the specified file descriptor. The\n" -" \t\texit status is greater than 128 if the timeout is exceeded\n" -" -u fd\t\tread from file descriptor FD instead of the standard input\n" -" \n" -" Exit Status:\n" -" The return code is zero, unless end-of-file is encountered, read times " -"out\n" -" (in which case it's greater than 128), a variable assignment error " -"occurs,\n" -" or an invalid file descriptor is supplied as the argument to -u." -msgstr "" -"Read a line from the standard input and split it into fields.\n" -" \n" -" Reads a single line from the standard input, or from file descriptor FD\n" -" if the -u option is supplied. The line is split into fields as with " -"word\n" -" splitting, and the first word is assigned to the first NAME, the second\n" -" word to the second NAME, and so on, with any leftover words assigned to\n" -" the last NAME. Only the characters found in $IFS are recognized as " -"word\n" -" delimiters.\n" -" \n" -" If no NAMEs are supplied, the line read is stored in the REPLY " -"variable.\n" -" \n" -" Options:\n" -" -a array\tassign the words read to sequential indices of the array\n" -" \t\tvariable ARRAY, starting at zero\n" -" -d delim\tcontinue until the first character of DELIM is read, rather\n" -" \t\tthan newline\n" -" -e\t\tuse Readline to obtain the line in an interactive shell\n" -" -i text\tUse TEXT as the initial text for Readline\n" -" -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" -" \t\tcharacters are read before the delimiter\n" -" -N nchars\treturn only after reading exactly NCHARS characters, " -"unless\n" -" \t\tEOF is encountered or read times out, ignoring any delimiter\n" -" -p prompt\toutput the string PROMPT without a trailing newline before\n" -" \t\tattempting to read\n" -" -r\t\tdo not allow backslashes to escape any characters\n" -" -s\t\tdo not echo input coming from a terminal\n" -" -t timeout\ttime out and return failure if a complete line of input " -"is\n" -" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" -" \t\tvariable is the default timeout. TIMEOUT may be a\n" -" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" -" \t\tif input is available on the specified file descriptor. The\n" -" \t\texit status is greater than 128 if the timeout is exceeded\n" -" -u fd\t\tread from file descriptor FD instead of the standard input\n" -" \n" -" Exit Status:\n" -" The return code is zero, unless end-of-file is encountered, read times " -"out,\n" -" or an invalid file descriptor is supplied as the argument to -u." - -#: builtins.c:1024 -msgid "" -"Return from a shell function.\n" -" \n" -" Causes a function or sourced script to exit with the return value\n" -" specified by N. If N is omitted, the return status is that of the\n" -" last command executed within the function or script.\n" -" \n" -" Exit Status:\n" -" Returns N, or failure if the shell is not executing a function or script." -msgstr "" -"Return from a shell function.\n" -" \n" -" Causes a function or sourced script to exit with the return value\n" -" specified by N. If N is omitted, the return status is that of the\n" -" last command executed within the function or script.\n" -" \n" -" Exit Status:\n" -" Returns N, or failure if the shell is not executing a function or script." - -#: builtins.c:1037 -#, fuzzy -msgid "" -"Set or unset values of shell options and positional parameters.\n" -" \n" -" Change the value of shell attributes and positional parameters, or\n" -" display the names and values of shell variables.\n" -" \n" -" Options:\n" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status of\n" -" the last command to exit with a non-zero status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the Posix standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not resolve symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" -- Assign any remaining arguments to the positional parameters.\n" -" If there are no remaining arguments, the positional parameters\n" -" are unset.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" -" \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given." -msgstr "" -"Set or unset values of shell options and positional parameters.\n" -" \n" -" Change the value of shell attributes and positional parameters, or\n" -" display the names and values of shell variables.\n" -" \n" -" Options:\n" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status of\n" -" the last command to exit with a non-zero status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the Posix standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" -- Assign any remaining arguments to the positional parameters.\n" -" If there are no remaining arguments, the positional parameters\n" -" are unset.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" -" \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given." - -#: builtins.c:1122 -msgid "" -"Unset values and attributes of shell variables and functions.\n" -" \n" -" For each NAME, remove the corresponding variable or function.\n" -" \n" -" Options:\n" -" -f\ttreat each NAME as a shell function\n" -" -v\ttreat each NAME as a shell variable\n" -" \n" -" Without options, unset first tries to unset a variable, and if that " -"fails,\n" -" tries to unset a function.\n" -" \n" -" Some variables cannot be unset; also see `readonly'.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or a NAME is read-only." -msgstr "" -"Unset values and attributes of shell variables and functions.\n" -" \n" -" For each NAME, remove the corresponding variable or function.\n" -" \n" -" Options:\n" -" -f\ttreat each NAME as a shell function\n" -" -v\ttreat each NAME as a shell variable\n" -" \n" -" Without options, unset first tries to unset a variable, and if that " -"fails,\n" -" tries to unset a function.\n" -" \n" -" Some variables cannot be unset; also see ‘readonly’.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or a NAME is read-only." - -#: builtins.c:1142 -msgid "" -"Set export attribute for shell variables.\n" -" \n" -" Marks each NAME for automatic export to the environment of subsequently\n" -" executed commands. If VALUE is supplied, assign VALUE before " -"exporting.\n" -" \n" -" Options:\n" -" -f\trefer to shell functions\n" -" -n\tremove the export property from each NAME\n" -" -p\tdisplay a list of all exported variables and functions\n" -" \n" -" An argument of `--' disables further option processing.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or NAME is invalid." -msgstr "" -"Set export attribute for shell variables.\n" -" \n" -" Marks each NAME for automatic export to the environment of subsequently\n" -" executed commands. If VALUE is supplied, assign VALUE before " -"exporting.\n" -" \n" -" Options:\n" -" -f\trefer to shell functions\n" -" -n\tremove the export property from each NAME\n" -" -p\tdisplay a list of all exported variables and functions\n" -" \n" -" An argument of ‘--’ disables further option processing.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or NAME is invalid." - -#: builtins.c:1161 -msgid "" -"Mark shell variables as unchangeable.\n" -" \n" -" Mark each NAME as read-only; the values of these NAMEs may not be\n" -" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" -" before marking as read-only.\n" -" \n" -" Options:\n" -" -a\trefer to indexed array variables\n" -" -A\trefer to associative array variables\n" -" -f\trefer to shell functions\n" -" -p\tdisplay a list of all readonly variables and functions\n" -" \n" -" An argument of `--' disables further option processing.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or NAME is invalid." -msgstr "" -"Mark shell variables as unchangeable.\n" -" \n" -" Mark each NAME as read-only; the values of these NAMEs may not be\n" -" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" -" before marking as read-only.\n" -" \n" -" Options:\n" -" -a\trefer to indexed array variables\n" -" -A\trefer to associative array variables\n" -" -f\trefer to shell functions\n" -" -p\tdisplay a list of all readonly variables and functions\n" -" \n" -" An argument of ‘--’ disables further option processing.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or NAME is invalid." - -#: builtins.c:1182 -msgid "" -"Shift positional parameters.\n" -" \n" -" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" -" not given, it is assumed to be 1.\n" -" \n" -" Exit Status:\n" -" Returns success unless N is negative or greater than $#." -msgstr "" -"Shift positional parameters.\n" -" \n" -" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" -" not given, it is assumed to be 1.\n" -" \n" -" Exit Status:\n" -" Returns success unless N is negative or greater than $#." - -#: builtins.c:1194 builtins.c:1209 -msgid "" -"Execute commands from a file in the current shell.\n" -" \n" -" Read and execute commands from FILENAME in the current shell. The\n" -" entries in $PATH are used to find the directory containing FILENAME.\n" -" If any ARGUMENTS are supplied, they become the positional parameters\n" -" when FILENAME is executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed in FILENAME; fails if\n" -" FILENAME cannot be read." -msgstr "" -"Execute commands from a file in the current shell.\n" -" \n" -" Read and execute commands from FILENAME in the current shell. The\n" -" entries in $PATH are used to find the directory containing FILENAME.\n" -" If any ARGUMENTS are supplied, they become the positional parameters\n" -" when FILENAME is executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed in FILENAME; fails if\n" -" FILENAME cannot be read." - -#: builtins.c:1225 -msgid "" -"Suspend shell execution.\n" -" \n" -" Suspend the execution of this shell until it receives a SIGCONT signal.\n" -" Unless forced, login shells cannot be suspended.\n" -" \n" -" Options:\n" -" -f\tforce the suspend, even if the shell is a login shell\n" -" \n" -" Exit Status:\n" -" Returns success unless job control is not enabled or an error occurs." -msgstr "" -"Suspend shell execution.\n" -" \n" -" Suspend the execution of this shell until it receives a SIGCONT signal.\n" -" Unless forced, login shells cannot be suspended.\n" -" \n" -" Options:\n" -" -f\tforce the suspend, even if the shell is a login shell\n" -" \n" -" Exit Status:\n" -" Returns success unless job control is not enabled or an error occurs." - -#: builtins.c:1241 -msgid "" -"Evaluate conditional expression.\n" -" \n" -" Exits with a status of 0 (true) or 1 (false) depending on\n" -" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" -" expressions are often used to examine the status of a file. There\n" -" are string operators and numeric comparison operators as well.\n" -" \n" -" The behavior of test depends on the number of arguments. Read the\n" -" bash manual page for the complete specification.\n" -" \n" -" File operators:\n" -" \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its `sticky' bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " -"read.\n" -" \n" -" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" -" modification date).\n" -" \n" -" FILE1 -ot FILE2 True if file1 is older than file2.\n" -" \n" -" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" -" \n" -" String operators:\n" -" \n" -" -z STRING True if string is empty.\n" -" \n" -" -n STRING\n" -" STRING True if string is not empty.\n" -" \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 lexicographically.\n" -" \n" -" Other operators:\n" -" \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" -v VAR\t True if the shell variable VAR is set\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" -" \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" -" \n" -" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" -" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2.\n" -" \n" -" Exit Status:\n" -" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" -" false or an invalid argument is given." -msgstr "" -"Evaluate conditional expression.\n" -" \n" -" Exits with a status of 0 (true) or 1 (false) depending on\n" -" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" -" expressions are often used to examine the status of a file. There\n" -" are string operators and numeric comparison operators as well.\n" -" \n" -" The behavior of test depends on the number of arguments. Read the\n" -" bash manual page for the complete specification.\n" -" \n" -" File operators:\n" -" \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its ‘sticky’ bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " -"read.\n" -" \n" -" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" -" modification date).\n" -" \n" -" FILE1 -ot FILE2 True if file1 is older than file2.\n" -" \n" -" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" -" \n" -" String operators:\n" -" \n" -" -z STRING True if string is empty.\n" -" \n" -" -n STRING\n" -" STRING True if string is not empty.\n" -" \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 lexicographically.\n" -" \n" -" Other operators:\n" -" \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" -v VAR\t True if the shell variable VAR is set\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" -" \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" -" \n" -" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" -" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2.\n" -" \n" -" Exit Status:\n" -" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" -" false or an invalid argument is given." - -#: builtins.c:1321 -msgid "" -"Evaluate conditional expression.\n" -" \n" -" This is a synonym for the \"test\" builtin, but the last argument must\n" -" be a literal `]', to match the opening `['." -msgstr "" -"Evaluate conditional expression.\n" -" \n" -" This is a synonym for the “test” builtin, but the last argument must\n" -" be a literal ‘]’, to match the opening ‘[’." - -#: builtins.c:1330 -msgid "" -"Display process times.\n" -" \n" -" Prints the accumulated user and system times for the shell and all of " -"its\n" -" child processes.\n" -" \n" -" Exit Status:\n" -" Always succeeds." -msgstr "" -"Display process times.\n" -" \n" -" Prints the accumulated user and system times for the shell and all of " -"its\n" -" child processes.\n" -" \n" -" Exit Status:\n" -" Always succeeds." - -#: builtins.c:1342 -msgid "" -"Trap signals and other events.\n" -" \n" -" Defines and activates handlers to be run when the shell receives " -"signals\n" -" or other conditions.\n" -" \n" -" ARG is a command to be read and executed when the shell receives the\n" -" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" -" is supplied) or `-', each specified signal is reset to its original\n" -" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes.\n" -" \n" -" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " -"If\n" -" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command. " -"If\n" -" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or " -"a\n" -" script run by the . or source builtins finishes executing. A " -"SIGNAL_SPEC\n" -" of ERR means to execute ARG each time a command's failure would cause " -"the\n" -" shell to exit when the -e option is enabled.\n" -" \n" -" If no arguments are supplied, trap prints the list of commands " -"associated\n" -" with each signal.\n" -" \n" -" Options:\n" -" -l\tprint a list of signal names and their corresponding numbers\n" -" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" -" \n" -" Each SIGNAL_SPEC is either a signal name in or a signal " -"number.\n" -" Signal names are case insensitive and the SIG prefix is optional. A\n" -" signal may be sent to the shell with \"kill -signal $$\".\n" -" \n" -" Exit Status:\n" -" Returns success unless a SIGSPEC is invalid or an invalid option is " -"given." -msgstr "" -"Trap signals and other events.\n" -" \n" -" Defines and activates handlers to be run when the shell receives " -"signals\n" -" or other conditions.\n" -" \n" -" ARG is a command to be read and executed when the shell receives the\n" -" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" -" is supplied) or ‘-’, each specified signal is reset to its original\n" -" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes.\n" -" \n" -" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " -"If\n" -" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command. " -"If\n" -" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or " -"a\n" -" script run by the . or source builtins finishes executing. A " -"SIGNAL_SPEC\n" -" of ERR means to execute ARG each time a command's failure would cause " -"the\n" -" shell to exit when the -e option is enabled.\n" -" \n" -" If no arguments are supplied, trap prints the list of commands " -"associated\n" -" with each signal.\n" -" \n" -" Options:\n" -" -l\tprint a list of signal names and their corresponding numbers\n" -" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" -" \n" -" Each SIGNAL_SPEC is either a signal name in or a signal " -"number.\n" -" Signal names are case insensitive and the SIG prefix is optional. A\n" -" signal may be sent to the shell with “kill -signal $$”.\n" -" \n" -" Exit Status:\n" -" Returns success unless a SIGSPEC is invalid or an invalid option is " -"given." - -#: builtins.c:1378 -msgid "" -"Display information about command type.\n" -" \n" -" For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" -" \n" -" Options:\n" -" -a\tdisplay all locations containing an executable named NAME;\n" -" \tincludes aliases, builtins, and functions, if and only if\n" -" \tthe `-p' option is not also used\n" -" -f\tsuppress shell function lookup\n" -" -P\tforce a PATH search for each NAME, even if it is an alias,\n" -" \tbuiltin, or function, and returns the name of the disk file\n" -" \tthat would be executed\n" -" -p\treturns either the name of the disk file that would be executed,\n" -" \tor nothing if `type -t NAME' would not return `file'.\n" -" -t\toutput a single word which is one of `alias', `keyword',\n" -" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" -" \treserved word, shell function, shell builtin, disk file, or not\n" -" \tfound, respectively\n" -" \n" -" Arguments:\n" -" NAME\tCommand name to be interpreted.\n" -" \n" -" Exit Status:\n" -" Returns success if all of the NAMEs are found; fails if any are not " -"found." -msgstr "" -"Display information about command type.\n" -" \n" -" For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" -" \n" -" Options:\n" -" -a\tdisplay all locations containing an executable named NAME;\n" -" \tincludes aliases, builtins, and functions, if and only if\n" -" \tthe ‘-p’ option is not also used\n" -" -f\tsuppress shell function lookup\n" -" -P\tforce a PATH search for each NAME, even if it is an alias,\n" -" \tbuiltin, or function, and returns the name of the disk file\n" -" \tthat would be executed\n" -" -p\treturns either the name of the disk file that would be executed,\n" -" \tor nothing if ‘type -t NAME’ would not return ‘file’.\n" -" -t\toutput a single word which is one of ‘alias’, ‘keyword’,\n" -" \t‘function’, ‘builtin’, ‘file’ or ‘’, if NAME is an alias, shell\n" -" \treserved word, shell function, shell builtin, disk file, or not\n" -" \tfound, respectively\n" -" \n" -" Arguments:\n" -" NAME\tCommand name to be interpreted.\n" -" \n" -" Exit Status:\n" -" Returns success if all of the NAMEs are found; fails if any are not " -"found." - -#: builtins.c:1409 -#, fuzzy -msgid "" -"Modify shell resource limits.\n" -" \n" -" Provides control over the resources available to the shell and " -"processes\n" -" it creates, on systems that allow such control.\n" -" \n" -" Options:\n" -" -S\tuse the `soft' resource limit\n" -" -H\tuse the `hard' resource limit\n" -" -a\tall current limits are reported\n" -" -b\tthe socket buffer size\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -e\tthe maximum scheduling priority (`nice')\n" -" -f\tthe maximum size of files written by the shell and its children\n" -" -i\tthe maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q\tthe maximum number of bytes in POSIX message queues\n" -" -r\tthe maximum real-time scheduling priority\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x\tthe maximum number of file locks\n" -" -T the maximum number of threads\n" -" \n" -" Not all options are available on all platforms.\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource; the\n" -" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" -" current soft limit, the current hard limit, and no limit, respectively.\n" -" Otherwise, the current value of the specified resource is printed. If\n" -" no option is given, then -f is assumed.\n" -" \n" -" Values are in 1024-byte increments, except for -t, which is in seconds,\n" -" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" -" number of processes.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" -"Modify shell resource limits.\n" -" \n" -" Provides control over the resources available to the shell and " -"processes\n" -" it creates, on systems that allow such control.\n" -" \n" -" Options:\n" -" -S\tuse the ‘soft’ resource limit\n" -" -H\tuse the ‘hard’ resource limit\n" -" -a\tall current limits are reported\n" -" -b\tthe socket buffer size\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -e\tthe maximum scheduling priority (‘nice’)\n" -" -f\tthe maximum size of files written by the shell and its children\n" -" -i\tthe maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q\tthe maximum number of bytes in POSIX message queues\n" -" -r\tthe maximum real-time scheduling priority\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x\tthe maximum number of file locks\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource; the\n" -" special LIMIT values ‘soft’, ‘hard’, and ‘unlimited’ stand for the\n" -" current soft limit, the current hard limit, and no limit, respectively.\n" -" Otherwise, the current value of the specified resource is printed. If\n" -" no option is given, then -f is assumed.\n" -" \n" -" Values are in 1024-byte increments, except for -t, which is in seconds,\n" -" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" -" number of processes.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." - -#: builtins.c:1457 -msgid "" -"Display or set file mode mask.\n" -" \n" -" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" -" the current value of the mask.\n" -" \n" -" If MODE begins with a digit, it is interpreted as an octal number;\n" -" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" -" \n" -" Options:\n" -" -p\tif MODE is omitted, output in a form that may be reused as input\n" -" -S\tmakes the output symbolic; otherwise an octal number is output\n" -" \n" -" Exit Status:\n" -" Returns success unless MODE is invalid or an invalid option is given." -msgstr "" -"Display or set file mode mask.\n" -" \n" -" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" -" the current value of the mask.\n" -" \n" -" If MODE begins with a digit, it is interpreted as an octal number;\n" -" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" -" \n" -" Options:\n" -" -p\tif MODE is omitted, output in a form that may be reused as input\n" -" -S\tmakes the output symbolic; otherwise an octal number is output\n" -" \n" -" Exit Status:\n" -" Returns success unless MODE is invalid or an invalid option is given." - -#: builtins.c:1477 -#, fuzzy -msgid "" -"Wait for job completion and return exit status.\n" -" \n" -" Waits for each process identified by an ID, which may be a process ID or " -"a\n" -" job specification, and reports its termination status. If ID is not\n" -" given, waits for all currently active child processes, and the return\n" -" status is zero. If ID is a a job specification, waits for all " -"processes\n" -" in that job's pipeline.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last ID; fails if ID is invalid or an invalid\n" -" option is given." -msgstr "" -"Wait for job completion and return exit status.\n" -" \n" -" Waits for the process identified by ID, which may be a process ID or a\n" -" job specification, and reports its termination status. If ID is not\n" -" given, waits for all currently active child processes, and the return\n" -" status is zero. If ID is a a job specification, waits for all " -"processes\n" -" in the job's pipeline.\n" -" \n" -" Exit Status:\n" -" Returns the status of ID; fails if ID is invalid or an invalid option " -"is\n" -" given." - -#: builtins.c:1495 -msgid "" -"Wait for process completion and return exit status.\n" -" \n" -" Waits for the specified process and reports its termination status. If\n" -" PID is not given, all currently active child processes are waited for,\n" -" and the return code is zero. PID must be a process ID.\n" -" \n" -" Exit Status:\n" -" Returns the status of ID; fails if ID is invalid or an invalid option " -"is\n" -" given." -msgstr "" -"Wait for process completion and return exit status.\n" -" \n" -" Waits for the specified process and reports its termination status. If\n" -" PID is not given, all currently active child processes are waited for,\n" -" and the return code is zero. PID must be a process ID.\n" -" \n" -" Exit Status:\n" -" Returns the status of ID; fails if ID is invalid or an invalid option " -"is\n" -" given." - -#: builtins.c:1510 -msgid "" -"Execute commands for each member in a list.\n" -" \n" -" The `for' loop executes a sequence of commands for each member in a\n" -" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" -" assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" -"Execute commands for each member in a list.\n" -" \n" -" The ‘for’ loop executes a sequence of commands for each member in a\n" -" list of items. If ‘in WORDS ...;’ is not present, then ‘in “$@”’ is\n" -" assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." - -#: builtins.c:1524 -msgid "" -"Arithmetic for loop.\n" -" \n" -" Equivalent to\n" -" \t(( EXP1 ))\n" -" \twhile (( EXP2 )); do\n" -" \t\tCOMMANDS\n" -" \t\t(( EXP3 ))\n" -" \tdone\n" -" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" -"Arithmetic for loop.\n" -" \n" -" Equivalent to\n" -" \t(( EXP1 ))\n" -" \twhile (( EXP2 )); do\n" -" \t\tCOMMANDS\n" -" \t\t(( EXP3 ))\n" -" \tdone\n" -" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." - -#: builtins.c:1542 -msgid "" -"Select words from a list and execute commands.\n" -" \n" -" The WORDS are expanded, generating a list of words. The\n" -" set of expanded words is printed on the standard error, each\n" -" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" -" is assumed. The PS3 prompt is then displayed and a line read\n" -" from the standard input. If the line consists of the number\n" -" corresponding to one of the displayed words, then NAME is set\n" -" to that word. If the line is empty, WORDS and the prompt are\n" -" redisplayed. If EOF is read, the command completes. Any other\n" -" value read causes NAME to be set to null. The line read is saved\n" -" in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" -"Select words from a list and execute commands.\n" -" \n" -" The WORDS are expanded, generating a list of words. The\n" -" set of expanded words is printed on the standard error, each\n" -" preceded by a number. If ‘in WORDS’ is not present, ‘in “$@”’\n" -" is assumed. The PS3 prompt is then displayed and a line read\n" -" from the standard input. If the line consists of the number\n" -" corresponding to one of the displayed words, then NAME is set\n" -" to that word. If the line is empty, WORDS and the prompt are\n" -" redisplayed. If EOF is read, the command completes. Any other\n" -" value read causes NAME to be set to null. The line read is saved\n" -" in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." - -#: builtins.c:1563 -msgid "" -"Report time consumed by pipeline's execution.\n" -" \n" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" -" and system CPU time spent executing PIPELINE when it terminates.\n" -" \n" -" Options:\n" -" -p\tprint the timing summary in the portable Posix format\n" -" \n" -" The value of the TIMEFORMAT variable is used as the output format.\n" -" \n" -" Exit Status:\n" -" The return status is the return status of PIPELINE." -msgstr "" -"Report time consumed by pipeline's execution.\n" -" \n" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" -" and system CPU time spent executing PIPELINE when it terminates.\n" -" \n" -" Options:\n" -" -p\tprint the timing summary in the portable Posix format\n" -" \n" -" The value of the TIMEFORMAT variable is used as the output format.\n" -" \n" -" Exit Status:\n" -" The return status is the return status of PIPELINE." - -#: builtins.c:1580 -msgid "" -"Execute commands based on pattern matching.\n" -" \n" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" `|' is used to separate multiple patterns.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" -"Execute commands based on pattern matching.\n" -" \n" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" ‘|’ is used to separate multiple patterns.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." - -#: builtins.c:1592 -msgid "" -"Execute commands based on conditional.\n" -" \n" -" The `if COMMANDS' list is executed. If its exit status is zero, then " -"the\n" -" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " -"is\n" -" executed in turn, and if its exit status is zero, the corresponding\n" -" `then COMMANDS' list is executed and the if command completes. " -"Otherwise,\n" -" the `else COMMANDS' list is executed, if present. The exit status of " -"the\n" -" entire construct is the exit status of the last command executed, or " -"zero\n" -" if no condition tested true.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" -"Execute commands based on conditional.\n" -" \n" -" The ‘if COMMANDS’ list is executed. If its exit status is zero, then " -"the\n" -" ‘then COMMANDS’ list is executed. Otherwise, each ‘elif COMMANDS’ list " -"is\n" -" executed in turn, and if its exit status is zero, the corresponding\n" -" ‘then COMMANDS’ list is executed and the if command completes. " -"Otherwise,\n" -" the ‘else COMMANDS’ list is executed, if present. The exit status of " -"the\n" -" entire construct is the exit status of the last command executed, or " -"zero\n" -" if no condition tested true.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." - -#: builtins.c:1609 -msgid "" -"Execute commands as long as a test succeeds.\n" -" \n" -" Expand and execute COMMANDS as long as the final command in the\n" -" `while' COMMANDS has an exit status of zero.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" -"Execute commands as long as a test succeeds.\n" -" \n" -" Expand and execute COMMANDS as long as the final command in the\n" -" ‘while’ COMMANDS has an exit status of zero.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." - -#: builtins.c:1621 -msgid "" -"Execute commands as long as a test does not succeed.\n" -" \n" -" Expand and execute COMMANDS as long as the final command in the\n" -" `until' COMMANDS has an exit status which is not zero.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" -"Execute commands as long as a test does not succeed.\n" -" \n" -" Expand and execute COMMANDS as long as the final command in the\n" -" ‘until’ COMMANDS has an exit status which is not zero.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." - -#: builtins.c:1633 -msgid "" -"Create a coprocess named NAME.\n" -" \n" -" Execute COMMAND asynchronously, with the standard output and standard\n" -" input of the command connected via a pipe to file descriptors assigned\n" -" to indices 0 and 1 of an array variable NAME in the executing shell.\n" -" The default NAME is \"COPROC\".\n" -" \n" -" Exit Status:\n" -" Returns the exit status of COMMAND." -msgstr "" -"Create a coprocess named NAME.\n" -" \n" -" Execute COMMAND asynchronously, with the standard output and standard\n" -" input of the command connected via a pipe to file descriptors assigned\n" -" to indices 0 and 1 of an array variable NAME in the executing shell.\n" -" The default NAME is “COPROC”.\n" -" \n" -" Exit Status:\n" -" Returns the exit status of COMMAND." - -#: builtins.c:1647 -msgid "" -"Define shell function.\n" -" \n" -" Create a shell function named NAME. When invoked as a simple command,\n" -" NAME runs COMMANDs in the calling shell's context. When NAME is " -"invoked,\n" -" the arguments are passed to the function as $1...$n, and the function's\n" -" name is in $FUNCNAME.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is readonly." -msgstr "" -"Define shell function.\n" -" \n" -" Create a shell function named NAME. When invoked as a simple command,\n" -" NAME runs COMMANDs in the calling shell's context. When NAME is " -"invoked,\n" -" the arguments are passed to the function as $1...$n, and the function's\n" -" name is in $FUNCNAME.\n" -" \n" -" Exit Status:\n" -" Returns success unless NAME is readonly." - -#: builtins.c:1661 -msgid "" -"Group commands as a unit.\n" -" \n" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." -msgstr "" -"Group commands as a unit.\n" -" \n" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands.\n" -" \n" -" Exit Status:\n" -" Returns the status of the last command executed." - -#: builtins.c:1673 -msgid "" -"Resume job in foreground.\n" -" \n" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" -" stopped or background job. JOB_SPEC can specify either a job name\n" -" or a job number. Following JOB_SPEC with a `&' places the job in\n" -" the background, as if the job specification had been supplied as an\n" -" argument to `bg'.\n" -" \n" -" Exit Status:\n" -" Returns the status of the resumed job." -msgstr "" -"Resume job in foreground.\n" -" \n" -" Equivalent to the JOB_SPEC argument to the ‘fg’ command. Resume a\n" -" stopped or background job. JOB_SPEC can specify either a job name\n" -" or a job number. Following JOB_SPEC with a ‘&’ places the job in\n" -" the background, as if the job specification had been supplied as an\n" -" argument to ‘bg’.\n" -" \n" -" Exit Status:\n" -" Returns the status of the resumed job." - -#: builtins.c:1688 -msgid "" -"Evaluate arithmetic expression.\n" -" \n" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to \"let EXPRESSION\".\n" -" \n" -" Exit Status:\n" -" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." -msgstr "" -"Evaluate arithmetic expression.\n" -" \n" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to “let EXPRESSION”.\n" -" \n" -" Exit Status:\n" -" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." - -#: builtins.c:1700 -msgid "" -"Execute conditional command.\n" -" \n" -" Returns a status of 0 or 1 depending on the evaluation of the " -"conditional\n" -" expression EXPRESSION. Expressions are composed of the same primaries " -"used\n" -" by the `test' builtin, and may be combined using the following " -"operators:\n" -" \n" -" ( EXPRESSION )\tReturns the value of EXPRESSION\n" -" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" -" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" -" \n" -" When the `==' and `!=' operators are used, the string to the right of\n" -" the operator is used as a pattern and pattern matching is performed.\n" -" When the `=~' operator is used, the string to the right of the operator\n" -" is matched as a regular expression.\n" -" \n" -" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value.\n" -" \n" -" Exit Status:\n" -" 0 or 1 depending on value of EXPRESSION." -msgstr "" -"Execute conditional command.\n" -" \n" -" Returns a status of 0 or 1 depending on the evaluation of the " -"conditional\n" -" expression EXPRESSION. Expressions are composed of the same primaries " -"used\n" -" by the ‘test’ builtin, and may be combined using the following " -"operators:\n" -" \n" -" ( EXPRESSION )\tReturns the value of EXPRESSION\n" -" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" -" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" -" \n" -" When the ‘==’ and ‘!=’ operators are used, the string to the right of\n" -" the operator is used as a pattern and pattern matching is performed.\n" -" When the ‘=~’ operator is used, the string to the right of the operator\n" -" is matched as a regular expression.\n" -" \n" -" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value.\n" -" \n" -" Exit Status:\n" -" 0 or 1 depending on value of EXPRESSION." - -#: builtins.c:1726 -msgid "" -"Common shell variable names and usage.\n" -" \n" -" BASH_VERSION\tVersion information for this Bash.\n" -" CDPATH\tA colon-separated list of directories to search\n" -" \t\tfor directories given as arguments to `cd'.\n" -" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" -" \t\tbe ignored by pathname expansion.\n" -" HISTFILE\tThe name of the file where your command history is stored.\n" -" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" -" HISTSIZE\tThe maximum number of history lines that a running\n" -" \t\tshell can access.\n" -" HOME\tThe complete pathname to your login directory.\n" -" HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" -" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" -" \t\tcharacter as the sole input. If set, then the value\n" -" \t\tof it is the number of EOF characters that can be seen\n" -" \t\tin a row on an empty line before the shell will exit\n" -" \t\t(default 10). When unset, EOF signifies the end of input.\n" -" MACHTYPE\tA string describing the current system Bash is running on.\n" -" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" -" MAILPATH\tA colon-separated list of filenames which Bash checks\n" -" \t\tfor new mail.\n" -" OSTYPE\tThe version of Unix this version of Bash is running on.\n" -" PATH\tA colon-separated list of directories to search when\n" -" \t\tlooking for commands.\n" -" PROMPT_COMMAND\tA command to be executed before the printing of each\n" -" \t\tprimary prompt.\n" -" PS1\t\tThe primary prompt string.\n" -" PS2\t\tThe secondary prompt string.\n" -" PWD\t\tThe full pathname of the current directory.\n" -" SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM\tThe name of the current terminal type.\n" -" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" -" \t\t`time' reserved word.\n" -" auto_resume\tNon-null means a command word appearing on a line by\n" -" \t\titself is first looked for in the list of currently\n" -" \t\tstopped jobs. If found there, that job is foregrounded.\n" -" \t\tA value of `exact' means that the command word must\n" -" \t\texactly match a command in the list of stopped jobs. A\n" -" \t\tvalue of `substring' means that the command word must\n" -" \t\tmatch a substring of the job. Any other value means that\n" -" \t\tthe command must be a prefix of a stopped job.\n" -" histchars\tCharacters controlling history expansion and quick\n" -" \t\tsubstitution. The first character is the history\n" -" \t\tsubstitution character, usually `!'. The second is\n" -" \t\tthe `quick substitution' character, usually `^'. The\n" -" \t\tthird is the `history comment' character, usually `#'.\n" -" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" -" \t\tcommands should be saved on the history list.\n" -msgstr "" -"Common shell variable names and usage.\n" -" \n" -" BASH_VERSION\tVersion information for this Bash.\n" -" CDPATH\tA colon-separated list of directories to search\n" -" \t\tfor directories given as arguments to ‘cd’.\n" -" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" -" \t\tbe ignored by pathname expansion.\n" -" HISTFILE\tThe name of the file where your command history is stored.\n" -" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" -" HISTSIZE\tThe maximum number of history lines that a running\n" -" \t\tshell can access.\n" -" HOME\tThe complete pathname to your login directory.\n" -" HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" -" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" -" \t\tcharacter as the sole input. If set, then the value\n" -" \t\tof it is the number of EOF characters that can be seen\n" -" \t\tin a row on an empty line before the shell will exit\n" -" \t\t(default 10). When unset, EOF signifies the end of input.\n" -" MACHTYPE\tA string describing the current system Bash is running on.\n" -" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" -" MAILPATH\tA colon-separated list of filenames which Bash checks\n" -" \t\tfor new mail.\n" -" OSTYPE\tThe version of Unix this version of Bash is running on.\n" -" PATH\tA colon-separated list of directories to search when\n" -" \t\tlooking for commands.\n" -" PROMPT_COMMAND\tA command to be executed before the printing of each\n" -" \t\tprimary prompt.\n" -" PS1\t\tThe primary prompt string.\n" -" PS2\t\tThe secondary prompt string.\n" -" PWD\t\tThe full pathname of the current directory.\n" -" SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM\tThe name of the current terminal type.\n" -" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" -" \t\t‘time’ reserved word.\n" -" auto_resume\tNon-null means a command word appearing on a line by\n" -" \t\titself is first looked for in the list of currently\n" -" \t\tstopped jobs. If found there, that job is foregrounded.\n" -" \t\tA value of ‘exact’ means that the command word must\n" -" \t\texactly match a command in the list of stopped jobs. A\n" -" \t\tvalue of ‘substring’ means that the command word must\n" -" \t\tmatch a substring of the job. Any other value means that\n" -" \t\tthe command must be a prefix of a stopped job.\n" -" histchars\tCharacters controlling history expansion and quick\n" -" \t\tsubstitution. The first character is the history\n" -" \t\tsubstitution character, usually ‘!’. The second is\n" -" \t\tthe ‘quick substitution’ character, usually ‘^’. The\n" -" \t\tthird is the ‘history comment’ character, usually ‘#’.\n" -" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" -" \t\tcommands should be saved on the history list.\n" - -#: builtins.c:1783 -msgid "" -"Add directories to stack.\n" -" \n" -" Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when adding\n" -" \tdirectories to the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by `dirs', starting with\n" -" \tzero) is at the top.\n" -" \n" -" dir\tAdds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" The `dirs' builtin displays the directory stack.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid argument is supplied or the directory\n" -" change fails." -msgstr "" -"Add directories to stack.\n" -" \n" -" Adds a directory to the top of the directory stack, or rotates\n" -" the stack, making the new top of the stack the current working\n" -" directory. With no arguments, exchanges the top two directories.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when adding\n" -" \tdirectories to the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the left of the list shown by ‘dirs’, starting with\n" -" \tzero) is at the top.\n" -" \n" -" -N\tRotates the stack so that the Nth directory (counting\n" -" \tfrom the right of the list shown by ‘dirs’, starting with\n" -" \tzero) is at the top.\n" -" \n" -" dir\tAdds DIR to the directory stack at the top, making it the\n" -" \tnew current working directory.\n" -" \n" -" The ‘dirs’ builtin displays the directory stack.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid argument is supplied or the directory\n" -" change fails." - -#: builtins.c:1817 -msgid "" -"Remove directories from stack.\n" -" \n" -" Removes entries from the directory stack. With no arguments, removes\n" -" the top directory from the stack, and changes to the new top directory.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when removing\n" -" \tdirectories from the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRemoves the Nth entry counting from the left of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd +0'\n" -" \tremoves the first directory, `popd +1' the second.\n" -" \n" -" -N\tRemoves the Nth entry counting from the right of the list\n" -" \tshown by `dirs', starting with zero. For example: `popd -0'\n" -" \tremoves the last directory, `popd -1' the next to last.\n" -" \n" -" The `dirs' builtin displays the directory stack.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid argument is supplied or the directory\n" -" change fails." -msgstr "" -"Remove directories from stack.\n" -" \n" -" Removes entries from the directory stack. With no arguments, removes\n" -" the top directory from the stack, and changes to the new top directory.\n" -" \n" -" Options:\n" -" -n\tSuppresses the normal change of directory when removing\n" -" \tdirectories from the stack, so only the stack is manipulated.\n" -" \n" -" Arguments:\n" -" +N\tRemoves the Nth entry counting from the left of the list\n" -" \tshown by ‘dirs’, starting with zero. For example: ‘popd +0’\n" -" \tremoves the first directory, ‘popd +1’ the second.\n" -" \n" -" -N\tRemoves the Nth entry counting from the right of the list\n" -" \tshown by ‘dirs’, starting with zero. For example: ‘popd -0’\n" -" \tremoves the last directory, ‘popd -1’ the next to last.\n" -" \n" -" The ‘dirs’ builtin displays the directory stack.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid argument is supplied or the directory\n" -" change fails." - -#: builtins.c:1847 -msgid "" -"Display directory stack.\n" -" \n" -" Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the `pushd' command; you can get\n" -" back up through the list with the `popd' command.\n" -" \n" -" Options:\n" -" -c\tclear the directory stack by deleting all of the elements\n" -" -l\tdo not print tilde-prefixed versions of directories relative\n" -" \tto your home directory\n" -" -p\tprint the directory stack with one entry per line\n" -" -v\tprint the directory stack with one entry per line prefixed\n" -" \twith its position in the stack\n" -" \n" -" Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" -"Display directory stack.\n" -" \n" -" Display the list of currently remembered directories. Directories\n" -" find their way onto the list with the ‘pushd’ command; you can get\n" -" back up through the list with the ‘popd’ command.\n" -" \n" -" Options:\n" -" -c\tclear the directory stack by deleting all of the elements\n" -" -l\tdo not print tilde-prefixed versions of directories relative\n" -" \tto your home directory\n" -" -p\tprint the directory stack with one entry per line\n" -" -v\tprint the directory stack with one entry per line prefixed\n" -" \twith its position in the stack\n" -" \n" -" Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" -" \tdirs when invoked without options, starting with zero.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." - -#: builtins.c:1876 -msgid "" -"Set and unset shell options.\n" -" \n" -" Change the setting of each shell option OPTNAME. Without any option\n" -" arguments, list all shell options with an indication of whether or not " -"each\n" -" is set.\n" -" \n" -" Options:\n" -" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" -" -p\tprint each shell option with an indication of its status\n" -" -q\tsuppress output\n" -" -s\tenable (set) each OPTNAME\n" -" -u\tdisable (unset) each OPTNAME\n" -" \n" -" Exit Status:\n" -" Returns success if OPTNAME is enabled; fails if an invalid option is\n" -" given or OPTNAME is disabled." -msgstr "" -"Set and unset shell options.\n" -" \n" -" Change the setting of each shell option OPTNAME. Without any option\n" -" arguments, list all shell options with an indication of whether or not " -"each\n" -" is set.\n" -" \n" -" Options:\n" -" -o\trestrict OPTNAMEs to those defined for use with ‘set -o’\n" -" -p\tprint each shell option with an indication of its status\n" -" -q\tsuppress output\n" -" -s\tenable (set) each OPTNAME\n" -" -u\tdisable (unset) each OPTNAME\n" -" \n" -" Exit Status:\n" -" Returns success if OPTNAME is enabled; fails if an invalid option is\n" -" given or OPTNAME is disabled." - -#: builtins.c:1897 -#, fuzzy -msgid "" -"Formats and prints ARGUMENTS under control of the FORMAT.\n" -" \n" -" Options:\n" -" -v var\tassign the output to shell variable VAR rather than\n" -" \t\tdisplay it on the standard output\n" -" \n" -" FORMAT is a character string which contains three types of objects: " -"plain\n" -" characters, which are simply copied to standard output; character " -"escape\n" -" sequences, which are converted and copied to the standard output; and\n" -" format specifications, each of which causes printing of the next " -"successive\n" -" argument.\n" -" \n" -" In addition to the standard format specifications described in printf" -"(1),\n" -" printf interprets:\n" -" \n" -" %b\texpand backslash escape sequences in the corresponding argument\n" -" %q\tquote the argument in a way that can be reused as shell input\n" -" %(fmt)T output the date-time string resulting from using FMT as a " -"format\n" -" string for strftime(3)\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or a write or " -"assignment\n" -" error occurs." -msgstr "" -"Formats and prints ARGUMENTS under control of the FORMAT.\n" -" \n" -" Options:\n" -" -v var\tassign the output to shell variable VAR rather than\n" -" \t\tdisplay it on the standard output\n" -" \n" -" FORMAT is a character string which contains three types of objects: " -"plain\n" -" characters, which are simply copied to standard output; character " -"escape\n" -" sequences, which are converted and copied to the standard output; and\n" -" format specifications, each of which causes printing of the next " -"successive\n" -" argument.\n" -" \n" -" In addition to the standard format specifications described in printf" -"(1)\n" -" and printf(3), printf interprets:\n" -" \n" -" %b\texpand backslash escape sequences in the corresponding argument\n" -" %q\tquote the argument in a way that can be reused as shell input\n" -" %(fmt)T output the date-time string resulting from using FMT as a " -"format\n" -" string for strftime(3)\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or a write or " -"assignment\n" -" error occurs." - -#: builtins.c:1926 -msgid "" -"Specify how arguments are to be completed by Readline.\n" -" \n" -" For each NAME, specify how arguments are to be completed. If no " -"options\n" -" are supplied, existing completion specifications are printed in a way " -"that\n" -" allows them to be reused as input.\n" -" \n" -" Options:\n" -" -p\tprint existing completion specifications in a reusable format\n" -" -r\tremove a completion specification for each NAME, or, if no\n" -" \tNAMEs are supplied, all completion specifications\n" -" -D\tapply the completions and actions as the default for commands\n" -" \twithout any specific completion defined\n" -" -E\tapply the completions and actions to \"empty\" commands --\n" -" \tcompletion attempted on a blank line\n" -" \n" -" When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above. The -D option takes\n" -" precedence over -E.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" -"Specify how arguments are to be completed by Readline.\n" -" \n" -" For each NAME, specify how arguments are to be completed. If no " -"options\n" -" are supplied, existing completion specifications are printed in a way " -"that\n" -" allows them to be reused as input.\n" -" \n" -" Options:\n" -" -p\tprint existing completion specifications in a reusable format\n" -" -r\tremove a completion specification for each NAME, or, if no\n" -" \tNAMEs are supplied, all completion specifications\n" -" -D\tapply the completions and actions as the default for commands\n" -" \twithout any specific completion defined\n" -" -E\tapply the completions and actions to “empty” commands --\n" -" \tcompletion attempted on a blank line\n" -" \n" -" When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above. The -D option takes\n" -" precedence over -E.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." - -#: builtins.c:1954 -msgid "" -"Display possible completions depending on the options.\n" -" \n" -" Intended to be used from within a shell function generating possible\n" -" completions. If the optional WORD argument is supplied, matches " -"against\n" -" WORD are generated.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." -msgstr "" -"Display possible completions depending on the options.\n" -" \n" -" Intended to be used from within a shell function generating possible\n" -" completions. If the optional WORD argument is supplied, matches " -"against\n" -" WORD are generated.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or an error occurs." - -#: builtins.c:1969 -msgid "" -"Modify or display completion options.\n" -" \n" -" Modify the completion options for each NAME, or, if no NAMEs are " -"supplied,\n" -" the completion currently being executed. If no OPTIONs are given, " -"print\n" -" the completion options for each NAME or the current completion " -"specification.\n" -" \n" -" Options:\n" -" \t-o option\tSet completion option OPTION for each NAME\n" -" \t-D\t\tChange options for the \"default\" command completion\n" -" \t-E\t\tChange options for the \"empty\" command completion\n" -" \n" -" Using `+o' instead of `-o' turns off the specified option.\n" -" \n" -" Arguments:\n" -" \n" -" Each NAME refers to a command for which a completion specification must\n" -" have previously been defined using the `complete' builtin. If no NAMEs\n" -" are supplied, compopt must be called by a function currently generating\n" -" completions, and the options for that currently-executing completion\n" -" generator are modified.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or NAME does not\n" -" have a completion specification defined." -msgstr "" -"Modify or display completion options.\n" -" \n" -" Modify the completion options for each NAME, or, if no NAMEs are " -"supplied,\n" -" the completion currently being executed. If no OPTIONs are given, " -"print\n" -" the completion options for each NAME or the current completion " -"specification.\n" -" \n" -" Options:\n" -" \t-o option\tSet completion option OPTION for each NAME\n" -" \t-D\t\tChange options for the “default” command completion\n" -" \t-E\t\tChange options for the “empty” command completion\n" -" \n" -" Using ‘+o’ instead of ‘-o’ turns off the specified option.\n" -" \n" -" Arguments:\n" -" \n" -" Each NAME refers to a command for which a completion specification must\n" -" have previously been defined using the ‘complete’ builtin. If no NAMEs\n" -" are supplied, compopt must be called by a function currently generating\n" -" completions, and the options for that currently-executing completion\n" -" generator are modified.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is supplied or NAME does not\n" -" have a completion specification defined." - -#: builtins.c:1999 -msgid "" -"Read lines from the standard input into an indexed array variable.\n" -" \n" -" Read lines from the standard input into the indexed array variable " -"ARRAY, or\n" -" from file descriptor FD if the -u option is supplied. The variable " -"MAPFILE\n" -" is the default ARRAY.\n" -" \n" -" Options:\n" -" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " -"copied.\n" -" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " -"index is 0.\n" -" -s count \tDiscard the first COUNT lines read.\n" -" -t\t\tRemove a trailing newline from each line read.\n" -" -u fd\t\tRead lines from file descriptor FD instead of the standard " -"input.\n" -" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" -" -c quantum\tSpecify the number of lines read between each call to " -"CALLBACK.\n" -" \n" -" Arguments:\n" -" ARRAY\t\tArray variable name to use for file data.\n" -" \n" -" If -C is supplied without -c, the default quantum is 5000. When\n" -" CALLBACK is evaluated, it is supplied the index of the next array\n" -" element to be assigned and the line to be assigned to that element\n" -" as additional arguments.\n" -" \n" -" If not supplied with an explicit origin, mapfile will clear ARRAY " -"before\n" -" assigning to it.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly " -"or\n" -" not an indexed array." -msgstr "" -"Read lines from the standard input into an indexed array variable.\n" -" \n" -" Read lines from the standard input into the indexed array variable " -"ARRAY, or\n" -" from file descriptor FD if the -u option is supplied. The variable " -"MAPFILE\n" -" is the default ARRAY.\n" -" \n" -" Options:\n" -" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " -"copied.\n" -" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " -"index is 0.\n" -" -s count \tDiscard the first COUNT lines read.\n" -" -t\t\tRemove a trailing newline from each line read.\n" -" -u fd\t\tRead lines from file descriptor FD instead of the standard " -"input.\n" -" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" -" -c quantum\tSpecify the number of lines read between each call to " -"CALLBACK.\n" -" \n" -" Arguments:\n" -" ARRAY\t\tArray variable name to use for file data.\n" -" \n" -" If -C is supplied without -c, the default quantum is 5000. When\n" -" CALLBACK is evaluated, it is supplied the index of the next array\n" -" element to be assigned and the line to be assigned to that element\n" -" as additional arguments.\n" -" \n" -" If not supplied with an explicit origin, mapfile will clear ARRAY " -"before\n" -" assigning to it.\n" -" \n" -" Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly " -"or\n" -" not an indexed array." - -#: builtins.c:2033 -msgid "" -"Read lines from a file into an array variable.\n" -" \n" -" A synonym for `mapfile'." -msgstr "" -"Read lines from a file into an array variable.\n" -" \n" -" A synonym for ‘mapfile’." diff --git a/po/readline.po b/po/readline.po deleted file mode 100644 index 61c4da370..000000000 --- a/po/readline.po +++ /dev/null @@ -1,177 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: lib/readline/bind.c:2076 lib/readline/bind.c:2078 lib/readline/bind.c:2080 -#: lib/readline/bind.c:2082 lib/readline/display.c:461 -#: lib/readline/display.c:881 lib/readline/display.c:1921 -#: lib/readline/histexpand.c:1267 lib/readline/histexpand.c:1275 -#: lib/readline/nls.c:116 -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2005-10-03 17:39-0400\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" - -#: lib/readline/bind.c:890 -#, c-format -msgid "readline: %s: line %d: %s\n" -msgstr "" - -#: lib/readline/bind.c:893 -#, c-format -msgid "readline: %s\n" -msgstr "" - -#: lib/readline/bind.c:916 -msgid "other" -msgstr "" - -#: lib/readline/bind.c:1006 -msgid "$else found without matching $if" -msgstr "" - -#: lib/readline/bind.c:1036 -msgid "$endif without matching $if" -msgstr "" - -#: lib/readline/bind.c:1113 -msgid "unknown parser directive" -msgstr "" - -#: lib/readline/bind.c:1174 -msgid "no closing `\"' in key binding" -msgstr "" - -#: lib/readline/bind.c:1999 -#, c-format -msgid "# %s (not bound)\n" -msgstr "" - -#: lib/readline/bind.c:2017 -#, c-format -msgid "%s is not bound to any keys\n" -msgstr "" - -#: lib/readline/bind.c:2023 -#, c-format -msgid "%s can be found on " -msgstr "" - -#: lib/readline/bind.c:2080 -#, c-format -msgid "%s%s outputs %s\n" -msgstr "" - -#: lib/readline/bind.c:2150 -#, c-format -msgid "%s is set to `%s'\n" -msgstr "" - -#: lib/readline/bind.c:2168 -#, c-format -msgid "bell-style is set to `%s'\n" -msgstr "" - -#: lib/readline/bind.c:2174 -#, c-format -msgid "comment-begin is set to `%s'\n" -msgstr "" - -#: lib/readline/bind.c:2180 -#, c-format -msgid "completion-query-items is set to `%d'\n" -msgstr "" - -#: lib/readline/bind.c:2186 -#, c-format -msgid "editing-mode is set to `%s'\n" -msgstr "" - -#: lib/readline/bind.c:2198 -#, c-format -msgid "isearch-terminators is set to \"%s\"\n" -msgstr "" - -#: lib/readline/bind.c:2210 -#, c-format -msgid "keymap is set to `%s'\n" -msgstr "" - -#: lib/readline/callback.c:113 -msgid "readline: readline_callback_read_char() called with no handler!\r\n" -msgstr "" - -#: lib/readline/complete.c:1418 -#, c-format -msgid "Display all %d possibilities? (y or n)" -msgstr "" - -#: lib/readline/complete.c:1756 -#, c-format -msgid "" -"\r\n" -"readline: bad value %d for what_to_do in rl_complete\n" -msgstr "" - -#: lib/readline/display.c:2061 -#, c-format -msgid "readline: debug: insert_some_chars: count (%d) != col (%d)\n" -msgstr "" - -#: lib/readline/histexpand.c:379 -msgid "event not found" -msgstr "" - -#: lib/readline/histexpand.c:383 -msgid "bad word specifier" -msgstr "" - -#: lib/readline/histexpand.c:387 -msgid "substitution failed" -msgstr "" - -#: lib/readline/histexpand.c:391 -msgid "unrecognized history modifier" -msgstr "" - -#: lib/readline/histexpand.c:395 -msgid "no previous substitution" -msgstr "" - -#: lib/readline/histexpand.c:399 -msgid "unknown expansion error" -msgstr "" - -#: lib/readline/isearch.c:179 -msgid "reverse-" -msgstr "" - -#: lib/readline/isearch.c:183 -msgid "i-search)`" -msgstr "" - -#: lib/readline/rltty.c:467 -#, c-format -msgid "readline: warning: %s\n" -msgstr "" - -#: lib/readline/rltty.c:478 -msgid "turning on OPOST for terminal\r" -msgstr "" - -#: lib/readline/rltty.c:504 -msgid "turning off output flushing" -msgstr "" - -#: lib/readline/xmalloc.c:47 -#, c-format -msgid "%s: out of virtual memory\n" -msgstr "" diff --git a/po/t-en@quot.gmo b/po/t-en@quot.gmo deleted file mode 100644 index d6de28ae3..000000000 Binary files a/po/t-en@quot.gmo and /dev/null differ diff --git a/support/bash.icon.ps b/support/bash.icon.ps deleted file mode 100644 index 772e63ee2..000000000 --- a/support/bash.icon.ps +++ /dev/null @@ -1,93 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: bash.icon.ps -%%Creator: XV Version 3.00 Rev: 3/30/93 - by John Bradley -%%BoundingBox: 274 372 338 420 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% define string to hold a scanline's worth of data -/pix 8 string def - -% lower left corner -274 372 translate - -% size of image (on paper, in 1/72inch coords) -64.00800 48.02400 scale - -% dimensions of data -64 48 1 - -% mapping matrix -[64 0 0 -48 0 48] - -{currentfile pix readhexstring pop} -image -fff99ff3dfffffff -f9e67ffd3fffffff -67fffafefe00ffff -9fffc73f78053fff -bfffbbcf45d08fff -78bf6f67177643ff -e01efdf6eeee89ff -8e26dfb9bbbb94ff -bf88cde9ddddc97f -bfe07aad777772bf -5ffabbf8eeeee93f -bdf545fdbbbbba5f -777effdddddddd1f -bffbdef97777744f -bfafbffceeeeed2f -ddfdffbdbbbbba47 -dbefbfd9dddddca7 -effffbfb77777657 -eeffff78000000a7 -f7efbbf7fffffc57 -73fdffb03ffc7ca7 -7ddbedc99ffe7c57 -be7fff999ffe7ca7 -dfbbb7199ffe7c57 -afdff89998e21ca7 -6ff01788325a0c57 -f3ffff899e4e4ca7 -ff7ffe1998424c57 -ff9dfd9992724ca7 -ffe3c399925a4c57 -ffffbf90384644a7 -ffdff99ffffffc57 -ffdffd80000000a7 -ffbffeb777777657 -ffffffaeeeeeeea7 -ffffffbbbbbbba57 -ffffff9ddddddca6 -ffffffb777777652 -fffff7aeeeeeeea2 -fffff7bbbbbbba54 -fffff39cddddcc04 -fffb639657756650 -feb0952ea6a82600 -7c4a850a22a0a204 -bb268a14d5451402 -23b38c000000002a -8a2b650ad48a8b3c -443d6a74a28acb4c - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/support/bash.install b/support/bash.install deleted file mode 100644 index 6829b4f23..000000000 --- a/support/bash.install +++ /dev/null @@ -1,32 +0,0 @@ -#! /bin/sh -PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb:/usr/lib:/usr/etc:/etc - -PROG=bash -O=root -NEWDIR=$HOME/install -MODE=0755 - -if [ -f /bsd ]; then - NEWVERS=$NEWDIR/bash.bsd386 - DEST=/bin - O=bin - G=bin -elif [ -d /usr/ibm ]; then - NEWVERS=$NEWDIR/bash.ibm032 - DEST=/bin - G=staff -else - NEWVERS=$NEWDIR/bash.sun4 - DEST=/bin - G=staff -fi - -install -c -o ${O} -g ${G} -m ${MODE} -s ${NEWVERS} ${DEST}/${PROG}.new - -# swap new and old version; save old version as ${PROG}.old -cd $DEST -rm -f ${PROG}.old -mv ${PROG} ${PROG}.old -mv ${PROG}.new ${PROG} - -exit 0 diff --git a/support/bash.xv b/support/bash.xv deleted file mode 100644 index 35d569017..000000000 --- a/support/bash.xv +++ /dev/null @@ -1,35 +0,0 @@ -#define bash_width 64 -#define bash_height 48 -static char bash_bits[] = { - 0x00, 0x60, 0x06, 0x30, 0x04, 0x00, 0x00, 0x00, 0x60, 0x98, 0x01, 0x40, - 0x03, 0x00, 0x00, 0x00, 0x19, 0x00, 0xa0, 0x80, 0x80, 0xff, 0x00, 0x00, - 0x06, 0x00, 0x1c, 0x03, 0xe1, 0x5f, 0x03, 0x00, 0x02, 0x00, 0x22, 0x0c, - 0x5d, 0xf4, 0x0e, 0x00, 0xe1, 0x02, 0x09, 0x19, 0x17, 0x91, 0x3d, 0x00, - 0xf8, 0x87, 0x40, 0x90, 0x88, 0x88, 0x6e, 0x00, 0x8e, 0x9b, 0x04, 0x62, - 0x22, 0x22, 0xd6, 0x00, 0x02, 0xee, 0x4c, 0x68, 0x44, 0x44, 0x6c, 0x01, - 0x02, 0xf8, 0xa1, 0x4a, 0x11, 0x11, 0xb1, 0x02, 0x05, 0xa0, 0x22, 0xe0, - 0x88, 0x88, 0x68, 0x03, 0x42, 0x50, 0x5d, 0x40, 0x22, 0x22, 0xa2, 0x05, - 0x11, 0x81, 0x00, 0x44, 0x44, 0x44, 0x44, 0x07, 0x02, 0x20, 0x84, 0x60, - 0x11, 0x11, 0xd1, 0x0d, 0x02, 0x0a, 0x02, 0xc0, 0x88, 0x88, 0x48, 0x0b, - 0x44, 0x40, 0x00, 0x42, 0x22, 0x22, 0xa2, 0x1d, 0x24, 0x08, 0x02, 0x64, - 0x44, 0x44, 0xc4, 0x1a, 0x08, 0x00, 0x20, 0x20, 0x11, 0x11, 0x91, 0x15, - 0x88, 0x00, 0x00, 0xe1, 0xff, 0xff, 0xff, 0x1a, 0x10, 0x08, 0x22, 0x10, - 0x00, 0x00, 0xc0, 0x15, 0x31, 0x40, 0x00, 0xf2, 0x03, 0xc0, 0xc1, 0x1a, - 0x41, 0x24, 0x48, 0x6c, 0x06, 0x80, 0xc1, 0x15, 0x82, 0x01, 0x00, 0x66, - 0x06, 0x80, 0xc1, 0x1a, 0x04, 0x22, 0x12, 0x67, 0x06, 0x80, 0xc1, 0x15, - 0x0a, 0x04, 0xe0, 0x66, 0xe6, 0xb8, 0xc7, 0x1a, 0x09, 0xf0, 0x17, 0xee, - 0xb3, 0xa5, 0xcf, 0x15, 0x30, 0x00, 0x00, 0x6e, 0x86, 0x8d, 0xcd, 0x1a, - 0x00, 0x01, 0x80, 0x67, 0xe6, 0xbd, 0xcd, 0x15, 0x00, 0x46, 0x40, 0x66, - 0xb6, 0xb1, 0xcd, 0x1a, 0x00, 0x38, 0x3c, 0x66, 0xb6, 0xa5, 0xcd, 0x15, - 0x00, 0x00, 0x02, 0xf6, 0xe3, 0x9d, 0xdd, 0x1a, 0x00, 0x04, 0x60, 0x06, - 0x00, 0x00, 0xc0, 0x15, 0x00, 0x04, 0x40, 0xfe, 0xff, 0xff, 0xff, 0x1a, - 0x00, 0x02, 0x80, 0x12, 0x11, 0x11, 0x91, 0x15, 0x00, 0x00, 0x00, 0x8a, - 0x88, 0x88, 0x88, 0x1a, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0xa2, 0x15, - 0x00, 0x00, 0x00, 0x46, 0x44, 0x44, 0xc4, 0x9a, 0x00, 0x00, 0x00, 0x12, - 0x11, 0x11, 0x91, 0xb5, 0x00, 0x00, 0x10, 0x8a, 0x88, 0x88, 0x88, 0xba, - 0x00, 0x00, 0x10, 0x22, 0x22, 0x22, 0xa2, 0xd5, 0x00, 0x00, 0x30, 0xc6, - 0x44, 0x44, 0xcc, 0xdf, 0x00, 0x20, 0x39, 0x96, 0x15, 0x51, 0x99, 0xf5, - 0x80, 0xf2, 0x56, 0x8b, 0x9a, 0xea, 0x9b, 0xff, 0xc1, 0xad, 0x5e, 0xaf, - 0xbb, 0xfa, 0xba, 0xdf, 0x22, 0x9b, 0xae, 0xd7, 0x54, 0x5d, 0xd7, 0xbf, - 0x3b, 0x32, 0xce, 0xff, 0xff, 0xff, 0xff, 0xab, 0xae, 0x2b, 0x59, 0xaf, - 0xd4, 0xae, 0x2e, 0xc3, 0xdd, 0x43, 0xa9, 0xd1, 0xba, 0xae, 0x2c, 0xcd}; diff --git a/support/copyright-comment b/support/copyright-comment deleted file mode 100644 index 83f754417..000000000 --- a/support/copyright-comment +++ /dev/null @@ -1,13 +0,0 @@ - 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 3 of the License, 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. If not, see . -*/ diff --git a/support/copyright-def b/support/copyright-def deleted file mode 100644 index 1d083e4c8..000000000 --- a/support/copyright-def +++ /dev/null @@ -1,12 +0,0 @@ -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 3 of the License, 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. If not, see . diff --git a/support/copyright-makefile b/support/copyright-makefile deleted file mode 100644 index e9f3fab05..000000000 --- a/support/copyright-makefile +++ /dev/null @@ -1,13 +0,0 @@ -# This program 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 3 of the License, or -# (at your option) any later version. -# -# This program 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 this program. If not, see . -# diff --git a/support/deblank.sh b/support/deblank.sh deleted file mode 100644 index c226139db..000000000 --- a/support/deblank.sh +++ /dev/null @@ -1,2 +0,0 @@ -#! /bin/sh -perl -pi -e 's/[ \t]+$//;' "$@" diff --git a/support/endian.c b/support/endian.c deleted file mode 100644 index 3c92ae8fb..000000000 --- a/support/endian.c +++ /dev/null @@ -1,150 +0,0 @@ -/* endian.c -- A trick for determining the byte order of a machine. */ - -/* Copyright (C) 1993 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 3 of the License, 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. If not, see . -*/ - -#include "config.h" - -#include -#include -#include "bashansi.h" - -/* The name of this program, as taken from argv[0]. */ -char *progname; - -/* The name of the source file that this code is made from. */ -char source_name[256]; - -/* The name of the define. Either "BIG_ENDIAN" or "LITTLE_ENDIAN". */ -char *endian_define; - -char string[9]; -char nstring[9]; - -/* Stuff "1234" into a long, and compare it against a character string - "1234". If the results are EQ, the machine is big endian like a 68000 - or Sparc, otherwise it is little endian, like a Vax, or 386. */ -main (argc, argv) - int argc; - char **argv; -{ -#if defined (__STDC__) - register size_t i; -#else - register int i; -#endif /* !__STDC__ */ - FILE *stream = (FILE *)NULL; - char *stream_name = "stdout"; - union { - unsigned long l; - char s[sizeof (long)]; - } u; - - progname = argv[0]; - - for (i = strlen (progname); i > 0; i--) - if (progname[i] == '/') - { - progname = progname + i + 1; - break; - } - - strcpy (source_name, progname); - for (i = strlen (source_name); i > 0; i--) - if (source_name[i] == '.') - { - source_name[i] = '\0'; - break; - } - - strcat (source_name, ".c"); - - if (argc == 1) - { - stream_name = "stdout"; - stream = stdout; - } - else if (argc == 2) - { - stream_name = argv[1]; - stream = fopen (stream_name, "w"); - } - else - { - fprintf (stderr, "Usage: %s [output-file]\n", progname); - exit (1); - } - - if (!stream) - { - fprintf (stderr, "%s: %s Cannot be opened or written to.\n", - progname, stream_name); - exit (2); - } - - if (sizeof (long int) == 4) - { - u.l = 0x04030201L; - (void) strcpy (string, "4321"); - } - else if (sizeof (long int) == 8) - { -#if defined (__GNUC__) - unsigned long fake_out_gcc; - - fake_out_gcc = (0x08070605L << 31); - fake_out_gcc = (fake_out_gcc << 1); - u.l = fake_out_gcc | 0x04030201L; -#else - u.l = (0x08070605L << 32) | 0x04030201L; -#endif /* !__GNUC__ */ - (void) strcpy (string, "87654321"); - } - else - { - fprintf (stderr, - "%s: sizeof (long int) = %d, which isn't handled here.\n", - progname, sizeof (long int)); - exit (2); - } - - for (i = 0; i < sizeof (long); i++) - nstring[i] = u.s[i] + '0'; - nstring[i] = '\0'; - - if (strcmp (nstring, string) == 0) - endian_define = "BIG_ENDIAN"; - else - endian_define = "LITTLE_ENDIAN"; - - fprintf (stream, "/* %s - Define BIG or LITTLE endian. */\n\n", stream_name); - fprintf (stream, -"/* This file was automatically created by `%s'. You shouldn't\n\ - edit this file, because your changes will be overwritten. Instead,\n\ - edit the source code file `%s'. */\n\n", - progname, source_name); - - fprintf (stream, "#if !defined (%s)\n", endian_define); - fprintf (stream, "# define %s\n", endian_define); - fprintf (stream, "#endif /* %s */\n", endian_define); - - if (stream != stdout) - fclose (stream); - - exit (0); -} diff --git a/support/mail-shell b/support/mail-shell deleted file mode 100644 index 09ed15581..000000000 --- a/support/mail-shell +++ /dev/null @@ -1,127 +0,0 @@ -#! /bin/bash -# -# mail-shell -- mail out the shell -# -# usage: mail-shell -t tarball recipient -# -# Chet Ramey -# chet@ins.CWRU.Edu -# - -# Copyright (C) 1995-2009 by Chester Ramey -# -# This program 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 3 of the License, or -# (at your option) any later version. -# -# This program 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 this program. If not, see . -# - - -PATH=/usr/ucb:/bin:/usr/bin:/usr/local/bin/gnu:/usr/local/bin:. - -trap 'rm -f x?? ${UUFILE}' 0 1 2 3 6 15 - -prog=`basename $0` - -TARFILE=bash.tar -VERS=2.05b - -while getopts t: opt -do - case $opt in - t) TARFILE=$OPTARG ;; - *) echo usage: $prog [ -t tarfile ] recipient 1>&2 - exit 1 - esac -done - -shift $(( $OPTIND - 1 )) - -case "$TARFILE" in -bash-*.tar) VERS=${TARFILE%%.tar} ; VERS=${VERS#bash-} ;; -esac - -GZFILE=${TARFILE}.gz -UUFILE=${GZFILE}.uu - -if [ $# -ne 1 ] ; then - echo usage: $0 recipient - exit 1 -fi - -recip=$1 -i=1 - -if [ ! -f ${TARFILE} ] && [ ! -f ${GZFILE} ]; then - echo "$prog: no file ${TARFILE}, aborting" - exit 1 -fi - -if [ ! -f ${GZFILE} ] ; then - echo "$prog: no gzipped tar file ${GZFILE}" - echo "$prog: gzipping ${TARFILE}" - gzip ${TARFILE} -fi - -if [ ! -f ${UUFILE} ] ; then - echo "$prog: no uuencoded tar file ${UUFILE}" - echo "$prog: uuencoding ${GZFILE}" - uuencode ${GZFILE} < ${GZFILE} > ${UUFILE} -fi - -files=$(echo x??) - -if [ "$files" = 'x??' ] ; then - echo "$prog: no split of ${UUFILE} exists" - echo "$prog: splitting ${UUFILE}" - split ${UUFILE} -fi - -count() -{ - echo $# -} - -parts=$(count x??) - -if [ -x /usr/ucb/mail ]; then - MAIL=/usr/ucb/mail -elif [ -x /usr/ucb/Mail ]; then - MAIL=/usr/ucb/Mail -elif [ -x /usr/bin/mailx ]; then - MAIL=/usr/bin/mailx -elif [ -x /usr/bin/mail ]; then - MAIL=/usr/bin/mail -else - MAIL=/bin/mail -fi - -$MAIL -s "bash-${VERS} shipment coming" $recip <. -*/ - -#include -#include -#include - -#define USING_BASH_MALLOC -#define HAVE_STRINGIZE - -#include "xmalloc.h" - -int interrupt_immediately = 0; - -static char xp[64]; - -main(int c, char **v) -{ - char *p; - - malloc_set_register(1); - -#if 0 - free (xp); /* free unallocated memory */ -#endif - -#if 0 - p = xrealloc(xp, 128); -#endif - -#if 0 - /* - * request an amount so that the bucket changes when the malloc - * overhead is added to the requested size. This had better - * succeed. - */ - p = xmalloc(25); - p[0] = 'a'; - p[1] = '\0'; - free(p); /* sanity check on underflow checks in free() */ -#endif - -#if 0 - p = xmalloc(28); - /* This works for little-endian machines like i386. */ - p[-4] = '\7'; /* underflow */ - p = xrealloc(p, 128); /* realloc corrupted memory */ -#endif - -#if 0 - p = xmalloc(28); - /* This works for little-endian machines like i386. */ - p[-4] = '\7'; /* underflow */ - free(p); -#endif - -#if 0 - p = xmalloc(2); - free(p); - free(p); /* duplicate free */ -#endif - -#if 0 - p = xmalloc(32); - free(p); - p = xrealloc(p, 128); /* realloc freed mem */ -#endif - -#if 0 - p = xmalloc(64); - p[64] = '\0'; - p = xrealloc(p, 128); /* overflow */ -#endif - -#if 0 - p = xmalloc(64); - p[64] = '\0'; - free(p); /* overflow */ -#endif - -#if 0 - p = xmalloc(64); - p[-1] = 'a'; - free (p); /* underflow */ -#endif - -#if 0 - p = xmalloc(64); - p[-1] = 'a'; - p = xrealloc(p, 129); /* underflow */ -#endif - - mregister_dump_table(); - exit(0); -} - -void -fatal_error(const char *format, ...) -{ - va_list args; - - fprintf(stderr, "malloc-test: "); - va_start(args, format); - vfprintf(stderr, format, args); - fprintf(stderr, "\n"); - va_end(args); - exit(2); -} - -void -programming_error(const char *format, ...) -{ - va_list args; - - fprintf(stderr, "malloc-test: "); - va_start(args, format); - vfprintf(stderr, format, args); - fprintf(stderr, "\n"); - va_end(args); - - abort(); -} - -int -signal_is_trapped(int n) -{ - return 0; -} diff --git a/support/mk-takehome b/support/mk-takehome deleted file mode 100755 index c9126ccc6..000000000 --- a/support/mk-takehome +++ /dev/null @@ -1,57 +0,0 @@ -#! /bin/bash - -DATE=$(date +%Y%m%d) - -PARENT=/fs2/chet/bash -FROOT=bash-$DATE -DIR=$PARENT/$FROOT -TARF=${FROOT}.tar -SRC=/usr/homes/chet/src/bash/src - -fflag= sflag= -while getopts "fs" opt -do - case $opt in - f) fflag=1 ;; - s) sflag=1 ;; - *) echo "mk-takehome: usage: mk-takehome [-fs]" 2>&1 - exit 2;; - esac -done - -shift $(($OPTIND - 1)) - -if [ -n "$fflag" ]; then - rm -rf "$DIR" -fi - -mkdir $DIR || exit 1 - -cd $DIR || exit 1 - -cd $SRC || exit 1 - -tar cf - . | (cd $DIR ; tar xvpf - ) - -cd $DIR || exit 1 - -find . -type f -name '*~' -print | xargs rm -f - -find . -type d -name 'savedir' -print | xargs rm -rf - -rm parser-built y.tab.c y.tab.h -# bison -y -d parse.y # make sure y.tab.h present for dependencies - -rm -f d d? ddd ddd? # convention for temp diff files - -cd $PARENT || exit 1 - -tar cvf ${TARF} $FROOT - -gzip -v ${TARF} - -REMHOST=z4 - -if [ -n "$sflag" ]; then - scp ${TARF}.gz ${REMHOST}: -fi diff --git a/support/mkdep b/support/mkdep deleted file mode 100755 index a79c90a37..000000000 --- a/support/mkdep +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh - -# -# BSDI $Id: mkdep.gcc.sh,v 2.1 1995/02/03 12:54:13 polk Exp $ -# -# Copyright (c) 1991, 1993 -# The Regents of the University of California. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. All advertising materials mentioning features or use of this software -# must display the following acknowledgement: -# This product includes software developed by the University of -# California, Berkeley and its contributors. -# 4. Neither the name of the University nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# @(#)mkdep.gcc.sh 8.1 (Berkeley) 6/6/93 -# - -PATH=/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/usr/local/bin/gnu -export PATH - -cpp=${CPP:-gcc} -#trad="-notraditional" - -D=depends # default dependency file is depends -append=0 -pflag= - -usage() -{ - echo 'usage: mkdep [-t] [-p] [-f depend_file] [-c compiler] [cc_flags] file ...' >&2 -} - -while getopts "2af:c:pt" opt; do - case "$opt" in - # -2 => gcc2 -- this option is temporary, hence not documented - 2) cpp=${CPP:-gcc2} ; trad= ;; - # -a appends to the depend file - a) append=1;; - # -c specifies the compiler to use - c) CPP=$OPTARG ;; - # -f allows you to select a makefile name - f) D=$OPTARG ;; - # the -p flag produces "program: program.c" style dependencies - # so .o's don't get produced - p) pflag=p ;; - # -t means use -traditional with gnu cpp - t) trad="-traditional" ;; - \?) usage ; exit 2;; - esac -done - -shift $(( $OPTIND - 1 )) - -if [ $# = 0 ] ; then - usage - exit 1 -fi - -TMP=/tmp/mkdep$$ - -trap 'rm -f $TMP ; exit 1' 1 2 3 13 15 - -if [ x$pflag = x ]; then - $cpp $trad -M $* | sed -e 's; \./; ;g' > $TMP -else - $cpp $trad -M $* | sed -e 's;\.o *:;:;' -e 's; \./; ;g' > $TMP -fi - -if [ $? != 0 ]; then - echo 'mkdep: compile failed.' - rm -f $TMP - exit 1 -fi - -if [ $append = 1 ]; then - cat $TMP >> $D - rm -f $TMP -else - mv $TMP $D -fi -exit 0 diff --git a/support/mkdist b/support/mkdist deleted file mode 100755 index 282431d4a..000000000 --- a/support/mkdist +++ /dev/null @@ -1,129 +0,0 @@ -#! /bin/bash - -# -# mkdist - make a distribution directory from a master manifest file -# -# usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-t] [-v] version -# -# SRCDIR defaults to src -# MANIFEST defaults to $SRCDIR/MANIFEST -# -# Chet Ramey -# chet@po.cwru.edu - -# Copyright (C) 1996-2002 Free Software Foundation, Inc. -# -# This program 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 3 of the License, or -# (at your option) any later version. -# -# This program 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 this program. If not, see . -# - -SRCDIR=src -ROOTNAME=bash - -usage() -{ - echo usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-t] [-v] version 1>&2 - exit 2 -} - -vmsg() -{ - if [ -n "$verbose" ]; then - echo mkdist: "$@" - fi -} - -while getopts m:s:r:tv name -do - case $name in - m) MANIFEST=$OPTARG ;; - s) SRCDIR=$OPTARG ;; - r) ROOTNAME=$OPTARG ;; - t) maketar=yes ;; - v) verbose=yes ;; - ?) usage ;; - esac -done - -: ${MANIFEST:=$SRCDIR/MANIFEST} - -vmsg using $MANIFEST - -shift $(( $OPTIND - 1 )) - -if [ $# -lt 1 ]; then - usage -fi - -version=$1 -newdir=${ROOTNAME}-$version - -tarfile=${newdir}.tar - -vmsg creating distribution for $ROOTNAME version $version in $newdir - -if [ ! -d $newdir ]; then - mkdir $newdir || { echo $0: cannot make directory $newdir 1>&2 ; exit 1; } -fi - -dirmode=755 -filmode=644 - -while read fname type mode -do - [ -z "$fname" ] && continue - - case "$fname" in - \#*) continue ;; - esac - - case "$type" in - d) mkdir $newdir/$fname ;; - f) cp -p $SRCDIR/$fname $newdir/$fname ;; - s) ln -s $mode $newdir/$fname ; mode= ;; # symlink - l) ln $mode $newdir/$fname ; mode= ;; # hard link - *) echo "unknown file type $type" 1>&2 ;; - esac - - if [ -n "$mode" ]; then - chmod $mode $newdir/$fname - fi - -done < $MANIFEST - -# cut off the `-alpha' in something like `2.0-alpha', leaving just the -# numeric version -#version=${version%%-*} - -#case "$version" in -#*.*.*) vers=${version%.*} ;; -#*.*) vers=${version} ;; -#esac - -#echo $vers > $newdir/.distribution - -#case "$version" in -#*.*.*) plevel=${version##*.} ;; -#*) plevel=0 ;; -#esac -#[ -z "$plevel" ] && plevel=0 -#echo ${plevel} > $newdir/.patchlevel - -vmsg $newdir created - -if [ -n "$maketar" ]; then - tar cf ${tarfile} $newdir - gzip $tarfile - vmsg ${tarfile}.gz created -fi - -exit 0 diff --git a/support/mkdocdist b/support/mkdocdist deleted file mode 100755 index 8cd414cb4..000000000 --- a/support/mkdocdist +++ /dev/null @@ -1,101 +0,0 @@ -#! /bin/bash - -# -# mkdocdist - make a distribution directory containing formatted -# documentation from a master manifest file -# -# usage: mkdocdist [-m manifest] [-s srcdir] [-r rootname] [-v] version -# -# SRCDIR defaults to src -# MANIFEST defaults to $SRCDIR/MANIFEST.doc -# -# Chet Ramey -# chet@po.cwru.edu - -# Copyright (C) 1996-2002 Free Software Foundation, Inc. -# -# This program 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 3 of the License, or -# (at your option) any later version. -# -# This program 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 this program. If not, see . -# - -SRCDIR=src -ROOTNAME=bash-doc - -usage() -{ - echo usage: mkdocdist [-m manifest] [-s srcdir] [-r rootname] [-v] version 1>&2 - exit 2 -} - -vmsg() -{ - if [ -n "$verbose" ]; then - echo mkdocdist: "$@" - fi -} - -while getopts m:s:r:v name -do - case $name in - m) MANIFEST=$OPTARG ;; - s) SRCDIR=$OPTARG ;; - r) ROOTNAME=$OPTARG ;; - v) verbose=yes ;; - ?) usage ;; - esac -done - -: ${MANIFEST:=$SRCDIR/MANIFEST.doc} - -vmsg using $MANIFEST - -shift $(( $OPTIND - 1 )) - -if [ $# -lt 1 ]; then - usage -fi - -version=$1 -newdir=${ROOTNAME}-$version - -vmsg creating documentation distribution for $ROOTNAME version $version in $newdir - -if [ ! -d $newdir ]; then - mkdir $newdir || { echo $0: cannot make directory $newdir 1>&2 ; exit 1; } -fi - -dirmode=755 -filmode=644 - -while read fname type mode -do - [ -z "$fname" ] && continue - - case "$fname" in - \#*) continue ;; - esac - - case "$type" in - d) mkdir $newdir/$fname ;; - f) cp -p $SRCDIR/$fname $newdir/$fname ;; - *) echo "unknown file type $type" 1>&2 ;; - esac - - if [ -n "$mode" ]; then - chmod $mode $newdir/$fname - fi - -done < $MANIFEST - -vmsg $newdir created - -exit 0 diff --git a/support/mknewvers.sh b/support/mknewvers.sh deleted file mode 100644 index da74f7480..000000000 --- a/support/mknewvers.sh +++ /dev/null @@ -1,113 +0,0 @@ -#! /bin/bash -# -# Simple program to make new version files for the shell. -# -# Chet Ramey -# chet@po.cwru.edu - -# Copyright (C) 1996-2002 Free Software Foundation, Inc. -# -# This program 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 3 of the License, or -# (at your option) any later version. -# -# This program 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 this program. If not, see . -# - -PROGNAME=`basename $0` -USAGE="$PROGNAME [-M] [-m] [-p] [version]" - -while [ $# -gt 0 ]; do - case "$1" in - -n) shift; debug=yes;; - -M) shift; major_version=yes ;; - -m) shift; minor_version=yes ;; - -p) shift; patch_level=yes ;; - -*) echo "$PROGNAME: usage: $USAGE" >&2 ; exit 2 ;; - *) break;; - esac -done - -if [ -n "$1" ]; then - NEWVERSION="$1"; -fi - -DISTFILE=_distribution -PATCHFILE=_patchlevel - -dist_version=`cat $DISTFILE` -PATCH=`cat $PATCHFILE` - -# making new version files from a new version argument -if [ -n "$NEWVERSION" ]; then - case "$NEWVERSION" in - *.*.*) PATCH=${NEWVERSION##*.} ;; - *) PATCH=0 ;; - esac - - case "$NEWVERSION" in - *.*.*) vers=${NEWVERSION%.*} ;; - *) vers=${NEWVERSION} ;; - esac - - case "$vers" in - *.*) MAJOR=${vers%.*} MINOR=${vers##*.} ;; - *) MAJOR=${vers} MINOR=0 ;; - esac - - if [ -n "$debug" ]; then - echo "echo ${MAJOR}.${MINOR} > $DISTFILE" - echo "echo ${PATCH} > $PATCHFILE" - else - echo ${MAJOR}.${MINOR} > $DISTFILE - echo ${PATCH} > $PATCHFILE - fi - - echo "$PROGNAME: running autoconf..." - autoconf - - exit 0 -fi - -case "$dist_version" in -*.*.*) vers=${dist_version%.*} ;; -*.*) vers=${dist_version} ;; -esac - -case "$vers" in -*.*) MAJOR=${vers%.*} MINOR=${vers##*.} ;; -*) MAJOR=${vers} MINOR=0 ;; -esac - -# incrementing the major version -if [ -n "$major_version" ]; then - MAJOR=`expr $MAJOR + 1` -fi - -if [ -n "$minor_version" ]; then - $MINOR=`echo $minor_version | awk '{printf "%02d\n", $1+1}'` -fi - -if [ -n "$patch_level" ]; then - PATCH=`expr $PATCH + 1` -fi - -if [ -n "$debug" ]; then - echo "echo ${MAJOR}.${MINOR} > $DISTFILE" - echo "echo ${PATCH} > $PATCHFILE" -else - echo ${MAJOR}.${MINOR} > $DISTFILE - echo ${PATCH} > $PATCHFILE -fi - -echo "$PROGNAME: running autoconf..." -autoconf - -exit 0 diff --git a/support/mksnap b/support/mksnap deleted file mode 100755 index ed487dad5..000000000 --- a/support/mksnap +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/bash - -# -# mksnap -- make a snapshot copy of the bash source tree in a new directory -# named by the date -# -# Chet Ramey -# chet@po.cwru.edu - -# Copyright (C) 1996-2002 by Chester Ramey -# -# This program 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 3 of the License, or -# (at your option) any later version. -# -# This program 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 this program. If not, see . -# - -SRCDIR="src" -SRCARG="-s src" -ROOTNAME="-r bash" - -usage() -{ - echo usage: mksnap [-m manifest] [-s srcdir] [-r rootname] [-v] 1>&2 - exit 2 -} - -vmsg() -{ - if [ -n "$verbose" ]; then - echo mksnap: "$@" - fi -} - -while getopts m:s:r:v name -do - case $name in - m) MANIFEST="-m $OPTARG" ;; - s) SRCDIR="$OPTARG" SRCARG="-s $OPTARG" ;; - r) ROOTNAME="-r $OPTARG" ;; - v) verbose=-v ;; - ?) usage ;; - esac -done - -VERSION=`date "+%Y%m%d"` - -vmsg calling mkdist $verbose - -/bin/bash $SRCDIR/support/mkdist $verbose $SRCARG $MANIFEST $ROOTNAME $VERSION - -exit 0 diff --git a/support/relicense b/support/relicense deleted file mode 100644 index bb4aa772e..000000000 --- a/support/relicense +++ /dev/null @@ -1,56 +0,0 @@ -#! /bin/sh -# -# relicense - change copyrights between GPL2 and GPL3 -# -# usage: relicense [n] -# -# n is `2' or `3'. The default `n' is 2 -# -# Chet Ramey -# chet.ramey@case.edu -# -SRC=/usr/homes/chet/src/bash/src - -V=2 - -if [ ! -f parse.y ]; then - echo "relicense: must be run from source directory to be relicensed" >&2 - exit 2 -fi - -case "$1" in -2) V=2 ;; -3) V=3 ;; -"") ;; -*) echo "relicense: usage: relicense [2|3]" >&2 ; exit 2 ;; -esac - -LIC2="version 2 of the License" -LIC3="version 3 of the License" - -VS2='GPLv2+: GNU GPL version 2 or later' -VS3='GPLv3+: GNU GPL version 3 or later' - -case "$V" in -2) PAT1="$LIC3" REP1="$LIC2" PAT2="$VS3" REP2="$VS2" ;; -3) PAT1="$LIC2" REP1="$LIC3" PAT2="$VS2" REP2="$VS3" ;; -esac - -find . -type f -print | - while read fn ; do - BASE=${fn##*/} - sed -e "s|$PAT1|$REP1|g" -e "s|$PAT2|$REP2|g" < $fn > /tmp/$BASE && touch -r $fn /tmp/$BASE - cmp -s /tmp/$BASE $fn || mv /tmp/$BASE $fn - echo $fn - rm -f /tmp/$BASE - done - -echo "relicense: copying appropriate license file" -case "$V" in -2) cp -p $SRC/COPYINGv2 COPYING - cp -p $SRC/COPYINGv2 lib/readline/COPYING ;; -3) cp -p $SRC/COPYINGv3 COPYING - cp -p $SRC/COPYINGv3 lib/readline/COPYING ;; -esac - -exit 0 diff --git a/support/texi2dvi-0.43 b/support/texi2dvi-0.43 deleted file mode 100755 index 5439e081f..000000000 --- a/support/texi2dvi-0.43 +++ /dev/null @@ -1,568 +0,0 @@ -#! /bin/sh -# texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources. -# $Id: texi2dvi,v 0.43 1999/09/28 19:36:53 karl Exp $ -# -# Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc. -# -# This program 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. -# -# This program 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 this program; if not, you can either send email to this -# program's maintainer or write to: The Free Software Foundation, -# Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA. -# -# Original author: Noah Friedman . -# -# Please send bug reports, etc. to bug-texinfo@gnu.org. -# If possible, please send a copy of the output of the script called with -# the `--debug' option when making a bug report. - -# This string is expanded by rcs automatically when this file is checked out. -rcs_revision='$Revision: 0.43 $' -rcs_version=`set - $rcs_revision; echo $2` -program=`echo $0 | sed -e 's!.*/!!'` -version="texi2dvi (GNU Texinfo 4.0) $rcs_version - -Copyright (C) 1999 Free Software Foundation, Inc. -There is NO warranty. You may redistribute this software -under the terms of the GNU General Public License. -For more information about these matters, see the files named COPYING." - -usage="Usage: $program [OPTION]... FILE... - -Run each Texinfo or LaTeX FILE through TeX in turn until all -cross-references are resolved, building all indices. The directory -containing each FILE is searched for included files. The suffix of FILE -is used to determine its language (LaTeX or Texinfo). - -Makeinfo is used to perform Texinfo macro expansion before running TeX -when needed. - -Options: - -@ Use @input instead of \input; for preloaded Texinfo. - -b, --batch No interaction. - -c, --clean Remove all auxiliary files. - -D, --debug Turn on shell debugging (set -x). - -e, --expand Force macro expansion using makeinfo. - -I DIR Search DIR for Texinfo files. - -h, --help Display this help and exit successfully. - -l, --language=LANG Specify the LANG of FILE: LaTeX or Texinfo. - -p, --pdf Use pdftex or pdflatex for processing. - -q, --quiet No output unless errors (implies --batch). - -s, --silent Same as --quiet. - -t, --texinfo=CMD Insert CMD after @setfilename in copy of input file. - Multiple values accumulate. - -v, --version Display version information and exit successfully. - -V, --verbose Report on what is done. - -The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO, -TEX (or PDFTEX), and TEXINDEX environment variables are used to run -those commands, if they are set. - -Email bug reports to , -general questions and discussion to ." - -# Initialize variables for option overriding and otherwise. -# Don't use `unset' since old bourne shells don't have this command. -# Instead, assign them an empty value. -escape='\' -batch=false # eval for batch mode -clean= -debug= -expand= # t for expansion via makeinfo -oformat=dvi -set_language= -miincludes= # makeinfo include path -textra= -tmpdir=${TMPDIR:-/tmp}/t2d$$ # avoid collisions on 8.3 filesystems. -txincludes= # TEXINPUTS extensions -txiprereq=19990129 # minimum texinfo.tex version to have macro expansion -quiet= # by default let the tools' message be displayed -verbose=false # echo for verbose mode - -orig_pwd=`pwd` - -# Systems which define $COMSPEC or $ComSpec use semicolons to separate -# directories in TEXINPUTS. -if test -n "$COMSPEC$ComSpec"; then - path_sep=";" -else - path_sep=":" -fi - -# Save this so we can construct a new TEXINPUTS path for each file. -TEXINPUTS_orig="$TEXINPUTS" -# Unfortunately makeindex does not read TEXINPUTS. -INDEXSTYLE_orig="$INDEXSTYLE" -export TEXINPUTS INDEXSTYLE - -# Push a token among the arguments that will be used to notice when we -# ended options/arguments parsing. -# Use "set dummy ...; shift" rather than 'set - ..." because on -# Solaris set - turns off set -x (but keeps set -e). -# Use ${1+"$@"} rather than "$@" because Digital Unix and Ultrix 4.3 -# still expand "$@" to a single argument (the empty string) rather -# than nothing at all. -arg_sep="$$--$$" -set dummy ${1+"$@"} "$arg_sep"; shift - -# -# Parse command line arguments. -while test x"$1" != x"$arg_sep"; do - - # Handle --option=value by splitting apart and putting back on argv. - case "$1" in - --*=*) - opt=`echo "$1" | sed -e 's/=.*//'` - val=`echo "$1" | sed -e 's/[^=]*=//'` - shift - set dummy "$opt" "$val" ${1+"$@"}; shift - ;; - esac - - # This recognizes --quark as --quiet. So what. - case "$1" in - -@ ) escape=@;; - # Silently and without documentation accept -b and --b[atch] as synonyms. - -b | --b*) batch=eval;; - -q | -s | --q* | --s*) quiet=t; batch=eval;; - -c | --c*) clean=t;; - -D | --d*) debug=t;; - -e | --e*) expand=t;; - -h | --h*) echo "$usage"; exit 0;; - -I | --I*) - shift - miincludes="$miincludes -I $1" - txincludes="$txincludes$path_sep$1" - ;; - -l | --l*) shift; set_language=$1;; - -p | --p*) oformat=pdf;; - -t | --t*) shift; textra="$textra\\ -$1";; - -v | --vers*) echo "$version"; exit 0;; - -V | --verb*) verbose=echo;; - --) # What remains are not options. - shift - while test x"$1" != x"$arg_sep"; do - set dummy ${1+"$@"} "$1"; shift - shift - done - break;; - -*) - echo "$0: Unknown or ambiguous option \`$1'." >&2 - echo "$0: Try \`--help' for more information." >&2 - exit 1;; - *) set dummy ${1+"$@"} "$1"; shift;; - esac - shift -done -# Pop the token -shift - -# Interpret remaining command line args as filenames. -if test $# = 0; then - echo "$0: Missing file arguments." >&2 - echo "$0: Try \`--help' for more information." >&2 - exit 2 -fi - -# Prepare the temporary directory. Remove it at exit, unless debugging. -if test -z "$debug"; then - trap "cd / && rm -rf $tmpdir" 0 1 2 15 -fi - -# Create the temporary directory with strict rights -(umask 077 && mkdir $tmpdir) || exit 1 - -# Prepare the tools we might need. This may be extra work in some -# cases, but improves the readibility of the script. -utildir=$tmpdir/utils -mkdir $utildir || exit 1 - -# A sed script that preprocesses Texinfo sources in order to keep the -# iftex sections only. We want to remove non TeX sections, and -# comment (with `@c texi2dvi') TeX sections so that makeinfo does not -# try to parse them. Nevertheless, while commenting TeX sections, -# don't comment @macro/@end macro so that makeinfo does propagate -# them. Unfortunately makeinfo --iftex --no-ifhtml --no-ifinfo -# doesn't work well enough (yet) to use that, so work around with sed. -comment_iftex_sed=$utildir/comment.sed -cat <$comment_iftex_sed -/^@tex/,/^@end tex/{ - s/^/@c texi2dvi/ -} -/^@iftex/,/^@end iftex/{ - s/^/@c texi2dvi/ - /^@c texi2dvi@macro/,/^@c texi2dvi@end macro/{ - s/^@c texi2dvi// - } -} -/^@html/,/^@end html/d -/^@ifhtml/,/^@end ifhtml/d -/^@ifnottex/,/^@end ifnottex/d -/^@ifinfo/,/^@end ifinfo/{ - /^@node/p - /^@menu/,/^@end menu/p - d -} -EOF -# Uncommenting is simple: Remove any leading `@c texi2dvi'. -uncomment_iftex_sed=$utildir/uncomment.sed -cat <$uncomment_iftex_sed -s/^@c texi2dvi// -EOF - -# A shell script that computes the list of xref files. -# Takes the filename (without extension) of which we look for xref -# files as argument. The index files must be reported last. -get_xref_files=$utildir/get_xref.sh -cat <<\EOF >$get_xref_files -#! /bin/sh - -# Get list of xref files (indexes, tables and lists). -# Find all files having root filename with a two-letter extension, -# saves the ones that are really Texinfo-related files. .?o? catches -# LaTeX tables and lists. -for this_file in "$1".?o? "$1".aux "$1".?? "$1".idx; do - # If file is empty, skip it. - test -s "$this_file" || continue - # If the file is not suitable to be an index or xref file, don't - # process it. The file can't be if its first character is not a - # backslash or single quote. - first_character=`sed -n '1s/^\(.\).*$/\1/p;q' $this_file` - if test "x$first_character" = "x\\" \ - || test "x$first_character" = "x'"; then - xref_files="$xref_files ./$this_file" - fi -done -echo "$xref_files" -EOF -chmod 500 $get_xref_files - -# File descriptor usage: -# 0 standard input -# 1 standard output (--verbose messages) -# 2 standard error -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 5 tools output (turned off by --quiet) - -# Tools' output. If quiet, discard, else redirect to the message flow. -if test "$quiet" = t; then - exec 5>/dev/null -else - exec 5>&1 -fi - -# Enable tracing -test "$debug" = t && set -x - -# -# TeXify files. - -for command_line_filename in ${1+"$@"}; do - $verbose "Processing $command_line_filename ..." - - # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex), - # prepend `./' in order to avoid that the tools take it as an option. - echo "$command_line_filename" | egrep '^(/|[A-z]:/)' >/dev/null \ - || command_line_filename="./$command_line_filename" - - # See if the file exists. If it doesn't we're in trouble since, even - # though the user may be able to reenter a valid filename at the tex - # prompt (assuming they're attending the terminal), this script won't - # be able to find the right xref files and so forth. - if test ! -r "$command_line_filename"; then - echo "$0: Could not read $command_line_filename, skipping." >&2 - continue - fi - - # Get the name of the current directory. We want the full path - # because in clean mode we are in tmp, in which case a relative - # path has no meaning. - filename_dir=`echo $command_line_filename | sed 's!/[^/]*$!!;s!^$!.!'` - filename_dir=`cd "$filename_dir" >/dev/null && pwd` - - # Strip directory part but leave extension. - filename_ext=`basename "$command_line_filename"` - # Strip extension. - filename_noext=`echo "$filename_ext" | sed 's/\.[^.]*$//'` - ext=`echo "$filename_ext" | sed 's/^.*\.//'` - - # _src. Use same basename since we want to generate aux files with - # the same basename as the manual. If --expand, then output the - # macro-expanded file to here, else copy the original file. - tmpdir_src=$tmpdir/src - filename_src=$tmpdir_src/$filename_noext.$ext - - # _xtr. The file with the user's extra commands. - tmpdir_xtr=$tmpdir/xtr - filename_xtr=$tmpdir_xtr/$filename_noext.$ext - - # _bak. Copies of the previous xref files (another round is run if - # they differ from the new one). - tmpdir_bak=$tmpdir/bak - - # Make all those directories and give up if we can't succeed. - mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1 - - # Source file might include additional sources. Put `.' and - # directory where source file(s) reside in TEXINPUTS before anything - # else. `.' goes first to ensure that any old .aux, .cps, - # etc. files in ${directory} don't get used in preference to fresher - # files in `.'. Include orig_pwd in case we are in clean mode, where - # we've cd'd to a temp directory. - common=".$path_sep$orig_pwd$path_sep$filename_dir$path_sep$txincludes$path_sep" - TEXINPUTS="$common$TEXINPUTS_orig" - INDEXSTYLE="$common$INDEXSTYLE_orig" - - # If the user explicitly specified the language, use that. - # Otherwise, if the first line is \input texinfo, assume it's texinfo. - # Otherwise, guess from the file extension. - if test -n "$set_language"; then - language=$set_language - elif sed 1q "$command_line_filename" | fgrep 'input texinfo' >/dev/null; then - language=texinfo - else - language= - fi - - # Get the type of the file (latex or texinfo) from the given language - # we just guessed, or from the file extension if not set yet. - case ${language:-$filename_ext} in - [lL]a[tT]e[xX] | *.ltx | *.tex) - # Assume a LaTeX file. LaTeX needs bibtex and uses latex for - # compilation. No makeinfo. - bibtex=${BIBTEX:-bibtex} - makeinfo= # no point in running makeinfo on latex source. - texindex=${MAKEINDEX:-makeindex} - if test $oformat = dvi; then - tex=${LATEX:-latex} - else - tex=${PDFLATEX:-pdflatex} - fi - ;; - - *) - # Assume a Texinfo file. Texinfo files need makeinfo, texindex and tex. - bibtex= - texindex=${TEXINDEX:-texindex} - if test $oformat = dvi; then - tex=${TEX:-tex} - else - tex=${PDFTEX:-pdftex} - fi - # Unless required by the user, makeinfo expansion is wanted only - # if texinfo.tex is too old. - if test "$expand" = t; then - makeinfo=${MAKEINFO:-makeinfo} - else - # Check if texinfo.tex performs macro expansion by looking for - # its version. The version is a date of the form YEAR-MO-DA. - # We don't need to use [0-9] to match the digits since anyway - # the comparison with $txiprereq, a number, will fail with non - # digits. - txiversion_tex=txiversion.tex - echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex - # Run in the tmpdir to avoid leaving files. - eval `cd $tmpdir >/dev/null \ - && $tex $txiversion_tex 2>/dev/null \ -| sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'` - $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..." - if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then - makeinfo= - else - makeinfo=${MAKEINFO:-makeinfo} - fi - # As long as we had to run TeX, offer the user this convenience - if test "$txiformat" = Texinfo; then - escape=@ - fi - fi - ;; - esac - - # Expand macro commands in the original source file using Makeinfo. - # Always use `end' footnote style, since the `separate' style - # generates different output (arguably this is a bug in -E). - # Discard main info output, the user asked to run TeX, not makeinfo. - if test -n "$makeinfo"; then - $verbose "Macro-expanding $command_line_filename to $filename_src ..." - sed -f $comment_iftex_sed "$command_line_filename" \ - | $makeinfo --footnote-style=end -I "$filename_dir" $miincludes \ - -o /dev/null --macro-expand=- \ - | sed -f $uncomment_iftex_sed >"$filename_src" - filename_input=$filename_src - fi - - # If makeinfo failed (or was not even run), use the original file as input. - if test $? -ne 0 \ - || test ! -r "$filename_src"; then - $verbose "Reverting to $command_line_filename ..." - filename_input=$filename_dir/$filename_ext - fi - - # Used most commonly for @finalout, @smallbook, etc. - if test -n "$textra"; then - $verbose "Inserting extra commands: $textra" - sed '/^@setfilename/a\ -'"$textra" "$filename_input" >$filename_xtr - filename_input=$filename_xtr - fi - - # If clean mode was specified, then move to the temporary directory. - if test "$clean" = t; then - $verbose "cd $tmpdir_src" - cd "$tmpdir_src" || exit 1 - fi - - while :; do # will break out of loop below - orig_xref_files=`$get_xref_files "$filename_noext"` - - # Save copies of originals for later comparison. - if test -n "$orig_xref_files"; then - $verbose "Backing up xref files: `echo $orig_xref_files | sed 's|\./||g'`" - cp $orig_xref_files $tmpdir_bak - fi - - # Run bibtex on current file. - # - If its input (AUX) exists. - # - If AUX contains both `\bibdata' and `\bibstyle'. - # - If some citations are missing (LOG contains `Citation'). - # or the LOG complains of a missing .bbl - # - # We run bibtex first, because I can see reasons for the indexes - # to change after bibtex is run, but I see no reason for the - # converse. - # - # Don't try to be too smart. Running bibtex only if the bbl file - # exists and is older than the LaTeX file is wrong, since the - # document might include files that have changed. Because there - # can be several AUX (if there are \include's), but a single LOG, - # looking for missing citations in LOG is easier, though we take - # the risk to match false messages. - if test -n "$bibtex" \ - && test -r "$filename_noext.aux" \ - && test -r "$filename_noext.log" \ - && (grep '^\\bibdata[{]' "$filename_noext.aux" \ - && grep '^\\bibstyle[{]' "$filename_noext.aux" \ - && (grep 'Warning:.*Citation.*undefined' "$filename_noext.log" \ - || grep 'No file .*\.bbl\.' "$filename_noext.log")) \ - >/dev/null 2>&1; \ - then - $verbose "Running $bibtex $filename_noext ..." - if $bibtex "$filename_noext" >&5; then :; else - echo "$0: $bibtex exited with bad status, quitting." >&2 - exit 1 - fi - fi - - # What we'll run texindex on -- exclude non-index files. - # Since we know index files are last, it is correct to remove everything - # before .aux and .?o?. - index_files=`echo "$orig_xref_files" \ - | sed "s!.*\.aux!!g; - s!./$filename_noext\..o.!!g; - s/^[ ]*//;s/[ ]*$//"` - # Run texindex (or makeindex) on current index files. If they - # already exist, and after running TeX a first time the index - # files don't change, then there's no reason to run TeX again. - # But we won't know that if the index files are out of date or - # nonexistent. - if test -n "$texindex" && test -n "$index_files"; then - $verbose "Running $texindex $index_files ..." - if $texindex $index_files 2>&5 1>&2; then :; else - echo "$0: $texindex exited with bad status, quitting." >&2 - exit 1 - fi - fi - - # Finally, run TeX. - # Prevent $ESCAPE from being interpreted by the shell if it happens - # to be `/'. - $batch tex_args="\\${escape}nonstopmode\ \\${escape}input" - $verbose "Running $cmd ..." - cmd="$tex $tex_args $filename_input" - if $cmd >&5; then :; else - echo "$0: $tex exited with bad status, quitting." >&2 - echo "$0: see $filename_noext.log for errors." >&2 - test "$clean" = t \ - && cp "$filename_noext.log" "$orig_pwd" - exit 1 - fi - - - # Decide if looping again is needed. - finished=t - - # LaTeX (and the package changebar) report in the LOG file if it - # should be rerun. This is needed for files included from - # subdirs, since texi2dvi does not try to compare xref files in - # subdirs. Performing xref files test is still good since LaTeX - # does not report changes in xref files. - if fgrep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then - finished= - fi - - # Check if xref files changed. - new_xref_files=`$get_xref_files "$filename_noext"` - $verbose "Original xref files = `echo $orig_xref_files | sed 's|\./||g'`" - $verbose "New xref files = `echo $new_xref_files | sed 's|\./||g'`" - - # If old and new lists don't at least have the same file list, - # then one file or another has definitely changed. - test "x$orig_xref_files" != "x$new_xref_files" && finished= - - # File list is the same. We must compare each file until we find - # a difference. - if test -n "$finished"; then - for this_file in $new_xref_files; do - $verbose "Comparing xref file `echo $this_file | sed 's|\./||g'` ..." - # cmp -s returns nonzero exit status if files differ. - if cmp -s "$this_file" "$tmpdir_bak/$this_file"; then :; else - # We only need to keep comparing until we find one that - # differs, because we'll have to run texindex & tex again no - # matter how many more there might be. - finished= - $verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..." - test "$debug" = t && diff -c "$tmpdir_bak/$this_file" "$this_file" - break - fi - done - fi - - # If finished, exit the loop, else rerun the loop. - test -n "$finished" && break - done - - # If we were in clean mode, compilation was in a tmp directory. - # Copy the DVI (or PDF) file into the directory where the compilation - # has been done. (The temp dir is about to get removed anyway.) - # We also return to the original directory so that - # - the next file is processed in correct conditions - # - the temporary file can be removed - if test -n "$clean"; then - $verbose "Copying $oformat file from `pwd` to $orig_pwd" - cp -p "./$filename_noext.$oformat" "$orig_pwd" - cd / # in case $orig_pwd is on a different drive (for DOS) - cd $orig_pwd || exit 1 - fi - - # Remove temporary files. - if test "x$debug" = "x"; then - $verbose "Removing $tmpdir_src $tmpdir_xtr $tmpdir_bak ..." - cd / - rm -rf $tmpdir_src $tmpdir_xtr $tmpdir_bak - fi -done - -$verbose "$0 done." -exit 0 # exit successfully, not however we ended the loop. diff --git a/support/texi2dvi-0.46 b/support/texi2dvi-0.46 deleted file mode 100755 index db09865fb..000000000 --- a/support/texi2dvi-0.46 +++ /dev/null @@ -1,604 +0,0 @@ -#! /bin/sh -# texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources. -# $Id: texi2dvi,v 0.46 2001/06/07 18:43:25 karl Exp $ -# -# Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2001 -# Free Software Foundation, Inc. -# -# This program 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. -# -# This program 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 this program; if not, you can either send email to this -# program's maintainer or write to: The Free Software Foundation, -# Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA. -# -# Original author: Noah Friedman . -# -# Please send bug reports, etc. to bug-texinfo@gnu.org. -# If possible, please send a copy of the output of the script called with -# the `--debug' option when making a bug report. - -# This string is expanded by rcs automatically when this file is checked out. -rcs_revision='$Revision: 0.46 $' -rcs_version=`set - $rcs_revision; echo $2` -program=`echo $0 | sed -e 's!.*/!!'` -version="texi2dvi (GNU Texinfo 4.0) $rcs_version - -Copyright (C) 1999 Free Software Foundation, Inc. -There is NO warranty. You may redistribute this software -under the terms of the GNU General Public License. -For more information about these matters, see the files named COPYING." - -usage="Usage: $program [OPTION]... FILE... - -Run each Texinfo or LaTeX FILE through TeX in turn until all -cross-references are resolved, building all indices. The directory -containing each FILE is searched for included files. The suffix of FILE -is used to determine its language (LaTeX or Texinfo). - -Makeinfo is used to perform Texinfo macro expansion before running TeX -when needed. - -Operation modes: - -b, --batch no interaction - -c, --clean remove all auxiliary files - -D, --debug turn on shell debugging (set -x) - -h, --help display this help and exit successfully - -o, --output=OFILE leave output in OFILE (implies --clean); - Only one input FILE may be specified in this case - -q, --quiet no output unless errors (implies --batch) - -s, --silent same as --quiet - -v, --version display version information and exit successfully - -V, --verbose report on what is done - -TeX tuning: - -@ use @input instead of \input; for preloaded Texinfo - -e, --expand force macro expansion using makeinfo - -I DIR search DIR for Texinfo files - -l, --language=LANG specify the LANG of FILE (LaTeX or Texinfo) - -p, --pdf use pdftex or pdflatex for processing - -t, --texinfo=CMD insert CMD after @setfilename in copy of input file - multiple values accumulate - -The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO, -TEX (or PDFTEX), and TEXINDEX environment variables are used to run -those commands, if they are set. - -Email bug reports to , -general questions and discussion to ." - -# Initialize variables for option overriding and otherwise. -# Don't use `unset' since old bourne shells don't have this command. -# Instead, assign them an empty value. -batch=false # eval for batch mode -clean= -debug= -escape='\' -expand= # t for expansion via makeinfo -miincludes= # makeinfo include path -oformat=dvi -oname= # --output -quiet= # by default let the tools' message be displayed -set_language= -textra= -tmpdir=${TMPDIR:-/tmp}/t2d$$ # avoid collisions on 8.3 filesystems. -txincludes= # TEXINPUTS extensions -txiprereq=19990129 # minimum texinfo.tex version to have macro expansion -verbose=false # echo for verbose mode - -orig_pwd=`pwd` - -# Systems which define $COMSPEC or $ComSpec use semicolons to separate -# directories in TEXINPUTS. -if test -n "$COMSPEC$ComSpec"; then - path_sep=";" -else - path_sep=":" -fi - -# Save this so we can construct a new TEXINPUTS path for each file. -TEXINPUTS_orig="$TEXINPUTS" -# Unfortunately makeindex does not read TEXINPUTS. -INDEXSTYLE_orig="$INDEXSTYLE" -export TEXINPUTS INDEXSTYLE - -# Push a token among the arguments that will be used to notice when we -# ended options/arguments parsing. -# Use "set dummy ...; shift" rather than 'set - ..." because on -# Solaris set - turns off set -x (but keeps set -e). -# Use ${1+"$@"} rather than "$@" because Digital Unix and Ultrix 4.3 -# still expand "$@" to a single argument (the empty string) rather -# than nothing at all. -arg_sep="$$--$$" -set dummy ${1+"$@"} "$arg_sep"; shift - -# -# Parse command line arguments. -while test x"$1" != x"$arg_sep"; do - - # Handle --option=value by splitting apart and putting back on argv. - case "$1" in - --*=*) - opt=`echo "$1" | sed -e 's/=.*//'` - val=`echo "$1" | sed -e 's/[^=]*=//'` - shift - set dummy "$opt" "$val" ${1+"$@"}; shift - ;; - esac - - # This recognizes --quark as --quiet. So what. - case "$1" in - -@ ) escape=@;; - # Silently and without documentation accept -b and --b[atch] as synonyms. - -b | --b*) batch=eval;; - -q | -s | --q* | --s*) quiet=t; batch=eval;; - -c | --c*) clean=t;; - -D | --d*) debug=t;; - -e | --e*) expand=t;; - -h | --h*) echo "$usage"; exit 0;; - -I | --I*) - shift - miincludes="$miincludes -I $1" - txincludes="$txincludes$path_sep$1" - ;; - -l | --l*) shift; set_language=$1;; - -o | --o*) - shift - clean=t - case "$1" in - /* | ?:/*) oname=$1;; - *) oname="$orig_pwd/$1";; - esac;; - -p | --p*) oformat=pdf;; - -t | --t*) shift; textra="$textra\\ -$1";; - -v | --vers*) echo "$version"; exit 0;; - -V | --verb*) verbose=echo;; - --) # What remains are not options. - shift - while test x"$1" != x"$arg_sep"; do - set dummy ${1+"$@"} "$1"; shift - shift - done - break;; - -*) - echo "$0: Unknown or ambiguous option \`$1'." >&2 - echo "$0: Try \`--help' for more information." >&2 - exit 1;; - *) set dummy ${1+"$@"} "$1"; shift;; - esac - shift -done -# Pop the token -shift - -# Interpret remaining command line args as filenames. -case $# in - 0) - echo "$0: Missing file arguments." >&2 - echo "$0: Try \`--help' for more information." >&2 - exit 2 - ;; - 1) ;; - *) - if test -n "$oname"; then - echo "$0: Can't use option \`--output' with more than one argument." >&2 - exit 2 - fi - ;; -esac - -# Prepare the temporary directory. Remove it at exit, unless debugging. -if test -z "$debug"; then - trap "cd / && rm -rf $tmpdir" 0 1 2 15 -fi - -# Create the temporary directory with strict rights -(umask 077 && mkdir $tmpdir) || exit 1 - -# Prepare the tools we might need. This may be extra work in some -# cases, but improves the readibility of the script. -utildir=$tmpdir/utils -mkdir $utildir || exit 1 - -# A sed script that preprocesses Texinfo sources in order to keep the -# iftex sections only. We want to remove non TeX sections, and -# comment (with `@c texi2dvi') TeX sections so that makeinfo does not -# try to parse them. Nevertheless, while commenting TeX sections, -# don't comment @macro/@end macro so that makeinfo does propagate -# them. Unfortunately makeinfo --iftex --no-ifhtml --no-ifinfo -# doesn't work well enough (yet) to use that, so work around with sed. -comment_iftex_sed=$utildir/comment.sed -cat <$comment_iftex_sed -/^@tex/,/^@end tex/{ - s/^/@c texi2dvi/ -} -/^@iftex/,/^@end iftex/{ - s/^/@c texi2dvi/ - /^@c texi2dvi@macro/,/^@c texi2dvi@end macro/{ - s/^@c texi2dvi// - } -} -/^@html/,/^@end html/{ - s/^/@c (texi2dvi)/ -} -/^@ifhtml/,/^@end ifhtml/{ - s/^/@c (texi2dvi)/ -} -/^@ifnottex/,/^@end ifnottex/{ - s/^/@c (texi2dvi)/ -} -/^@ifinfo/,/^@end ifinfo/{ - /^@node/p - /^@menu/,/^@end menu/p - t - s/^/@c (texi2dvi)/ -} -s/^@ifnotinfo/@c texi2dvi@ifnotinfo/ -s/^@end ifnotinfo/@c texi2dvi@end ifnotinfo/ -EOF -# Uncommenting is simple: Remove any leading `@c texi2dvi'. -uncomment_iftex_sed=$utildir/uncomment.sed -cat <$uncomment_iftex_sed -s/^@c texi2dvi// -EOF - -# A shell script that computes the list of xref files. -# Takes the filename (without extension) of which we look for xref -# files as argument. The index files must be reported last. -get_xref_files=$utildir/get_xref.sh -cat <<\EOF >$get_xref_files -#! /bin/sh - -# Get list of xref files (indexes, tables and lists). -# Find all files having root filename with a two-letter extension, -# saves the ones that are really Texinfo-related files. .?o? catches -# LaTeX tables and lists. -for this_file in "$1".?o? "$1".aux "$1".?? "$1".idx; do - # If file is empty, skip it. - test -s "$this_file" || continue - # If the file is not suitable to be an index or xref file, don't - # process it. The file can't be if its first character is not a - # backslash or single quote. - first_character=`sed -n '1s/^\(.\).*$/\1/p;q' $this_file` - if test "x$first_character" = "x\\" \ - || test "x$first_character" = "x'"; then - xref_files="$xref_files ./$this_file" - fi -done -echo "$xref_files" -EOF -chmod 500 $get_xref_files - -# File descriptor usage: -# 0 standard input -# 1 standard output (--verbose messages) -# 2 standard error -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 5 tools output (turned off by --quiet) - -# Tools' output. If quiet, discard, else redirect to the message flow. -if test "$quiet" = t; then - exec 5>/dev/null -else - exec 5>&1 -fi - -# Enable tracing -test "$debug" = t && set -x - -# -# TeXify files. - -for command_line_filename in ${1+"$@"}; do - $verbose "Processing $command_line_filename ..." - - # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex), - # prepend `./' in order to avoid that the tools take it as an option. - echo "$command_line_filename" | egrep '^(/|[A-z]:/)' >/dev/null \ - || command_line_filename="./$command_line_filename" - - # See if the file exists. If it doesn't we're in trouble since, even - # though the user may be able to reenter a valid filename at the tex - # prompt (assuming they're attending the terminal), this script won't - # be able to find the right xref files and so forth. - if test ! -r "$command_line_filename"; then - echo "$0: Could not read $command_line_filename, skipping." >&2 - continue - fi - - # Get the name of the current directory. We want the full path - # because in clean mode we are in tmp, in which case a relative - # path has no meaning. - filename_dir=`echo $command_line_filename | sed 's!/[^/]*$!!;s!^$!.!'` - filename_dir=`cd "$filename_dir" >/dev/null && pwd` - - # Strip directory part but leave extension. - filename_ext=`basename "$command_line_filename"` - # Strip extension. - filename_noext=`echo "$filename_ext" | sed 's/\.[^.]*$//'` - ext=`echo "$filename_ext" | sed 's/^.*\.//'` - - # _src. Use same basename since we want to generate aux files with - # the same basename as the manual. If --expand, then output the - # macro-expanded file to here, else copy the original file. - tmpdir_src=$tmpdir/src - filename_src=$tmpdir_src/$filename_noext.$ext - - # _xtr. The file with the user's extra commands. - tmpdir_xtr=$tmpdir/xtr - filename_xtr=$tmpdir_xtr/$filename_noext.$ext - - # _bak. Copies of the previous xref files (another round is run if - # they differ from the new one). - tmpdir_bak=$tmpdir/bak - - # Make all those directories and give up if we can't succeed. - mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1 - - # Source file might include additional sources. Put `.' and - # directory where source file(s) reside in TEXINPUTS before anything - # else. `.' goes first to ensure that any old .aux, .cps, - # etc. files in ${directory} don't get used in preference to fresher - # files in `.'. Include orig_pwd in case we are in clean mode, where - # we've cd'd to a temp directory. - common=".$path_sep$orig_pwd$path_sep$filename_dir$path_sep$txincludes$path_sep" - TEXINPUTS="$common$TEXINPUTS_orig" - INDEXSTYLE="$common$INDEXSTYLE_orig" - - # If the user explicitly specified the language, use that. - # Otherwise, if the first line is \input texinfo, assume it's texinfo. - # Otherwise, guess from the file extension. - if test -n "$set_language"; then - language=$set_language - elif sed 1q "$command_line_filename" | fgrep 'input texinfo' >/dev/null; then - language=texinfo - else - language= - fi - - # Get the type of the file (latex or texinfo) from the given language - # we just guessed, or from the file extension if not set yet. - case ${language:-$filename_ext} in - [lL]a[tT]e[xX] | *.ltx | *.tex) - # Assume a LaTeX file. LaTeX needs bibtex and uses latex for - # compilation. No makeinfo. - bibtex=${BIBTEX:-bibtex} - makeinfo= # no point in running makeinfo on latex source. - texindex=${MAKEINDEX:-makeindex} - if test $oformat = dvi; then - tex=${LATEX:-latex} - else - tex=${PDFLATEX:-pdflatex} - fi - ;; - - *) - # Assume a Texinfo file. Texinfo files need makeinfo, texindex and tex. - bibtex= - texindex=${TEXINDEX:-texindex} - if test $oformat = dvi; then - tex=${TEX:-tex} - else - tex=${PDFTEX:-pdftex} - fi - # Unless required by the user, makeinfo expansion is wanted only - # if texinfo.tex is too old. - if test "$expand" = t; then - makeinfo=${MAKEINFO:-makeinfo} - else - # Check if texinfo.tex performs macro expansion by looking for - # its version. The version is a date of the form YEAR-MO-DA. - # We don't need to use [0-9] to match the digits since anyway - # the comparison with $txiprereq, a number, will fail with non - # digits. - txiversion_tex=txiversion.tex - echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex - # Run in the tmpdir to avoid leaving files. - eval `cd $tmpdir >/dev/null && - $tex $txiversion_tex 2>/dev/null | - sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'` - $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..." - if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then - makeinfo= - else - makeinfo=${MAKEINFO:-makeinfo} - fi - # As long as we had to run TeX, offer the user this convenience - if test "$txiformat" = Texinfo; then - escape=@ - fi - fi - ;; - esac - - # Expand macro commands in the original source file using Makeinfo. - # Always use `end' footnote style, since the `separate' style - # generates different output (arguably this is a bug in -E). - # Discard main info output, the user asked to run TeX, not makeinfo. - if test -n "$makeinfo"; then - $verbose "Macro-expanding $command_line_filename to $filename_src ..." - sed -f $comment_iftex_sed "$command_line_filename" \ - | $makeinfo --footnote-style=end -I "$filename_dir" $miincludes \ - -o /dev/null --macro-expand=- \ - | sed -f $uncomment_iftex_sed >"$filename_src" - filename_input=$filename_src - fi - - # If makeinfo failed (or was not even run), use the original file as input. - if test $? -ne 0 \ - || test ! -r "$filename_src"; then - $verbose "Reverting to $command_line_filename ..." - filename_input=$filename_dir/$filename_ext - fi - - # Used most commonly for @finalout, @smallbook, etc. - if test -n "$textra"; then - $verbose "Inserting extra commands: $textra" - sed '/^@setfilename/a\ -'"$textra" "$filename_input" >$filename_xtr - filename_input=$filename_xtr - fi - - # If clean mode was specified, then move to the temporary directory. - if test "$clean" = t; then - $verbose "cd $tmpdir_src" - cd "$tmpdir_src" || exit 1 - fi - - while :; do # will break out of loop below - orig_xref_files=`$get_xref_files "$filename_noext"` - - # Save copies of originals for later comparison. - if test -n "$orig_xref_files"; then - $verbose "Backing up xref files: `echo $orig_xref_files | sed 's|\./||g'`" - cp $orig_xref_files $tmpdir_bak - fi - - # Run bibtex on current file. - # - If its input (AUX) exists. - # - If AUX contains both `\bibdata' and `\bibstyle'. - # - If some citations are missing (LOG contains `Citation'). - # or the LOG complains of a missing .bbl - # - # We run bibtex first, because I can see reasons for the indexes - # to change after bibtex is run, but I see no reason for the - # converse. - # - # Don't try to be too smart. Running bibtex only if the bbl file - # exists and is older than the LaTeX file is wrong, since the - # document might include files that have changed. Because there - # can be several AUX (if there are \include's), but a single LOG, - # looking for missing citations in LOG is easier, though we take - # the risk to match false messages. - if test -n "$bibtex" \ - && test -r "$filename_noext.aux" \ - && test -r "$filename_noext.log" \ - && (grep '^\\bibdata[{]' "$filename_noext.aux" \ - && grep '^\\bibstyle[{]' "$filename_noext.aux" \ - && (grep 'Warning:.*Citation.*undefined' "$filename_noext.log" \ - || grep 'No file .*\.bbl\.' "$filename_noext.log")) \ - >/dev/null 2>&1; \ - then - $verbose "Running $bibtex $filename_noext ..." - if $bibtex "$filename_noext" >&5; then :; else - echo "$0: $bibtex exited with bad status, quitting." >&2 - exit 1 - fi - fi - - # What we'll run texindex on -- exclude non-index files. - # Since we know index files are last, it is correct to remove everything - # before .aux and .?o?. - index_files=`echo "$orig_xref_files" \ - | sed "s!.*\.aux!!g; - s!./$filename_noext\..o.!!g; - s/^[ ]*//;s/[ ]*$//"` - # Run texindex (or makeindex) on current index files. If they - # already exist, and after running TeX a first time the index - # files don't change, then there's no reason to run TeX again. - # But we won't know that if the index files are out of date or - # nonexistent. - if test -n "$texindex" && test -n "$index_files"; then - $verbose "Running $texindex $index_files ..." - if $texindex $index_files 2>&5 1>&2; then :; else - echo "$0: $texindex exited with bad status, quitting." >&2 - exit 1 - fi - fi - - # Finally, run TeX. - # Prevent $ESCAPE from being interpreted by the shell if it happens - # to be `/'. - $batch tex_args="\\${escape}nonstopmode\ \\${escape}input" - $verbose "Running $cmd ..." - cmd="$tex $tex_args $filename_input" - if $cmd >&5; then :; else - echo "$0: $tex exited with bad status, quitting." >&2 - echo "$0: see $filename_noext.log for errors." >&2 - test "$clean" = t \ - && cp "$filename_noext.log" "$orig_pwd" - exit 1 - fi - - - # Decide if looping again is needed. - finished=t - - # LaTeX (and the package changebar) report in the LOG file if it - # should be rerun. This is needed for files included from - # subdirs, since texi2dvi does not try to compare xref files in - # subdirs. Performing xref files test is still good since LaTeX - # does not report changes in xref files. - if fgrep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then - finished= - fi - - # Check if xref files changed. - new_xref_files=`$get_xref_files "$filename_noext"` - $verbose "Original xref files = `echo $orig_xref_files | sed 's|\./||g'`" - $verbose "New xref files = `echo $new_xref_files | sed 's|\./||g'`" - - # If old and new lists don't at least have the same file list, - # then one file or another has definitely changed. - test "x$orig_xref_files" != "x$new_xref_files" && finished= - - # File list is the same. We must compare each file until we find - # a difference. - if test -n "$finished"; then - for this_file in $new_xref_files; do - $verbose "Comparing xref file `echo $this_file | sed 's|\./||g'` ..." - # cmp -s returns nonzero exit status if files differ. - if cmp -s "$this_file" "$tmpdir_bak/$this_file"; then :; else - # We only need to keep comparing until we find one that - # differs, because we'll have to run texindex & tex again no - # matter how many more there might be. - finished= - $verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..." - test "$debug" = t && diff -c "$tmpdir_bak/$this_file" "$this_file" - break - fi - done - fi - - # If finished, exit the loop, else rerun the loop. - test -n "$finished" && break - done - - # If we were in clean mode, compilation was in a tmp directory. - # Copy the DVI (or PDF) file into the directory where the compilation - # has been done. (The temp dir is about to get removed anyway.) - # We also return to the original directory so that - # - the next file is processed in correct conditions - # - the temporary file can be removed - if test -n "$clean"; then - if test -n "$oname"; then - dest=$oname - else - dest=$orig_pwd - fi - $verbose "Copying $oformat file from `pwd` to $dest" - cp -p "./$filename_noext.$oformat" "$dest" - cd / # in case $orig_pwd is on a different drive (for DOS) - cd $orig_pwd || exit 1 - fi - - # Remove temporary files. - if test "x$debug" = "x"; then - $verbose "Removing $tmpdir_src $tmpdir_xtr $tmpdir_bak ..." - cd / - rm -rf $tmpdir_src $tmpdir_xtr $tmpdir_bak - fi -done - -$verbose "$0 done." -exit 0 # exit successfully, not however we ended the loop. diff --git a/support/texi2dvi-1.14 b/support/texi2dvi-1.14 deleted file mode 100755 index 010b586b4..000000000 --- a/support/texi2dvi-1.14 +++ /dev/null @@ -1,660 +0,0 @@ -#! /bin/sh -# texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources. -# $Id: texi2dvi,v 1.14 2003/02/05 00:42:33 karl Exp $ -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, -# 2002, 2003 Free Software Foundation, Inc. -# -# This program 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. -# -# This program 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 this program; if not, you can either send email to this -# program's maintainer or write to: The Free Software Foundation, -# Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA. -# -# Original author: Noah Friedman . -# -# Please send bug reports, etc. to bug-texinfo@gnu.org. -# If possible, please send a copy of the output of the script called with -# the `--debug' option when making a bug report. - -# This string is expanded by rcs automatically when this file is checked out. -rcs_revision='$Revision: 1.14 $' -rcs_version=`set - $rcs_revision; echo $2` -program=`echo $0 | sed -e 's!.*/!!'` -version="texi2dvi (GNU Texinfo 4.5) $rcs_version - -Copyright (C) 2003 Free Software Foundation, Inc. -There is NO warranty. You may redistribute this software -under the terms of the GNU General Public License. -For more information about these matters, see the files named COPYING." - -usage="Usage: $program [OPTION]... FILE... - -Run each Texinfo or LaTeX FILE through TeX in turn until all -cross-references are resolved, building all indices. The directory -containing each FILE is searched for included files. The suffix of FILE -is used to determine its language (LaTeX or Texinfo). - -Makeinfo is used to perform Texinfo macro expansion before running TeX -when needed. - -Operation modes: - -b, --batch no interaction - -c, --clean remove all auxiliary files - -D, --debug turn on shell debugging (set -x) - -h, --help display this help and exit successfully - -o, --output=OFILE leave output in OFILE (implies --clean); - Only one input FILE may be specified in this case - -q, --quiet no output unless errors (implies --batch) - -s, --silent same as --quiet - -v, --version display version information and exit successfully - -V, --verbose report on what is done - -TeX tuning: - -@ use @input instead of \input; for preloaded Texinfo - -e, -E, --expand force macro expansion using makeinfo - -I DIR search DIR for Texinfo files - -l, --language=LANG specify the LANG of FILE (LaTeX or Texinfo) - -p, --pdf use pdftex or pdflatex for processing - -t, --texinfo=CMD insert CMD after @setfilename in copy of input file - multiple values accumulate - -The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO, -TEX (or PDFTEX), and TEXINDEX environment variables are used to run -those commands, if they are set. - -Email bug reports to , -general questions and discussion to . -Texinfo home page: http://www.gnu.org/software/texinfo/" - -# Initialize variables for option overriding and otherwise. -# Don't use `unset' since old bourne shells don't have this command. -# Instead, assign them an empty value. -batch=false # eval for batch mode -clean= -debug= -escape='\' -expand= # t for expansion via makeinfo -miincludes= # makeinfo include path -oformat=dvi -oname= # --output -quiet= # by default let the tools' message be displayed -set_language= -textra= -tmpdir=${TMPDIR:-/tmp}/t2d$$ # avoid collisions on 8.3 filesystems. -txincludes= # TEXINPUTS extensions, with trailing colon -txiprereq=19990129 # minimum texinfo.tex version to have macro expansion -verbose=false # echo for verbose mode - -orig_pwd=`pwd` - -# Systems which define $COMSPEC or $ComSpec use semicolons to separate -# directories in TEXINPUTS. -if test -n "$COMSPEC$ComSpec"; then - path_sep=";" -else - path_sep=":" -fi - -# Pacify verbose cds. -CDPATH=${ZSH_VERSION+.}$path_sep - -# In case someone crazy insists on using grep -E. -: ${EGREP=egrep} - -# Save this so we can construct a new TEXINPUTS path for each file. -TEXINPUTS_orig="$TEXINPUTS" -# Unfortunately makeindex does not read TEXINPUTS. -INDEXSTYLE_orig="$INDEXSTYLE" -export TEXINPUTS INDEXSTYLE - -# Push a token among the arguments that will be used to notice when we -# ended options/arguments parsing. -# Use "set dummy ...; shift" rather than 'set - ..." because on -# Solaris set - turns off set -x (but keeps set -e). -# Use ${1+"$@"} rather than "$@" because Digital Unix and Ultrix 4.3 -# still expand "$@" to a single argument (the empty string) rather -# than nothing at all. -arg_sep="$$--$$" -set dummy ${1+"$@"} "$arg_sep"; shift - -# -# Parse command line arguments. -while test x"$1" != x"$arg_sep"; do - - # Handle --option=value by splitting apart and putting back on argv. - case "$1" in - --*=*) - opt=`echo "$1" | sed -e 's/=.*//'` - val=`echo "$1" | sed -e 's/[^=]*=//'` - shift - set dummy "$opt" "$val" ${1+"$@"}; shift - ;; - esac - - # This recognizes --quark as --quiet. So what. - case "$1" in - -@ ) escape=@;; - # Silently and without documentation accept -b and --b[atch] as synonyms. - -b | --b*) batch=eval;; - -q | -s | --q* | --s*) quiet=t; batch=eval;; - -c | --c*) clean=t;; - -D | --d*) debug=t;; - -e | -E | --e*) expand=t;; - -h | --h*) echo "$usage"; exit 0;; - -I | --I*) - shift - miincludes="$miincludes -I $1" - txincludes="$txincludes$1$path_sep" - ;; - -l | --l*) shift; set_language=$1;; - -o | --o*) - shift - clean=t - case "$1" in - /* | ?:/*) oname=$1;; - *) oname="$orig_pwd/$1";; - esac;; - -p | --p*) oformat=pdf;; - -t | --t*) shift; textra="$textra\\ -$1";; - -v | --vers*) echo "$version"; exit 0;; - -V | --verb*) verbose=echo;; - --) # What remains are not options. - shift - while test x"$1" != x"$arg_sep"; do - set dummy ${1+"$@"} "$1"; shift - shift - done - break;; - -*) - echo "$0: Unknown or ambiguous option \`$1'." >&2 - echo "$0: Try \`--help' for more information." >&2 - exit 1;; - *) set dummy ${1+"$@"} "$1"; shift;; - esac - shift -done -# Pop the token -shift - -# Interpret remaining command line args as filenames. -case $# in - 0) - echo "$0: Missing file arguments." >&2 - echo "$0: Try \`--help' for more information." >&2 - exit 2 - ;; - 1) ;; - *) - if test -n "$oname"; then - echo "$0: Can't use option \`--output' with more than one argument." >&2 - exit 2 - fi - ;; -esac - -# Prepare the temporary directory. Remove it at exit, unless debugging. -if test -z "$debug"; then - trap "cd / && rm -rf $tmpdir" 0 1 2 15 -fi - -# Create the temporary directory with strict rights -(umask 077 && mkdir $tmpdir) || exit 1 - -# Prepare the tools we might need. This may be extra work in some -# cases, but improves the readibility of the script. -utildir=$tmpdir/utils -mkdir $utildir || exit 1 - -# A sed script that preprocesses Texinfo sources in order to keep the -# iftex sections only. We want to remove non TeX sections, and -# comment (with `@c texi2dvi') TeX sections so that makeinfo does not -# try to parse them. Nevertheless, while commenting TeX sections, -# don't comment @macro/@end macro so that makeinfo does propagate -# them. Unfortunately makeinfo --iftex --no-ifhtml --no-ifinfo -# doesn't work well enough (yet) to use that, so work around with sed. -comment_iftex_sed=$utildir/comment.sed -cat <$comment_iftex_sed -/^@tex/,/^@end tex/{ - s/^/@c texi2dvi/ -} -/^@iftex/,/^@end iftex/{ - s/^/@c texi2dvi/ - /^@c texi2dvi@macro/,/^@c texi2dvi@end macro/{ - s/^@c texi2dvi// - } -} -/^@html/,/^@end html/{ - s/^/@c (texi2dvi)/ -} -/^@ifhtml/,/^@end ifhtml/{ - s/^/@c (texi2dvi)/ -} -/^@ifnottex/,/^@end ifnottex/{ - s/^/@c (texi2dvi)/ -} -/^@ifinfo/,/^@end ifinfo/{ - /^@node/p - /^@menu/,/^@end menu/p - t - s/^/@c (texi2dvi)/ -} -s/^@ifnotinfo/@c texi2dvi@ifnotinfo/ -s/^@end ifnotinfo/@c texi2dvi@end ifnotinfo/ -EOF -# Uncommenting is simple: Remove any leading `@c texi2dvi'. -uncomment_iftex_sed=$utildir/uncomment.sed -cat <$uncomment_iftex_sed -s/^@c texi2dvi// -EOF - -# A shell script that computes the list of xref files. -# Takes the filename (without extension) of which we look for xref -# files as argument. The index files must be reported last. -get_xref_files=$utildir/get_xref.sh -cat <<\EOF >$get_xref_files -#! /bin/sh - -# Get list of xref files (indexes, tables and lists). -# Find all files having root filename with a two-letter extension, -# saves the ones that are really Texinfo-related files. .?o? catches -# many files: .toc, .log, LaTeX tables and lists, FiXme's .lox, maybe more. -for this_file in "$1".?o? "$1".aux "$1".?? "$1".idx; do - # If file is empty, skip it. - test -s "$this_file" || continue - # If the file is not suitable to be an index or xref file, don't - # process it. The file can't be if its first character is not a - # backslash or single quote. - first_character=`sed -n '1s/^\(.\).*$/\1/p;q' $this_file` - if test "x$first_character" = "x\\" \ - || test "x$first_character" = "x'"; then - xref_files="$xref_files ./$this_file" - fi -done -echo "$xref_files" -EOF -chmod 500 $get_xref_files - -# File descriptor usage: -# 0 standard input -# 1 standard output (--verbose messages) -# 2 standard error -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 5 tools output (turned off by --quiet) - -# Tools' output. If quiet, discard, else redirect to the message flow. -if test "$quiet" = t; then - exec 5>/dev/null -else - exec 5>&1 -fi - -# Enable tracing -test "$debug" = t && set -x - -# -# TeXify files. - -for command_line_filename in ${1+"$@"}; do - $verbose "Processing $command_line_filename ..." - - # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex), - # prepend `./' in order to avoid that the tools take it as an option. - echo "$command_line_filename" | $EGREP '^(/|[A-z]:/)' >/dev/null \ - || command_line_filename="./$command_line_filename" - - # See if the file exists. If it doesn't we're in trouble since, even - # though the user may be able to reenter a valid filename at the tex - # prompt (assuming they're attending the terminal), this script won't - # be able to find the right xref files and so forth. - if test ! -r "$command_line_filename"; then - echo "$0: Could not read $command_line_filename, skipping." >&2 - continue - fi - - # Get the name of the current directory. We want the full path - # because in clean mode we are in tmp, in which case a relative - # path has no meaning. - filename_dir=`echo $command_line_filename | sed 's!/[^/]*$!!;s!^$!.!'` - filename_dir=`cd "$filename_dir" >/dev/null && pwd` - - # Strip directory part but leave extension. - filename_ext=`basename "$command_line_filename"` - # Strip extension. - filename_noext=`echo "$filename_ext" | sed 's/\.[^.]*$//'` - ext=`echo "$filename_ext" | sed 's/^.*\.//'` - - # _src. Use same basename since we want to generate aux files with - # the same basename as the manual. If --expand, then output the - # macro-expanded file to here, else copy the original file. - tmpdir_src=$tmpdir/src - filename_src=$tmpdir_src/$filename_noext.$ext - - # _xtr. The file with the user's extra commands. - tmpdir_xtr=$tmpdir/xtr - filename_xtr=$tmpdir_xtr/$filename_noext.$ext - - # _bak. Copies of the previous xref files (another round is run if - # they differ from the new one). - tmpdir_bak=$tmpdir/bak - - # Make all those directories and give up if we can't succeed. - mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1 - - # Source file might include additional sources. - # We want `.:$orig_pwd' before anything else. (We'll add `.:' later - # after all other directories have been turned into absolute paths.) - # `.' goes first to ensure that any old .aux, .cps, - # etc. files in ${directory} don't get used in preference to fresher - # files in `.'. Include orig_pwd in case we are in clean mode, where - # we've cd'd to a temp directory. - common="$orig_pwd$path_sep$filename_dir$path_sep$txincludes" - TEXINPUTS="$common$TEXINPUTS_orig" - INDEXSTYLE="$common$INDEXSTYLE_orig" - - # Convert relative paths to absolute paths, so we can run in another - # directory (e.g., in --clean mode, or during the macro-support - # detection.) - # - # Empty path components are meaningful to tex. We rewrite them - # as `EMPTY' so they don't get lost when we split on $path_sep. - TEXINPUTS=`echo $TEXINPUTS |sed 's/^:/EMPTY:/;s/:$/:EMPTY/;s/::/:EMPTY:/g'` - INDEXSTYLE=`echo $INDEXSTYLE |sed 's/^:/EMPTY:/;s/:$/:EMPTY/;s/::/:EMPTY:/g'` - save_IFS=$IFS - IFS=$path_sep - set x $TEXINPUTS; shift - TEXINPUTS=. - for dir - do - case $dir in - EMPTY) - TEXINPUTS=$TEXINPUTS$path_sep - ;; - [\\/]* | ?:[\\/]*) # Absolute paths don't need to be expansed. - TEXINPUTS=$TEXINPUTS$path_sep$dir - ;; - *) - abs=`cd "$dir" && pwd` && TEXINPUTS=$TEXINPUTS$path_sep$abs - ;; - esac - done - set x $INDEXSTYLE; shift - INDEXSTYLE=. - for dir - do - case $dir in - EMPTY) - INDEXSTYLE=$INDEXSTYLE$path_sep - ;; - [\\/]* | ?:[\\/]*) # Absolute paths don't need to be expansed. - INDEXSTYLE=$INDEXSTYLE$path_sep$dir - ;; - *) - abs=`cd "$dir" && pwd` && INDEXSTYLE=$INDEXSTYLE$path_sep$abs - ;; - esac - done - IFS=$save_IFS - - # If the user explicitly specified the language, use that. - # Otherwise, if the first line is \input texinfo, assume it's texinfo. - # Otherwise, guess from the file extension. - if test -n "$set_language"; then - language=$set_language - elif sed 1q "$command_line_filename" | grep 'input texinfo' >/dev/null; then - language=texinfo - else - language= - fi - - # Get the type of the file (latex or texinfo) from the given language - # we just guessed, or from the file extension if not set yet. - case ${language:-$filename_ext} in - [lL]a[tT]e[xX] | *.ltx | *.tex) - # Assume a LaTeX file. LaTeX needs bibtex and uses latex for - # compilation. No makeinfo. - bibtex=${BIBTEX:-bibtex} - makeinfo= # no point in running makeinfo on latex source. - texindex=${MAKEINDEX:-makeindex} - if test $oformat = dvi; then - tex=${LATEX:-latex} - else - tex=${PDFLATEX:-pdflatex} - fi - ;; - - *) - # Assume a Texinfo file. Texinfo files need makeinfo, texindex and tex. - bibtex= - texindex=${TEXINDEX:-texindex} - if test $oformat = dvi; then - tex=${TEX:-tex} - else - tex=${PDFTEX:-pdftex} - fi - # Unless required by the user, makeinfo expansion is wanted only - # if texinfo.tex is too old. - if test "$expand" = t; then - makeinfo=${MAKEINFO:-makeinfo} - else - # Check if texinfo.tex performs macro expansion by looking for - # its version. The version is a date of the form YEAR-MO-DA. - # We don't need to use [0-9] to match the digits since anyway - # the comparison with $txiprereq, a number, will fail with non - # digits. - txiversion_tex=txiversion.tex - echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex - # Run in the tmpdir to avoid leaving files. - eval `cd $tmpdir >/dev/null && - $tex $txiversion_tex 2>/dev/null | - sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'` - $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..." - if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then - makeinfo= - else - makeinfo=${MAKEINFO:-makeinfo} - fi - # As long as we had to run TeX, offer the user this convenience - if test "$txiformat" = Texinfo; then - escape=@ - fi - fi - ;; - esac - - # Expand macro commands in the original source file using Makeinfo. - # Always use `end' footnote style, since the `separate' style - # generates different output (arguably this is a bug in -E). - # Discard main info output, the user asked to run TeX, not makeinfo. - if test -n "$makeinfo"; then - $verbose "Macro-expanding $command_line_filename to $filename_src ..." - sed -f $comment_iftex_sed "$command_line_filename" \ - | $makeinfo --footnote-style=end -I "$filename_dir" $miincludes \ - -o /dev/null --macro-expand=- \ - | sed -f $uncomment_iftex_sed >"$filename_src" - filename_input=$filename_src - fi - - # If makeinfo failed (or was not even run), use the original file as input. - if test $? -ne 0 \ - || test ! -r "$filename_src"; then - $verbose "Reverting to $command_line_filename ..." - filename_input=$filename_dir/$filename_ext - fi - - # Used most commonly for @finalout, @smallbook, etc. - if test -n "$textra"; then - $verbose "Inserting extra commands: $textra" - sed '/^@setfilename/a\ -'"$textra" "$filename_input" >$filename_xtr - filename_input=$filename_xtr - fi - - # If clean mode was specified, then move to the temporary directory. - if test "$clean" = t; then - $verbose "cd $tmpdir_src" - cd "$tmpdir_src" || exit 1 - fi - - while :; do # will break out of loop below - orig_xref_files=`$get_xref_files "$filename_noext"` - - # Save copies of originals for later comparison. - if test -n "$orig_xref_files"; then - $verbose "Backing up xref files: `echo $orig_xref_files | sed 's|\./||g'`" - cp $orig_xref_files $tmpdir_bak - fi - - # Run bibtex on current file. - # - If its input (AUX) exists. - # - If AUX contains both `\bibdata' and `\bibstyle'. - # - If some citations are missing (LOG contains `Citation'). - # or the LOG complains of a missing .bbl - # - # We run bibtex first, because I can see reasons for the indexes - # to change after bibtex is run, but I see no reason for the - # converse. - # - # Don't try to be too smart. Running bibtex only if the bbl file - # exists and is older than the LaTeX file is wrong, since the - # document might include files that have changed. Because there - # can be several AUX (if there are \include's), but a single LOG, - # looking for missing citations in LOG is easier, though we take - # the risk to match false messages. - if test -n "$bibtex" \ - && test -r "$filename_noext.aux" \ - && test -r "$filename_noext.log" \ - && (grep '^\\bibdata[{]' "$filename_noext.aux" \ - && grep '^\\bibstyle[{]' "$filename_noext.aux" \ - && (grep 'Warning:.*Citation.*undefined' "$filename_noext.log" \ - || grep 'No file .*\.bbl\.' "$filename_noext.log")) \ - >/dev/null 2>&1; \ - then - $verbose "Running $bibtex $filename_noext ..." - if $bibtex "$filename_noext" >&5; then :; else - echo "$0: $bibtex exited with bad status, quitting." >&2 - exit 1 - fi - fi - - # What we'll run texindex on -- exclude non-index files. - # Since we know index files are last, it is correct to remove everything - # before .aux and .?o?. But don't really do o - # -- don't match whitespace as . - # Otherwise, if orig_xref_files contains something like - # foo.xo foo.whatever - # the space after the o will get matched. - index_files=`echo "$orig_xref_files" \ - | sed "s!.*\.aux!!g; - s!./$filename_noext\.[^ ]o[^ ]!!g; - s/^[ ]*//;s/[ ]*$//"` - # Run texindex (or makeindex) on current index files. If they - # already exist, and after running TeX a first time the index - # files don't change, then there's no reason to run TeX again. - # But we won't know that if the index files are out of date or - # nonexistent. - if test -n "$texindex" && test -n "$index_files"; then - $verbose "Running $texindex $index_files ..." - if $texindex $index_files 2>&5 1>&2; then :; else - echo "$0: $texindex exited with bad status, quitting." >&2 - exit 1 - fi - fi - - # Finally, run TeX. - # Prevent $ESCAPE from being interpreted by the shell if it happens - # to be `/'. - $batch tex_args="\\${escape}nonstopmode\ \\${escape}input" - cmd="$tex $tex_args $filename_input" - $verbose "Running $cmd ..." - if $cmd >&5; then :; else - echo "$0: $tex exited with bad status, quitting." >&2 - echo "$0: see $filename_noext.log for errors." >&2 - test "$clean" = t \ - && cp "$filename_noext.log" "$orig_pwd" - exit 1 - fi - - - # Decide if looping again is needed. - finished=t - - # LaTeX (and the package changebar) report in the LOG file if it - # should be rerun. This is needed for files included from - # subdirs, since texi2dvi does not try to compare xref files in - # subdirs. Performing xref files test is still good since LaTeX - # does not report changes in xref files. - if grep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then - finished= - fi - - # Check if xref files changed. - new_xref_files=`$get_xref_files "$filename_noext"` - $verbose "Original xref files = `echo $orig_xref_files | sed 's|\./||g'`" - $verbose "New xref files = `echo $new_xref_files | sed 's|\./||g'`" - - # If old and new lists don't at least have the same file list, - # then one file or another has definitely changed. - test "x$orig_xref_files" != "x$new_xref_files" && finished= - - # File list is the same. We must compare each file until we find - # a difference. - if test -n "$finished"; then - for this_file in $new_xref_files; do - $verbose "Comparing xref file `echo $this_file | sed 's|\./||g'` ..." - # cmp -s returns nonzero exit status if files differ. - if cmp -s "$this_file" "$tmpdir_bak/$this_file"; then :; else - # We only need to keep comparing until we find one that - # differs, because we'll have to run texindex & tex again no - # matter how many more there might be. - finished= - $verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..." - test "$debug" = t && diff -c "$tmpdir_bak/$this_file" "$this_file" - break - fi - done - fi - - # If finished, exit the loop, else rerun the loop. - test -n "$finished" && break - done - - # If we were in clean mode, compilation was in a tmp directory. - # Copy the DVI (or PDF) file into the directory where the compilation - # has been done. (The temp dir is about to get removed anyway.) - # We also return to the original directory so that - # - the next file is processed in correct conditions - # - the temporary file can be removed - if test -n "$clean"; then - if test -n "$oname"; then - dest=$oname - else - dest=$orig_pwd - fi - $verbose "Copying $oformat file from `pwd` to $dest" - cp -p "./$filename_noext.$oformat" "$dest" - cd / # in case $orig_pwd is on a different drive (for DOS) - cd $orig_pwd || exit 1 - fi - - # Remove temporary files. - if test "x$debug" = "x"; then - $verbose "Removing $tmpdir_src $tmpdir_xtr $tmpdir_bak ..." - cd / - rm -rf $tmpdir_src $tmpdir_xtr $tmpdir_bak - fi -done - -$verbose "$0 done." -exit 0 # exit successfully, not however we ended the loop. diff --git a/support/texi2html-1.64 b/support/texi2html-1.64 deleted file mode 100755 index bdb3bee33..000000000 --- a/support/texi2html-1.64 +++ /dev/null @@ -1,5429 +0,0 @@ -#! /usr/bin/perl -'di '; -'ig 00 '; -#+############################################################################## -# -# texi2html: Program to transform Texinfo documents to HTML -# -# Copyright (C) 1999, 2000 Free Software Foundation, Inc. -# -# This program 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 of the License, or -# (at your option) any later version. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -#-############################################################################## - -# This requires perl version 5 or higher -require 5.0; - -#++############################################################################## -# -# NOTE FOR DEBUGGING THIS SCRIPT: -# You can run 'perl texi2html.pl' directly, provided you have -# the environment variable T2H_HOME set to the directory containing -# the texi2html.init file -# -#--############################################################################## - -# CVS version: -# $Id: texi2html.pl,v 1.55 2000/07/27 14:39:41 obachman Exp $ - -# Homepage: -$T2H_HOMEPAGE = < (original author) - Karl Berry - Olaf Bachmann - and many others. -Maintained by: Olaf Bachmann -Send bugs and suggestions to -EOT - -# Version: set in configure.in -$THISVERSION = '1.64'; -$THISPROG = "texi2html $THISVERSION"; # program name and version - -# The man page for this program is included at the end of this file and can be -# viewed using the command 'nroff -man texi2html'. - -# Identity: - -$T2H_TODAY = &pretty_date; # like "20 September 1993" -# the eval prevents this from breaking on system which do not have -# a proper getpwuid implemented -eval { ($T2H_USER = (getpwuid ($<))[6]) =~ s/,.*//;}; # Who am i - -#+++############################################################################ -# # -# Initialization # -# Pasted content of File $(srcdir)/texi2html.init: Default initializations # -# # -#---############################################################################ - -# leave this within comments, and keep the require statement -# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init -# exists. - -# -# -*-perl-*- -###################################################################### -# File: texi2html.init -# -# Sets default values for command-line arguments and for various customizable -# procedures -# -# A copy of this file is pasted into the beginning of texi2html by -# 'make texi2html' -# -# Copy this file and make changes to it, if you like. -# Afterwards, either, load it with command-line option -init_file -# -# $Id: texi2html.init,v 1.34 2000/07/27 14:09:02 obachman Exp $ - -###################################################################### -# stuff which can also be set by command-line options -# -# -# Note: values set here, overwrite values set by the command-line -# options before -init_file and might still be overwritten by -# command-line arguments following the -init_file option -# - -# T2H_OPTIONS is a hash whose keys are the (long) names of valid -# command-line options and whose values are a hash with the following keys: -# type ==> one of !|=i|:i|=s|:s (see GetOpt::Long for more info) -# linkage ==> ref to scalar, array, or subroutine (see GetOpt::Long for more info) -# verbose ==> short description of option (displayed by -h) -# noHelp ==> if 1 -> for "not so important options": only print description on -h 1 -# 2 -> for obsolete options: only print description on -h 2 - -$T2H_DEBUG = 0; -$T2H_OPTIONS -> {debug} = -{ - type => '=i', - linkage => \$main::T2H_DEBUG, - verbose => 'output HTML with debuging information', -}; - -$T2H_DOCTYPE = ''; -$T2H_OPTIONS -> {doctype} = -{ - type => '=s', - linkage => \$main::T2H_DOCTYPE, - verbose => 'document type which is output in header of HTML files', - noHelp => 1 -}; - -$T2H_CHECK = 0; -$T2H_OPTIONS -> {check} = -{ - type => '!', - linkage => \$main::T2H_CHECK, - verbose => 'if set, only check files and output all things that may be Texinfo commands', - noHelp => 1 -}; - -# -expand -# if set to "tex" (or, "info") expand @iftex and @tex (or, @ifinfo) sections -# else, neither expand @iftex, @tex, nor @ifinfo sections -$T2H_EXPAND = "info"; -$T2H_OPTIONS -> {expand} = -{ - type => '=s', - linkage => \$T2H_EXPAND, - verbose => 'Expand info|tex|none section of texinfo source', -}; - -# - glossary -#if set, uses section named `Footnotes' for glossary -$T2H_USE_GLOSSARY = 0; -T2H_OPTIONS -> {glossary} = -{ - type => '!', - linkage => \$T2H_USE_GLOSSARY, - verbose => "if set, uses section named `Footnotes' for glossary", - noHelp => 1, -}; - - -# -invisible -# $T2H_INVISIBLE_MARK is the text used to create invisible destination -# anchors for index links (you can for instance use the invisible.xbm -# file shipped with this program). This is a workaround for a known -# bug of many WWW browsers, including netscape. -# For me, it works fine without it -- on the contrary: if there, it -# inserts space between headers and start of text (obachman 3/99) -$T2H_INVISIBLE_MARK = ''; -# $T2H_INVISIBLE_MARK = ' '; -$T2H_OPTIONS -> {invisible} = -{ - type => '=s', - linkage => \$T2H_INVISIBLE_MARK, - verbose => 'use text in invisble anchot', - noHelp => 1, -}; - -# -iso -# if set, ISO8879 characters are used for special symbols (like copyright, etc) -$T2H_USE_ISO = 0; -$T2H_OPTIONS -> {iso} = -{ - type => 'iso', - linkage => \$T2H_USE_ISO, - verbose => 'if set, ISO8879 characters are used for special symbols (like copyright, etc)', - noHelp => 1, -}; - -# -I -# list directories where @include files are searched for (besides the -# directory of the doc file) additional '-I' args add to this list -@T2H_INCLUDE_DIRS = ("."); -$T2H_OPTIONS -> {I} = -{ - type => '=s', - linkage => \@T2H_INCLUDE_DIRS, - verbose => 'append $s to the @include search path', -}; - -# -top_file -# uses file of this name for top-level file -# extension is manipulated appropriately, if necessary. -# If empty, .html is used -# Typically, you would set this to "index.html". -$T2H_TOP_FILE = ''; -$T2H_OPTIONS -> {top_file} = -{ - type => '=s', - linkage => \$T2H_TOP_FILE, - verbose => 'use $s as top file, instead of .html', -}; - - -# -toc_file -# uses file of this name for table of contents file -# extension is manipulated appropriately, if necessary. -# If empty, _toc.html is used -$T2H_TOC_FILE = ''; -$T2H_OPTIONS -> {toc_file} = -{ - type => '=s', - linkage => \$T2H_TOC_FILE, - verbose => 'use $s as ToC file, instead of _toc.html', -}; - -# -frames -# if set, output two additional files which use HTML 4.0 "frames". -$T2H_FRAMES = 0; -$T2H_OPTIONS -> {frames} = -{ - type => '!', - linkage => \$T2H_FRAMES, - verbose => 'output files which use HTML 4.0 frames (experimental)', - noHelp => 1, -}; - - -# -menu | -nomenu -# if set, show the Texinfo menus -$T2H_SHOW_MENU = 1; -$T2H_OPTIONS -> {menu} = -{ - type => '!', - linkage => \$T2H_SHOW_MENU, - verbose => 'ouput Texinfo menus', -}; - -# -number | -nonumber -# if set, number sections and show section names and numbers in references -# and menus -$T2H_NUMBER_SECTIONS = 1; -$T2H_OPTIONS -> {number} = -{ - type => '!', - linkage => \$T2H_NUMBER_SECTIONS, - verbose => 'use numbered sections' -}; - -# if set, and T2H_NUMBER_SECTIONS is set, then use node names in menu -# entries, instead of section names -$T2H_NODE_NAME_IN_MENU = 0; - -# if set and menu entry equals menu descr, then do not print menu descr. -# Likewise, if node name equals entry name, do not print entry name. -$T2H_AVOID_MENU_REDUNDANCY = 1; - -# -split section|chapter|none -# if set to 'section' (resp. 'chapter') create one html file per (sub)section -# (resp. chapter) and separate pages for Top, ToC, Overview, Index, -# Glossary, About. -# otherwise, create monolithic html file which contains whole document -#$T2H_SPLIT = 'section'; -$T2H_SPLIT = ''; -$T2H_OPTIONS -> {split} = -{ - type => '=s', - linkage => \$T2H_SPLIT, - verbose => 'split document on section|chapter else no splitting', -}; - -# -section_navigation|-no-section_navigation -# if set, then navigation panels are printed at the beginning of each section -# and, possibly at the end (depending on whether or not there were more than -# $T2H_WORDS_IN_PAGE words on page -# This is most useful if you do not want to have section navigation -# on -split chapter -$T2H_SECTION_NAVIGATION = 1; -$T2H_OPTIONS -> {sec_nav} = -{ - type => '!', - linkage => \$T2H_SECTION_NAVIGATION, - verbose => 'output navigation panels for each section', -}; - -# -subdir -# if set put result files in this directory -# if not set result files are put into current directory -#$T2H_SUBDIR = 'html'; -$T2H_SUBDIR = ''; -$T2H_OPTIONS -> {subdir} = -{ - type => '=s', - linkage => \$T2H_SUBDIR, - verbose => 'put HTML files in directory $s, instead of $cwd', -}; - -# -short_extn -# If this is set all HTML file will have extension ".htm" instead of -# ".html". This is helpful when shipping the document to PC systems. -$T2H_SHORTEXTN = 0; -$T2H_OPTIONS -> {short_ext} = -{ - type => '!', - linkage => \$T2H_SHORTEXTN, - verbose => 'use "htm" extension for output HTML files', -}; - - -# -prefix -# Set the output file prefix, prepended to all .html, .gif and .pl files. -# By default, this is the basename of the document -$T2H_PREFIX = ''; -$T2H_OPTIONS -> {prefix} = -{ - type => '=s', - linkage => \$T2H_PREFIX, - verbose => 'use as prefix for output files, instead of ', -}; - -# -o filename -# If set, generate monolithic document output html into $filename -$T2H_OUT = ''; -$T2H_OPTIONS -> {out_file} = -{ - type => '=s', - linkage => sub {$main::T2H_OUT = @_[1]; $T2H_SPLIT = '';}, - verbose => 'if set, all HTML output goes into file $s', -}; - -# -short_ref -#if set cross-references are given without section numbers -$T2H_SHORT_REF = ''; -$T2H_OPTIONS -> {short_ref} = -{ - type => '!', - linkage => \$T2H_SHORT_REF, - verbose => 'if set, references are without section numbers', -}; - -# -idx_sum -# if value is set, then for each @prinindex $what -# $docu_name_$what.idx is created which contains lines of the form -# $key\t$ref sorted alphabetically (case matters) -$T2H_IDX_SUMMARY = 0; -$T2H_OPTIONS -> {idx_sum} = -{ - type => '!', - linkage => \$T2H_IDX_SUMMARY, - verbose => 'if set, also output index summary', - noHelp => 1, -}; - -# -verbose -# if set, chatter about what we are doing -$T2H_VERBOSE = ''; -$T2H_OPTIONS -> {Verbose} = -{ - type => '!', - linkage => \$T2H_VERBOSE, - verbose => 'print progress info to stdout', -}; - -# -lang -# For page titles use $T2H_WORDS->{$T2H_LANG}->{...} as title. -# To add a new language, supply list of titles (see $T2H_WORDS below). -# and use ISO 639 language codes (see e.g. perl module Locale-Codes-1.02 -# for definitions) -# Default's to 'en' if not set or no @documentlanguage is specified -$T2H_LANG = ''; -$T2H_OPTIONS -> {lang} = -{ - type => '=s', - linkage => sub {SetDocumentLanguage($_[1])}, - verbose => 'use $s as document language (ISO 639 encoding)', -}; - -# -l2h -# if set, uses latex2html for generation of math content -$T2H_L2H = ''; -$T2H_OPTIONS -> {l2h} = -{ - type => '!', - linkage => \$T2H_L2H, - verbose => 'if set, uses latex2html for @math and @tex', -}; - -###################### -# The following options are only relevant if $T2H_L2H is set -# -# -l2h_l2h -# name/location of latex2html progam -$T2H_L2H_L2H = "latex2html"; -$T2H_OPTIONS -> {l2h_l2h} = -{ - type => '=s', - linkage => \$T2H_L2H_L2H, - verbose => 'program to use for latex2html translation', - noHelp => 1, -}; - -# -l2h_skip -# if set, skips actual call to latex2html tries to reuse previously generated -# content, instead -$T2H_L2H_SKIP = ''; -$T2H_OPTIONS -> {l2h_skip} = -{ - type => '!', - linkage => \$T2H_L2H_SKIP, - verbose => 'if set, tries to reuse previously latex2html output', - noHelp => 1, -}; - -# -l2h_tmp -# if set, l2h uses this directory for temporarary files. The path -# leading to this directory may not contain a dot (i.e., a "."), -# otherwise, l2h will fail -$T2H_L2H_TMP = ''; -$T2H_OPTIONS -> {l2h_tmp} = -{ - type => '=s', - linkage => \$T2H_L2H_TMP, - verbose => 'if set, uses $s as temporary latex2html directory', - noHelp => 1, -}; - -# if set, cleans intermediate files (they all have the prefix $doc_l2h_) -# of l2h -$T2H_L2H_CLEAN = 1; -$T2H_OPTIONS -> {l2h_clean} = -{ - type => '!', - linkage => \$T2H_L2H_CLEAN, - verbose => 'if set, do not keep intermediate latex2html files for later reuse', - noHelp => 1, -}; - -$T2H_OPTIONS -> {D} = -{ - type => '=s', - linkage => sub {$main::value{@_[1]} = 1;}, - verbose => 'equivalent to Texinfo "@set $s 1"', - noHelp => 1, -}; - -$T2H_OPTIONS -> {init_file} = -{ - type => '=s', - linkage => \&LoadInitFile, - verbose => 'load init file $s' -}; - - -############################################################################## -# -# The following can only be set in the init file -# -############################################################################## - -# if set, center @image by default -# otherwise, do not center by default -$T2H_CENTER_IMAGE = 1; - -# used as identation for block enclosing command @example, etc -# If not empty, must be enclosed in -$T2H_EXAMPLE_INDENT_CELL = ' '; -# same as above, only for @small -$T2H_SMALL_EXAMPLE_INDENT_CELL = ' '; -# font size for @small -$T2H_SMALL_FONT_SIZE = '-1'; - -# if non-empty, and no @..heading appeared in Top node, then -# use this as header for top node/section, otherwise use value of -# @settitle or @shorttitle (in that order) -$T2H_TOP_HEADING = ''; - -# if set, use this chapter for 'Index' button, else -# use first chapter whose name matches 'index' (case insensitive) -$T2H_INDEX_CHAPTER = ''; - -# if set and $T2H_SPLIT is set, then split index pages at the next letter -# after they have more than that many entries -$T2H_SPLIT_INDEX = 100; - -# if set (e.g., to index.html) replace hrefs to this file -# (i.e., to index.html) by ./ -$T2H_HREF_DIR_INSTEAD_FILE = ''; - -######################################################################## -# Language dependencies: -# To add a new language extend T2H_WORDS hash and create $T2H_<...>_WORDS hash -# To redefine one word, simply do: -# $T2H_WORDS->{}->{} = 'whatever' in your personal init file. -# -$T2H_WORDS_EN = -{ - # titles of pages - 'ToC_Title' => 'Table of Contents', - 'Overview_Title' => 'Short Table of Contents', - 'Index_Title' => 'Index', - 'About_Title' => 'About this document', - 'Footnotes_Title' => 'Footnotes', - 'See' => 'See', - 'see' => 'see', - 'section' => 'section', -# If necessary, we could extend this as follows: -# # text for buttons -# 'Top_Button' => 'Top', -# 'ToC_Button' => 'Contents', -# 'Overview_Button' => 'Overview', -# 'Index_button' => 'Index', -# 'Back_Button' => 'Back', -# 'FastBack_Button' => 'FastBack', -# 'Prev_Button' => 'Prev', -# 'Up_Button' => 'Up', -# 'Next_Button' => 'Next', -# 'Forward_Button' =>'Forward', -# 'FastWorward_Button' => 'FastForward', -# 'First_Button' => 'First', -# 'Last_Button' => 'Last', -# 'About_Button' => 'About' -}; - -$T2H_WORD_DE = -{ - 'ToC_Title' => 'Inhaltsverzeichniss', - 'Overview_Title' => 'Kurzes Inhaltsverzeichniss', - 'Index_Title' => 'Index', - 'About_Title' => 'Über dieses Dokument', - 'Footnotes_Title' => 'Fußnoten', - 'See' => 'Siehe', - 'see' => 'siehe', - 'section' => 'Abschnitt', -}; - -$T2H_WORD_NL = -{ - 'ToC_Title' => 'Inhoudsopgave', - 'Overview_Title' => 'Korte inhoudsopgave', - 'Index_Title' => 'Index', #Not sure ;-) - 'About_Title' => 'No translation available!', #No translation available! - 'Footnotes_Title' => 'No translation available!', #No translation available! - 'See' => 'Zie', - 'see' => 'zie', - 'section' => 'sectie', -}; - -$T2H_WORD_ES = -{ - 'ToC_Title' => 'índice General', - 'Overview_Title' => 'Resumen del Contenido', - 'Index_Title' => 'Index', #Not sure ;-) - 'About_Title' => 'No translation available!', #No translation available! - 'Footnotes_Title' => 'Fußnoten', - 'See' => 'Véase', - 'see' => 'véase', - 'section' => 'sección', -}; - -$T2H_WORD_NO = -{ - 'ToC_Title' => 'Innholdsfortegnelse', - 'Overview_Title' => 'Kort innholdsfortegnelse', - 'Index_Title' => 'Indeks', #Not sure ;-) - 'About_Title' => 'No translation available!', #No translation available! - 'Footnotes_Title' => 'No translation available!', - 'See' => 'Se', - 'see' => 'se', - 'section' => 'avsnitt', -}; - -$T2H_WORD_PT = -{ - 'ToC_Title' => 'Sumário', - 'Overview_Title' => 'Breve Sumário', - 'Index_Title' => 'Índice', #Not sure ;-) - 'About_Title' => 'No translation available!', #No translation available! - 'Footnotes_Title' => 'No translation available!', - 'See' => 'Veja', - 'see' => 'veja', - 'section' => 'Seção', -}; - -$T2H_WORDS = -{ - 'en' => $T2H_WORDS_EN, - 'de' => $T2H_WORDS_DE, - 'nl' => $T2H_WORDS_NL, - 'es' => $T2H_WORDS_ES, - 'no' => $T2H_WORDS_NO, - 'pt' => $T2H_WORDS_PT -}; - -@MONTH_NAMES_EN = -( - 'January', 'February', 'March', 'April', 'May', - 'June', 'July', 'August', 'September', 'October', - 'November', 'December' -); - -@MONTH_NAMES_DE = -( - 'Januar', 'Februar', 'März', 'April', 'Mai', - 'Juni', 'Juli', 'August', 'September', 'Oktober', - 'November', 'Dezember' -); - -@MONTH_NAMES_NL = -( - 'Januari', 'Februari', 'Maart', 'April', 'Mei', - 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', - 'November', 'December' -); - -@MONTH_NAMES_ES = -( - 'enero', 'febrero', 'marzo', 'abril', 'mayo', - 'junio', 'julio', 'agosto', 'septiembre', 'octubre', - 'noviembre', 'diciembre' -); - -@MONTH_NAMES_NO = -( - - 'januar', 'februar', 'mars', 'april', 'mai', - 'juni', 'juli', 'august', 'september', 'oktober', - 'november', 'desember' -); - -@MONTH_NAMES_PT = -( - 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', - 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', - 'Novembro', 'Dezembro' -); - - -$MONTH_NAMES = -{ - 'en' => \@MONTH_NAMES_EN, - 'de' => \@MONTH_NAMES_DE, - 'es' => \@MONTH_NAMES_ES, - 'nl' => \@MONTH_NAMES_NL, - 'no' => \@MONTH_NAMES_NO, - 'pt' => \@MONTH_NAMES_PT -}; -######################################################################## -# Control of Page layout: -# You can make changes of the Page layout at two levels: -# 1.) For small changes, it is often enough to change the value of -# some global string/hash/array variables -# 2.) For larger changes, reimplement one of the T2H_DEFAULT_* routines, -# give them another name, and assign them to the respective -# $T2H_ variable. - -# As a general interface, the hashes T2H_HREF, T2H_NAME, T2H_NODE hold -# href, html-name, node-name of -# This -- current section (resp. html page) -# Top -- top page ($T2H_TOP_FILE) -# Contents -- Table of contents -# Overview -- Short table of contents -# Index -- Index page -# About -- page which explain "navigation buttons" -# First -- first node -# Last -- last node -# -# Whether or not the following hash values are set, depends on the context -# (all values are w.r.t. 'This' section) -# Next -- next node of texinfo -# Prev -- previous node of texinfo -# Up -- up node of texinfo -# Forward -- next node in reading order -# Back -- previous node in reading order -# FastForward -- if leave node, up and next, else next node -# FastBackward-- if leave node, up and prev, else prev node -# -# Furthermore, the following global variabels are set: -# $T2H_THISDOC{title} -- title as set by @setttile -# $T2H_THISDOC{fulltitle} -- full title as set by @title... -# $T2H_THISDOC{subtitle} -- subtitle as set by @subtitle -# $T2H_THISDOC{author} -- author as set by @author -# -# and pointer to arrays of lines which need to be printed by t2h_print_lines -# $T2H_OVERVIEW -- lines of short table of contents -# $T2H_TOC -- lines of table of contents -# $T2H_TOP -- lines of Top texinfo node -# $T2H_THIS_SECTION -- lines of 'This' section - -# -# There are the following subs which control the layout: -# -$T2H_print_section = \&T2H_DEFAULT_print_section; -$T2H_print_Top_header = \&T2H_DEFAULT_print_Top_header; -$T2H_print_Top_footer = \&T2H_DEFAULT_print_Top_footer; -$T2H_print_Top = \&T2H_DEFAULT_print_Top; -$T2H_print_Toc = \&T2H_DEFAULT_print_Toc; -$T2H_print_Overview = \&T2H_DEFAULT_print_Overview; -$T2H_print_Footnotes = \&T2H_DEFAULT_print_Footnotes; -$T2H_print_About = \&T2H_DEFAULT_print_About; -$T2H_print_misc_header = \&T2H_DEFAULT_print_misc_header; -$T2H_print_misc_footer = \&T2H_DEFAULT_print_misc_footer; -$T2H_print_misc = \&T2H_DEFAULT_print_misc; -$T2H_print_chapter_header = \&T2H_DEFAULT_print_chapter_header; -$T2H_print_chapter_footer = \&T2H_DEFAULT_print_chapter_footer; -$T2H_print_page_head = \&T2H_DEFAULT_print_page_head; -$T2H_print_page_foot = \&T2H_DEFAULT_print_page_foot; -$T2H_print_head_navigation = \&T2H_DEFAULT_print_head_navigation; -$T2H_print_foot_navigation = \&T2H_DEFAULT_print_foot_navigation; -$T2H_button_icon_img = \&T2H_DEFAULT_button_icon_img; -$T2H_print_navigation = \&T2H_DEFAULT_print_navigation; -$T2H_about_body = \&T2H_DEFAULT_about_body; -$T2H_print_frame = \&T2H_DEFAULT_print_frame; -$T2H_print_toc_frame = \&T2H_DEFAULT_print_toc_frame; - -######################################################################## -# Layout for html for every sections -# -sub T2H_DEFAULT_print_section -{ - my $fh = shift; - local $T2H_BUTTONS = \@T2H_SECTION_BUTTONS; - &$T2H_print_head_navigation($fh) if $T2H_SECTION_NAVIGATION; - my $nw = t2h_print_lines($fh); - if ($T2H_SPLIT eq 'section' && $T2H_SECTION_NAVIGATION) - { - &$T2H_print_foot_navigation($fh, $nw); - } - else - { - print $fh '
' . "\n"; - } -} - -################################################################### -# Layout of top-page I recommend that you use @ifnothtml, @ifhtml, -# @html within the Top texinfo node to specify content of top-level -# page. -# -# If you enclose everything in @ifnothtml, then title, subtitle, -# author and overview is printed -# T2H_HREF of Next, Prev, Up, Forward, Back are not defined -# if $T2H_SPLIT then Top page is in its own html file -sub T2H_DEFAULT_print_Top_header -{ - &$T2H_print_page_head(@_) if $T2H_SPLIT; - t2h_print_label(@_); # this needs to be called, otherwise no label set - &$T2H_print_head_navigation(@_); -} -sub T2H_DEFAULT_print_Top_footer -{ - &$T2H_print_foot_navigation(@_); - &$T2H_print_page_foot(@_) if $T2H_SPLIT; -} -sub T2H_DEFAULT_print_Top -{ - my $fh = shift; - - # for redefining navigation buttons use: - # local $T2H_BUTTONS = [...]; - # as it is, 'Top', 'Contents', 'Index', 'About' are printed - local $T2H_BUTTONS = \@T2H_MISC_BUTTONS; - &$T2H_print_Top_header($fh); - if ($T2H_THIS_SECTION) - { - # if top-level node has content, then print it with extra header - print $fh "

$T2H_NAME{Top}

" - unless ($T2H_HAS_TOP_HEADING); - t2h_print_lines($fh, $T2H_THIS_SECTION) - } - else - { - # top-level node is fully enclosed in @ifnothtml - # print fulltitle, subtitle, author, Overview - print $fh - "
\n

" . - join("

\n

", split(/\n/, $T2H_THISDOC{fulltitle})) . - "

\n"; - print $fh "

$T2H_THISDOC{subtitle}

\n" if $T2H_THISDOC{subtitle}; - print $fh "$T2H_THISDOC{author}\n" if $T2H_THISDOC{author}; - print $fh < -
-

-

Overview:

-
-EOT - t2h_print_lines($fh, $T2H_OVERVIEW); - print $fh "
\n"; - } - &$T2H_print_Top_footer($fh); -} - -################################################################### -# Layout of Toc, Overview, and Footnotes pages -# By default, we use "normal" layout -# T2H_HREF of Next, Prev, Up, Forward, Back, etc are not defined -# use: local $T2H_BUTTONS = [...] to redefine navigation buttons -sub T2H_DEFAULT_print_Toc -{ - return &$T2H_print_misc(@_); -} -sub T2H_DEFAULT_print_Overview -{ - return &$T2H_print_misc(@_); -} -sub T2H_DEFAULT_print_Footnotes -{ - return &$T2H_print_misc(@_); -} -sub T2H_DEFAULT_print_About -{ - return &$T2H_print_misc(@_); -} - -sub T2H_DEFAULT_print_misc_header -{ - &$T2H_print_page_head(@_) if $T2H_SPLIT; - # this needs to be called, otherwise, no labels are set - t2h_print_label(@_); - &$T2H_print_head_navigation(@_); -} -sub T2H_DEFAULT_print_misc_footer -{ - &$T2H_print_foot_navigation(@_); - &$T2H_print_page_foot(@_) if $T2H_SPLIT; -} -sub T2H_DEFAULT_print_misc -{ - my $fh = shift; - local $T2H_BUTTONS = \@T2H_MISC_BUTTONS; - &$T2H_print_misc_header($fh); - print $fh "

$T2H_NAME{This}

\n"; - t2h_print_lines($fh); - &$T2H_print_misc_footer($fh); -} - -################################################################### -# chapter_header and chapter_footer are only called if -# T2H_SPLIT eq 'chapter' -# chapter_header: after print_page_header, before print_section -# chapter_footer: after print_section of last section, before print_page_footer -# -# If you want to get rid of navigation stuff after each section, -# redefine print_section such that it does not call print_navigation, -# and put print_navigation into print_chapter_header -@T2H_CHAPTER_BUTTONS = - ( - 'FastBack', 'FastForward', ' ', - ' ', ' ', ' ', ' ', - 'Top', 'Contents', 'Index', 'About', - ); - -sub T2H_DEFAULT_print_chapter_header -{ - # nothing to do there, by default - if (! $T2H_SECTION_NAVIGATION) - { - my $fh = shift; - local $T2H_BUTTONS = \@T2H_CHAPTER_BUTTONS; - &$T2H_print_navigation($fh); - print $fh "\n
\n"; - } -} - -sub T2H_DEFAULT_print_chapter_footer -{ - local $T2H_BUTTONS = \@T2H_CHAPTER_BUTTONS; - &$T2H_print_navigation(@_); -} -################################################################### -$T2H_TODAY = &pretty_date; # like "20 September 1993" - -sub pretty_date { - local($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst); - - ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); - $year += ($year < 70) ? 2000 : 1900; - # obachman: Let's do it as the Americans do - return($MONTH_NAMES->{$T2H_LANG}[$mon] . ", " . $mday . " " . $year); -} - - -################################################################### -# Layout of standard header and footer -# - -# Set the default body text, inserted between -###$T2H_BODYTEXT = 'LANG="EN" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"'; -$T2H_BODYTEXT = 'LANG="' . $T2H_LANG . '" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"'; -# text inserted after -$T2H_AFTER_BODY_OPEN = ''; -#text inserted before -$T2H_PRE_BODY_CLOSE = ''; -# this is used in footer -$T2H_ADDRESS = "by $T2H_USER " if $T2H_USER; -$T2H_ADDRESS .= "on $T2H_TODAY"; -# this is added inside after and some META NAME stuff -# can be used for <style> <script>, <meta> tags -$T2H_EXTRA_HEAD = ''; - -sub T2H_DEFAULT_print_page_head -{ - my $fh = shift; - my $longtitle = "$T2H_THISDOC{title}: $T2H_NAME{This}"; - print $fh <<EOT; -<HTML> -$T2H_DOCTYPE -<!-- Created on $T2H_TODAY by $THISPROG --> -<!-- -$T2H_AUTHORS ---> -<HEAD> -<TITLE>$longtitle - - - - - - -$T2H_EXTRA_HEAD - - - -$T2H_AFTER_BODY_OPEN -EOT -} - -sub T2H_DEFAULT_print_page_foot -{ - my $fh = shift; - print $fh < - -This document was generated -$T2H_ADDRESS -using texi2html -$T2H_PRE_BODY_CLOSE - - -EOT -} - -################################################################### -# Layout of navigation panel - -# if this is set, then a vertical navigation panel is used -$T2H_VERTICAL_HEAD_NAVIGATION = 0; -sub T2H_DEFAULT_print_head_navigation -{ - my $fh = shift; - if ($T2H_VERTICAL_HEAD_NAVIGATION) - { - print $fh < - - -EOT - } - &$T2H_print_navigation($fh, $T2H_VERTICAL_HEAD_NAVIGATION); - if ($T2H_VERTICAL_HEAD_NAVIGATION) - { - print $fh < - -EOT - } - elsif ($T2H_SPLIT eq 'section') - { - print $fh "
\n"; - } -} - -# Specifies the minimum page length required before a navigation panel -# is placed at the bottom of a page (the default is that of latex2html) -# T2H_THIS_WORDS_IN_PAGE holds number of words of current page -$T2H_WORDS_IN_PAGE = 300; -sub T2H_DEFAULT_print_foot_navigation -{ - my $fh = shift; - my $nwords = shift; - if ($T2H_VERTICAL_HEAD_NAVIGATION) - { - print $fh < - - -EOT - } - print $fh "
\n"; - &$T2H_print_navigation($fh) if ($nwords >= $T2H_WORDS_IN_PAGE) -} - -###################################################################### -# navigation panel -# -# specify in this array which "buttons" should appear in which order -# in the navigation panel for sections; use ' ' for empty buttons (space) -@T2H_SECTION_BUTTONS = - ( - 'Back', 'Forward', ' ', 'FastBack', 'Up', 'FastForward', - ' ', ' ', ' ', ' ', - 'Top', 'Contents', 'Index', 'About', - ); - -# buttons for misc stuff -@T2H_MISC_BUTTONS = ('Top', 'Contents', 'Index', 'About'); - -# insert here name of icon images for buttons -# Icons are used, if $T2H_ICONS and resp. value are set -%T2H_ACTIVE_ICONS = - ( - 'Top', '', - 'Contents', '', - 'Overview', '', - 'Index', '', - 'Back', '', - 'FastBack', '', - 'Prev', '', - 'Up', '', - 'Next', '', - 'Forward', '', - 'FastForward', '', - 'About' , '', - 'First', '', - 'Last', '', - ' ', '' - ); - -# insert here name of icon images for these, if button is inactive -%T2H_PASSIVE_ICONS = - ( - 'Top', '', - 'Contents', '', - 'Overview', '', - 'Index', '', - 'Back', '', - 'FastBack', '', - 'Prev', '', - 'Up', '', - 'Next', '', - 'Forward', '', - 'FastForward', '', - 'About', '', - 'First', '', - 'Last', '', - ); - -# how to create IMG tag -sub T2H_DEFAULT_button_icon_img -{ - my $button = shift; - my $icon = shift; - my $name = shift; - return qq{$button: $name}; -} - -# Names of text as alternative for icons -%T2H_NAVIGATION_TEXT = - ( - 'Top', 'Top', - 'Contents', 'Contents', - 'Overview', 'Overview', - 'Index', 'Index', - ' ', '   ', - 'Back', ' < ', - 'FastBack', ' << ', - 'Prev', 'Prev', - 'Up', ' Up ', - 'Next', 'Next', - 'Forward', ' > ', - 'FastForward', ' >> ', - 'About', ' ? ', - 'First', ' |< ', - 'Last', ' >| ' - ); - -sub T2H_DEFAULT_print_navigation -{ - my $fh = shift; - my $vertical = shift; - my $spacing = 1; - print $fh "\n"; - - print $fh "" unless $vertical; - for $button (@$T2H_BUTTONS) - { - print $fh qq{\n} if $vertical; - print $fh qq{\n"; - print $fh "\n" if $vertical; - } - print $fh "" unless $vertical; - print $fh "
}; - - if (ref($button) eq 'CODE') - { - &$button($fh, $vertical); - } - elsif ($button eq ' ') - { # handle space button - print $fh - $T2H_ICONS && $T2H_ACTIVE_ICONS{' '} ? - &$T2H_button_icon_img($button, $T2H_ACTIVE_ICONS{' '}) : - $T2H_NAVIGATION_TEXT{' '}; - next; - } - elsif ($T2H_HREF{$button}) - { # button is active - print $fh - $T2H_ICONS && $T2H_ACTIVE_ICONS{$button} ? # use icon ? - t2h_anchor('', $T2H_HREF{$button}, # yes - &$T2H_button_icon_img($button, - $T2H_ACTIVE_ICONS{$button}, - $T2H_NAME{$button})) - : # use text - "[" . - t2h_anchor('', $T2H_HREF{$button}, $T2H_NAVIGATION_TEXT{$button}) . - "]"; - } - else - { # button is passive - print $fh - $T2H_ICONS && $T2H_PASSIVE_ICONS{$button} ? - &$T2H_button_icon_img($button, - $T2H_PASSIVE_ICONS{$button}, - $T2H_NAME{$button}) : - - "[" . $T2H_NAVIGATION_TEXT{$button} . "]"; - } - print $fh "
\n"; -} - -###################################################################### -# Frames: this is from "Richard Y. Kim" -# Should be improved to be more conforming to other _print* functions - -sub T2H_DEFAULT_print_frame -{ - my $fh = shift; - print $fh < -$T2H_THISDOC{title} - - - - - -EOT -} - -sub T2H_DEFAULT_print_toc_frame -{ - my $fh = shift; - &$T2H_print_page_head($fh); - print $fh <Content -EOT - print $fh map {s/HREF=/target=\"main\" HREF=/; $_;} @stoc_lines; - print $fh "\n"; -} - -###################################################################### -# About page -# - -# T2H_PRE_ABOUT might be a function -$T2H_PRE_ABOUT = <texi2html -

-EOT -$T2H_AFTER_ABOUT = ''; - -sub T2H_DEFAULT_about_body -{ - my $about; - if (ref($T2H_PRE_ABOUT) eq 'CODE') - { - $about = &$T2H_PRE_ABOUT(); - } - else - { - $about = $T2H_PRE_ABOUT; - } - $about .= <

- - - - - - - -EOT - - for $button (@T2H_SECTION_BUTTONS) - { - next if $button eq ' ' || ref($button) eq 'CODE'; - $about .= < - - - - -EOT - } - - $about .= < -

-where the Example assumes that the current position -is at Subsubsection One-Two-Three of a document of -the following structure: -
    -
  • 1. Section One
  • -
      -
    • 1.1 Subsection One-One
    • -
        -
      • ...
      • -
      -
    • 1.2 Subsection One-Two
    • -
        -
      • 1.2.1 Subsubsection One-Two-One -
      • 1.2.2 Subsubsection One-Two-Two -
      • 1.2.3 Subsubsection One-Two-Three     -<== Current Position -
      • 1.2.4 Subsubsection One-Two-Four -
      -
    • 1.3 Subsection One-Three
    • -
        -
      • ...
      • -
      -
    • 1.4 Subsection One-Four
    • -
    -
-$T2H_AFTER_ABOUT -EOT - return $about; -} - - -%T2H_BUTTONS_GOTO = - ( - 'Top', 'cover (top) of document', - 'Contents', 'table of contents', - 'Overview', 'short table of contents', - 'Index', 'concept index', - 'Back', 'previous section in reading order', - 'FastBack', 'previous or up-and-previous section ', - 'Prev', 'previous section same level', - 'Up', 'up section', - 'Next', 'next section same level', - 'Forward', 'next section in reading order', - 'FastForward', 'next or up-and-next section', - 'About' , 'this page', - 'First', 'first section in reading order', - 'Last', 'last section in reading order', - ); - -%T2H_BUTTONS_EXAMPLE = -( - 'Top', '   ', - 'Contents', '   ', - 'Overview', '   ', - 'Index', '   ', - 'Back', '1.2.2', - 'FastBack', '1.1', - 'Prev', '1.2.2', - 'Up', '1.2', - 'Next', '1.2.4', - 'Forward', '1.2.4', - 'FastForward', '1.3', - 'About', '   ', - 'First', '1.', - 'Last', '1.2.4', -); - - -###################################################################### -# from here on, its l2h init stuff -# - -## initialization for latex2html as for Singular manual generation -## obachman 3/99 - -# -# Options controlling Titles, File-Names, Tracing and Sectioning -# -$TITLE = ''; - -$SHORTEXTN = 0; - -$LONG_TITLES = 0; - -$DESTDIR = ''; # should be overwritten by cmd-line argument - -$NO_SUBDIR = 0;# should be overwritten by cmd-line argument - -$PREFIX = ''; # should be overwritten by cmd-line argument - -$AUTO_PREFIX = 0; # this is needed, so that prefix settings are used - -$AUTO_LINK = 0; - -$SPLIT = 0; - -$MAX_LINK_DEPTH = 0; - -$TMP = ''; # should be overwritten by cmd-line argument - -$DEBUG = 0; - -$VERBOSE = 1; - -# -# Options controlling Extensions and Special Features -# -$HTML_VERSION = "3.2"; - -$TEXDEFS = 1; # we absolutely need that - -$EXTERNAL_FILE = ''; - -$SCALABLE_FONTS = 1; - -$NO_SIMPLE_MATH = 1; - -$LOCAL_ICONS = 1; - -$SHORT_INDEX = 0; - -$NO_FOOTNODE = 1; - -$ADDRESS = ''; - -$INFO = ''; - -# -# Switches controlling Image Generation -# -$ASCII_MODE = 0; - -$NOLATEX = 0; - -$EXTERNAL_IMAGES = 0; - -$PS_IMAGES = 0; - -$NO_IMAGES = 0; - -$IMAGES_ONLY = 0; - -$REUSE = 2; - -$ANTI_ALIAS = 1; - -$ANTI_ALIAS_TEXT = 1; - -# -#Switches controlling Navigation Panels -# -$NO_NAVIGATION = 1; -$ADDRESS = ''; -$INFO = 0; # 0 = do not make a "About this document..." section - -# -#Switches for Linking to other documents -# -# actuall -- we don't care - -$MAX_SPLIT_DEPTH = 0; # Stop making separate files at this depth - -$MAX_LINK_DEPTH = 0; # Stop showing child nodes at this depth - -$NOLATEX = 0; # 1 = do not pass unknown environments to Latex - -$EXTERNAL_IMAGES = 0; # 1 = leave the images outside the document - -$ASCII_MODE = 0; # 1 = do not use any icons or internal images - -# 1 = use links to external postscript images rather than inlined bitmap -# images. -$PS_IMAGES = 0; -$SHOW_SECTION_NUMBERS = 0; - -### Other global variables ############################################### -$CHILDLINE = ""; - -# This is the line width measured in pixels and it is used to right justify -# equations and equation arrays; -$LINE_WIDTH = 500; - -# Used in conjunction with AUTO_NAVIGATION -$WORDS_IN_PAGE = 300; - -# Affects ONLY the way accents are processed -$default_language = 'english'; - -# The value of this variable determines how many words to use in each -# title that is added to the navigation panel (see below) -# -$WORDS_IN_NAVIGATION_PANEL_TITLES = 0; - -# This number will determine the size of the equations, special characters, -# and anything which will be converted into an inlined image -# *except* "image generating environments" such as "figure", "table" -# or "minipage". -# Effective values are those greater than 0. -# Sensible values are between 0.1 - 4. -$MATH_SCALE_FACTOR = 1.5; - -# This number will determine the size of -# image generating environments such as "figure", "table" or "minipage". -# Effective values are those greater than 0. -# Sensible values are between 0.1 - 4. -$FIGURE_SCALE_FACTOR = 1.6; - - -# If both of the following two variables are set then the "Up" button -# of the navigation panel in the first node/page of a converted document -# will point to $EXTERNAL_UP_LINK. $EXTERNAL_UP_TITLE should be set -# to some text which describes this external link. -$EXTERNAL_UP_LINK = ""; -$EXTERNAL_UP_TITLE = ""; - -# If this is set then the resulting HTML will look marginally better if viewed -# with Netscape. -$NETSCAPE_HTML = 1; - -# Valid paper sizes are "letter", "legal", "a4","a3","a2" and "a0" -# Paper sizes has no effect other than in the time it takes to create inlined -# images and in whether large images can be created at all ie -# - larger paper sizes *MAY* help with large image problems -# - smaller paper sizes are quicker to handle -$PAPERSIZE = "a4"; - -# Replace "english" with another language in order to tell LaTeX2HTML that you -# want some generated section titles (eg "Table of Contents" or "References") -# to appear in a different language. Currently only "english" and "french" -# is supported but it is very easy to add your own. See the example in the -# file "latex2html.config" -$TITLES_LANGUAGE = "english"; - -1; # This must be the last non-comment line - -# End File texi2html.init -###################################################################### - - -require "$ENV{T2H_HOME}/texi2html.init" - if ($0 =~ /\.pl$/ && - -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init"); - -#+++############################################################################ -# # -# Initialization # -# Pasted content of File $(srcdir)/MySimple.pm: Command-line processing # -# # -#---############################################################################ - -# leave this within comments, and keep the require statement -# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init -# exists. - -# -package Getopt::MySimple; - -# Name: -# Getopt::MySimple. -# -# Documentation: -# POD-style (incomplete) documentation is in file MySimple.pod -# -# Tabs: -# 4 spaces || die. -# -# Author: -# Ron Savage rpsavage@ozemail.com.au. -# 1.00 19-Aug-97 Initial version. -# 1.10 13-Oct-97 Add arrays of switches (eg '=s@'). -# 1.20 3-Dec-97 Add 'Help' on a per-switch basis. -# 1.30 11-Dec-97 Change 'Help' to 'verbose'. Make all hash keys lowercase. -# 1.40 10-Nov-98 Change width of help report. Restructure tests. -# 1-Jul-00 Modifications for Texi2html - -# -------------------------------------------------------------------------- -# Locally modified by obachman (Display type instead of env, order by cmp) -# $Id: MySimple.pm,v 1.1 2000/07/03 08:44:13 obachman Exp $ - -# use strict; -# no strict 'refs'; - -use vars qw(@EXPORT @EXPORT_OK @ISA); -use vars qw($fieldWidth $opt $VERSION); - -use Exporter(); -use Getopt::Long; - -@ISA = qw(Exporter); -@EXPORT = qw(); -@EXPORT_OK = qw($opt); # An alias for $self -> {'opt'}. - -# -------------------------------------------------------------------------- - -$fieldWidth = 20; -$VERSION = '1.41'; - -# -------------------------------------------------------------------------- - -sub byOrder -{ - my($self) = @_; - - return uc($a) cmp (uc($b)); -} - -# -------------------------------------------------------------------------- - -sub dumpOptions -{ - my($self) = @_; - - print 'Option', ' ' x ($fieldWidth - length('Option') ), "Value\n"; - - for (sort byOrder keys(%{$self -> {'opt'} }) ) - { - print "-$_", ' ' x ($fieldWidth - (1 + length) ), "${$self->{'opt'} }{$_}\n"; - } - - print "\n"; - -} # End of dumpOptions. - -# -------------------------------------------------------------------------- -# Return: -# 0 -> Error. -# 1 -> Ok. - -sub getOptions -{ - push(@_, 0) if ($#_ == 2); # Default for $ignoreCase is 0. - push(@_, 1) if ($#_ == 3); # Default for $helpThenExit is 1. - - my($self, $default, $helpText, $versionText, - $helpThenExit, $versionThenExit, $ignoreCase) = @_; - - $helpThenExit = 1 unless (defined($helpThenExit)); - $versionThenExit = 1 unless (defined($versionThenExit)); - $ignoreCase = 0 unless (defined($ignoreCase)); - - $self -> {'default'} = $default; - $self -> {'helpText'} = $helpText; - $self -> {'versionText'} = $versionText; - $Getopt::Long::ignorecase = $ignoreCase; - - unless (defined($self -> {'default'}{'help'})) - { - $self -> {'default'}{'help'} = - { - type => ':i', - default => '', - linkage => sub {$self->helpOptions($_[1]); exit (0) if $helpThenExit;}, - verbose => "print help and exit" - }; - } - - unless (defined($self -> {'default'}{'version'})) - { - $self -> {'default'}{'version'} = - { - type => '', - default => '', - linkage => sub {print $self->{'versionText'}; exit (0) if versionTheExit;}, - verbose => "print version and exit" - }; - } - - for (keys(%{$self -> {'default'} }) ) - { - my $type = ${$self -> {'default'} }{$_}{'type'}; - push(@{$self -> {'type'} }, "$_$type"); - $self->{'opt'}->{$_} = ${$self -> {'default'} }{$_}{'linkage'} - if ${$self -> {'default'} }{$_}{'linkage'}; - } - - my($result) = &GetOptions($self -> {'opt'}, @{$self -> {'type'} }); - - return $result unless $result; - - for (keys(%{$self -> {'default'} }) ) - { - if (! defined(${$self -> {'opt'} }{$_})) #{ - { - ${$self -> {'opt'} }{$_} = ${$self -> {'default'} }{$_}{'default'}; - } - } - - $result; -} # End of getOptions. - -# -------------------------------------------------------------------------- - -sub helpOptions -{ - my($self) = shift; - my($noHelp) = shift; - $noHelp = 0 unless $noHelp; - my($optwidth, $typewidth, $defaultwidth, $maxlinewidth, $valind, $valwidth) - = (10, 5, 9, 78, 4, 11); - - print "$self->{'helpText'}" if ($self -> {'helpText'}); - - print ' Option', ' ' x ($optwidth - length('Option') -1 ), - 'Type', ' ' x ($typewidth - length('Type') + 1), - 'Default', ' ' x ($defaultwidth - length('Default') ), - "Description\n"; - - for (sort byOrder keys(%{$self -> {'default'} }) ) - { - my($line, $help, $option, $val); - $option = $_; - next if ${$self->{'default'} }{$_}{'noHelp'} && ${$self->{'default'} }{$_}{'noHelp'} > $noHelp; - $line = " -$_ " . ' ' x ($optwidth - (2 + length) ) . - "${$self->{'default'} }{$_}{'type'} ". - ' ' x ($typewidth - (1+length(${$self -> {'default'} }{$_}{'type'}) )); - - $val = ${$self->{'default'} }{$_}{'linkage'}; - if ($val) - { - if (ref($val) eq 'SCALAR') - { - $val = $$val; - } - else - { - $val = ''; - } - } - else - { - $val = ${$self->{'default'} }{$_}{'default'}; - } - $line .= "$val "; - $line .= ' ' x ($optwidth + $typewidth + $defaultwidth + 1 - length($line)); - - if (defined(${$self -> {'default'} }{$_}{'verbose'}) && - ${$self -> {'default'} }{$_}{'verbose'} ne '') - { - $help = "${$self->{'default'} }{$_}{'verbose'}"; - } - else - { - $help = ' '; - } - if ((length("$line") + length($help)) < $maxlinewidth) - { - print $line , $help, "\n"; - } - else - { - print $line, "\n", ' ' x $valind, $help, "\n"; - } - for $val (sort byOrder keys(%{${$self->{'default'}}{$option}{'values'}})) - { - print ' ' x ($valind + 2); - print $val, ' ', ' ' x ($valwidth - length($val) - 2); - print ${$self->{'default'}}{$option}{'values'}{$val}, "\n"; - } - } - - print <| ! no argument: variable is set to 1 on -foo (or, to 0 on -nofoo) - =s | :s mandatory (or, optional) string argument - =i | :i mandatory (or, optional) integer argument -EOT -} # End of helpOptions. - -#------------------------------------------------------------------- - -sub new -{ - my($class) = @_; - my($self) = {}; - $self -> {'default'} = {}; - $self -> {'helpText'} = ''; - $self -> {'opt'} = {}; - $opt = $self -> {'opt'}; # An alias for $self -> {'opt'}. - $self -> {'type'} = (); - - return bless $self, $class; - -} # End of new. - -# -------------------------------------------------------------------------- - -1; - -# End MySimple.pm - -require "$ENV{T2H_HOME}/MySimple.pm" - if ($0 =~ /\.pl$/ && - -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init"); - -package main; - -#+++############################################################################ -# # -# Constants # -# # -#---############################################################################ - -$DEBUG_TOC = 1; -$DEBUG_INDEX = 2; -$DEBUG_BIB = 4; -$DEBUG_GLOSS = 8; -$DEBUG_DEF = 16; -$DEBUG_HTML = 32; -$DEBUG_USER = 64; -$DEBUG_L2H = 128; - - -$BIBRE = '\[[\w\/-]+\]'; # RE for a bibliography reference -$FILERE = '[\/\w.+-]+'; # RE for a file name -$VARRE = '[^\s\{\}]+'; # RE for a variable name -$NODERE = '[^,:]+'; # RE for a node name -$NODESRE = '[^:]+'; # RE for a list of node names - -$ERROR = "***"; # prefix for errors -$WARN = "**"; # prefix for warnings - - # program home page -$PROTECTTAG = "_ThisIsProtected_"; # tag to recognize protected sections - -$CHAPTEREND = "\n"; # to know where a chpater ends -$SECTIONEND = "\n"; # to know where section ends -$TOPEND = "\n"; # to know where top ends - - - -# -# pre-defined indices -# -$index_properties = -{ - 'c' => { name => 'cp'}, - 'f' => { name => 'fn', code => 1}, - 'v' => { name => 'vr', code => 1}, - 'k' => { name => 'ky', code => 1}, - 'p' => { name => 'pg', code => 1}, - 't' => { name => 'tp', code => 1} -}; - - -%predefined_index = ( - 'cp', 'c', - 'fn', 'f', - 'vr', 'v', - 'ky', 'k', - 'pg', 'p', - 'tp', 't', - ); - -# -# valid indices -# -%valid_index = ( - 'c', 1, - 'f', 1, - 'v', 1, - 'k', 1, - 'p', 1, - 't', 1, - ); - -# -# texinfo section names to level -# -%sec2level = ( - 'top', 0, - 'chapter', 1, - 'unnumbered', 1, - 'majorheading', 1, - 'chapheading', 1, - 'appendix', 1, - 'section', 2, - 'unnumberedsec', 2, - 'heading', 2, - 'appendixsec', 2, - 'appendixsection', 2, - 'subsection', 3, - 'unnumberedsubsec', 3, - 'subheading', 3, - 'appendixsubsec', 3, - 'subsubsection', 4, - 'unnumberedsubsubsec', 4, - 'subsubheading', 4, - 'appendixsubsubsec', 4, - ); - -# -# accent map, TeX command to ISO name -# -%accent_map = ( - '"', 'uml', - '~', 'tilde', - '^', 'circ', - '`', 'grave', - '\'', 'acute', - ); - -# -# texinfo "simple things" (@foo) to HTML ones -# -%simple_map = ( - # cf. makeinfo.c - "*", "
", # HTML+ - " ", " ", - "\t", " ", - "-", "­", # soft hyphen - "\n", "\n", - "|", "", - 'tab', '<\/TD>
Button Name Go to From 1.2.3 go to
-EOT - $about .= - ($T2H_ICONS && $T2H_ACTIVE_ICONS{$button} ? - &$T2H_button_icon_img($button, $T2H_ACTIVE_ICONS{$button}) : - " [" . $T2H_NAVIGATION_TEXT{$button} . "] "); - $about .= < - -$button - -$T2H_BUTTONS_GOTO{$button} - -$T2H_BUTTONS_EXAMPLE{$button} -
', - # spacing commands - ":", "", - "!", "!", - "?", "?", - ".", ".", - "-", "", - ); - -# -# texinfo "things" (@foo{}) to HTML ones -# -%things_map = ( - 'TeX', 'TeX', - 'br', '

', # paragraph break - 'bullet', '*', - 'copyright', '(C)', - 'dots', '...<\/small>', - 'enddots', '....<\/small>', - 'equiv', '==', - 'error', 'error-->', - 'expansion', '==>', - 'minus', '-', - 'point', '-!-', - 'print', '-|', - 'result', '=>', - 'today', $T2H_TODAY, - 'aa', 'å', - 'AA', 'Å', - 'ae', 'æ', - 'oe', 'œ', - 'AE', 'Æ', - 'OE', 'Œ', - 'o', 'ø', - 'O', 'Ø', - 'ss', 'ß', - 'l', '\/l', - 'L', '\/L', - 'exclamdown', '¡', - 'questiondown', '¿', - 'pounds', '£' - ); - -# -# texinfo styles (@foo{bar}) to HTML ones -# -%style_map = ( - 'acronym', '&do_acronym', - 'asis', '', - 'b', 'B', - 'cite', 'CITE', - 'code', 'CODE', - 'command', 'CODE', - 'ctrl', '&do_ctrl', # special case - 'dfn', 'EM', # DFN tag is illegal in the standard - 'dmn', '', # useless - 'email', '&do_email', # insert a clickable email address - 'emph', 'EM', - 'env', 'CODE', - 'file', '"TT', # will put quotes, cf. &apply_style - 'i', 'I', - 'kbd', 'KBD', - 'key', 'KBD', - 'math', '&do_math', - 'option', '"SAMP', # will put quotes, cf. &apply_style - 'r', '', # unsupported - 'samp', '"SAMP', # will put quotes, cf. &apply_style - 'sc', '&do_sc', # special case - 'strong', 'STRONG', - 't', 'TT', - 'titlefont', '', # useless - 'uref', '&do_uref', # insert a clickable URL - 'url', '&do_url', # insert a clickable URL - 'var', 'VAR', - 'w', '', # unsupported - 'H', '&do_accent', - 'dotaccent', '&do_accent', - 'ringaccent','&do_accent', - 'tieaccent', '&do_accent', - 'u','&do_accent', - 'ubaraccent','&do_accent', - 'udotaccent','&do_accent', - 'v', '&do_accent', - ',', '&do_accent', - 'dotless', '&do_accent' - ); - -# -# texinfo format (@foo/@end foo) to HTML ones -# -%format_map = ( - 'quotation', 'BLOCKQUOTE', - # lists - 'itemize', 'UL', - 'enumerate', 'OL', - # poorly supported - 'flushleft', 'PRE', - 'flushright', 'PRE', - ); - -# -# an eval of these $complex_format_map->{what}->[0] yields beginning -# an eval of these $complex_format_map->{what}->[1] yieleds end -$complex_format_map = -{ - example => - [ - q{"$T2H_EXAMPLE_INDENT_CELL
"},
-  q{'
'} - ], - smallexample => - [ - q{"$T2H_SMALL_EXAMPLE_INDENT_CELL
"},
-  q{'
'} - ], - display => - [ - q{"$T2H_EXAMPLE_INDENT_CELL
'},
-  q{'
'} - ], - smalldisplay => - [ - q{"$T2H_SMALL_EXAMPLE_INDENT_CELL
'},
-  q{'
'} - ] -}; - -$complex_format_map->{lisp} = $complex_format_map->{example}; -$complex_format_map->{smalllisp} = $complex_format_map->{smallexample}; -$complex_format_map->{format} = $complex_format_map->{display}; -$complex_format_map->{smallformat} = $complex_format_map->{smalldisplay}; - -# -# texinfo definition shortcuts to real ones -# -%def_map = ( - # basic commands - 'deffn', 0, - 'defvr', 0, - 'deftypefn', 0, - 'deftypevr', 0, - 'defcv', 0, - 'defop', 0, - 'deftp', 0, - # basic x commands - 'deffnx', 0, - 'defvrx', 0, - 'deftypefnx', 0, - 'deftypevrx', 0, - 'defcvx', 0, - 'defopx', 0, - 'deftpx', 0, - # shortcuts - 'defun', 'deffn Function', - 'defmac', 'deffn Macro', - 'defspec', 'deffn {Special Form}', - 'defvar', 'defvr Variable', - 'defopt', 'defvr {User Option}', - 'deftypefun', 'deftypefn Function', - 'deftypevar', 'deftypevr Variable', - 'defivar', 'defcv {Instance Variable}', - 'deftypeivar', 'defcv {Instance Variable}', # NEW: FIXME - 'defmethod', 'defop Method', - 'deftypemethod', 'defop Method', # NEW:FIXME - # x shortcuts - 'defunx', 'deffnx Function', - 'defmacx', 'deffnx Macro', - 'defspecx', 'deffnx {Special Form}', - 'defvarx', 'defvrx Variable', - 'defoptx', 'defvrx {User Option}', - 'deftypefunx', 'deftypefnx Function', - 'deftypevarx', 'deftypevrx Variable', - 'defivarx', 'defcvx {Instance Variable}', - 'defmethodx', 'defopx Method', - ); - -# -# things to skip -# -%to_skip = ( - # comments - 'c', 1, - 'comment', 1, - 'ifnotinfo', 1, - 'ifnottex', 1, - 'ifhtml', 1, - 'end ifhtml', 1, - 'end ifnotinfo', 1, - 'end ifnottex', 1, - # useless - 'detailmenu', 1, - 'direntry', 1, - 'contents', 1, - 'shortcontents', 1, - 'summarycontents', 1, - 'footnotestyle', 1, - 'end ifclear', 1, - 'end ifset', 1, - 'titlepage', 1, - 'end titlepage', 1, - # unsupported commands (formatting) - 'afourpaper', 1, - 'cropmarks', 1, - 'finalout', 1, - 'headings', 1, - 'sp', 1, - 'need', 1, - 'page', 1, - 'setchapternewpage', 1, - 'everyheading', 1, - 'everyfooting', 1, - 'evenheading', 1, - 'evenfooting', 1, - 'oddheading', 1, - 'oddfooting', 1, - 'smallbook', 1, - 'vskip', 1, - 'filbreak', 1, - 'paragraphindent', 1, - # unsupported formats - 'cartouche', 1, - 'end cartouche', 1, - 'group', 1, - 'end group', 1, - ); - -#+++############################################################################ -# # -# Argument parsing, initialisation # -# # -#---############################################################################ - -# -# flush stdout and stderr after every write -# -select(STDERR); -$| = 1; -select(STDOUT); -$| = 1; - - -%value = (); # hold texinfo variables, see also -D -$use_bibliography = 1; -$use_acc = 1; - -# -# called on -init-file -sub LoadInitFile -{ - my $init_file = shift; - # second argument is value of options - $init_file = shift; - if (-f $init_file) - { - print "# reading initialization file from $init_file\n" - if ($T2H_VERBOSE); - require($init_file); - } - else - { - print "$ERROR Error: can't read init file $int_file\n"; - $init_file = ''; - } -} - -# -# called on -lang -sub SetDocumentLanguage -{ - my $lang = shift; - if (! exists($T2H_WORDS->{$lang})) - { - warn "$ERROR: Language specs for '$lang' do not exists. Reverting to '" . - ($T2H_LANG ? T2H_LANG : "en") . "'\n"; - } - else - { - print "# using '$lang' as document language\n" if ($T2H_VERBOSE); - $T2H_LANG = $lang; - } -} - -## -## obsolete cmd line options -## -$T2H_OBSOLETE_OPTIONS -> {'no-section_navigation'} = -{ - type => '!', - linkage => sub {$main::T2H_SECTION_NAVIGATION = 0;}, - verbose => 'obsolete, use -nosec_nav', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {use_acc} = -{ - type => '!', - linkage => \$use_acc, - verbose => 'obsolete', - noHelp => 2 -}; -$T2H_OBSOLETE_OPTIONS -> {expandinfo} = -{ - type => '!', - linkage => sub {$main::T2H_EXPAND = 'info';}, - verbose => 'obsolete, use "-expand info" instead', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {expandtex} = -{ - type => '!', - linkage => sub {$main::T2H_EXPAND = 'tex';}, - verbose => 'obsolete, use "-expand tex" instead', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {monolithic} = -{ - type => '!', - linkage => sub {$main::T2H_SPLIT = '';}, - verbose => 'obsolete, use "-split no" instead', - noHelp => 2 -}; -$T2H_OBSOLETE_OPTIONS -> {split_node} = -{ - type => '!', - linkage => sub{$main::T2H_SPLIT = 'section';}, - verbose => 'obsolete, use "-split section" instead', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {split_chapter} = -{ - type => '!', - linkage => sub{$main::T2H_SPLIT = 'chapter';}, - verbose => 'obsolete, use "-split chapter" instead', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {no_verbose} = -{ - type => '!', - linkage => sub {$main::T2H_VERBOSE = 0;}, - verbose => 'obsolete, use -noverbose instead', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {output_file} = -{ - type => '=s', - linkage => sub {$main::T2H_OUT = @_[1]; $T2H_SPLIT = '';}, - verbose => 'obsolete, use -out_file instead', - noHelp => 2 -}; - -$T2H_OBSOLETE_OPTIONS -> {section_navigation} = -{ - type => '!', - linkage => \$T2H_SECTION_NAVIGATION, - verbose => 'obsolete, use -sec_nav instead', - noHelp => 2, -}; - -$T2H_OBSOLETE_OPTIONS -> {verbose} = -{ - type => '!', - linkage => \$T2H_VERBOSE, - verbose => 'obsolete, use -Verbose instead', - noHelp => 2 -}; - -# read initialzation from $sysconfdir/texi2htmlrc or $HOME/.texi2htmlrc -my $home = $ENV{HOME}; -defined($home) or $home = ''; -foreach $i ('/usr/local/etc/texi2htmlrc', "$home/.texi2htmlrc") { - if (-f $i) { - print "# reading initialization file from $i\n" - if ($T2H_VERBOSE); - require($i); - } -} - - -#+++############################################################################ -# # -# parse command-line options -# # -#---############################################################################ -$T2H_USAGE_TEXT = <getOptions($T2H_OPTIONS, $T2H_USAGE_TEXT, "$THISVERSION\n")) -{ - print $Configure_failed if $Configure_failed; - die $T2H_FAILURE_TEXT; -} - -if (@ARGV > 1) -{ - eval {Getopt::Long::Configure("no_pass_through");}; - if (! $options->getOptions($T2H_OBSOLETE_OPTIONS, $T2H_USAGE_TEXT, "$THISVERSION\n")) - { - print $Configure_failed if $Configure_failed; - die $T2H_FAILURE_TEXT; - } -} - -if ($T2H_CHECK) { - die "Need file to check\n$T2H_FAILURE_TEXT" unless @ARGV > 0; - ✓ - exit; -} - -#+++############################################################################ -# # -# evaluation of cmd line options -# # -#---############################################################################ - -if ($T2H_EXPAND eq 'info') -{ - $to_skip{'ifinfo'} = 1; - $to_skip{'end ifinfo'} = 1; -} -elsif ($T2H_EXPAND eq 'tex') -{ - $to_skip{'iftex'} = 1; - $to_skip{'end iftex'} = 1; - -} - -$T2H_INVISIBLE_MARK = '' if $T2H_INVISIBLE_MARK eq 'xbm'; - -# -# file name buisness -# -die "Need exactly one file to translate\n$T2H_FAILURE_TEXT" unless @ARGV == 1; -$docu = shift(@ARGV); -if ($docu =~ /.*\//) { - chop($docu_dir = $&); - $docu_name = $'; -} else { - $docu_dir = '.'; - $docu_name = $docu; -} -unshift(@T2H_INCLUDE_DIRS, $docu_dir); -$docu_name =~ s/\.te?x(i|info)?$//; # basename of the document -$docu_name = $T2H_PREFIX if ($T2H_PREFIX); - -# subdir -if ($T2H_SUBDIR && ! $T2H_OUT) -{ - $T2H_SUBDIR =~ s|/*$||; - unless (-d "$T2H_SUBDIR" && -w "$T2H_SUBDIR") - { - if ( mkdir($T2H_SUBDIR, oct(755))) - { - print "# created directory $T2H_SUBDIR\n" if ($T2H_VERBOSE); - } - else - { - warn "$ERROR can't create directory $T2H_SUBDIR. Put results into current directory\n"; - $T2H_SUBDIR = ''; - } - } -} - -if ($T2H_SUBDIR && ! $T2H_OUT) -{ - $docu_rdir = "$T2H_SUBDIR/"; - print "# putting result files into directory $docu_rdir\n" if ($T2H_VERBOSE); -} -else -{ - if ($T2H_OUT && $T2H_OUT =~ m|(.*)/|) - { - $docu_rdir = "$1/"; - print "# putting result files into directory $docu_rdir\n" if ($T2H_VERBOSE); - } - else - { - print "# putting result files into current directory \n" if ($T2H_VERBOSE); - $docu_rdir = ''; - } -} - -# extension -if ($T2H_SHORTEXTN) -{ - $docu_ext = "htm"; -} -else -{ - $docu_ext = "html"; -} -if ($T2H_TOP_FILE =~ /\..*$/) -{ - $T2H_TOP_FILE = $`.".$docu_ext"; -} - -# result files -if (! $T2H_OUT && ($T2H_SPLIT =~ /section/i || $T2H_SPLIT =~ /node/i)) -{ - $T2H_SPLIT = 'section'; -} -elsif (! $T2H_OUT && $T2H_SPLIT =~ /chapter/i) -{ - $T2H_SPLIT = 'chapter' -} -else -{ - undef $T2H_SPLIT; -} - -$docu_doc = "$docu_name.$docu_ext"; # document's contents -$docu_doc_file = "$docu_rdir$docu_doc"; -if ($T2H_SPLIT) -{ - $docu_toc = $T2H_TOC_FILE || "${docu_name}_toc.$docu_ext"; # document's table of contents - $docu_stoc = "${docu_name}_ovr.$docu_ext"; # document's short toc - $docu_foot = "${docu_name}_fot.$docu_ext"; # document's footnotes - $docu_about = "${docu_name}_abt.$docu_ext"; # about this document - $docu_top = $T2H_TOP_FILE || $docu_doc; -} -else -{ - if ($T2H_OUT) - { - $docu_doc = $T2H_OUT; - $docu_doc =~ s|.*/||; - } - $docu_toc = $docu_foot = $docu_stoc = $docu_about = $docu_top = $docu_doc; -} - -$docu_toc_file = "$docu_rdir$docu_toc"; -$docu_stoc_file = "$docu_rdir$docu_stoc"; -$docu_foot_file = "$docu_rdir$docu_foot"; -$docu_about_file = "$docu_rdir$docu_about"; -$docu_top_file = "$docu_rdir$docu_top"; - -$docu_frame_file = "$docu_rdir${docu_name}_frame.$docu_ext"; -$docu_toc_frame_file = "$docu_rdir${docu_name}_toc_frame.$docu_ext"; - -# -# variables -# -$value{'html'} = 1; # predefine html (the output format) -$value{'texi2html'} = $THISVERSION; # predefine texi2html (the translator) -# _foo: internal to track @foo -foreach ('_author', '_title', '_subtitle', - '_settitle', '_setfilename', '_shorttitle') { - $value{$_} = ''; # prevent -w warnings -} -%node2sec = (); # node to section name -%sec2node = (); # section to node name -%sec2number = (); # section to number -%number2sec = (); # number to section -%idx2node = (); # index keys to node -%node2href = (); # node to HREF -%node2next = (); # node to next -%node2prev = (); # node to prev -%node2up = (); # node to up -%bib2href = (); # bibliography reference to HREF -%gloss2href = (); # glossary term to HREF -@sections = (); # list of sections -%tag2pro = (); # protected sections - -# -# initial indexes -# -$bib_num = 0; -$foot_num = 0; -$gloss_num = 0; -$idx_num = 0; -$sec_num = 0; -$doc_num = 0; -$html_num = 0; - -# -# can I use ISO8879 characters? (HTML+) -# -if ($T2H_USE_ISO) { - $things_map{'bullet'} = "•"; - $things_map{'copyright'} = "©"; - $things_map{'dots'} = "…"; - $things_map{'equiv'} = "≡"; - $things_map{'expansion'} = "→"; - $things_map{'point'} = "∗"; - $things_map{'result'} = "⇒"; -} - -# -# read texi2html extensions (if any) -# -$extensions = 'texi2html.ext'; # extensions in working directory -if (-f $extensions) { - print "# reading extensions from $extensions\n" if $T2H_VERBOSE; - require($extensions); -} -($progdir = $0) =~ s/[^\/]+$//; -if ($progdir && ($progdir ne './')) { - $extensions = "${progdir}texi2html.ext"; # extensions in texi2html directory - if (-f $extensions) { - print "# reading extensions from $extensions\n" if $T2H_VERBOSE; - require($extensions); - } -} - - -print "# reading from $docu\n" if $T2H_VERBOSE; - -######################################################################### -# -# latex2html stuff -# -# latex2html conversions consist of three stages: -# 1) ToLatex: Put "latex" code into a latex file -# 2) ToHtml: Use latex2html to generate corresponding html code and images -# 3) FromHtml: Extract generated code and images from latex2html run -# - -########################## -# default settings -# - -# defaults for files and names - -sub l2h_Init -{ - local($root) = @_; - - return 0 unless ($root); - - $l2h_name = "${root}_l2h"; - - $l2h_latex_file = "$docu_rdir${l2h_name}.tex"; - $l2h_cache_file = "${docu_rdir}l2h_cache.pm"; - $T2H_L2H_L2H = "latex2html" unless ($T2H_L2H_L2H); - - # destination dir -- generated images are put there, should be the same - # as dir of enclosing html document -- - $l2h_html_file = "$docu_rdir${l2h_name}.html"; - $l2h_prefix = "${l2h_name}_"; - return 1; -} - - -########################## -# -# First stage: Generation of Latex file -# Initialize with: l2h_InitToLatex -# Add content with: l2h_ToLatex($text) --> HTML placeholder comment -# Finish with: l2h_FinishToLatex -# - -$l2h_latex_preample = <$l2h_latex_file")) - { - warn "$ERROR Error l2h: Can't open latex file '$latex_file' for writing\n"; - return 0; - } - print "# l2h: use ${l2h_latex_file} as latex file\n" if ($T2H_VERBOSE); - print L2H_LATEX $l2h_latex_preample; - } - # open database for caching - l2h_InitCache(); - $l2h_latex_count = 0; - $l2h_to_latex_count = 0; - $l2h_cached_count = 0; - return 1; -} - -# print text (1st arg) into latex file (if not already there), return -# HTML commentary which can be later on replaced by the latex2html -# generated text -sub l2h_ToLatex -{ - my($text) = @_; - my($count); - - $l2h_to_latex_count++; - $text =~ s/(\s*)$//; - - # try whether we can cache it - my $cached_text = l2h_FromCache($text); - if ($cached_text) - { - $l2h_cached_count++; - return $cached_text; - } - - # try whether we have text already on things to do - unless ($count = $l2h_to_latex{$text}) - { - $count = $l2h_latex_count; - $l2h_latex_count++; - $l2h_to_latex{$text} = $count; - $l2h_to_latex[$count] = $text; - unless ($T2H_L2H_SKIP) - { - print L2H_LATEX "\\begin{rawhtml}\n"; - print L2H_LATEX "\n"; - print L2H_LATEX "\\end{rawhtml}\n"; - - print L2H_LATEX "$text\n"; - - print L2H_LATEX "\\begin{rawhtml}\n"; - print L2H_LATEX "\n"; - print L2H_LATEX "\\end{rawhtml}\n"; - } - } - return ""; -} - -# print closing into latex file and close it -sub l2h_FinishToLatex -{ - local ($reused); - - $reused = $l2h_to_latex_count - $l2h_latex_count - $l2h_cached_count; - unless ($T2H_L2H_SKIP) - { - print L2H_LATEX $l2h_latex_closing; - close(L2H_LATEX); - } - print "# l2h: finished to latex ($l2h_cached_count cached, $reused reused, $l2h_latex_count contents)\n" if ($T2H_VERBOSE); - unless ($l2h_latex_count) - { - l2h_Finish(); - return 0; - } - return 1; -} - -################################### -# Second stage: Use latex2html to generate corresponding html code and images -# -# l2h_ToHtml([$l2h_latex_file, [$l2h_html_dir]]): -# Call latex2html on $l2h_latex_file -# Put images (prefixed with $l2h_name."_") and html file(s) in $l2h_html_dir -# Return 1, on success -# 0, otherwise -# -sub l2h_ToHtml -{ - local($call, $ext, $root, $dotbug); - - if ($T2H_L2H_SKIP) - { - print "# l2h: skipping latex2html run\n" if ($T2H_VERBOSE); - return 1; - } - - # Check for dot in directory where dvips will work - if ($T2H_L2H_TMP) - { - if ($T2H_L2H_TMP =~ /\./) - { - warn "$ERROR Warning l2h: l2h_tmp dir contains a dot. Use /tmp, instead\n"; - $dotbug = 1; - } - } - else - { - if (&getcwd =~ /\./) - { - warn "$ERROR Warning l2h: current dir contains a dot. Use /tmp as l2h_tmp dir \n"; - $dotbug = 1; - } - } - # fix it, if necessary and hope that it works - $T2H_L2H_TMP = "/tmp" if ($dotbug); - - $call = $T2H_L2H_L2H; - # use init file, if specified - $call = $call . " -init_file " . $init_file if ($init_file && -f $init_file); - # set output dir - $call .= ($docu_rdir ? " -dir $docu_rdir" : " -no_subdir"); - # use l2h_tmp, if specified - $call = $call . " -tmp $T2H_L2H_TMP" if ($T2H_L2H_TMP); - # options we want to be sure of - $call = $call ." -address 0 -info 0 -split 0 -no_navigation -no_auto_link"; - $call = $call ." -prefix ${l2h_prefix} $l2h_latex_file"; - - print "# l2h: executing '$call'\n" if ($T2H_VERBOSE); - if (system($call)) - { - warn "l2h ***Error: '${call}' did not succeed\n"; - return 0; - } - else - { - print "# l2h: latex2html finished successfully\n" if ($T2H_VERBOSE); - return 1; - } -} - -# this is directly pasted over from latex2html -sub getcwd { - local($_) = `pwd`; - - die "'pwd' failed (out of memory?)\n" - unless length; - chop; - $_; -} - - -########################## -# Third stage: Extract generated contents from latex2html run -# Initialize with: l2h_InitFromHtml -# open $l2h_html_file for reading -# reads in contents into array indexed by numbers -# return 1, on success -- 0, otherwise -# Extract Html code with: l2h_FromHtml($text) -# replaces in $text all previosuly inserted comments by generated html code -# returns (possibly changed) $text -# Finish with: l2h_FinishFromHtml -# closes $l2h_html_dir/$l2h_name.".$docu_ext" - -sub l2h_InitFromHtml -{ - local($h_line, $h_content, $count, %l2h_img); - - if (! open(L2H_HTML, "<${l2h_html_file}")) - { - print "$ERROR Error l2h: Can't open ${l2h_html_file} for reading\n"; - return 0; - } - print "# l2h: use ${l2h_html_file} as html file\n" if ($T2H_VERBOSE); - - $l2h_html_count = 0; - - while ($h_line = ) - { - if ($h_line =~ /^/) - { - $count = $1; - $h_content = ""; - while ($h_line = ) - { - if ($h_line =~ /^/) - { - chomp $h_content; - chomp $h_content; - $l2h_html_count++; - $h_content = l2h_ToCache($count, $h_content); - $l2h_from_html[$count] = $h_content; - $h_content = ''; - last; - } - $h_content = $h_content.$h_line; - } - if ($hcontent) - { - print "$ERROR Warning l2h: l2h_end $l2h_name $count not found\n" - if ($T2H_VERBOSE); - close(L2H_HTML); - return 0; - } - } - } - print "# l2h: Got $l2h_html_count of $l2h_latex_count html contents\n" - if ($T2H_VERBOSE); - - close(L2H_HTML); - return 1; -} - -sub l2h_FromHtml -{ - local($text) = @_; - local($done, $to_do, $count); - - $to_do = $text; - - while ($to_do =~ /([^\000]*)([^\000]*)/) - { - $to_do = $1; - $count = $2; - $done = $3.$done; - - $done = "".$done - if ($T2H_DEBUG & $DEBUG_L2H); - - $done = &l2h_ExtractFromHtml($count) . $done; - - $done = "".$done - if ($T2H_DEBUG & $DEBUG_L2H); - } - return $to_do.$done; -} - - -sub l2h_ExtractFromHtml -{ - local($count) = @_; - - return $l2h_from_html[$count] if ($l2h_from_html[$count]); - - if ($count >= 0 && $count < $l2h_latex_count) - { - # now we are in trouble - local($l_l2h, $_); - - $l2h_extract_error++; - print "$ERROR l2h: can't extract content $count from html\n" - if ($T2H_VERBOSE); - # try simple (ordinary) substition (without l2h) - $l_l2h = $T2H_L2H; - $T2H_L2H = 0; - $_ = $l2h_to_latex{$count}; - $_ = &substitute_style($_); - &unprotect_texi; - $_ = "" . $_ - if ($T2H_DEBUG & $DEBUG_L2H); - $T2H_L2H = $l_l2h; - return $_; - } - else - { - # now we have been incorrectly called - $l2h_range_error++; - print "$ERROR l2h: Request of $count content which is out of valide range [0,$l2h_latex_count)\n"; - return "" - if ($T2H_DEBUG & $DEBUG_L2H); - return ""; - } -} - -sub l2h_FinishFromHtml -{ - if ($T2H_VERBOSE) - { - if ($l2h_extract_error + $l2h_range_error) - { - print "# l2h: finished from html ($l2h_extract_error extract and $l2h_range_error errors)\n"; - } - else - { - print "# l2h: finished from html (no errors)\n"; - } - } -} - -sub l2h_Finish -{ - l2h_StoreCache(); - if ($T2H_L2H_CLEAN) - { - print "# l2h: removing temporary files generated by l2h extension\n" - if $T2H_VERBOSE; - while (<"$docu_rdir$l2h_name"*>) - { - unlink $_; - } - } - print "# l2h: Finished\n" if $T2H_VERBOSE; - return 1; -} - -############################## -# stuff for l2h caching -# - -# I tried doing this with a dbm data base, but it did not store all -# keys/values. Hence, I did as latex2html does it -sub l2h_InitCache -{ - if (-r "$l2h_cache_file") - { - my $rdo = do "$l2h_cache_file"; - warn("$ERROR l2h Error: could not load $docu_rdir$l2h_cache_file: $@\n") - unless ($rdo); - } -} - -sub l2h_StoreCache -{ - return unless $l2h_latex_count; - - my ($key, $value); - open(FH, ">$l2h_cache_file") || return warn"$ERROR l2h Error: could not open $docu_rdir$l2h_cache_file for writing: $!\n"; - - - while (($key, $value) = each %l2h_cache) - { - # escape stuff - $key =~ s|/|\\/|g; - $key =~ s|\\\\/|\\/|g; - # weird, a \ at the end of the key results in an error - # maybe this also broke the dbm database stuff - $key =~ s|\\$|\\\\|; - $value =~ s/\|/\\\|/g; - $value =~ s/\\\\\|/\\\|/g; - $value =~ s|\\\\|\\\\\\\\|g; - print FH "\n\$l2h_cache_key = q/$key/;\n"; - print FH "\$l2h_cache{\$l2h_cache_key} = q|$value|;\n"; - } - print FH "1;"; - close(FH); -} - -# return cached html, if it exists for text, and if all pictures -# are there, as well -sub l2h_FromCache -{ - my $text = shift; - my $cached = $l2h_cache{$text}; - if ($cached) - { - while ($cached =~ m/SRC="(.*?)"/g) - { - unless (-e "$docu_rdir$1") - { - return undef; - } - } - return $cached; - } - return undef; -} - -# insert generated html into cache, move away images, -# return transformed html -$maximage = 1; -sub l2h_ToCache -{ - my $count = shift; - my $content = shift; - my @images = ($content =~ /SRC="(.*?)"/g); - my ($src, $dest); - - for $src (@images) - { - $dest = $l2h_img{$src}; - unless ($dest) - { - my $ext; - if ($src =~ /.*\.(.*)$/ && $1 ne $docu_ext) - { - $ext = $1; - } - else - { - warn "$ERROR: L2h image $src has invalid extension\n"; - next; - } - while (-e "$docu_rdir${docu_name}_$maximage.$ext") { $maximage++;} - $dest = "${docu_name}_$maximage.$ext"; - system("cp -f $docu_rdir$src $docu_rdir$dest"); - $l2h_img{$src} = $dest; - unlink "$docu_rdir$src" unless ($DEBUG & DEBUG_L2H); - } - $content =~ s/$src/$dest/g; - } - $l2h_cache{$l2h_to_latex[$count]} = $content; - return $content; -} - - -#+++############################################################################ -# # -# Pass 1: read source, handle command, variable, simple substitution # -# # -#---############################################################################ - -@lines = (); # whole document -@toc_lines = (); # table of contents -@stoc_lines = (); # table of contents -$curlevel = 0; # current level in TOC -$node = ''; # current node name -$node_next = ''; # current node next name -$node_prev = ''; # current node prev name -$node_up = ''; # current node up name -$in_table = 0; # am I inside a table -$table_type = ''; # type of table ('', 'f', 'v', 'multi') -@tables = (); # nested table support -$in_bibliography = 0; # am I inside a bibliography -$in_glossary = 0; # am I inside a glossary -$in_top = 0; # am I inside the top node -$has_top = 0; # did I see a top node? -$has_top_command = 0; # did I see @top for automatic pointers? -$in_pre = 0; # am I inside a preformatted section -$in_list = 0; # am I inside a list -$in_html = 0; # am I inside an HTML section -$first_line = 1; # is it the first line -$dont_html = 0; # don't protect HTML on this line -$deferred_ref = ''; # deferred reference for indexes -@html_stack = (); # HTML elements stack -$html_element = ''; # current HTML element -&html_reset; -%macros = (); # macros - -# init l2h -$T2H_L2H = &l2h_Init($docu_name) if ($T2H_L2H); -$T2H_L2H = &l2h_InitToLatex if ($T2H_L2H); - -# build code for simple substitutions -# the maps used (%simple_map and %things_map) MUST be aware of this -# watch out for regexps, / and escaped characters! -$subst_code = ''; -foreach (keys(%simple_map)) { - ($re = $_) =~ s/(\W)/\\$1/g; # protect regexp chars - $subst_code .= "s/\\\@$re/$simple_map{$_}/g;\n"; -} -foreach (keys(%things_map)) { - $subst_code .= "s/\\\@$_\\{\\}/$things_map{$_}/g;\n"; -} -if ($use_acc) { - # accentuated characters - foreach (keys(%accent_map)) { - if ($_ eq "`") { - $subst_code .= "s/$;3"; - } elsif ($_ eq "'") { - $subst_code .= "s/$;4"; - } else { - $subst_code .= "s/\\\@\\$_"; - } - $subst_code .= "([a-z])/&\${1}$accent_map{$_};/gi;\n"; - } -} -eval("sub simple_substitutions { $subst_code }"); - -&init_input; -INPUT_LINE: while ($_ = &next_line) { - # - # remove \input on the first lines only - # - if ($first_line) { - next if /^\\input/; - $first_line = 0; - } - # non-@ substitutions cf. texinfmt.el - # - # parse texinfo tags - # - $tag = ''; - $end_tag = ''; - if (/^\s*\@end\s+(\w+)\b/) { - $end_tag = $1; - } elsif (/^\s*\@(\w+)\b/) { - $tag = $1; - } - # - # handle @html / @end html - # - if ($in_html) { - if ($end_tag eq 'html') { - $in_html = 0; - } else { - $tag2pro{$in_html} .= $_; - } - next; - } elsif ($tag eq 'html') { - $in_html = $PROTECTTAG . ++$html_num; - push(@lines, $in_html); - next; - } - - # - # try to remove inlined comments - # syntax from tex-mode.el comment-start-skip - # - s/((^|[^\@])(\@\@)*)\@c(omment | |\{|$).*/$1/; - -# Sometimes I use @c right at the end of a line ( to suppress the line feed ) -# s/((^|[^\@])(\@\@)*)\@c(omment)?$/$1/; -# s/((^|[^\@])(\@\@)*)\@c(omment)? .*/$1/; -# s/(.*)\@c{.*?}(.*)/$1$2/; -# s/(.*)\@comment{.*?}(.*)/$1$2/; -# s/^(.*)\@c /$1/; -# s/^(.*)\@comment /$1/; - - ############################################################# - # value substitution before macro expansion, so that - # it works in macro arguments - s/\@value{($VARRE)}/$value{$1}/eg; - - ############################################################# - # macro substitution - while (/\@(\w+)/g) - { - if (exists($macros->{$1})) - { - my $before = $`; - my $name = $1; - my $after = $'; - my @args; - my $args; - if ($after =~ /^\s*{(.*?[^\\])}(.*)/) - { - $args = $1; - $after = $2; - } - elsif (@{$macros->{$name}->{Args}} == 1) - { - $args = $after; - $args =~ s/^\s*//; - $args =~ s/\s*$//; - $after = ''; - } - $args =~ s|\\\\|\\|g; - $args =~ s|\\{|{|g; - $args =~ s|\\}|}|g; - if (@{$macros->{$name}->{Args}} > 1) - { - $args =~ s/(^|[^\\]),/$1$;/g ; - $args =~ s|\\,|,|g; - @args = split(/$;\s*/, $args) if (@{$macros->{$name}->{Args}} > 1); - } - else - { - $args =~ s|\\,|,|g; - @args = ($args); - } - my $macrobody = $macros->{$name}->{Body}; - for ($i=0; $i<=$#args; $i++) - { - $macrobody =~ s|\\$macros->{$name}->{Args}->[$i]\\|$args[$i]|g; - } - $macrobody =~ s|\\\\|\\|g; - $_ = $before . $macrobody . $after; - unshift @input_spool, map {$_ = $_."\n"} split(/\n/, $_); - next INPUT_LINE; - } - } # - - - # - # try to skip the line - # - if ($end_tag) { - $in_titlepage = 0 if $end_tag eq 'titlepage'; - next if $to_skip{"end $end_tag"}; - } elsif ($tag) { - $in_titlepage = 1 if $tag eq 'titlepage'; - next if $to_skip{$tag}; - last if $tag eq 'bye'; - } - if ($in_top) { - # parsing the top node - if ($tag eq 'node' || - ($sec2level{$tag} && $tag !~ /unnumbered/ && $tag !~ /heading/)) - { - # no more in top - $in_top = 0; - push(@lines, $TOPEND); - } - } - unless ($in_pre) { - s/``/\"/g; - s/''/\"/g; - s/([\w ])---([\w ])/$1--$2/g; - } - # - # analyze the tag - # - if ($tag) { - # skip lines - &skip_until($tag), next if $tag eq 'ignore'; - &skip_until($tag), next if $tag eq 'ifnothtml'; - if ($tag eq 'ifinfo') - { - &skip_until($tag), next unless $T2H_EXPAND eq 'info'; - } - if ($tag eq 'iftex') - { - &skip_until($tag), next unless $T2H_EXPAND eq 'tex'; - } - if ($tag eq 'tex') - { - # add to latex2html file - if ($T2H_EXPAND eq 'tex' && $T2H_L2H && ! $in_pre) - { - # add space to the end -- tex(i2dvi) does this, as well - push(@lines, &l2h_ToLatex(&string_until($tag) . " ")); - } - else - { - &skip_until($tag); - } - next; - } - if ($tag eq 'titlepage') - { - next; - } - # handle special tables - if ($tag =~ /^(|f|v|multi)table$/) { - $table_type = $1; - $tag = 'table'; - } - # special cases - if ($tag eq 'top' || ($tag eq 'node' && /^\@node\s+top\s*,/i)) { - $in_top = 1; - $has_top = 1; - $has_top_command = 1 if $tag eq 'top'; - @lines = (); # ignore all lines before top (title page garbage) - next; - } elsif ($tag eq 'node') { - if ($in_top) - { - $in_top = 0; - push(@lines, $TOPEND); - } - warn "$ERROR Bad node line: $_" unless $_ =~ /^\@node\s$NODESRE$/o; - # request of "Richard Y. Kim" - s/^\@node\s+//; - $_ = &protect_html($_); # if node contains '&' for instance - ($node, $node_next, $node_prev, $node_up) = split(/,/); - &normalise_node($node); - &normalise_node($node_next); - &normalise_node($node_prev); - &normalise_node($node_up); - $node =~ /\"/ ? - push @lines, &html_debug("\n", __LINE__) : - push @lines, &html_debug("\n", __LINE__); - next; - } elsif ($tag eq 'include') { - if (/^\@include\s+($FILERE)\s*$/o) { - $file = LocateIncludeFile($1); - if ($file && -e $file) { - &open($file); - print "# including $file\n" if $T2H_VERBOSE; - } else { - warn "$ERROR Can't find $1, skipping"; - } - } else { - warn "$ERROR Bad include line: $_"; - } - next; - } elsif ($tag eq 'ifclear') { - if (/^\@ifclear\s+($VARRE)\s*$/o) { - next unless defined($value{$1}); - &skip_until($tag); - } else { - warn "$ERROR Bad ifclear line: $_"; - } - next; - } elsif ($tag eq 'ifset') { - if (/^\@ifset\s+($VARRE)\s*$/o) { - next if defined($value{$1}); - &skip_until($tag); - } else { - warn "$ERROR Bad ifset line: $_"; - } - next; - } elsif ($tag eq 'menu') { - unless ($T2H_SHOW_MENU) { - &skip_until($tag); - next; - } - &html_push_if($tag); - push(@lines, &html_debug('', __LINE__)); - } elsif ($format_map{$tag}) { - $in_pre = 1 if $format_map{$tag} eq 'PRE'; - &html_push_if($format_map{$tag}); - push(@lines, &html_debug('', __LINE__)); - $in_list++ if $format_map{$tag} eq 'UL' || $format_map{$tag} eq 'OL' ; -# push(@lines, &debug("

\n", __LINE__)) -# if $tag =~ /example/i; - # sunshine@sunshineco.com:
bla
looks better than - #
\nbla
(at least on NeXTstep browser - push(@lines, &debug("<$format_map{$tag}>" . - ($in_pre ? '' : "\n"), __LINE__)); - next; - } - elsif (exists $complex_format_map->{$tag}) - { - my $start = eval $complex_format_map->{$tag}->[0]; - if ($@) - { - print "$ERROR: eval of complex_format_map->{$tag}->[0] $complex_format_map->{$tag}->[0]: $@"; - $start = '
'
-	  }
-	  $in_pre = 1 if $start =~ /
\n", __LINE__));
-		    &html_push_if('TABLE');
-		} else {
-		    push(@lines, &debug("
\n", __LINE__)); - &html_push_if('DL'); - } - push(@lines, &html_debug('', __LINE__)); - } else { - warn "$ERROR Bad table line: $_"; - } - next; - } - elsif ($tag eq 'synindex' || $tag eq 'syncodeindex') - { - if (/^\@$tag\s+(\w+)\s+(\w+)\s*$/) - { - my $from = $1; - my $to = $2; - my $prefix_from = IndexName2Prefix($from); - my $prefix_to = IndexName2Prefix($to); - - warn("$ERROR unknown from index name $from ind syn*index line: $_"), next - unless $prefix_from; - warn("$ERROR unknown to index name $to ind syn*index line: $_"), next - unless $prefix_to; - - if ($tag eq 'syncodeindex') - { - $index_properties->{$prefix_to}->{'from_code'}->{$prefix_from} = 1; - } - else - { - $index_properties->{$prefix_to}->{'from'}->{$prefix_from} = 1; - } - } - else - { - warn "$ERROR Bad syn*index line: $_"; - } - next; - } - elsif ($tag eq 'defindex' || $tag eq 'defcodeindex') - { - if (/^\@$tag\s+(\w+)\s*$/) - { - my $name = $1; - $index_properties->{$name}->{name} = $name; - $index_properties->{$name}->{code} = 1 if $tag eq 'defcodeindex'; - } - else - { - warn "$ERROR Bad defindex line: $_"; - } - next; - } - elsif (/^\@printindex/) - { - push (@lines, "$_"); - next; - } - elsif ($tag eq 'sp') { - push(@lines, &debug("

\n", __LINE__)); - next; - } elsif ($tag eq 'center') { - push(@lines, &debug("

\n", __LINE__)); - s/\@center//; - } elsif ($tag eq 'setref') { - &protect_html; # if setref contains '&' for instance - if (/^\@$tag\s*{($NODERE)}\s*$/) { - $setref = $1; - $setref =~ s/\s+/ /g; # normalize - $setref =~ s/ $//; - $node2sec{$setref} = $name; - $sec2node{$name} = $setref; - $node2href{$setref} = "$docu_doc#$docid"; - } else { - warn "$ERROR Bad setref line: $_"; - } - next; - } elsif ($tag eq 'lowersections') { - local ($sec, $level); - while (($sec, $level) = each %sec2level) { - $sec2level{$sec} = $level + 1; - } - next; - } elsif ($tag eq 'raisesections') { - local ($sec, $level); - while (($sec, $level) = each %sec2level) { - $sec2level{$sec} = $level - 1; - } - next; - } - elsif ($tag eq 'macro' || $tag eq 'rmacro') - { - if (/^\@$tag\s*(\w+)\s*(.*)/) - { - my $name = $1; - my @args; - @args = split(/\s*,\s*/ , $1) - if ($2 =~ /^\s*{(.*)}\s*/); - - $macros->{$name}->{Args} = \@args; - $macros->{$name}->{Body} = ''; - while (($_ = &next_line) && $_ !~ /\@end $tag/) - { - $macros->{$name}->{Body} .= $_; - } - die "ERROR: No closing '\@end $tag' found for macro definition of '$name'\n" - unless (/\@end $tag/); - chomp $macros->{$name}->{Body}; - } - else - { - warn "$ERROR: Bad macro defintion $_" - } - next; - } - elsif ($tag eq 'unmacro') - { - delete $macros->{$1} if (/^\@unmacro\s*(\w+)/); - next; - } - elsif ($tag eq 'documentlanguage') - { - SetDocumentLanguage($1) if (!$T2H_LANG && /documentlanguage\s*(\w+)/); - } - elsif (defined($def_map{$tag})) { - if ($def_map{$tag}) { - s/^\@$tag\s+//; - $tag = $def_map{$tag}; - $_ = "\@$tag $_"; - $tag =~ s/\s.*//; - } - } elsif (defined($user_sub{$tag})) { - s/^\@$tag\s+//; - $sub = $user_sub{$tag}; - print "# user $tag = $sub, arg: $_" if $T2H_DEBUG & $DEBUG_USER; - if (defined(&$sub)) { - chop($_); - &$sub($_); - } else { - warn "$ERROR Bad user sub for $tag: $sub\n"; - } - next; - } - if (defined($def_map{$tag})) { - s/^\@$tag\s+//; - if ($tag =~ /x$/) { - # extra definition line - $tag = $`; - $is_extra = 1; - } else { - $is_extra = 0; - } - while (/\{([^\{\}]*)\}/) { - # this is a {} construct - ($before, $contents, $after) = ($`, $1, $'); - # protect spaces - $contents =~ s/\s+/$;9/g; - # restore $_ protecting {} - $_ = "$before$;7$contents$;8$after"; - } - @args = split(/\s+/, &protect_html($_)); - foreach (@args) { - s/$;9/ /g; # unprotect spaces - s/$;7/\{/g; # ... { - s/$;8/\}/g; # ... } - } - $type = shift(@args); - $type =~ s/^\{(.*)\}$/$1/; - print "# def ($tag): {$type} ", join(', ', @args), "\n" - if $T2H_DEBUG & $DEBUG_DEF; - $type .= ':'; # it's nicer like this - my $name = shift(@args); - $name =~ s/^\{(.*)\}$/$1/; - if ($is_extra) { - $_ = &debug("
", __LINE__); - } else { - $_ = &debug("
\n
", __LINE__); - } - if ($tag eq 'deffn' || $tag eq 'defvr' || $tag eq 'deftp') { - $_ .= "$type $name"; - $_ .= " @args" if @args; - } elsif ($tag eq 'deftypefn' || $tag eq 'deftypevr' - || $tag eq 'defcv' || $tag eq 'defop') { - $ftype = $name; - $name = shift(@args); - $name =~ s/^\{(.*)\}$/$1/; - $_ .= "$type $ftype $name"; - $_ .= " @args" if @args; - } else { - warn "$ERROR Unknown definition type: $tag\n"; - $_ .= "$type $name"; - $_ .= " @args" if @args; - } - $_ .= &debug("\n
", __LINE__); - $name = &unprotect_html($name); - if ($tag eq 'deffn' || $tag eq 'deftypefn') { - EnterIndexEntry('f', $name, $docu_doc, $section, \@lines); -# unshift(@input_spool, "\@findex $name\n"); - } elsif ($tag eq 'defop') { - EnterIndexEntry('f', "$name on $ftype", $docu_doc, $section, \@lines); -# unshift(@input_spool, "\@findex $name on $ftype\n"); - } elsif ($tag eq 'defvr' || $tag eq 'deftypevr' || $tag eq 'defcv') { - EnterIndexEntry('v', $name, $docu_doc, $section, \@lines); -# unshift(@input_spool, "\@vindex $name\n"); - } else { - EnterIndexEntry('t', $name, $docu_doc, $section, \@lines); -# unshift(@input_spool, "\@tindex $name\n"); - } - $dont_html = 1; - } - } elsif ($end_tag) { - if ($format_map{$end_tag}) { - $in_pre = 0 if $format_map{$end_tag} eq 'PRE'; - $in_list-- if $format_map{$end_tag} eq 'UL' || $format_map{$end_tag} eq 'OL' ; - &html_pop_if('P'); - &html_pop_if('LI'); - &html_pop_if(); - push(@lines, &debug("\n", __LINE__)); - push(@lines, &html_debug('', __LINE__)); - } - elsif (exists $complex_format_map->{$end_tag}) - { - my $end = eval $complex_format_map->{$end_tag}->[1]; - if ($@) - { - print "$ERROR: eval of complex_format_map->{$end_tag}->[1] $complex_format_map->{$end_tag}->[0]: $@"; - $end = '
' - } - $in_pre = 0 if $end =~ m|
|; - push(@lines, html_debug($end, __LINE__)); - } elsif ($end_tag =~ /^(|f|v|multi)table$/) { - unless (@tables) { - warn "$ERROR \@end $end_tag without \@*table\n"; - next; - } - &html_pop_if('P'); - ($table_type, $in_table) = split($;, shift(@tables)); - unless ($1 eq $table_type) { - warn "$ERROR \@end $end_tag without matching \@$end_tag\n"; - next; - } - if ($table_type eq "multi") { - push(@lines, "
\n"); - &html_pop_if('TR'); - } else { - push(@lines, "\n"); - &html_pop_if('DD'); - } - &html_pop_if(); - if (@tables) { - ($table_type, $in_table) = split($;, $tables[0]); - } else { - $in_table = 0; - } - } elsif (defined($def_map{$end_tag})) { - push(@lines, &debug("\n", __LINE__)); - } elsif ($end_tag eq 'menu') { - &html_pop_if(); - push(@lines, $_); # must keep it for pass 2 - } - next; - } - ############################################################# - # anchor insertion - while (/\@anchor\s*\{(.*?)\}/) - { - $_ = $`.$'; - my $anchor = $1; - $anchor = &normalise_node($anchor); - push @lines, &html_debug("\n"); - $node2href{$anchor} = "$docu_doc#$anchor"; - next INPUT_LINE if $_ =~ /^\s*$/; - } - - ############################################################# - # index entry generation, after value substitutions - if (/^\@(\w+?)index\s+/) - { - EnterIndexEntry($1, $', $docu_doc, $section, \@lines); - next; - } - # - # protect texi and HTML things - &protect_texi; - $_ = &protect_html($_) unless $dont_html; - $dont_html = 0; - # substitution (unsupported things) - s/^\@exdent\s+//g; - s/\@noindent\s+//g; - s/\@refill\s+//g; - # other substitutions - &simple_substitutions; - s/\@footnote\{/\@footnote$docu_doc\{/g; # mark footnotes, cf. pass 4 - # - # analyze the tag again - # - if ($tag) { - if (defined($sec2level{$tag}) && $sec2level{$tag} > 0) { - if (/^\@$tag\s+(.+)$/) { - $name = $1; - $name = &normalise_node($name); - $level = $sec2level{$tag}; - # check for index - $first_index_chapter = $name - if ($level == 1 && !$first_index_chapter && - $name =~ /index/i); - if ($in_top && /heading/){ - $T2H_HAS_TOP_HEADING = 1; - $_ = &debug("$name\n", __LINE__); - &html_push_if('body'); - print "# top heading, section $name, level $level\n" - if $T2H_DEBUG & $DEBUG_TOC; - } - else - { - unless (/^\@\w*heading/) - { - unless (/^\@unnumbered/) - { - my $number = &update_sec_num($tag, $level); - $name = $number. ' ' . $name if $T2H_NUMBER_SECTIONS; - $sec2number{$name} = $number; - $number2sec{$number} = $name; - } - if (defined($toplevel)) - { - push @lines, ($level==$toplevel ? $CHAPTEREND : $SECTIONEND); - } - else - { - # first time we see a "section" - unless ($level == 1) - { - warn "$WARN The first section found is not of level 1: $_"; - } - $toplevel = $level; - } - push(@sections, $name); - next_doc() if ($T2H_SPLIT eq 'section' || - $T2H_SPLIT && $level == $toplevel); - } - $sec_num++; - $docid = "SEC$sec_num"; - $tocid = (/^\@\w*heading/ ? undef : "TOC$sec_num"); - # check biblio and glossary - $in_bibliography = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*bibliography$/i); - $in_glossary = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*glossary$/i); - # check node - if ($node) - { - warn "$ERROR Duplicate node found: $node\n" - if ($node2sec{$node}); - } - else - { - $name .= ' ' while ($node2sec{$name}); - $node = $name; - } - $name .= ' ' while ($sec2node{$name}); - $section = $name; - $node2sec{$node} = $name; - $sec2node{$name} = $node; - $node2href{$node} = "$docu_doc#$docid"; - $node2next{$node} = $node_next; - $node2prev{$node} = $node_prev; - $node2up{$node} = $node_up; - print "# node $node, section $name, level $level\n" - if $T2H_DEBUG & $DEBUG_TOC; - - $node = ''; - $node_next = ''; - $node_prev = ''; - $node_next = ''; - if ($tocid) - { - # update TOC - while ($level > $curlevel) { - $curlevel++; - push(@toc_lines, "
    \n"); - } - while ($level < $curlevel) { - $curlevel--; - push(@toc_lines, "
\n"); - } - $_ = &t2h_anchor($tocid, "$docu_doc#$docid", $name, 1); - $_ = &substitute_style($_); - push(@stoc_lines, "$_
\n") if ($level == 1); - if ($T2H_NUMBER_SECTIONS) - { - push(@toc_lines, $_ . "
\n") - } - else - { - push(@toc_lines, "
  • " . $_ ."
  • "); - } - } - else - { - push(@lines, &html_debug("\n", - __LINE__)); - } - # update DOC - push(@lines, &html_debug('', __LINE__)); - &html_reset; - $_ = " $name \n\n"; - $_ = &debug($_, __LINE__); - push(@lines, &html_debug('', __LINE__)); - } - # update DOC - foreach $line (split(/\n+/, $_)) { - push(@lines, "$line\n"); - } - next; - } else { - warn "$ERROR Bad section line: $_"; - } - } else { - # track variables - $value{$1} = Unprotect_texi($2), next if /^\@set\s+($VARRE)\s+(.*)$/o; - delete $value{$1}, next if /^\@clear\s+($VARRE)\s*$/o; - # store things - $value{'_shorttitle'} = Unprotect_texi($1), next if /^\@shorttitle\s+(.*)$/; - $value{'_setfilename'} = Unprotect_texi($1), next if /^\@setfilename\s+(.*)$/; - $value{'_settitle'} = Unprotect_texi($1), next if /^\@settitle\s+(.*)$/; - $value{'_author'} .= Unprotect_texi($1)."\n", next if /^\@author\s+(.*)$/; - $value{'_subtitle'} .= Unprotect_texi($1)."\n", next if /^\@subtitle\s+(.*)$/; - $value{'_title'} .= Unprotect_texi($1)."\n", next if /^\@title\s+(.*)$/; - - # list item - if (/^\s*\@itemx?\s+/) { - $what = $'; - $what =~ s/\s+$//; - if ($in_bibliography && $use_bibliography) { - if ($what =~ /^$BIBRE$/o) { - $id = 'BIB' . ++$bib_num; - $bib2href{$what} = "$docu_doc#$id"; - print "# found bibliography for '$what' id $id\n" - if $T2H_DEBUG & $DEBUG_BIB; - $what = &t2h_anchor($id, '', $what); - } - } elsif ($in_glossary && $T2H_USE_GLOSSARY) { - $id = 'GLOSS' . ++$gloss_num; - $entry = $what; - $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/; - $gloss2href{$entry} = "$docu_doc#$id"; - print "# found glossary for '$entry' id $id\n" - if $T2H_DEBUG & $DEBUG_GLOSS; - $what = &t2h_anchor($id, '', $what); - } - elsif ($in_table && ($table_type eq 'f' || $table_type eq 'v')) - { - EnterIndexEntry($table_type, $what, $docu_doc, $section, \@lines); - } - &html_pop_if('P'); - if ($html_element eq 'DL' || $html_element eq 'DD') { - if ($things_map{$in_table} && !$what) { - # special case to allow @table @bullet for instance - push(@lines, &debug("
    $things_map{$in_table}\n", __LINE__)); - } else { - push(@lines, &debug("
    \@$in_table\{$what\}\n", __LINE__)); - } - push(@lines, "
    "); - &html_push('DD') unless $html_element eq 'DD'; - if ($table_type) { # add also an index - unshift(@input_spool, "\@${table_type}index $what\n"); - } - } elsif ($html_element eq 'TABLE') { - push(@lines, &debug("$what\n", __LINE__)); - &html_push('TR'); - } elsif ($html_element eq 'TR') { - push(@lines, &debug("\n", __LINE__)); - push(@lines, &debug("$what\n", __LINE__)); - } else { - push(@lines, &debug("
  • $what\n", __LINE__)); - &html_push('LI') unless $html_element eq 'LI'; - } - push(@lines, &html_debug('', __LINE__)); - if ($deferred_ref) { - push(@lines, &debug("$deferred_ref\n", __LINE__)); - $deferred_ref = ''; - } - next; - } elsif (/^\@tab\s+(.*)$/) { - push(@lines, "$1\n"); - next; - } - } - } - # paragraph separator - if ($_ eq "\n" && ! $in_pre) { - next if $#lines >= 0 && $lines[$#lines] eq "\n"; - if ($html_element eq 'P') { - push (@lines, &debug("

    \n", __LINE__)); - } -# else -# { -# push(@lines, "

    \n"); -# $_ = &debug("

    \n", __LINE__); -# } - elsif ($html_element eq 'body' || $html_element eq 'BLOCKQUOTE' || $html_element eq 'DD' || $html_element eq 'LI') - { - &html_push('P'); - push(@lines, &debug("

    \n", __LINE__)); - } - } - # otherwise - push(@lines, $_) unless $in_titlepage; - push(@lines, &debug("

  • \n", __LINE__)) if ($tag eq 'center'); -} - -# finish TOC -$level = 0; -while ($level < $curlevel) { - $curlevel--; - push(@toc_lines, "\n"); -} - -print "# end of pass 1\n" if $T2H_VERBOSE; - -SetDocumentLanguage('en') unless ($T2H_LANG); -#+++############################################################################ -# # -# Stuff related to Index generation # -# # -#---############################################################################ - -sub EnterIndexEntry -{ - my $prefix = shift; - my $key = shift; - my $docu_doc = shift; - my $section = shift; - my $lines = shift; - local $_; - - warn "$ERROR Undefined index command: $_", next - unless (exists ($index_properties->{$prefix})); - $key =~ s/\s+$//; - $_ = $key; - &protect_texi; - $key = $_; - $_ = &protect_html($_); - my $html_key = substitute_style($_); - my $id; - $key = remove_style($key); - $key = remove_things($key); - $_ = $key; - &unprotect_texi; - $key = $_; - while (exists $index->{$prefix}->{$key}) {$key .= ' '}; - if ($lines->[$#lines] =~ /^$/) - { - $id = $1; - } - else - { - $id = 'IDX' . ++$idx_num; - push(@$lines, &t2h_anchor($id, '', $T2H_INVISIBLE_MARK, !$in_pre)); - } - $index->{$prefix}->{$key}->{html_key} = $html_key; - $index->{$prefix}->{$key}->{section} = $section; - $index->{$prefix}->{$key}->{href} = "$docu_doc#$id"; - print "# found ${prefix}index for '$key' with id $id\n" - if $T2H_DEBUG & $DEBUG_INDEX; -} - -sub IndexName2Prefix -{ - my $name = shift; - my $prefix; - - for $prefix (keys %$index_properties) - { - return $prefix if ($index_properties->{$prefix}->{name} eq $name); - } - return undef; -} - -sub GetIndexEntries -{ - my $normal = shift; - my $code = shift; - my ($entries, $prefix, $key) = ({}); - - for $prefix (keys %$normal) - { - for $key (keys %{$index->{$prefix}}) - { - $entries->{$key} = {%{$index->{$prefix}->{$key}}}; - } - } - - if (defined($code)) - { - for $prefix (keys %$code) - { - unless (exists $normal->{$keys}) - { - for $key (keys %{$index->{$prefix}}) - { - $entries->{$key} = {%{$index->{$prefix}->{$key}}}; - $entries->{$key}->{html_key} = "$entries->{$key}->{html_key}"; - } - } - } - } - return $entries; -} - -sub byAlpha -{ - if ($a =~ /^[A-Za-z]/) - { - if ($b =~ /^[A-Za-z]/) - { - return lc($a) cmp lc($b); - } - else - { - return 1; - } - } - elsif ($b =~ /^[A-Za-z]/) - { - return -1; - } - else - { - return lc($a) cmp lc($b); - } -} - -sub GetIndexPages -{ - my $entries = shift; - my (@Letters, $key); - my ($EntriesByLetter, $Pages, $page) = ({}, [], {}); - my @keys = sort byAlpha keys %$entries; - - for $key (@keys) - { - push @{$EntriesByLetter->{uc(substr($key,0, 1))}} , $entries->{$key}; - } - @Letters = sort byAlpha keys %$EntriesByLetter; - - $T2H_SPLIT_INDEX = 0 unless ($T2H_SPLIT); - - unless ($T2H_SPLIT_INDEX) - { - $page->{First} = $Letters[0]; - $page->{Last} = $Letters[$#Letters]; - $page->{Letters} = \@Letters; - $page->{EntriesByLetter} = $EntriesByLetter; - push @$Pages, $page; - return $Pages; - } - - if ($T2H_SPLIT_INDEX =~ /^\d+$/) - { - my $i = 0; - my ($prev_letter, $letter); - $page->{First} = $Letters[0]; - for $letter (@Letters) - { - if ($i > $T2H_SPLIT_INDEX) - { - $page->{Last} = $prev_letter; - push @$Pages, {%$page}; - $page->{Letters} = []; - $page->{EntriesByLetter} = {}; - $page->{First} = $letter; - $i=0; - } - push @{$page->{Letters}}, $letter; - $page->{EntriesByLetter}->{$letter} = [@{$EntriesByLetter->{$letter}}]; - $i += scalar(@{$EntriesByLetter->{$letter}}); - $prev_letter = $letter; - } - $page->{Last} = $Letters[$#Letters]; - push @$Pages, {%$page}; - } - return $Pages; -} - -sub GetIndexSummary -{ - my $first_page = shift; - my $Pages = shift; - my $name = shift; - my ($page, $letter, $summary, $i, $l1, $l2, $l); - - $i = 0; - $summary = '
    Jump to:   '; - - for $page ($first_page, @$Pages) - { - for $letter (@{$page->{Letters}}) - { - $l = t2h_anchor('', "$page->{href}#${name}_$letter", "$letter", - 0, 'style="text-decoration:none"') . "\n   \n"; - - if ($letter =~ /^[A-Za-z]/) - { - $l2 .= $l; - } - else - { - $l1 .= $l; - } - } - } - $summary .= $l1 . "
    \n" if ($l1); - $summary .= $l2 . '

    '; - return $summary; -} - -sub PrintIndexPage -{ - my $lines = shift; - my $summary = shift; - my $page = shift; - my $name = shift; - - push @$lines, $summary; - - push @$lines , <

    - - - -EOT - - for $letter (@{$page->{Letters}}) - { - push @$lines, "\n"; - for $entry (@{$page->{EntriesByLetter}->{$letter}}) - { - push @$lines, - "\n"; - } - push @$lines, "\n"; - } - push @$lines, "
    Index Entry Section

    $letter
    " . - t2h_anchor('', $entry->{href}, $entry->{html_key}) . - "" . - t2h_anchor('', sec_href($entry->{section}), clean_name($entry->{section})) . - "

    "; - push @$lines, $summary; -} - -sub PrintIndex -{ - my $lines = shift; - my $name = shift; - my $section = shift; - $section = 'Top' unless $section; - my $prefix = IndexName2Prefix($name); - - warn ("$ERROR printindex: bad index name: $name"), return - unless $prefix; - - if ($index_properties->{$prefix}->{code}) - { - $index_properties->{$prefix}->{from_code}->{$prefix} = 1; - } - else - { - $index_properties->{$prefix}->{from}->{$prefix}= 1; - } - - my $Entries = GetIndexEntries($index_properties->{$prefix}->{from}, - $index_properties->{$prefix}->{from_code}); - return unless %$Entries; - - if ($T2H_IDX_SUMMARY) - { - my $key; - open(FHIDX, ">$docu_rdir$docu_name" . "_$name.idx") - || die "Can't open > $docu_rdir$docu_name" . "_$name.idx for writing: $!\n"; - print "# writing $name index summary in $docu_rdir$docu_name" . "_$name.idx...\n" if $T2H_VERBOSE; - - for $key (sort keys %$Entries) - { - print FHIDX "$key\t$Entries->{$key}->{href}\n"; - } - } - - my $Pages = GetIndexPages($Entries); - my $page; - my $first_page = shift @$Pages; - my $sec_name = $section; - # remove section number - $sec_name =~ s/.*? // if $sec_name =~ /^([A-Z]|\d+)\./; - - ($first_page->{href} = sec_href($section)) =~ s/\#.*$//; - # Update tree structure of document - if (@$Pages) - { - my $sec; - my @after; - - while (@sections && $sections[$#sections] ne $section) - { - unshift @after, pop @sections; - } - - for $page (@$Pages) - { - my $node = ($page->{First} ne $page->{Last} ? - "$sec_name: $page->{First} -- $page->{Last}" : - "$sec_name: $page->{First}"); - push @sections, $node; - $node2sec{$node} = $node; - $sec2node{$node} = $node; - $node2up{$node} = $section; - $page->{href} = next_doc(); - $page->{name} = $node; - $node2href{$node} = $page->{href}; - if ($prev_node) - { - $node2next{$prev_node} = $node; - $node2prev{$node} = $prev_node; - } - $prev_node = $node; - } - push @sections, @after; - } - - my $summary = GetIndexSummary($first_page, $Pages, $name); - PrintIndexPage($lines, $summary, $first_page, $name); - for $page (@$Pages) - { - push @$lines, ($T2H_SPLIT eq 'chapter' ? $CHAPTEREND : $SECTIONEND); - push @$lines, "

    $page->{name}

    \n"; - PrintIndexPage($lines, $summary, $page, $name); - } -} - - -#+++############################################################################ -# # -# Pass 2/3: handle style, menu, index, cross-reference # -# # -#---############################################################################ - -@lines2 = (); # whole document (2nd pass) -@lines3 = (); # whole document (3rd pass) -$in_menu = 0; # am I inside a menu - -while (@lines) { - $_ = shift(@lines); - # - # special case (protected sections) - # - if (/^$PROTECTTAG/o) { - push(@lines2, $_); - next; - } - # - # menu - # - if (/^\@menu\b/) - { - $in_menu = 1; - $in_menu_listing = 1; - push(@lines2, &debug("
    \n", __LINE__)); - next; - } - if (/^\@end\s+menu\b/) - { - if ($in_menu_listing) - { - push(@lines2, &debug("
    \n", __LINE__)); - } - else - { - push(@lines2, &debug("\n", __LINE__)); - } - $in_menu = 0; - $in_menu_listing = 0; - next; - } - if ($in_menu) - { - my ($node, $name, $descr); - if (/^\*\s+($NODERE)::/o) - { - $node = $1; - $descr = $'; - } - elsif (/^\*\s+(.+):\s+([^\t,\.\n]+)[\t,\.\n]/) - { - $name = $1; - $node = $2; - $descr = $'; - } - elsif (/^\*/) - { - warn "$ERROR Bad menu line: $_"; - } - else - { - if ($in_menu_listing) - { - $in_menu_listing = 0; - push(@lines2, &debug("\n", __LINE__)); - } - # should be like verbatim -- preseve spaces, etc - s/ /\ /g; - $_ .= "
    \n"; - push(@lines2, $_); - } - if ($node) - { - if (! $in_menu_listing) - { - $in_menu_listing = 1; - push(@lines2, &debug("\n", __LINE__)); - } - # look for continuation - while ($lines[0] =~ /^\s+\w+/) - { - $descr .= shift(@lines); - } - &menu_entry($node, $name, $descr); - } - next; - } - # - # printindex - # - PrintIndex(\@lines2, $2, $1), next - if (/^\@printindex\s+(\w+)/); - # - # simple style substitutions - # - $_ = &substitute_style($_); - # - # xref - # - while (/\@(x|px|info|)ref{([^{}]+)(}?)/) { - # note: Texinfo may accept other characters - ($type, $nodes, $full) = ($1, $2, $3); - ($before, $after) = ($`, $'); - if (! $full && $after) { - warn "$ERROR Bad xref (no ending } on line): $_"; - $_ = "$before$;0${type}ref\{$nodes$after"; - next; # while xref - } - if ($type eq 'x') { - $type = "$T2H_WORDS->{$T2H_LANG}->{'See'} "; - } elsif ($type eq 'px') { - $type = "$T2H_WORDS->{$T2H_LANG}->{'see'} "; - } elsif ($type eq 'info') { - $type = "$T2H_WORDS->{$T2H_LANG}->{'See'} Info"; - } else { - $type = ''; - } - unless ($full) { - $next = shift(@lines); - $next = &substitute_style($next); - chop($nodes); # remove final newline - if ($next =~ /\}/) { # split on 2 lines - $nodes .= " $`"; - $after = $'; - } else { - $nodes .= " $next"; - $next = shift(@lines); - $next = &substitute_style($next); - chop($nodes); - if ($next =~ /\}/) { # split on 3 lines - $nodes .= " $`"; - $after = $'; - } else { - warn "$ERROR Bad xref (no ending }): $_"; - $_ = "$before$;0xref\{$nodes$after"; - unshift(@lines, $next); - next; # while xref - } - } - } - $nodes =~ s/\s+/ /g; # remove useless spaces - @args = split(/\s*,\s*/, $nodes); - $node = $args[0]; # the node is always the first arg - $node = &normalise_node($node); - $sec = $args[2] || $args[1] || $node2sec{$node}; - $href = $node2href{$node}; - if (@args == 5) { # reference to another manual - $sec = $args[2] || $node; - $man = $args[4] || $args[3]; - $_ = "${before}${type}$T2H_WORDS->{$T2H_LANG}->{'section'} `$sec' in \@cite{$man}$after"; - } elsif ($type =~ /Info/) { # inforef - warn "$ERROR Wrong number of arguments: $_" unless @args == 3; - ($nn, $_, $in) = @args; - $_ = "${before}${type} file `$in', node `$nn'$after"; - } elsif ($sec && $href && ! $T2H_SHORT_REF) { - $_ = "${before}${type}"; - $_ .= "$T2H_WORDS->{$T2H_LANG}->{'section'} " if ${type}; - $_ .= &t2h_anchor('', $href, $sec) . $after; - } - elsif ($href) - { - $_ = "${before}${type} " . - &t2h_anchor('', $href, $args[2] || $args[1] || $node) . - $after; - } - else { - warn "$ERROR Undefined node ($node): $_"; - $_ = "$before$;0xref{$nodes}$after"; - } - } - - # replace images - s[\@image\s*{(.+?)}] - { - my @args = split (/\s*,\s*/, $1); - my $base = $args[0]; - my $image = - LocateIncludeFile("$base.png") || - LocateIncludeFile("$base.jpg") || - LocateIncludeFile("$base.gif"); - warn "$ERROR no image file for $base: $_" unless ($image && -e $image); - "\"$base\""; - ($T2H_CENTER_IMAGE ? - "
    \"$base\"
    " : - "\"$base\""); - }eg; - - # - # try to guess bibliography references or glossary terms - # - unless (/^/) { - $done .= $pre . &t2h_anchor('', $href, $what); - } else { - $done .= "$pre$what"; - } - $_ = $post; - } - $_ = $done . $_; - } - if ($T2H_USE_GLOSSARY) { - $done = ''; - while (/\b\w+\b/) { - ($pre, $what, $post) = ($`, $&, $'); - $entry = $what; - $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/; - $href = $gloss2href{$entry}; - if (defined($href) && $post !~ /^[^<]*<\/A>/) { - $done .= $pre . &t2h_anchor('', $href, $what); - } else { - $done .= "$pre$what"; - } - $_ = $post; - } - $_ = $done . $_; - } - } - # otherwise - push(@lines2, $_); -} -print "# end of pass 2\n" if $T2H_VERBOSE; - -# -# split style substitutions -# -while (@lines2) { - $_ = shift(@lines2); - # - # special case (protected sections) - # - if (/^$PROTECTTAG/o) { - push(@lines3, $_); - next; - } - # - # split style substitutions - # - $old = ''; - while ($old ne $_) { - $old = $_; - if (/\@(\w+)\{/) { - ($before, $style, $after) = ($`, $1, $'); - if (defined($style_map{$style})) { - $_ = $after; - $text = ''; - $after = ''; - $failed = 1; - while (@lines2) { - if (/\}/) { - $text .= $`; - $after = $'; - $failed = 0; - last; - } else { - $text .= $_; - $_ = shift(@lines2); - } - } - if ($failed) { - die "* Bad syntax (\@$style) after: $before\n"; - } else { - $text = &apply_style($style, $text); - $_ = "$before$text$after"; - } - } - } - } - # otherwise - push(@lines3, $_); -} -print "# end of pass 3\n" if $T2H_VERBOSE; - -#+++############################################################################ -# # -# Pass 4: foot notes, final cleanup # -# # -#---############################################################################ - -@foot_lines = (); # footnotes -@doc_lines = (); # final document -$end_of_para = 0; # true if last line is

    - -while (@lines3) { - $_ = shift(@lines3); - # - # special case (protected sections) - # - if (/^$PROTECTTAG/o) { - push(@doc_lines, $_); - $end_of_para = 0; - next; - } - # - # footnotes - # - while (/\@footnote([^\{\s]+)\{/) { - ($before, $d, $after) = ($`, $1, $'); - $_ = $after; - $text = ''; - $after = ''; - $failed = 1; - while (@lines3) { - if (/\}/) { - $text .= $`; - $after = $'; - $failed = 0; - last; - } else { - $text .= $_; - $_ = shift(@lines3); - } - } - if ($failed) { - die "* Bad syntax (\@footnote) after: $before\n"; - } else { - $foot_num++; - $docid = "DOCF$foot_num"; - $footid = "FOOT$foot_num"; - $foot = "($foot_num)"; - push(@foot_lines, "

    " . &t2h_anchor($footid, "$d#$docid", $foot) . "

    \n"); - $text = "

    $text" unless $text =~ /^\s*

    /; - push(@foot_lines, "$text\n"); - $_ = $before . &t2h_anchor($docid, "$docu_foot#$footid", $foot) . $after; - } - } - # - # remove unnecessary

    - # - if (/^\s*

    \s*$/) { - next if $end_of_para++; - } else { - $end_of_para = 0; - } - # otherwise - push(@doc_lines, $_); -} - -print "# end of pass 4\n" if $T2H_VERBOSE; - -#+++############################################################################ -# # -# Pass 5: print things # -# # -#---############################################################################ - -$T2H_L2H = &l2h_FinishToLatex if ($T2H_L2H); -$T2H_L2H = &l2h_ToHtml if ($T2H_L2H); -$T2H_L2H = &l2h_InitFromHtml if ($T2H_L2H); - -# fix node2up, node2prev, node2next, if desired -if ($has_top_command) -{ - for $section (keys %sec2number) - { - $node = $sec2node{$section}; - $node2up{$node} = Sec2UpNode($section) unless $node2up{$node}; - $node2prev{$node} = Sec2PrevNode($section) unless $node2prev{$node}; - $node2next{$node} = Sec2NextNode($section) unless $node2next{$node}; - } -} - -# prepare %T2H_THISDOC -$T2H_THISDOC{fulltitle} = $value{'_title'} || $value{'_settitle'} || "Untitled Document"; -$T2H_THISDOC{title} = $value{'_settitle'} || $T2H_THISDOC{fulltitle}; -$T2H_THISDOC{author} = $value{'_author'}; -$T2H_THISDOC{subtitle} = $value{'_subtitle'}; -$T2H_THISDOC{shorttitle} = $value{'_shorttitle'}; -for $key (keys %T2H_THISDOC) -{ - $_ = &substitute_style($T2H_THISDOC{$key}); - &unprotect_texi; - s/\s*$//; - $T2H_THISDOC{$key} = $_; -} - -# if no sections, then simply print document as is -unless (@sections) -{ - print "# Writing content into $docu_top_file \n" if $T2H_VERBOSE; - open(FILE, "> $docu_top_file") - || die "$ERROR: Can't open $docu_top_file for writing: $!\n"; - - &$T2H_print_page_head(\*FILE); - $T2H_THIS_SECTION = \@doc_lines; - t2h_print_lines(\*FILE); - &$T2H_print_foot_navigation(\*FILE); - &$T2H_print_page_foot(\*FILE); - close(FILE); - goto Finish; -} - -# initialize $T2H_HREF, $T2H_NAME -%T2H_HREF = - ( - 'First' , sec_href($sections[0]), - 'Last', sec_href($sections[$#sections]), - 'About', $docu_about. '#SEC_About', - ); - -# prepare TOC, OVERVIEW, TOP -$T2H_TOC = \@toc_lines; -$T2H_OVERVIEW = \@stoc_lines; -if ($has_top) -{ - while (1) - { - $_ = shift @doc_lines; - last if /$TOPEND/; - push @$T2H_TOP, $_; - } - $T2H_HREF{'Top'} = $docu_top . '#SEC_Top'; -} -else -{ - $T2H_HREF{'Top'} = $T2H_HREF{First}; -} - -$node2href{Top} = $T2H_HREF{Top}; -$T2H_HREF{Contents} = $docu_toc.'#SEC_Contents' if @toc_lines; -$T2H_HREF{Overview} = $docu_stoc.'#SEC_OVERVIEW' if @stoc_lines; - -# settle on index -if ($T2H_INDEX_CHAPTER) -{ - $T2H_HREF{Index} = $node2href{normalise_node($T2H_INDEX_CHAPTER)}; - warn "$ERROR T2H_INDEX_CHAPTER '$T2H_INDEX_CHAPTER' not found\n" - unless $T2H_HREF{Index}; -} -if (! $T2H_HREF{Index} && $first_index_chapter) -{ - $T2H_INDEX_CHAPTER = $first_index_chapter; - $T2H_HREF{Index} = $node2href{$T2H_INDEX_CHAPTER}; -} - -print "# Using '" . clean_name($T2H_INDEX_CHAPTER) . "' as index page\n" - if ($T2H_VERBOSE && $T2H_HREF{Index}); - -%T2H_NAME = - ( - 'First', clean_name($sec2node{$sections[0]}), - 'Last', clean_name($sec2node{$sections[$#sections]}), - 'About', $T2H_WORDS->{$T2H_LANG}->{'About_Title'}, - 'Contents', $T2H_WORDS->{$T2H_LANG}->{'ToC_Title'}, - 'Overview', $T2H_WORDS->{$T2H_LANG}->{'Overview_Title'}, - 'Index' , clean_name($T2H_INDEX_CHAPTER), - 'Top', clean_name($T2H_TOP_HEADING || $T2H_THISDOC{'title'} || $T2H_THISDOC{'shorttitle'}), - ); - -############################################################################# -# print frame and frame toc file -# -if ( $T2H_FRAMES ) -{ - open(FILE, "> $docu_frame_file") - || die "$ERROR: Can't open $docu_frame_file for writing: $!\n"; - print "# Creating frame in $docu_frame_file ...\n" if $T2H_VERBOSE; - &$T2H_print_frame(\*FILE); - close(FILE); - - open(FILE, "> $docu_toc_frame_file") - || die "$ERROR: Can't open $docu_toc_frame_file for writing: $!\n"; - print "# Creating toc frame in $docu_frame_file ...\n" if $T2H_VERBOSE; - &$T2H_print_toc_frame(\*FILE); - close(FILE); -} - - -############################################################################# -# print Top -# -open(FILE, "> $docu_top_file") - || die "$ERROR: Can't open $docu_top_file for writing: $!\n"; -&$T2H_print_page_head(\*FILE) unless ($T2H_SPLIT); - -if ($has_top) -{ - print "# Creating Top in $docu_top_file ...\n" if $T2H_VERBOSE; - $T2H_THIS_SECTION = $T2H_TOP; - $T2H_HREF{This} = $T2H_HREF{Top}; - $T2H_NAME{This} = $T2H_NAME{Top}; - &$T2H_print_Top(\*FILE); -} - -close(FILE) if $T2H_SPLIT; - -############################################################################# -# Print sections -# -$T2H_NODE{Forward} = $sec2node{$sections[0]}; -$T2H_NAME{Forward} = &clean_name($sec2node{$sections[0]}); -$T2H_HREF{Forward} = sec_href($sections[0]); -$T2H_NODE{This} = 'Top'; -$T2H_NAME{This} = $T2H_NAME{Top}; -$T2H_HREF{This} = $T2H_HREF{Top}; -if ($T2H_SPLIT) -{ - print "# writing " . scalar(@sections) . - " sections in $docu_rdir$docu_name"."_[1..$doc_num]" - if $T2H_VERBOSE; - $previous = ($T2H_SPLIT eq 'chapter' ? $CHAPTEREND : $SECTIONEND); - undef $FH; - $doc_num = 0; -} -else -{ - print "# writing " . scalar(@sections) . " sections in $docu_top_file ..." - if $T2H_VERBOSE; - $FH = \*FILE; - $previous = ''; -} - -$counter = 0; -# loop through sections -while ($section = shift(@sections)) -{ - if ($T2H_SPLIT && ($T2H_SPLIT eq 'section' || $previous eq $CHAPTEREND)) - { - if ($FH) - { - #close previous page - &$T2H_print_chapter_footer($FH) if $T2H_SPLIT eq 'chapter'; - &$T2H_print_page_foot($FH); - close($FH); - undef $FH; - } - } - $T2H_NAME{Back} = $T2H_NAME{This}; - $T2H_HREF{Back} = $T2H_HREF{This}; - $T2H_NODE{Back} = $T2H_NODE{This}; - $T2H_NAME{This} = $T2H_NAME{Forward}; - $T2H_HREF{This} = $T2H_HREF{Forward}; - $T2H_NODE{This} = $T2H_NODE{Forward}; - if ($sections[0]) - { - $T2H_NODE{Forward} = $sec2node{$sections[0]}; - $T2H_NAME{Forward} = &clean_name($T2H_NODE{Forward}); - $T2H_HREF{Forward} = sec_href($sections[0]); - } - else - { - undef $T2H_HREF{Forward}, $T2H_NODE{Forward}, $T2H_NAME{Forward}; - } - - $node = $node2up{$T2H_NODE{This}}; - $T2H_HREF{Up} = $node2href{$node}; - if ($T2H_HREF{Up} eq $T2H_HREF{This} || ! $T2H_HREF{Up}) - { - $T2H_NAME{Up} = $T2H_NAME{Top}; - $T2H_HREF{Up} = $T2H_HREF{Top}; - $T2H_NODE{Up} = 'Up'; - } - else - { - $T2H_NAME{Up} = &clean_name($node); - $T2H_NODE{Up} = $node; - } - - $node = $T2H_NODE{This}; - $node = $node2prev{$node}; - $T2H_NAME{Prev} = &clean_name($node); - $T2H_HREF{Prev} = $node2href{$node}; - $T2H_NODE{Prev} = $node; - - $node = $T2H_NODE{This}; - if ($node2up{$node} && $node2up{$node} ne 'Top'&& - ($node2prev{$node} eq $T2H_NODE{Back} || ! $node2prev{$node})) - { - $node = $node2up{$node}; - while ($node && $node ne $node2up{$node} && ! $node2prev{$node}) - { - $node = $node2up{$node}; - } - $node = $node2prev{$node} - unless $node2up{$node} eq 'Top' || ! $node2up{$node}; - } - else - { - $node = $node2prev{$node}; - } - $T2H_NAME{FastBack} = &clean_name($node); - $T2H_HREF{FastBack} = $node2href{$node}; - $T2H_NODE{FastBack} = $node; - - $node = $T2H_NODE{This}; - $node = $node2next{$node}; - $T2H_NAME{Next} = &clean_name($node); - $T2H_HREF{Next} = $node2href{$node}; - $T2H_NODE{Next} = $node; - - $node = $T2H_NODE{This}; - if ($node2up{$node} && $node2up{$node} ne 'Top'&& - ($node2next{$node} eq $T2H_NODE{Forward} || ! $node2next{$node})) - { - $node = $node2up{$node}; - while ($node && $node ne $node2up{$node} && ! $node2next{$node}) - { - $node = $node2up{$node}; - } - } - $node = $node2next{$node}; - $T2H_NAME{FastForward} = &clean_name($node); - $T2H_HREF{FastForward} = $node2href{$node}; - $T2H_NODE{FastForward} = $node; - - if (! defined($FH)) - { - my $file = $T2H_HREF{This}; - $file =~ s/\#.*$//; - open(FILE, "> $docu_rdir$file") || - die "$ERROR: Can't open $docu_rdir$file for writing: $!\n"; - $FH = \*FILE; - &$T2H_print_page_head($FH); - t2h_print_label($FH); - &$T2H_print_chapter_header($FH) if $T2H_SPLIT eq 'chapter'; - } - else - { - t2h_print_label($FH); - } - - $T2H_THIS_SECTION = []; - while (@doc_lines) { - $_ = shift(@doc_lines); - last if ($_ eq $SECTIONEND || $_ eq $CHAPTEREND); - push(@$T2H_THIS_SECTION, $_); - } - $previous = $_; - &$T2H_print_section($FH); - - if ($T2H_VERBOSE) - { - $counter++; - print "." if $counter =~ /00$/; - } -} -if ($T2H_SPLIT) -{ - &$T2H_print_chapter_footer($FH) if $T2H_SPLIT eq 'chapter'; - &$T2H_print_page_foot($FH); - close($FH); -} -print "\n" if $T2H_VERBOSE; - -############################################################################# -# Print ToC, Overview, Footnotes -# -undef $T2H_HREF{Prev}; -undef $T2H_HREF{Next}; -undef $T2H_HREF{Back}; -undef $T2H_HREF{Forward}; -undef $T2H_HREF{Up}; - -if (@foot_lines) -{ - print "# writing Footnotes in $docu_foot_file...\n" if $T2H_VERBOSE; - open (FILE, "> $docu_foot_file") || die "$ERROR: Can't open $docu_foot_file for writing: $!\n" - if $T2H_SPLIT; - $T2H_HREF{This} = $docu_foot; - $T2H_NAME{This} = $T2H_WORDS->{$T2H_LANG}->{'Footnotes_Title'}; - $T2H_THIS_SECTION = \@foot_lines; - &$T2H_print_Footnotes(\*FILE); - close(FILE) if $T2H_SPLIT; -} - -if (@toc_lines) -{ - print "# writing Toc in $docu_toc_file...\n" if $T2H_VERBOSE; - open (FILE, "> $docu_toc_file") || die "$ERROR: Can't open $docu_toc_file for writing: $!\n" - if $T2H_SPLIT; - $T2H_HREF{This} = $T2H_HREF{Contents}; - $T2H_NAME{This} = $T2H_NAME{Contents}; - $T2H_THIS_SECTION = \@toc_lines; - &$T2H_print_Toc(\*FILE); - close(FILE) if $T2H_SPLIT; -} - -if (@stoc_lines) -{ - print "# writing Overview in $docu_stoc_file...\n" if $T2H_VERBOSE; - open (FILE, "> $docu_stoc_file") || die "$ERROR: Can't open $docu_stoc_file for writing: $!\n" - if $T2H_SPLIT; - - $T2H_HREF{This} = $T2H_HREF{Overview}; - $T2H_NAME{This} = $T2H_NAME{Overview}; - $T2H_THIS_SECTION = \@stoc_lines; - unshift @$T2H_THIS_SECTION, "

    \n"; - push @$T2H_THIS_SECTION, "\n
    \n"; - &$T2H_print_Overview(\*FILE); - close(FILE) if $T2H_SPLIT; -} - -if ($about_body = &$T2H_about_body()) -{ - print "# writing About in $docu_about_file...\n" if $T2H_VERBOSE; - open (FILE, "> $docu_about_file") || die "$ERROR: Can't open $docu_about_file for writing: $!\n" - if $T2H_SPLIT; - - $T2H_HREF{This} = $T2H_HREF{About}; - $T2H_NAME{This} = $T2H_NAME{About}; - $T2H_THIS_SECTION = [$about_body]; - &$T2H_print_About(\*FILE); - close(FILE) if $T2H_SPLIT; -} - -unless ($T2H_SPLIT) -{ - &$T2H_print_page_foot(\*FILE); - close (FILE); -} - -Finish: -&l2h_FinishFromHtml if ($T2H_L2H); -&l2h_Finish if($T2H_L2H); -print "# that's all folks\n" if $T2H_VERBOSE; - -exit(0); - -#+++############################################################################ -# # -# Low level functions # -# # -#---############################################################################ - -sub LocateIncludeFile -{ - my $file = shift; - my $dir; - - return $file if (-e $file && -r $file); - foreach $dir (@T2H_INCLUDE_DIRS) - { - return "$dir/$file" if (-e "$dir/$file" && -r "$dir/$file"); - } - return undef; -} - -sub clean_name -{ - local ($_); - $_ = &remove_style($_[0]); - &unprotect_texi; - return $_; -} - -sub update_sec_num { - local($name, $level) = @_; - my $ret; - - $level--; # here we start at 0 - if ($name =~ /^appendix/ || defined(@appendix_sec_num)) { - # appendix style - if (defined(@appendix_sec_num)) { - &incr_sec_num($level, @appendix_sec_num); - } else { - @appendix_sec_num = ('A', 0, 0, 0); - } - $ret = join('.', @appendix_sec_num[0..$level]); - } else { - # normal style - if (defined(@normal_sec_num)) - { - &incr_sec_num($level, @normal_sec_num); - } - else - { - @normal_sec_num = (1, 0, 0, 0); - } - $ret = join('.', @normal_sec_num[0..$level]); - } - - $ret .= "." if $level == 0; - return $ret; -} - -sub incr_sec_num { - local($level, $l); - $level = shift(@_); - $_[$level]++; - foreach $l ($level+1 .. 3) { - $_[$l] = 0; - } -} - -sub Sec2UpNode -{ - my $sec = shift; - my $num = $sec2number{$sec}; - - return '' unless $num; - return 'Top' unless $num =~ /\.\d+/; - $num =~ s/\.[^\.]*$//; - $num = $num . '.' unless $num =~ /\./; - return $sec2node{$number2sec{$num}}; -} - -sub Sec2PrevNode -{ - my $sec = shift; - my $num = $sec2number{$sec}; - my ($i, $post); - - if ($num =~ /(\w+)(\.$|$)/) - { - $num = $`; - $i = $1; - $post = $2; - if ($i eq 'A') - { - $i = $normal_sec_num[0]; - } - elsif ($i ne '1') - { - # unfortunately, -- operator is not magical - $i = chr(ord($i) + 1); - } - else - { - return ''; - } - return $sec2node{$number2sec{$num . $i . $post}} - } - return ''; -} - -sub Sec2NextNode -{ - my $sec = shift; - my $num = $sec2number{$sec}; - my $i; - - if ($num =~ /(\w+)(\.$|$)/) - { - $num = $`; - $i = $1; - $post = $2; - if ($post eq '.' && $i eq $normal_sec_num[0]) - { - $i = 'A'; - } - else - { - $i++; - } - return $sec2node{$number2sec{$num . $i . $post}} - } - return ''; -} - -sub check { - local($_, %seen, %context, $before, $match, $after); - - while (<>) { - if (/\@(\*|\.|\:|\@|\{|\})/) { - $seen{$&}++; - $context{$&} .= "> $_" if $T2H_VERBOSE; - $_ = "$`XX$'"; - redo; - } - if (/\@(\w+)/) { - ($before, $match, $after) = ($`, $&, $'); - if ($before =~ /\b[\w-]+$/ && $after =~ /^[\w-.]*\b/) { # e-mail address - $seen{'e-mail address'}++; - $context{'e-mail address'} .= "> $_" if $T2H_VERBOSE; - } else { - $seen{$match}++; - $context{$match} .= "> $_" if $T2H_VERBOSE; - } - $match =~ s/^\@/X/; - $_ = "$before$match$after"; - redo; - } - } - - foreach (sort(keys(%seen))) { - if ($T2H_VERBOSE) { - print "$_\n"; - print $context{$_}; - } else { - print "$_ ($seen{$_})\n"; - } - } -} - -sub open { - local($name) = @_; - - ++$fh_name; - if (open($fh_name, $name)) { - unshift(@fhs, $fh_name); - } else { - warn "$ERROR Can't read file $name: $!\n"; - } -} - -sub init_input { - @fhs = (); # hold the file handles to read - @input_spool = (); # spooled lines to read - $fh_name = 'FH000'; - &open($docu); -} - -sub next_line { - local($fh, $line); - - if (@input_spool) { - $line = shift(@input_spool); - return($line); - } - while (@fhs) { - $fh = $fhs[0]; - $line = <$fh>; - return($line) if $line; - close($fh); - shift(@fhs); - } - return(undef); -} - -# used in pass 1, use &next_line -sub skip_until { - local($tag) = @_; - local($_); - - while ($_ = &next_line) { - return if /^\@end\s+$tag\s*$/; - } - die "* Failed to find '$tag' after: " . $lines[$#lines]; -} - -# used in pass 1 for l2h use &next_line -sub string_until { - local($tag) = @_; - local($_, $string); - - while ($_ = &next_line) { - return $string if /^\@end\s+$tag\s*$/; -# $_ =~ s/hbox/mbox/g; - $string = $string.$_; - } - die "* Failed to find '$tag' after: " . $lines[$#lines]; -} - -# -# HTML stacking to have a better HTML output -# - -sub html_reset { - @html_stack = ('html'); - $html_element = 'body'; -} - -sub html_push { - local($what) = @_; - push(@html_stack, $html_element); - $html_element = $what; -} - -sub html_push_if { - local($what) = @_; - push(@html_stack, $html_element) - if ($html_element && $html_element ne 'P'); - $html_element = $what; -} - -sub html_pop { - $html_element = pop(@html_stack); -} - -sub html_pop_if { - local($elt); - - if (@_) { - foreach $elt (@_) { - if ($elt eq $html_element) { - $html_element = pop(@html_stack) if @html_stack; - last; - } - } - } else { - $html_element = pop(@html_stack) if @html_stack; - } -} - -sub html_debug { - local($what, $line) = @_; - if ($T2H_DEBUG & $DEBUG_HTML) - { - $what = "\n" unless $what; - return("$what") - } - return($what); -} - -# to debug the output... -sub debug { - local($what, $line) = @_; - return("$what") - if $T2H_DEBUG & $DEBUG_HTML; - return($what); -} - -sub SimpleTexi2Html -{ - local $_ = $_[0]; - &protect_texi; - &protect_html; - $_ = substitute_style($_); - $_[0] = $_; -} - -sub normalise_node { - local $_ = $_[0]; - s/\s+/ /g; - s/ $//; - s/^ //; - &protect_texi; - &protect_html; - $_ = substitute_style($_); - $_[0] = $_; -} - -sub menu_entry -{ - my ($node, $name, $descr) = @_; - my ($href, $entry); - - &normalise_node($node); - $href = $node2href{$node}; - if ($href) - { - $descr =~ s/^\s+//; - $descr =~ s/\s*$//; - $descr = SimpleTexi2Html($descr); - if ($T2H_NUMBER_SECTIONS && !$T2H_NODE_NAME_IN_MENU && $node2sec{$node}) - { - $entry = $node2sec{$node}; - $name = ''; - } - else - { - &normalise_node($name); - $entry = ($name && ($name ne $node || ! $T2H_AVOID_MENU_REDUNDANCY) - ? "$name : $node" : $node); - } - - if ($T2H_AVOID_MENU_REDUNDANCY && $descr) - { - my $clean_entry = $entry; - $clean_entry =~ s/^.*? // if ($clean_entry =~ /^([A-Z]|\d+)\.[\d\.]* /); - $clean_entry =~ s/[^\w]//g; - my $clean_descr = $descr; - $clean_descr =~ s/[^\w]//g; - $descr = '' if ($clean_entry eq $clean_descr) - } - push(@lines2,&debug('
    \n", __LINE__)); - } - elsif ($node =~ /^\(.*\)\w+/) - { - push(@lines2,&debug('\n", __LINE__)) - } - else - { - warn "$ERROR Undefined node of menu_entry ($node): $_"; - } -} - -sub do_ctrl { "^$_[0]" } - -sub do_email { - local($addr, $text) = split(/,\s*/, $_[0]); - - $text = $addr unless $text; - &t2h_anchor('', "mailto:$addr", $text); -} - -sub do_sc -{ - # l2h does this much better - return &l2h_ToLatex("{\\sc ".&unprotect_html($_[0])."}") if ($T2H_L2H); - return "\U$_[0]\E"; -} - -sub do_math -{ - return &l2h_ToLatex("\$".&unprotect_html($_[0])."\$") if ($T2H_L2H); - return "".$text.""; -} - -sub do_uref { - local($url, $text, $only_text) = split(/,\s*/, $_[0]); - - $text = $only_text if $only_text; - $text = $url unless $text; - &t2h_anchor('', $url, $text); -} - -sub do_url { &t2h_anchor('', $_[0], $_[0]) } - -sub do_acronym -{ - return '' . $_[0] . ''; -} - -sub do_accent -{ - return "&$_[0]acute;" if $_[1] eq 'H'; - return "$_[0]." if $_[1] eq 'dotaccent'; - return "$_[0]*" if $_[1] eq 'ringaccent'; - return "$_[0]".'[' if $_[1] eq 'tieaccent'; - return "$_[0]".'(' if $_[1] eq 'u'; - return "$_[0]_" if $_[1] eq 'ubaraccent'; - return ".$_[0]" if $_[1] eq 'udotaccent'; - return "$_[0]<" if $_[1] eq 'v'; - return "&$_[0]cedil;" if $_[1] eq ','; - return "$_[0]" if $_[1] eq 'dotless'; - return undef; -} - -sub apply_style { - local($texi_style, $text) = @_; - local($style); - - $style = $style_map{$texi_style}; - if (defined($style)) { # known style - if ($style =~ /^\"/) { # add quotes - $style = $'; - $text = "\`$text\'"; - } - if ($style =~ /^\&/) { # custom - $style = $'; - $text = &$style($text, $texi_style); - } elsif ($style) { # good style - $text = "<$style>$text"; - } else { # no style - } - } else { # unknown style - $text = undef; - } - return($text); -} - -# remove Texinfo styles -sub remove_style { - local($_) = @_; - 1 while(s/\@\w+{([^\{\}]+)}/$1/g); - return($_); -} - -sub remove_things -{ - local ($_) = @_; - s|\@(\w+)\{\}|$1|g; - return $_; -} - -sub substitute_style { - local($_) = @_; - local($changed, $done, $style, $text); - - &simple_substitutions; - $changed = 1; - while ($changed) { - $changed = 0; - $done = ''; - while (/\@(\w+){([^\{\}]+)}/ || /\@(,){([^\{\}]+)}/) { - $text = &apply_style($1, $2); - if ($text) { - $_ = "$`$text$'"; - $changed = 1; - } else { - $done .= "$`\@$1"; - $_ = "{$2}$'"; - } - } - $_ = $done . $_; - } - return($_); -} - -sub t2h_anchor { - local($name, $href, $text, $newline, $extra_attribs) = @_; - local($result); - - $result = " - $what =~ s/\&/\&\#38;/g; - $what =~ s/\/\&\#62;/g; - # restore anything in quotes - # this fixes my problem where I had: - # < IMG SRC="leftarrow.gif" ALT="<--" > but what if I wanted < in my ALT text ?? - # maybe byte stuffing or some other technique should be used. - $what =~ s/\"([^\&]+)\&\#60;(.*)\"/"$1<$2"/g; - $what =~ s/\"([^\&]+)\&\#62;(.*)\"/"$1>$2"/g; - $what =~ s/\"([^\&]+)\&\#38;(.*)\"/"$1&$2"/g; - # but recognize some HTML things - $what =~ s/\&\#60;\/A\&\#62;/<\/A>/g; # - $what =~ s/\&\#60;A ([^\&]+)\&\#62;//g; # - $what =~ s/\&\#60;IMG ([^\&]+)\&\#62;//g; # - return($what); -} - -sub unprotect_texi { - s/$;0/\@/go; - s/$;1/\{/go; - s/$;2/\}/go; - s/$;3/\`/go; - s/$;4/\'/go; -} - -sub Unprotect_texi -{ - local $_ = shift; - &unprotect_texi; - return($_); -} - -sub unprotect_html { - local($what) = @_; - $what =~ s/\&\#38;/\&/g; - $what =~ s/\&\#60;/\/g; - return($what); -} - -sub t2h_print_label -{ - my $fh = shift; - my $href = shift || $T2H_HREF{This}; - $href =~ s/.*#(.*)$/$1/; - print $fh qq{\n}; -} - -############################################################################## - - # These next few lines are legal in both Perl and nroff. - -.00 ; # finish .ig - -'di \" finish diversion--previous line must be blank -.nr nl 0-1 \" fake up transition to first page again -.nr % 0 \" start at page 1 -'; __END__ ############# From here on it's a standard manual page ############ -.so /usr/local/man/man1/texi2html.1 diff --git a/support/texi2html.debug b/support/texi2html.debug deleted file mode 100755 index dbe15cd2d..000000000 --- a/support/texi2html.debug +++ /dev/null @@ -1,5439 +0,0 @@ -#! /usr/bin/perl -'di '; -'ig 00 '; -#+############################################################################## -# -# texi2html: Program to transform Texinfo documents to HTML -# -# Copyright (C) 1999, 2000 Free Software Foundation, Inc. -# -# This program 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 of the License, or -# (at your option) any later version. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -#-############################################################################## - -# This requires perl version 5 or higher -require 5.0; - -#++############################################################################## -# -# NOTE FOR DEBUGGING THIS SCRIPT: -# You can run 'perl texi2html.pl' directly, provided you have -# the environment variable T2H_HOME set to the directory containing -# the texi2html.init file -# -#--############################################################################## - -# CVS version: -# $Id: texi2html.pl,v 1.55 2000/07/27 14:39:41 obachman Exp $ - -# Homepage: -$T2H_HOMEPAGE = < (original author) - Karl Berry - Olaf Bachmann - and many others. -Maintained by: Olaf Bachmann -Send bugs and suggestions to -EOT - -# Version: set in configure.in -$THISVERSION = '1.64'; -$THISPROG = "texi2html $THISVERSION"; # program name and version - -# The man page for this program is included at the end of this file and can be -# viewed using the command 'nroff -man texi2html'. - -# Identity: - -$T2H_TODAY = &pretty_date; # like "20 September 1993" -# the eval prevents this from breaking on system which do not have -# a proper getpwuid implemented -eval { ($T2H_USER = (getpwuid ($<))[6]) =~ s/,.*//;}; # Who am i - -#+++############################################################################ -# # -# Initialization # -# Pasted content of File $(srcdir)/texi2html.init: Default initializations # -# # -#---############################################################################ - -# leave this within comments, and keep the require statement -# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init -# exists. - -# -# -*-perl-*- -###################################################################### -# File: texi2html.init -# -# Sets default values for command-line arguments and for various customizable -# procedures -# -# A copy of this file is pasted into the beginning of texi2html by -# 'make texi2html' -# -# Copy this file and make changes to it, if you like. -# Afterwards, either, load it with command-line option -init_file -# -# $Id: texi2html.init,v 1.34 2000/07/27 14:09:02 obachman Exp $ - -###################################################################### -# stuff which can also be set by command-line options -# -# -# Note: values set here, overwrite values set by the command-line -# options before -init_file and might still be overwritten by -# command-line arguments following the -init_file option -# - -# T2H_OPTIONS is a hash whose keys are the (long) names of valid -# command-line options and whose values are a hash with the following keys: -# type ==> one of !|=i|:i|=s|:s (see GetOpt::Long for more info) -# linkage ==> ref to scalar, array, or subroutine (see GetOpt::Long for more info) -# verbose ==> short description of option (displayed by -h) -# noHelp ==> if 1 -> for "not so important options": only print description on -h 1 -# 2 -> for obsolete options: only print description on -h 2 - -$T2H_DEBUG = 0; -$T2H_OPTIONS -> {debug} = -{ - type => '=i', - linkage => \$main::T2H_DEBUG, - verbose => 'output HTML with debuging information', -}; - -$T2H_DOCTYPE = ''; -$T2H_OPTIONS -> {doctype} = -{ - type => '=s', - linkage => \$main::T2H_DOCTYPE, - verbose => 'document type which is output in header of HTML files', - noHelp => 1 -}; - -$T2H_CHECK = 0; -$T2H_OPTIONS -> {check} = -{ - type => '!', - linkage => \$main::T2H_CHECK, - verbose => 'if set, only check files and output all things that may be Texinfo commands', - noHelp => 1 -}; - -# -expand -# if set to "tex" (or, "info") expand @iftex and @tex (or, @ifinfo) sections -# else, neither expand @iftex, @tex, nor @ifinfo sections -$T2H_EXPAND = "info"; -$T2H_OPTIONS -> {expand} = -{ - type => '=s', - linkage => \$T2H_EXPAND, - verbose => 'Expand info|tex|none section of texinfo source', -}; - -# - glossary -#if set, uses section named `Footnotes' for glossary -$T2H_USE_GLOSSARY = 0; -T2H_OPTIONS -> {glossary} = -{ - type => '!', - linkage => \$T2H_USE_GLOSSARY, - verbose => "if set, uses section named `Footnotes' for glossary", - noHelp => 1, -}; - - -# -invisible -# $T2H_INVISIBLE_MARK is the text used to create invisible destination -# anchors for index links (you can for instance use the invisible.xbm -# file shipped with this program). This is a workaround for a known -# bug of many WWW browsers, including netscape. -# For me, it works fine without it -- on the contrary: if there, it -# inserts space between headers and start of text (obachman 3/99) -$T2H_INVISIBLE_MARK = ''; -# $T2H_INVISIBLE_MARK = ' '; -$T2H_OPTIONS -> {invisible} = -{ - type => '=s', - linkage => \$T2H_INVISIBLE_MARK, - verbose => 'use text in invisble anchot', - noHelp => 1, -}; - -# -iso -# if set, ISO8879 characters are used for special symbols (like copyright, etc) -$T2H_USE_ISO = 0; -$T2H_OPTIONS -> {iso} = -{ - type => 'iso', - linkage => \$T2H_USE_ISO, - verbose => 'if set, ISO8879 characters are used for special symbols (like copyright, etc)', - noHelp => 1, -}; - -# -I -# list directories where @include files are searched for (besides the -# directory of the doc file) additional '-I' args add to this list -@T2H_INCLUDE_DIRS = ("."); -$T2H_OPTIONS -> {I} = -{ - type => '=s', - linkage => \@T2H_INCLUDE_DIRS, - verbose => 'append $s to the @include search path', -}; - -# -top_file -# uses file of this name for top-level file -# extension is manipulated appropriately, if necessary. -# If empty, .html is used -# Typically, you would set this to "index.html". -$T2H_TOP_FILE = ''; -$T2H_OPTIONS -> {top_file} = -{ - type => '=s', - linkage => \$T2H_TOP_FILE, - verbose => 'use $s as top file, instead of .html', -}; - - -# -toc_file -# uses file of this name for table of contents file -# extension is manipulated appropriately, if necessary. -# If empty, _toc.html is used -$T2H_TOC_FILE = ''; -$T2H_OPTIONS -> {toc_file} = -{ - type => '=s', - linkage => \$T2H_TOC_FILE, - verbose => 'use $s as ToC file, instead of _toc.html', -}; - -# -frames -# if set, output two additional files which use HTML 4.0 "frames". -$T2H_FRAMES = 0; -$T2H_OPTIONS -> {frames} = -{ - type => '!', - linkage => \$T2H_FRAMES, - verbose => 'output files which use HTML 4.0 frames (experimental)', - noHelp => 1, -}; - - -# -menu | -nomenu -# if set, show the Texinfo menus -$T2H_SHOW_MENU = 1; -$T2H_OPTIONS -> {menu} = -{ - type => '!', - linkage => \$T2H_SHOW_MENU, - verbose => 'ouput Texinfo menus', -}; - -# -number | -nonumber -# if set, number sections and show section names and numbers in references -# and menus -$T2H_NUMBER_SECTIONS = 1; -$T2H_OPTIONS -> {number} = -{ - type => '!', - linkage => \$T2H_NUMBER_SECTIONS, - verbose => 'use numbered sections' -}; - -# if set, and T2H_NUMBER_SECTIONS is set, then use node names in menu -# entries, instead of section names -$T2H_NODE_NAME_IN_MENU = 0; - -# if set and menu entry equals menu descr, then do not print menu descr. -# Likewise, if node name equals entry name, do not print entry name. -$T2H_AVOID_MENU_REDUNDANCY = 1; - -# -split section|chapter|none -# if set to 'section' (resp. 'chapter') create one html file per (sub)section -# (resp. chapter) and separate pages for Top, ToC, Overview, Index, -# Glossary, About. -# otherwise, create monolithic html file which contains whole document -#$T2H_SPLIT = 'section'; -$T2H_SPLIT = ''; -$T2H_OPTIONS -> {split} = -{ - type => '=s', - linkage => \$T2H_SPLIT, - verbose => 'split document on section|chapter else no splitting', -}; - -# -section_navigation|-no-section_navigation -# if set, then navigation panels are printed at the beginning of each section -# and, possibly at the end (depending on whether or not there were more than -# $T2H_WORDS_IN_PAGE words on page -# This is most useful if you do not want to have section navigation -# on -split chapter -$T2H_SECTION_NAVIGATION = 1; -$T2H_OPTIONS -> {sec_nav} = -{ - type => '!', - linkage => \$T2H_SECTION_NAVIGATION, - verbose => 'output navigation panels for each section', -}; - -# -subdir -# if set put result files in this directory -# if not set result files are put into current directory -#$T2H_SUBDIR = 'html'; -$T2H_SUBDIR = ''; -$T2H_OPTIONS -> {subdir} = -{ - type => '=s', - linkage => \$T2H_SUBDIR, - verbose => 'put HTML files in directory $s, instead of $cwd', -}; - -# -short_extn -# If this is set all HTML file will have extension ".htm" instead of -# ".html". This is helpful when shipping the document to PC systems. -$T2H_SHORTEXTN = 0; -$T2H_OPTIONS -> {short_ext} = -{ - type => '!', - linkage => \$T2H_SHORTEXTN, - verbose => 'use "htm" extension for output HTML files', -}; - - -# -prefix -# Set the output file prefix, prepended to all .html, .gif and .pl files. -# By default, this is the basename of the document -$T2H_PREFIX = ''; -$T2H_OPTIONS -> {prefix} = -{ - type => '=s', - linkage => \$T2H_PREFIX, - verbose => 'use as prefix for output files, instead of ', -}; - -# -o filename -# If set, generate monolithic document output html into $filename -$T2H_OUT = ''; -$T2H_OPTIONS -> {out_file} = -{ - type => '=s', - linkage => sub {$main::T2H_OUT = @_[1]; $T2H_SPLIT = '';}, - verbose => 'if set, all HTML output goes into file $s', -}; - -# -short_ref -#if set cross-references are given without section numbers -$T2H_SHORT_REF = ''; -$T2H_OPTIONS -> {short_ref} = -{ - type => '!', - linkage => \$T2H_SHORT_REF, - verbose => 'if set, references are without section numbers', -}; - -# -idx_sum -# if value is set, then for each @prinindex $what -# $docu_name_$what.idx is created which contains lines of the form -# $key\t$ref sorted alphabetically (case matters) -$T2H_IDX_SUMMARY = 0; -$T2H_OPTIONS -> {idx_sum} = -{ - type => '!', - linkage => \$T2H_IDX_SUMMARY, - verbose => 'if set, also output index summary', - noHelp => 1, -}; - -# -verbose -# if set, chatter about what we are doing -$T2H_VERBOSE = ''; -$T2H_OPTIONS -> {Verbose} = -{ - type => '!', - linkage => \$T2H_VERBOSE, - verbose => 'print progress info to stdout', -}; - -# -lang -# For page titles use $T2H_WORDS->{$T2H_LANG}->{...} as title. -# To add a new language, supply list of titles (see $T2H_WORDS below). -# and use ISO 639 language codes (see e.g. perl module Locale-Codes-1.02 -# for definitions) -# Default's to 'en' if not set or no @documentlanguage is specified -$T2H_LANG = ''; -$T2H_OPTIONS -> {lang} = -{ - type => '=s', - linkage => sub {SetDocumentLanguage($_[1])}, - verbose => 'use $s as document language (ISO 639 encoding)', -}; - -# -l2h -# if set, uses latex2html for generation of math content -$T2H_L2H = ''; -$T2H_OPTIONS -> {l2h} = -{ - type => '!', - linkage => \$T2H_L2H, - verbose => 'if set, uses latex2html for @math and @tex', -}; - -###################### -# The following options are only relevant if $T2H_L2H is set -# -# -l2h_l2h -# name/location of latex2html progam -$T2H_L2H_L2H = "latex2html"; -$T2H_OPTIONS -> {l2h_l2h} = -{ - type => '=s', - linkage => \$T2H_L2H_L2H, - verbose => 'program to use for latex2html translation', - noHelp => 1, -}; - -# -l2h_skip -# if set, skips actual call to latex2html tries to reuse previously generated -# content, instead -$T2H_L2H_SKIP = ''; -$T2H_OPTIONS -> {l2h_skip} = -{ - type => '!', - linkage => \$T2H_L2H_SKIP, - verbose => 'if set, tries to reuse previously latex2html output', - noHelp => 1, -}; - -# -l2h_tmp -# if set, l2h uses this directory for temporarary files. The path -# leading to this directory may not contain a dot (i.e., a "."), -# otherwise, l2h will fail -$T2H_L2H_TMP = ''; -$T2H_OPTIONS -> {l2h_tmp} = -{ - type => '=s', - linkage => \$T2H_L2H_TMP, - verbose => 'if set, uses $s as temporary latex2html directory', - noHelp => 1, -}; - -# if set, cleans intermediate files (they all have the prefix $doc_l2h_) -# of l2h -$T2H_L2H_CLEAN = 1; -$T2H_OPTIONS -> {l2h_clean} = -{ - type => '!', - linkage => \$T2H_L2H_CLEAN, - verbose => 'if set, do not keep intermediate latex2html files for later reuse', - noHelp => 1, -}; - -$T2H_OPTIONS -> {D} = -{ - type => '=s', - linkage => sub {$main::value{@_[1]} = 1;}, - verbose => 'equivalent to Texinfo "@set $s 1"', - noHelp => 1, -}; - -$T2H_OPTIONS -> {init_file} = -{ - type => '=s', - linkage => \&LoadInitFile, - verbose => 'load init file $s' -}; - - -############################################################################## -# -# The following can only be set in the init file -# -############################################################################## - -# if set, center @image by default -# otherwise, do not center by default -$T2H_CENTER_IMAGE = 1; - -# used as identation for block enclosing command @example, etc -# If not empty, must be enclosed in -$T2H_EXAMPLE_INDENT_CELL = ''; -# same as above, only for @small -$T2H_SMALL_EXAMPLE_INDENT_CELL = ''; -# font size for @small -$T2H_SMALL_FONT_SIZE = '-1'; - -# if non-empty, and no @..heading appeared in Top node, then -# use this as header for top node/section, otherwise use value of -# @settitle or @shorttitle (in that order) -$T2H_TOP_HEADING = ''; - -# if set, use this chapter for 'Index' button, else -# use first chapter whose name matches 'index' (case insensitive) -$T2H_INDEX_CHAPTER = ''; - -# if set and $T2H_SPLIT is set, then split index pages at the next letter -# after they have more than that many entries -$T2H_SPLIT_INDEX = 100; - -# if set (e.g., to index.html) replace hrefs to this file -# (i.e., to index.html) by ./ -$T2H_HREF_DIR_INSTEAD_FILE = ''; - -######################################################################## -# Language dependencies: -# To add a new language extend T2H_WORDS hash and create $T2H_<...>_WORDS hash -# To redefine one word, simply do: -# $T2H_WORDS->{}->{} = 'whatever' in your personal init file. -# -$T2H_WORDS_EN = -{ - # titles of pages - 'ToC_Title' => 'Table of Contents', - 'Overview_Title' => 'Short Table of Contents', - 'Index_Title' => 'Index', - 'About_Title' => 'About this document', - 'Footnotes_Title' => 'Footnotes', - 'See' => 'See', - 'see' => 'see', - 'section' => 'section', -# If necessary, we could extend this as follows: -# # text for buttons -# 'Top_Button' => 'Top', -# 'ToC_Button' => 'Contents', -# 'Overview_Button' => 'Overview', -# 'Index_button' => 'Index', -# 'Back_Button' => 'Back', -# 'FastBack_Button' => 'FastBack', -# 'Prev_Button' => 'Prev', -# 'Up_Button' => 'Up', -# 'Next_Button' => 'Next', -# 'Forward_Button' =>'Forward', -# 'FastWorward_Button' => 'FastForward', -# 'First_Button' => 'First', -# 'Last_Button' => 'Last', -# 'About_Button' => 'About' -}; - -$T2H_WORD_DE = -{ - 'ToC_Title' => 'Inhaltsverzeichniss', - 'Overview_Title' => 'Kurzes Inhaltsverzeichniss', - 'Index_Title' => 'Index', - 'About_Title' => 'Über dieses Dokument', - 'Footnotes_Title' => 'Fußnoten', - 'See' => 'Siehe', - 'see' => 'siehe', - 'section' => 'Abschnitt', -}; - -$T2H_WORD_NL = -{ - 'ToC_Title' => 'Inhoudsopgave', - 'Overview_Title' => 'Korte inhoudsopgave', - 'Index_Title' => 'Index', #Not sure ;-) - 'About_Title' => 'No translation available!', #No translation available! - 'Footnotes_Title' => 'No translation available!', #No translation available! - 'See' => 'Zie', - 'see' => 'zie', - 'section' => 'sectie', -}; - -$T2H_WORD_ES = -{ - 'ToC_Title' => 'índice General', - 'Overview_Title' => 'Resumen del Contenido', - 'Index_Title' => 'Index', #Not sure ;-) - 'About_Title' => 'No translation available!', #No translation available! - 'Footnotes_Title' => 'Fußnoten', - 'See' => 'Véase', - 'see' => 'véase', - 'section' => 'sección', -}; - -$T2H_WORD_NO = -{ - 'ToC_Title' => 'Innholdsfortegnelse', - 'Overview_Title' => 'Kort innholdsfortegnelse', - 'Index_Title' => 'Indeks', #Not sure ;-) - 'About_Title' => 'No translation available!', #No translation available! - 'Footnotes_Title' => 'No translation available!', - 'See' => 'Se', - 'see' => 'se', - 'section' => 'avsnitt', -}; - -$T2H_WORD_PT = -{ - 'ToC_Title' => 'Sumário', - 'Overview_Title' => 'Breve Sumário', - 'Index_Title' => 'Índice', #Not sure ;-) - 'About_Title' => 'No translation available!', #No translation available! - 'Footnotes_Title' => 'No translation available!', - 'See' => 'Veja', - 'see' => 'veja', - 'section' => 'Seção', -}; - -$T2H_WORDS = -{ - 'en' => $T2H_WORDS_EN, - 'de' => $T2H_WORDS_DE, - 'nl' => $T2H_WORDS_NL, - 'es' => $T2H_WORDS_ES, - 'no' => $T2H_WORDS_NO, - 'pt' => $T2H_WORDS_PT -}; - -@MONTH_NAMES_EN = -( - 'January', 'February', 'March', 'April', 'May', - 'June', 'July', 'August', 'September', 'October', - 'November', 'December' -); - -@MONTH_NAMES_DE = -( - 'Januar', 'Februar', 'März', 'April', 'Mai', - 'Juni', 'Juli', 'August', 'September', 'Oktober', - 'November', 'Dezember' -); - -@MONTH_NAMES_NL = -( - 'Januari', 'Februari', 'Maart', 'April', 'Mei', - 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', - 'November', 'December' -); - -@MONTH_NAMES_ES = -( - 'enero', 'febrero', 'marzo', 'abril', 'mayo', - 'junio', 'julio', 'agosto', 'septiembre', 'octubre', - 'noviembre', 'diciembre' -); - -@MONTH_NAMES_NO = -( - - 'januar', 'februar', 'mars', 'april', 'mai', - 'juni', 'juli', 'august', 'september', 'oktober', - 'november', 'desember' -); - -@MONTH_NAMES_PT = -( - 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', - 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', - 'Novembro', 'Dezembro' -); - - -$MONTH_NAMES = -{ - 'en' => \@MONTH_NAMES_EN, - 'de' => \@MONTH_NAMES_DE, - 'es' => \@MONTH_NAMES_ES, - 'nl' => \@MONTH_NAMES_NL, - 'no' => \@MONTH_NAMES_NO, - 'pt' => \@MONTH_NAMES_PT -}; -######################################################################## -# Control of Page layout: -# You can make changes of the Page layout at two levels: -# 1.) For small changes, it is often enough to change the value of -# some global string/hash/array variables -# 2.) For larger changes, reimplement one of the T2H_DEFAULT_* routines, -# give them another name, and assign them to the respective -# $T2H_ variable. - -# As a general interface, the hashes T2H_HREF, T2H_NAME, T2H_NODE hold -# href, html-name, node-name of -# This -- current section (resp. html page) -# Top -- top page ($T2H_TOP_FILE) -# Contents -- Table of contents -# Overview -- Short table of contents -# Index -- Index page -# About -- page which explain "navigation buttons" -# First -- first node -# Last -- last node -# -# Whether or not the following hash values are set, depends on the context -# (all values are w.r.t. 'This' section) -# Next -- next node of texinfo -# Prev -- previous node of texinfo -# Up -- up node of texinfo -# Forward -- next node in reading order -# Back -- previous node in reading order -# FastForward -- if leave node, up and next, else next node -# FastBackward-- if leave node, up and prev, else prev node -# -# Furthermore, the following global variabels are set: -# $T2H_THISDOC{title} -- title as set by @setttile -# $T2H_THISDOC{fulltitle} -- full title as set by @title... -# $T2H_THISDOC{subtitle} -- subtitle as set by @subtitle -# $T2H_THISDOC{author} -- author as set by @author -# -# and pointer to arrays of lines which need to be printed by t2h_print_lines -# $T2H_OVERVIEW -- lines of short table of contents -# $T2H_TOC -- lines of table of contents -# $T2H_TOP -- lines of Top texinfo node -# $T2H_THIS_SECTION -- lines of 'This' section - -# -# There are the following subs which control the layout: -# -$T2H_print_section = \&T2H_DEFAULT_print_section; -$T2H_print_Top_header = \&T2H_DEFAULT_print_Top_header; -$T2H_print_Top_footer = \&T2H_DEFAULT_print_Top_footer; -$T2H_print_Top = \&T2H_DEFAULT_print_Top; -$T2H_print_Toc = \&T2H_DEFAULT_print_Toc; -$T2H_print_Overview = \&T2H_DEFAULT_print_Overview; -$T2H_print_Footnotes = \&T2H_DEFAULT_print_Footnotes; -$T2H_print_About = \&T2H_DEFAULT_print_About; -$T2H_print_misc_header = \&T2H_DEFAULT_print_misc_header; -$T2H_print_misc_footer = \&T2H_DEFAULT_print_misc_footer; -$T2H_print_misc = \&T2H_DEFAULT_print_misc; -$T2H_print_chapter_header = \&T2H_DEFAULT_print_chapter_header; -$T2H_print_chapter_footer = \&T2H_DEFAULT_print_chapter_footer; -$T2H_print_page_head = \&T2H_DEFAULT_print_page_head; -$T2H_print_page_foot = \&T2H_DEFAULT_print_page_foot; -$T2H_print_head_navigation = \&T2H_DEFAULT_print_head_navigation; -$T2H_print_foot_navigation = \&T2H_DEFAULT_print_foot_navigation; -$T2H_button_icon_img = \&T2H_DEFAULT_button_icon_img; -$T2H_print_navigation = \&T2H_DEFAULT_print_navigation; -$T2H_about_body = \&T2H_DEFAULT_about_body; -$T2H_print_frame = \&T2H_DEFAULT_print_frame; -$T2H_print_toc_frame = \&T2H_DEFAULT_print_toc_frame; - -######################################################################## -# Layout for html for every sections -# -sub T2H_DEFAULT_print_section -{ - my $fh = shift; - local $T2H_BUTTONS = \@T2H_SECTION_BUTTONS; - &$T2H_print_head_navigation($fh) if $T2H_SECTION_NAVIGATION; - my $nw = t2h_print_lines($fh); - if ($T2H_SPLIT eq 'section' && $T2H_SECTION_NAVIGATION) - { - &$T2H_print_foot_navigation($fh, $nw); - } - else - { - print $fh '
    ' . "\n"; - } -} - -################################################################### -# Layout of top-page I recommend that you use @ifnothtml, @ifhtml, -# @html within the Top texinfo node to specify content of top-level -# page. -# -# If you enclose everything in @ifnothtml, then title, subtitle, -# author and overview is printed -# T2H_HREF of Next, Prev, Up, Forward, Back are not defined -# if $T2H_SPLIT then Top page is in its own html file -sub T2H_DEFAULT_print_Top_header -{ - &$T2H_print_page_head(@_) if $T2H_SPLIT; - t2h_print_label(@_); # this needs to be called, otherwise no label set - &$T2H_print_head_navigation(@_); -} -sub T2H_DEFAULT_print_Top_footer -{ - &$T2H_print_foot_navigation(@_); - &$T2H_print_page_foot(@_) if $T2H_SPLIT; -} -sub T2H_DEFAULT_print_Top -{ - my $fh = shift; - - # for redefining navigation buttons use: - # local $T2H_BUTTONS = [...]; - # as it is, 'Top', 'Contents', 'Index', 'About' are printed - local $T2H_BUTTONS = \@T2H_MISC_BUTTONS; - &$T2H_print_Top_header($fh); - if ($T2H_THIS_SECTION) - { - # if top-level node has content, then print it with extra header - print $fh "

    $T2H_NAME{Top}

    " - unless ($T2H_HAS_TOP_HEADING); - t2h_print_lines($fh, $T2H_THIS_SECTION) - } - else - { - # top-level node is fully enclosed in @ifnothtml - # print fulltitle, subtitle, author, Overview - print $fh - "
    \n

    " . - join("

    \n

    ", split(/\n/, $T2H_THISDOC{fulltitle})) . - "

    \n"; - print $fh "

    $T2H_THISDOC{subtitle}

    \n" if $T2H_THISDOC{subtitle}; - print $fh "$T2H_THISDOC{author}\n" if $T2H_THISDOC{author}; - print $fh < -
    -

    -

    Overview:

    -
    -EOT - t2h_print_lines($fh, $T2H_OVERVIEW); - print $fh "
    \n"; - } - &$T2H_print_Top_footer($fh); -} - -################################################################### -# Layout of Toc, Overview, and Footnotes pages -# By default, we use "normal" layout -# T2H_HREF of Next, Prev, Up, Forward, Back, etc are not defined -# use: local $T2H_BUTTONS = [...] to redefine navigation buttons -sub T2H_DEFAULT_print_Toc -{ - return &$T2H_print_misc(@_); -} -sub T2H_DEFAULT_print_Overview -{ - return &$T2H_print_misc(@_); -} -sub T2H_DEFAULT_print_Footnotes -{ - return &$T2H_print_misc(@_); -} -sub T2H_DEFAULT_print_About -{ - return &$T2H_print_misc(@_); -} - -sub T2H_DEFAULT_print_misc_header -{ - &$T2H_print_page_head(@_) if $T2H_SPLIT; - # this needs to be called, otherwise, no labels are set - t2h_print_label(@_); - &$T2H_print_head_navigation(@_); -} -sub T2H_DEFAULT_print_misc_footer -{ - &$T2H_print_foot_navigation(@_); - &$T2H_print_page_foot(@_) if $T2H_SPLIT; -} -sub T2H_DEFAULT_print_misc -{ - my $fh = shift; - local $T2H_BUTTONS = \@T2H_MISC_BUTTONS; - &$T2H_print_misc_header($fh); - print $fh "

    $T2H_NAME{This}

    \n"; - t2h_print_lines($fh); - &$T2H_print_misc_footer($fh); -} - -################################################################### -# chapter_header and chapter_footer are only called if -# T2H_SPLIT eq 'chapter' -# chapter_header: after print_page_header, before print_section -# chapter_footer: after print_section of last section, before print_page_footer -# -# If you want to get rid of navigation stuff after each section, -# redefine print_section such that it does not call print_navigation, -# and put print_navigation into print_chapter_header -@T2H_CHAPTER_BUTTONS = - ( - 'FastBack', 'FastForward', ' ', - ' ', ' ', ' ', ' ', - 'Top', 'Contents', 'Index', 'About', - ); - -sub T2H_DEFAULT_print_chapter_header -{ - # nothing to do there, by default - if (! $T2H_SECTION_NAVIGATION) - { - my $fh = shift; - local $T2H_BUTTONS = \@T2H_CHAPTER_BUTTONS; - &$T2H_print_navigation($fh); - print $fh "\n
    \n"; - } -} - -sub T2H_DEFAULT_print_chapter_footer -{ - local $T2H_BUTTONS = \@T2H_CHAPTER_BUTTONS; - &$T2H_print_navigation(@_); -} -################################################################### -$T2H_TODAY = &pretty_date; # like "20 September 1993" - -sub pretty_date { - local($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst); - - ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); - $year += ($year < 70) ? 2000 : 1900; - # obachman: Let's do it as the Americans do - return($MONTH_NAMES->{$T2H_LANG}[$mon] . ", " . $mday . " " . $year); -} - - -################################################################### -# Layout of standard header and footer -# - -# Set the default body text, inserted between -###$T2H_BODYTEXT = 'LANG="EN" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"'; -$T2H_BODYTEXT = 'LANG="' . $T2H_LANG . '" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"'; -# text inserted after -$T2H_AFTER_BODY_OPEN = ''; -#text inserted before -$T2H_PRE_BODY_CLOSE = ''; -# this is used in footer -$T2H_ADDRESS = "by $T2H_USER " if $T2H_USER; -$T2H_ADDRESS .= "on $T2H_TODAY"; -# this is added inside after and some META NAME stuff -# can be used for <style> <script>, <meta> tags -$T2H_EXTRA_HEAD = ''; - -sub T2H_DEFAULT_print_page_head -{ - my $fh = shift; - my $longtitle = "$T2H_THISDOC{title}: $T2H_NAME{This}"; - print $fh <<EOT; -<HTML> -$T2H_DOCTYPE -<!-- Created on $T2H_TODAY by $THISPROG --> -<!-- -$T2H_AUTHORS ---> -<HEAD> -<TITLE>$longtitle - - - - - - -$T2H_EXTRA_HEAD - - - -$T2H_AFTER_BODY_OPEN -EOT -} - -sub T2H_DEFAULT_print_page_foot -{ - my $fh = shift; - print $fh < - -This document was generated -$T2H_ADDRESS -using texi2html -$T2H_PRE_BODY_CLOSE - - -EOT -} - -################################################################### -# Layout of navigation panel - -# if this is set, then a vertical navigation panel is used -$T2H_VERTICAL_HEAD_NAVIGATION = 0; -sub T2H_DEFAULT_print_head_navigation -{ - my $fh = shift; - if ($T2H_VERTICAL_HEAD_NAVIGATION) - { - print $fh < -
    - -
    ' . - &t2h_anchor('', $href, $entry) . - '  ' . - $descr . - "
    ' . - $entry . - '' . $descr . - "
      
    -EOT - } - &$T2H_print_navigation($fh, $T2H_VERTICAL_HEAD_NAVIGATION); - if ($T2H_VERTICAL_HEAD_NAVIGATION) - { - print $fh < - -EOT - } - elsif ($T2H_SPLIT eq 'section') - { - print $fh "
    \n"; - } -} - -# Specifies the minimum page length required before a navigation panel -# is placed at the bottom of a page (the default is that of latex2html) -# T2H_THIS_WORDS_IN_PAGE holds number of words of current page -$T2H_WORDS_IN_PAGE = 300; -sub T2H_DEFAULT_print_foot_navigation -{ - my $fh = shift; - my $nwords = shift; - if ($T2H_VERTICAL_HEAD_NAVIGATION) - { - print $fh < -
    -EOT - } - print $fh "
    \n"; - &$T2H_print_navigation($fh) if ($nwords >= $T2H_WORDS_IN_PAGE) -} - -###################################################################### -# navigation panel -# -# specify in this array which "buttons" should appear in which order -# in the navigation panel for sections; use ' ' for empty buttons (space) -@T2H_SECTION_BUTTONS = - ( - 'Back', 'Forward', ' ', 'FastBack', 'Up', 'FastForward', - ' ', ' ', ' ', ' ', - 'Top', 'Contents', 'Index', 'About', - ); - -# buttons for misc stuff -@T2H_MISC_BUTTONS = ('Top', 'Contents', 'Index', 'About'); - -# insert here name of icon images for buttons -# Icons are used, if $T2H_ICONS and resp. value are set -%T2H_ACTIVE_ICONS = - ( - 'Top', '', - 'Contents', '', - 'Overview', '', - 'Index', '', - 'Back', '', - 'FastBack', '', - 'Prev', '', - 'Up', '', - 'Next', '', - 'Forward', '', - 'FastForward', '', - 'About' , '', - 'First', '', - 'Last', '', - ' ', '' - ); - -# insert here name of icon images for these, if button is inactive -%T2H_PASSIVE_ICONS = - ( - 'Top', '', - 'Contents', '', - 'Overview', '', - 'Index', '', - 'Back', '', - 'FastBack', '', - 'Prev', '', - 'Up', '', - 'Next', '', - 'Forward', '', - 'FastForward', '', - 'About', '', - 'First', '', - 'Last', '', - ); - -# how to create IMG tag -sub T2H_DEFAULT_button_icon_img -{ - my $button = shift; - my $icon = shift; - my $name = shift; - return qq{$button: $name}; -} - -# Names of text as alternative for icons -%T2H_NAVIGATION_TEXT = - ( - 'Top', 'Top', - 'Contents', 'Contents', - 'Overview', 'Overview', - 'Index', 'Index', - ' ', '   ', - 'Back', ' < ', - 'FastBack', ' << ', - 'Prev', 'Prev', - 'Up', ' Up ', - 'Next', 'Next', - 'Forward', ' > ', - 'FastForward', ' >> ', - 'About', ' ? ', - 'First', ' |< ', - 'Last', ' >| ' - ); - -sub T2H_DEFAULT_print_navigation -{ - my $fh = shift; - my $vertical = shift; - my $spacing = 1; - print $fh "\n"; - - print $fh "" unless $vertical; - for $button (@$T2H_BUTTONS) - { - print $fh qq{\n} if $vertical; - print $fh qq{\n"; - print $fh "\n" if $vertical; - } - print $fh "" unless $vertical; - print $fh "
    }; - - if (ref($button) eq 'CODE') - { - &$button($fh, $vertical); - } - elsif ($button eq ' ') - { # handle space button - print $fh - $T2H_ICONS && $T2H_ACTIVE_ICONS{' '} ? - &$T2H_button_icon_img($button, $T2H_ACTIVE_ICONS{' '}) : - $T2H_NAVIGATION_TEXT{' '}; - next; - } - elsif ($T2H_HREF{$button}) - { # button is active - print $fh - $T2H_ICONS && $T2H_ACTIVE_ICONS{$button} ? # use icon ? - t2h_anchor('', $T2H_HREF{$button}, # yes - &$T2H_button_icon_img($button, - $T2H_ACTIVE_ICONS{$button}, - $T2H_NAME{$button})) - : # use text - "[" . - t2h_anchor('', $T2H_HREF{$button}, $T2H_NAVIGATION_TEXT{$button}) . - "]"; - } - else - { # button is passive - print $fh - $T2H_ICONS && $T2H_PASSIVE_ICONS{$button} ? - &$T2H_button_icon_img($button, - $T2H_PASSIVE_ICONS{$button}, - $T2H_NAME{$button}) : - - "[" . $T2H_NAVIGATION_TEXT{$button} . "]"; - } - print $fh "
    \n"; -} - -###################################################################### -# Frames: this is from "Richard Y. Kim" -# Should be improved to be more conforming to other _print* functions - -sub T2H_DEFAULT_print_frame -{ - my $fh = shift; - print $fh < -$T2H_THISDOC{title} - - - - - -EOT -} - -sub T2H_DEFAULT_print_toc_frame -{ - my $fh = shift; - &$T2H_print_page_head($fh); - print $fh <Content -EOT - print $fh map {s/HREF=/target=\"main\" HREF=/; $_;} @stoc_lines; - print $fh "\n"; -} - -###################################################################### -# About page -# - -# T2H_PRE_ABOUT might be a function -$T2H_PRE_ABOUT = <texi2html -

    -EOT -$T2H_AFTER_ABOUT = ''; - -sub T2H_DEFAULT_about_body -{ - my $about; - if (ref($T2H_PRE_ABOUT) eq 'CODE') - { - $about = &$T2H_PRE_ABOUT(); - } - else - { - $about = $T2H_PRE_ABOUT; - } - $about .= <

    - - - - - - - -EOT - - for $button (@T2H_SECTION_BUTTONS) - { - next if $button eq ' ' || ref($button) eq 'CODE'; - $about .= < - - - - -EOT - } - - $about .= < -

    -where the Example assumes that the current position -is at Subsubsection One-Two-Three of a document of -the following structure: -
      -
    • 1. Section One
    • -
        -
      • 1.1 Subsection One-One
      • -
          -
        • ...
        • -
        -
      • 1.2 Subsection One-Two
      • -
          -
        • 1.2.1 Subsubsection One-Two-One -
        • 1.2.2 Subsubsection One-Two-Two -
        • 1.2.3 Subsubsection One-Two-Three     -<== Current Position -
        • 1.2.4 Subsubsection One-Two-Four -
        -
      • 1.3 Subsection One-Three
      • -
          -
        • ...
        • -
        -
      • 1.4 Subsection One-Four
      • -
      -
    -$T2H_AFTER_ABOUT -EOT - return $about; -} - - -%T2H_BUTTONS_GOTO = - ( - 'Top', 'cover (top) of document', - 'Contents', 'table of contents', - 'Overview', 'short table of contents', - 'Index', 'concept index', - 'Back', 'previous section in reading order', - 'FastBack', 'previous or up-and-previous section ', - 'Prev', 'previous section same level', - 'Up', 'up section', - 'Next', 'next section same level', - 'Forward', 'next section in reading order', - 'FastForward', 'next or up-and-next section', - 'About' , 'this page', - 'First', 'first section in reading order', - 'Last', 'last section in reading order', - ); - -%T2H_BUTTONS_EXAMPLE = -( - 'Top', '   ', - 'Contents', '   ', - 'Overview', '   ', - 'Index', '   ', - 'Back', '1.2.2', - 'FastBack', '1.1', - 'Prev', '1.2.2', - 'Up', '1.2', - 'Next', '1.2.4', - 'Forward', '1.2.4', - 'FastForward', '1.3', - 'About', '   ', - 'First', '1.', - 'Last', '1.2.4', -); - - -###################################################################### -# from here on, its l2h init stuff -# - -## initialization for latex2html as for Singular manual generation -## obachman 3/99 - -# -# Options controlling Titles, File-Names, Tracing and Sectioning -# -$TITLE = ''; - -$SHORTEXTN = 0; - -$LONG_TITLES = 0; - -$DESTDIR = ''; # should be overwritten by cmd-line argument - -$NO_SUBDIR = 0;# should be overwritten by cmd-line argument - -$PREFIX = ''; # should be overwritten by cmd-line argument - -$AUTO_PREFIX = 0; # this is needed, so that prefix settings are used - -$AUTO_LINK = 0; - -$SPLIT = 0; - -$MAX_LINK_DEPTH = 0; - -$TMP = ''; # should be overwritten by cmd-line argument - -$DEBUG = 0; - -$VERBOSE = 1; - -# -# Options controlling Extensions and Special Features -# -$HTML_VERSION = "3.2"; - -$TEXDEFS = 1; # we absolutely need that - -$EXTERNAL_FILE = ''; - -$SCALABLE_FONTS = 1; - -$NO_SIMPLE_MATH = 1; - -$LOCAL_ICONS = 1; - -$SHORT_INDEX = 0; - -$NO_FOOTNODE = 1; - -$ADDRESS = ''; - -$INFO = ''; - -# -# Switches controlling Image Generation -# -$ASCII_MODE = 0; - -$NOLATEX = 0; - -$EXTERNAL_IMAGES = 0; - -$PS_IMAGES = 0; - -$NO_IMAGES = 0; - -$IMAGES_ONLY = 0; - -$REUSE = 2; - -$ANTI_ALIAS = 1; - -$ANTI_ALIAS_TEXT = 1; - -# -#Switches controlling Navigation Panels -# -$NO_NAVIGATION = 1; -$ADDRESS = ''; -$INFO = 0; # 0 = do not make a "About this document..." section - -# -#Switches for Linking to other documents -# -# actuall -- we don't care - -$MAX_SPLIT_DEPTH = 0; # Stop making separate files at this depth - -$MAX_LINK_DEPTH = 0; # Stop showing child nodes at this depth - -$NOLATEX = 0; # 1 = do not pass unknown environments to Latex - -$EXTERNAL_IMAGES = 0; # 1 = leave the images outside the document - -$ASCII_MODE = 0; # 1 = do not use any icons or internal images - -# 1 = use links to external postscript images rather than inlined bitmap -# images. -$PS_IMAGES = 0; -$SHOW_SECTION_NUMBERS = 0; - -### Other global variables ############################################### -$CHILDLINE = ""; - -# This is the line width measured in pixels and it is used to right justify -# equations and equation arrays; -$LINE_WIDTH = 500; - -# Used in conjunction with AUTO_NAVIGATION -$WORDS_IN_PAGE = 300; - -# Affects ONLY the way accents are processed -$default_language = 'english'; - -# The value of this variable determines how many words to use in each -# title that is added to the navigation panel (see below) -# -$WORDS_IN_NAVIGATION_PANEL_TITLES = 0; - -# This number will determine the size of the equations, special characters, -# and anything which will be converted into an inlined image -# *except* "image generating environments" such as "figure", "table" -# or "minipage". -# Effective values are those greater than 0. -# Sensible values are between 0.1 - 4. -$MATH_SCALE_FACTOR = 1.5; - -# This number will determine the size of -# image generating environments such as "figure", "table" or "minipage". -# Effective values are those greater than 0. -# Sensible values are between 0.1 - 4. -$FIGURE_SCALE_FACTOR = 1.6; - - -# If both of the following two variables are set then the "Up" button -# of the navigation panel in the first node/page of a converted document -# will point to $EXTERNAL_UP_LINK. $EXTERNAL_UP_TITLE should be set -# to some text which describes this external link. -$EXTERNAL_UP_LINK = ""; -$EXTERNAL_UP_TITLE = ""; - -# If this is set then the resulting HTML will look marginally better if viewed -# with Netscape. -$NETSCAPE_HTML = 1; - -# Valid paper sizes are "letter", "legal", "a4","a3","a2" and "a0" -# Paper sizes has no effect other than in the time it takes to create inlined -# images and in whether large images can be created at all ie -# - larger paper sizes *MAY* help with large image problems -# - smaller paper sizes are quicker to handle -$PAPERSIZE = "a4"; - -# Replace "english" with another language in order to tell LaTeX2HTML that you -# want some generated section titles (eg "Table of Contents" or "References") -# to appear in a different language. Currently only "english" and "french" -# is supported but it is very easy to add your own. See the example in the -# file "latex2html.config" -$TITLES_LANGUAGE = "english"; - -1; # This must be the last non-comment line - -# End File texi2html.init -###################################################################### - - -require "$ENV{T2H_HOME}/texi2html.init" - if ($0 =~ /\.pl$/ && - -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init"); - -#+++############################################################################ -# # -# Initialization # -# Pasted content of File $(srcdir)/MySimple.pm: Command-line processing # -# # -#---############################################################################ - -# leave this within comments, and keep the require statement -# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init -# exists. - -# -package Getopt::MySimple; - -# Name: -# Getopt::MySimple. -# -# Documentation: -# POD-style (incomplete) documentation is in file MySimple.pod -# -# Tabs: -# 4 spaces || die. -# -# Author: -# Ron Savage rpsavage@ozemail.com.au. -# 1.00 19-Aug-97 Initial version. -# 1.10 13-Oct-97 Add arrays of switches (eg '=s@'). -# 1.20 3-Dec-97 Add 'Help' on a per-switch basis. -# 1.30 11-Dec-97 Change 'Help' to 'verbose'. Make all hash keys lowercase. -# 1.40 10-Nov-98 Change width of help report. Restructure tests. -# 1-Jul-00 Modifications for Texi2html - -# -------------------------------------------------------------------------- -# Locally modified by obachman (Display type instead of env, order by cmp) -# $Id: MySimple.pm,v 1.1 2000/07/03 08:44:13 obachman Exp $ - -# use strict; -# no strict 'refs'; - -use vars qw(@EXPORT @EXPORT_OK @ISA); -use vars qw($fieldWidth $opt $VERSION); - -use Exporter(); -use Getopt::Long; - -@ISA = qw(Exporter); -@EXPORT = qw(); -@EXPORT_OK = qw($opt); # An alias for $self -> {'opt'}. - -# -------------------------------------------------------------------------- - -$fieldWidth = 20; -$VERSION = '1.41'; - -# -------------------------------------------------------------------------- - -sub byOrder -{ - my($self) = @_; - - return uc($a) cmp (uc($b)); -} - -# -------------------------------------------------------------------------- - -sub dumpOptions -{ - my($self) = @_; - - print 'Option', ' ' x ($fieldWidth - length('Option') ), "Value\n"; - - for (sort byOrder keys(%{$self -> {'opt'} }) ) - { - print "-$_", ' ' x ($fieldWidth - (1 + length) ), "${$self->{'opt'} }{$_}\n"; - } - - print "\n"; - -} # End of dumpOptions. - -# -------------------------------------------------------------------------- -# Return: -# 0 -> Error. -# 1 -> Ok. - -sub getOptions -{ - push(@_, 0) if ($#_ == 2); # Default for $ignoreCase is 0. - push(@_, 1) if ($#_ == 3); # Default for $helpThenExit is 1. - - my($self, $default, $helpText, $versionText, - $helpThenExit, $versionThenExit, $ignoreCase) = @_; - - $helpThenExit = 1 unless (defined($helpThenExit)); - $versionThenExit = 1 unless (defined($versionThenExit)); - $ignoreCase = 0 unless (defined($ignoreCase)); - - $self -> {'default'} = $default; - $self -> {'helpText'} = $helpText; - $self -> {'versionText'} = $versionText; - $Getopt::Long::ignorecase = $ignoreCase; - - unless (defined($self -> {'default'}{'help'})) - { - $self -> {'default'}{'help'} = - { - type => ':i', - default => '', - linkage => sub {$self->helpOptions($_[1]); exit (0) if $helpThenExit;}, - verbose => "print help and exit" - }; - } - - unless (defined($self -> {'default'}{'version'})) - { - $self -> {'default'}{'version'} = - { - type => '', - default => '', - linkage => sub {print $self->{'versionText'}; exit (0) if versionTheExit;}, - verbose => "print version and exit" - }; - } - - for (keys(%{$self -> {'default'} }) ) - { - my $type = ${$self -> {'default'} }{$_}{'type'}; - push(@{$self -> {'type'} }, "$_$type"); - $self->{'opt'}->{$_} = ${$self -> {'default'} }{$_}{'linkage'} - if ${$self -> {'default'} }{$_}{'linkage'}; - } - - my($result) = &GetOptions($self -> {'opt'}, @{$self -> {'type'} }); - - return $result unless $result; - - for (keys(%{$self -> {'default'} }) ) - { - if (! defined(${$self -> {'opt'} }{$_})) #{ - { - ${$self -> {'opt'} }{$_} = ${$self -> {'default'} }{$_}{'default'}; - } - } - - $result; -} # End of getOptions. - -# -------------------------------------------------------------------------- - -sub helpOptions -{ - my($self) = shift; - my($noHelp) = shift; - $noHelp = 0 unless $noHelp; - my($optwidth, $typewidth, $defaultwidth, $maxlinewidth, $valind, $valwidth) - = (10, 5, 9, 78, 4, 11); - - print "$self->{'helpText'}" if ($self -> {'helpText'}); - - print ' Option', ' ' x ($optwidth - length('Option') -1 ), - 'Type', ' ' x ($typewidth - length('Type') + 1), - 'Default', ' ' x ($defaultwidth - length('Default') ), - "Description\n"; - - for (sort byOrder keys(%{$self -> {'default'} }) ) - { - my($line, $help, $option, $val); - $option = $_; - next if ${$self->{'default'} }{$_}{'noHelp'} && ${$self->{'default'} }{$_}{'noHelp'} > $noHelp; - $line = " -$_ " . ' ' x ($optwidth - (2 + length) ) . - "${$self->{'default'} }{$_}{'type'} ". - ' ' x ($typewidth - (1+length(${$self -> {'default'} }{$_}{'type'}) )); - - $val = ${$self->{'default'} }{$_}{'linkage'}; - if ($val) - { - if (ref($val) eq 'SCALAR') - { - $val = $$val; - } - else - { - $val = ''; - } - } - else - { - $val = ${$self->{'default'} }{$_}{'default'}; - } - $line .= "$val "; - $line .= ' ' x ($optwidth + $typewidth + $defaultwidth + 1 - length($line)); - - if (defined(${$self -> {'default'} }{$_}{'verbose'}) && - ${$self -> {'default'} }{$_}{'verbose'} ne '') - { - $help = "${$self->{'default'} }{$_}{'verbose'}"; - } - else - { - $help = ' '; - } - if ((length("$line") + length($help)) < $maxlinewidth) - { - print $line , $help, "\n"; - } - else - { - print $line, "\n", ' ' x $valind, $help, "\n"; - } - for $val (sort byOrder keys(%{${$self->{'default'}}{$option}{'values'}})) - { - print ' ' x ($valind + 2); - print $val, ' ', ' ' x ($valwidth - length($val) - 2); - print ${$self->{'default'}}{$option}{'values'}{$val}, "\n"; - } - } - - print <| ! no argument: variable is set to 1 on -foo (or, to 0 on -nofoo) - =s | :s mandatory (or, optional) string argument - =i | :i mandatory (or, optional) integer argument -EOT -} # End of helpOptions. - -#------------------------------------------------------------------- - -sub new -{ - my($class) = @_; - my($self) = {}; - $self -> {'default'} = {}; - $self -> {'helpText'} = ''; - $self -> {'opt'} = {}; - $opt = $self -> {'opt'}; # An alias for $self -> {'opt'}. - $self -> {'type'} = (); - - return bless $self, $class; - -} # End of new. - -# -------------------------------------------------------------------------- - -1; - -# End MySimple.pm - -require "$ENV{T2H_HOME}/MySimple.pm" - if ($0 =~ /\.pl$/ && - -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init"); - -package main; - -#+++############################################################################ -# # -# Constants # -# # -#---############################################################################ - -$DEBUG_TOC = 1; -$DEBUG_INDEX = 2; -$DEBUG_BIB = 4; -$DEBUG_GLOSS = 8; -$DEBUG_DEF = 16; -$DEBUG_HTML = 32; -$DEBUG_USER = 64; -$DEBUG_L2H = 128; - - -$BIBRE = '\[[\w\/-]+\]'; # RE for a bibliography reference -$FILERE = '[\/\w.+-]+'; # RE for a file name -$VARRE = '[^\s\{\}]+'; # RE for a variable name -$NODERE = '[^,:]+'; # RE for a node name -$NODESRE = '[^:]+'; # RE for a list of node names - -$ERROR = "***"; # prefix for errors -$WARN = "**"; # prefix for warnings - - # program home page -$PROTECTTAG = "_ThisIsProtected_"; # tag to recognize protected sections - -$CHAPTEREND = "\n"; # to know where a chpater ends -$SECTIONEND = "\n"; # to know where section ends -$TOPEND = "\n"; # to know where top ends - - - -# -# pre-defined indices -# -$index_properties = -{ - 'c' => { name => 'cp'}, - 'f' => { name => 'fn', code => 1}, - 'v' => { name => 'vr', code => 1}, - 'k' => { name => 'ky', code => 1}, - 'p' => { name => 'pg', code => 1}, - 't' => { name => 'tp', code => 1} -}; - - -%predefined_index = ( - 'cp', 'c', - 'fn', 'f', - 'vr', 'v', - 'ky', 'k', - 'pg', 'p', - 'tp', 't', - ); - -# -# valid indices -# -%valid_index = ( - 'c', 1, - 'f', 1, - 'v', 1, - 'k', 1, - 'p', 1, - 't', 1, - ); - -# -# texinfo section names to level -# -%sec2level = ( - 'top', 0, - 'chapter', 1, - 'unnumbered', 1, - 'majorheading', 1, - 'chapheading', 1, - 'appendix', 1, - 'section', 2, - 'unnumberedsec', 2, - 'heading', 2, - 'appendixsec', 2, - 'appendixsection', 2, - 'subsection', 3, - 'unnumberedsubsec', 3, - 'subheading', 3, - 'appendixsubsec', 3, - 'subsubsection', 4, - 'unnumberedsubsubsec', 4, - 'subsubheading', 4, - 'appendixsubsubsec', 4, - ); - -# -# accent map, TeX command to ISO name -# -%accent_map = ( - '"', 'uml', - '~', 'tilde', - '^', 'circ', - '`', 'grave', - '\'', 'acute', - ); - -# -# texinfo "simple things" (@foo) to HTML ones -# -%simple_map = ( - # cf. makeinfo.c - "*", "
    ", # HTML+ - " ", " ", - "\t", " ", - "-", "­", # soft hyphen - "\n", "\n", - "|", "", - 'tab', '<\/TD>
    Button Name Go to From 1.2.3 go to
    -EOT - $about .= - ($T2H_ICONS && $T2H_ACTIVE_ICONS{$button} ? - &$T2H_button_icon_img($button, $T2H_ACTIVE_ICONS{$button}) : - " [" . $T2H_NAVIGATION_TEXT{$button} . "] "); - $about .= < - -$button - -$T2H_BUTTONS_GOTO{$button} - -$T2H_BUTTONS_EXAMPLE{$button} -
    ', - # spacing commands - ":", "", - "!", "!", - "?", "?", - ".", ".", - "-", "", - ); - -# -# texinfo "things" (@foo{}) to HTML ones -# -%things_map = ( - 'TeX', 'TeX', - 'br', '

    ', # paragraph break - 'bullet', '*', - 'copyright', '(C)', - 'dots', '...<\/small>', - 'enddots', '....<\/small>', - 'equiv', '==', - 'error', 'error-->', - 'expansion', '==>', - 'minus', '-', - 'point', '-!-', - 'print', '-|', - 'result', '=>', - 'today', $T2H_TODAY, - 'aa', 'å', - 'AA', 'Å', - 'ae', 'æ', - 'oe', 'œ', - 'AE', 'Æ', - 'OE', 'Œ', - 'o', 'ø', - 'O', 'Ø', - 'ss', 'ß', - 'l', '\/l', - 'L', '\/L', - 'exclamdown', '¡', - 'questiondown', '¿', - 'pounds', '£' - ); - -# -# texinfo styles (@foo{bar}) to HTML ones -# -%style_map = ( - 'acronym', '&do_acronym', - 'asis', '', - 'b', 'B', - 'cite', 'CITE', - 'code', 'CODE', - 'command', 'CODE', - 'ctrl', '&do_ctrl', # special case - 'dfn', 'EM', # DFN tag is illegal in the standard - 'dmn', '', # useless - 'email', '&do_email', # insert a clickable email address - 'emph', 'EM', - 'env', 'CODE', - 'file', '"TT', # will put quotes, cf. &apply_style - 'i', 'I', - 'kbd', 'KBD', - 'key', 'KBD', - 'math', '&do_math', - 'option', '"SAMP', # will put quotes, cf. &apply_style - 'r', '', # unsupported - 'samp', '"SAMP', # will put quotes, cf. &apply_style - 'sc', '&do_sc', # special case - 'strong', 'STRONG', - 't', 'TT', - 'titlefont', '', # useless - 'uref', '&do_uref', # insert a clickable URL - 'url', '&do_url', # insert a clickable URL - 'var', 'VAR', - 'w', '', # unsupported - 'H', '&do_accent', - 'dotaccent', '&do_accent', - 'ringaccent','&do_accent', - 'tieaccent', '&do_accent', - 'u','&do_accent', - 'ubaraccent','&do_accent', - 'udotaccent','&do_accent', - 'v', '&do_accent', - ',', '&do_accent', - 'dotless', '&do_accent' - ); - -# -# texinfo format (@foo/@end foo) to HTML ones -# -%format_map = ( - 'quotation', 'BLOCKQUOTE', - # lists - 'itemize', 'UL', - 'enumerate', 'OL', - # poorly supported - 'flushleft', 'PRE', - 'flushright', 'PRE', - ); - -# -# an eval of these $complex_format_map->{what}->[0] yields beginning -# an eval of these $complex_format_map->{what}->[1] yieleds end -$complex_format_map = -{ - example => - [ - q{"$T2H_EXAMPLE_INDENT_CELL
    "},
    -  q{'
    '} - ], - smallexample => - [ - q{"$T2H_SMALL_EXAMPLE_INDENT_CELL
    "},
    -  q{'
    '} - ], - display => - [ - q{"$T2H_EXAMPLE_INDENT_CELL
    '},
    -  q{'
    '} - ], - smalldisplay => - [ - q{"$T2H_SMALL_EXAMPLE_INDENT_CELL
    '},
    -  q{'
    '} - ] -}; - -$complex_format_map->{lisp} = $complex_format_map->{example}; -$complex_format_map->{smalllisp} = $complex_format_map->{smallexample}; -$complex_format_map->{format} = $complex_format_map->{display}; -$complex_format_map->{smallformat} = $complex_format_map->{smalldisplay}; - -# -# texinfo definition shortcuts to real ones -# -%def_map = ( - # basic commands - 'deffn', 0, - 'defvr', 0, - 'deftypefn', 0, - 'deftypevr', 0, - 'defcv', 0, - 'defop', 0, - 'deftp', 0, - # basic x commands - 'deffnx', 0, - 'defvrx', 0, - 'deftypefnx', 0, - 'deftypevrx', 0, - 'defcvx', 0, - 'defopx', 0, - 'deftpx', 0, - # shortcuts - 'defun', 'deffn Function', - 'defmac', 'deffn Macro', - 'defspec', 'deffn {Special Form}', - 'defvar', 'defvr Variable', - 'defopt', 'defvr {User Option}', - 'deftypefun', 'deftypefn Function', - 'deftypevar', 'deftypevr Variable', - 'defivar', 'defcv {Instance Variable}', - 'deftypeivar', 'defcv {Instance Variable}', # NEW: FIXME - 'defmethod', 'defop Method', - 'deftypemethod', 'defop Method', # NEW:FIXME - # x shortcuts - 'defunx', 'deffnx Function', - 'defmacx', 'deffnx Macro', - 'defspecx', 'deffnx {Special Form}', - 'defvarx', 'defvrx Variable', - 'defoptx', 'defvrx {User Option}', - 'deftypefunx', 'deftypefnx Function', - 'deftypevarx', 'deftypevrx Variable', - 'defivarx', 'defcvx {Instance Variable}', - 'defmethodx', 'defopx Method', - ); - -# -# things to skip -# -%to_skip = ( - # comments - 'c', 1, - 'comment', 1, - 'ifnotinfo', 1, - 'ifnottex', 1, - 'ifhtml', 1, - 'end ifhtml', 1, - 'end ifnotinfo', 1, - 'end ifnottex', 1, - # useless - 'detailmenu', 1, - 'direntry', 1, - 'contents', 1, - 'shortcontents', 1, - 'summarycontents', 1, - 'footnotestyle', 1, - 'end ifclear', 1, - 'end ifset', 1, - 'titlepage', 1, - 'end titlepage', 1, - # unsupported commands (formatting) - 'afourpaper', 1, - 'cropmarks', 1, - 'finalout', 1, - 'headings', 1, - 'sp', 1, - 'need', 1, - 'page', 1, - 'setchapternewpage', 1, - 'everyheading', 1, - 'everyfooting', 1, - 'evenheading', 1, - 'evenfooting', 1, - 'oddheading', 1, - 'oddfooting', 1, - 'smallbook', 1, - 'vskip', 1, - 'filbreak', 1, - 'paragraphindent', 1, - # unsupported formats - 'cartouche', 1, - 'end cartouche', 1, - 'group', 1, - 'end group', 1, - ); - -#+++############################################################################ -# # -# Argument parsing, initialisation # -# # -#---############################################################################ - -# -# flush stdout and stderr after every write -# -select(STDERR); -$| = 1; -select(STDOUT); -$| = 1; - - -%value = (); # hold texinfo variables, see also -D -$use_bibliography = 1; -$use_acc = 1; - -# -# called on -init-file -sub LoadInitFile -{ - my $init_file = shift; - # second argument is value of options - $init_file = shift; - if (-f $init_file) - { - print "# reading initialization file from $init_file\n" - if ($T2H_VERBOSE); - require($init_file); - } - else - { - print "$ERROR Error: can't read init file $int_file\n"; - $init_file = ''; - } -} - -# -# called on -lang -sub SetDocumentLanguage -{ - my $lang = shift; - if (! exists($T2H_WORDS->{$lang})) - { - warn "$ERROR: Language specs for '$lang' do not exists. Reverting to '" . - ($T2H_LANG ? T2H_LANG : "en") . "'\n"; - } - else - { - print "# using '$lang' as document language\n" if ($T2H_VERBOSE); - $T2H_LANG = $lang; - } -} - -## -## obsolete cmd line options -## -$T2H_OBSOLETE_OPTIONS -> {'no-section_navigation'} = -{ - type => '!', - linkage => sub {$main::T2H_SECTION_NAVIGATION = 0;}, - verbose => 'obsolete, use -nosec_nav', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {use_acc} = -{ - type => '!', - linkage => \$use_acc, - verbose => 'obsolete', - noHelp => 2 -}; -$T2H_OBSOLETE_OPTIONS -> {expandinfo} = -{ - type => '!', - linkage => sub {$main::T2H_EXPAND = 'info';}, - verbose => 'obsolete, use "-expand info" instead', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {expandtex} = -{ - type => '!', - linkage => sub {$main::T2H_EXPAND = 'tex';}, - verbose => 'obsolete, use "-expand tex" instead', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {monolithic} = -{ - type => '!', - linkage => sub {$main::T2H_SPLIT = '';}, - verbose => 'obsolete, use "-split no" instead', - noHelp => 2 -}; -$T2H_OBSOLETE_OPTIONS -> {split_node} = -{ - type => '!', - linkage => sub{$main::T2H_SPLIT = 'section';}, - verbose => 'obsolete, use "-split section" instead', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {split_chapter} = -{ - type => '!', - linkage => sub{$main::T2H_SPLIT = 'chapter';}, - verbose => 'obsolete, use "-split chapter" instead', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {no_verbose} = -{ - type => '!', - linkage => sub {$main::T2H_VERBOSE = 0;}, - verbose => 'obsolete, use -noverbose instead', - noHelp => 2, -}; -$T2H_OBSOLETE_OPTIONS -> {output_file} = -{ - type => '=s', - linkage => sub {$main::T2H_OUT = @_[1]; $T2H_SPLIT = '';}, - verbose => 'obsolete, use -out_file instead', - noHelp => 2 -}; - -$T2H_OBSOLETE_OPTIONS -> {section_navigation} = -{ - type => '!', - linkage => \$T2H_SECTION_NAVIGATION, - verbose => 'obsolete, use -sec_nav instead', - noHelp => 2, -}; - -$T2H_OBSOLETE_OPTIONS -> {verbose} = -{ - type => '!', - linkage => \$T2H_VERBOSE, - verbose => 'obsolete, use -Verbose instead', - noHelp => 2 -}; - -# read initialzation from $sysconfdir/texi2htmlrc or $HOME/.texi2htmlrc -my $home = $ENV{HOME}; -defined($home) or $home = ''; -foreach $i ('/usr/local/etc/texi2htmlrc', "$home/.texi2htmlrc") { - if (-f $i) { - print "# reading initialization file from $i\n" - if ($T2H_VERBOSE); - require($i); - } -} - - -#+++############################################################################ -# # -# parse command-line options -# # -#---############################################################################ -$T2H_USAGE_TEXT = <getOptions($T2H_OPTIONS, $T2H_USAGE_TEXT, "$THISVERSION\n")) -{ - print $Configure_failed if $Configure_failed; - die $T2H_FAILURE_TEXT; -} - -if (@ARGV > 1) -{ - eval {Getopt::Long::Configure("no_pass_through");}; - if (! $options->getOptions($T2H_OBSOLETE_OPTIONS, $T2H_USAGE_TEXT, "$THISVERSION\n")) - { - print $Configure_failed if $Configure_failed; - die $T2H_FAILURE_TEXT; - } -} - -if ($T2H_CHECK) { - die "Need file to check\n$T2H_FAILURE_TEXT" unless @ARGV > 0; - ✓ - exit; -} - -#+++############################################################################ -# # -# evaluation of cmd line options -# # -#---############################################################################ - -if ($T2H_EXPAND eq 'info') -{ - $to_skip{'ifinfo'} = 1; - $to_skip{'end ifinfo'} = 1; -} -elsif ($T2H_EXPAND eq 'tex') -{ - $to_skip{'iftex'} = 1; - $to_skip{'end iftex'} = 1; - -} - -$T2H_INVISIBLE_MARK = '' if $T2H_INVISIBLE_MARK eq 'xbm'; - -# -# file name buisness -# -die "Need exactly one file to translate\n$T2H_FAILURE_TEXT" unless @ARGV == 1; -$docu = shift(@ARGV); -if ($docu =~ /.*\//) { - chop($docu_dir = $&); - $docu_name = $'; -} else { - $docu_dir = '.'; - $docu_name = $docu; -} -unshift(@T2H_INCLUDE_DIRS, $docu_dir); -$docu_name =~ s/\.te?x(i|info)?$//; # basename of the document -$docu_name = $T2H_PREFIX if ($T2H_PREFIX); - -# subdir -if ($T2H_SUBDIR && ! $T2H_OUT) -{ - $T2H_SUBDIR =~ s|/*$||; - unless (-d "$T2H_SUBDIR" && -w "$T2H_SUBDIR") - { - if ( mkdir($T2H_SUBDIR, oct(755))) - { - print "# created directory $T2H_SUBDIR\n" if ($T2H_VERBOSE); - } - else - { - warn "$ERROR can't create directory $T2H_SUBDIR. Put results into current directory\n"; - $T2H_SUBDIR = ''; - } - } -} - -if ($T2H_SUBDIR && ! $T2H_OUT) -{ - $docu_rdir = "$T2H_SUBDIR/"; - print "# putting result files into directory $docu_rdir\n" if ($T2H_VERBOSE); -} -else -{ - if ($T2H_OUT && $T2H_OUT =~ m|(.*)/|) - { - $docu_rdir = "$1/"; - print "# putting result files into directory $docu_rdir\n" if ($T2H_VERBOSE); - } - else - { - print "# putting result files into current directory \n" if ($T2H_VERBOSE); - $docu_rdir = ''; - } -} - -# extension -if ($T2H_SHORTEXTN) -{ - $docu_ext = "htm"; -} -else -{ - $docu_ext = "html"; -} -if ($T2H_TOP_FILE =~ /\..*$/) -{ - $T2H_TOP_FILE = $`.".$docu_ext"; -} - -# result files -if (! $T2H_OUT && ($T2H_SPLIT =~ /section/i || $T2H_SPLIT =~ /node/i)) -{ - $T2H_SPLIT = 'section'; -} -elsif (! $T2H_OUT && $T2H_SPLIT =~ /chapter/i) -{ - $T2H_SPLIT = 'chapter' -} -else -{ - undef $T2H_SPLIT; -} - -$docu_doc = "$docu_name.$docu_ext"; # document's contents -$docu_doc_file = "$docu_rdir$docu_doc"; -if ($T2H_SPLIT) -{ - $docu_toc = $T2H_TOC_FILE || "${docu_name}_toc.$docu_ext"; # document's table of contents - $docu_stoc = "${docu_name}_ovr.$docu_ext"; # document's short toc - $docu_foot = "${docu_name}_fot.$docu_ext"; # document's footnotes - $docu_about = "${docu_name}_abt.$docu_ext"; # about this document - $docu_top = $T2H_TOP_FILE || $docu_doc; -} -else -{ - if ($T2H_OUT) - { - $docu_doc = $T2H_OUT; - $docu_doc =~ s|.*/||; - } - $docu_toc = $docu_foot = $docu_stoc = $docu_about = $docu_top = $docu_doc; -} - -$docu_toc_file = "$docu_rdir$docu_toc"; -$docu_stoc_file = "$docu_rdir$docu_stoc"; -$docu_foot_file = "$docu_rdir$docu_foot"; -$docu_about_file = "$docu_rdir$docu_about"; -$docu_top_file = "$docu_rdir$docu_top"; - -$docu_frame_file = "$docu_rdir${docu_name}_frame.$docu_ext"; -$docu_toc_frame_file = "$docu_rdir${docu_name}_toc_frame.$docu_ext"; - -# -# variables -# -$value{'html'} = 1; # predefine html (the output format) -$value{'texi2html'} = $THISVERSION; # predefine texi2html (the translator) -# _foo: internal to track @foo -foreach ('_author', '_title', '_subtitle', - '_settitle', '_setfilename', '_shorttitle') { - $value{$_} = ''; # prevent -w warnings -} -%node2sec = (); # node to section name -%sec2node = (); # section to node name -%sec2number = (); # section to number -%number2sec = (); # number to section -%idx2node = (); # index keys to node -%node2href = (); # node to HREF -%node2next = (); # node to next -%node2prev = (); # node to prev -%node2up = (); # node to up -%bib2href = (); # bibliography reference to HREF -%gloss2href = (); # glossary term to HREF -@sections = (); # list of sections -%tag2pro = (); # protected sections - -# -# initial indexes -# -$bib_num = 0; -$foot_num = 0; -$gloss_num = 0; -$idx_num = 0; -$sec_num = 0; -$doc_num = 0; -$html_num = 0; - -# -# can I use ISO8879 characters? (HTML+) -# -if ($T2H_USE_ISO) { - $things_map{'bullet'} = "•"; - $things_map{'copyright'} = "©"; - $things_map{'dots'} = "…"; - $things_map{'equiv'} = "≡"; - $things_map{'expansion'} = "→"; - $things_map{'point'} = "∗"; - $things_map{'result'} = "⇒"; -} - -# -# read texi2html extensions (if any) -# -$extensions = 'texi2html.ext'; # extensions in working directory -if (-f $extensions) { - print "# reading extensions from $extensions\n" if $T2H_VERBOSE; - require($extensions); -} -($progdir = $0) =~ s/[^\/]+$//; -if ($progdir && ($progdir ne './')) { - $extensions = "${progdir}texi2html.ext"; # extensions in texi2html directory - if (-f $extensions) { - print "# reading extensions from $extensions\n" if $T2H_VERBOSE; - require($extensions); - } -} - - -print "# reading from $docu\n" if $T2H_VERBOSE; - -######################################################################### -# -# latex2html stuff -# -# latex2html conversions consist of three stages: -# 1) ToLatex: Put "latex" code into a latex file -# 2) ToHtml: Use latex2html to generate corresponding html code and images -# 3) FromHtml: Extract generated code and images from latex2html run -# - -########################## -# default settings -# - -# defaults for files and names - -sub l2h_Init -{ - local($root) = @_; - - return 0 unless ($root); - - $l2h_name = "${root}_l2h"; - - $l2h_latex_file = "$docu_rdir${l2h_name}.tex"; - $l2h_cache_file = "${docu_rdir}l2h_cache.pm"; - $T2H_L2H_L2H = "latex2html" unless ($T2H_L2H_L2H); - - # destination dir -- generated images are put there, should be the same - # as dir of enclosing html document -- - $l2h_html_file = "$docu_rdir${l2h_name}.html"; - $l2h_prefix = "${l2h_name}_"; - return 1; -} - - -########################## -# -# First stage: Generation of Latex file -# Initialize with: l2h_InitToLatex -# Add content with: l2h_ToLatex($text) --> HTML placeholder comment -# Finish with: l2h_FinishToLatex -# - -$l2h_latex_preample = <$l2h_latex_file")) - { - warn "$ERROR Error l2h: Can't open latex file '$latex_file' for writing\n"; - return 0; - } - print "# l2h: use ${l2h_latex_file} as latex file\n" if ($T2H_VERBOSE); - print L2H_LATEX $l2h_latex_preample; - } - # open database for caching - l2h_InitCache(); - $l2h_latex_count = 0; - $l2h_to_latex_count = 0; - $l2h_cached_count = 0; - return 1; -} - -# print text (1st arg) into latex file (if not already there), return -# HTML commentary which can be later on replaced by the latex2html -# generated text -sub l2h_ToLatex -{ - my($text) = @_; - my($count); - - $l2h_to_latex_count++; - $text =~ s/(\s*)$//; - - # try whether we can cache it - my $cached_text = l2h_FromCache($text); - if ($cached_text) - { - $l2h_cached_count++; - return $cached_text; - } - - # try whether we have text already on things to do - unless ($count = $l2h_to_latex{$text}) - { - $count = $l2h_latex_count; - $l2h_latex_count++; - $l2h_to_latex{$text} = $count; - $l2h_to_latex[$count] = $text; - unless ($T2H_L2H_SKIP) - { - print L2H_LATEX "\\begin{rawhtml}\n"; - print L2H_LATEX "\n"; - print L2H_LATEX "\\end{rawhtml}\n"; - - print L2H_LATEX "$text\n"; - - print L2H_LATEX "\\begin{rawhtml}\n"; - print L2H_LATEX "\n"; - print L2H_LATEX "\\end{rawhtml}\n"; - } - } - return ""; -} - -# print closing into latex file and close it -sub l2h_FinishToLatex -{ - local ($reused); - - $reused = $l2h_to_latex_count - $l2h_latex_count - $l2h_cached_count; - unless ($T2H_L2H_SKIP) - { - print L2H_LATEX $l2h_latex_closing; - close(L2H_LATEX); - } - print "# l2h: finished to latex ($l2h_cached_count cached, $reused reused, $l2h_latex_count contents)\n" if ($T2H_VERBOSE); - unless ($l2h_latex_count) - { - l2h_Finish(); - return 0; - } - return 1; -} - -################################### -# Second stage: Use latex2html to generate corresponding html code and images -# -# l2h_ToHtml([$l2h_latex_file, [$l2h_html_dir]]): -# Call latex2html on $l2h_latex_file -# Put images (prefixed with $l2h_name."_") and html file(s) in $l2h_html_dir -# Return 1, on success -# 0, otherwise -# -sub l2h_ToHtml -{ - local($call, $ext, $root, $dotbug); - - if ($T2H_L2H_SKIP) - { - print "# l2h: skipping latex2html run\n" if ($T2H_VERBOSE); - return 1; - } - - # Check for dot in directory where dvips will work - if ($T2H_L2H_TMP) - { - if ($T2H_L2H_TMP =~ /\./) - { - warn "$ERROR Warning l2h: l2h_tmp dir contains a dot. Use /tmp, instead\n"; - $dotbug = 1; - } - } - else - { - if (&getcwd =~ /\./) - { - warn "$ERROR Warning l2h: current dir contains a dot. Use /tmp as l2h_tmp dir \n"; - $dotbug = 1; - } - } - # fix it, if necessary and hope that it works - $T2H_L2H_TMP = "/tmp" if ($dotbug); - - $call = $T2H_L2H_L2H; - # use init file, if specified - $call = $call . " -init_file " . $init_file if ($init_file && -f $init_file); - # set output dir - $call .= ($docu_rdir ? " -dir $docu_rdir" : " -no_subdir"); - # use l2h_tmp, if specified - $call = $call . " -tmp $T2H_L2H_TMP" if ($T2H_L2H_TMP); - # options we want to be sure of - $call = $call ." -address 0 -info 0 -split 0 -no_navigation -no_auto_link"; - $call = $call ." -prefix ${l2h_prefix} $l2h_latex_file"; - - print "# l2h: executing '$call'\n" if ($T2H_VERBOSE); - if (system($call)) - { - warn "l2h ***Error: '${call}' did not succeed\n"; - return 0; - } - else - { - print "# l2h: latex2html finished successfully\n" if ($T2H_VERBOSE); - return 1; - } -} - -# this is directly pasted over from latex2html -sub getcwd { - local($_) = `pwd`; - - die "'pwd' failed (out of memory?)\n" - unless length; - chop; - $_; -} - - -########################## -# Third stage: Extract generated contents from latex2html run -# Initialize with: l2h_InitFromHtml -# open $l2h_html_file for reading -# reads in contents into array indexed by numbers -# return 1, on success -- 0, otherwise -# Extract Html code with: l2h_FromHtml($text) -# replaces in $text all previosuly inserted comments by generated html code -# returns (possibly changed) $text -# Finish with: l2h_FinishFromHtml -# closes $l2h_html_dir/$l2h_name.".$docu_ext" - -sub l2h_InitFromHtml -{ - local($h_line, $h_content, $count, %l2h_img); - - if (! open(L2H_HTML, "<${l2h_html_file}")) - { - print "$ERROR Error l2h: Can't open ${l2h_html_file} for reading\n"; - return 0; - } - print "# l2h: use ${l2h_html_file} as html file\n" if ($T2H_VERBOSE); - - $l2h_html_count = 0; - - while ($h_line = ) - { - if ($h_line =~ /^/) - { - $count = $1; - $h_content = ""; - while ($h_line = ) - { - if ($h_line =~ /^/) - { - chomp $h_content; - chomp $h_content; - $l2h_html_count++; - $h_content = l2h_ToCache($count, $h_content); - $l2h_from_html[$count] = $h_content; - $h_content = ''; - last; - } - $h_content = $h_content.$h_line; - } - if ($hcontent) - { - print "$ERROR Warning l2h: l2h_end $l2h_name $count not found\n" - if ($T2H_VERBOSE); - close(L2H_HTML); - return 0; - } - } - } - print "# l2h: Got $l2h_html_count of $l2h_latex_count html contents\n" - if ($T2H_VERBOSE); - - close(L2H_HTML); - return 1; -} - -sub l2h_FromHtml -{ - local($text) = @_; - local($done, $to_do, $count); - - $to_do = $text; - - while ($to_do =~ /([^\000]*)([^\000]*)/) - { - $to_do = $1; - $count = $2; - $done = $3.$done; - - $done = "".$done - if ($T2H_DEBUG & $DEBUG_L2H); - - $done = &l2h_ExtractFromHtml($count) . $done; - - $done = "".$done - if ($T2H_DEBUG & $DEBUG_L2H); - } - return $to_do.$done; -} - - -sub l2h_ExtractFromHtml -{ - local($count) = @_; - - return $l2h_from_html[$count] if ($l2h_from_html[$count]); - - if ($count >= 0 && $count < $l2h_latex_count) - { - # now we are in trouble - local($l_l2h, $_); - - $l2h_extract_error++; - print "$ERROR l2h: can't extract content $count from html\n" - if ($T2H_VERBOSE); - # try simple (ordinary) substition (without l2h) - $l_l2h = $T2H_L2H; - $T2H_L2H = 0; - $_ = $l2h_to_latex{$count}; - $_ = &substitute_style($_); - &unprotect_texi; - $_ = "" . $_ - if ($T2H_DEBUG & $DEBUG_L2H); - $T2H_L2H = $l_l2h; - return $_; - } - else - { - # now we have been incorrectly called - $l2h_range_error++; - print "$ERROR l2h: Request of $count content which is out of valide range [0,$l2h_latex_count)\n"; - return "" - if ($T2H_DEBUG & $DEBUG_L2H); - return ""; - } -} - -sub l2h_FinishFromHtml -{ - if ($T2H_VERBOSE) - { - if ($l2h_extract_error + $l2h_range_error) - { - print "# l2h: finished from html ($l2h_extract_error extract and $l2h_range_error errors)\n"; - } - else - { - print "# l2h: finished from html (no errors)\n"; - } - } -} - -sub l2h_Finish -{ - l2h_StoreCache(); - if ($T2H_L2H_CLEAN) - { - print "# l2h: removing temporary files generated by l2h extension\n" - if $T2H_VERBOSE; - while (<"$docu_rdir$l2h_name"*>) - { - unlink $_; - } - } - print "# l2h: Finished\n" if $T2H_VERBOSE; - return 1; -} - -############################## -# stuff for l2h caching -# - -# I tried doing this with a dbm data base, but it did not store all -# keys/values. Hence, I did as latex2html does it -sub l2h_InitCache -{ - if (-r "$l2h_cache_file") - { - my $rdo = do "$l2h_cache_file"; - warn("$ERROR l2h Error: could not load $docu_rdir$l2h_cache_file: $@\n") - unless ($rdo); - } -} - -sub l2h_StoreCache -{ - return unless $l2h_latex_count; - - my ($key, $value); - open(FH, ">$l2h_cache_file") || return warn"$ERROR l2h Error: could not open $docu_rdir$l2h_cache_file for writing: $!\n"; - - - while (($key, $value) = each %l2h_cache) - { - # escape stuff - $key =~ s|/|\\/|g; - $key =~ s|\\\\/|\\/|g; - # weird, a \ at the end of the key results in an error - # maybe this also broke the dbm database stuff - $key =~ s|\\$|\\\\|; - $value =~ s/\|/\\\|/g; - $value =~ s/\\\\\|/\\\|/g; - $value =~ s|\\\\|\\\\\\\\|g; - print FH "\n\$l2h_cache_key = q/$key/;\n"; - print FH "\$l2h_cache{\$l2h_cache_key} = q|$value|;\n"; - } - print FH "1;"; - close(FH); -} - -# return cached html, if it exists for text, and if all pictures -# are there, as well -sub l2h_FromCache -{ - my $text = shift; - my $cached = $l2h_cache{$text}; - if ($cached) - { - while ($cached =~ m/SRC="(.*?)"/g) - { - unless (-e "$docu_rdir$1") - { - return undef; - } - } - return $cached; - } - return undef; -} - -# insert generated html into cache, move away images, -# return transformed html -$maximage = 1; -sub l2h_ToCache -{ - my $count = shift; - my $content = shift; - my @images = ($content =~ /SRC="(.*?)"/g); - my ($src, $dest); - - for $src (@images) - { - $dest = $l2h_img{$src}; - unless ($dest) - { - my $ext; - if ($src =~ /.*\.(.*)$/ && $1 ne $docu_ext) - { - $ext = $1; - } - else - { - warn "$ERROR: L2h image $src has invalid extension\n"; - next; - } - while (-e "$docu_rdir${docu_name}_$maximage.$ext") { $maximage++;} - $dest = "${docu_name}_$maximage.$ext"; - system("cp -f $docu_rdir$src $docu_rdir$dest"); - $l2h_img{$src} = $dest; - unlink "$docu_rdir$src" unless ($DEBUG & DEBUG_L2H); - } - $content =~ s/$src/$dest/g; - } - $l2h_cache{$l2h_to_latex[$count]} = $content; - return $content; -} - - -#+++############################################################################ -# # -# Pass 1: read source, handle command, variable, simple substitution # -# # -#---############################################################################ - -@lines = (); # whole document -@toc_lines = (); # table of contents -@stoc_lines = (); # table of contents -$curlevel = 0; # current level in TOC -$node = ''; # current node name -$node_next = ''; # current node next name -$node_prev = ''; # current node prev name -$node_up = ''; # current node up name -$in_table = 0; # am I inside a table -$table_type = ''; # type of table ('', 'f', 'v', 'multi') -@tables = (); # nested table support -$in_bibliography = 0; # am I inside a bibliography -$in_glossary = 0; # am I inside a glossary -$in_top = 0; # am I inside the top node -$has_top = 0; # did I see a top node? -$has_top_command = 0; # did I see @top for automatic pointers? -$in_pre = 0; # am I inside a preformatted section -$in_list = 0; # am I inside a list -$in_html = 0; # am I inside an HTML section -$first_line = 1; # is it the first line -$dont_html = 0; # don't protect HTML on this line -$deferred_ref = ''; # deferred reference for indexes -@html_stack = (); # HTML elements stack -$html_element = ''; # current HTML element -&html_reset; -%macros = (); # macros - -# init l2h -$T2H_L2H = &l2h_Init($docu_name) if ($T2H_L2H); -$T2H_L2H = &l2h_InitToLatex if ($T2H_L2H); - -# build code for simple substitutions -# the maps used (%simple_map and %things_map) MUST be aware of this -# watch out for regexps, / and escaped characters! -$subst_code = ''; -foreach (keys(%simple_map)) { - ($re = $_) =~ s/(\W)/\\$1/g; # protect regexp chars - $subst_code .= "s/\\\@$re/$simple_map{$_}/g;\n"; -} -foreach (keys(%things_map)) { - $subst_code .= "s/\\\@$_\\{\\}/$things_map{$_}/g;\n"; -} -if ($use_acc) { - # accentuated characters - foreach (keys(%accent_map)) { - if ($_ eq "`") { - $subst_code .= "s/$;3"; - } elsif ($_ eq "'") { - $subst_code .= "s/$;4"; - } else { - $subst_code .= "s/\\\@\\$_"; - } - $subst_code .= "([a-z])/&\${1}$accent_map{$_};/gi;\n"; - } -} -eval("sub simple_substitutions { $subst_code }"); - -&init_input; -INPUT_LINE: while ($_ = &next_line) { - # - # remove \input on the first lines only - # - if ($first_line) { - next if /^\\input/; - $first_line = 0; - } - # non-@ substitutions cf. texinfmt.el - # - # parse texinfo tags - # - $tag = ''; - $end_tag = ''; - if (/^\s*\@end\s+(\w+)\b/) { - $end_tag = $1; - } elsif (/^\s*\@(\w+)\b/) { - $tag = $1; - } - # - # handle @html / @end html - # - if ($in_html) { - if ($end_tag eq 'html') { - $in_html = 0; - } else { - $tag2pro{$in_html} .= $_; - } - next; - } elsif ($tag eq 'html') { - $in_html = $PROTECTTAG . ++$html_num; - push(@lines, $in_html); - next; - } - - # - # try to remove inlined comments - # syntax from tex-mode.el comment-start-skip - # - s/((^|[^\@])(\@\@)*)\@c(omment | |\{|$).*/$1/; - -# Sometimes I use @c right at the end of a line ( to suppress the line feed ) -# s/((^|[^\@])(\@\@)*)\@c(omment)?$/$1/; -# s/((^|[^\@])(\@\@)*)\@c(omment)? .*/$1/; -# s/(.*)\@c{.*?}(.*)/$1$2/; -# s/(.*)\@comment{.*?}(.*)/$1$2/; -# s/^(.*)\@c /$1/; -# s/^(.*)\@comment /$1/; - - ############################################################# - # value substitution before macro expansion, so that - # it works in macro arguments - s/\@value{($VARRE)}/$value{$1}/eg; - - ############################################################# - # macro substitution - while (/\@(\w+)/g) - { - if (exists($macros->{$1})) - { - my $before = $`; - my $name = $1; - my $after = $'; - my @args; - my $args; - if ($after =~ /^\s*{(.*?[^\\])}(.*)/) - { - $args = $1; - $after = $2; - } - elsif (@{$macros->{$name}->{Args}} == 1) - { - $args = $after; - $args =~ s/^\s*//; - $args =~ s/\s*$//; - $after = ''; - } - $args =~ s|\\\\|\\|g; - $args =~ s|\\{|{|g; - $args =~ s|\\}|}|g; - if (@{$macros->{$name}->{Args}} > 1) - { - $args =~ s/(^|[^\\]),/$1$;/g ; - $args =~ s|\\,|,|g; - @args = split(/$;\s*/, $args) if (@{$macros->{$name}->{Args}} > 1); - } - else - { - $args =~ s|\\,|,|g; - @args = ($args); - } - my $macrobody = $macros->{$name}->{Body}; - for ($i=0; $i<=$#args; $i++) - { - $macrobody =~ s|\\$macros->{$name}->{Args}->[$i]\\|$args[$i]|g; - } - $macrobody =~ s|\\\\|\\|g; - $_ = $before . $macrobody . $after; - unshift @input_spool, map {$_ = $_."\n"} split(/\n/, $_); - next INPUT_LINE; - } - } # - - - # - # try to skip the line - # - if ($end_tag) { - $in_titlepage = 0 if $end_tag eq 'titlepage'; - next if $to_skip{"end $end_tag"}; - } elsif ($tag) { - $in_titlepage = 1 if $tag eq 'titlepage'; - next if $to_skip{$tag}; - last if $tag eq 'bye'; - } - if ($in_top) { - # parsing the top node - if ($tag eq 'node' || - ($sec2level{$tag} && $tag !~ /unnumbered/ && $tag !~ /heading/)) - { - # no more in top - $in_top = 0; - push(@lines, $TOPEND); - } - } - unless ($in_pre) { - s/``/\"/g; - s/''/\"/g; - s/([\w ])---([\w ])/$1--$2/g; - } - # - # analyze the tag - # - if ($tag) { - # skip lines - &skip_until($tag), next if $tag eq 'ignore'; - &skip_until($tag), next if $tag eq 'ifnothtml'; - if ($tag eq 'ifinfo') - { - &skip_until($tag), next unless $T2H_EXPAND eq 'info'; - } - if ($tag eq 'iftex') - { - &skip_until($tag), next unless $T2H_EXPAND eq 'tex'; - } - if ($tag eq 'tex') - { - # add to latex2html file - if ($T2H_EXPAND eq 'tex' && $T2H_L2H && ! $in_pre) - { - # add space to the end -- tex(i2dvi) does this, as well - push(@lines, &l2h_ToLatex(&string_until($tag) . " ")); - } - else - { - &skip_until($tag); - } - next; - } - if ($tag eq 'titlepage') - { - next; - } - # handle special tables - if ($tag =~ /^(|f|v|multi)table$/) { - $table_type = $1; - $tag = 'table'; - } - # special cases - if ($tag eq 'top' || ($tag eq 'node' && /^\@node\s+top\s*,/i)) { - $in_top = 1; - $has_top = 1; - $has_top_command = 1 if $tag eq 'top'; - @lines = (); # ignore all lines before top (title page garbage) - next; - } elsif ($tag eq 'node') { - if ($in_top) - { - $in_top = 0; - push(@lines, $TOPEND); - } - warn "$ERROR Bad node line: $_" unless $_ =~ /^\@node\s$NODESRE$/o; - # request of "Richard Y. Kim" - s/^\@node\s+//; - $_ = &protect_html($_); # if node contains '&' for instance - ($node, $node_next, $node_prev, $node_up) = split(/,/); - &normalise_node($node); - &normalise_node($node_next); - &normalise_node($node_prev); - &normalise_node($node_up); - $node =~ /\"/ ? - push @lines, &html_debug("\n", __LINE__) : - push @lines, &html_debug("\n", __LINE__); - next; - } elsif ($tag eq 'include') { - if (/^\@include\s+($FILERE)\s*$/o) { - $file = LocateIncludeFile($1); - if ($file && -e $file) { - &open($file); - print "# including $file\n" if $T2H_VERBOSE; - } else { - warn "$ERROR Can't find $1, skipping"; - } - } else { - warn "$ERROR Bad include line: $_"; - } - next; - } elsif ($tag eq 'ifclear') { - if (/^\@ifclear\s+($VARRE)\s*$/o) { - next unless defined($value{$1}); - &skip_until($tag); - } else { - warn "$ERROR Bad ifclear line: $_"; - } - next; - } elsif ($tag eq 'ifset') { - if (/^\@ifset\s+($VARRE)\s*$/o) { - next if defined($value{$1}); - &skip_until($tag); - } else { - warn "$ERROR Bad ifset line: $_"; - } - next; - } elsif ($tag eq 'menu') { - unless ($T2H_SHOW_MENU) { - &skip_until($tag); - next; - } - &html_push_if($tag); - push(@lines, &html_debug('', __LINE__)); - } elsif ($format_map{$tag}) { - $in_pre = 1 if $format_map{$tag} eq 'PRE'; - &html_push_if($format_map{$tag}); - push(@lines, &html_debug('', __LINE__)); - $in_list++ if $format_map{$tag} eq 'UL' || $format_map{$tag} eq 'OL' ; -# push(@lines, &debug("

    \n", __LINE__)) -# if $tag =~ /example/i; - # sunshine@sunshineco.com:
    bla
    looks better than - #
    \nbla
    (at least on NeXTstep browser - push(@lines, &debug("<$format_map{$tag}>" . - ($in_pre ? '' : "\n"), __LINE__)); - next; - } - elsif (exists $complex_format_map->{$tag}) - { - my $start = eval $complex_format_map->{$tag}->[0]; - if ($@) - { - print "$ERROR: eval of complex_format_map->{$tag}->[0] $complex_format_map->{$tag}->[0]: $@"; - $start = '
    '
    -	  }
    -	  $in_pre = 1 if $start =~ /
    \n", __LINE__));
    -		    &html_push_if('TABLE');
    -		} else {
    -		    push(@lines, &debug("
    \n", __LINE__)); - &html_push_if('DL'); - } - push(@lines, &html_debug('', __LINE__)); - } else { - warn "$ERROR Bad table line: $_"; - } - next; - } - elsif ($tag eq 'synindex' || $tag eq 'syncodeindex') - { - if (/^\@$tag\s+(\w+)\s+(\w+)\s*$/) - { - my $from = $1; - my $to = $2; - my $prefix_from = IndexName2Prefix($from); - my $prefix_to = IndexName2Prefix($to); - - warn("$ERROR unknown from index name $from ind syn*index line: $_"), next - unless $prefix_from; - warn("$ERROR unknown to index name $to ind syn*index line: $_"), next - unless $prefix_to; - - if ($tag eq 'syncodeindex') - { - $index_properties->{$prefix_to}->{'from_code'}->{$prefix_from} = 1; - } - else - { - $index_properties->{$prefix_to}->{'from'}->{$prefix_from} = 1; - } - } - else - { - warn "$ERROR Bad syn*index line: $_"; - } - next; - } - elsif ($tag eq 'defindex' || $tag eq 'defcodeindex') - { - if (/^\@$tag\s+(\w+)\s*$/) - { - my $name = $1; - $index_properties->{$name}->{name} = $name; - $index_properties->{$name}->{code} = 1 if $tag eq 'defcodeindex'; - } - else - { - warn "$ERROR Bad defindex line: $_"; - } - next; - } - elsif (/^\@printindex/) - { - push (@lines, "$_"); - next; - } - elsif ($tag eq 'sp') { - push(@lines, &debug("

    \n", __LINE__)); - next; - } elsif ($tag eq 'center') { - push(@lines, &debug("

    \n", __LINE__)); - s/\@center//; - } elsif ($tag eq 'setref') { - &protect_html; # if setref contains '&' for instance - if (/^\@$tag\s*{($NODERE)}\s*$/) { - $setref = $1; - $setref =~ s/\s+/ /g; # normalize - $setref =~ s/ $//; - $node2sec{$setref} = $name; - $sec2node{$name} = $setref; - $node2href{$setref} = "$docu_doc#$docid"; - } else { - warn "$ERROR Bad setref line: $_"; - } - next; - } elsif ($tag eq 'lowersections') { - local ($sec, $level); - while (($sec, $level) = each %sec2level) { - $sec2level{$sec} = $level + 1; - } - next; - } elsif ($tag eq 'raisesections') { - local ($sec, $level); - while (($sec, $level) = each %sec2level) { - $sec2level{$sec} = $level - 1; - } - next; - } - elsif ($tag eq 'macro' || $tag eq 'rmacro') - { - if (/^\@$tag\s*(\w+)\s*(.*)/) - { - my $name = $1; - my @args; - @args = split(/\s*,\s*/ , $1) - if ($2 =~ /^\s*{(.*)}\s*/); - - $macros->{$name}->{Args} = \@args; - $macros->{$name}->{Body} = ''; - while (($_ = &next_line) && $_ !~ /\@end $tag/) - { - $macros->{$name}->{Body} .= $_; - } - die "ERROR: No closing '\@end $tag' found for macro definition of '$name'\n" - unless (/\@end $tag/); - chomp $macros->{$name}->{Body}; - } - else - { - warn "$ERROR: Bad macro defintion $_" - } - next; - } - elsif ($tag eq 'unmacro') - { - delete $macros->{$1} if (/^\@unmacro\s*(\w+)/); - next; - } - elsif ($tag eq 'documentlanguage') - { - SetDocumentLanguage($1) if (!$T2H_LANG && /documentlanguage\s*(\w+)/); - } - elsif (defined($def_map{$tag})) { - if ($def_map{$tag}) { - s/^\@$tag\s+//; - $tag = $def_map{$tag}; - $_ = "\@$tag $_"; - $tag =~ s/\s.*//; - } - } elsif (defined($user_sub{$tag})) { - s/^\@$tag\s+//; - $sub = $user_sub{$tag}; - print "# user $tag = $sub, arg: $_" if $T2H_DEBUG & $DEBUG_USER; - if (defined(&$sub)) { - chop($_); - &$sub($_); - } else { - warn "$ERROR Bad user sub for $tag: $sub\n"; - } - next; - } - if (defined($def_map{$tag})) { - s/^\@$tag\s+//; - if ($tag =~ /x$/) { - # extra definition line - $tag = $`; - $is_extra = 1; - } else { - $is_extra = 0; - } - while (/\{([^\{\}]*)\}/) { - # this is a {} construct - ($before, $contents, $after) = ($`, $1, $'); - # protect spaces - $contents =~ s/\s+/$;9/g; - # restore $_ protecting {} - $_ = "$before$;7$contents$;8$after"; - } - @args = split(/\s+/, &protect_html($_)); - foreach (@args) { - s/$;9/ /g; # unprotect spaces - s/$;7/\{/g; # ... { - s/$;8/\}/g; # ... } - } - $type = shift(@args); - $type =~ s/^\{(.*)\}$/$1/; - print "# def ($tag): {$type} ", join(', ', @args), "\n" - if $T2H_DEBUG & $DEBUG_DEF; - $type .= ':'; # it's nicer like this - my $name = shift(@args); - $name =~ s/^\{(.*)\}$/$1/; - if ($is_extra) { - $_ = &debug("
    ", __LINE__); - } else { - $_ = &debug("
    \n
    ", __LINE__); - } - if ($tag eq 'deffn' || $tag eq 'defvr' || $tag eq 'deftp') { - $_ .= "$type $name"; - $_ .= " @args" if @args; - } elsif ($tag eq 'deftypefn' || $tag eq 'deftypevr' - || $tag eq 'defcv' || $tag eq 'defop') { - $ftype = $name; - $name = shift(@args); - $name =~ s/^\{(.*)\}$/$1/; - $_ .= "$type $ftype $name"; - $_ .= " @args" if @args; - } else { - warn "$ERROR Unknown definition type: $tag\n"; - $_ .= "$type $name"; - $_ .= " @args" if @args; - } - $_ .= &debug("\n
    ", __LINE__); - $name = &unprotect_html($name); - if ($tag eq 'deffn' || $tag eq 'deftypefn') { - EnterIndexEntry('f', $name, $docu_doc, $section, \@lines); -# unshift(@input_spool, "\@findex $name\n"); - } elsif ($tag eq 'defop') { - EnterIndexEntry('f', "$name on $ftype", $docu_doc, $section, \@lines); -# unshift(@input_spool, "\@findex $name on $ftype\n"); - } elsif ($tag eq 'defvr' || $tag eq 'deftypevr' || $tag eq 'defcv') { - EnterIndexEntry('v', $name, $docu_doc, $section, \@lines); -# unshift(@input_spool, "\@vindex $name\n"); - } else { - EnterIndexEntry('t', $name, $docu_doc, $section, \@lines); -# unshift(@input_spool, "\@tindex $name\n"); - } - $dont_html = 1; - } - } elsif ($end_tag) { - if ($format_map{$end_tag}) { - $in_pre = 0 if $format_map{$end_tag} eq 'PRE'; - $in_list-- if $format_map{$end_tag} eq 'UL' || $format_map{$end_tag} eq 'OL' ; - &html_pop_if('P'); - &html_pop_if('LI'); - &html_pop_if(); - push(@lines, &debug("\n", __LINE__)); - push(@lines, &html_debug('', __LINE__)); - } - elsif (exists $complex_format_map->{$end_tag}) - { - my $end = eval $complex_format_map->{$end_tag}->[1]; - if ($@) - { - print "$ERROR: eval of complex_format_map->{$end_tag}->[1] $complex_format_map->{$end_tag}->[0]: $@"; - $end = '
    ' - } - $in_pre = 0 if $end =~ m|
    |; - push(@lines, html_debug($end, __LINE__)); - } elsif ($end_tag =~ /^(|f|v|multi)table$/) { - unless (@tables) { - warn "$ERROR \@end $end_tag without \@*table\n"; - next; - } - &html_pop_if('P'); - ($table_type, $in_table) = split($;, shift(@tables)); - unless ($1 eq $table_type) { - warn "$ERROR \@end $end_tag without matching \@$end_tag\n"; - next; - } - if ($table_type eq "multi") { - push(@lines, "
    \n"); - &html_pop_if('TR'); - } else { - push(@lines, "\n"); - &html_pop_if('DD'); - } - &html_pop_if(); - if (@tables) { - ($table_type, $in_table) = split($;, $tables[0]); - } else { - $in_table = 0; - } - } elsif (defined($def_map{$end_tag})) { - push(@lines, &debug("\n", __LINE__)); - } elsif ($end_tag eq 'menu') { - &html_pop_if(); - push(@lines, $_); # must keep it for pass 2 - } - next; - } - ############################################################# - # anchor insertion - while (/\@anchor\s*\{(.*?)\}/) - { - $_ = $`.$'; - my $anchor = $1; - $anchor = &normalise_node($anchor); - push @lines, &html_debug("\n"); - $node2href{$anchor} = "$docu_doc#$anchor"; - next INPUT_LINE if $_ =~ /^\s*$/; - } - - ############################################################# - # index entry generation, after value substitutions - if (/^\@(\w+?)index\s+/) - { - EnterIndexEntry($1, $', $docu_doc, $section, \@lines); - next; - } - # - # protect texi and HTML things - &protect_texi; - $_ = &protect_html($_) unless $dont_html; - $dont_html = 0; - # substitution (unsupported things) - s/^\@exdent\s+//g; - s/\@noindent\s+//g; - s/\@refill\s+//g; - # other substitutions - &simple_substitutions; - s/\@footnote\{/\@footnote$docu_doc\{/g; # mark footnotes, cf. pass 4 - # - # analyze the tag again - # - if ($tag) { - if (defined($sec2level{$tag}) && $sec2level{$tag} > 0) { - if (/^\@$tag\s+(.+)$/) { - $name = $1; - $name = &normalise_node($name); - $level = $sec2level{$tag}; - # check for index -# $first_index_chapter = $name - $first_index_chapter = $node - if ($level == 1 && !$first_index_chapter && - $name =~ /index/i); -if ($level == 1 && $name =~ /index/i) { - print "# at level 1 found '" . $name . "' as matching index name (node = '" . $node . "')\n"; - print "# first index chapter = '" . $first_index_chapter . "' \n"; -} - if ($in_top && /heading/){ - $T2H_HAS_TOP_HEADING = 1; - $_ = &debug("$name\n", __LINE__); - &html_push_if('body'); - print "# top heading, section $name, level $level\n" - if $T2H_DEBUG & $DEBUG_TOC; - } - else - { - unless (/^\@\w*heading/) - { - unless (/^\@unnumbered/) - { - my $number = &update_sec_num($tag, $level); - $name = $number. ' ' . $name if $T2H_NUMBER_SECTIONS; - $sec2number{$name} = $number; - $number2sec{$number} = $name; - } - if (defined($toplevel)) - { - push @lines, ($level==$toplevel ? $CHAPTEREND : $SECTIONEND); - } - else - { - # first time we see a "section" - unless ($level == 1) - { - warn "$WARN The first section found is not of level 1: $_"; - } - $toplevel = $level; - } - push(@sections, $name); - next_doc() if ($T2H_SPLIT eq 'section' || - $T2H_SPLIT && $level == $toplevel); - } - $sec_num++; - $docid = "SEC$sec_num"; - $tocid = (/^\@\w*heading/ ? undef : "TOC$sec_num"); - # check biblio and glossary - $in_bibliography = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*bibliography$/i); - $in_glossary = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*glossary$/i); - # check node - if ($node) - { - warn "$ERROR Duplicate node found: $node\n" - if ($node2sec{$node}); - } - else - { - $name .= ' ' while ($node2sec{$name}); - $node = $name; - } - $name .= ' ' while ($sec2node{$name}); - $section = $name; - $node2sec{$node} = $name; - $sec2node{$name} = $node; - $node2href{$node} = "$docu_doc#$docid"; -print "# set node2href for '" . $node . "' (" . $name . ") to '" . $node2href{$node} . "'\n" - if ($node =~ /index/i); - $node2next{$node} = $node_next; - $node2prev{$node} = $node_prev; - $node2up{$node} = $node_up; - print "# node $node, section $name, level $level\n" - if $T2H_DEBUG & $DEBUG_TOC; - - $node = ''; - $node_next = ''; - $node_prev = ''; - $node_next = ''; - if ($tocid) - { - # update TOC - while ($level > $curlevel) { - $curlevel++; - push(@toc_lines, "
      \n"); - } - while ($level < $curlevel) { - $curlevel--; - push(@toc_lines, "
    \n"); - } - $_ = &t2h_anchor($tocid, "$docu_doc#$docid", $name, 1); - $_ = &substitute_style($_); - push(@stoc_lines, "$_
    \n") if ($level == 1); - if ($T2H_NUMBER_SECTIONS) - { - push(@toc_lines, $_ . "
    \n") - } - else - { - push(@toc_lines, "
  • " . $_ ."
  • "); - } - } - else - { - push(@lines, &html_debug("\n", - __LINE__)); - } - # update DOC - push(@lines, &html_debug('', __LINE__)); - &html_reset; - $_ = " $name \n\n"; - $_ = &debug($_, __LINE__); - push(@lines, &html_debug('', __LINE__)); - } - # update DOC - foreach $line (split(/\n+/, $_)) { - push(@lines, "$line\n"); - } - next; - } else { - warn "$ERROR Bad section line: $_"; - } - } else { - # track variables - $value{$1} = Unprotect_texi($2), next if /^\@set\s+($VARRE)\s+(.*)$/o; - delete $value{$1}, next if /^\@clear\s+($VARRE)\s*$/o; - # store things - $value{'_shorttitle'} = Unprotect_texi($1), next if /^\@shorttitle\s+(.*)$/; - $value{'_setfilename'} = Unprotect_texi($1), next if /^\@setfilename\s+(.*)$/; - $value{'_settitle'} = Unprotect_texi($1), next if /^\@settitle\s+(.*)$/; - $value{'_author'} .= Unprotect_texi($1)."\n", next if /^\@author\s+(.*)$/; - $value{'_subtitle'} .= Unprotect_texi($1)."\n", next if /^\@subtitle\s+(.*)$/; - $value{'_title'} .= Unprotect_texi($1)."\n", next if /^\@title\s+(.*)$/; - - # list item - if (/^\s*\@itemx?\s+/) { - $what = $'; - $what =~ s/\s+$//; - if ($in_bibliography && $use_bibliography) { - if ($what =~ /^$BIBRE$/o) { - $id = 'BIB' . ++$bib_num; - $bib2href{$what} = "$docu_doc#$id"; - print "# found bibliography for '$what' id $id\n" - if $T2H_DEBUG & $DEBUG_BIB; - $what = &t2h_anchor($id, '', $what); - } - } elsif ($in_glossary && $T2H_USE_GLOSSARY) { - $id = 'GLOSS' . ++$gloss_num; - $entry = $what; - $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/; - $gloss2href{$entry} = "$docu_doc#$id"; - print "# found glossary for '$entry' id $id\n" - if $T2H_DEBUG & $DEBUG_GLOSS; - $what = &t2h_anchor($id, '', $what); - } - elsif ($in_table && ($table_type eq 'f' || $table_type eq 'v')) - { - EnterIndexEntry($table_type, $what, $docu_doc, $section, \@lines); - } - &html_pop_if('P'); - if ($html_element eq 'DL' || $html_element eq 'DD') { - if ($things_map{$in_table} && !$what) { - # special case to allow @table @bullet for instance - push(@lines, &debug("
    $things_map{$in_table}\n", __LINE__)); - } else { - push(@lines, &debug("
    \@$in_table\{$what\}\n", __LINE__)); - } - push(@lines, "
    "); - &html_push('DD') unless $html_element eq 'DD'; - if ($table_type) { # add also an index - unshift(@input_spool, "\@${table_type}index $what\n"); - } - } elsif ($html_element eq 'TABLE') { - push(@lines, &debug("$what\n", __LINE__)); - &html_push('TR'); - } elsif ($html_element eq 'TR') { - push(@lines, &debug("\n", __LINE__)); - push(@lines, &debug("$what\n", __LINE__)); - } else { - push(@lines, &debug("
  • $what\n", __LINE__)); - &html_push('LI') unless $html_element eq 'LI'; - } - push(@lines, &html_debug('', __LINE__)); - if ($deferred_ref) { - push(@lines, &debug("$deferred_ref\n", __LINE__)); - $deferred_ref = ''; - } - next; - } elsif (/^\@tab\s+(.*)$/) { - push(@lines, "$1\n"); - next; - } - } - } - # paragraph separator - if ($_ eq "\n" && ! $in_pre) { - next if $#lines >= 0 && $lines[$#lines] eq "\n"; - if ($html_element eq 'P') { - push (@lines, &debug("

    \n", __LINE__)); - } -# else -# { -# push(@lines, "

    \n"); -# $_ = &debug("

    \n", __LINE__); -# } - elsif ($html_element eq 'body' || $html_element eq 'BLOCKQUOTE' || $html_element eq 'DD' || $html_element eq 'LI') - { - &html_push('P'); - push(@lines, &debug("

    \n", __LINE__)); - } - } - # otherwise - push(@lines, $_) unless $in_titlepage; - push(@lines, &debug("\n", __LINE__)) if ($tag eq 'center'); -} - -# finish TOC -$level = 0; -while ($level < $curlevel) { - $curlevel--; - push(@toc_lines, "\n"); -} - -print "# end of pass 1\n" if $T2H_VERBOSE; - -SetDocumentLanguage('en') unless ($T2H_LANG); -#+++############################################################################ -# # -# Stuff related to Index generation # -# # -#---############################################################################ - -sub EnterIndexEntry -{ - my $prefix = shift; - my $key = shift; - my $docu_doc = shift; - my $section = shift; - my $lines = shift; - local $_; - - warn "$ERROR Undefined index command: $_", next - unless (exists ($index_properties->{$prefix})); - $key =~ s/\s+$//; - $_ = $key; - &protect_texi; - $key = $_; - $_ = &protect_html($_); - my $html_key = substitute_style($_); - my $id; - $key = remove_style($key); - $key = remove_things($key); - $_ = $key; - &unprotect_texi; - $key = $_; - while (exists $index->{$prefix}->{$key}) {$key .= ' '}; - if ($lines->[$#lines] =~ /^$/) - { - $id = $1; - } - else - { - $id = 'IDX' . ++$idx_num; - push(@$lines, &t2h_anchor($id, '', $T2H_INVISIBLE_MARK, !$in_pre)); - } - $index->{$prefix}->{$key}->{html_key} = $html_key; - $index->{$prefix}->{$key}->{section} = $section; - $index->{$prefix}->{$key}->{href} = "$docu_doc#$id"; - print "# found ${prefix}index for '$key' with id $id\n" - if $T2H_DEBUG & $DEBUG_INDEX; -} - -sub IndexName2Prefix -{ - my $name = shift; - my $prefix; - - for $prefix (keys %$index_properties) - { - return $prefix if ($index_properties->{$prefix}->{name} eq $name); - } - return undef; -} - -sub GetIndexEntries -{ - my $normal = shift; - my $code = shift; - my ($entries, $prefix, $key) = ({}); - - for $prefix (keys %$normal) - { - for $key (keys %{$index->{$prefix}}) - { - $entries->{$key} = {%{$index->{$prefix}->{$key}}}; - } - } - - if (defined($code)) - { - for $prefix (keys %$code) - { - unless (exists $normal->{$keys}) - { - for $key (keys %{$index->{$prefix}}) - { - $entries->{$key} = {%{$index->{$prefix}->{$key}}}; - $entries->{$key}->{html_key} = "$entries->{$key}->{html_key}"; - } - } - } - } - return $entries; -} - -sub byAlpha -{ - if ($a =~ /^[A-Za-z]/) - { - if ($b =~ /^[A-Za-z]/) - { - return lc($a) cmp lc($b); - } - else - { - return 1; - } - } - elsif ($b =~ /^[A-Za-z]/) - { - return -1; - } - else - { - return lc($a) cmp lc($b); - } -} - -sub GetIndexPages -{ - my $entries = shift; - my (@Letters, $key); - my ($EntriesByLetter, $Pages, $page) = ({}, [], {}); - my @keys = sort byAlpha keys %$entries; - - for $key (@keys) - { - push @{$EntriesByLetter->{uc(substr($key,0, 1))}} , $entries->{$key}; - } - @Letters = sort byAlpha keys %$EntriesByLetter; - - $T2H_SPLIT_INDEX = 0 unless ($T2H_SPLIT); - - unless ($T2H_SPLIT_INDEX) - { - $page->{First} = $Letters[0]; - $page->{Last} = $Letters[$#Letters]; - $page->{Letters} = \@Letters; - $page->{EntriesByLetter} = $EntriesByLetter; - push @$Pages, $page; - return $Pages; - } - - if ($T2H_SPLIT_INDEX =~ /^\d+$/) - { - my $i = 0; - my ($prev_letter, $letter); - $page->{First} = $Letters[0]; - for $letter (@Letters) - { - if ($i > $T2H_SPLIT_INDEX) - { - $page->{Last} = $prev_letter; - push @$Pages, {%$page}; - $page->{Letters} = []; - $page->{EntriesByLetter} = {}; - $page->{First} = $letter; - $i=0; - } - push @{$page->{Letters}}, $letter; - $page->{EntriesByLetter}->{$letter} = [@{$EntriesByLetter->{$letter}}]; - $i += scalar(@{$EntriesByLetter->{$letter}}); - $prev_letter = $letter; - } - $page->{Last} = $Letters[$#Letters]; - push @$Pages, {%$page}; - } - return $Pages; -} - -sub GetIndexSummary -{ - my $first_page = shift; - my $Pages = shift; - my $name = shift; - my ($page, $letter, $summary, $i, $l1, $l2, $l); - - $i = 0; - $summary = '
    Jump to:   '; - - for $page ($first_page, @$Pages) - { - for $letter (@{$page->{Letters}}) - { - $l = t2h_anchor('', "$page->{href}#${name}_$letter", "$letter", - 0, 'style="text-decoration:none"') . "\n   \n"; - - if ($letter =~ /^[A-Za-z]/) - { - $l2 .= $l; - } - else - { - $l1 .= $l; - } - } - } - $summary .= $l1 . "
    \n" if ($l1); - $summary .= $l2 . '

    '; - return $summary; -} - -sub PrintIndexPage -{ - my $lines = shift; - my $summary = shift; - my $page = shift; - my $name = shift; - - push @$lines, $summary; - - push @$lines , <

    - - - -EOT - - for $letter (@{$page->{Letters}}) - { - push @$lines, "\n"; - for $entry (@{$page->{EntriesByLetter}->{$letter}}) - { - push @$lines, - "\n"; - } - push @$lines, "\n"; - } - push @$lines, "
    Index Entry Section

    $letter
    " . - t2h_anchor('', $entry->{href}, $entry->{html_key}) . - "" . - t2h_anchor('', sec_href($entry->{section}), clean_name($entry->{section})) . - "

    "; - push @$lines, $summary; -} - -sub PrintIndex -{ - my $lines = shift; - my $name = shift; - my $section = shift; - $section = 'Top' unless $section; - my $prefix = IndexName2Prefix($name); - - warn ("$ERROR printindex: bad index name: $name"), return - unless $prefix; - - if ($index_properties->{$prefix}->{code}) - { - $index_properties->{$prefix}->{from_code}->{$prefix} = 1; - } - else - { - $index_properties->{$prefix}->{from}->{$prefix}= 1; - } - - my $Entries = GetIndexEntries($index_properties->{$prefix}->{from}, - $index_properties->{$prefix}->{from_code}); - return unless %$Entries; - - if ($T2H_IDX_SUMMARY) - { - my $key; - open(FHIDX, ">$docu_rdir$docu_name" . "_$name.idx") - || die "Can't open > $docu_rdir$docu_name" . "_$name.idx for writing: $!\n"; - print "# writing $name index summary in $docu_rdir$docu_name" . "_$name.idx...\n" if $T2H_VERBOSE; - - for $key (sort keys %$Entries) - { - print FHIDX "$key\t$Entries->{$key}->{href}\n"; - } - } - - my $Pages = GetIndexPages($Entries); - my $page; - my $first_page = shift @$Pages; - my $sec_name = $section; - # remove section number - $sec_name =~ s/.*? // if $sec_name =~ /^([A-Z]|\d+)\./; - - ($first_page->{href} = sec_href($section)) =~ s/\#.*$//; - # Update tree structure of document - if (@$Pages) - { - my $sec; - my @after; - - while (@sections && $sections[$#sections] ne $section) - { - unshift @after, pop @sections; - } - - for $page (@$Pages) - { - my $node = ($page->{First} ne $page->{Last} ? - "$sec_name: $page->{First} -- $page->{Last}" : - "$sec_name: $page->{First}"); - push @sections, $node; - $node2sec{$node} = $node; - $sec2node{$node} = $node; - $node2up{$node} = $section; - $page->{href} = next_doc(); - $page->{name} = $node; - $node2href{$node} = $page->{href}; - if ($prev_node) - { - $node2next{$prev_node} = $node; - $node2prev{$node} = $prev_node; - } - $prev_node = $node; - } - push @sections, @after; - } - - my $summary = GetIndexSummary($first_page, $Pages, $name); - PrintIndexPage($lines, $summary, $first_page, $name); - for $page (@$Pages) - { - push @$lines, ($T2H_SPLIT eq 'chapter' ? $CHAPTEREND : $SECTIONEND); - push @$lines, "

    $page->{name}

    \n"; - PrintIndexPage($lines, $summary, $page, $name); - } -} - - -#+++############################################################################ -# # -# Pass 2/3: handle style, menu, index, cross-reference # -# # -#---############################################################################ - -@lines2 = (); # whole document (2nd pass) -@lines3 = (); # whole document (3rd pass) -$in_menu = 0; # am I inside a menu - -while (@lines) { - $_ = shift(@lines); - # - # special case (protected sections) - # - if (/^$PROTECTTAG/o) { - push(@lines2, $_); - next; - } - # - # menu - # - if (/^\@menu\b/) - { - $in_menu = 1; - $in_menu_listing = 1; - push(@lines2, &debug("
    \n", __LINE__)); - next; - } - if (/^\@end\s+menu\b/) - { - if ($in_menu_listing) - { - push(@lines2, &debug("
    \n", __LINE__)); - } - else - { - push(@lines2, &debug("\n", __LINE__)); - } - $in_menu = 0; - $in_menu_listing = 0; - next; - } - if ($in_menu) - { - my ($node, $name, $descr); - if (/^\*\s+($NODERE)::/o) - { - $node = $1; - $descr = $'; - } - elsif (/^\*\s+(.+):\s+([^\t,\.\n]+)[\t,\.\n]/) - { - $name = $1; - $node = $2; - $descr = $'; - } - elsif (/^\*/) - { - warn "$ERROR Bad menu line: $_"; - } - else - { - if ($in_menu_listing) - { - $in_menu_listing = 0; - push(@lines2, &debug("\n", __LINE__)); - } - # should be like verbatim -- preseve spaces, etc - s/ /\ /g; - $_ .= "
    \n"; - push(@lines2, $_); - } - if ($node) - { - if (! $in_menu_listing) - { - $in_menu_listing = 1; - push(@lines2, &debug("\n", __LINE__)); - } - # look for continuation - while ($lines[0] =~ /^\s+\w+/) - { - $descr .= shift(@lines); - } - &menu_entry($node, $name, $descr); - } - next; - } - # - # printindex - # - PrintIndex(\@lines2, $2, $1), next - if (/^\@printindex\s+(\w+)/); - # - # simple style substitutions - # - $_ = &substitute_style($_); - # - # xref - # - while (/\@(x|px|info|)ref{([^{}]+)(}?)/) { - # note: Texinfo may accept other characters - ($type, $nodes, $full) = ($1, $2, $3); - ($before, $after) = ($`, $'); - if (! $full && $after) { - warn "$ERROR Bad xref (no ending } on line): $_"; - $_ = "$before$;0${type}ref\{$nodes$after"; - next; # while xref - } - if ($type eq 'x') { - $type = "$T2H_WORDS->{$T2H_LANG}->{'See'} "; - } elsif ($type eq 'px') { - $type = "$T2H_WORDS->{$T2H_LANG}->{'see'} "; - } elsif ($type eq 'info') { - $type = "$T2H_WORDS->{$T2H_LANG}->{'See'} Info"; - } else { - $type = ''; - } - unless ($full) { - $next = shift(@lines); - $next = &substitute_style($next); - chop($nodes); # remove final newline - if ($next =~ /\}/) { # split on 2 lines - $nodes .= " $`"; - $after = $'; - } else { - $nodes .= " $next"; - $next = shift(@lines); - $next = &substitute_style($next); - chop($nodes); - if ($next =~ /\}/) { # split on 3 lines - $nodes .= " $`"; - $after = $'; - } else { - warn "$ERROR Bad xref (no ending }): $_"; - $_ = "$before$;0xref\{$nodes$after"; - unshift(@lines, $next); - next; # while xref - } - } - } - $nodes =~ s/\s+/ /g; # remove useless spaces - @args = split(/\s*,\s*/, $nodes); - $node = $args[0]; # the node is always the first arg - $node = &normalise_node($node); - $sec = $args[2] || $args[1] || $node2sec{$node}; - $href = $node2href{$node}; - if (@args == 5) { # reference to another manual - $sec = $args[2] || $node; - $man = $args[4] || $args[3]; - $_ = "${before}${type}$T2H_WORDS->{$T2H_LANG}->{'section'} `$sec' in \@cite{$man}$after"; - } elsif ($type =~ /Info/) { # inforef - warn "$ERROR Wrong number of arguments: $_" unless @args == 3; - ($nn, $_, $in) = @args; - $_ = "${before}${type} file `$in', node `$nn'$after"; - } elsif ($sec && $href && ! $T2H_SHORT_REF) { - $_ = "${before}${type}"; - $_ .= "$T2H_WORDS->{$T2H_LANG}->{'section'} " if ${type}; - $_ .= &t2h_anchor('', $href, $sec) . $after; - } - elsif ($href) - { - $_ = "${before}${type} " . - &t2h_anchor('', $href, $args[2] || $args[1] || $node) . - $after; - } - else { - warn "$ERROR Undefined node ($node): $_"; - $_ = "$before$;0xref{$nodes}$after"; - } - } - - # replace images - s[\@image\s*{(.+?)}] - { - my @args = split (/\s*,\s*/, $1); - my $base = $args[0]; - my $image = - LocateIncludeFile("$base.png") || - LocateIncludeFile("$base.jpg") || - LocateIncludeFile("$base.gif"); - warn "$ERROR no image file for $base: $_" unless ($image && -e $image); - "\"$base\""; - ($T2H_CENTER_IMAGE ? - "
    \"$base\"
    " : - "\"$base\""); - }eg; - - # - # try to guess bibliography references or glossary terms - # - unless (/^/) { - $done .= $pre . &t2h_anchor('', $href, $what); - } else { - $done .= "$pre$what"; - } - $_ = $post; - } - $_ = $done . $_; - } - if ($T2H_USE_GLOSSARY) { - $done = ''; - while (/\b\w+\b/) { - ($pre, $what, $post) = ($`, $&, $'); - $entry = $what; - $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/; - $href = $gloss2href{$entry}; - if (defined($href) && $post !~ /^[^<]*<\/A>/) { - $done .= $pre . &t2h_anchor('', $href, $what); - } else { - $done .= "$pre$what"; - } - $_ = $post; - } - $_ = $done . $_; - } - } - # otherwise - push(@lines2, $_); -} -print "# end of pass 2\n" if $T2H_VERBOSE; - -# -# split style substitutions -# -while (@lines2) { - $_ = shift(@lines2); - # - # special case (protected sections) - # - if (/^$PROTECTTAG/o) { - push(@lines3, $_); - next; - } - # - # split style substitutions - # - $old = ''; - while ($old ne $_) { - $old = $_; - if (/\@(\w+)\{/) { - ($before, $style, $after) = ($`, $1, $'); - if (defined($style_map{$style})) { - $_ = $after; - $text = ''; - $after = ''; - $failed = 1; - while (@lines2) { - if (/\}/) { - $text .= $`; - $after = $'; - $failed = 0; - last; - } else { - $text .= $_; - $_ = shift(@lines2); - } - } - if ($failed) { - die "* Bad syntax (\@$style) after: $before\n"; - } else { - $text = &apply_style($style, $text); - $_ = "$before$text$after"; - } - } - } - } - # otherwise - push(@lines3, $_); -} -print "# end of pass 3\n" if $T2H_VERBOSE; - -#+++############################################################################ -# # -# Pass 4: foot notes, final cleanup # -# # -#---############################################################################ - -@foot_lines = (); # footnotes -@doc_lines = (); # final document -$end_of_para = 0; # true if last line is

    - -while (@lines3) { - $_ = shift(@lines3); - # - # special case (protected sections) - # - if (/^$PROTECTTAG/o) { - push(@doc_lines, $_); - $end_of_para = 0; - next; - } - # - # footnotes - # - while (/\@footnote([^\{\s]+)\{/) { - ($before, $d, $after) = ($`, $1, $'); - $_ = $after; - $text = ''; - $after = ''; - $failed = 1; - while (@lines3) { - if (/\}/) { - $text .= $`; - $after = $'; - $failed = 0; - last; - } else { - $text .= $_; - $_ = shift(@lines3); - } - } - if ($failed) { - die "* Bad syntax (\@footnote) after: $before\n"; - } else { - $foot_num++; - $docid = "DOCF$foot_num"; - $footid = "FOOT$foot_num"; - $foot = "($foot_num)"; - push(@foot_lines, "

    " . &t2h_anchor($footid, "$d#$docid", $foot) . "

    \n"); - $text = "

    $text" unless $text =~ /^\s*

    /; - push(@foot_lines, "$text\n"); - $_ = $before . &t2h_anchor($docid, "$docu_foot#$footid", $foot) . $after; - } - } - # - # remove unnecessary

    - # - if (/^\s*

    \s*$/) { - next if $end_of_para++; - } else { - $end_of_para = 0; - } - # otherwise - push(@doc_lines, $_); -} - -print "# end of pass 4\n" if $T2H_VERBOSE; - -#+++############################################################################ -# # -# Pass 5: print things # -# # -#---############################################################################ - -$T2H_L2H = &l2h_FinishToLatex if ($T2H_L2H); -$T2H_L2H = &l2h_ToHtml if ($T2H_L2H); -$T2H_L2H = &l2h_InitFromHtml if ($T2H_L2H); - -# fix node2up, node2prev, node2next, if desired -if ($has_top_command) -{ - for $section (keys %sec2number) - { - $node = $sec2node{$section}; - $node2up{$node} = Sec2UpNode($section) unless $node2up{$node}; - $node2prev{$node} = Sec2PrevNode($section) unless $node2prev{$node}; - $node2next{$node} = Sec2NextNode($section) unless $node2next{$node}; - } -} - -# prepare %T2H_THISDOC -$T2H_THISDOC{fulltitle} = $value{'_title'} || $value{'_settitle'} || "Untitled Document"; -$T2H_THISDOC{title} = $value{'_settitle'} || $T2H_THISDOC{fulltitle}; -$T2H_THISDOC{author} = $value{'_author'}; -$T2H_THISDOC{subtitle} = $value{'_subtitle'}; -$T2H_THISDOC{shorttitle} = $value{'_shorttitle'}; -for $key (keys %T2H_THISDOC) -{ - $_ = &substitute_style($T2H_THISDOC{$key}); - &unprotect_texi; - s/\s*$//; - $T2H_THISDOC{$key} = $_; -} - -# if no sections, then simply print document as is -unless (@sections) -{ - print "# Writing content into $docu_top_file \n" if $T2H_VERBOSE; - open(FILE, "> $docu_top_file") - || die "$ERROR: Can't open $docu_top_file for writing: $!\n"; - - &$T2H_print_page_head(\*FILE); - $T2H_THIS_SECTION = \@doc_lines; - t2h_print_lines(\*FILE); - &$T2H_print_foot_navigation(\*FILE); - &$T2H_print_page_foot(\*FILE); - close(FILE); - goto Finish; -} - -# initialize $T2H_HREF, $T2H_NAME -%T2H_HREF = - ( - 'First' , sec_href($sections[0]), - 'Last', sec_href($sections[$#sections]), - 'About', $docu_about. '#SEC_About', - ); - -# prepare TOC, OVERVIEW, TOP -$T2H_TOC = \@toc_lines; -$T2H_OVERVIEW = \@stoc_lines; -if ($has_top) -{ - while (1) - { - $_ = shift @doc_lines; - last if /$TOPEND/; - push @$T2H_TOP, $_; - } - $T2H_HREF{'Top'} = $docu_top . '#SEC_Top'; -} -else -{ - $T2H_HREF{'Top'} = $T2H_HREF{First}; -} - -$node2href{Top} = $T2H_HREF{Top}; -$T2H_HREF{Contents} = $docu_toc.'#SEC_Contents' if @toc_lines; -$T2H_HREF{Overview} = $docu_stoc.'#SEC_OVERVIEW' if @stoc_lines; - -# settle on index -if ($T2H_INDEX_CHAPTER) -{ - $T2H_HREF{Index} = $node2href{normalise_node($T2H_INDEX_CHAPTER)}; - warn "$ERROR T2H_INDEX_CHAPTER '$T2H_INDEX_CHAPTER' not found\n" - unless $T2H_HREF{Index}; -} -if (! $T2H_HREF{Index} && $first_index_chapter) -{ - $T2H_INDEX_CHAPTER = $first_index_chapter; - $T2H_HREF{Index} = $node2href{$T2H_INDEX_CHAPTER}; -print "# Set Index HREF to '" . clean_name($T2H_INDEX_CHAPTER) . "' \n"; -} - -print "# Using '" . clean_name($T2H_INDEX_CHAPTER) . "' as index page\n" - if ($T2H_VERBOSE && $T2H_HREF{Index}); - -print "# Using '" . $T2H_HREF{Index} . "' as index href\n"; - -%T2H_NAME = - ( - 'First', clean_name($sec2node{$sections[0]}), - 'Last', clean_name($sec2node{$sections[$#sections]}), - 'About', $T2H_WORDS->{$T2H_LANG}->{'About_Title'}, - 'Contents', $T2H_WORDS->{$T2H_LANG}->{'ToC_Title'}, - 'Overview', $T2H_WORDS->{$T2H_LANG}->{'Overview_Title'}, - 'Index' , clean_name($T2H_INDEX_CHAPTER), - 'Top', clean_name($T2H_TOP_HEADING || $T2H_THISDOC{'title'} || $T2H_THISDOC{'shorttitle'}), - ); - -############################################################################# -# print frame and frame toc file -# -if ( $T2H_FRAMES ) -{ - open(FILE, "> $docu_frame_file") - || die "$ERROR: Can't open $docu_frame_file for writing: $!\n"; - print "# Creating frame in $docu_frame_file ...\n" if $T2H_VERBOSE; - &$T2H_print_frame(\*FILE); - close(FILE); - - open(FILE, "> $docu_toc_frame_file") - || die "$ERROR: Can't open $docu_toc_frame_file for writing: $!\n"; - print "# Creating toc frame in $docu_frame_file ...\n" if $T2H_VERBOSE; - &$T2H_print_toc_frame(\*FILE); - close(FILE); -} - - -############################################################################# -# print Top -# -open(FILE, "> $docu_top_file") - || die "$ERROR: Can't open $docu_top_file for writing: $!\n"; -&$T2H_print_page_head(\*FILE) unless ($T2H_SPLIT); - -if ($has_top) -{ - print "# Creating Top in $docu_top_file ...\n" if $T2H_VERBOSE; - $T2H_THIS_SECTION = $T2H_TOP; - $T2H_HREF{This} = $T2H_HREF{Top}; - $T2H_NAME{This} = $T2H_NAME{Top}; - &$T2H_print_Top(\*FILE); -} - -close(FILE) if $T2H_SPLIT; - -############################################################################# -# Print sections -# -$T2H_NODE{Forward} = $sec2node{$sections[0]}; -$T2H_NAME{Forward} = &clean_name($sec2node{$sections[0]}); -$T2H_HREF{Forward} = sec_href($sections[0]); -$T2H_NODE{This} = 'Top'; -$T2H_NAME{This} = $T2H_NAME{Top}; -$T2H_HREF{This} = $T2H_HREF{Top}; -if ($T2H_SPLIT) -{ - print "# writing " . scalar(@sections) . - " sections in $docu_rdir$docu_name"."_[1..$doc_num]" - if $T2H_VERBOSE; - $previous = ($T2H_SPLIT eq 'chapter' ? $CHAPTEREND : $SECTIONEND); - undef $FH; - $doc_num = 0; -} -else -{ - print "# writing " . scalar(@sections) . " sections in $docu_top_file ..." - if $T2H_VERBOSE; - $FH = \*FILE; - $previous = ''; -} - -$counter = 0; -# loop through sections -while ($section = shift(@sections)) -{ - if ($T2H_SPLIT && ($T2H_SPLIT eq 'section' || $previous eq $CHAPTEREND)) - { - if ($FH) - { - #close previous page - &$T2H_print_chapter_footer($FH) if $T2H_SPLIT eq 'chapter'; - &$T2H_print_page_foot($FH); - close($FH); - undef $FH; - } - } - $T2H_NAME{Back} = $T2H_NAME{This}; - $T2H_HREF{Back} = $T2H_HREF{This}; - $T2H_NODE{Back} = $T2H_NODE{This}; - $T2H_NAME{This} = $T2H_NAME{Forward}; - $T2H_HREF{This} = $T2H_HREF{Forward}; - $T2H_NODE{This} = $T2H_NODE{Forward}; - if ($sections[0]) - { - $T2H_NODE{Forward} = $sec2node{$sections[0]}; - $T2H_NAME{Forward} = &clean_name($T2H_NODE{Forward}); - $T2H_HREF{Forward} = sec_href($sections[0]); - } - else - { - undef $T2H_HREF{Forward}, $T2H_NODE{Forward}, $T2H_NAME{Forward}; - } - - $node = $node2up{$T2H_NODE{This}}; - $T2H_HREF{Up} = $node2href{$node}; - if ($T2H_HREF{Up} eq $T2H_HREF{This} || ! $T2H_HREF{Up}) - { - $T2H_NAME{Up} = $T2H_NAME{Top}; - $T2H_HREF{Up} = $T2H_HREF{Top}; - $T2H_NODE{Up} = 'Up'; - } - else - { - $T2H_NAME{Up} = &clean_name($node); - $T2H_NODE{Up} = $node; - } - - $node = $T2H_NODE{This}; - $node = $node2prev{$node}; - $T2H_NAME{Prev} = &clean_name($node); - $T2H_HREF{Prev} = $node2href{$node}; - $T2H_NODE{Prev} = $node; - - $node = $T2H_NODE{This}; - if ($node2up{$node} && $node2up{$node} ne 'Top'&& - ($node2prev{$node} eq $T2H_NODE{Back} || ! $node2prev{$node})) - { - $node = $node2up{$node}; - while ($node && $node ne $node2up{$node} && ! $node2prev{$node}) - { - $node = $node2up{$node}; - } - $node = $node2prev{$node} - unless $node2up{$node} eq 'Top' || ! $node2up{$node}; - } - else - { - $node = $node2prev{$node}; - } - $T2H_NAME{FastBack} = &clean_name($node); - $T2H_HREF{FastBack} = $node2href{$node}; - $T2H_NODE{FastBack} = $node; - - $node = $T2H_NODE{This}; - $node = $node2next{$node}; - $T2H_NAME{Next} = &clean_name($node); - $T2H_HREF{Next} = $node2href{$node}; - $T2H_NODE{Next} = $node; - - $node = $T2H_NODE{This}; - if ($node2up{$node} && $node2up{$node} ne 'Top'&& - ($node2next{$node} eq $T2H_NODE{Forward} || ! $node2next{$node})) - { - $node = $node2up{$node}; - while ($node && $node ne $node2up{$node} && ! $node2next{$node}) - { - $node = $node2up{$node}; - } - } - $node = $node2next{$node}; - $T2H_NAME{FastForward} = &clean_name($node); - $T2H_HREF{FastForward} = $node2href{$node}; - $T2H_NODE{FastForward} = $node; - - if (! defined($FH)) - { - my $file = $T2H_HREF{This}; - $file =~ s/\#.*$//; - open(FILE, "> $docu_rdir$file") || - die "$ERROR: Can't open $docu_rdir$file for writing: $!\n"; - $FH = \*FILE; - &$T2H_print_page_head($FH); - t2h_print_label($FH); - &$T2H_print_chapter_header($FH) if $T2H_SPLIT eq 'chapter'; - } - else - { - t2h_print_label($FH); - } - - $T2H_THIS_SECTION = []; - while (@doc_lines) { - $_ = shift(@doc_lines); - last if ($_ eq $SECTIONEND || $_ eq $CHAPTEREND); - push(@$T2H_THIS_SECTION, $_); - } - $previous = $_; - &$T2H_print_section($FH); - - if ($T2H_VERBOSE) - { - $counter++; - print "." if $counter =~ /00$/; - } -} -if ($T2H_SPLIT) -{ - &$T2H_print_chapter_footer($FH) if $T2H_SPLIT eq 'chapter'; - &$T2H_print_page_foot($FH); - close($FH); -} -print "\n" if $T2H_VERBOSE; - -############################################################################# -# Print ToC, Overview, Footnotes -# -undef $T2H_HREF{Prev}; -undef $T2H_HREF{Next}; -undef $T2H_HREF{Back}; -undef $T2H_HREF{Forward}; -undef $T2H_HREF{Up}; - -if (@foot_lines) -{ - print "# writing Footnotes in $docu_foot_file...\n" if $T2H_VERBOSE; - open (FILE, "> $docu_foot_file") || die "$ERROR: Can't open $docu_foot_file for writing: $!\n" - if $T2H_SPLIT; - $T2H_HREF{This} = $docu_foot; - $T2H_NAME{This} = $T2H_WORDS->{$T2H_LANG}->{'Footnotes_Title'}; - $T2H_THIS_SECTION = \@foot_lines; - &$T2H_print_Footnotes(\*FILE); - close(FILE) if $T2H_SPLIT; -} - -if (@toc_lines) -{ - print "# writing Toc in $docu_toc_file...\n" if $T2H_VERBOSE; - open (FILE, "> $docu_toc_file") || die "$ERROR: Can't open $docu_toc_file for writing: $!\n" - if $T2H_SPLIT; - $T2H_HREF{This} = $T2H_HREF{Contents}; - $T2H_NAME{This} = $T2H_NAME{Contents}; - $T2H_THIS_SECTION = \@toc_lines; - &$T2H_print_Toc(\*FILE); - close(FILE) if $T2H_SPLIT; -} - -if (@stoc_lines) -{ - print "# writing Overview in $docu_stoc_file...\n" if $T2H_VERBOSE; - open (FILE, "> $docu_stoc_file") || die "$ERROR: Can't open $docu_stoc_file for writing: $!\n" - if $T2H_SPLIT; - - $T2H_HREF{This} = $T2H_HREF{Overview}; - $T2H_NAME{This} = $T2H_NAME{Overview}; - $T2H_THIS_SECTION = \@stoc_lines; - unshift @$T2H_THIS_SECTION, "

    \n"; - push @$T2H_THIS_SECTION, "\n
    \n"; - &$T2H_print_Overview(\*FILE); - close(FILE) if $T2H_SPLIT; -} - -if ($about_body = &$T2H_about_body()) -{ - print "# writing About in $docu_about_file...\n" if $T2H_VERBOSE; - open (FILE, "> $docu_about_file") || die "$ERROR: Can't open $docu_about_file for writing: $!\n" - if $T2H_SPLIT; - - $T2H_HREF{This} = $T2H_HREF{About}; - $T2H_NAME{This} = $T2H_NAME{About}; - $T2H_THIS_SECTION = [$about_body]; - &$T2H_print_About(\*FILE); - close(FILE) if $T2H_SPLIT; -} - -unless ($T2H_SPLIT) -{ - &$T2H_print_page_foot(\*FILE); - close (FILE); -} - -Finish: -&l2h_FinishFromHtml if ($T2H_L2H); -&l2h_Finish if($T2H_L2H); -print "# that's all folks\n" if $T2H_VERBOSE; - -exit(0); - -#+++############################################################################ -# # -# Low level functions # -# # -#---############################################################################ - -sub LocateIncludeFile -{ - my $file = shift; - my $dir; - - return $file if (-e $file && -r $file); - foreach $dir (@T2H_INCLUDE_DIRS) - { - return "$dir/$file" if (-e "$dir/$file" && -r "$dir/$file"); - } - return undef; -} - -sub clean_name -{ - local ($_); - $_ = &remove_style($_[0]); - &unprotect_texi; - return $_; -} - -sub update_sec_num { - local($name, $level) = @_; - my $ret; - - $level--; # here we start at 0 - if ($name =~ /^appendix/ || defined(@appendix_sec_num)) { - # appendix style - if (defined(@appendix_sec_num)) { - &incr_sec_num($level, @appendix_sec_num); - } else { - @appendix_sec_num = ('A', 0, 0, 0); - } - $ret = join('.', @appendix_sec_num[0..$level]); - } else { - # normal style - if (defined(@normal_sec_num)) - { - &incr_sec_num($level, @normal_sec_num); - } - else - { - @normal_sec_num = (1, 0, 0, 0); - } - $ret = join('.', @normal_sec_num[0..$level]); - } - - $ret .= "." if $level == 0; - return $ret; -} - -sub incr_sec_num { - local($level, $l); - $level = shift(@_); - $_[$level]++; - foreach $l ($level+1 .. 3) { - $_[$l] = 0; - } -} - -sub Sec2UpNode -{ - my $sec = shift; - my $num = $sec2number{$sec}; - - return '' unless $num; - return 'Top' unless $num =~ /\.\d+/; - $num =~ s/\.[^\.]*$//; - $num = $num . '.' unless $num =~ /\./; - return $sec2node{$number2sec{$num}}; -} - -sub Sec2PrevNode -{ - my $sec = shift; - my $num = $sec2number{$sec}; - my ($i, $post); - - if ($num =~ /(\w+)(\.$|$)/) - { - $num = $`; - $i = $1; - $post = $2; - if ($i eq 'A') - { - $i = $normal_sec_num[0]; - } - elsif ($i ne '1') - { - # unfortunately, -- operator is not magical - $i = chr(ord($i) + 1); - } - else - { - return ''; - } - return $sec2node{$number2sec{$num . $i . $post}} - } - return ''; -} - -sub Sec2NextNode -{ - my $sec = shift; - my $num = $sec2number{$sec}; - my $i; - - if ($num =~ /(\w+)(\.$|$)/) - { - $num = $`; - $i = $1; - $post = $2; - if ($post eq '.' && $i eq $normal_sec_num[0]) - { - $i = 'A'; - } - else - { - $i++; - } - return $sec2node{$number2sec{$num . $i . $post}} - } - return ''; -} - -sub check { - local($_, %seen, %context, $before, $match, $after); - - while (<>) { - if (/\@(\*|\.|\:|\@|\{|\})/) { - $seen{$&}++; - $context{$&} .= "> $_" if $T2H_VERBOSE; - $_ = "$`XX$'"; - redo; - } - if (/\@(\w+)/) { - ($before, $match, $after) = ($`, $&, $'); - if ($before =~ /\b[\w-]+$/ && $after =~ /^[\w-.]*\b/) { # e-mail address - $seen{'e-mail address'}++; - $context{'e-mail address'} .= "> $_" if $T2H_VERBOSE; - } else { - $seen{$match}++; - $context{$match} .= "> $_" if $T2H_VERBOSE; - } - $match =~ s/^\@/X/; - $_ = "$before$match$after"; - redo; - } - } - - foreach (sort(keys(%seen))) { - if ($T2H_VERBOSE) { - print "$_\n"; - print $context{$_}; - } else { - print "$_ ($seen{$_})\n"; - } - } -} - -sub open { - local($name) = @_; - - ++$fh_name; - if (open($fh_name, $name)) { - unshift(@fhs, $fh_name); - } else { - warn "$ERROR Can't read file $name: $!\n"; - } -} - -sub init_input { - @fhs = (); # hold the file handles to read - @input_spool = (); # spooled lines to read - $fh_name = 'FH000'; - &open($docu); -} - -sub next_line { - local($fh, $line); - - if (@input_spool) { - $line = shift(@input_spool); - return($line); - } - while (@fhs) { - $fh = $fhs[0]; - $line = <$fh>; - return($line) if $line; - close($fh); - shift(@fhs); - } - return(undef); -} - -# used in pass 1, use &next_line -sub skip_until { - local($tag) = @_; - local($_); - - while ($_ = &next_line) { - return if /^\@end\s+$tag\s*$/; - } - die "* Failed to find '$tag' after: " . $lines[$#lines]; -} - -# used in pass 1 for l2h use &next_line -sub string_until { - local($tag) = @_; - local($_, $string); - - while ($_ = &next_line) { - return $string if /^\@end\s+$tag\s*$/; -# $_ =~ s/hbox/mbox/g; - $string = $string.$_; - } - die "* Failed to find '$tag' after: " . $lines[$#lines]; -} - -# -# HTML stacking to have a better HTML output -# - -sub html_reset { - @html_stack = ('html'); - $html_element = 'body'; -} - -sub html_push { - local($what) = @_; - push(@html_stack, $html_element); - $html_element = $what; -} - -sub html_push_if { - local($what) = @_; - push(@html_stack, $html_element) - if ($html_element && $html_element ne 'P'); - $html_element = $what; -} - -sub html_pop { - $html_element = pop(@html_stack); -} - -sub html_pop_if { - local($elt); - - if (@_) { - foreach $elt (@_) { - if ($elt eq $html_element) { - $html_element = pop(@html_stack) if @html_stack; - last; - } - } - } else { - $html_element = pop(@html_stack) if @html_stack; - } -} - -sub html_debug { - local($what, $line) = @_; - if ($T2H_DEBUG & $DEBUG_HTML) - { - $what = "\n" unless $what; - return("$what") - } - return($what); -} - -# to debug the output... -sub debug { - local($what, $line) = @_; - return("$what") - if $T2H_DEBUG & $DEBUG_HTML; - return($what); -} - -sub SimpleTexi2Html -{ - local $_ = $_[0]; - &protect_texi; - &protect_html; - $_ = substitute_style($_); - $_[0] = $_; -} - -sub normalise_node { - local $_ = $_[0]; - s/\s+/ /g; - s/ $//; - s/^ //; - &protect_texi; - &protect_html; - $_ = substitute_style($_); - $_[0] = $_; -} - -sub menu_entry -{ - my ($node, $name, $descr) = @_; - my ($href, $entry); - - &normalise_node($node); - $href = $node2href{$node}; - if ($href) - { - $descr =~ s/^\s+//; - $descr =~ s/\s*$//; - $descr = SimpleTexi2Html($descr); - if ($T2H_NUMBER_SECTIONS && !$T2H_NODE_NAME_IN_MENU && $node2sec{$node}) - { - $entry = $node2sec{$node}; - $name = ''; - } - else - { - &normalise_node($name); - $entry = ($name && ($name ne $node || ! $T2H_AVOID_MENU_REDUNDANCY) - ? "$name : $node" : $node); - } - - if ($T2H_AVOID_MENU_REDUNDANCY && $descr) - { - my $clean_entry = $entry; - $clean_entry =~ s/^.*? // if ($clean_entry =~ /^([A-Z]|\d+)\.[\d\.]* /); - $clean_entry =~ s/[^\w]//g; - my $clean_descr = $descr; - $clean_descr =~ s/[^\w]//g; - $descr = '' if ($clean_entry eq $clean_descr) - } - push(@lines2,&debug('
    \n", __LINE__)); - } - elsif ($node =~ /^\(.*\)\w+/) - { - push(@lines2,&debug('\n", __LINE__)) - } - else - { - warn "$ERROR Undefined node of menu_entry ($node): $_"; - } -} - -sub do_ctrl { "^$_[0]" } - -sub do_email { - local($addr, $text) = split(/,\s*/, $_[0]); - - $text = $addr unless $text; - &t2h_anchor('', "mailto:$addr", $text); -} - -sub do_sc -{ - # l2h does this much better - return &l2h_ToLatex("{\\sc ".&unprotect_html($_[0])."}") if ($T2H_L2H); - return "\U$_[0]\E"; -} - -sub do_math -{ - return &l2h_ToLatex("\$".&unprotect_html($_[0])."\$") if ($T2H_L2H); - return "".$text.""; -} - -sub do_uref { - local($url, $text, $only_text) = split(/,\s*/, $_[0]); - - $text = $only_text if $only_text; - $text = $url unless $text; - &t2h_anchor('', $url, $text); -} - -sub do_url { &t2h_anchor('', $_[0], $_[0]) } - -sub do_acronym -{ - return '' . $_[0] . ''; -} - -sub do_accent -{ - return "&$_[0]acute;" if $_[1] eq 'H'; - return "$_[0]." if $_[1] eq 'dotaccent'; - return "$_[0]*" if $_[1] eq 'ringaccent'; - return "$_[0]".'[' if $_[1] eq 'tieaccent'; - return "$_[0]".'(' if $_[1] eq 'u'; - return "$_[0]_" if $_[1] eq 'ubaraccent'; - return ".$_[0]" if $_[1] eq 'udotaccent'; - return "$_[0]<" if $_[1] eq 'v'; - return "&$_[0]cedil;" if $_[1] eq ','; - return "$_[0]" if $_[1] eq 'dotless'; - return undef; -} - -sub apply_style { - local($texi_style, $text) = @_; - local($style); - - $style = $style_map{$texi_style}; - if (defined($style)) { # known style - if ($style =~ /^\"/) { # add quotes - $style = $'; - $text = "\`$text\'"; - } - if ($style =~ /^\&/) { # custom - $style = $'; - $text = &$style($text, $texi_style); - } elsif ($style) { # good style - $text = "<$style>$text"; - } else { # no style - } - } else { # unknown style - $text = undef; - } - return($text); -} - -# remove Texinfo styles -sub remove_style { - local($_) = @_; - 1 while(s/\@\w+{([^\{\}]+)}/$1/g); - return($_); -} - -sub remove_things -{ - local ($_) = @_; - s|\@(\w+)\{\}|$1|g; - return $_; -} - -sub substitute_style { - local($_) = @_; - local($changed, $done, $style, $text); - - &simple_substitutions; - $changed = 1; - while ($changed) { - $changed = 0; - $done = ''; - while (/\@(\w+){([^\{\}]+)}/ || /\@(,){([^\{\}]+)}/) { - $text = &apply_style($1, $2); - if ($text) { - $_ = "$`$text$'"; - $changed = 1; - } else { - $done .= "$`\@$1"; - $_ = "{$2}$'"; - } - } - $_ = $done . $_; - } - return($_); -} - -sub t2h_anchor { - local($name, $href, $text, $newline, $extra_attribs) = @_; - local($result); - - $result = " - $what =~ s/\&/\&\#38;/g; - $what =~ s/\/\&\#62;/g; - # restore anything in quotes - # this fixes my problem where I had: - # < IMG SRC="leftarrow.gif" ALT="<--" > but what if I wanted < in my ALT text ?? - # maybe byte stuffing or some other technique should be used. - $what =~ s/\"([^\&]+)\&\#60;(.*)\"/"$1<$2"/g; - $what =~ s/\"([^\&]+)\&\#62;(.*)\"/"$1>$2"/g; - $what =~ s/\"([^\&]+)\&\#38;(.*)\"/"$1&$2"/g; - # but recognize some HTML things - $what =~ s/\&\#60;\/A\&\#62;/<\/A>/g; # - $what =~ s/\&\#60;A ([^\&]+)\&\#62;//g; # - $what =~ s/\&\#60;IMG ([^\&]+)\&\#62;//g; # - return($what); -} - -sub unprotect_texi { - s/$;0/\@/go; - s/$;1/\{/go; - s/$;2/\}/go; - s/$;3/\`/go; - s/$;4/\'/go; -} - -sub Unprotect_texi -{ - local $_ = shift; - &unprotect_texi; - return($_); -} - -sub unprotect_html { - local($what) = @_; - $what =~ s/\&\#38;/\&/g; - $what =~ s/\&\#60;/\/g; - return($what); -} - -sub t2h_print_label -{ - my $fh = shift; - my $href = shift || $T2H_HREF{This}; - $href =~ s/.*#(.*)$/$1/; - print $fh qq{\n}; -} - -############################################################################## - - # These next few lines are legal in both Perl and nroff. - -.00 ; # finish .ig - -'di \" finish diversion--previous line must be blank -.nr nl 0-1 \" fake up transition to first page again -.nr % 0 \" start at page 1 -'; __END__ ############# From here on it's a standard manual page ############ -.so /usr/local/man/man1/texi2html.1 diff --git a/support/version2.c b/support/version2.c deleted file mode 100644 index 83e2b13f4..000000000 --- a/support/version2.c +++ /dev/null @@ -1,91 +0,0 @@ -/* version.c -- distribution and version numbers. */ - -/* Copyright (C) 1989-2009 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 of the License, 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. If not, see . -*/ - -#include - -#include - -#include "stdc.h" - -#include "version.h" -#include "patchlevel.h" -#include "conftypes.h" - -#include "bashintl.h" - -extern char *shell_name; - -/* Defines from version.h */ -const char * const dist_version = DISTVERSION; -const int patch_level = PATCHLEVEL; -const int build_version = BUILDVERSION; -#ifdef RELSTATUS -const char * const release_status = RELSTATUS; -#else -const char * const release_status = (char *)0; -#endif -const char * const sccs_version = SCCSVERSION; - -/* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */ -int shell_compatibility_level = DEFAULT_COMPAT_LEVEL; - -/* Functions for getting, setting, and displaying the shell version. */ - -/* Forward declarations so we don't have to include externs.h */ -extern char *shell_version_string __P((void)); -extern void show_shell_version __P((int)); - -/* Give version information about this shell. */ -char * -shell_version_string () -{ - static char tt[32] = { '\0' }; - - if (tt[0] == '\0') - { - if (release_status) -#if defined (HAVE_SNPRINTF) - snprintf (tt, sizeof (tt), "%s.%d(%d)-%s", dist_version, patch_level, build_version, release_status); -#else - sprintf (tt, "%s.%d(%d)-%s", dist_version, patch_level, build_version, release_status); -#endif - else -#if defined (HAVE_SNPRINTF) - snprintf (tt, sizeof (tt), "%s.%d(%d)", dist_version, patch_level, build_version); -#else - sprintf (tt, "%s.%d(%d)", dist_version, patch_level, build_version); -#endif - } - return tt; -} - -void -show_shell_version (extended) - int extended; -{ - printf (_("GNU bash, version %s (%s)\n"), shell_version_string (), MACHTYPE); - if (extended) - { - printf (_("Copyright (C) 2009 Free Software Foundation, Inc.\n")); - printf (_("License GPLv2+: GNU GPL version 2 or later \n")); - printf (_("This is free software; you are free to change and redistribute it.\n")); - printf (_("There is NO WARRANTY, to the extent permitted by law.\n")); - } -} diff --git a/tests/-i b/tests/-i deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/RUN-ONE-TEST b/tests/RUN-ONE-TEST deleted file mode 100755 index 3efcf32d6..000000000 --- a/tests/RUN-ONE-TEST +++ /dev/null @@ -1,9 +0,0 @@ -BUILD_DIR=/usr/local/build/chet/bash/bash-current -THIS_SH=$BUILD_DIR/bash -PATH=$PATH:$BUILD_DIR - -export THIS_SH PATH - -rm -f /tmp/xx - -/bin/sh "$@" diff --git a/tests/RUN-ONE-TEST.gprof b/tests/RUN-ONE-TEST.gprof deleted file mode 100755 index b29a64fd4..000000000 --- a/tests/RUN-ONE-TEST.gprof +++ /dev/null @@ -1,9 +0,0 @@ -BUILD_DIR=/usr/local/build/bash/bash-20041216-gprof -THIS_SH=$BUILD_DIR/bash -PATH=$PATH:$BUILD_DIR - -export THIS_SH PATH - -rm -f /tmp/xx - -/bin/sh "$@" diff --git a/tests/RUN-ONE-TEST.ksh b/tests/RUN-ONE-TEST.ksh deleted file mode 100644 index 82461f470..000000000 --- a/tests/RUN-ONE-TEST.ksh +++ /dev/null @@ -1,9 +0,0 @@ -BUILD_DIR=/usr/local/build/bash/bash-current -THIS_SH=ksh93 -PATH=$PATH:$BUILD_DIR - -export THIS_SH PATH - -rm -f /tmp/xx - -/bin/sh "$@" diff --git a/tests/RUN-TEST-SCRIPT b/tests/RUN-TEST-SCRIPT deleted file mode 100755 index 75fe59471..000000000 --- a/tests/RUN-TEST-SCRIPT +++ /dev/null @@ -1,7 +0,0 @@ -BUILD_DIR=/usr/local/build/chet/bash/bash-current -THIS_SH=$BUILD_DIR/bash -PATH=$PATH:$BUILD_DIR - -export THIS_SH PATH - -${THIS_SH} "$@" diff --git a/tests/braces-tests b/tests/braces-tests deleted file mode 100644 index d31a5e3d9..000000000 --- a/tests/braces-tests +++ /dev/null @@ -1,24 +0,0 @@ -echo ff{c,b,a} -echo f{d,e,f}g -echo {l,n,m}xyz -echo {abc\,def} -echo {abc} - -echo \{a,b,c,d,e} -echo {x,y,\{a,b,c}} -echo {x\,y,\{abc\},trie} - -echo /usr/{ucb/{ex,edit},lib/{ex,how_ex}} - -echo XXXX\{`echo a b c | tr ' ' ','`\} -eval echo XXXX\{`echo a b c | tr ' ' ','`\} - -echo {} -echo { } -echo } -echo { -echo abcd{efgh - -echo foo {1,2} bar -echo `zecho foo {1,2} bar` -echo $(zecho foo {1,2} bar) diff --git a/tests/cond-regexp.sub b/tests/cond-regexp.sub deleted file mode 100644 index 47e46f0af..000000000 --- a/tests/cond-regexp.sub +++ /dev/null @@ -1,49 +0,0 @@ -VAR='[[:alpha:]]' - -[[ $VAR =~ '[[:alpha:]]' ]] && echo match 1 - -[[ a =~ '[[:alpha:]]' ]] || echo match 2 - -[[ a =~ [[:alpha:]] ]] && echo match 3 - -[[ a =~ $VAR ]] && echo match 4 - -[[ a =~ "$VAR" ]] || echo match 5 - -line=aab -[[ $line =~ [[:space:]]*(a)?b ]] && echo match 6 - -V="alphabet" -[[ $V == alphabet ]] && echo yes 1 -[[ $V == "alphabet" ]] && echo yes 2 -[[ $V == 'alphabet' ]] && echo yes 3 -[[ $V =~ alphabet ]] && echo yes 4 -[[ $V =~ "alphabet" ]] && echo yes 5 -[[ $V =~ 'alphabet' ]] && echo yes 6 - -DOG="Dog name - 01 - Wiggles" -REPAT='([[:alpha:][:blank:]]*)- ([[:digit:]]*) - (.*)$' -if [[ $DOG =~ ([[:alpha:][:blank:]]*)-\ ([[:digit:]]*)\ -\ (.*)$ ]] -then - echo Dog ${BASH_REMATCH[2]} is ${BASH_REMATCH[3]} -fi -if [[ $DOG =~ $REPAT ]] -then - echo Dog ${BASH_REMATCH[2]} is ${BASH_REMATCH[3]} -fi - -[[ $REPAT =~ "$REPAT" ]] && echo rematch 1 - -v="one two buckle my shoe" -[[ ${v} =~ "one two" ]] && echo matches 7 - -[[ ${v} =~ (one two) ]] && echo matches 8 - -[[ ${v} =~ one\ two ]] && echo matches 9 - -# problems in pre-patched bash-4.2 -[[ "helloworld" =~ llo ]] && echo match control-a 1 -[[ "helloworld" =~ world ]] && echo match control-a 2 -[[ "helloworld" =~ world$ ]] && echo match control-a 3 -[[ "helloworld" =~  ]] && echo match control-a 4 -[[ "helloworld" =~ oworld$ ]] && echo match control-a 5 diff --git a/tests/cprint1.sub b/tests/cprint1.sub deleted file mode 100644 index 42730450d..000000000 --- a/tests/cprint1.sub +++ /dev/null @@ -1,48 +0,0 @@ -a() -{ - cat <<-'+' | tr "\t" " " | tr -s " " - cat - | utkSort - itkSchemaToColumnType - atkCacheToColumnType \"$npName\" | atkActiveTableLineSelect -| utkSort - atkCacheToColumnType \"$npName\" | -atkTransactionTableLineSelect | utkSort - itkDirToColumnType \"$dirName\" | atkActiveTableLineSelect | -utkSort - itkDirToColumnType \"$dirName\" | atkActiveTableLineSelect | -utkSort - + -} - -type a - -b() -{ - cat /etc/passwd | cat - <<-'+' | tr -s " " - more - passwords - from - the - file - + -} - -type b - -c() -{ - cat /etc/passwd | tr -s " " | cat - <<-'+' | cat - <<-'foo' - more - passwords - from - the - file - + -last -bunch -of -words -foo -} - -type c diff --git a/tests/cracauer-testsuite/DOC b/tests/cracauer-testsuite/DOC deleted file mode 100644 index 30e81507a..000000000 --- a/tests/cracauer-testsuite/DOC +++ /dev/null @@ -1,13 +0,0 @@ -The scripts './test01.sh' to './test05.sh' all echo to stdout what -they should do and what behaviour is expected. Test them interactivly. - -Do a 'make' first to build a sample program that makes use of SIGQUIT -and SIGINT. Links the shell to test to './testshell' or './testcsh'. - -Remember to - stty quit '^\' -after each test. It seens resetting the terminal sometimes doesn't -reset the keys as well. - -The file OBSERVATIONS contains the misbehaviour I found. - diff --git a/tests/cracauer-testsuite/Makefile b/tests/cracauer-testsuite/Makefile deleted file mode 100644 index 103bb9399..000000000 --- a/tests/cracauer-testsuite/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -ALL = catcher - -all: $(ALL) - -DEPSTUFF = Makefile - -CFLAGS = -O -g -Wall -D_POSIX_SOURCE - -catcher: $(DEPSTUFF) catcher.c - -clean: - -rm $(ALL) *.core core *.o diff --git a/tests/cracauer-testsuite/OBSERVATIONS b/tests/cracauer-testsuite/OBSERVATIONS deleted file mode 100644 index b856d08af..000000000 --- a/tests/cracauer-testsuite/OBSERVATIONS +++ /dev/null @@ -1,84 +0,0 @@ -CRA = my diffs. -BDE = Bruce diffs. - -BDE version 19980212: - -Test 2: It should send SIGQUIT to cat, it doesn't. - -Test 9: can't break wait() - -%% older notes: - -test2: - trap '' 2 - while : ; do cat ; echo -n $? ; done -test6: - trap '' 3 - while : ; do cat ; echo -n $? ; done - -The trapped signal should be ignored. If SIGINT is ignored (test 2), -SIGQUIT exits `cat`, but not the shell (means the loop will continue -and `cat` will be called again). - -If SIGQUIT is ignored, SIGINT both exit the whole script. - -I'm not sure this asymmetric behaviour is intended, but currently CRA -and BDE versions has is. - -I think SIGTERM should exit the script in all cases immedeatly. CRA -version does this, BDE version ignores SIGTERM. - -bash1 falls over completely on these tests. - -bash2 works like CRA version. - -Other tests: ------------- - -BDE version fails on 5, the shell terminated while the forground child -is running (like the unpatched FreeBSD sh did). - -BDE version handles SIGQUIT seperately from SIGINT in test 1, and 3, -but not in test 4 and 5. - -bash2 fails on 5, it gets a SIGQUIT that was sent to a -SIGQUIT-catching process after that process exits. Reliably, it -doesn't matter how much time was passed between SIGQUIT to process and -exit or process. - -As Bruce noted, bash version 1 fails on test 2 like my version of sh -does. bash1 doesn't have the bash2 problem on test 5 (getting signals -that were caught by the child after the child exits). - -zsh fails on test 1 and 5 in a similar way bash2 failed on 5: After a -child exits that received SIGINT, it terminates immedeatly. - -I wonder how bash 2 manages to fail on test 5, but to pass test 1... - -csh fails on test 1 in two ways: -- when the SIGINT/SIGQUIT-catching child receives both SIGQUIT and - SIGINT, csh exits immedeatly, while the child is still running. -- when only one or more SIGQUIT are delivered to the child, csh gets - it after the child exits and terminates with coredump. - -csh also ignores SIGQUIT where SIGINT is caught. - -test2.csh is different from test1.sh in that all signals should be -caught. csh fails in that it sometimes gets SIGQUIT and exits with -coredump (the shell, not the child). - - -Other stuff not directly relevant to these fixes: -================================================= - -csh oddness: ------------- - -When the "catcher" program resets the terminal, there's a time-window -where C-g is mapped to SIGQUIT, but "catcher" already exited. In other -word, if you type C-g while in "catcher", then immedeatly C-d, csh -will get SIGQUIT. I thought that remapping the terminal keys should -have been done before the shell is re-entered. The same happens to -tcsh. - -With sh variants I didn't manage to deliver SIGQUIT by C-g. diff --git a/tests/cracauer-testsuite/QUESTIONS b/tests/cracauer-testsuite/QUESTIONS deleted file mode 100644 index a1620be7f..000000000 --- a/tests/cracauer-testsuite/QUESTIONS +++ /dev/null @@ -1 +0,0 @@ -Should the background job be killed in test 3? diff --git a/tests/cracauer-testsuite/catcher.c b/tests/cracauer-testsuite/catcher.c deleted file mode 100644 index f2de71c92..000000000 --- a/tests/cracauer-testsuite/catcher.c +++ /dev/null @@ -1,142 +0,0 @@ -#undef VERBOSE - -#include -#include -#include -#include -#include - -#include -#include - -#include - -#define BUFSIZE 65536 - -struct termios ttystate; -struct termios oldttystate; -int cleanupP = 0; - -#ifndef CTRL -#define CTRL(x) (x&037) -#endif - -int _global_fd; - -void handler2(int sig) -{ -#define TMP "Async action on sigint (2)\n" - write(1,TMP,sizeof(TMP)-1); -#undef TMP -} - -void handler3(int sig) -{ -#define TMP "Async action on sigquit (3)\n" - write(1,TMP,sizeof(TMP)-1); -#undef TMP -} - -void cleanup() -{ - if (cleanupP) { - printf("Resettung terminal\n"); - if (tcsetattr(_global_fd, TCSANOW, &oldttystate) < 0) { - perror("ioctl reset /dev/tty"); - } - } - close(_global_fd); -} - -static void exit_handler(int sig) -#ifdef __GNUC__ - __attribute__ ((noreturn)) -#endif -; -static void exit_handler(int sig) -{ - cleanup(); - if (sig) - printf("Exiting on signal %d\n",sig); - exit(0); -} - -int main() -{ - char c[BUFSIZE]; - pid_t pgrp; - -#ifdef VERBOSE - printf("I'm PID %d\n",getpid()); -#endif - - if ( ( _global_fd = open("/dev/tty",O_RDONLY)) < 1) { - perror("open /dev/tty"); - exit_handler(0); - } - - if ( (pgrp = tcgetpgrp(_global_fd)) < 0) { - perror("Can't get pgrp\n"); - exit_handler(0); - } -#ifdef VERBOSE - printf("tty pgrp is %ld\n",(long)pgrp); -#endif - - if ( tcsetpgrp(_global_fd, pgrp) < 0) { - perror("Can't set pgrp\n"); - exit_handler(0); - } - - if (tcgetattr(_global_fd, &oldttystate) < 0) { - perror("ioctl1 /dev/tty"); - exit_handler(0); - } - ttystate = oldttystate; - ttystate.c_lflag &= ~ICANON; - ttystate.c_lflag &= ~ECHO; - ttystate.c_cc[VQUIT] = CTRL('g'); /* From sys/ttydefaults.h */ - if (tcsetattr(_global_fd, TCSANOW, &ttystate) < 0) { - perror("ioctl2 /dev/tty"); - exit_handler(0); - } - cleanupP = 1; - - { - struct sigaction siga; - - sigemptyset(&siga.sa_mask); - siga.sa_flags = 0; - - siga.sa_handler = handler2; - sigaction(SIGINT, &siga, (struct sigaction *)0); - siga.sa_handler = handler3; - sigaction(SIGQUIT, &siga, (struct sigaction *)0); - - siga.sa_handler = exit_handler; - sigaction(SIGHUP, &siga, (struct sigaction *)0); - sigaction(SIGTERM, &siga, (struct sigaction *)0); - } - - printf("Use C-c and C-g for async actions, end with C-d\n"); - while (1) { - switch (read(_global_fd,c,1)) { - case -1: - if (errno == EINTR) - continue; - perror("stdin read"); - exit_handler(0); - case 0: - printf("Exiting on stdin EOF (should happen only in cannon mode\n"); - exit_handler(0); - default: - if (c[0] == CEOF) { /* From sys/ttydefaults.h */ - printf("Exiting on stdin EOF (hopefully only in noncannon mode)\n"); - exit_handler(0); - } - printf("You typed: '%c' (0x%X)\n",c[0],c[0]); - } - } - exit_handler(0); - return 0; -} diff --git a/tests/cracauer-testsuite/lib.csh b/tests/cracauer-testsuite/lib.csh deleted file mode 100644 index b8e8a77a3..000000000 --- a/tests/cracauer-testsuite/lib.csh +++ /dev/null @@ -1,7 +0,0 @@ -# I don't have a clue about csh programming... - -alias docatcher '\ - echo "Trigger some async actions, shell should not exit" \ - echo "Then exit catcher with C-d" \ - ./catcher' - diff --git a/tests/cracauer-testsuite/lib.sh b/tests/cracauer-testsuite/lib.sh deleted file mode 100644 index 8e8756552..000000000 --- a/tests/cracauer-testsuite/lib.sh +++ /dev/null @@ -1,14 +0,0 @@ -docatcher() -{ - echo 'Trigger some async actions, shell should not exit' - echo 'Then exit catcher with C-d' - if [ ! -f ./catcher ] ; then - make catcher - fi - ./catcher -} - -endless() -{ - while : ; do foo=1 ; done -} \ No newline at end of file diff --git a/tests/cracauer-testsuite/test01.csh b/tests/cracauer-testsuite/test01.csh deleted file mode 100644 index bf50bc78e..000000000 --- a/tests/cracauer-testsuite/test01.csh +++ /dev/null @@ -1,12 +0,0 @@ -#!./testcsh -f - -echo 'Test 1: See whether child can work on SIGINT and SIGQUIT without' -echo ' terminating the shell around it. See if the shell is' -echo ' interruptable afterwards' - -source lib.csh - -docatcher -echo "No try to exit shell loop with C-c, C-\ or SIGTERM" -while (1) -end diff --git a/tests/cracauer-testsuite/test01.sh b/tests/cracauer-testsuite/test01.sh deleted file mode 100644 index fabf8fb8b..000000000 --- a/tests/cracauer-testsuite/test01.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!./testshell - -echo 'Test 1: See whether child can work on SIGINT and SIGQUIT without' -echo ' terminating the shell around it. See if the shell is' -echo ' interruptable afterwards' - -if [ $ZSH_VERSION ] ; then - source lib.sh -else - . lib.sh -fi - -docatcher -echo 'Now try to exit shell loop with C-c, C-\ or SIGTERM' -endless diff --git a/tests/cracauer-testsuite/test02.csh b/tests/cracauer-testsuite/test02.csh deleted file mode 100644 index a60d70ade..000000000 --- a/tests/cracauer-testsuite/test02.csh +++ /dev/null @@ -1,13 +0,0 @@ -#!./testcsh -f - -echo 'Test 2: You should not be able to end cat using anything besides SIGKILL' - -source lib.csh - -onintr - - -while (1) - echo cat - cat - echo Exited with $? -end diff --git a/tests/cracauer-testsuite/test02.sh b/tests/cracauer-testsuite/test02.sh deleted file mode 100644 index 4c6f82d8a..000000000 --- a/tests/cracauer-testsuite/test02.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!./testshell - -echo 'Test 2: You should not be able to exit `cat` with SIGINT.' -echo ' SIGQUIT should abort `cat` (with coredump) while' -echo ' the shell should continue and call `cat` again.' -echo ' SIGTERM should exit the whole script.' - -set -x -trap '' 2 -while : ; do cat ; echo -n $? ; done diff --git a/tests/cracauer-testsuite/test03.sh b/tests/cracauer-testsuite/test03.sh deleted file mode 100644 index 955d6dd58..000000000 --- a/tests/cracauer-testsuite/test03.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!./testshell - -echo 'Test 3: A background job is being started, then the shell loops.' -echo ' You should be able to break the shell loop with C-c.' -echo ' This goes wrong if the shell blocks signals when' -echo ' starting any child. It should do so only for foreground' -echo ' jobs.' - -if [ $ZSH_VERSION ] ; then - source lib.sh -else - . lib.sh -fi - -echo Starting job -gzip < /dev/zero | wc & -echo 'Now try to break this loop' -endless diff --git a/tests/cracauer-testsuite/test04.sh b/tests/cracauer-testsuite/test04.sh deleted file mode 100644 index 962aa7ab0..000000000 --- a/tests/cracauer-testsuite/test04.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!./testshell - -echo 'Test 4: Three shells all loop. You should be able to terminate this' -echo ' script with just one SIGINT or SIGQUIT' - -if [ $ZSH_VERSION ] ; then - source lib.sh -else - . lib.sh -fi - -( - ( - endless - ) - endless -) -endless diff --git a/tests/cracauer-testsuite/test05.sh b/tests/cracauer-testsuite/test05.sh deleted file mode 100644 index cbef1aeb6..000000000 --- a/tests/cracauer-testsuite/test05.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!./testshell - -echo 'Test 5: The SIGINT/SIGQUIT-catching program is being run' -echo ' A: The shell should not exit on signals while this program runs.' -echo ' B: After you exited it via C-d, you should be able to end this' -echo ' script with its 3 subhells with just one signal' -echo ' script with just one SIGINT or SIGQUIT' - -if [ $ZSH_VERSION ] ; then - source lib.sh -else - . lib.sh -fi - -( - ( - docatcher - echo "Now try to exit with one SIGINT" - endless - ) - endless -) -endless diff --git a/tests/cracauer-testsuite/test06.sh b/tests/cracauer-testsuite/test06.sh deleted file mode 100644 index ce1b91197..000000000 --- a/tests/cracauer-testsuite/test06.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!./testshell - -echo 'Test 2: You should not be able to exit `cat` with SIGQUIT.' -echo ' SIGINT should exit `cat` (without coredump) while' -echo ' the shell should continue and call `cat` again.' -echo ' SIGTERM should exit the whole script.' - -set -x -trap '' 3 -while : ; do cat ; echo -n $? ; done diff --git a/tests/cracauer-testsuite/test07.csh b/tests/cracauer-testsuite/test07.csh deleted file mode 100644 index 9909e3258..000000000 --- a/tests/cracauer-testsuite/test07.csh +++ /dev/null @@ -1,19 +0,0 @@ -#!./testcsh -f - -echo 'Test 7: See whether child can work on SIGINT and SIGQUIT without' -echo ' terminating the shell around it. See if the shell' -echo ' continues the script after the child exits' - -source lib.csh - -echo -echo 'After the catching program, you should see 4 lines of text, sent' -echo 'with one second delay each' -docatcher -echo 'You should see 3 more lines' -sleep 1 -echo 'You should see 2 more lines' -sleep 1 -echo 'You should see 1 more line' -sleep 1 -echo 'Done' diff --git a/tests/cracauer-testsuite/test07.sh b/tests/cracauer-testsuite/test07.sh deleted file mode 100644 index 2f87ce45b..000000000 --- a/tests/cracauer-testsuite/test07.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!./testshell - -echo 'Test 7: See whether child can work on SIGINT and SIGQUIT without' -echo ' terminating the shell around it. See if the shell' -echo ' continues the script after the child exits' - -if [ $ZSH_VERSION ] ; then - source lib.sh -else - . lib.sh -fi - -echo -echo 'After the catching program, you should see 4 lines of text, sent' -echo 'with one second delay each' -docatcher -echo 'You should see 3 more lines' -sleep 1 -echo 'You should see 2 more lines' -sleep 1 -echo 'You should see 1 more line' -sleep 1 -echo 'Done' diff --git a/tests/cracauer-testsuite/test08.sh b/tests/cracauer-testsuite/test08.sh deleted file mode 100644 index 87bde69d0..000000000 --- a/tests/cracauer-testsuite/test08.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!./testshell - -echo 'Test 8: Start a child that is to be interrupted by SIGINT.' -echo ' The shell should not continue with the script' - -if [ $ZSH_VERSION ] ; then - source lib.sh -else - . lib.sh -fi - -echo -echo 'Should exit immedeatly after you break cat by SIGINT' -echo cat -cat -sleep 1 -echo 'If you see this, you have a problem' -sleep 1 -echo 'If you see this, you have even more problems' diff --git a/tests/cracauer-testsuite/test09.sh b/tests/cracauer-testsuite/test09.sh deleted file mode 100644 index d12cb53bb..000000000 --- a/tests/cracauer-testsuite/test09.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!./testshell - -trap 'echo I am a trap' 2 - -echo 'Try to break wait using SIGINT before wc completes' -echo 'After you break wait, it should print "I am a trap"' -echo 'and then "Going on"' -echo 'wc &' -gzip < /kernel | wc & -p=$! -echo wait -wait -echo "Going on" -kill $p diff --git a/tests/cracauer-testsuite/test10.sh b/tests/cracauer-testsuite/test10.sh deleted file mode 100644 index a3bdc629e..000000000 --- a/tests/cracauer-testsuite/test10.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!./testshell - -echo 'You should be able to end the script with one SIGINT' -(while :; do wc /kernel > /dev/null ; done) diff --git a/tests/cracauer-testsuite/test11.sh b/tests/cracauer-testsuite/test11.sh deleted file mode 100644 index b56d68ce8..000000000 --- a/tests/cracauer-testsuite/test11.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!./testshell - -echo 'Test 11 (variant of 9):' -echo 'Try to break wait using SIGINT before wc completes' -echo 'After you break wait, it should NOT print "Going on"' - -echo 'wc &' -gzip < /kernel | wc & -p=$! -echo wait -wait -echo "Going on" -kill $p diff --git a/tests/cracauer-testsuite/test12.sh b/tests/cracauer-testsuite/test12.sh deleted file mode 100644 index b724eaec2..000000000 --- a/tests/cracauer-testsuite/test12.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!./testshell - -echo 'Test 12 (Variant of test10):' -echo 'You should be able to end the script with one SIGINT' -(while :; do ./catcher ; done) diff --git a/tests/cracauer-testsuite/test13.sh b/tests/cracauer-testsuite/test13.sh deleted file mode 100644 index f4b8bb861..000000000 --- a/tests/cracauer-testsuite/test13.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!./testshell - -echo 'Test 13 (variant of Test 1):' -echo 'On SIGINT, cat should exit (and be restarted by the shell loop)' -echo 'and the Text "I am a trap" should be printed' - -set -x -trap 'echo I am a trap' 2 -while : ; do cat ; echo -n $? ; done diff --git a/tests/exp-tests b/tests/exp-tests deleted file mode 100644 index 884b5a699..000000000 --- a/tests/exp-tests +++ /dev/null @@ -1,380 +0,0 @@ -# -# A suite of tests for bash word expansions -# -# This tests parameter and variable expansion, with an empahsis on -# proper quoting behavior. -# -# Chet Ramey - -# -# If you comment out the body of this function, you can do a diff against -# `expansion-tests.right' to see if the shell is behaving correctly -# -expect() -{ - echo expect "$@" -} - -# Test the substitution quoting characters (CTLESC and CTLNUL) in different -# combinations - -expect "<^A>" -recho `echo ''` -expect "<^A>" -recho `echo ""` -expect "<^B>" -recho `echo ''` -expect "<^B>" -recho `echo ""` -expect "<^A>" -recho `echo ` -expect "<^B>" -recho `echo ` - -# Test null strings without variable expansion -expect "" -recho abcd""efgh -expect "" -recho abcd''efgh -expect "" -recho ""abcdefgh -expect "" -recho ''abcdefgh -expect "" -recho abcd"" -expect "" -recho abcd'' - -# Test the quirky behavior of $@ in "" -expect nothing -recho "$@" -expect "< >" -recho " $@" -expect "<-->" -recho "-${@}-" - -# Test null strings with variable expansion that fails -expect '<>' -recho $xxx"" -expect '<>' -recho ""$xxx -expect '<>' -recho $xxx'' -expect '<>' -recho ''$xxx -expect '<>' -recho $xxx""$yyy -expect '<>' -recho $xxx''$yyy - -# Test null strings with variable expansion that succeeds -xxx=abc -yyy=def - -expect '' -recho $xxx"" -expect '' -recho ""$xxx -expect '' -recho $xxx'' -expect '' -recho ''$xxx -expect '' -recho $xxx""$yyy -expect '' -recho $xxx''$yyy - -unset xxx yyy - -# Test the unquoted special quoting characters -expect "<^A>" -recho  -expect "<^B>" -recho  -expect "<^A>" -recho "" -expect "<^B>" -recho "" -expect "<^A>" -recho '' -expect "<^B>" -recho '' - -# Test expansion of a variable that is unset -expect nothing -recho $xxx -expect '<>' -recho "$xxx" - -expect nothing -recho "$xxx${@}" - -# Test empty string expansion -expect '<>' -recho "" -expect '<>' -recho '' - -# Test command substitution with (disabled) history substitution -expect '' -# set +H -recho "`echo \"Hello world!\"`" - -# Test some shell special characters -expect '<`>' -recho "\`" -expect '<">' -recho "\"" -expect '<\^A>' -recho "\" - -expect '<\$>' -recho "\\$" - -expect '<\\>' -recho "\\\\" - -# This should give argv[1] = a argv[2] = b -expect ' ' -FOO=`echo 'a b' | tr ' ' '\012'` -recho $FOO - -# This should give argv[1] = ^A argv[2] = ^B -expect '<^A> <^B>' -FOO=`echo ' ' | tr ' ' '\012'` -recho $FOO - -# Test quoted and unquoted globbing characters -expect '<**>' -recho "*"* - -expect '<\.\./*/>' -recho "\.\./*/" - -# Test patterns that come up when the shell quotes funny character -# combinations -expect '<^A^B^A^B>' -recho '' -expect '<^A^A>' -recho '' -expect '<^A^B>' -recho '' -expect '<^A^A^B>' -recho '' - -# More tests of "$@" -set abc def ghi jkl -expect '< abc> ' -recho " $@ " -expect '< abc> ' -recho "${1+ $@ }" - -set abc def ghi jkl -expect '<--abc> ' -recho "--$@--" - -set "a b" cd ef gh -expect ' ' -recho ${1+"$@"} -expect ' ' -recho ${foo:-"$@"} -expect ' ' -recho "${@}" - -expect '< >' -recho " " -expect '< - >' -recho " - " - -# Test combinations of different types of quoting in a fully-quoted string -# (so the WHOLLY_QUOTED tests fail and it doesn't get set) -expect '' -recho "/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/" - -# Test the various Posix parameter expansions - -expect '' -recho "${x:-$(echo "foo bar")}" -expect ' ' -recho ${x:-$(echo "foo bar")} - -unset X -expect '' -recho ${X:=abc} -expect '' -recho $X - -set a b c -expect '' -recho ${3:+posix} - -POSIX=/usr/posix -expect '<10>' -recho ${#POSIX} - -# remove shortest trailing match -x=file.c -expect '' -recho ${x%.c}.o - -# remove longest trailing match -x=posix/src/std -expect '' -recho ${x%%/*} - -# remove shortest leading pattern -x=$HOME/src/cmd -expect '' -recho ${x#$HOME} - -# remove longest leading pattern -x=/one/two/three -expect '' -recho ${x##*/} - -# pattern removal of patterns that don't match -z=abcdef - -expect '' -recho ${z#xyz} -expect '' -recho ${z##xyz} - -expect '' -recho ${z%xyz} -expect '' -recho ${z%%xyz} - -# Command substitution and the quirky differences between `` and $() - -expect '<\$x>' -recho '\$x' - -expect '<$x>' -recho `echo '\$x'` - -expect '<\$x>' -recho $(echo '\$x') - -# The difference between $* "$*" and "$@" - -set "abc" "def ghi" "jkl" - -expect ' ' -recho $* - -expect '' -recho "$*" - -OIFS="$IFS" -IFS=":$IFS" - -# The special behavior of "$*", using the first character of $IFS as separator -expect '' -recho "$*" - -IFS="$OIFS" - -expect ' ' -recho "$@" - -expect ' ' -recho "xx$@yy" - -expect ' ' -recho "$@$@" - -foo=abc -bar=def - -expect '' -recho "$foo""$bar" - -unset foo -set $foo bar '' xyz "$foo" abc - -expect ' <> <> ' -recho "$@" - -# More tests of quoting and deferred evaluation - -foo=10 x=foo -y='$'$x -expect '<$foo>' -recho $y -eval y='$'$x -expect '<10>' -recho $y - -# case statements - -NL=' -' -x='ab -cd' - -expect '' -case "$x" in -*$NL*) recho "newline expected" ;; -esac - -expect '' -case \? in -*"?"*) recho "got it" ;; -esac - -expect '' -case \? in -*\?*) recho "got it" ;; -esac - -set one two three four five -expect ' ' -recho $1 $3 ${5} $8 ${9} - -# length tests on positional parameters and some special parameters - -expect '<5> <5>' -recho $# ${#} -expect '<3>' -recho ${#1} -expect '<1>' -recho ${##} -expect '<1>' -recho ${#?} -expect '<5>' -recho ${#@} -expect '<5>' -recho ${#*} -expect '<5>' -recho "${#@}" -expect '<5>' -recho "${#*}" - -expect '<42>' -recho $((28 + 14)) -expect '<26>' -recho $[ 13 * 2 ] - -expect '<\>' -recho `echo \\\\` - -expect '<~>' -recho '~' - -expect nothing -recho $! -expect nothing -recho ${!} - -# test word splitting of assignment statements not preceding a command -a="a b c d e" -declare b=$a -expect ' ' -recho $b - -a="a?b?c" - -echo ${a//\\?/ } - -echo ${a//\?/ } diff --git a/tests/extglob2.sub b/tests/extglob2.sub deleted file mode 100644 index f4a3b3745..000000000 --- a/tests/extglob2.sub +++ /dev/null @@ -1,7 +0,0 @@ -LANG=en_US.UTF-8 - -shopt -s extglob -a="aaaäöü" - -echo "${a}" "${a//?aa}" "${a//\aaa}" -exit 0 diff --git a/tests/glob-test b/tests/glob-test deleted file mode 100644 index d32988bc4..000000000 --- a/tests/glob-test +++ /dev/null @@ -1,388 +0,0 @@ -export LC_COLLATE=C -# -# test the shell globbing -# -expect() -{ - echo expect "$@" -} - -# First, a test that bash-2.01.1 fails -${THIS_SH} ./glob1.sub - -MYDIR=$PWD # save where we are - -TESTDIR=/tmp/glob-test -mkdir $TESTDIR -builtin cd $TESTDIR || { echo $0: cannot cd to $TESTDIR >&2 ; exit 1; } -rm -rf * - -touch a b c d abc abd abe bb bcd ca cb dd de Beware -mkdir bdir - -# see if `regular' globbing works right -expect ' ' -recho a* X* - -expect ' ' -recho \a* - -# see if null glob expansion works -shopt -s nullglob - -expect ' ' -recho a* X* - -shopt -u nullglob - -# see if the failglob option works - -mkdir tmp -touch tmp/l1 tmp/l2 tmp/l3 -builtin echo tmp/l[12] tmp/*4 tmp/*3 -shopt -s failglob -builtin echo tmp/l[12] tmp/*4 tmp/*3 -rm -r tmp -shopt -u failglob - -# see if the code that expands directories only works -expect '' -recho b*/ - -# Test quoted and unquoted globbing characters -expect '<*>' -recho \* - -expect '' -recho 'a*' - -expect '' -recho a\* - -expect ' <*q*>' -recho c* a\* *q* - -expect '<**>' -recho "*"* - -expect '<**>' -recho \** - -expect '<\.\./*/>' -recho "\.\./*/" - -expect '' -recho 's/\..*//' - -# Pattern from Larry Wall's Configure that caused bash to blow up -expect '' -recho "/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/" - -# Make sure character classes work properly - -expect ' ' -recho [a-c]b* - -expect '
    ' -recho [a-y]*[^c] - -expect ' ' -recho a*[^c] - -touch a-b aXb -expect ' ' -recho a[X-]b - -touch .x .y -expect '
    ' -recho [^a-c]* - -# Make sure that filenames with embedded globbing characters are handled -# properly -mkdir a\*b -> a\*b/ooo - -expect '' -recho a\*b/* - -expect '' -recho a\*?/* - -expect '' -cmd='echo !7' -case "$cmd" in -*\\!*) echo match ;; -*) echo no match ;; -esac - -expect '' -file='r.*' -case $file in -*.\*) echo not there ;; -*) echo there ;; -esac - -# examples from the Posix.2 spec (d11.2, p. 243) -expect '' -recho a[b]c - -expect '' -recho a["b"]c - -expect '' -recho a[\b]c - -expect '' -recho a?c - -expect '' -case abc in -a"b"c) echo 'match 1' ;; -*) echo 'BAD match 1' ;; -esac - -expect '' -case abc in -a*c) echo 'match 2' ;; -*) echo 'BAD match 2' ;; -esac - -expect '' -case abc in -"a?c") echo 'bad 1' ;; -*) echo 'ok 1' ;; -esac - -expect '' -case abc in -a\*c) echo 'bad 2' ;; -*) echo 'ok 2' ;; -esac - -expect '' -case abc in -a\[b]c) echo 'bad 3' ;; -*) echo 'ok 3' ;; -esac - -expect '' -case "$nosuchvar" in -"") echo 'ok 4' ;; -*) echo 'bad 4' ;; -esac - -# This is very odd, but sh and ksh seem to agree -expect '' -case abc in -a["\b"]c) echo 'ok 5' ;; -*) echo 'bad 5' ;; -esac - -mkdir man -mkdir man/man1 -touch man/man1/bash.1 -expect '' -recho */man*/bash.* -expect '' -recho $(echo */man*/bash.*) -expect '' -recho "$(echo */man*/bash.*)" - -# tests with multiple `*'s -case abc in -a***c) echo ok 1;; -esac - -case abc in -a*****?c) echo ok 2;; -esac - -case abc in -?*****??) echo ok 3;; -esac - -case abc in -*****??) echo ok 4;; -esac - -case abc in -*****??c) echo ok 5;; -esac - -case abc in -?*****?c) echo ok 6;; -esac - -case abc in -?***?****c) echo ok 7;; -esac - -case abc in -?***?****?) echo ok 8;; -esac - -case abc in -?***?****) echo ok 9;; -esac - -case abc in -*******c) echo ok 10;; -esac - -case abc in -*******?) echo ok 11;; -esac - -case abcdecdhjk in -a*cd**?**??k) echo ok 20;; -esac - -case abcdecdhjk in -a**?**cd**?**??k) echo ok 21;; -esac - -case abcdecdhjk in -a**?**cd**?**??k***) echo ok 22;; -esac - -case abcdecdhjk in -a**?**cd**?**??***k) echo ok 23;; -esac - -case abcdecdhjk in -a**?**cd**?**??***k**) echo ok 24;; -esac - -case abcdecdhjk in -a****c**?**??*****) echo ok 25;; -esac - -case '-' in -[-abc]) echo ok 26 ;; -esac - -case '-' in -[abc-]) echo ok 27 ;; -esac - -case '\' in -\\) echo ok 28 ;; -esac - -case '\' in -[\\]) echo ok 29 ;; -esac - -case '\' in -'\') echo ok 30 ;; -esac - -case '[' in -[[]) echo ok 31 ;; -esac - -# a `[' without a closing `]' is just another character to match, in the -# bash implementation -case '[' in -[) echo ok 32 ;; -esac - -case '[abc' in -[*) echo 'ok 33';; -esac - -# a right bracket shall lose its special meaning and represent itself in -# a bracket expression if it occurs first in the list. -- POSIX.2 2.8.3.2 -case ']' in -[]]) echo ok 34 ;; -esac - -case '-' in -[]-]) echo ok 35 ;; -esac - -# a backslash should just escape the next character in this context -case p in -[a-\z]) echo ok 36 ;; -esac - -# this was a bug in all versions up to bash-2.04-release -case "/tmp" in -[/\\]*) echo ok 37 ;; -esac - -# none of these should output anything - -case abc in -??**********?****?) echo bad 1;; -esac - -case abc in -??**********?****c) echo bad 2;; -esac - -case abc in -?************c****?****) echo bad 3;; -esac - -case abc in -*c*?**) echo bad 4;; -esac - -case abc in -a*****c*?**) echo bad 5;; -esac - -case abc in -a********???*******) echo bad 6;; -esac - -case 'a' in -[]) echo bad 7 ;; -esac - -case '[' in -[abc) echo bad 8;; -esac - -# let's start testing the case-insensitive globbing code -recho b* - -shopt -s nocaseglob -recho b* - -recho [b]* -shopt -u nocaseglob - -# make sure set -f works right -set -f -recho * -set +f - -# test out the GLOBIGNORE code -GLOBIGNORE='.*:*c:*e:?' -recho * - -GLOBIGNORE='.*:*b:*d:?' -recho * - -# see if GLOBIGNORE can substitute for `set -f' -GLOBIGNORE='.*:*' -recho * - -unset GLOBIGNORE -expect '' -recho */man*/bash.* - -# make sure null values for GLOBIGNORE have no effect -GLOBIGNORE= -expect '' -recho */man*/bash.* - -# this is for the benefit of pure coverage, so it writes the pcv file -# in the right place, and for gprof -builtin cd $MYDIR - -rm -rf $TESTDIR - -exit 0 diff --git a/tests/infile b/tests/infile deleted file mode 100644 index 94ebaf900..000000000 --- a/tests/infile +++ /dev/null @@ -1,4 +0,0 @@ -1 -2 -3 -4 diff --git a/tests/local-tests b/tests/local-tests deleted file mode 100644 index 8cb92a0cf..000000000 --- a/tests/local-tests +++ /dev/null @@ -1,4 +0,0 @@ -PATH=/usr/local/bin:/usr/ucb:/bin:/usr/bin:. -export PATH - -gmake tests diff --git a/tests/misc/input-line-2.sh b/tests/misc/input-line-2.sh deleted file mode 100644 index b3e126ec8..000000000 --- a/tests/misc/input-line-2.sh +++ /dev/null @@ -1,4 +0,0 @@ -echo before calling input-line.sub -${THIS_SH} < ./input-line.sub -this line for input-line.sub -echo finished with input-line.sub diff --git a/tests/misc/minus-e b/tests/misc/minus-e deleted file mode 100644 index be67ec58f..000000000 --- a/tests/misc/minus-e +++ /dev/null @@ -1,6 +0,0 @@ -set -e -if set +e -then - false -fi -echo hi diff --git a/tests/misc/minus-e.right b/tests/misc/minus-e.right deleted file mode 100644 index 45b983be3..000000000 --- a/tests/misc/minus-e.right +++ /dev/null @@ -1 +0,0 @@ -hi diff --git a/tests/misc/read-nchars-int.tests b/tests/misc/read-nchars-int.tests deleted file mode 100644 index 40b1f982a..000000000 --- a/tests/misc/read-nchars-int.tests +++ /dev/null @@ -1,11 +0,0 @@ -# interactive - -# from tty -read -n 3 -p 'enter three chars: ' xyz -echo -echo $xyz - -# using readline -read -p 'enter 3 chars: ' -e -n 3 abc -# readline outputs a newline for us, so we don't need the extra echo -echo $abc diff --git a/tests/misc/regress/README b/tests/misc/regress/README deleted file mode 100644 index d78925f48..000000000 --- a/tests/misc/regress/README +++ /dev/null @@ -1,12 +0,0 @@ -This is Geoff Collyer's `sh' regression test. It will run each test -on sh and ../../bash, and on ksh if you have it. I have `real' ksh; -the PD ksh is different and will fail some of the tests. - -Expect some small variations in the sh and bash output, since some -of the tests work from the output of `date' or on the current dat -returned by `getdate'. - -Don't expect `getdate' to exist unless you're running C News. If you -don't have it, run - - make -f getdate.mk getdate diff --git a/tests/misc/regress/geoff.post b/tests/misc/regress/geoff.post deleted file mode 100644 index 3e9f2debe..000000000 --- a/tests/misc/regress/geoff.post +++ /dev/null @@ -1,152 +0,0 @@ -Newsgroups: comp.os.coherent -Subject: sh clones evaluated (was Re: C News) -Organization: Software Tool & Die Netnews Research Center -References: <138198@allan.sublink.org> <920725204@umunk.GUN.de> - <9207260813.30@rmkhome.UUCP> <1992Jul27.200244.2456@acme.gen.nz> - <9207291604.00@rmkhome.UUCP> - <9208011403.38@rmkhome.UUCP> - -I've reevaluated the allegedly-sh-compatible shells I have on hand (sh, -bash, ash, zsh and a redistributable ksh). bash seems to have improved -since I last looked at it and seems to run inews and subordinates -correctly, and passes the diagnostic tests I extracted from inews and -anne.jones. ash, zsh and redistributable ksh each fail three of the six -tests. This saddens me, as ash is an elegant and relatively small piece -of work, whereas bash is bloated and complicated. - -I've enclosed the test scripts (shx?), driver script (shx) and results -(log) below. A couple caveats: shx4 (a quoting test) uses the C News -getdate command; there may be newer versions of the shells tested - this -evaluation is decidedly informal. Here's a quick summary: sh and bash -passed all tests; ash can't parse "<&$fd" and doesn't understand quoting; -redistributable ksh dumps core on a newline inside backquotes, doesn't -understand quoting, and botches waiting on background processes; zsh -doesn't understand sh quoting (in particular, it sees ! as a job control -character, even inside quotes), and botches waiting for background -processes. - - -# To unbundle, sh this file -echo log 1>&2 -sed 's/^X//' >log <<'!' -X:; ./shx - -sh: -X<&$fd ok -nlbq Mon Aug 3 02:45:00 EDT 1992 -bang geoff -quote 712824302 -setbq defmsgid=<1992Aug3.024502.6176@host> -bgwait sleep done... wait 6187 - - -bash: -X<&$fd ok -nlbq Mon Aug 3 02:45:09 EDT 1992 -bang geoff -quote 712824311 -setbq defmsgid=<1992Aug3.024512.6212@host> -bgwait sleep done... wait 6223 - - -ash: -X<&$fd shx1: 4: Syntax error: Bad fd number -nlbq Mon Aug 3 02:45:19 EDT 1992 -bang geoff -quote getdate: `"now"' not a valid date - -setbq defmsgid=<1992Aug3.` echo 024521 -bgwait sleep done... wait 6241 - - -ksh: -X<&$fd ok -nlbq ./shx: 6248 Memory fault - core dumped -bang geoff -quote getdate: `"now"' not a valid date - -setbq defmsgid=<1992Aug3.024530.6257@host> -bgwait no such job: 6265 -wait 6265 -sleep done... - -zsh: -X<&$fd ok -nlbq Mon Aug 3 02:45:36 EDT 1992 -bang shx3: event not found: /s/ [4] -quote 712824337 -setbq defmsgid=<..6290@host> -bgwait shx7: unmatched " [9] -sleep done... -X:; -! -echo shx 1>&2 -sed 's/^X//' >shx <<'!' -X#! /bin/sh -for cmd in sh bash ash ksh zsh -do -X echo -X echo $cmd: -X for demo in shx? -X do -X $cmd $demo -X done -done -! -echo shx1 1>&2 -sed 's/^X//' >shx1 <<'!' -X# ash fails this one -echo -n '<&$fd ' -fd=3 -echo ok <&$fd -! -echo shx2 1>&2 -sed 's/^X//' >shx2 <<'!' -X# pd ksh fails this one -echo -n "nlbq " -date=` -date` -echo "$date" -! -echo shx3 1>&2 -sed 's/^X//' >shx3 <<'!' -X# zsh fails this one -echo -n 'bang ' -echo 'geoff tty?? Aug 3 02:35' | -X sed -e 's/[ ].*//' -e '/!/s/^.*!//' -! -echo shx4 1>&2 -sed 's/^X//' >shx4 <<'!' -X# ash, pd ksh fail this one -echo -n "quote " -expiry="now" -timet="` getdate \"$expiry\" `" -echo "$timet" -! -echo shx5 1>&2 -sed 's/^X//' >shx5 <<'!' -X# ash, zsh fail this one -echo -n "setbq " -host=host -date="`date`" -echo defmsgid="`set $date; echo \<$6$2$3.\` echo $4 | tr -d : \`.$$@$host\>`" -! -echo shx7 1>&2 -sed 's/^X//' >shx7 <<'!' -X# pd ksh and zsh fail this one -echo -n "bgwait " -X( -X sleep 2 -X echo -n "sleep done... " -X) & -waitcmd="wait $!" -eval $waitcmd -echo "$waitcmd" -! -echo shx8 1>&2 -sed 's/^X//' >shx8 <<'!' -X# in case gcx7 is really breaks this shell -sleep 3 -echo -! -exit 0 diff --git a/tests/misc/regress/getdate.mk b/tests/misc/regress/getdate.mk deleted file mode 100644 index 543242e84..000000000 --- a/tests/misc/regress/getdate.mk +++ /dev/null @@ -1,9 +0,0 @@ -all: getdate - -getdate.c: getdate.y - yacc getdate.y - mv y.tab.c getdate.c - -getdate: getdate.c - $(CC) -o $@ getdate.c - rm -f getdate.c getdate.o diff --git a/tests/misc/regress/getdate.y b/tests/misc/regress/getdate.y deleted file mode 100644 index 1df37738d..000000000 --- a/tests/misc/regress/getdate.y +++ /dev/null @@ -1,553 +0,0 @@ -%token ID MONTH DAY MERIDIAN NUMBER UNIT MUNIT SUNIT ZONE DAYZONE AGO -%{ - /* Steven M. Bellovin (unc!smb) */ - /* Dept. of Computer Science */ - /* University of North Carolina at Chapel Hill */ - /* @(#)getdate.y 2.13 9/16/86 */ - -#include -#include -#include -#include -#define timezone tmzn /* ugly hack for obscure name clash */ -#include - -#define daysec (24L*60L*60L) - - static int timeflag, zoneflag, dateflag, dayflag, relflag; - static time_t relsec, relmonth; - static int hh, mm, ss, merid, daylight; - static int dayord, dayreq; - static int month, day, year; - static int ourzone; - -#define AM 1 -#define PM 2 -#define DAYLIGHT 1 -#define STANDARD 2 -#define MAYBE 3 -%} - -%% -timedate: /* empty */ - | timedate item; - -item: tspec = - {timeflag++;} - | zone = - {zoneflag++;} - | dtspec = - {dateflag++;} - | dyspec = - {dayflag++;} - | rspec = - {relflag++;} - | nspec; - -nspec: NUMBER = - {if (timeflag && dateflag && !relflag) year = $1; - else {timeflag++;hh = $1/100;mm = $1%100;ss = 0;merid = 24;}}; - -tspec: NUMBER MERIDIAN = - {hh = $1; mm = 0; ss = 0; merid = $2;} - | NUMBER ':' NUMBER = - {hh = $1; mm = $3; merid = 24;} - | NUMBER ':' NUMBER MERIDIAN = - {hh = $1; mm = $3; merid = $4;} - | NUMBER ':' NUMBER NUMBER = - {hh = $1; mm = $3; merid = 24; - daylight = STANDARD; ourzone = $4%100 + 60*$4/100;} - | NUMBER ':' NUMBER ':' NUMBER = - {hh = $1; mm = $3; ss = $5; merid = 24;} - | NUMBER ':' NUMBER ':' NUMBER MERIDIAN = - {hh = $1; mm = $3; ss = $5; merid = $6;} - | NUMBER ':' NUMBER ':' NUMBER NUMBER = - {hh = $1; mm = $3; ss = $5; merid = 24; - daylight = STANDARD; ourzone = $6%100 + 60*$6/100;}; - -zone: ZONE = - {ourzone = $1; daylight = STANDARD;} - | DAYZONE = - {ourzone = $1; daylight = DAYLIGHT;}; - -dyspec: DAY = - {dayord = 1; dayreq = $1;} - | DAY ',' = - {dayord = 1; dayreq = $1;} - | NUMBER DAY = - {dayord = $1; dayreq = $2;}; - -dtspec: NUMBER '/' NUMBER = - {month = $1; day = $3;} - | NUMBER '/' NUMBER '/' NUMBER = - {month = $1; day = $3; year = $5;} - | MONTH NUMBER = - {month = $1; day = $2;} - | MONTH NUMBER ',' NUMBER = - {month = $1; day = $2; year = $4;} - | NUMBER MONTH = - {month = $2; day = $1;} - | NUMBER MONTH NUMBER = - {month = $2; day = $1; year = $3;}; - - -rspec: NUMBER UNIT = - {relsec += 60L * $1 * $2;} - | NUMBER MUNIT = - {relmonth += $1 * $2;} - | NUMBER SUNIT = - {relsec += $1;} - | UNIT = - {relsec += 60L * $1;} - | MUNIT = - {relmonth += $1;} - | SUNIT = - {relsec++;} - | rspec AGO = - {relsec = -relsec; relmonth = -relmonth;}; -%% - -static int mdays[12] = - {31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; -#define epoch 1970 - -extern struct tm *localtime(); - -static time_t -dateconv(mm, dd, yy, h, m, s, mer, zone, dayflag) -int mm, dd, yy, h, m, s, mer, zone, dayflag; -{ - time_t tod, jdate; - register int i; - time_t timeconv(); - - if (yy < 0) yy = -yy; - if (yy < 100) yy += 1900; - mdays[1] = 28 + (yy%4 == 0 && (yy%100 != 0 || yy%400 == 0)); - if (yy < epoch || yy > 1999 || mm < 1 || mm > 12 || - dd < 1 || dd > mdays[--mm]) return (-1); - jdate = dd-1; - for (i=0; itm_isdst)) - jdate += -1*60*60; - return (jdate); -} - -static time_t -dayconv(ord, day, now) -int ord, day; time_t now; -{ - register struct tm *loctime; - time_t tod; - time_t daylcorr(); - - tod = now; - loctime = localtime(&tod); - tod += daysec * ((day - loctime->tm_wday + 7) % 7); - tod += 7*daysec*(ord<=0?ord:ord-1); - return daylcorr(tod, now); -} - -static time_t -timeconv(hh, mm, ss, mer) -register int hh, mm, ss, mer; -{ - if (mm < 0 || mm > 59 || ss < 0 || ss > 59) return (-1); - switch (mer) { - case AM: if (hh < 1 || hh > 12) return(-1); - return (60L * ((hh%12)*60L + mm)+ss); - case PM: if (hh < 1 || hh > 12) return(-1); - return (60L * ((hh%12 +12)*60L + mm)+ss); - case 24: if (hh < 0 || hh > 23) return (-1); - return (60L * (hh*60L + mm)+ss); - default: return (-1); - } -} - -static time_t -monthadd(sdate, relmonth) -time_t sdate, relmonth; -{ - struct tm *ltime; - time_t dateconv(); - time_t daylcorr(); - int mm, yy; - - if (relmonth == 0) return 0; - ltime = localtime(&sdate); - mm = 12*ltime->tm_year + ltime->tm_mon + relmonth; - yy = mm/12; - mm = mm%12 + 1; - return daylcorr(dateconv(mm, ltime->tm_mday, yy, ltime->tm_hour, - ltime->tm_min, ltime->tm_sec, 24, ourzone, MAYBE), sdate); -} - -static time_t -daylcorr(future, now) -time_t future, now; -{ - int fdayl, nowdayl; - - nowdayl = (localtime(&now)->tm_hour+1) % 24; - fdayl = (localtime(&future)->tm_hour+1) % 24; - return (future-now) + 60L*60L*(nowdayl-fdayl); -} - -static char *lptr; - -yylex() -{ - extern int yylval; - int sign; - register char c; - register char *p; - char idbuf[20]; - int pcnt; - - for (;;) { - while (isspace(*lptr)) lptr++; - - if (isdigit(c = *lptr) || c == '-' || c == '+') { - if (c== '-' || c == '+') { - if (c=='-') sign = -1; - else sign = 1; - if (!isdigit(*++lptr)) { - /* yylval = sign; return (NUMBER); */ - return yylex(); /* skip the '-' sign */ - } - } else sign = 1; - yylval = 0; - while (isdigit(c = *lptr++)) yylval = 10*yylval + c - '0'; - yylval *= sign; - lptr--; - return (NUMBER); - - } else if (isalpha(c)) { - p = idbuf; - while (isalpha(c = *lptr++) || c=='.') - if (p < &idbuf[sizeof(idbuf)-1]) - *p++ = c; - *p = '\0'; - lptr--; - return (lookup(idbuf)); - } - - else if (c == '(') { - pcnt = 0; - do { - c = *lptr++; - if (c == '\0') return(c); - else if (c == '(') pcnt++; - else if (c == ')') pcnt--; - } while (pcnt > 0); - } - - else return (*lptr++); - } -} - -struct table { - char *name; - int type, value; -}; - -static struct table mdtab[] = { - {"January", MONTH, 1}, - {"February", MONTH, 2}, - {"March", MONTH, 3}, - {"April", MONTH, 4}, - {"May", MONTH, 5}, - {"June", MONTH, 6}, - {"July", MONTH, 7}, - {"August", MONTH, 8}, - {"September", MONTH, 9}, - {"Sept", MONTH, 9}, - {"October", MONTH, 10}, - {"November", MONTH, 11}, - {"December", MONTH, 12}, - - {"Sunday", DAY, 0}, - {"Monday", DAY, 1}, - {"Tuesday", DAY, 2}, - {"Tues", DAY, 2}, - {"Wednesday", DAY, 3}, - {"Wednes", DAY, 3}, - {"Thursday", DAY, 4}, - {"Thur", DAY, 4}, - {"Thurs", DAY, 4}, - {"Friday", DAY, 5}, - {"Saturday", DAY, 6}, - {0, 0, 0}}; - -#define HRS *60 -#define HALFHR 30 -static struct table mztab[] = { - {"a.m.", MERIDIAN, AM}, - {"am", MERIDIAN, AM}, - {"p.m.", MERIDIAN, PM}, - {"pm", MERIDIAN, PM}, - {"nst", ZONE, 3 HRS + HALFHR}, /* Newfoundland */ - {"n.s.t.", ZONE, 3 HRS + HALFHR}, - {"ast", ZONE, 4 HRS}, /* Atlantic */ - {"a.s.t.", ZONE, 4 HRS}, - {"adt", DAYZONE, 4 HRS}, - {"a.d.t.", DAYZONE, 4 HRS}, - {"est", ZONE, 5 HRS}, /* Eastern */ - {"e.s.t.", ZONE, 5 HRS}, - {"edt", DAYZONE, 5 HRS}, - {"e.d.t.", DAYZONE, 5 HRS}, - {"cst", ZONE, 6 HRS}, /* Central */ - {"c.s.t.", ZONE, 6 HRS}, - {"cdt", DAYZONE, 6 HRS}, - {"c.d.t.", DAYZONE, 6 HRS}, - {"mst", ZONE, 7 HRS}, /* Mountain */ - {"m.s.t.", ZONE, 7 HRS}, - {"mdt", DAYZONE, 7 HRS}, - {"m.d.t.", DAYZONE, 7 HRS}, - {"pst", ZONE, 8 HRS}, /* Pacific */ - {"p.s.t.", ZONE, 8 HRS}, - {"pdt", DAYZONE, 8 HRS}, - {"p.d.t.", DAYZONE, 8 HRS}, - {"yst", ZONE, 9 HRS}, /* Yukon */ - {"y.s.t.", ZONE, 9 HRS}, - {"ydt", DAYZONE, 9 HRS}, - {"y.d.t.", DAYZONE, 9 HRS}, - {"hst", ZONE, 10 HRS}, /* Hawaii */ - {"h.s.t.", ZONE, 10 HRS}, - {"hdt", DAYZONE, 10 HRS}, - {"h.d.t.", DAYZONE, 10 HRS}, - - {"gmt", ZONE, 0 HRS}, - {"g.m.t.", ZONE, 0 HRS}, - {"ut", ZONE, 0 HRS}, - {"u.t.", ZONE, 0 HRS}, - {"bst", DAYZONE, 0 HRS}, /* British Summer Time */ - {"b.s.t.", DAYZONE, 0 HRS}, - {"eet", ZONE, 0 HRS}, /* European Eastern Time */ - {"e.e.t.", ZONE, 0 HRS}, - {"eest", DAYZONE, 0 HRS}, /* European Eastern Summer Time */ - {"e.e.s.t.", DAYZONE, 0 HRS}, - {"met", ZONE, -1 HRS}, /* Middle European Time */ - {"m.e.t.", ZONE, -1 HRS}, - {"mest", DAYZONE, -1 HRS}, /* Middle European Summer Time */ - {"m.e.s.t.", DAYZONE, -1 HRS}, - {"wet", ZONE, -2 HRS }, /* Western European Time */ - {"w.e.t.", ZONE, -2 HRS }, - {"west", DAYZONE, -2 HRS}, /* Western European Summer Time */ - {"w.e.s.t.", DAYZONE, -2 HRS}, - - {"jst", ZONE, -9 HRS}, /* Japan Standard Time */ - {"j.s.t.", ZONE, -9 HRS}, /* Japan Standard Time */ - /* No daylight savings time */ - - {"aest", ZONE, -10 HRS}, /* Australian Eastern Time */ - {"a.e.s.t.", ZONE, -10 HRS}, - {"aesst", DAYZONE, -10 HRS}, /* Australian Eastern Summer Time */ - {"a.e.s.s.t.", DAYZONE, -10 HRS}, - {"acst", ZONE, -(9 HRS + HALFHR)}, /* Australian Central Time */ - {"a.c.s.t.", ZONE, -(9 HRS + HALFHR)}, - {"acsst", DAYZONE, -(9 HRS + HALFHR)}, /* Australian Central Summer */ - {"a.c.s.s.t.", DAYZONE, -(9 HRS + HALFHR)}, - {"awst", ZONE, -8 HRS}, /* Australian Western Time */ - {"a.w.s.t.", ZONE, -8 HRS}, /* (no daylight time there, I'm told */ - {0, 0, 0}}; - -static struct table unittb[] = { - {"year", MUNIT, 12}, - {"month", MUNIT, 1}, - {"fortnight", UNIT, 14*24*60}, - {"week", UNIT, 7*24*60}, - {"day", UNIT, 1*24*60}, - {"hour", UNIT, 60}, - {"minute", UNIT, 1}, - {"min", UNIT, 1}, - {"second", SUNIT, 1}, - {"sec", SUNIT, 1}, - {0, 0, 0}}; - -static struct table othertb[] = { - {"tomorrow", UNIT, 1*24*60}, - {"yesterday", UNIT, -1*24*60}, - {"today", UNIT, 0}, - {"now", UNIT, 0}, - {"last", NUMBER, -1}, - {"this", UNIT, 0}, - {"next", NUMBER, 2}, - {"first", NUMBER, 1}, - /* {"second", NUMBER, 2}, */ - {"third", NUMBER, 3}, - {"fourth", NUMBER, 4}, - {"fifth", NUMBER, 5}, - {"sixth", NUMBER, 6}, - {"seventh", NUMBER, 7}, - {"eigth", NUMBER, 8}, - {"ninth", NUMBER, 9}, - {"tenth", NUMBER, 10}, - {"eleventh", NUMBER, 11}, - {"twelfth", NUMBER, 12}, - {"ago", AGO, 1}, - {0, 0, 0}}; - -static struct table milzone[] = { - {"a", ZONE, 1 HRS}, - {"b", ZONE, 2 HRS}, - {"c", ZONE, 3 HRS}, - {"d", ZONE, 4 HRS}, - {"e", ZONE, 5 HRS}, - {"f", ZONE, 6 HRS}, - {"g", ZONE, 7 HRS}, - {"h", ZONE, 8 HRS}, - {"i", ZONE, 9 HRS}, - {"k", ZONE, 10 HRS}, - {"l", ZONE, 11 HRS}, - {"m", ZONE, 12 HRS}, - {"n", ZONE, -1 HRS}, - {"o", ZONE, -2 HRS}, - {"p", ZONE, -3 HRS}, - {"q", ZONE, -4 HRS}, - {"r", ZONE, -5 HRS}, - {"s", ZONE, -6 HRS}, - {"t", ZONE, -7 HRS}, - {"u", ZONE, -8 HRS}, - {"v", ZONE, -9 HRS}, - {"w", ZONE, -10 HRS}, - {"x", ZONE, -11 HRS}, - {"y", ZONE, -12 HRS}, - {"z", ZONE, 0 HRS}, - {0, 0, 0}}; - -static -lookup(id) -char *id; -{ -#define gotit (yylval=i->value, i->type) -#define getid for(j=idvar, k=id; *j++ = *k++; ) - - char idvar[20]; - register char *j, *k; - register struct table *i; - int abbrev; - - getid; - if (strlen(idvar) == 3) abbrev = 1; - else if (strlen(idvar) == 4 && idvar[3] == '.') { - abbrev = 1; - idvar[3] = '\0'; - } - else abbrev = 0; - - if (islower(*idvar)) *idvar = toupper(*idvar); - - for (i = mdtab; i->name; i++) { - k = idvar; - for (j = i->name; *j++ == *k++;) { - if (abbrev && j==i->name+3) return gotit; - if (j[-1] == 0) return gotit; - } - } - - getid; - for (i = mztab; i->name; i++) - if (strcmp(i->name, idvar) == 0) return gotit; - - for (j = idvar; *j; j++) - if (isupper(*j)) *j = tolower(*j); - for (i=mztab; i->name; i++) - if (strcmp(i->name, idvar) == 0) return gotit; - - getid; - for (i=unittb; i->name; i++) - if (strcmp(i->name, idvar) == 0) return gotit; - - if (idvar[strlen(idvar)-1] == 's') - idvar[strlen(idvar)-1] = '\0'; - for (i=unittb; i->name; i++) - if (strcmp(i->name, idvar) == 0) return gotit; - - getid; - for (i = othertb; i->name; i++) - if (strcmp(i->name, idvar) == 0) return gotit; - - getid; - if (strlen(idvar) == 1 && isalpha(*idvar)) { - if (isupper(*idvar)) *idvar = tolower(*idvar); - for (i = milzone; i->name; i++) - if (strcmp(i->name, idvar) == 0) return gotit; - } - - return(ID); -} - -time_t -getdate(p, now) -char *p; -struct timeb *now; -{ -#define mcheck(f) if (f>1) err++ - time_t monthadd(); - int err; - struct tm *lt; - struct timeb ftz; - - time_t sdate, tod; - - lptr = p; - if (now == ((struct timeb *) NULL)) { - now = &ftz; - ftime(&ftz); - } - lt = localtime(&now->time); - year = lt->tm_year; - month = lt->tm_mon+1; - day = lt->tm_mday; - relsec = 0; relmonth = 0; - timeflag=zoneflag=dateflag=dayflag=relflag=0; - ourzone = now->timezone; - daylight = MAYBE; - hh = mm = ss = 0; - merid = 24; - - if (err = yyparse()) return (-1); - - mcheck(timeflag); - mcheck(zoneflag); - mcheck(dateflag); - mcheck(dayflag); - - if (err) return (-1); - if (dateflag || timeflag || dayflag) { - sdate = dateconv(month,day,year,hh,mm,ss,merid,ourzone,daylight); - if (sdate < 0) return -1; - } - else { - sdate = now->time; - if (relflag == 0) - sdate -= (lt->tm_sec + lt->tm_min*60 + - lt->tm_hour*(60L*60L)); - } - - sdate += relsec; - sdate += monthadd(sdate, relmonth); - - if (dayflag && !dateflag) { - tod = dayconv(dayord, dayreq, sdate); - sdate += tod; - } - - return sdate; -} - -yyerror(s) char *s; -{} - -main(c, v) -int c; -char **v; -{ - printf("%d\n", getdate(v[1], (struct timeb *)0)); -} diff --git a/tests/misc/regress/shx b/tests/misc/regress/shx deleted file mode 100644 index feb2bc8f1..000000000 --- a/tests/misc/regress/shx +++ /dev/null @@ -1,15 +0,0 @@ -#! /bin/sh - -if ksh -c 'echo ""' >/dev/null 2>&1; then - ksh=ksh -fi - -for cmd in sh ../../bash $ksh -do - echo - echo $cmd: - for demo in shx[0-9] - do - $cmd $demo - done -done diff --git a/tests/misc/regress/shx1 b/tests/misc/regress/shx1 deleted file mode 100644 index 73c5e8a4b..000000000 --- a/tests/misc/regress/shx1 +++ /dev/null @@ -1,4 +0,0 @@ -# ash fails this one -echo -n '<&$fd ' -fd=3 -echo ok <&$fd diff --git a/tests/misc/regress/shx2 b/tests/misc/regress/shx2 deleted file mode 100644 index 03cff5bbb..000000000 --- a/tests/misc/regress/shx2 +++ /dev/null @@ -1,5 +0,0 @@ -# pd ksh fails this one -echo -n "nlbq " -date=` -date` -echo "$date" diff --git a/tests/misc/regress/shx3 b/tests/misc/regress/shx3 deleted file mode 100644 index 1fbbb3700..000000000 --- a/tests/misc/regress/shx3 +++ /dev/null @@ -1,4 +0,0 @@ -# zsh fails this one -echo -n 'bang ' -echo 'geoff tty?? Aug 3 02:35' | - sed -e 's/[ ].*//' -e '/!/s/^.*!//' diff --git a/tests/misc/regress/shx4 b/tests/misc/regress/shx4 deleted file mode 100644 index 9ae77817d..000000000 --- a/tests/misc/regress/shx4 +++ /dev/null @@ -1,5 +0,0 @@ -# ash, pd ksh fail this one -echo -n "quote " -expiry="now" -timet="` getdate \"$expiry\" `" -echo "$timet" diff --git a/tests/misc/regress/shx5 b/tests/misc/regress/shx5 deleted file mode 100644 index bd7ad0e2d..000000000 --- a/tests/misc/regress/shx5 +++ /dev/null @@ -1,5 +0,0 @@ -# ash, zsh fail this one -echo -n "setbq " -host=host -date="`date`" -echo defmsgid="`set $date; echo \<$6$2$3.\` echo $4 | tr -d : \`.$$@$host\>`" diff --git a/tests/misc/regress/shx7 b/tests/misc/regress/shx7 deleted file mode 100644 index 12ba1ec15..000000000 --- a/tests/misc/regress/shx7 +++ /dev/null @@ -1,9 +0,0 @@ -# pd ksh and zsh fail this one -echo -n "bgwait " -( - sleep 2 - echo -n "sleep done... " -) & -waitcmd="wait $!" -eval $waitcmd -echo "$waitcmd" diff --git a/tests/misc/regress/shx8 b/tests/misc/regress/shx8 deleted file mode 100644 index b466ec1ef..000000000 --- a/tests/misc/regress/shx8 +++ /dev/null @@ -1,3 +0,0 @@ -# in case gcx7 is really breaks this shell -sleep 3 -echo diff --git a/tests/misc/run-input-test-2 b/tests/misc/run-input-test-2 deleted file mode 100644 index ffbac4c65..000000000 --- a/tests/misc/run-input-test-2 +++ /dev/null @@ -1,2 +0,0 @@ -cat ./input-line-2.sh | ${THIS_SH} > /tmp/xx -diff /tmp/xx input.right && rm -f /tmp/xx diff --git a/tests/misc/run-minus-e b/tests/misc/run-minus-e deleted file mode 100644 index 2a91a3d22..000000000 --- a/tests/misc/run-minus-e +++ /dev/null @@ -1,2 +0,0 @@ -${THIS_SH} ./minus-e > /tmp/xx -diff /tmp/xx minus-e.right && rm -f /tmp/xx diff --git a/tests/misc/test.patmatch b/tests/misc/test.patmatch deleted file mode 100644 index 88b563167..000000000 --- a/tests/misc/test.patmatch +++ /dev/null @@ -1,15 +0,0 @@ -# these will work only if test.c has been compiled with -DPATTERN_MATCHING -# to get =~ and !~ - -[ a =\~ a ] && echo OK || echo BAD -[ a !~ b ] && echo OK || echo BAD - -[ a =\~ \* ] && echo OK || echo BAD -[ a =\~ \? ] && echo OK || echo BAD -[ abc !~ \? ] && echo OK || echo BAD - -[ '' =\~ \* ] && echo OK || echo BAD -[ '' !~ \?\* ] && echo OK || echo BAD - -[ a =\~ \[abc] ] && echo OK || echo BAD -[ x !~ \[abc] ] && echo OK || echo BAD diff --git a/tests/posix-ifs.sh b/tests/posix-ifs.sh deleted file mode 100644 index cf9a89874..000000000 --- a/tests/posix-ifs.sh +++ /dev/null @@ -1,257 +0,0 @@ -# Usage: $SHELL ifs.sh -# -# This script generates 6856 tests for the set(1) and read(1) -# builtins w.r.t. IFS whitespace and non-whitespace characters. -# Each failed test produces one line on the standard output that -# contains the test along with the expected and actual results. -# The last output line contains the test result counts. ordered>0 -# are the number of tests where IFS=": " produced different results -# than IFS=" :". If a test fails the same way for IFS=": " and -# IFS=" :" then the second output line is suppressed. - -TESTS=6856 - -ksh_read=0 -echo 1 | read ksh_read -ksh_arith=0 -eval '((ksh_arith+=1))' 2>/dev/null - -failed=0 -ordered=0 -passed=0 - -split() -{ - i=$1 s=$2 r=$3 S='' R='' - for ifs in ': ' ' :' - do IFS=$ifs - set x $i - shift - IFS=' ' - g="[$#]" - while : - do case $# in - 0) break ;; - esac - g="$g($1)" - shift - done - case $g in - "$s") case $ksh_arith in - 1) ((passed+=1)) ;; - *) passed=`expr $passed + 1` ;; - esac - case $S in - '') S=$g - ;; - "$g") ;; - *) case $ksh_arith in - 1) ((ordered+=1)) ;; - *) ordered=`expr $ordered + 1` ;; - esac - ;; - esac - ;; - "$S") case $ksh_arith in - 1) ((failed+=1)) ;; - *) failed=`expr $failed + 1` ;; - esac - ;; - *) case $ksh_arith in - 1) ((failed+=1)) ;; - *) failed=`expr $failed + 1` ;; - esac - case $s in - "$S") ;; - ?0*) echo "IFS=\"$ifs\"; x=\"$i\"; set x \$x; shift; echo \"[\$#]\" # expected \"$s\" got \"$g\"" ;; - ?1*) echo "IFS=\"$ifs\"; x=\"$i\"; set x \$x; shift; echo \"[\$#](\$1)\" # expected \"$s\" got \"$g\"" ;; - ?2*) echo "IFS=\"$ifs\"; x=\"$i\"; set x \$x; shift; echo \"[\$#](\$1)(\$2)\" # expected \"$s\" got \"$g\"" ;; - ?3*) echo "IFS=\"$ifs\"; x=\"$i\"; set x \$x; shift; echo \"[\$#](\$1)(\$2)(\$3)\" # expected \"$s\" got \"$g\"" ;; - *) echo TEST ERROR i="'$i'" s="'$s'" ;; - esac - case $S in - '') S=$g - ;; - "$g") ;; - *) case $ksh_arith in - 1) ((ordered+=1)) ;; - *) ordered=`expr $ordered + 1` ;; - esac - ;; - esac - esac - case $ksh_read in - 1) echo "$i" | IFS=$ifs read x y; g="($x)($y)" ;; - *) g=`export ifs; echo "$i" | ( IFS=$ifs; read x y; echo "($x)($y)" )` ;; - esac - case $g in - "$r") case $ksh_arith in - 1) ((passed+=1)) ;; - *) passed=`expr $passed + 1` ;; - esac - case $R in - '') R=$g - ;; - "$g") ;; - *) case $ksh_arith in - 1) ((ordered+=1)) ;; - *) ordered=`expr $ordered + 1` ;; - esac - ;; - esac - ;; - "$R") case $ksh_arith in - 1) ((failed+=1)) ;; - *) failed=`expr $failed + 1` ;; - esac - ;; - *) case $ksh_arith in - 1) ((failed+=1)) ;; - *) failed=`expr $failed + 1` ;; - esac - case $r in - "$R") ;; - *) echo "echo \"$i\" | ( IFS=\"$ifs\" read x y; echo \"(\$x)(\$y)\" ) # expected \"$r\" got \"$g\"" ;; - esac - case $R in - '') R=$g - ;; - "$g") ;; - *) case $ksh_arith in - 1) ((ordered+=1)) ;; - *) ordered=`expr $ordered + 1` ;; - esac - ;; - esac - ;; - esac - done -} - -for str in \ - '-' \ - 'a' \ - '- -' \ - '- a' \ - 'a -' \ - 'a b' \ - '- - -' \ - '- - a' \ - '- a -' \ - '- a b' \ - 'a - -' \ - 'a - b' \ - 'a b -' \ - 'a b c' \ - -do - IFS=' ' - set x $str - - shift - case $# in - 0) continue ;; - esac - - f1=$1 - case $f1 in - '-') f1='' ;; - esac - - shift - case $# in - 0) for d0 in '' ' ' - do - for d1 in '' ' ' ':' ' :' ': ' ' : ' - do - case $f1$d1 in - '') split "$d0$f1$d1" "[0]" "()()" ;; - ' ') ;; - *) split "$d0$f1$d1" "[1]($f1)" "($f1)()" ;; - esac - done - done - continue - ;; - esac - f2=$1 - case $f2 in - '-') f2='' ;; - esac - - shift - case $# in - 0) for d0 in '' ' ' - do - for d1 in ' ' ':' ' :' ': ' ' : ' - do - case ' ' in - $f1$d1|$d1$f2) continue ;; - esac - for d2 in '' ' ' ':' ' :' ': ' ' : ' - do - case $f2$d2 in - '') split "$d0$f1$d1$f2$d2" "[1]($f1)" "($f1)()" ;; - ' ') ;; - *) split "$d0$f1$d1$f2$d2" "[2]($f1)($f2)" "($f1)($f2)" ;; - esac - done - done - done - continue - ;; - esac - f3=$1 - case $f3 in - '-') f3='' ;; - esac - - shift - case $# in - 0) for d0 in '' ' ' - do - for d1 in ':' ' :' ': ' ' : ' - do - case ' ' in - $f1$d1|$d1$f2) continue ;; - esac - for d2 in ' ' ':' ' :' ': ' ' : ' - do - case $f2$d2 in - ' ') continue ;; - esac - case ' ' in - $f2$d2|$d2$f3) continue ;; - esac - for d3 in '' ' ' ':' ' :' ': ' ' : ' - do - case $f3$d3 in - '') split "$d0$f1$d1$f2$d2$f3$d3" "[2]($f1)($f2)" "($f1)($f2)" ;; - ' ') ;; - *) x=$f2$d2$f3$d3 - x=${x#' '} - x=${x%' '} - split "$d0$f1$d1$f2$d2$f3$d3" "[3]($f1)($f2)($f3)" "($f1)($x)" - ;; - esac - done - done - done - done - continue - ;; - esac -done -case $ksh_arith in -1) ((tests=passed+failed)) ;; -*) tests=`expr $passed + $failed` ;; -esac -case $ordered in -0) ordered="" ;; -*) ordered=" ordered $ordered" ;; -esac -case $tests in -$TESTS) fatal="" ;; -*) fatal=" -- fundamental IFS error -- $TESTS tests expected" -esac -echo "# tests $tests passed $passed failed $failed$ordered$fatal" diff --git a/tests/printf.right.raw b/tests/printf.right.raw deleted file mode 100644 index 903d147b6..000000000 Binary files a/tests/printf.right.raw and /dev/null differ diff --git a/tests/run-gprof b/tests/run-gprof deleted file mode 100644 index 87d508673..000000000 --- a/tests/run-gprof +++ /dev/null @@ -1,53 +0,0 @@ -#! /bin/sh - -PATH=.:$PATH # just to get recho/zecho/printenv if not run via `make tests' -export PATH - -# unset BASH_ENV only if it is set -[ "${BASH_ENV+set}" = "set" ] && unset BASH_ENV -# ditto for SHELLOPTS -#[ "${SHELLOPTS+set}" = "set" ] && unset SHELLOPTS - -: ${THIS_SH:=../bash} -export THIS_SH - -rm -f gmon.sum - -${THIS_SH} ./version - -rm -f /tmp/xx - -# prime the pump; gprof complains if gmon.sum is empty -[ -f bash.gmon ] && gprof -s ${THIS_SH} bash.gmon >/dev/null - -echo Any output from any test, unless otherwise noted, indicates a possible anomaly - -for x in run-* -do - case $x in - $0|run-all|run-minimal|run-gprof) ;; - *.orig|*~) ;; - *) echo $x ; sh $x - if [ -f /tmp/bash.gmon ]; then - if [ -f bash.gmon ]; then - gprof -s ${THIS_SH} gmon.sum bash.gmon /tmp/bash.gmon >/dev/null - else - gprof -s ${THIS_SH} gmon.sum /tmp/bash.gmon >/dev/null - fi - else - gprof -s ${THIS_SH} gmon.sum bash.gmon >/dev/null - fi - rm -f /tmp/bash.gmon bash.gmon - ;; - esac -done - -gprof -s ${THIS_SH} gmon.sum ./-specialname.gmon ./ohio-state.gmon > /dev/null -rm -f ./-specialname.gmon ./ohio-state.gmon - -if [ -f specialname.gmon ]; then - gprof -s ${THIS_SH} gmon.sum ./specialname.gmon > /dev/null - rm -f specialname.gmon -fi - -exit 0 diff --git a/tests/set-e-test b/tests/set-e-test deleted file mode 100644 index 1fdf360d9..000000000 --- a/tests/set-e-test +++ /dev/null @@ -1,105 +0,0 @@ -if : ; then - set -e - N=95 - while :; do - # expr returns 1 if expression is null or 0 - set +e - N_MOD_100=`expr $N % 100` - set -e - echo $N_MOD_100 - N=`expr $N + 1` - if [ $N -eq 110 ]; then - break - fi - done - set +e -fi - -( -set -e -false -echo bad -) -echo $? - -x=$( -set -e -false -echo bad -) -echo $? $x - -# command subst should not inherit -e -set -e -echo $(false; echo ok) - -if set +e -then - false -fi -echo hi - -set -e - -# a failing command in the compound list following a while, until, or -# if should not cause the shell to exit - -while false; do - echo hi -done -echo while succeeded - -x=1 -until (( x == 4 )); do - x=4 -done -echo until succeeded: $x - -if false; then - echo oops -fi -echo if succeeded - -# failing commands that are part of an AND or OR list should not -# cause the shell to exit -false && echo AND list failed -echo AND list succeeded - -false || echo OR list succeeded - -! false -echo ! succeeded - -# make sure eval preserves the state of the -e flag and `!' reserved word -set -e -if eval false; then - echo oops -fi -echo eval succeeded - -! eval false -echo ! eval succeeded -- 1 - -! eval '(exit 5)' -echo ! eval succeeded -- 2 - -set -e -until builtin false; do echo a; break; done -echo $? - -until eval false; do echo b; break; done -echo $? - -: ${TMPDIR:=/tmp} -FN=$TMPDIR/set-e-$$ -cat > $FN << EOF -false -echo after 1 -false -EOF - -set -e -until . $FN; do echo a; break; done -echo $? - -rm -f $FN diff --git a/tests/tilde-tests b/tests/tilde-tests deleted file mode 100644 index f5f530902..000000000 --- a/tests/tilde-tests +++ /dev/null @@ -1,66 +0,0 @@ -# this is needed because posix mode restricts tilde expansion to assignment -# statements preceding a command, instead of the default of expanding all -# assignment statements on the line (e.g., after `export'). Without this, -# the next-to-last test fails -set +o posix - -HOME=/usr/xyz -SHELL=~/bash -echo ~ch\et -echo ~/"foo" -echo "~chet"/"foo" -echo \~chet/"foo" -echo \~chet/bar -echo ~\chet/bar -echo ~chet""/bar -echo ":~chet/" -echo abcd~chet -echo "SHELL=~/bash" -echo $SHELL -echo abcd:~chet -path=/usr/ucb:/bin:~/bin:~/tmp/bin:/usr/bin -echo $path - -cd /usr -cd /tmp -echo ~- -echo ~+ - -XPATH=/bin:/usr/bin:. - -# yes tilde expansion -PPATH=$XPATH:~/bin -echo "$PPATH" - -# no tilde expansion -PPATH="$XPATH:~/bin" -echo "$PPATH" - -# yes tilde expansion -export PPATH=$XPATH:~/bin -echo "$PPATH" -declare -x PPATH=$XPATH:~/bin -echo "$PPATH" - -# no tilde expansion -export PPATH="$XPATH:~/bin" -echo "$PPATH" -declare -x PPATH="$XPATH:~/bin" -echo "$PPATH" - -# more tests of tilde expansion when executing case commands -case ~ in -$HOME) echo ok 1;; -*) echo bad 1 ;; -esac - -case ~ in -~) echo ok 2 ;; -\~) echo bad 2a ;; -*) echo bad 2b ;; -esac - -case $unset in -"") echo ok 3 ;; -*) echo bad 3 ;; -esac diff --git a/tests/time.tests b/tests/time.tests deleted file mode 100644 index 06881e95a..000000000 --- a/tests/time.tests +++ /dev/null @@ -1,22 +0,0 @@ -printf "time /dev/null:\n" -time ${THIS_SH} /dev/null - -printf "\nPOSIX: time -p /dev/null:\n" -time -p ${THIS_SH} /dev/null - -printf "\nBSD time /dev/null:\n" -TIMEFORMAT=$'\t%1R real\t%1U user\t%1S sys' -time ${THIS_SH} /dev/null - -printf "\nSYSV time /dev/null:\n" -TIMEFORMAT=$'\nreal\t%1R\nuser\t%1U\nsys\t%1S' -time ${THIS_SH} /dev/null - -printf "\nksh time /dev/null:\n" -TIMEFORMAT=$'\nreal\t%2lR\nuser\t%2lU\nsys\t%2lS' -time ${THIS_SH} /dev/null - -printf "\ntimes:\n" -times - -exit 0
    ' . - &t2h_anchor('', $href, $entry) . - '  ' . - $descr . - "
    ' . - $entry . - '' . $descr . - "